diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json deleted file mode 100644 index da200cd..0000000 --- a/.config/dotnet-tools.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "cake.tool": { - "version": "4.0.0", - "commands": [ - "dotnet-cake" - ] - } - } -} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index e7d1c52..baf5828 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,10 +1,7 @@ -[*.{sln,resx}] -indent_style = tab - -[*.{cs,sh,py,json,page,cake}] +[*.{h,cpp,py,json,page,txt}] indent_style = space indent_size = 4 -[*.{csproj,xml,css,md,blp,yml}] +[*.{xml,css,md,blp,yml}] indent_style = space indent_size = 2 diff --git a/.gitattributes b/.gitattributes index db83971..ef04bbe 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,9 +1,7 @@ # Auto detect text files and perform LF normalization * text eol=lf -*.csproj eol=crlf -*.sln eol=crlf *.png binary *.jpg binary *.ico binary *.pdf binary -*.exe binary \ No newline at end of file +*.exe binary diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml index 1efafbb..c751e81 100644 --- a/.github/workflows/flatpak.yml +++ b/.github/workflows/flatpak.yml @@ -6,31 +6,47 @@ on: types: [ "review_requested", "ready_for_review" ] workflow_dispatch: name: Flatpak +permissions: + id-token: write + contents: read jobs: gnome-flatpak: name: "GNOME on Flatpak" runs-on: ubuntu-latest if: ${{ github.event.pull_request.user.login != 'weblate' }} container: - image: bilelmoussaoui/flatpak-github-actions:gnome-45 + image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-47 options: --privileged strategy: matrix: - # As of the time of writing (February 2023), GitHub Actions only provides x86_64 runners. While Flatpak does - # provide cross-building for other architectures, it uses QEMU to do so, and dotnet does not play well under - # QEMU for arm64. See below links for potential updates: - # - https://github.com/dotnet/runtime/issues/13648 - # - https://github.com/actions/runner-images/issues/5631 arch: [x86_64] fail-fast: false steps: - - uses: actions/checkout@v3.5.0 + - uses: actions/checkout@v4 + - uses: flathub-infra/flatpak-github-actions/flatpak-builder@master with: - submodules: recursive - - uses: flatpak/flatpak-github-actions/flatpak-builder@v6.3 + bundle: org.nickvision.cavalier.gnome.flatpak + manifest-path: flatpak/org.nickvision.cavalier.gnome.json + cache-key: flatpak-builder-gnome-${{ github.sha }} + arch: ${{ matrix.arch }} + restore-cache: true + qt-flatpak: + name: "QT on Flatpak" + runs-on: ubuntu-latest + if: ${{ github.event.pull_request.user.login != 'weblate' }} + container: + image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.8 + options: --privileged + strategy: + matrix: + arch: [x86_64] + fail-fast: false + steps: + - uses: actions/checkout@v4 + - uses: flathub-infra/flatpak-github-actions/flatpak-builder@master with: - bundle: org.nickvision.cavalier.flatpak - manifest-path: flatpak/org.nickvision.cavalier.json - cache-key: flatpak-builder-${{ github.sha }} + bundle: org.nickvision.cavalier.qt.flatpak + manifest-path: flatpak/org.nickvision.cavalier.qt.json + cache-key: flatpak-builder-qt-${{ github.sha }} arch: ${{ matrix.arch }} restore-cache: true diff --git a/.github/workflows/snap.yml b/.github/workflows/snap.yml index 700eb70..1e6462d 100644 --- a/.github/workflows/snap.yml +++ b/.github/workflows/snap.yml @@ -1,41 +1,27 @@ on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] - types: [ "review_requested", "ready_for_review" ] + branches: ["main"] + types: ["review_requested", "ready_for_review"] workflow_dispatch: name: Snap permissions: id-token: write contents: read jobs: - snap: + gnome-snap: name: "GNOME on Snap" runs-on: ubuntu-latest - strategy: - matrix: - arch: [x86_64] - fail-fast: false steps: - - name: Checkout Git repository - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Build Snap + - uses: actions/checkout@v4 + - name: Build uses: snapcore/action-build@v1 id: snapcraft-build with: - snapcraft-args: "-v" + snapcraft-args: "--verbosity debug" + snapcraft-channel: "edge" - uses: actions/upload-artifact@v4 with: - name: ${{ steps.snapcraft-build.outputs.snap }} + name: cavalier-snap path: ${{ steps.snapcraft-build.outputs.snap }} - - name: Upload and release Cavalier Snap - uses: snapcore/action-publish@v1 - if: ${{ github.event_name != 'pull_request' }} - env: - SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }} - with: - snap: ${{ steps.snapcraft-build.outputs.snap }} - release: ${{'edge'}} diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml index fdc1396..5e7a1f4 100644 --- a/.github/workflows/spelling.yml +++ b/.github/workflows/spelling.yml @@ -9,9 +9,9 @@ jobs: codespell: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: codespell-project/actions-codespell@master with: check_filenames: true - skip: cargo-sources.json,.git,*.po,*.svg + skip: cargo-sources.json,.git,*.svg,*.html,*.js,*.po,*.pot,*.page,*.map,sqlite3.h,sqlite3.c,pch.h,CONTRIBUTING.md ignore_words_list: gir diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..3f45489 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,63 @@ +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + types: [ "review_requested", "ready_for_review" ] + workflow_dispatch: +name: Windows +permissions: + id-token: write + contents: read +env: + GITHUB_ACTIONS: true + VCPKG_ROOT: ${{github.workspace}}/vcpkg +jobs: + build: + name: "Build on x64" + runs-on: windows-latest + if: ${{ github.event.pull_request.user.login != 'weblate' }} + steps: + - name: "Checkout" + uses: actions/checkout@v4 + with: + submodules: recursive + - name: "Setup Environment" + shell: pwsh + run: | + $ProgressPreference = 'SilentlyContinue' + mkdir build + Invoke-WebRequest https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-64.zip -OutFile gettext.zip + Expand-Archive -Force 'gettext.zip' + move gettext\bin\* C:\Windows\System32 + choco install innosetup + - name: "Vcpkg" + uses: johnwason/vcpkg-action@v6 + id: vcpkg + with: + pkgs: glfw3 libnick skia[core,fontconfig,freetype,gl,harfbuzz,icu,vulkan] qtbase qtsvg qttools + triplet: x64-windows + revision: e946021fec2f993d6933f361e5b59e0433a750a7 + token: ${{ secrets.GITHUB_TOKEN }} + github-binarycache: true + - name: "Build" + working-directory: ${{github.workspace}}/build + run: | + cmake -G "Visual Studio 17 2022" .. + cmake --build . --config Release + - name: "Create Installer" + working-directory: ${{github.workspace}}/inno + shell: pwsh + run: | + $ProgressPreference = 'SilentlyContinue' + Invoke-WebRequest https://aka.ms/vs/17/release/vc_redist.x64.exe -OutFile vc_redist.x64.exe + Invoke-WebRequest https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe -OutFile vc_redist.2012.x64.exe + Invoke-WebRequest https://github.com/karlstav/cava/releases/download/0.10.4/cava_win.zip -OutFile cava.zip + Expand-Archive -Force 'cava.zip' + Remove-Item -Force cava\config + iscc setup.iss + - name: Upload + uses: actions/upload-artifact@v4 + with: + path: ${{github.workspace}}/inno/NickvisionCavalierSetup.exe + name: Windows-x64-Release diff --git a/.gitignore b/.gitignore index 3723275..108072f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,356 +1,67 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app # User-specific files *.rsuser *.suo *.user +*.user.* *.userosscache *.sln.docstates -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015/2017 cache/options directory +# Directories +out/ +out-linux/ +out-windows/ +out-mac/ +build/ +build-linux/ +build-windows/ +build-mac/ +bin/ +.cache/ .vs/ .vscode/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -#Intellij .idea/ .fleet/ - -#Resources -*.Designer.cs - -# Flatpak Builder .flatpak-builder/ .flatpak/ - -# Temporary build files _nickbuild/ -*.ui +*.snap -# Backup files -*.bak +# CMake +CMakeUserPresets.json +compile_commands.json -# Cake tools -tools/ +# Exe Files +*.exe diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 296784f..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "CakeScripts"] - path = CakeScripts - url = https://github.com/NickvisionApps/CakeScripts.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..dcc070a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,50 @@ +cmake_minimum_required (VERSION 3.25) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +if(DEFINED ENV{VCPKG_ROOT}) + file(TO_CMAKE_PATH $ENV{VCPKG_ROOT} VCPKG_ROOT) + if(EXISTS "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake") + set(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake") + set(USING_VCPKG ON) + endif() +endif() +if (POLICY CMP0141) + cmake_policy(SET CMP0141 NEW) + set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$,$>,$<$:EditAndContinue>,$<$:ProgramDatabase>>") +endif() + +project("org.nickvision.cavalier" LANGUAGES C CXX VERSION 2025.2.0 DESCRIPTION "Visualize audio with CAVA.") +set(SHORT_NAME "cavalier") +set(DISPLAY_NAME "Cavalier") +include(GNUInstallDirs) + +file(STRINGS "${CMAKE_SOURCE_DIR}/resources/po/POTFILES" TRANSLATE_FILES) +file(STRINGS "${CMAKE_SOURCE_DIR}/resources/po/LINGUAS" LINGUAS) +set(POT_FILE "${CMAKE_SOURCE_DIR}/resources/po/${SHORT_NAME}.pot") + +find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext) +find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge) +find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt) +if(EXISTS "${GETTEXT_XGETTEXT_EXECUTABLE}") + if(EXISTS "${GETTEXT_MSGMERGE_EXECUTABLE}") + if(EXISTS "${GETTEXT_MSGFMT_EXECUTABLE}") + set(HAS_GETTEXT TRUE) + endif() + endif() +endif() + +add_subdirectory("lib${SHORT_NAME}") +if(WIN32) + add_subdirectory("${PROJECT_NAME}.qt") +else() + if(NOT DEFINED UI_PLATFORM) + if(LINUX) + add_subdirectory("${PROJECT_NAME}.gnome") + else() + add_subdirectory("${PROJECT_NAME}.qt") + endif() + else() + add_subdirectory("${PROJECT_NAME}.${UI_PLATFORM}") + endif() +endif() diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index db08e8e..996b4d7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Contributing to Cavalier +# Contributing to Nickvision Application First off, thanks for taking the time to contribute! ❤️ @@ -6,8 +6,8 @@ All types of contributions are encouraged and valued. See the [Table of Contents > And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about: > - Star the project -> - Tweet about it -> - Refer this project in your project's readme +> - Post about it +> - Reference this project in your project's readme > - [Sponsor](https://github.com/sponsors/nlogozzo) the lead developer ## Table of Contents @@ -20,83 +20,84 @@ All types of contributions are encouraged and valued. See the [Table of Contents - [Via Weblate](#via-weblate) - [Manually](#manually) - [Your First Code Contribution](#your-first-code-contribution) - - [Developing on Linux](#developing-on-linux) - [Styleguides](#styleguides) - [Join The Project Team](#join-the-project-team) ## I Have a Question -Before you ask a question, it is best to search for existing [Discussions](https://github.com/NickvisionApps/Cavalier/discussions) and [Issues](https://github.com/NickvisionApps/Cavalier/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this discussion post. It is also advisable to search the internet for answers first. +Before you ask a question, it is best to search for existing [Discussions](https://github.com/NickvisionApps/Application/discussions) and [Issues](https://github.com/NickvisionApps/Application/issues) that might help you. + +In case you have found a suitable existing issue/discussion and still need clarification, you can write your question in said post. It is also advisable to search the internet for answers first to common error messages. If you then still feel the need to ask a question and need clarification, we recommend the following: -- Open a [Discussion](https://github.com/NickvisionApps/Cavalier/discussions). +- Open a [Discussion](https://github.com/NickvisionApps/Application/discussions). - Provide as much context as you can about what you're running into. - Provide project and platform versions (windows, gnome, etc...), depending on what seems relevant. -We will then take care of the question as soon as possible. +We will then take care of the question as soon as possible and convert it to a proper issue, if needed. ## I Want To Contribute > ### Legal Notice -> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project [license](LICENSE). +> When contributing to this project, you must agree that you have authored 100% of the content and/or that you have the necessary rights to the content and that the content you contribute may be provided under the project [license](COPYING). ### Reporting Bugs #### Before Submitting a Bug Report -A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible. +A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask that you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible: - Make sure that you are using the latest released version. - Determine if your bug is really a bug and not an error on your side. If you are looking for support, you might want to check [this section](#i-have-a-question). -- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in both the [Discussions](https://github.com/NickvisionApps/Cavalier/discussions) and [Issues](https://github.com/NickvisionApps/Cavalier/issues) sections. +- See if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in both the [Discussions](https://github.com/NickvisionApps/Application/discussions) and [Issues](https://github.com/NickvisionApps/Application/issues) sections. - Collect information about the bug: - Debug information provided by the application - - - GNOME: from main menu open About Cavalier → Troubleshooting → Debugging Information, here you can copy information to clipboard or save to a file. + - GNOME: From the main hamburger menu, open About Application → Troubleshooting → Debugging Information and copy the information to the clipboard to paste in your issue. + - WinUI: From the Help item in the left-side navigation, click the gear/wrench icon in the top right corner of the flyout to copy the information to the clipboard to paste in your issue. - Stack trace (Traceback) - Including any error messages thrown by the application - You may need to start the application via the terminal/console to receive an error message for a crash. - - OS, Platform and Version (Linux/Distro, Kernel Version, x64/ARM) - - Possibly your input and the output + - OS, Platform and Version (Distro, Kernel Version, x64/ARM, etc...) + - Your input and the output to the application + - i.e. Steps you took to produce the crash and/or attach any files you may have opened within the app that caused a crash - Can you reliably reproduce the issue? And can you also reproduce it with older versions? #### How Do I Submit a Good Bug Report? -> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to . +> You must never report security related issues, vulnerabilities and bugs (including sensitive information) to the issue tracker nor elsewhere in public. Instead sensitive issues must be reported and handled via email to . We use GitHub issues to track bugs and errors. If you run into an issue with the project: -- Open an [Issue](https://github.com/NickvisionApps/Cavalier/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.) -- Explain the behavior you would expect and the actual behavior. -- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case. +- Open a [new Issue](https://github.com/NickvisionApps/Application/issues/new) and explain the behavior you are experiencing and what you expect to happen. +- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own system. For good bug reports you should isolate the problem and create a reduced test case. - Provide the information you collected in the previous section. -Once it's filed: +Once it has been opened: - The project team will label the issue accordingly. -- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps. Bugs that are not able to be reproduced will not be addressed until they are reproduced. -- If the team is able to reproduce the issue, it will be marked as a `bug` and the issue will be left to be [implemented by someone](#your-first-code-contribution). +- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps. + - Bugs that are not able to be reproduced will not be addressed until they are reproduced. Therefore, it is important to include steps to speed up the fixing process. ### Suggesting Enhancements -This section guides you through submitting an enhancement suggestion for Cavalier, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions. +This section guides you through submitting an enhancement suggestion for Nickvision Application, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community in understanding your suggestion and finding related suggestions. #### Before Submitting an Enhancement - Make sure that you are using the latest released version. -- Perform a search through [Discussions](https://github.com/NickvisionApps/Cavalier/discussions) and [Issues](https://github.com/NickvisionApps/Cavalier/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. +- Perform a search through [Discussions](https://github.com/NickvisionApps/Application/discussions) and [Issues](https://github.com/NickvisionApps/Application/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. - Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. #### How Do I Submit a Good Enhancement Suggestion? -Enhancement suggestions are tracked as [GitHub issues](https://github.com/NickvisionApps/Cavalier/issues). +Enhancement suggestions are tracked as [GitHub issues](https://github.com/NickvisionApps/Application/issues). - Use a **clear and descriptive title** for the issue to identify the suggestion. - Provide a **step-by-step description of the suggested enhancement** in as many details as possible. -- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you. -- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://flathub.org/apps/details/io.github.seadve.Kooha) on Linux. -- **Explain why this enhancement would be useful** to most Cavalier users. You may also want to point out the other projects that solved it better and which could serve as inspiration. + - For enhancements to existing functionality, **describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you. + - For completely new features, **describe what you would like to see from this new feature** in terms of **both functionality and design**. Providing mockups, even if in sketch format, greatly help the team envision what you would like to see. +- **Explain why this enhancement would be useful** to most Application users. You may also want to point out similar projects of other platforms and their solutions to serve as inspiration. ### Providing Translations @@ -104,21 +105,19 @@ Everyone is welcome to translate this app into their native or known languages, ##### Via Weblate -Cavalier is available to translate on [Weblate](https://hosted.weblate.org/engage/nickvision-cavalier/)! +Application is available to translate on [Weblate](https://hosted.weblate.org/engage/nickvision-application/)! ##### Manually To start translating the app, fork the repository and clone it locally. -Cavalier uses [gettext](https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files) for translations. In the `NickvisionCavalier.Shared/Resources/po` you will find files that can be edited in your favourite `*.po` files editor or any text editor. If you want to create a new translation, copy `application.pot` file, name the new file `.po`, where `` is the language code for your translation (usually it's 2 letters, but it also can be a locale code to differentiate between different version of the same language, for example `pt` and `pt_BR`) and edit this file. Also add the language code to `LINGUAS` file (please keep codes sorted alphabetically there). +Application uses [gettext](https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files) for translations. In the `resources/po` folder you will find files that can be edited in your favourite `*.po` files editor (or with any plain text editor). -To check your translation file, make sure your system is in the locale of the language you are translating and run the app. You should see your translated strings! +If you want to create a new translation, copy the `application.pot` file and rename said copy as `.po`, where `` is the language code for your translation. Usually the code is two letters, but it can also be a specific locale code to differentiate between versions of the same language (for example, `pt` and `pt_BR`). **Also, add the language code to `LINGUAS` file** (keeping this file in alphabetical order). -In case you run the app in GNOME Builder, it will force the app to run in en_US locale. To run the app in your locale without exporting and installing it, follow this steps: +Edit your new translation file with correct translations for the English messages. -1. Build the application -2. Press Ctrl+Alt+T to open a terminal inside the application environment -3. Run the application with the following command: `LC_ALL= /app/bin/org.nickvision.cavalier/NickvisionCavalier.GNOME`, where `` is your system locale code (e.g. `it_IT.UTF8`). +To check your translation file, make sure your system is in the locale of the language you are translating and [locally build and run the app](README#building-manually). If all steps were carried out successfully, you should see your translation in action! Once all changes to your translated file are made, commit these changes and create a pull request to the project. @@ -126,67 +125,76 @@ Once all changes to your translated file are made, commit these changes and crea #### Structure -Cavalier is built using .NET 8 and C#. With these technologies, Cavalier is built for GNOME (Linux). -The solution is setup into 2 projects: - - NickvisionCavalier.Shared - - NickvisionCavalier.GNOME +Application is built using C++20 and platform-native user interface libraries. With these technologies, Application is built for all desktop platforms. -The whole solution utilizes the [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) pattern for separating data and UI views. +The project is split up into the following sub-projects: + - [libapplication](#libapplication) + - [org.nickvision.application.gnome](#org.nickvision.application.gnome) + - [org.nickvision.application.qt](org.nickvision.application.qt) -##### NickvisionCavalier.Shared +The whole project utilizes the [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) pattern for separating data models and UI views. -This project contains all of the code used by all platforms of the app. -- Models => The data driven objects of the application (i.e. Configuration, Database, etc...) -- Controllers => The objects used by UI views to receive and manipulate data from the Models -- Helpers => Useful objects and functions such as the Gettext functions for receiving translated strings throughout the app -- Resources => Strings, icons, and fonts used by the app +##### libapplication -##### NickvisionCavalier.GNOME +This project contains all of the code used by all platforms of the app: +- `controllers` => The objects used by UI views to receive and manipulate data from the models. +- `helpers` => Useful objects and functions specific to the application that can be used by all platforms. +- `models` => The data driven objects of the application (i.e. Configuration, Database, etc...). -This project contains all of the code used for the GNOME platform version of the app, including flathub manifest and desktop files. -Powered by the C# bindings for GTK4/Libadwaita: [gir.core](https://github.com/gircore/gir.core) -- Views => The views (pages, windows, dialogs) of the app that connect to the shared controllers -- Controls => Generic controls for the app - - These controls should not be connected to a controller and should be able to be ported to any other application -- Helpers => Useful objects that are specific for GNOME platform version of the app -- Blueprints => UI files written in [Blueprint markup language](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/) +##### org.nickvision.application.gnome -#### Developing on Linux +This project contains all of the code used for the GNOME platform version of the app, including flathub manifest and desktop files: +- `blueprints` => UI design files written in [Blueprint markup language](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/). +- `controls` => Generic controls for the app. + - These UI objects are separate from views in that they should not be backed by a controller and should be easily ported to any other app. +- `helpers` => Useful objects and functions specific for the GNOME platform version of the app. +- `resources` => Extra icons and other files specific for the GNOME platform version of the app. +- `views` => The views (pages, windows, dialogs, etc...) of the app. -##### GNOME +##### org.nickvision.application.qt -Recommended IDEs: -- GNOME Builder 43 and up. -- VS Code with [flatpak extension](https://github.com/bilelmoussaoui/flatpak-vscode). +This project contains all of the code used for the QT platform (Windows, KDE) version of the app: +- `controls` => Generic controls for the app. + - These UI objects are separate from views in that they should not be backed by a controller and should be easily ported to any other app. +- `helpers` => Useful objects and functions specific for the QT platform version of the app. +- `resources` => Extra icons and other files specific for the QT platform version of the app. +- `views` => The views (pages, windows, dialogs, etc...) of the app. -You may also make your changes via any code editor and use [`flatpak-builder`](https://docs.flatpak.org/en/latest/flatpak-builder.html) to run the application locally through flatpak. +#### Developing and Testing -You may also build the app manually without using flatpak. List of dependencies: -- dotnet >=8.0 -- GTK >=4.12 -- libadwaita >=1.4 -- [cake](https://cakebuild.net/) (build only) - - `dotnet tool install --global Cake.Tool` or `dotnet tool restore` (in repository root folder) -- blueprint-compiler, GTK and libadwaita development files (build only) -- glib-compile-resources (build only) +Application simply relies on `cmake` to configure and manage the correct projects for the running platform. Meaning, on Linux the `.gnome` variant of the app will be built by default and on Windows the `.qt` variant. -Use one of the commands to build the app: +Although on Linux, you can specify the `-DUI_PLATFORM=qt` flag to cmake and build and run the `.qt` variant. -| Command | Result | -|---|---| -| `dotnet cake --target=Run --ui=gnome` (in repo root folder) or `dotnet run` (in project subfolder) | Builds the application and runs it. Cavalier will not get installed, which might result in some missing icons and lack of desktop integration. | -| `dotnet cake --target=Publish --prefix=PREFIX --ui=gnome` | Builds the application in `_nickbuild` directory, preparing it to be installed in a provided prefix (examples of a valid prefix: `/usr`, `/app`). If `--self-contained` is added, the application will not need dotnet-runtime to run. -| `dotnet cake --target=Install --destdir=DESTDIR` | Copies files to the `DESTDIR`. `--destdir` is optional, by default files are copied to root (`/`). This command should be used after `Publish`. | +[See the readme](README#building-manually) for instructions on building and running the app locally. ## Styleguides -Cavalier follows [Microsoft's C# Coding Conventions](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions). +Application uses the following naming conventions: +- `CamelCase` for namespaces and classes +- `pascalCase` for file names, functions, and variables +- `m_` prefix appended to class member variables +- `get` and `set` prefixes used for accessor and modifiers methods of a class variable respectively + - Exception: For boolean class members, `is` and `setIs` should be used as the prefixes for the accessor and modifier methods of said members. + +Application uses the following coding styles: +- ```cpp + #ifndef FILENAME_H + #define FILENAME_H + ... + #endif //FILENAME_H + ``` + used as the guards to a header file. + - `#pragma once` should not be used. +- Brackets `{}` should be placed on individual new lines and never inline. + - This applies for any type of structure (`if`, `switch`, `class`, etc...) that requires brackets. + - *Single-line if statements should also be wrapped by brackets.* +- Proper indentation using spacing with spaces and not tabs. -See [Microsoft's C# Identifier Names](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/identifier-names) as well. ## Join The Project Team Join our room ## Attribution -This guide is based on the **contributing-gen**. [Make your own](https://github.com/bttger/contributing-gen)! +This guide was based on a template by [contributing-gen](https://github.com/bttger/contributing-gen). diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..e62ec04 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/CakeScripts b/CakeScripts deleted file mode 160000 index cbc0135..0000000 --- a/CakeScripts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cbc0135ee8a02f85d6f1a8525096c26d059886e8 diff --git a/Cavalier.doap b/Cavalier.doap index a5923b3..b5293e6 100644 --- a/Cavalier.doap +++ b/Cavalier.doap @@ -10,12 +10,13 @@ - C# + C++ - Fyodor Sobolev - fsobolev + Nick Logozzo + + nlogozzo diff --git a/Cavalier.sln b/Cavalier.sln deleted file mode 100644 index a0cd550..0000000 --- a/Cavalier.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.7.34031.279 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NickvisionCavalier.GNOME", "NickvisionCavalier.GNOME\NickvisionCavalier.GNOME.csproj", "{83591021-4119-45D3-B9D8-5A4286F0B1DF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NickvisionCavalier.Shared", "NickvisionCavalier.Shared\NickvisionCavalier.Shared.csproj", "{786C1BD5-5C0B-4137-A964-380CEF7A55FA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {83591021-4119-45D3-B9D8-5A4286F0B1DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83591021-4119-45D3-B9D8-5A4286F0B1DF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {83591021-4119-45D3-B9D8-5A4286F0B1DF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {83591021-4119-45D3-B9D8-5A4286F0B1DF}.Release|Any CPU.Build.0 = Release|Any CPU - {786C1BD5-5C0B-4137-A964-380CEF7A55FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {786C1BD5-5C0B-4137-A964-380CEF7A55FA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {786C1BD5-5C0B-4137-A964-380CEF7A55FA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {786C1BD5-5C0B-4137-A964-380CEF7A55FA}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1F1F0567-83B9-4EA3-8821-EC0E699D2A0D} - EndGlobalSection -EndGlobal diff --git a/LICENSE b/LICENSE deleted file mode 100644 index bc652ef..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Fyodor Sobolev - -Permission 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: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE 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. diff --git a/NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp b/NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp deleted file mode 100644 index 7f5a9a4..0000000 --- a/NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp +++ /dev/null @@ -1,54 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -Adw.Window _root { - default-width: 400; - modal: true; - resizable: false; - - content: Adw.ToolbarView { - [top] - Adw.HeaderBar { - title-widget: Gtk.Label { }; - } - - content: Gtk.WindowHandle { - Gtk.Box { - orientation: vertical; - - Gtk.Label { - label: _("Command Help"); - styles ["title-2"] - } - - Gtk.Separator { - margin-top: 24; - } - - Gtk.ScrolledWindow { - hexpand: true; - vexpand: true; - hscrollbar-policy: never; - propagate-natural-height: true; - max-content-height: 300; - - child: Gtk.Label _helpLabel { - margin-top: 12; - margin-start: 12; - margin-end: 12; - margin-bottom: 12; - }; - - styles ["view"] - } - } - }; - }; - - Gtk.ShortcutController { - Gtk.Shortcut { - trigger: "Escape"; - action: "action(window.close)"; - } - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Blueprints/drawing_view.blp b/NickvisionCavalier.GNOME/Blueprints/drawing_view.blp deleted file mode 100644 index b5f7edb..0000000 --- a/NickvisionCavalier.GNOME/Blueprints/drawing_view.blp +++ /dev/null @@ -1,50 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -Gtk.Stack _root { - Gtk.StackPage _loadPage { - name: "load"; - child: Adw.Bin { - Gtk.Spinner { - halign: center; - width-request: 50; - spinning: true; - } - - styles ["load-bin"] - }; - } - - Gtk.StackPage _welcomePage { - name: "welcome"; - child: Adw.Bin { - Adw.StatusPage _welcomeStatus { - margin-start: 6; - margin-end: 6; - icon-name: "man-dancing"; - title: _("Let's dance!"); - description: _("Cavalier listens to your system sound. Play some music or watch a video and see your sound come to life!"); - styles ["compact"] - } - - styles ["load-bin"] - }; - } - - Gtk.StackPage _glPage { - name: "gl"; - child: Gtk.GLArea _glArea { - hexpand: true; - vexpand: true; - auto-render: false; - }; - } - - Gtk.StackPage _cairoPage { - name: "cairo"; - child: Gtk.DrawingArea _cairoArea { - hexpand: true; - vexpand: true; - }; - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp b/NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp deleted file mode 100644 index 0405320..0000000 --- a/NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp +++ /dev/null @@ -1,650 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -Adw.PreferencesWindow _root { - default-width: 620; - default-height: 500; - modal: false; - destroy-with-parent: true; - hide-on-close: true; - title: _("Preferences"); - - Adw.PreferencesPage { - title: _("Cavalier"); - icon-name: "org.nickvision.cavalier-symbolic"; - - Adw.PreferencesGroup { - title: _("Drawing mode"); - - [header-suffix] - Gtk.Box { - halign: center; - - Gtk.ToggleButton _boxButton { - label: _("Box"); - } - - Gtk.ToggleButton { - label: _("Circle"); - active: bind _boxButton.active bidirectional inverted; - } - - styles ["linked"] - } - - Adw.ActionRow { - title: _("Wave"); - activatable-widget: _waveCheckButton; - - [prefix] - Gtk.CheckButton _waveCheckButton {} - } - - Adw.ActionRow { - title: _("Levels"); - activatable-widget: _levelsCheckButton; - - [prefix] - Gtk.CheckButton _levelsCheckButton { - group: _waveCheckButton; - } - } - - Adw.ActionRow { - title: _("Particles"); - activatable-widget: _particlesCheckButton; - - [prefix] - Gtk.CheckButton _particlesCheckButton { - group: _waveCheckButton; - } - } - - Adw.ActionRow { - title: _("Bars"); - activatable-widget: _barsCheckButton; - - [prefix] - Gtk.CheckButton _barsCheckButton { - group: _waveCheckButton; - } - } - - Adw.ActionRow _spineRow { - title: _("Spine"); - activatable-widget: _spineCheckButton; - - [prefix] - Gtk.CheckButton _spineCheckButton { - group: _waveCheckButton; - } - } - - Adw.ActionRow { - title: _("Splitter"); - activatable-widget: _splitterCheckButton; - sensitive: bind _boxButton.active; - - [prefix] - Gtk.CheckButton _splitterCheckButton { - group: _waveCheckButton; - } - } - } - - Adw.PreferencesGroup { - visible: bind _boxButton.active inverted; - - Adw.ActionRow { - title: _("Radius"); - - [suffix] - Gtk.Scale _radiusScale { - width-request: 150; - draw-value: false; - adjustment: Gtk.Adjustment { - lower: 0.2; - upper: 0.8; - step-increment: 0.05; - }; - } - } - - Adw.ActionRow { - title: _("Rotation"); - - [suffix] - Gtk.Scale _rotationScale { - width-request: 150; - draw-value: false; - adjustment: Gtk.Adjustment { - lower: 0; - upper: 6.284; - step-increment: 0.01; - }; - } - } - } - - Adw.PreferencesGroup { - Adw.ComboRow _mirrorRow { - title: _("Mirror"); - } - - Adw.SwitchRow _reverseMirrorRow { - title: _("Reverse mirror"); - } - } - - Adw.PreferencesGroup { - Adw.ComboRow _directionRow { - title: _("Drawing direction"); - model: Gtk.StringList { - strings [_("Top to bottom"), _("Bottom to top"), _("Left to right"), _("Right to left") ] - }; - } - - Adw.ActionRow { - title: _("Drawing area margin"); - subtitle: _("Size of gaps around drawing area (in pixels)."); - - [suffix] - Gtk.Scale _marginScale { - width-request: 180; - draw-value: true; - value-pos: left; - digits: 0; - adjustment: Gtk.Adjustment { - lower: 0; - upper: 40; - step-increment: 1; - }; - } - } - - Adw.ActionRow { - title: _("Drawing area X offset"); - - [suffix] - Gtk.Scale _areaOffsetXScale { - width-request: 150; - draw-value: false; - adjustment: Gtk.Adjustment { - lower: -0.5; - upper: 0.5; - step-increment: 0.01; - }; - } - } - - Adw.ActionRow { - title: _("Drawing area Y offset"); - - [suffix] - Gtk.Scale _areaOffsetYScale { - width-request: 150; - draw-value: false; - adjustment: Gtk.Adjustment { - lower: -0.5; - upper: 0.5; - step-increment: 0.01; - }; - } - } - - Adw.ActionRow _offsetRow { - title: _("Offset between items"); - subtitle: _("The size of spaces between elements (in percent)."); - - [suffix] - Gtk.Scale _offsetScale { - width-request: 180; - draw-value: true; - value-pos: left; - digits: 0; - adjustment: Gtk.Adjustment { - lower: 0; - upper: 20; - step-increment: 1; - }; - } - } - - Adw.ActionRow _roundnessRow { - title: _("Roundness of items"); - subtitle: _("How much rounded the elements should be (in percent)."); - - [suffix] - Gtk.Scale _roundnessScale { - width-request: 180; - draw-value: true; - value-pos: left; - digits: 0; - adjustment: Gtk.Adjustment { - lower: 0; - upper: 100; - step-increment: 1; - }; - } - } - - Adw.SwitchRow _fillingRow { - title: _("Filling"); - subtitle: _("Whether shapes should be filled or outlined."); - } - - Adw.ActionRow _thicknessRow { - title: _("Thickness of lines"); - subtitle: _("Thickness of lines when filling is off (in pixels)."); - sensitive: bind _fillingRow.active inverted; - - [suffix] - Gtk.Scale _thicknessScale { - width-request: 180; - draw-value: true; - value-pos: left; - digits: 0; - adjustment: Gtk.Adjustment { - lower: 1; - upper: 10; - step-increment: 1; - }; - } - } - } - - Adw.PreferencesGroup { - Adw.SwitchRow _borderlessRow { - title: _("Borderless window"); - subtitle: _("Whether to disable window shadow and borders."); - } - - Adw.SwitchRow _sharpCornersRow { - title: _("Sharp corners"); - subtitle: _("Whether the main window corners should be sharp."); - } - - Adw.SwitchRow _windowControlsRow { - title: _("Window controls"); - subtitle: _("Whether to show window control buttons."); - } - - Adw.SwitchRow _autohideHeaderRow { - title: _("Autohide headerbar"); - subtitle: _("Whether to hide headerbar when main window is not focused."); - } - } - } - - Adw.PreferencesPage { - title: "CAVA"; - icon-name: "utilities-terminal-symbolic"; - - Adw.PreferencesGroup { - Adw.ComboRow _framerateRow { - title: _("Framerate"); - subtitle: _("Number of frames per second."); - model: Gtk.StringList { - strings ["30", "60", "90", "120", "144", _("Custom")] - }; - } - - Adw.EntryRow _customFramerateRow { - show-apply-button: true; - title: _("Custom Framerate"); - visible: false; - } - - Adw.ActionRow { - title: _("Number of bars"); - - [suffix] - Gtk.Scale _barsScale { - width-request: 180; - draw-value: true; - value-pos: left; - digits: 0; - adjustment: Gtk.Adjustment { - lower: 6; - upper: 100; - step-increment: 2; - }; - } - } - - Adw.SwitchRow _autosensRow { - title: _("Automatic sensitivity"); - subtitle: _("Attempt to decrease sensitivity if the bars peak."); - } - - Adw.ActionRow { - title: _("Sensitivity"); - subtitle: _("Manual sensitivity. If automatic sensitivity is enabled, this will only be the initial value."); - - [suffix] - Gtk.Scale _sensitivityScale { - width-request: 150; - draw-value: false; - adjustment: Gtk.Adjustment { - lower: 10; - upper: 250; - step-increment: 10; - }; - } - } - - Adw.ActionRow { - title: _("Channels"); - - [suffix] - Gtk.Box { - valign: center; - - Gtk.ToggleButton _monoButton { - label: _("Mono"); - } - - Gtk.ToggleButton _stereoButton { - label: _("Stereo"); - active: bind _monoButton.active inverted bidirectional; - } - - styles ["linked"] - } - } - - Adw.SwitchRow _monstercatRow { - title: _("Monstercat smoothing"); - subtitle: _("Whether to enable the so-called «Monstercat smoothing»."); - } - - Adw.ActionRow { - title: _("Noise reduction"); - subtitle: _("This factor adjusts the integral and gravity filters to keep the signal smooth.\nHigher value leads to a slower and smoother result."); - - [suffix] - Gtk.Scale _noiseReductionScale { - width-request: 180; - draw-value: true; - value-pos: left; - digits: 0; - adjustment: Gtk.Adjustment { - lower: 15; - upper: 95; - step-increment: 1; - }; - } - } - - Adw.SwitchRow _reverseRow { - title: _("Reverse order"); - subtitle: _("Whether to reverse order of bars for each channel."); - } - } - } - - Adw.PreferencesPage { - title: _("Colors"); - icon-name: "applications-graphics-symbolic"; - - Gtk.Box { - Gtk.Box { - orientation: vertical; - - Gtk.ScrolledWindow { - hscrollbar-policy: never; - - child: Gtk.ListBox _profilesList { - vexpand: true; - width-request: 140; - }; - } - - Gtk.Button _addProfileButton { - margin-top: 6; - margin-start: 6; - margin-end: 6; - margin-bottom: 6; - - child: Adw.ButtonContent { - label: _("Add Profile"); - icon-name: "list-add-symbolic"; - }; - - styles [ "flat" ] - } - } - - Gtk.Separator {} - - Gtk.ScrolledWindow { - hscrollbar-policy: never; - - child: Gtk.Box { - orientation: vertical; - spacing: 12; - margin-top: 12; - margin-start: 12; - margin-end: 12; - margin-bottom: 12; - - Adw.PreferencesGroup { - Adw.ActionRow { - title: _("Application Theme"); - title-lines: 1; - - [suffix] - Gtk.Box { - valign: center; - - Gtk.ToggleButton _lightThemeButton { - label: _("Light"); - } - - Gtk.ToggleButton { - label: _("Dark"); - active: bind _lightThemeButton.active bidirectional inverted; - } - - styles [ "linked" ] - } - } - } - - Gtk.Grid _colorsGrid { - hexpand: true; - vexpand: true; - column-homogeneous: true; - column-spacing: 8; - - Gtk.Box { - halign: center; - spacing: 8; - margin-top: 8; - margin-start: 8; - margin-end: 8; - margin-bottom: 8; - - Gtk.Label { - label: _("Foreground Colors"); - ellipsize: end; - - styles [ "heading" ] - } - - Gtk.Button _addFgColorButton { - icon-name: "list-add-symbolic"; - tooltip-text: _("Add foreground color"); - - styles [ "circular" ] - } - } - - Gtk.Box { - halign: center; - spacing: 8; - margin-top: 8; - margin-start: 8; - margin-end: 8; - margin-bottom: 8; - - Gtk.Label { - label: _("Background Colors"); - - styles [ "heading" ] - } - - Gtk.Button _addBgColorButton { - icon-name: "list-add-symbolic"; - tooltip-text: _("Add background color"); - - styles [ "circular" ] - } - } - - styles [ "card" ] - } - }; - } - } - } - - Adw.PreferencesPage { - title: _("Images"); - icon-name: "image-x-generic-symbolic"; - - Gtk.Box { - orientation: vertical; - margin-top: 12; - margin-start: 12; - margin-end: 12; - margin-bottom: 12; - spacing: 12; - - Gtk.Box { - Gtk.Box { - Gtk.ToggleButton _bgImgButton { - label: _("Background"); - active: true; - } - - Gtk.ToggleButton { - label: _("Foreground"); - active: bind _bgImgButton.active bidirectional inverted; - } - - styles ["linked"] - } - - Gtk.Separator { - hexpand: true; - - styles ["spacer"] - } - - Gtk.Button _addImageButton { - Adw.ButtonContent { - label: _("Add Image"); - icon-name: "list-add-symbolic"; - } - } - } - - Gtk.Box { - Gtk.Label { - hexpand: true; - halign: start; - margin-start: 12; - label: _("Scale"); - } - - Gtk.SpinButton _imgScaleSpin { - valign: center; - margin-top: 6; - margin-start: 6; - margin-end: 6; - margin-bottom: 6; - digits: 2; - adjustment: Gtk.Adjustment { - lower: 0.1; - upper: 1.0; - step-increment: 0.05; - }; - } - - Gtk.Separator {} - - Gtk.Label { - hexpand: true; - halign: start; - margin-start: 12; - label: _("Alpha"); - } - - Gtk.SpinButton _imgAlphaSpin { - valign: center; - margin-top: 6; - margin-start: 6; - margin-end: 6; - margin-bottom: 6; - digits: 2; - adjustment: Gtk.Adjustment { - lower: 0.1; - upper: 1.0; - step-increment: 0.05; - }; - } - - styles ["card"] - } - - Gtk.Label { - label: _("Foreground image is only shown with Box drawing modes."); - visible: bind _bgImgButton.active inverted; - - styles ["warning"] - } - - Gtk.Stack _imagesStack - { - Gtk.StackPage { - name: "empty"; - child: Adw.StatusPage { - vexpand: true; - title: _("No Images"); - description: _("Add an image to use it in Cavalier."); - icon-name: "image-x-generic-symbolic"; - }; - } - - Gtk.StackPage { - name: "images"; - child: Gtk.ScrolledWindow { - vexpand: true; - hscrollbar-policy: never; - - Gtk.FlowBox _imagesFlowBox { - valign: start; - homogeneous: true; - min-children-per-line: 3; - - Gtk.Image { - icon-name: "x-circular-symbolic"; - tooltip-text: _("No Image"); - pixel-size: 42; - margin-top: 2; - margin-start: 2; - margin-end: 2; - margin-bottom: 2; - - styles ["cavalier-image"] - } - } - - styles ["card"] - }; - } - } - } - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp b/NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp deleted file mode 100644 index b2cb376..0000000 --- a/NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp +++ /dev/null @@ -1,177 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -Gtk.ShortcutsWindow _shortcuts { - default-width: 600; - default-height: 500; - resizable: true; - destroy-with-parent: false; - - Gtk.ShortcutsSection { - Gtk.ShortcutsGroup { - title: _("Cavalier"); - - Gtk.ShortcutsShortcut { - title: _("Change Drawing Mode"); - accelerator: "D D"; - } - - Gtk.ShortcutsShortcut { - title: _("Change radius in Circle modes"); - accelerator: "U U"; - } - - Gtk.ShortcutsShortcut { - title: _("Change rotation in Circle modes"); - accelerator: "O O"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Mirror Mode"); - accelerator: "M M"; - } - - Gtk.ShortcutsShortcut { - title: _("Toggle Reverse Mirror"); - accelerator: "V"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Drawing Area Margin"); - accelerator: "N N"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Drawing Area X Offset"); - accelerator: "X X"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Drawing Area Y Offset"); - accelerator: "Y Y"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Drawing Direction"); - accelerator: "G G"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Offset Between Items"); - accelerator: "T T"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Items Roundness"); - accelerator: "R R"; - } - - Gtk.ShortcutsShortcut { - title: _("Toggle Filling"); - accelerator: "F"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Lines Thickness"); - accelerator: "L L"; - } - - Gtk.ShortcutsShortcut { - title: _("Toggle Window Borders"); - accelerator: "W"; - } - - Gtk.ShortcutsShortcut { - title: _("Toggle Sharp Corners"); - accelerator: "S"; - } - } - - Gtk.ShortcutsGroup { - title: "CAVA"; - - Gtk.ShortcutsShortcut { - title: _("Change Number of Bars"); - accelerator: "B B"; - } - - Gtk.ShortcutsShortcut { - title: _("Toggle Channels"); - accelerator: "C"; - } - - Gtk.ShortcutsShortcut { - title: _("Toggle Reverse Order"); - accelerator: "E"; - } - } - - Gtk.ShortcutsGroup { - title: _("Other"); - - Gtk.ShortcutsShortcut { - title: _("Change Color Profile"); - accelerator: "P P"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Background Image"); - accelerator: "1 1"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Background Image Scale"); - accelerator: "2 2"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Background Image Alpha"); - accelerator: "3 3"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Foreground Image"); - accelerator: "4 4"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Foreground Image Scale"); - accelerator: "5 5"; - } - - Gtk.ShortcutsShortcut { - title: _("Change Foreground Image Alpha"); - accelerator: "6 6"; - } - } - - Gtk.ShortcutsGroup { - title: C_("Shortcut", "Application"); - - Gtk.ShortcutsShortcut { - title: _("Toggle Fullscreen"); - accelerator: "F11"; - } - - Gtk.ShortcutsShortcut { - title: _("Preferences"); - accelerator: "comma"; - } - - Gtk.ShortcutsShortcut { - title: _("Keyboard Shortcuts"); - accelerator: "question"; - } - - Gtk.ShortcutsShortcut _aboutShortcut { - title: _("About Cavalier"); - accelerator: "F1"; - } - - Gtk.ShortcutsShortcut { - title: _("Quit"); - accelerator: "q"; - } - } - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Blueprints/window.blp b/NickvisionCavalier.GNOME/Blueprints/window.blp deleted file mode 100644 index 94058ac..0000000 --- a/NickvisionCavalier.GNOME/Blueprints/window.blp +++ /dev/null @@ -1,83 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -menu mainMenu { - item(_("Preferences"), "win.preferences") - item(_("Keyboard Shortcuts"), "win.keyboardShortcuts") - item(_("About Cavalier"), "win.about") - item(_("Quit"), "win.quit") -} - -Adw.ApplicationWindow _root { - width-request: 232; - height-request: 232; - - Gtk.Overlay _overlay { - [overlay] - Adw.Bin _resizeBin { - visible: false; - child: Gtk.Box { - orientation: vertical; - spacing: 12; - valign: center; - - Gtk.Image { - icon-name: "org.nickvision.cavalier"; - pixel-size: 128; - } - - Gtk.Box { - halign: center; - spacing: 6; - - Gtk.Image { - icon-name: "view-fullscreen-symbolic"; - - styles ["dim-label"] - } - - Gtk.Label { - wrap: true; - justify: center; - label: _("Resizing..."); - - styles ["dim-label", "title-3"] - } - } - }; - - styles [ "background" ] - } - - [overlay] - Gtk.Box { - orientation: vertical; - - Gtk.Revealer _headerRevealer { - reveal-child: true; - transition-duration: 1000; - transition-type: crossfade; - child: Adw.HeaderBar _header { - title-widget: Adw.WindowTitle {}; - - [start] - Gtk.MenuButton { - direction: none; - menu-model: mainMenu; - tooltip-text: _("Main Menu"); - primary: true; - } - - styles ["flat"] - }; - } - - Gtk.WindowHandle { - hexpand: true; - vexpand: true; - } - } - } - - styles [ "main-window" ] -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs b/NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs deleted file mode 100644 index c12d59e..0000000 --- a/NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs +++ /dev/null @@ -1,65 +0,0 @@ -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Controls; - -/// -/// A dialog for showing a message -/// -public class AddProfileDialog -{ - private readonly Adw.MessageDialog _dialog; - - /// - /// New profile name - /// - public string ProfileName { get; set; } - - /// - /// Constructs a MessageDialog - /// - /// Gtk.Window - /// The name of the icon of the dialog - public AddProfileDialog(Gtk.Window parentWindow, string iconName) - { - ProfileName = ""; - _dialog = Adw.MessageDialog.New(parentWindow, _("Add New Profile"), _("New color profile will be a copy of the current active profile.")); - _dialog.SetIconName(iconName); - _dialog.SetSizeRequest(360, -1); - var prefGroup = Adw.PreferencesGroup.New(); - _dialog.SetExtraChild(prefGroup); - var nameEntry = Adw.EntryRow.New(); - nameEntry.SetTitle(_("Profile Name")); - nameEntry.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "text") - { - _dialog.SetResponseEnabled("suggested", nameEntry.GetText().Length > 0); - ProfileName = nameEntry.GetText(); - } - }; - prefGroup.Add(nameEntry); - _dialog.AddResponse("cancel", _("Cancel")); - _dialog.SetDefaultResponse("cancel"); - _dialog.SetCloseResponse("cancel"); - _dialog.AddResponse("suggested", _("Add")); - _dialog.SetResponseAppearance("suggested", Adw.ResponseAppearance.Suggested); - _dialog.SetResponseEnabled("suggested", false); - } - - public event GObject.SignalHandler OnResponse - { - add - { - _dialog.OnResponse += value; - } - remove - { - _dialog.OnResponse -= value; - } - } - - /// - /// Presents the dialog - /// - public void Present() => _dialog.Present(); -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Controls/ColorBox.cs b/NickvisionCavalier.GNOME/Controls/ColorBox.cs deleted file mode 100644 index ba4ced6..0000000 --- a/NickvisionCavalier.GNOME/Controls/ColorBox.cs +++ /dev/null @@ -1,100 +0,0 @@ -using NickvisionCavalier.GNOME.Helpers; -using NickvisionCavalier.Shared.Models; -using System; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Controls; - -/// -/// Arguments for color deletion and editing events -/// -public class ColorEventArgs : EventArgs -{ - /// - /// The type of the color - /// - public ColorType Type { get; init; } - /// - /// The index of the color in the profile's list - /// - public int Index { get; init; } - /// - /// The color as a string (#aarrggbb) - /// - public string Color { get; init; } - - /// - /// Creates ColorEventArgs - /// - /// Color type (background or foreground) - /// Color index in profile's list - /// Color string (#aarrggbb) - public ColorEventArgs(ColorType type, int index, string color = "") - { - Type = type; - Index = index; - Color = color; - } -} - -/// -/// A widget to control a color -/// -public partial class ColorBox : Gtk.Box -{ - /// - /// Occurs on color deletion request - /// - public event EventHandler? OnDelete; - /// - /// Occurs on color editing request - /// - public event EventHandler? OnEdit; - - /// - /// Creates color box - /// - /// Color string (#aarrggbb) - /// Color type (background or foreground) - /// Color index in profile's list - /// Whether the color can be deleted - public ColorBox(string color, ColorType type, int index, bool canDelete = true) - { - SetHalign(Gtk.Align.Center); - SetSpacing(4); - SetMarginBottom(8); - var colorButton = Gtk.ColorDialogButton.New(Gtk.ColorDialog.New()); - Append(colorButton); - colorButton.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "rgba") - { - var extColor = colorButton.GetExtRgba(); - if (extColor.Alpha <= 0.0001f) - { - extColor.Red = 0; - extColor.Green = 0; - extColor.Blue = 0; - } - OnEdit?.Invoke(this, new ColorEventArgs(type, index, $"#{((int)(extColor.Alpha * 255)).ToString("x2")}{((int)(extColor.Red * 255)).ToString("x2")}{((int)(extColor.Green * 255)).ToString("x2")}{((int)(extColor.Blue * 255)).ToString("x2")}")); - } - }; - var rgbaColor = $"#{color.Substring(3)}{color.Substring(1, 2)}"; - GdkHelpers.RGBA.Parse(out var extNullColor, rgbaColor); - if (extNullColor != null) - { - var extColor = extNullColor.Value; - if (extColor.Alpha == 0) - { - extColor.Alpha = 0.0001f; // Work around bug when button doesn't show color if alpha is 0 - } - colorButton.SetExtRgba(extColor); - } - var deleteButton = Gtk.Button.New(); - deleteButton.AddCssClass("circular"); - deleteButton.SetIconName("cross-symbolic"); - deleteButton.SetSensitive(canDelete); - Append(deleteButton); - deleteButton.OnClicked += (sender, e) => OnDelete?.Invoke(this, new ColorEventArgs(type, index)); - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Controls/CommandHelpDialog.cs b/NickvisionCavalier.GNOME/Controls/CommandHelpDialog.cs deleted file mode 100644 index 373e3e2..0000000 --- a/NickvisionCavalier.GNOME/Controls/CommandHelpDialog.cs +++ /dev/null @@ -1,38 +0,0 @@ -using NickvisionCavalier.GNOME.Helpers; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Controls; - -/// -/// A dialog to show command-line help -/// -public class CommandHelpDialog : Adw.Window -{ - [Gtk.Connect] private readonly Gtk.Label _helpLabel; - - /// - /// Construct a CommandHelpDialog - /// - /// Gtk.Builder - /// Gtk.Window - /// Icon name for the window - /// Help text - private CommandHelpDialog(Gtk.Builder builder, Gtk.Window parent, string iconName, string help) : base(builder.GetPointer("_root"), false) - { - builder.Connect(this); - //Dialog Settings - SetIconName(iconName); - SetTransientFor(parent); - _helpLabel.SetLabel(help); - } - - /// - /// Constructs a HistoryDialog - /// - /// Gtk.Window - /// Icon name for the window - /// Help text - public CommandHelpDialog(Gtk.Window parent, string iconName, string help) : this(Builder.FromFile("command_help_dialog.ui"), parent, iconName, help) - { - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Controls/ImageItem.cs b/NickvisionCavalier.GNOME/Controls/ImageItem.cs deleted file mode 100644 index 1c98177..0000000 --- a/NickvisionCavalier.GNOME/Controls/ImageItem.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Threading.Tasks; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Controls; - -/// -/// Image item in background image selector -/// -public class ImageItem : Gtk.Overlay, IDisposable -{ - private readonly Gtk.Picture _picture; - private readonly Gtk.Button _removeButton; - private Gdk.Texture? _texture; - private bool _disposed; - - /// - /// Occurs when remove button was clicked - /// - public event Action? OnRemoveImage; - - /// - /// Construct ImageItem - /// - public ImageItem(string path, int index) - { - _disposed = false; - SetMarginTop(2); - SetMarginStart(2); - SetMarginEnd(2); - SetMarginBottom(2); - _picture = Gtk.Picture.New(); - _picture.AddCssClass("cavalier-image"); - _picture.SetSizeRequest(160, 120); - _picture.SetContentFit(Gtk.ContentFit.Cover); - Task.Run(() => - { - _texture = Gdk.Texture.NewFromFilename(path); // This is thread-safe - GLib.Functions.IdleAdd(0, () => - { - _picture.SetPaintable(_texture); - return false; - }); - }); - SetChild(_picture); - _removeButton = Gtk.Button.New(); - _removeButton.SetIconName("cross-symbolic"); - _removeButton.AddCssClass("circular"); - _removeButton.AddCssClass("osd"); - _removeButton.SetHalign(Gtk.Align.End); - _removeButton.SetValign(Gtk.Align.Start); - _removeButton.SetMarginTop(6); - _removeButton.SetMarginStart(6); - _removeButton.SetMarginEnd(6); - _removeButton.SetMarginBottom(6); - _removeButton.OnClicked += (sender, e) => OnRemoveImage?.Invoke(index); - AddOverlay(_removeButton); - } - - /// - /// Finalizes the ImageItem object - /// - ~ImageItem() => Dispose(false); - - /// - /// Frees resources used by the ImageItem object - /// - public new void Dispose() - { - Dispose(true); - base.Dispose(); - GC.SuppressFinalize(this); - } - - /// - /// Frees resources used by the ImageItem object - /// - protected virtual void Dispose(bool disposing) - { - if (_disposed) - { - return; - } - if (disposing) - { - _texture?.Dispose(); - _picture.Dispose(); - } - _disposed = true; - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Controls/ProfileBox.cs b/NickvisionCavalier.GNOME/Controls/ProfileBox.cs deleted file mode 100644 index 1e47cad..0000000 --- a/NickvisionCavalier.GNOME/Controls/ProfileBox.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Controls; - -/// -/// A widget to control a profile -/// -public class ProfileBox : Gtk.Box -{ - public int Index { get; set; } - - public event EventHandler? OnDelete; - - /// - /// Creates ProfileBox - /// - /// Profile name - /// Profile index - public ProfileBox(string name, int index) - { - Index = index; - SetSizeRequest(-1, 34); - SetSpacing(4); - SetMarginTop(8); - SetMarginStart(8); - SetMarginEnd(8); - SetMarginBottom(8); - var label = Gtk.Label.New(name); - label.SetEllipsize(Pango.EllipsizeMode.End); - label.SetHexpand(true); - label.SetHalign(Gtk.Align.Start); - Append(label); - if (index > 0) - { - var deleteButton = Gtk.Button.New(); - deleteButton.AddCssClass("circular"); - deleteButton.SetIconName("cross-symbolic"); - Append(deleteButton); - deleteButton.OnClicked += (sender, e) => OnDelete?.Invoke(this, Index); - } - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Helpers/Builder.cs b/NickvisionCavalier.GNOME/Helpers/Builder.cs deleted file mode 100644 index acc64bd..0000000 --- a/NickvisionCavalier.GNOME/Helpers/Builder.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.IO; -using System.Reflection; -using System.Xml; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Helpers; - -public class Builder -{ - /// - /// Creates a Gtk.Builder from an embedded resource and replaces all translatable strings with the localized version - /// - /// The name of the embedded resource - /// Gtk.Builder - public static Gtk.Builder FromFile(string name) - { - using var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name); - using var reader = new StreamReader(stream!); - var uiContents = reader.ReadToEnd(); - var xml = new XmlDocument(); - xml.LoadXml(uiContents); - var elements = xml.GetElementsByTagName("*"); - foreach (XmlElement element in elements) - { - if (element.HasAttribute("translatable")) - { - element.RemoveAttribute("translatable"); - if (element.HasAttribute("context")) - { - var context = element.GetAttribute("context"); - element.InnerText = _p(context, element.InnerText); - } - else - { - element.InnerText = _(element.InnerText); - } - } - } - return Gtk.Builder.NewFromString(xml.OuterXml, -1); - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Helpers/GdkHelpers.cs b/NickvisionCavalier.GNOME/Helpers/GdkHelpers.cs deleted file mode 100644 index 0558e17..0000000 --- a/NickvisionCavalier.GNOME/Helpers/GdkHelpers.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System.Runtime.InteropServices; - -namespace NickvisionCavalier.GNOME.Helpers; - -/// -/// Helper methods for GDK -/// -public static partial class GdkHelpers -{ - [LibraryImport("libadwaita-1.so.0", StringMarshalling = StringMarshalling.Utf8)] // Using "gdk" doesn't work here for some reason - [return: MarshalAs(UnmanagedType.I1)] - private static partial bool gdk_rgba_parse(out RGBA rgba, string spec); - [LibraryImport("libadwaita-1.so.0", StringMarshalling = StringMarshalling.Utf8)] // Using "gdk" doesn't work here for some reason - private static partial string gdk_rgba_to_string(ref RGBA rgba); - - /// - /// Helper RGBA struct. Used instead of Gdk.RGBA - /// - [StructLayout(LayoutKind.Sequential)] - public struct RGBA - { - /// - /// Red channel (0.0-1.0) - /// - public float Red; - /// - /// Green channel (0.0-1.0) - /// - public float Green; - /// - /// Blue channel (0.0-1.0) - /// - public float Blue; - /// - /// Alpha channel (0.0-1.0) - /// - public float Alpha; - - /// - /// Helper method to parse color string to GdkExt.RGBA struct - /// - /// Struct to write to - /// Color string - /// Whether or not the string was parsed successfully - public static bool Parse(out RGBA? colorRGBA, string spec) - { - if (gdk_rgba_parse(out var val, spec)) - { - colorRGBA = val; - return true; - } - colorRGBA = null; - return false; - } - - /// - /// Gets a string representation of the RGBA - /// - /// The string representation of the RGBA - public override string ToString() => gdk_rgba_to_string(ref this); - } -} diff --git a/NickvisionCavalier.GNOME/Helpers/GtkHelpers.cs b/NickvisionCavalier.GNOME/Helpers/GtkHelpers.cs deleted file mode 100644 index f7e2028..0000000 --- a/NickvisionCavalier.GNOME/Helpers/GtkHelpers.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; -using System.Threading.Tasks; - -namespace NickvisionCavalier.GNOME.Helpers; - -/// -/// Helper methods for GTK -/// -public unsafe static partial class GtkHelpers -{ - [StructLayout(LayoutKind.Sequential)] - private struct GLibList - { - public nint data; - public GLibList* next; - public GLibList* prev; - } - - [LibraryImport("libadwaita-1.so.0", StringMarshalling = StringMarshalling.Utf8)] - private static partial void gtk_color_dialog_button_set_rgba(nint button, ref GdkHelpers.RGBA rgba); - [LibraryImport("libadwaita-1.so.0")] - private static partial GLibList* gtk_flow_box_get_selected_children(nint box); - [LibraryImport("libadwaita-1.so.0")] - private static partial int gtk_flow_box_child_get_index(nint row); - - /// - /// Helper extension method for Gtk.ColorButton to get color as GdkHelpers.RGBA - /// - /// Color button - /// Color as GdkHelpers.RGBA - public static GdkHelpers.RGBA GetExtRgba(this Gtk.ColorDialogButton button) => Marshal.PtrToStructure(button.GetRgba().Handle.DangerousGetHandle()); - - /// - /// Helper extension method for Gtk.ColorButton to set color as GdkHelpers.RGBA - /// - /// Color button - /// Color as GdkHelpers.RGBA - public static void SetExtRgba(this Gtk.ColorDialogButton button, GdkHelpers.RGBA color) => gtk_color_dialog_button_set_rgba(button.Handle, ref color); - - /// - /// Extension method for Gtk.ColorDialog to choose a color - /// - /// Color dialog - /// Parent window - /// Thrown if failed to choose a color - /// Color struct if successful, or null - public static Task ChooseRgbaAsync(this Gtk.ColorDialog dialog, Gtk.Window parent) - { - var tcs = new TaskCompletionSource(); - - var callback = new Gio.Internal.AsyncReadyCallbackAsyncHandler((sourceObject, res, data) => - { - if (sourceObject is null) - { - tcs.SetException(new Exception("Missing source object")); - } - else - { - var color = Gtk.Internal.ColorDialog.ChooseRgbaFinish(sourceObject.Handle, res.Handle, out var error); - if (!error.IsInvalid) - { - tcs.SetException(new Exception(error.ToString() ?? "")); - } - else if (color.DangerousGetHandle() == IntPtr.Zero) - { - tcs.SetResult(null); - } - else - { - tcs.SetResult(Marshal.PtrToStructure(color.DangerousGetHandle())); - } - } - }); - - Gtk.Internal.ColorDialog.ChooseRgba( - self: dialog.Handle, - parent: parent.Handle, - initialColor: new Gdk.Internal.RGBAOwnedHandle(IntPtr.Zero), - cancellable: IntPtr.Zero, - callback: callback.NativeCallback, - userData: IntPtr.Zero - ); - - return tcs.Task; - } - - /// - /// Helper extension method for Gtk.FlowBox to get indices of selected children - /// - /// Flow box - /// List of indices - public static List GetSelectedChildrenIndices(this Gtk.FlowBox box) - { - var list = new List(); - var firstSelectedRowPtr = gtk_flow_box_get_selected_children(box.Handle); - for (var ptr = firstSelectedRowPtr; ptr != null; ptr = ptr->next) - { - list.Add(gtk_flow_box_child_get_index(ptr->data)); - } - return list; - } -} diff --git a/NickvisionCavalier.GNOME/NickvisionCavalier.GNOME.csproj b/NickvisionCavalier.GNOME/NickvisionCavalier.GNOME.csproj deleted file mode 100644 index 7421b83..0000000 --- a/NickvisionCavalier.GNOME/NickvisionCavalier.GNOME.csproj +++ /dev/null @@ -1,42 +0,0 @@ - - - - Exe - net8.0 - enable - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/NickvisionCavalier.GNOME/Program.cs b/NickvisionCavalier.GNOME/Program.cs deleted file mode 100644 index 331a794..0000000 --- a/NickvisionCavalier.GNOME/Program.cs +++ /dev/null @@ -1,109 +0,0 @@ -using NickvisionCavalier.GNOME.Views; -using NickvisionCavalier.Shared.Controllers; -using NickvisionCavalier.Shared.Models; -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; - -namespace NickvisionCavalier.GNOME; - -/// -/// The Program -/// -public partial class Program -{ - private readonly Adw.Application _application; - private MainWindow? _mainWindow; - private MainWindowController _mainWindowController; - - /// - /// Main method - /// - /// string[] - /// Return code from Adw.Application.Run() - public static int Main(string[] args) => new Program(args).Run(args); - - /// - /// Constructs a Program - /// - public Program(string[] args) - { - _application = Adw.Application.New("org.nickvision.cavalier", Gio.ApplicationFlags.NonUnique); - _mainWindow = null; - _mainWindowController = new MainWindowController(args); - _mainWindowController.AppInfo.Changelog = - @"* The wave box drawing mode now draws smoother bezier curves (Thanks @OggyP) - * Users can now specify `--fg aarrggbb` or `--bg aarrggbb` command line arguments to change the foreground and background color of the running Cavalier instance respectively - * Updated translations (Thanks everyone on Weblate!)"; - _application.OnActivate += OnActivate; - if (File.Exists(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)) + "/org.nickvision.cavalier.gresource")) - { - //Load file from program directory, required for `dotnet run` - Gio.Functions.ResourcesRegister(Gio.Functions.ResourceLoad(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)) + "/org.nickvision.cavalier.gresource")); - } - else - { - var prefixes = new List { - Directory.GetParent(Directory.GetParent(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))).FullName).FullName, - Directory.GetParent(Path.GetFullPath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))).FullName, - "/usr" - }; - foreach (var prefix in prefixes) - { - if (File.Exists(prefix + "/share/org.nickvision.cavalier/org.nickvision.cavalier.gresource")) - { - Gio.Functions.ResourcesRegister(Gio.Functions.ResourceLoad(Path.GetFullPath(prefix + "/share/org.nickvision.cavalier/org.nickvision.cavalier.gresource"))); - break; - } - } - } - } - - /// - /// Runs the program - /// - /// Return code from Adw.Application.Run() - public int Run(string[] args) - { - try - { - var argv = new string[args.Length + 1]; - argv[0] = "org.nickvision.cavalier"; - args.CopyTo(argv, 1); - return _application.RunWithSynchronizationContext(argv); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - Console.WriteLine($"\n\n{ex.StackTrace}"); - return -1; - } - } - - /// - /// Occurs when the application is activated - /// - /// Gio.Application - /// EventArgs - private void OnActivate(Gio.Application sedner, EventArgs e) - { - //Set Adw Theme - _application.StyleManager!.ColorScheme = _mainWindowController.Theme switch - { - Theme.Light => Adw.ColorScheme.ForceLight, - _ => Adw.ColorScheme.ForceDark - }; - //Main Window - if (_mainWindow != null) - { - _mainWindow!.SetVisible(true); - _mainWindow.Present(); - } - else - { - _mainWindow = new MainWindow(_mainWindowController, _application); - _mainWindow.Start(); - } - } -} diff --git a/NickvisionCavalier.GNOME/Resources/cross-symbolic.svg b/NickvisionCavalier.GNOME/Resources/cross-symbolic.svg deleted file mode 100644 index 107554c..0000000 --- a/NickvisionCavalier.GNOME/Resources/cross-symbolic.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/NickvisionCavalier.GNOME/Resources/man-dancing.svg b/NickvisionCavalier.GNOME/Resources/man-dancing.svg deleted file mode 100644 index 388ae83..0000000 --- a/NickvisionCavalier.GNOME/Resources/man-dancing.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/NickvisionCavalier.GNOME/Resources/org.nickvision.cavalier.css b/NickvisionCavalier.GNOME/Resources/org.nickvision.cavalier.css deleted file mode 100644 index 18d88db..0000000 --- a/NickvisionCavalier.GNOME/Resources/org.nickvision.cavalier.css +++ /dev/null @@ -1,21 +0,0 @@ -.main-window { - background-color: @transparent; -} - -.borderless-window { - box-shadow: none; - outline: none; -} - -.sharp-corners { - border-radius: 0px; -} - -.load-bin { - background-color: @window_bg_color; -} - -.cavalier-image { - border-radius: 6px; - background-color: @card_bg_color; -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Resources/org.nickvision.cavalier.gresource.xml b/NickvisionCavalier.GNOME/Resources/org.nickvision.cavalier.gresource.xml deleted file mode 100644 index 2eaa57a..0000000 --- a/NickvisionCavalier.GNOME/Resources/org.nickvision.cavalier.gresource.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - org.nickvision.cavalier.css - - - cross-symbolic.svg - man-dancing.svg - x-circular-symbolic.svg - - diff --git a/NickvisionCavalier.GNOME/Resources/x-circular-symbolic.svg b/NickvisionCavalier.GNOME/Resources/x-circular-symbolic.svg deleted file mode 100644 index 551beb4..0000000 --- a/NickvisionCavalier.GNOME/Resources/x-circular-symbolic.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/NickvisionCavalier.GNOME/Screenshots/Bars.png b/NickvisionCavalier.GNOME/Screenshots/Bars.png deleted file mode 100644 index de0a291..0000000 Binary files a/NickvisionCavalier.GNOME/Screenshots/Bars.png and /dev/null differ diff --git a/NickvisionCavalier.GNOME/Screenshots/Circle.png b/NickvisionCavalier.GNOME/Screenshots/Circle.png deleted file mode 100644 index 1faa7c3..0000000 Binary files a/NickvisionCavalier.GNOME/Screenshots/Circle.png and /dev/null differ diff --git a/NickvisionCavalier.GNOME/Screenshots/Default.png b/NickvisionCavalier.GNOME/Screenshots/Default.png deleted file mode 100644 index 3b976e6..0000000 Binary files a/NickvisionCavalier.GNOME/Screenshots/Default.png and /dev/null differ diff --git a/NickvisionCavalier.GNOME/Screenshots/Images.png b/NickvisionCavalier.GNOME/Screenshots/Images.png deleted file mode 100644 index acfa2f5..0000000 Binary files a/NickvisionCavalier.GNOME/Screenshots/Images.png and /dev/null differ diff --git a/NickvisionCavalier.GNOME/Screenshots/Levels.png b/NickvisionCavalier.GNOME/Screenshots/Levels.png deleted file mode 100644 index 135239a..0000000 Binary files a/NickvisionCavalier.GNOME/Screenshots/Levels.png and /dev/null differ diff --git a/NickvisionCavalier.GNOME/Screenshots/Main.png b/NickvisionCavalier.GNOME/Screenshots/Main.png deleted file mode 100644 index 7a6cb65..0000000 Binary files a/NickvisionCavalier.GNOME/Screenshots/Main.png and /dev/null differ diff --git a/NickvisionCavalier.GNOME/Screenshots/Spine.png b/NickvisionCavalier.GNOME/Screenshots/Spine.png deleted file mode 100644 index e6065ae..0000000 Binary files a/NickvisionCavalier.GNOME/Screenshots/Spine.png and /dev/null differ diff --git a/NickvisionCavalier.GNOME/Views/DrawingView.cs b/NickvisionCavalier.GNOME/Views/DrawingView.cs deleted file mode 100644 index 45fbc25..0000000 --- a/NickvisionCavalier.GNOME/Views/DrawingView.cs +++ /dev/null @@ -1,249 +0,0 @@ -using NickvisionCavalier.GNOME.Helpers; -using NickvisionCavalier.Shared.Controllers; -using SkiaSharp; -using System; -using System.Linq; -using System.Runtime.InteropServices; -using System.Timers; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Views; - -/// -/// The DrawingView to render CAVA's output -/// -public partial class DrawingView : Gtk.Stack, IDisposable -{ - public delegate bool GSourceFunc(nint data); - - [LibraryImport("libEGL.so.1", StringMarshalling = StringMarshalling.Utf8)] - private static partial nint eglGetProcAddress(string name); - [LibraryImport("libGL.so.1", StringMarshalling = StringMarshalling.Utf8)] - private static partial void glClear(uint mask); - - [Gtk.Connect] private readonly Adw.StatusPage _welcomeStatus; - [Gtk.Connect] private readonly Gtk.GLArea _glArea; - [Gtk.Connect] private readonly Gtk.DrawingArea _cairoArea; - - private bool _disposed; - private readonly DrawingViewController _controller; - private readonly bool _useCairo; - private readonly GSourceFunc _showGl; - private readonly GSourceFunc _queueRender; - private readonly Timer _renderTimer; - private bool _showWelcome; - private GRContext? _ctx; - private SKImageInfo? _imgInfo; - private SKSurface? _glSurface; - private Cairo.ImageSurface? _cairoSurface; - private SKSurface? _skSurface; - private float[]? _sample; - - private DrawingView(Gtk.Builder builder, Gtk.Window parent, DrawingViewController controller) : base(builder.GetPointer("_root"), false) - { - _disposed = false; - _controller = controller; - _showWelcome = true; - //Build UI - builder.Connect(this); - parent.OnNotify += (sender, e) => - { - if ((e.Pspec.GetName() == "default-width" || e.Pspec.GetName() == "default-height") && _showWelcome) - { - parent.GetDefaultSize(out var width, out var height); - _welcomeStatus.SetIconName(width < 380 || height < 280 ? "" : "man-dancing"); - } - }; - parent.GetDefaultSize(out var width, out var height); - _welcomeStatus.SetIconName(width < 380 || height < 280 ? "" : "man-dancing"); - if (Environment.GetEnvironmentVariable("CAVALIER_RENDERER")?.ToLower() == "cairo") - { - _useCairo = true; - _cairoArea.OnResize += CreateCairoSurface; - _cairoArea.SetDrawFunc(CairoDrawFunc); - } - else - { - _useCairo = false; - _glArea.OnRealize += (sender, e) => - { - _glArea.MakeCurrent(); - var grInt = GRGlInterface.Create(eglGetProcAddress); - _ctx = GRContext.CreateGl(grInt); - }; - _glArea.OnResize += CreateGLSurface; - _glArea.OnRender += OnRender; - } - _controller.CAVA.OutputReceived += (sender, sample) => - { - _sample = sample; - if (_showWelcome && sample.Any(s => s != 0)) - { - _showWelcome = false; - } - GLib.Functions.IdleAdd(0, () => - { - if (_showWelcome && GetVisibleChildName() != "welcome") - { - SetVisibleChildName("welcome"); - } - if (!_showWelcome && GetVisibleChildName() != (_useCairo ? "cairo" : "gl")) - { - SetVisibleChildName(_useCairo ? "cairo" : "gl"); - } - return false; - }); - }; - _renderTimer = new Timer(1000.0 / _controller.Framerate); - _renderTimer.Elapsed += (sender, e) => - { - _renderTimer.Interval = 1000.0 / _controller.Framerate; - GLib.Functions.IdleAdd(0, () => - { - if (_useCairo) - { - _cairoArea.QueueDraw(); - } - else - { - _glArea.QueueRender(); - } - return false; - }); - }; - _renderTimer.Start(); - } - - /// - /// Constructs a DrawingView - /// - /// Parent window - /// The DrawingViewController - public DrawingView(Gtk.Window parent, DrawingViewController controller) : this(Builder.FromFile("drawing_view.ui"), parent, controller) - { - } - - /// - /// Finalizes the DrawingView - /// - ~DrawingView() => Dispose(false); - - /// - /// Frees resources used by the DrawingView object - /// - public new void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Frees resources used by the DrawingView object - /// - protected virtual void Dispose(bool disposing) - { - if (_disposed) - { - return; - } - if (disposing) - { - _controller.Dispose(); - } - _disposed = true; - } - - /// - /// (Re)creates drawing surface when using OpenGL - /// - /// GLArea - /// GLArea.ResizeSignalArgs - private void CreateGLSurface(Gtk.GLArea sender, Gtk.GLArea.ResizeSignalArgs e) - { - _glSurface?.Dispose(); - _skSurface?.Dispose(); - _imgInfo = new SKImageInfo(e.Width, e.Height); - _glSurface = SKSurface.Create(_ctx, false, _imgInfo.Value); - if (_glSurface != null) - { - _skSurface = SKSurface.Create(_imgInfo.Value); - _controller.Canvas = _skSurface.Canvas; - } - } - - /// - /// (Re)creates drawing surface when using Cairo - /// - /// DrawingArea - /// DrawingArea.ResizeSignalArgs - private void CreateCairoSurface(Gtk.DrawingArea sender, Gtk.DrawingArea.ResizeSignalArgs e) - { - _skSurface?.Dispose(); - _imgInfo = new SKImageInfo(e.Width, e.Height); - _cairoSurface = new Cairo.ImageSurface(Cairo.Format.Argb32, _imgInfo.Value.Width, _imgInfo.Value.Height); - if (_cairoSurface != null) - { - _skSurface = SKSurface.Create(_imgInfo.Value, Cairo.Internal.ImageSurface.GetData(_cairoSurface.Handle), _imgInfo.Value.RowBytes); - _controller.Canvas = _skSurface.Canvas; - } - } - - /// - /// Occurs on GLArea render frames - /// - /// GLArea - /// GLArea.RenderSignalArgs - /// Whether or not the event was handled - private bool OnRender(Gtk.GLArea sender, Gtk.GLArea.RenderSignalArgs e) - { - if (_skSurface == null) - { - return false; - } - glClear(16384); - if (_sample != null) - { - _controller.Render(_sample, _imgInfo!.Value.Width, _imgInfo.Value.Height); - _glSurface!.Canvas.Clear(); - using var image = _skSurface.Snapshot(); - _glSurface.Canvas.DrawImage(image, 0, 0); - _glSurface.Canvas.Flush(); - return true; - } - return false; - } - - /// - /// Occurs when DrawingArea should be redrawn - /// - /// DrawingArea - /// Cairo context of the DrawingArea - /// Area width - /// Area height - public void CairoDrawFunc(Gtk.DrawingArea area, Cairo.Context ctx, int width, int height) - { - if (_skSurface == null) - { - return; - } - if (_sample != null) - { - _controller.Render(_sample, (float)width, (float)height); - _cairoSurface!.Flush(); - _cairoSurface.MarkDirty(); - ctx.SetSourceSurface(_cairoSurface, 0, 0); - ctx.Paint(); - } - } - - /// - /// Occurs when settings for CAVA have changed - /// - /// object - /// EventArgs - public void UpdateCAVASettings(object sender, EventArgs e) - { - SetVisibleChildName("load"); - _controller.CAVA.Restart(); - } -} \ No newline at end of file diff --git a/NickvisionCavalier.GNOME/Views/MainWindow.cs b/NickvisionCavalier.GNOME/Views/MainWindow.cs deleted file mode 100644 index b2be0a1..0000000 --- a/NickvisionCavalier.GNOME/Views/MainWindow.cs +++ /dev/null @@ -1,290 +0,0 @@ -using NickvisionCavalier.GNOME.Controls; -using NickvisionCavalier.GNOME.Helpers; -using NickvisionCavalier.Shared.Controllers; -using NickvisionCavalier.Shared.Models; -using System; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.Text; -using System.Timers; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Views; - -/// -/// The MainWindow for the application -/// -public class MainWindow : Adw.ApplicationWindow -{ - [Gtk.Connect] private readonly Gtk.Overlay _overlay; - [Gtk.Connect] private readonly Gtk.Revealer _headerRevealer; - [Gtk.Connect] private readonly Adw.HeaderBar _header; - [Gtk.Connect] private readonly Adw.Bin _resizeBin; - - private readonly MainWindowController _controller; - private readonly Adw.Application _application; - private readonly DrawingView _drawingView; - private readonly PreferencesViewController _preferencesController; - private readonly Timer _resizeTimer; - - private MainWindow(Gtk.Builder builder, MainWindowController controller, Adw.Application application) : base(builder.GetPointer("_root"), false) - { - //Window Settings - _controller = controller; - _application = application; - //Build UI - builder.Connect(this); - _controller.RaiseCommandReceived += (sender, e) => Present(); - SetDefaultSize((int)_controller.WindowWidth, (int)_controller.WindowHeight); - if (_controller.WindowMaximized) - { - Maximize(); - } - SetTitle(_controller.AppInfo.ShortName); - SetIconName(_controller.AppInfo.ID); - _drawingView = new DrawingView(this, new DrawingViewController()); - _overlay.SetChild(_drawingView); - _preferencesController = _controller.PreferencesViewController; - _preferencesController.OnWindowSettingsChanged += UpdateWindowSettings; - _preferencesController.OnCAVASettingsChanged += _drawingView.UpdateCAVASettings; - _preferencesController.OnShowHelpScreen += (sender, help) => - { - GLib.Functions.IdleAdd(0, () => - { - Present(); - new CommandHelpDialog(this, _controller.AppInfo.ID, help).Present(); - return false; - }); - }; - var preferencesDialog = new PreferencesDialog(_preferencesController, application); - OnCloseRequest += OnClose; - UpdateWindowSettings(this, EventArgs.Empty); - OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "is-active" && _controller.AutohideHeader) - { - _headerRevealer.SetRevealChild(GetIsActive()); - } - }; - _resizeTimer = new Timer(400); - _resizeTimer.AutoReset = false; - _resizeTimer.Elapsed += (sender, e) => _resizeBin.SetVisible(false); - OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "default-width" || e.Pspec.GetName() == "default-height") - { - _resizeTimer.Stop(); - _resizeTimer.Start(); - _resizeBin.SetVisible(true); - } - else if (e.Pspec.GetName() == "maximized" || e.Pspec.GetName() == "fullscreened") - { - SetDrawingAreaMargins(); - } - }; - //Preferences Action - var actPreferences = Gio.SimpleAction.New("preferences", null); - actPreferences.OnActivate += (sender, e) => preferencesDialog.Present(); - AddAction(actPreferences); - application.SetAccelsForAction("win.preferences", new string[] { "comma" }); - //Keyboard Shortcuts Action - var actKeyboardShortcuts = Gio.SimpleAction.New("keyboardShortcuts", null); - actKeyboardShortcuts.OnActivate += KeyboardShortcuts; - AddAction(actKeyboardShortcuts); - application.SetAccelsForAction("win.keyboardShortcuts", new string[] { "question" }); - //Quit Action - var actQuit = Gio.SimpleAction.New("quit", null); - actQuit.OnActivate += Quit; - AddAction(actQuit); - application.SetAccelsForAction("win.quit", new string[] { "q" }); - //About Action - var actAbout = Gio.SimpleAction.New("about", null); - actAbout.OnActivate += About; - AddAction(actAbout); - application.SetAccelsForAction("win.about", new string[] { "F1" }); - //Fullscreen Action - var actFullscreen = Gio.SimpleAction.New("fullscreen", null); - actFullscreen.OnActivate += (sender, e) => - { - if (Fullscreened) - { - Unfullscreen(); - } - else - { - Fullscreen(); - } - }; - AddAction(actFullscreen); - application.SetAccelsForAction("win.fullscreen", new string[] { "F11" }); - } - - /// - /// Constructs a MainWindow - /// - /// The MainWindowController - /// The Adw.Application - public MainWindow(MainWindowController controller, Adw.Application application) : this(Builder.FromFile("window.ui"), controller, application) - { - } - - /// - /// Starts the MainWindow - /// - public void Start() - { - _application.AddWindow(this); - Present(); - } - - /// - /// Occurs when settings for the window have changed - /// - /// object - /// EventArgs - private void UpdateWindowSettings(object sender, EventArgs e) - { - _application.StyleManager!.ColorScheme = _controller.Theme switch - { - Theme.Light => Adw.ColorScheme.ForceLight, - _ => Adw.ColorScheme.ForceDark - }; - SetDrawingAreaMargins(); - if (_controller.Borderless) - { - AddCssClass("borderless-window"); - } - else - { - RemoveCssClass("borderless-window"); - } - if (_controller.SharpCorners) - { - AddCssClass("sharp-corners"); - } - else - { - RemoveCssClass("sharp-corners"); - } - _header.SetShowStartTitleButtons(_controller.ShowControls); - _header.SetShowEndTitleButtons(_controller.ShowControls); - _headerRevealer.SetRevealChild(GetIsActive() || !_controller.AutohideHeader); - } - - /// - /// Sets correct margins for drawing area - /// - private void SetDrawingAreaMargins() - { - _drawingView.SetMarginTop(_controller.Borderless || IsMaximized() || Fullscreened ? 0 : 1); - _drawingView.SetMarginStart(_controller.Borderless || IsMaximized() || Fullscreened ? 0 : 1); - _drawingView.SetMarginEnd(_controller.Borderless || IsMaximized() || Fullscreened ? 0 : 1); - _drawingView.SetMarginBottom(_controller.Borderless || IsMaximized() || Fullscreened ? 0 : 1); - } - - /// - /// Occurs when the keyboard shortcuts action is triggered - /// - /// Gio.SimpleAction - /// EventArgs - private void KeyboardShortcuts(Gio.SimpleAction sender, EventArgs e) - { - var builder = Builder.FromFile("shortcuts_dialog.ui"); - var shortcutsWindow = (Gtk.ShortcutsWindow)builder.GetObject("_shortcuts"); - shortcutsWindow.SetIconName(_controller.AppInfo.ID); - shortcutsWindow.Present(); - } - - /// - /// Occurs when closing the window - /// - /// Gtk.Window - /// EventArgs - private bool OnClose(Gtk.Window sender, EventArgs e) - { - _controller.SaveWindowSize((uint)DefaultWidth, (uint)DefaultHeight, IsMaximized()); - _preferencesController.SaveConfiguration(); // Save configuration in case preferences dialog is opened - _drawingView.Dispose(); - return false; - } - - /// - /// Occurs when quit action is triggered - /// - /// Gio.SimpleAction - /// EventArgs - private void Quit(Gio.SimpleAction sender, EventArgs e) - { - OnClose(this, EventArgs.Empty); - _application.Quit(); - } - - /// - /// Occurs when the about action is triggered - /// - /// Gio.SimpleAction - /// EventArgs - private void About(Gio.SimpleAction sender, EventArgs e) - { - var debugInfo = new StringBuilder(); - debugInfo.AppendLine(_controller.AppInfo.ID); - debugInfo.AppendLine(_controller.AppInfo.Version); - debugInfo.AppendLine($"GTK {Gtk.Functions.GetMajorVersion()}.{Gtk.Functions.GetMinorVersion()}.{Gtk.Functions.GetMicroVersion()}"); - debugInfo.AppendLine($"libadwaita {Adw.Functions.GetMajorVersion()}.{Adw.Functions.GetMinorVersion()}.{Adw.Functions.GetMicroVersion()}"); - if (File.Exists("/.flatpak-info")) - { - debugInfo.AppendLine("Flatpak"); - } - else if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("SNAP"))) - { - debugInfo.AppendLine("Snap"); - } - debugInfo.AppendLine(CultureInfo.CurrentCulture.ToString()); - var localeProcess = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = "locale", - UseShellExecute = false, - RedirectStandardOutput = true - } - }; - try - { - localeProcess.Start(); - var localeString = localeProcess.StandardOutput.ReadToEnd().Trim(); - localeProcess.WaitForExit(); - debugInfo.AppendLine(localeString); - } - catch - { - debugInfo.AppendLine("Unknown locale"); - } - var dialog = Adw.AboutWindow.New(); - dialog.SetTransientFor(this); - dialog.SetIconName(_controller.AppInfo.ID); - dialog.SetApplicationName(_controller.AppInfo.ShortName); - dialog.SetApplicationIcon(_controller.AppInfo.ID + (_controller.AppInfo.IsDevVersion ? "-devel" : "")); - dialog.SetVersion(_controller.AppInfo.Version); - dialog.SetDebugInfo(debugInfo.ToString()); - dialog.SetComments(_controller.AppInfo.Description); - dialog.SetDeveloperName("Nickvision"); - dialog.SetLicenseType(Gtk.License.MitX11); - dialog.SetCopyright("© Nickvision 2023"); - dialog.SetWebsite("https://nickvision.org/"); - dialog.SetIssueUrl(_controller.AppInfo.IssueTracker.ToString()); - dialog.SetSupportUrl(_controller.AppInfo.SupportUrl.ToString()); - dialog.AddLink(_("GitHub Repo"), _controller.AppInfo.SourceRepo.ToString()); - foreach (var pair in _controller.AppInfo.ExtraLinks) - { - dialog.AddLink(pair.Key, pair.Value.ToString()); - } - dialog.SetDevelopers(_controller.AppInfo.ConvertURLDictToArray(_controller.AppInfo.Developers)); - dialog.SetDesigners(_controller.AppInfo.ConvertURLDictToArray(_controller.AppInfo.Designers)); - dialog.SetArtists(_controller.AppInfo.ConvertURLDictToArray(_controller.AppInfo.Artists)); - dialog.SetTranslatorCredits(_controller.AppInfo.TranslatorCredits); - dialog.SetReleaseNotes(_controller.AppInfo.HTMLChangelog); - dialog.Present(); - } -} diff --git a/NickvisionCavalier.GNOME/Views/PreferencesDialog.cs b/NickvisionCavalier.GNOME/Views/PreferencesDialog.cs deleted file mode 100644 index 1b58bfd..0000000 --- a/NickvisionCavalier.GNOME/Views/PreferencesDialog.cs +++ /dev/null @@ -1,1236 +0,0 @@ -using NickvisionCavalier.GNOME.Controls; -using NickvisionCavalier.GNOME.Helpers; -using NickvisionCavalier.Shared.Controllers; -using NickvisionCavalier.Shared.Models; -using System; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.GNOME.Views; - -/// -/// The PreferencesDialog for the application -/// -public class PreferencesDialog : Adw.PreferencesWindow -{ - private bool _avoidCAVAReload; - private bool _removingImages; - private readonly Gtk.ColorDialog _colorDialog; - private readonly PreferencesViewController _controller; - private readonly uint[] _framerates; - - [Gtk.Connect] private readonly Gtk.ToggleButton _boxButton; - [Gtk.Connect] private readonly Gtk.CheckButton _waveCheckButton; - [Gtk.Connect] private readonly Gtk.CheckButton _levelsCheckButton; - [Gtk.Connect] private readonly Gtk.CheckButton _particlesCheckButton; - [Gtk.Connect] private readonly Gtk.CheckButton _barsCheckButton; - [Gtk.Connect] private readonly Adw.ActionRow _spineRow; - [Gtk.Connect] private readonly Gtk.CheckButton _spineCheckButton; - [Gtk.Connect] private readonly Gtk.CheckButton _splitterCheckButton; - [Gtk.Connect] private readonly Gtk.Scale _radiusScale; - [Gtk.Connect] private readonly Gtk.Scale _rotationScale; - [Gtk.Connect] private readonly Adw.ComboRow _mirrorRow; - [Gtk.Connect] private readonly Adw.SwitchRow _reverseMirrorRow; - [Gtk.Connect] private readonly Gtk.Scale _marginScale; - [Gtk.Connect] private readonly Gtk.Scale _areaOffsetXScale; - [Gtk.Connect] private readonly Gtk.Scale _areaOffsetYScale; - [Gtk.Connect] private readonly Adw.ComboRow _directionRow; - [Gtk.Connect] private readonly Adw.ActionRow _offsetRow; - [Gtk.Connect] private readonly Gtk.Scale _offsetScale; - [Gtk.Connect] private readonly Adw.ActionRow _roundnessRow; - [Gtk.Connect] private readonly Gtk.Scale _roundnessScale; - [Gtk.Connect] private readonly Adw.SwitchRow _fillingRow; - [Gtk.Connect] private readonly Adw.ActionRow _thicknessRow; - [Gtk.Connect] private readonly Gtk.Scale _thicknessScale; - [Gtk.Connect] private readonly Adw.SwitchRow _borderlessRow; - [Gtk.Connect] private readonly Adw.SwitchRow _sharpCornersRow; - [Gtk.Connect] private readonly Adw.SwitchRow _windowControlsRow; - [Gtk.Connect] private readonly Adw.SwitchRow _autohideHeaderRow; - [Gtk.Connect] private readonly Adw.ComboRow _framerateRow; - [Gtk.Connect] private readonly Adw.EntryRow _customFramerateRow; - [Gtk.Connect] private readonly Gtk.Scale _barsScale; - [Gtk.Connect] private readonly Adw.SwitchRow _autosensRow; - [Gtk.Connect] private readonly Gtk.Scale _sensitivityScale; - [Gtk.Connect] private readonly Gtk.ToggleButton _stereoButton; - [Gtk.Connect] private readonly Adw.SwitchRow _monstercatRow; - [Gtk.Connect] private readonly Gtk.Scale _noiseReductionScale; - [Gtk.Connect] private readonly Adw.SwitchRow _reverseRow; - [Gtk.Connect] private readonly Gtk.ListBox _profilesList; - [Gtk.Connect] private readonly Gtk.Button _addProfileButton; - [Gtk.Connect] private readonly Gtk.ToggleButton _lightThemeButton; - [Gtk.Connect] private readonly Gtk.Grid _colorsGrid; - [Gtk.Connect] private readonly Gtk.Button _addFgColorButton; - [Gtk.Connect] private readonly Gtk.Button _addBgColorButton; - [Gtk.Connect] private readonly Gtk.ToggleButton _bgImgButton; - [Gtk.Connect] private readonly Gtk.Button _addImageButton; - [Gtk.Connect] private readonly Gtk.SpinButton _imgScaleSpin; - [Gtk.Connect] private readonly Gtk.SpinButton _imgAlphaSpin; - [Gtk.Connect] private readonly Gtk.Stack _imagesStack; - [Gtk.Connect] private readonly Gtk.FlowBox _imagesFlowBox; - - private PreferencesDialog(Gtk.Builder builder, PreferencesViewController controller, Adw.Application application) : base(builder.GetPointer("_root"), false) - { - _avoidCAVAReload = false; - _removingImages = false; - _framerates = new[] { 30u, 60u, 90u, 120u, 144u }; - //Window Settings - _controller = controller; - SetIconName(_controller.ID); - //Next Drawing Mode Action - var actNextMode = Gio.SimpleAction.New("next-mode", null); - actNextMode.OnActivate += (sender, e) => - { - if (_controller.Mode < DrawingMode.SpineCircle) - { - switch (_controller.Mode + 1) - { - case DrawingMode.WaveCircle: - _waveCheckButton.SetActive(true); - _boxButton.SetActive(false); - break; - case DrawingMode.LevelsBox: - case DrawingMode.LevelsCircle: - _levelsCheckButton.SetActive(true); - break; - case DrawingMode.ParticlesBox: - case DrawingMode.ParticlesCircle: - _particlesCheckButton.SetActive(true); - break; - case DrawingMode.BarsBox: - case DrawingMode.BarsCircle: - _barsCheckButton.SetActive(true); - break; - case DrawingMode.SpineBox: - case DrawingMode.SpineCircle: - _spineCheckButton.SetActive(true); - break; - case DrawingMode.SplitterBox: - _splitterCheckButton.SetActive(true); - break; - } - } - else - { - _waveCheckButton.SetActive(true); - _boxButton.SetActive(true); - } - }; - application.AddAction(actNextMode); - application.SetAccelsForAction("app.next-mode", new string[] { "d" }); - //Previous Drawing Mode Action - var actPrevMode = Gio.SimpleAction.New("prev-mode", null); - actPrevMode.OnActivate += (sender, e) => - { - if (_controller.Mode > DrawingMode.WaveBox) - { - switch (_controller.Mode - 1) - { - case DrawingMode.WaveBox: - case DrawingMode.WaveCircle: - _waveCheckButton.SetActive(true); - break; - case DrawingMode.LevelsBox: - case DrawingMode.LevelsCircle: - _levelsCheckButton.SetActive(true); - break; - case DrawingMode.ParticlesBox: - case DrawingMode.ParticlesCircle: - _particlesCheckButton.SetActive(true); - break; - case DrawingMode.BarsBox: - case DrawingMode.BarsCircle: - _barsCheckButton.SetActive(true); - break; - case DrawingMode.SpineBox: - case DrawingMode.SpineCircle: - _spineCheckButton.SetActive(true); - break; - case DrawingMode.SplitterBox: - _boxButton.SetActive(true); - _splitterCheckButton.SetActive(true); - break; - } - } - else - { - _spineCheckButton.SetActive(true); - _boxButton.SetActive(false); - } - }; - application.AddAction(actPrevMode); - application.SetAccelsForAction("app.prev-mode", new string[] { "d" }); - //Increase Inner Radius Action - var actIncRadius = Gio.SimpleAction.New("inc-radius", null); - actIncRadius.OnActivate += (sender, e) => - { - if (_radiusScale.GetValue() < 0.8) - { - _radiusScale.SetValue(_radiusScale.GetValue() + 0.05); - } - }; - application.AddAction(actIncRadius); - application.SetAccelsForAction("app.inc-radius", new string[] { "u" }); - //Decrease Inner Radius Action - var actDecRadius = Gio.SimpleAction.New("dec-radius", null); - actDecRadius.OnActivate += (sender, e) => - { - if (_radiusScale.GetValue() > 0.2) - { - _radiusScale.SetValue(_radiusScale.GetValue() - 0.05); - } - }; - application.AddAction(actDecRadius); - application.SetAccelsForAction("app.dec-radius", new string[] { "u" }); - //Increase Rotation Action - var actIncRotation = Gio.SimpleAction.New("inc-rotation", null); - actIncRotation.OnActivate += (sender, e) => - { - if (_rotationScale.GetValue() < 6.284) - { - _rotationScale.SetValue(_rotationScale.GetValue() + 0.01); - } - }; - application.AddAction(actIncRotation); - application.SetAccelsForAction("app.inc-rotation", new string[] { "o" }); - //Decrease Rotation Action - var actDecRotation = Gio.SimpleAction.New("dec-rotation", null); - actDecRotation.OnActivate += (sender, e) => - { - if (_rotationScale.GetValue() > 0) - { - _rotationScale.SetValue(_rotationScale.GetValue() - 0.01); - } - }; - application.AddAction(actDecRotation); - application.SetAccelsForAction("app.dec-rotation", new string[] { "o" }); - //Next Mirror Mode Action - var actNextMirror = Gio.SimpleAction.New("next-mirror", null); - actNextMirror.OnActivate += (sender, e) => - { - if (!_mirrorRow.GetSensitive()) - { - return; - } - var maxMirror = _controller.Stereo ? Mirror.SplitChannels : Mirror.Full; - _mirrorRow.SetSelected(_controller.Mirror < maxMirror ? (uint)_controller.Mirror + 1 : 0); - }; - application.AddAction(actNextMirror); - application.SetAccelsForAction("app.next-mirror", new string[] { "m" }); - //Previous Mirror Mode Action - var actPrevMirror = Gio.SimpleAction.New("prev-mirror", null); - actPrevMirror.OnActivate += (sender, e) => - { - if (!_mirrorRow.GetSensitive()) - { - return; - } - var maxMirror = _controller.Stereo ? Mirror.SplitChannels : Mirror.Full; - _mirrorRow.SetSelected(_controller.Mirror > Mirror.Off ? (uint)_controller.Mirror - 1 : (uint)maxMirror); - }; - application.AddAction(actPrevMirror); - application.SetAccelsForAction("app.prev-mirror", new string[] { "m" }); - //Toggle Reverse Mirror Action - var actReverseMirror = Gio.SimpleAction.New("toggle-reverse-mirror", null); - actReverseMirror.OnActivate += (sender, e) => _reverseMirrorRow.SetActive(!_reverseMirrorRow.GetActive()); - application.AddAction(actReverseMirror); - application.SetAccelsForAction("app.toggle-reverse-mirror", new string[] { "v" }); - //Increase Area Margin Action - var actIncMargin = Gio.SimpleAction.New("inc-margin", null); - actIncMargin.OnActivate += (sender, e) => - { - if (_marginScale.GetValue() < 40) - { - _marginScale.SetValue(_marginScale.GetValue() + 1); - } - }; - application.AddAction(actIncMargin); - application.SetAccelsForAction("app.inc-margin", new string[] { "n" }); - //Decrease Area Margin Action - var actDecMargin = Gio.SimpleAction.New("dec-margin", null); - actDecMargin.OnActivate += (sender, e) => - { - if (_marginScale.GetValue() > 0) - { - _marginScale.SetValue(_marginScale.GetValue() - 1); - } - }; - application.AddAction(actDecMargin); - application.SetAccelsForAction("app.dec-margin", new string[] { "n" }); - //Increase Area X Offset - var actIncOffsetX = Gio.SimpleAction.New("inc-offset-x", null); - actIncOffsetX.OnActivate += (sender, e) => - { - if (_areaOffsetXScale.GetValue() < 0.5) - { - _areaOffsetXScale.SetValue(_areaOffsetXScale.GetValue() + 0.01); - } - }; - application.AddAction(actIncOffsetX); - application.SetAccelsForAction("app.inc-offset-x", new string[] { "x" }); - //Decrease Area Margin Action - var actDecOffsetX = Gio.SimpleAction.New("dec-offset-x", null); - actDecOffsetX.OnActivate += (sender, e) => - { - if (_areaOffsetXScale.GetValue() > -0.5) - { - _areaOffsetXScale.SetValue(_areaOffsetXScale.GetValue() - 0.01); - } - }; - application.AddAction(actDecOffsetX); - application.SetAccelsForAction("app.dec-offset-x", new string[] { "x" }); - //Increase Area Y Offset - var actIncOffsetY = Gio.SimpleAction.New("inc-offset-y", null); - actIncOffsetY.OnActivate += (sender, e) => - { - if (_areaOffsetYScale.GetValue() < 0.5) - { - _areaOffsetYScale.SetValue(_areaOffsetYScale.GetValue() + 0.01); - } - }; - application.AddAction(actIncOffsetY); - application.SetAccelsForAction("app.inc-offset-y", new string[] { "y" }); - //Decrease Area Margin Action - var actDecOffsetY = Gio.SimpleAction.New("dec-offset-y", null); - actDecOffsetY.OnActivate += (sender, e) => - { - if (_areaOffsetYScale.GetValue() > -0.5) - { - _areaOffsetYScale.SetValue(_areaOffsetYScale.GetValue() - 0.01); - } - }; - application.AddAction(actDecOffsetY); - application.SetAccelsForAction("app.dec-offset-y", new string[] { "y" }); - //Next Direction Action - var actNextDir = Gio.SimpleAction.New("next-direction", null); - actNextDir.OnActivate += (sender, e) => _directionRow.SetSelected(_controller.Direction < DrawingDirection.RightLeft ? (uint)_controller.Direction + 1 : (uint)DrawingDirection.TopBottom); - application.AddAction(actNextDir); - application.SetAccelsForAction("app.next-direction", new string[] { "g" }); - //Previous Direction Action - var actPrevDir = Gio.SimpleAction.New("prev-direction", null); - actPrevDir.OnActivate += (sender, e) => _directionRow.SetSelected(_controller.Direction > DrawingDirection.TopBottom ? (uint)_controller.Direction - 1 : (uint)DrawingDirection.RightLeft); - application.AddAction(actPrevDir); - application.SetAccelsForAction("app.prev-direction", new string[] { "g" }); - //Increase Items Offset Action - var actIncOffset = Gio.SimpleAction.New("inc-offset", null); - actIncOffset.OnActivate += (sender, e) => - { - if (_offsetScale.GetValue() < 20) - { - _offsetScale.SetValue(_offsetScale.GetValue() + 1); - } - }; - application.AddAction(actIncOffset); - application.SetAccelsForAction("app.inc-offset", new string[] { "t" }); - //Decrease Items Offset Action - var actDecOffset = Gio.SimpleAction.New("dec-offset", null); - actDecOffset.OnActivate += (sender, e) => - { - if (_offsetScale.GetValue() > 0) - { - _offsetScale.SetValue(_offsetScale.GetValue() - 1); - } - }; - application.AddAction(actDecOffset); - application.SetAccelsForAction("app.dec-offset", new string[] { "t" }); - //Increase Items Roundness Action - var actIncRound = Gio.SimpleAction.New("inc-roundness", null); - actIncRound.OnActivate += (sender, e) => - { - if (_roundnessScale.GetValue() < 100) - { - _roundnessScale.SetValue(_roundnessScale.GetValue() + 1); - } - }; - application.AddAction(actIncRound); - application.SetAccelsForAction("app.inc-roundness", new string[] { "r" }); - //Decrease Items Roundness Action - var actDecRound = Gio.SimpleAction.New("dec-roundness", null); - actDecRound.OnActivate += (sender, e) => - { - if (_roundnessScale.GetValue() > 0) - { - _roundnessScale.SetValue(_roundnessScale.GetValue() - 1); - } - }; - application.AddAction(actDecRound); - application.SetAccelsForAction("app.dec-roundness", new string[] { "r" }); - //Toggle Filling Action - var actFill = Gio.SimpleAction.New("toggle-filling", null); - actFill.OnActivate += (sender, e) => _fillingRow.SetActive(!_fillingRow.GetActive()); - application.AddAction(actFill); - application.SetAccelsForAction("app.toggle-filling", new string[] { "f" }); - //Increase Lines Thickness Action - var actIncThick = Gio.SimpleAction.New("inc-thickness", null); - actIncThick.OnActivate += (sender, e) => - { - if (_thicknessScale.GetValue() < 10) - { - _thicknessScale.SetValue(_thicknessScale.GetValue() + 1); - } - }; - application.AddAction(actIncThick); - application.SetAccelsForAction("app.inc-thickness", new string[] { "l" }); - //Decrease Lines Thickness Action - var actDecThick = Gio.SimpleAction.New("dec-thickness", null); - actDecThick.OnActivate += (sender, e) => - { - if (_thicknessScale.GetValue() > 0) - { - _thicknessScale.SetValue(_thicknessScale.GetValue() - 1); - } - }; - application.AddAction(actDecThick); - application.SetAccelsForAction("app.dec-thickness", new string[] { "l" }); - //Toggle Window Borders Action - var actBorders = Gio.SimpleAction.New("toggle-borders", null); - actBorders.OnActivate += (sender, e) => _borderlessRow.SetActive(!_borderlessRow.GetActive()); - application.AddAction(actBorders); - application.SetAccelsForAction("app.toggle-borders", new string[] { "W" }); - //Toggle Sharp Corners Action - var actCorners = Gio.SimpleAction.New("toggle-corners", null); - actCorners.OnActivate += (sender, e) => _sharpCornersRow.SetActive(!_sharpCornersRow.GetActive()); - application.AddAction(actCorners); - application.SetAccelsForAction("app.toggle-corners", new string[] { "S" }); - //Increase Bars Action - var actIncBars = Gio.SimpleAction.New("inc-bars", null); - actIncBars.OnActivate += (sender, e) => - { - if (_controller.BarPairs < 25) - { - _barsScale.SetValue((_controller.BarPairs + 1) * 2); - } - }; - application.AddAction(actIncBars); - application.SetAccelsForAction("app.inc-bars", new string[] { "b" }); - //Decrease Bars Action - var actDecBars = Gio.SimpleAction.New("dec-bars", null); - actDecBars.OnActivate += (sender, e) => - { - if (_controller.BarPairs > 3) - { - _barsScale.SetValue((_controller.BarPairs - 1) * 2); - } - }; - application.AddAction(actDecBars); - application.SetAccelsForAction("app.dec-bars", new string[] { "b" }); - //Toggle Stereo Action - var actStereo = Gio.SimpleAction.New("toggle-stereo", null); - actStereo.OnActivate += (sender, e) => _stereoButton.SetActive(!_stereoButton.GetActive()); - application.AddAction(actStereo); - application.SetAccelsForAction("app.toggle-stereo", new string[] { "c" }); - //Toggle Reverse Order Action - var actReverse = Gio.SimpleAction.New("toggle-reverse", null); - actReverse.OnActivate += (sender, e) => _reverseRow.SetActive(!_reverseRow.GetActive()); - application.AddAction(actReverse); - application.SetAccelsForAction("app.toggle-reverse", new string[] { "e" }); - //Next Color Profile Action - var actNextProfile = Gio.SimpleAction.New("next-profile", null); - actNextProfile.OnActivate += (sender, e) => - { - _profilesList.SelectRow(_profilesList.GetRowAtIndex(_controller.ActiveProfile < _controller.ColorProfiles.Count - 1 ? _controller.ActiveProfile + 1 : 0)); - }; - application.AddAction(actNextProfile); - application.SetAccelsForAction("app.next-profile", new string[] { "p" }); - //Previous Color Profile Action - var actPrevProfile = Gio.SimpleAction.New("prev-profile", null); - actPrevProfile.OnActivate += (sender, e) => - { - _profilesList.SelectRow(_profilesList.GetRowAtIndex(_controller.ActiveProfile > 0 ? _controller.ActiveProfile - 1 : _controller.ColorProfiles.Count - 1)); - }; - application.AddAction(actPrevProfile); - application.SetAccelsForAction("app.prev-profile", new string[] { "p" }); - //Next Background Image Action - var actNextBgImage = Gio.SimpleAction.New("next-bg-image", null); - actNextBgImage.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(true); - _imagesFlowBox.SelectChild(_imagesFlowBox.GetChildAtIndex(_controller.BgImageIndex < _controller.ImagesList.Count - 1 ? _controller.BgImageIndex + 2 : 0)); - }; - application.AddAction(actNextBgImage); - application.SetAccelsForAction("app.next-bg-image", new string[] { "1" }); - //Previous Background Image Action - var actPrevBgImage = Gio.SimpleAction.New("prev-bg-image", null); - actPrevBgImage.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(true); - _imagesFlowBox.SelectChild(_imagesFlowBox.GetChildAtIndex(_controller.BgImageIndex > -1 ? _controller.BgImageIndex : _controller.ImagesList.Count)!); - }; - application.AddAction(actPrevBgImage); - application.SetAccelsForAction("app.prev-bg-image", new string[] { "exclam" }); - // Increase Background Image Scale - var actIncBgImgScale = Gio.SimpleAction.New("inc-bg-img-scale", null); - actIncBgImgScale.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(true); - _imgScaleSpin.SetValue(_imgScaleSpin.GetValue() + 0.05f); - }; - application.AddAction(actIncBgImgScale); - application.SetAccelsForAction("app.inc-bg-img-scale", new string[] { "2" }); - // Decrease Background Image Scale - var actDecBgImgScale = Gio.SimpleAction.New("dec-bg-img-scale", null); - actDecBgImgScale.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(true); - _imgScaleSpin.SetValue(_imgScaleSpin.GetValue() - 0.05f); - }; - application.AddAction(actDecBgImgScale); - application.SetAccelsForAction("app.dec-bg-img-scale", new string[] { "at" }); - // Increase Background Image Alpha - var actIncBgImgAlpha = Gio.SimpleAction.New("inc-bg-img-alpha", null); - actIncBgImgAlpha.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(true); - _imgAlphaSpin.SetValue(_imgAlphaSpin.GetValue() + 0.05f); - }; - application.AddAction(actIncBgImgAlpha); - application.SetAccelsForAction("app.inc-bg-img-alpha", new string[] { "3" }); - // Decrease Background Image Alpha - var actDecBgImgAlpha = Gio.SimpleAction.New("dec-bg-img-alpha", null); - actDecBgImgAlpha.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(true); - _imgAlphaSpin.SetValue(_imgAlphaSpin.GetValue() - 0.05f); - }; - application.AddAction(actDecBgImgAlpha); - application.SetAccelsForAction("app.dec-bg-img-alpha", new string[] { "numbersign" }); - //Next Foreground Image Action - var actNextFgImage = Gio.SimpleAction.New("next-fg-image", null); - actNextFgImage.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(false); - _imagesFlowBox.SelectChild(_imagesFlowBox.GetChildAtIndex(_controller.FgImageIndex < _controller.ImagesList.Count - 1 ? _controller.FgImageIndex + 2 : 0)); - }; - application.AddAction(actNextFgImage); - application.SetAccelsForAction("app.next-fg-image", new string[] { "4" }); - //Previous Background Image Action - var actPrevFgImage = Gio.SimpleAction.New("prev-fg-image", null); - actPrevFgImage.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(false); - _imagesFlowBox.SelectChild(_imagesFlowBox.GetChildAtIndex(_controller.FgImageIndex > -1 ? _controller.FgImageIndex : _controller.ImagesList.Count)!); - }; - application.AddAction(actPrevFgImage); - application.SetAccelsForAction("app.prev-fg-image", new string[] { "dollar" }); - // Increase Background Image Scale - var actIncFgImgScale = Gio.SimpleAction.New("inc-fg-img-scale", null); - actIncFgImgScale.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(false); - _imgScaleSpin.SetValue(_imgScaleSpin.GetValue() + 0.05f); - }; - application.AddAction(actIncFgImgScale); - application.SetAccelsForAction("app.inc-fg-img-scale", new string[] { "5" }); - // Decrease Background Image Scale - var actDecFgImgScale = Gio.SimpleAction.New("dec-fg-img-scale", null); - actDecFgImgScale.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(false); - _imgScaleSpin.SetValue(_imgScaleSpin.GetValue() - 0.05f); - }; - application.AddAction(actDecFgImgScale); - application.SetAccelsForAction("app.dec-fg-img-scale", new string[] { "percent" }); - // Increase Background Image Alpha - var actIncFgImgAlpha = Gio.SimpleAction.New("inc-fg-img-alpha", null); - actIncFgImgAlpha.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(false); - _imgAlphaSpin.SetValue(_imgAlphaSpin.GetValue() + 0.05f); - }; - application.AddAction(actIncFgImgAlpha); - application.SetAccelsForAction("app.inc-fg-img-alpha", new string[] { "6" }); - // Decrease Background Image Alpha - var actDecFgImgAlpha = Gio.SimpleAction.New("dec-fg-img-alpha", null); - actDecFgImgAlpha.OnActivate += (sender, e) => - { - _bgImgButton.SetActive(false); - _imgAlphaSpin.SetValue(_imgAlphaSpin.GetValue() - 0.05f); - }; - application.AddAction(actDecFgImgAlpha); - application.SetAccelsForAction("app.dec-fg-img-alpha", new string[] { "asciicircum" }); - //Build UI - builder.Connect(this); - OnCloseRequest += (sender, e) => - { - _controller.SaveConfiguration(); - return false; - }; - UpdateImagesList(); - LoadInstantSettings(); - LoadCAVASettings(); - _boxButton.OnToggled += (sender, e) => - { - _mirrorRow.SetSensitive(true); - if (_boxButton.GetActive()) - { - _controller.Mode -= 6; - } - else - { - if ((uint)_controller.Mode + 6 > (uint)DrawingMode.SpineCircle) - { - _controller.Mode = DrawingMode.SpineCircle; - _spineCheckButton.SetActive(true); - } - else - { - _controller.Mode += 6; - } - } - }; - _waveCheckButton.OnToggled += (sender, e) => - { - if (_waveCheckButton.GetActive()) - { - _controller.Mode = _controller.Mode >= DrawingMode.WaveCircle ? DrawingMode.WaveCircle : DrawingMode.WaveBox; - _offsetRow.SetSensitive(false); - _roundnessRow.SetSensitive(false); - } - }; - _levelsCheckButton.OnToggled += (sender, e) => - { - if (_levelsCheckButton.GetActive()) - { - _controller.Mode = _controller.Mode >= DrawingMode.WaveCircle ? DrawingMode.LevelsCircle : DrawingMode.LevelsBox; - _offsetRow.SetSensitive(true); - _roundnessRow.SetSensitive(true); - } - }; - _particlesCheckButton.OnToggled += (sender, e) => - { - if (_particlesCheckButton.GetActive()) - { - _controller.Mode = _controller.Mode >= DrawingMode.WaveCircle ? DrawingMode.ParticlesCircle : DrawingMode.ParticlesBox; - _offsetRow.SetSensitive(true); - _roundnessRow.SetSensitive(true); - } - }; - _barsCheckButton.OnToggled += (sender, e) => - { - if (_barsCheckButton.GetActive()) - { - _controller.Mode = _controller.Mode >= DrawingMode.WaveCircle ? DrawingMode.BarsCircle : DrawingMode.BarsBox; - _offsetRow.SetSensitive(true); - _roundnessRow.SetSensitive(false); - } - }; - _spineCheckButton.OnToggled += (sender, e) => - { - if (_spineCheckButton.GetActive()) - { - _controller.Mode = _controller.Mode >= DrawingMode.WaveCircle ? DrawingMode.SpineCircle : DrawingMode.SpineBox; - _offsetRow.SetSensitive(true); - _roundnessRow.SetSensitive(true); - } - }; - _splitterCheckButton.OnToggled += (sender, e) => - { - if (_splitterCheckButton.GetActive()) - { - _controller.Mode = DrawingMode.SplitterBox; - _offsetRow.SetSensitive(false); - _roundnessRow.SetSensitive(false); - } - }; - _offsetRow.SetSensitive(_controller.Mode != DrawingMode.WaveBox); - _roundnessRow.SetSensitive(_controller.Mode != DrawingMode.WaveBox && _controller.Mode != DrawingMode.BarsBox); - _radiusScale.OnValueChanged += (sender, e) => - { - _controller.InnerRadius = (float)_radiusScale.GetValue(); - }; - _rotationScale.OnValueChanged += (sender, e) => - { - _controller.Rotation = (float)Math.Min(2 * Math.PI, _rotationScale.GetValue()); - }; - _mirrorRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "selected") - { - _controller.Mirror = (Mirror)_mirrorRow.GetSelected(); - _reverseMirrorRow.SetVisible(_controller.Mirror != Mirror.Off); - } - }; - _reverseMirrorRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.ReverseMirror = _reverseMirrorRow.GetActive(); - } - }; - _marginScale.OnValueChanged += (sender, e) => - { - _controller.AreaMargin = (uint)_marginScale.GetValue(); - }; - _areaOffsetXScale.AddMark(0, Gtk.PositionType.Bottom, null); - _areaOffsetXScale.OnValueChanged += (sender, e) => - { - _controller.AreaOffsetX = (float)_areaOffsetXScale.GetValue(); - }; - _areaOffsetYScale.AddMark(0, Gtk.PositionType.Bottom, null); - _areaOffsetYScale.OnValueChanged += (sender, e) => - { - _controller.AreaOffsetY = (float)_areaOffsetYScale.GetValue(); - }; - _directionRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "selected") - { - _controller.Direction = (DrawingDirection)_directionRow.GetSelected(); - } - }; - _offsetScale.OnValueChanged += (sender, e) => - { - _controller.ItemsOffset = (float)_offsetScale.GetValue() / 100.0f; - }; - _roundnessScale.OnValueChanged += (sender, e) => - { - _controller.ItemsRoundness = (float)_roundnessScale.GetValue() / 100.0f; - }; - _fillingRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.Filling = _fillingRow.GetActive(); - } - }; - _thicknessScale.OnValueChanged += (sender, e) => - { - _controller.LinesThickness = (float)_thicknessScale.GetValue(); - }; - _thicknessRow.SetSensitive(!_controller.Filling); - _borderlessRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.Borderless = _borderlessRow.GetActive(); - _controller.ChangeWindowSettings(); - } - }; - _sharpCornersRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.SharpCorners = _sharpCornersRow.GetActive(); - _controller.ChangeWindowSettings(); - } - }; - _windowControlsRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.ShowControls = _windowControlsRow.GetActive(); - _controller.ChangeWindowSettings(); - } - }; - _autohideHeaderRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.AutohideHeader = _autohideHeaderRow.GetActive(); - _controller.ChangeWindowSettings(); - } - }; - _framerateRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "selected") - { - _customFramerateRow.SetVisible(_framerateRow.GetSelected() == 5); - _customFramerateRow.SetText(""); - if (_framerateRow.GetSelected() < 5) - { - _controller.Framerate = _framerates[_framerateRow.GetSelected()]; - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - } - } - }; - _customFramerateRow.SetVisible(_framerateRow.GetSelected() == 5); - _customFramerateRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "text") - { - _customFramerateRow.RemoveCssClass("error"); - } - }; - _customFramerateRow.OnApply += (sender, e) => - { - var valid = uint.TryParse(_customFramerateRow.GetText(), out var fps); - if (valid) - { - _controller.Framerate = fps; - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - } - else - { - _customFramerateRow.AddCssClass("error"); - } - }; - _barsScale.OnValueChanged += (sender, e) => - { - if (_barsScale.GetValue() % 2 != 0) - { - _barsScale.SetValue(_barsScale.GetValue() - 1); - return; - } - _controller.BarPairs = (uint)(_barsScale.GetValue() / 2); - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - }; - _autosensRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.Autosens = _autosensRow.GetActive(); - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - } - }; - _sensitivityScale.OnValueChanged += (sender, e) => - { - _controller.Sensitivity = (uint)_sensitivityScale.GetValue(); - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - }; - _stereoButton.OnToggled += (sender, e) => - { - if (_stereoButton.GetActive()) - { - _controller.Stereo = true; - _mirrorRow.SetModel(Gtk.StringList.New(new string[] { _("Off"), _("Full"), _("Split Channels") })); - } - else - { - _controller.Stereo = false; - _mirrorRow.SetModel(Gtk.StringList.New(new string[] { _("Off"), _("On") })); - } - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - }; - _monstercatRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.Monstercat = _monstercatRow.GetActive(); - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - } - }; - _noiseReductionScale.GetFirstChild().SetMarginBottom(12); - _noiseReductionScale.AddMark(77, Gtk.PositionType.Bottom, null); - _noiseReductionScale.OnValueChanged += (sender, e) => - { - _controller.NoiseReduction = (float)_noiseReductionScale.GetValue() / 100f; - if (!_avoidCAVAReload) - { - _controller.ChangeCAVASettings(); - } - }; - _reverseRow.OnNotify += (sender, e) => - { - if (e.Pspec.GetName() == "active") - { - _controller.ReverseOrder = _reverseRow.GetActive(); - } - }; - _profilesList.OnRowSelected += (sender, e) => - { - if (e.Row != null) - { - _controller.ActiveProfile = ((ProfileBox)e.Row.GetChild()).Index; - UpdateColorsGrid(); - } - }; - _addProfileButton.OnClicked += OnAddProfile; - _lightThemeButton.OnToggled += (sender, e) => - { - _controller.ColorProfiles[_controller.ActiveProfile].Theme = _lightThemeButton.GetActive() ? Theme.Light : Theme.Dark; - _controller.ChangeWindowSettings(); - }; - _colorDialog = Gtk.ColorDialog.New(); - _addFgColorButton.OnClicked += async (sender, e) => await AddColorAsync(ColorType.Foreground); - _addBgColorButton.OnClicked += async (sender, e) => await AddColorAsync(ColorType.Background); - UpdateColorsGrid(); - _addImageButton.OnClicked += async (sender, e) => await AddImageAsync(); - _bgImgButton.OnToggled += (sender, e) => - { - _imagesFlowBox.SelectChild(_imagesFlowBox.GetChildAtIndex((_bgImgButton.GetActive() ? _controller.BgImageIndex : _controller.FgImageIndex) + 1) ?? _imagesFlowBox.GetChildAtIndex(0)!); - _imgScaleSpin.SetValue(_bgImgButton.GetActive() ? _controller.BgImageScale : _controller.FgImageScale); - _imgAlphaSpin.SetValue(_bgImgButton.GetActive() ? _controller.BgImageAlpha : _controller.FgImageAlpha); - }; - _imgScaleSpin.OnValueChanged += (sender, e) => - { - if (_bgImgButton.GetActive()) - { - _controller.BgImageScale = (float)_imgScaleSpin.GetValue(); - } - else - { - _controller.FgImageScale = (float)_imgScaleSpin.GetValue(); - } - }; - _imgAlphaSpin.OnValueChanged += (sender, e) => - { - if (_bgImgButton.GetActive()) - { - _controller.BgImageAlpha = (float)_imgAlphaSpin.GetValue(); - } - else - { - _controller.FgImageAlpha = (float)_imgAlphaSpin.GetValue(); - } - }; - _imagesFlowBox.OnSelectedChildrenChanged += (sender, e) => - { - if (!_removingImages) - { - if (_bgImgButton.GetActive()) - { - _controller.BgImageIndex = _imagesFlowBox.GetSelectedChildrenIndices()[0] - 1; - } - else - { - _controller.FgImageIndex = _imagesFlowBox.GetSelectedChildrenIndices()[0] - 1; - } - } - }; - // Update view when controller has changed by cmd options - _controller.OnUpdateViewInstant += (sender, e) => GLib.Functions.IdleAdd(0, LoadInstantSettings); - _controller.OnUpdateViewCAVA += (sender, e) => GLib.Functions.IdleAdd(0, LoadCAVASettings); - } - - /// - /// Load settings that don't require CAVA restart - /// - public bool LoadInstantSettings() - { - _boxButton.SetActive(_controller.Mode < DrawingMode.WaveCircle); - if (_controller.Mode == DrawingMode.WaveCircle) - { - _controller.Mirror = Mirror.Off; - } - switch (_controller.Mode) - { - case DrawingMode.WaveBox: - case DrawingMode.WaveCircle: - _waveCheckButton.SetActive(true); - break; - case DrawingMode.LevelsBox: - case DrawingMode.LevelsCircle: - _levelsCheckButton.SetActive(true); - break; - case DrawingMode.ParticlesBox: - case DrawingMode.ParticlesCircle: - _particlesCheckButton.SetActive(true); - break; - case DrawingMode.BarsBox: - case DrawingMode.BarsCircle: - _barsCheckButton.SetActive(true); - break; - case DrawingMode.SpineBox: - case DrawingMode.SpineCircle: - _spineCheckButton.SetActive(true); - break; - case DrawingMode.SplitterBox: - _splitterCheckButton.SetActive(true); - break; - } - _radiusScale.SetValue((double)_controller.InnerRadius); - _rotationScale.SetValue((double)_controller.Rotation); - var mirror = (uint)_controller.Mirror; // saving mirror state to apply after changing the model - if (_controller.Stereo) - { - _mirrorRow.SetModel(Gtk.StringList.New(new string[] { _("Off"), _("Full"), _("Split Channels") })); - _mirrorRow.SetSelected(mirror); - } - else - { - _mirrorRow.SetModel(Gtk.StringList.New(new string[] { _("Off"), _("On") })); - if (mirror == (uint)Mirror.SplitChannels) - { - _mirrorRow.SetSelected(1u); - } - else - { - _mirrorRow.SetSelected(mirror); - } - } - _reverseMirrorRow.SetVisible(_controller.Mirror != Mirror.Off); - _reverseMirrorRow.SetActive(_controller.ReverseMirror); - _marginScale.SetValue((double)_controller.AreaMargin); - _areaOffsetXScale.SetValue((double)_controller.AreaOffsetX); - _areaOffsetYScale.SetValue((double)_controller.AreaOffsetY); - _directionRow.SetSelected((uint)_controller.Direction); - _offsetScale.SetValue(_controller.ItemsOffset * 100.0); - _roundnessScale.SetValue(_controller.ItemsRoundness * 100.0); - _thicknessRow.SetSensitive(!_fillingRow.GetActive()); - _fillingRow.SetActive(_controller.Filling); - _thicknessScale.SetValue((double)_controller.LinesThickness); - _borderlessRow.SetActive(_controller.Borderless); - _sharpCornersRow.SetActive(_controller.SharpCorners); - _windowControlsRow.SetActive(_controller.ShowControls); - _autohideHeaderRow.SetActive(_controller.AutohideHeader); - _reverseRow.SetActive(_controller.ReverseOrder); - UpdateColorProfiles(); - _imagesFlowBox.SelectChild(_imagesFlowBox.GetChildAtIndex((_bgImgButton.GetActive() ? _controller.BgImageIndex : _controller.FgImageIndex) + 1) ?? _imagesFlowBox.GetChildAtIndex(0)!); - _imgScaleSpin.SetValue(_bgImgButton.GetActive() ? _controller.BgImageScale : _controller.FgImageScale); - _imgAlphaSpin.SetValue(_bgImgButton.GetActive() ? _controller.BgImageAlpha : _controller.FgImageAlpha); - if (_controller.Hearts) - { - _spineRow.SetTitle(_("Hearts")); - } - return false; - } - - /// - /// Load settings that require CAVA restart - /// - public bool LoadCAVASettings() - { - _avoidCAVAReload = true; - if (_framerates.Contains(_controller.Framerate)) - { - _framerateRow.SetSelected((uint)Array.IndexOf(_framerates, _controller.Framerate)); - } - else - { - _framerateRow.SetSelected(5u); - _customFramerateRow.SetText(_controller.Framerate.ToString()); - } - _barsScale.SetValue((int)_controller.BarPairs * 2); - _autosensRow.SetActive(_controller.Autosens); - _sensitivityScale.SetValue((int)_controller.Sensitivity); - _stereoButton.SetActive(_controller.Stereo); - _monstercatRow.SetActive(_controller.Monstercat); - _noiseReductionScale.SetValue((double)_controller.NoiseReduction * 100); - _avoidCAVAReload = false; - _controller.ChangeCAVASettings(); - return false; - } - - /// - /// Constructs a PreferencesDialog - /// - /// PreferencesViewController - public PreferencesDialog(PreferencesViewController controller, Adw.Application application) : this(Builder.FromFile("preferences_dialog.ui"), controller, application) - { - } - - /// - /// Reload color profiles - /// - private void UpdateColorProfiles() - { - _profilesList.SelectRow(null); - while (_profilesList.GetRowAtIndex(0) != null) - { - _profilesList.Remove(_profilesList.GetRowAtIndex(0)); - } - for (var i = 0; i < _controller.ColorProfiles.Count; i++) - { - var profileBox = new ProfileBox(_controller.ColorProfiles[i].Name, i); - _profilesList.Append(profileBox); - profileBox.OnDelete += OnDeleteProfile; - } - _profilesList.SelectRow(_profilesList.GetRowAtIndex(_controller.ActiveProfile)); - } - - /// - /// Occurs when add profile button was clicked - /// - /// Button - /// EventArgs - private void OnAddProfile(object sender, EventArgs e) - { - var dialog = new AddProfileDialog(this, _controller.ID); - dialog.OnResponse += (sender, e) => - { - if (e.Response == "suggested") - { - _controller.AddColorProfile(dialog.ProfileName); - UpdateColorProfiles(); - } - }; - dialog.Present(); - } - - /// - /// Occurs when delete profile button was clicked - /// - /// Profile box of profile that should be deleted - /// Profile index - private void OnDeleteProfile(object sender, int index) - { - var dialog = Adw.MessageDialog.New(this, _("Delete Profile"), _("Are you sure you want to delete profile \"{0}\"?", _controller.ColorProfiles[index].Name)); - dialog.SetIconName(_controller.ID); - dialog.AddResponse("cancel", _("Cancel")); - dialog.SetDefaultResponse("cancel"); - dialog.SetCloseResponse("cancel"); - dialog.AddResponse("delete", _("Delete")); - dialog.SetResponseAppearance("delete", Adw.ResponseAppearance.Destructive); - dialog.OnResponse += (s, ex) => - { - if (ex.Response == "delete") - { - _controller.ActiveProfile -= 1; - _controller.ColorProfiles.RemoveAt(index); - UpdateColorProfiles(); - } - }; - dialog.Present(); - } - - /// - /// Reload colors grid - /// - private void UpdateColorsGrid() - { - _lightThemeButton.SetActive(_controller.ColorProfiles[_controller.ActiveProfile].Theme == Theme.Light); - while (_colorsGrid.GetChildAt(0, 1) != null || _colorsGrid.GetChildAt(1, 1) != null) - { - _colorsGrid.RemoveRow(1); - } - for (var i = 0; i < _controller.ColorProfiles[_controller.ActiveProfile].FgColors.Count; i++) - { - var colorButton = new ColorBox(_controller.ColorProfiles[_controller.ActiveProfile].FgColors[i], ColorType.Foreground, i, i != 0); - colorButton.OnEdit += OnEditColor; - colorButton.OnDelete += OnDeleteColor; - _colorsGrid.Attach(colorButton, 0, i + 1, 1, 1); - } - for (var i = 0; i < _controller.ColorProfiles[_controller.ActiveProfile].BgColors.Count; i++) - { - var colorButton = new ColorBox(_controller.ColorProfiles[_controller.ActiveProfile].BgColors[i], ColorType.Background, i, i != 0); - colorButton.OnEdit += OnEditColor; - colorButton.OnDelete += OnDeleteColor; - _colorsGrid.Attach(colorButton, 1, i + 1, 1, 1); - } - } - - /// - /// Add color to grid - /// - /// Color type (background or foreground) - private async Task AddColorAsync(ColorType type) - { - try - { - var color = await _colorDialog.ChooseRgbaAsync(this); - var alpha = color?.Alpha ?? 0; - var red = color?.Red ?? 0; - var green = color?.Green ?? 0; - var blue = color?.Blue ?? 0; - if (alpha <= 0.0001f) - { - red = 0; - green = 0; - blue = 0; - } - _controller.AddColor(type, $"#{((int)(alpha * 255)).ToString("x2")}{((int)(red * 255)).ToString("x2")}{((int)(green * 255)).ToString("x2")}{((int)(blue * 255)).ToString("x2")}"); - UpdateColorsGrid(); - } - catch { } - } - - /// - /// Occurs when color button was clicked - /// - /// Color box that should be edited - /// Color args for controller - private void OnEditColor(object sender, ColorEventArgs e) => _controller.EditColor(e.Type, e.Index, e.Color); - - /// - /// Occurs when delete color button was clicked - /// - /// Color box that should be deleted - /// Color args for controller - private void OnDeleteColor(object sender, ColorEventArgs e) - { - _controller.DeleteColor(e.Type, e.Index); - UpdateColorsGrid(); - } - - /// - /// Update flowbox with images - /// - public void UpdateImagesList() - { - var paths = _controller.ImagesList; - if (paths.Count == 0) - { - _imagesStack.SetVisibleChildName("empty"); - _imgScaleSpin.SetSensitive(false); - return; - } - _imgScaleSpin.SetSensitive(true); - _imagesStack.SetVisibleChildName("images"); - _removingImages = true; - while (_imagesFlowBox.GetChildAtIndex(1) != null) - { - ((ImageItem)_imagesFlowBox.GetChildAtIndex(1)!.GetChild()!).Dispose(); - _imagesFlowBox.Remove(_imagesFlowBox.GetChildAtIndex(1)!); - } - _removingImages = false; - for (var i = 0; i < paths.Count; i++) - { - var image = new ImageItem(paths[i], i); - image.OnRemoveImage += RemoveImage; - _imagesFlowBox.Append(image); - } - _imagesFlowBox.SelectChild(_imagesFlowBox.GetChildAtIndex((_bgImgButton.GetActive() ? _controller.BgImageIndex : _controller.FgImageIndex) + 1) ?? _imagesFlowBox.GetChildAtIndex(0)!); - } - - /// - /// Add an image to the images list - /// - public async Task AddImageAsync() - { - var dialog = Gtk.FileDialog.New(); - dialog.SetTitle(_("Select an image")); - dialog.SetAcceptLabel(_("Add")); - var filter = Gtk.FileFilter.New(); - filter.SetName(_("JPEG and PNG images")); - filter.AddPattern("*.jpg"); - filter.AddPattern("*.jpeg"); - filter.AddPattern("*.png"); - var filters = Gio.ListStore.New(Gtk.FileFilter.GetGType()); - filters.Append(filter); - dialog.SetFilters(filters); - dialog.SetDefaultFilter(filter); - try - { - var file = await dialog.OpenAsync(this); - _controller.AddImage(file.GetPath()); - _controller.BgImageIndex = -1; - _controller.FgImageIndex = -1; - UpdateImagesList(); - } - catch { } - } - - /// - /// Remove an image from the images list - /// - /// Index of image to remove - public void RemoveImage(int index) - { - _controller.BgImageIndex = -1; - _controller.FgImageIndex = -1; - File.Delete(_controller.ImagesList[index]); - UpdateImagesList(); - } -} diff --git a/NickvisionCavalier.GNOME/nuget-sources.json b/NickvisionCavalier.GNOME/nuget-sources.json deleted file mode 100644 index a79909e..0000000 --- a/NickvisionCavalier.GNOME/nuget-sources.json +++ /dev/null @@ -1,324 +0,0 @@ -[ - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/ace4896.dbus.services.secrets/1.2.0/ace4896.dbus.services.secrets.1.2.0.nupkg", - "sha512": "09f977614489970e543c9fa09c3eda8e120f076f889145c67185d8fff2a42909d944c90970f6be505fcd1c6060ff5e5b4ed80aafbbe8b91f70ef80feed15a8b0", - "dest": "nuget-sources", - "dest-filename": "ace4896.dbus.services.secrets.1.2.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/commandlineparser/2.9.1/commandlineparser.2.9.1.nupkg", - "sha512": "4f364e45c9668c7e7cc6a922b488f3fa523033c20d7a432694f0a6af05ce528ea0481d8375e2f4f1032c6990347b4803ce9a0e48068c6fe15ec46fb1254f085d", - "dest": "nuget-sources", - "dest-filename": "commandlineparser.2.9.1.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gettext.net/1.9.14/gettext.net.1.9.14.nupkg", - "sha512": "41a61edfe82c11c029150748b641e80b59cfc447eb91f0f030ae9e345e54f46fc901946e12684476fa43d024f4145a3a2377861a619587643cb5fa5d5145cb4a", - "dest": "nuget-sources", - "dest-filename": "gettext.net.1.9.14.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.adw-1/0.5.0-preview.3/gircore.adw-1.0.5.0-preview.3.nupkg", - "sha512": "bc03a1da5da5d347b31940abf3a5f8fa96aead7cbd8d327534a2e6bcaf099c405b38d9a567d3f8518e7ba426a9b613215d1adf81c6694443b44d4bc5206a9cf9", - "dest": "nuget-sources", - "dest-filename": "gircore.adw-1.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.cairo-1.0/0.5.0-preview.3/gircore.cairo-1.0.0.5.0-preview.3.nupkg", - "sha512": "b18114ebbd7873dca74bb6b8067fa995291f293f40df1bad824b558b67331a6c574fbbce8c7f1be93fe38314521a14032a4ee67b4abc361b91cc8be6d3904edb", - "dest": "nuget-sources", - "dest-filename": "gircore.cairo-1.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.freetype2-2.0/0.5.0-preview.3/gircore.freetype2-2.0.0.5.0-preview.3.nupkg", - "sha512": "595e3df2de4500daa26532499d464384ef845ac48e2b84caf0f131c707f6645a96bc5efc1fd25178bce1ae93fcebdab58287fc772bc7a5ecff1a31cc8ac9adee", - "dest": "nuget-sources", - "dest-filename": "gircore.freetype2-2.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.gdk-4.0/0.5.0-preview.3/gircore.gdk-4.0.0.5.0-preview.3.nupkg", - "sha512": "84ec1cf45dee379c72a38169138f663c7c0a52760ea1ab2af71a45e1645d7c63db438560ccacc7bc5adb0f212dab63eccf23b1b64297124031c7183bccfe9090", - "dest": "nuget-sources", - "dest-filename": "gircore.gdk-4.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.gdkpixbuf-2.0/0.5.0-preview.3/gircore.gdkpixbuf-2.0.0.5.0-preview.3.nupkg", - "sha512": "6d5cef26b7b8313e0d8da4f7058b0c1bd209980977e2f767e99562cb9cb6e0cb2600c1d7c579a3d04f37bd970190dc076489c714cf00809e491d3e526fefd431", - "dest": "nuget-sources", - "dest-filename": "gircore.gdkpixbuf-2.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.gio-2.0/0.5.0-preview.3/gircore.gio-2.0.0.5.0-preview.3.nupkg", - "sha512": "90ff231d0231e0b2c1f6d7ae9d282b26da573784a860e6905abd75312af87c095e9e540059fe27053ced4790ca43f0fdadcc994fcd235b2ba162c5d347bda4a1", - "dest": "nuget-sources", - "dest-filename": "gircore.gio-2.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.glib-2.0/0.5.0-preview.3/gircore.glib-2.0.0.5.0-preview.3.nupkg", - "sha512": "cfc4bcacceb07848e5511d1fafbe537b91ea1cee179309cd40a9963fb19e0e7b0fee8034d0fbc597629a7e719ed259254f1d9e271ddbd8015a527a425260ad83", - "dest": "nuget-sources", - "dest-filename": "gircore.glib-2.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.gobject-2.0/0.5.0-preview.3/gircore.gobject-2.0.0.5.0-preview.3.nupkg", - "sha512": "4f2773abf1c3482414aab801140e20d553dfdf481302590831dbc56bd9984dde89fb56086c66102ecc32105eecdb998c9f4f288b4c12186b8b91fdbabe6d56c7", - "dest": "nuget-sources", - "dest-filename": "gircore.gobject-2.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.graphene-1.0/0.5.0-preview.3/gircore.graphene-1.0.0.5.0-preview.3.nupkg", - "sha512": "ca69dbe84df37958797e2371ecb379864bae0afb6262269c0b38dd28594aca9c21fe6d1b85675a051ffad939b1f354200f5f8fb2b44c3012d4161155c066ec12", - "dest": "nuget-sources", - "dest-filename": "gircore.graphene-1.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.gsk-4.0/0.5.0-preview.3/gircore.gsk-4.0.0.5.0-preview.3.nupkg", - "sha512": "efcd99e9cfe71f354bf6ff45ce12bcf3457e46c47804b04609ce933ffa90f768bfeaae80f35c2c6ac31224a171f805e0f61c7a7d1a4ea274105eee1c01512b7b", - "dest": "nuget-sources", - "dest-filename": "gircore.gsk-4.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.gtk-4.0/0.5.0-preview.3/gircore.gtk-4.0.0.5.0-preview.3.nupkg", - "sha512": "0c6d8eb8922691ce4aad28a2bb33ac20b99174b1171d660e043cb577f66cb9599b960a606c8ea252217e810e5372f5ae7c3bc9ab07bb8447705210fa4a7f31be", - "dest": "nuget-sources", - "dest-filename": "gircore.gtk-4.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.harfbuzz-0.0/0.5.0-preview.3/gircore.harfbuzz-0.0.0.5.0-preview.3.nupkg", - "sha512": "c1ddcc678008c40957dbf2d191551603bbf85b363950df640707c486ba06d7e228f2a8d56026c34e9bf2263b74d605bfbd018cf350cfb6b9a32438de4dbdd7a7", - "dest": "nuget-sources", - "dest-filename": "gircore.harfbuzz-0.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.pango-1.0/0.5.0-preview.3/gircore.pango-1.0.0.5.0-preview.3.nupkg", - "sha512": "86421af37e63fe5b4d09aa2c64372923aa2271b0755c8d0afd7ee7c0e00da9efa6bd20ee0a34c883082af3c42f6f24e6b14bb644d7c0c4ba9c1895c6f0d4de4d", - "dest": "nuget-sources", - "dest-filename": "gircore.pango-1.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/gircore.pangocairo-1.0/0.5.0-preview.3/gircore.pangocairo-1.0.0.5.0-preview.3.nupkg", - "sha512": "dee39b1fbfb478c0faa013ed4e9cd3e5aa6096844676703a9640e004bf87664bdd0a747c88f1f1ce6d3ed66d3fed9cb854209ce2c67f9238e2eafa478e31dbdc", - "dest": "nuget-sources", - "dest-filename": "gircore.pangocairo-1.0.0.5.0-preview.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/markdig/0.33.0/markdig.0.33.0.nupkg", - "sha512": "7c25e58bc7b35730ca5cacef6a8068cdd5c1f313053f6482d2d3d80f9bf15387a6a14ae317d308d26dc493be57f82df284f4d588a414f6c0ea0c8bd5bec371a6", - "dest": "nuget-sources", - "dest-filename": "markdig.0.33.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/meziantou.framework.win32.credentialmanager/1.4.5/meziantou.framework.win32.credentialmanager.1.4.5.nupkg", - "sha512": "4eba895ba3ff77d54c805c409188b914ba1b88690aaef2d87f99a4a5407cfc93a6564517b6655b23cae8e542d1eac0a445bbf15decb2499b6cb7a191ea8550cc", - "dest": "nuget-sources", - "dest-filename": "meziantou.framework.win32.credentialmanager.1.4.5.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.data.sqlite.core/8.0.0/microsoft.data.sqlite.core.8.0.0.nupkg", - "sha512": "0d014ed863345a3e2093293e1ab21ecda817cc64ceb0aa531b444494966d7f30161c7cd1f872c3b3f07b401b4f866a941810569f06b4e3296f169fe673cceb1b", - "dest": "nuget-sources", - "dest-filename": "microsoft.data.sqlite.core.8.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.targets/5.0.0/microsoft.netcore.targets.5.0.0.nupkg", - "sha512": "8581e6dc902340efe7c92c5c9751296616045bed8fdc7d5e2d936bf90c603b94e72d2ea1aad7e2e567218d0ce389de393189a1cb65fb20e99c5ad0cfe1fa4c1b", - "dest": "nuget-sources", - "dest-filename": "microsoft.netcore.targets.5.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.win32.systemevents/8.0.0/microsoft.win32.systemevents.8.0.0.nupkg", - "sha512": "25016c508653fbf463c52d8fc3d2773b7c211c2402c4ea7b4aa987fb29c851d3f80c5e7abbcace2d4d5e061ae290524e8029afbc49a37d7e5186fe06aa4609b2", - "dest": "nuget-sources", - "dest-filename": "microsoft.win32.systemevents.8.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/nickvision.aura/2023.11.4/nickvision.aura.2023.11.4.nupkg", - "sha512": "ddf2502d83d4957ef4acecfb472f697360daa487d4c721969e94741bed24087f107478618b717209bd4c35186f0666cffbcf64dc240785dae7b21180dc2b0bcb", - "dest": "nuget-sources", - "dest-filename": "nickvision.aura.2023.11.4.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/octokit/9.0.0/octokit.9.0.0.nupkg", - "sha512": "fc12c80130652c89c4789ff30fe9a0649288aac65ab17b85dd0c7bca6f75d30ff3aca97e933d6aaf062e467ca9774d739a00688d23e832add3c7da048c790ea7", - "dest": "nuget-sources", - "dest-filename": "octokit.9.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/skiasharp/2.88.6/skiasharp.2.88.6.nupkg", - "sha512": "5b989f52d9e7efa557bf60e13c1ba329b63670bc66d07bf237e2c8f9bdf28634eeb1e3a735c17c0f7d5b6cb8e290bda0b139540a8b0b99343367f9710f81dffd", - "dest": "nuget-sources", - "dest-filename": "skiasharp.2.88.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/skiasharp.nativeassets.linux/2.88.6/skiasharp.nativeassets.linux.2.88.6.nupkg", - "sha512": "9a52cb0a6cbc69a1e888efcb70df4e08d20e7d1ab848eb07ba6fd1c8a3500b63e1c97d7579c40c23c7231f08028d7d22ad61851334a09f6e498b409385881bd0", - "dest": "nuget-sources", - "dest-filename": "skiasharp.nativeassets.linux.2.88.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/skiasharp.nativeassets.macos/2.88.6/skiasharp.nativeassets.macos.2.88.6.nupkg", - "sha512": "a9abf36aadd48c8a9e0ea35f95acdbe3a354091b37f97c1df97499213894f662e798687bad36da71fcfa05b6fdbc68aaff2e8a8ddbeec4ca2820bfe7cf5a9ed7", - "dest": "nuget-sources", - "dest-filename": "skiasharp.nativeassets.macos.2.88.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/skiasharp.nativeassets.win32/2.88.6/skiasharp.nativeassets.win32.2.88.6.nupkg", - "sha512": "02087547abd840806105270d43cc3a61b417f331192498571e2cff1382dfd15a1bf6b1552610c7579bf06da69b6e9a80b042ae980d0475da8acf3f7dab7334f4", - "dest": "nuget-sources", - "dest-filename": "skiasharp.nativeassets.win32.2.88.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.bundle_e_sqlcipher/2.1.6/sqlitepclraw.bundle_e_sqlcipher.2.1.6.nupkg", - "sha512": "e048023e511f00823c680a441696e003feeb76a1f673bb28124b999ce437051a1ae472673b89b22d89cbd5dc687fb51472b8bc643e97d2edd86fd33cd36cda19", - "dest": "nuget-sources", - "dest-filename": "sqlitepclraw.bundle_e_sqlcipher.2.1.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.core/2.1.6/sqlitepclraw.core.2.1.6.nupkg", - "sha512": "16bc39cd5325dea37e1564fc328a35966d6d820878290d945dc57496b716d4935b534285989af32fa7bd25ef9a8ac795b63e6a19044d3f84a104d643319473be", - "dest": "nuget-sources", - "dest-filename": "sqlitepclraw.core.2.1.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.lib.e_sqlcipher/2.1.6/sqlitepclraw.lib.e_sqlcipher.2.1.6.nupkg", - "sha512": "0772e6626ab9b6c911eb86f4b54e2b5114a47650e40b7198094fa517dafa6dc2d17f15698e9df27311379162c880fa1ede53e62161ee1e9f6ea99b63df987449", - "dest": "nuget-sources", - "dest-filename": "sqlitepclraw.lib.e_sqlcipher.2.1.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.provider.e_sqlcipher/2.1.6/sqlitepclraw.provider.e_sqlcipher.2.1.6.nupkg", - "sha512": "b8eba767cc1376d2db0997d78a47f93108be4dc9305cfed5abc8819ce27ad5da80ea538e06056540c7c3303e54ee1fcccfa9763981b7da20787fe0d621e9e4d3", - "dest": "nuget-sources", - "dest-filename": "sqlitepclraw.provider.e_sqlcipher.2.1.6.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/system.drawing.common/8.0.0/system.drawing.common.8.0.0.nupkg", - "sha512": "40a16c9c5dd59148051bd55a2355339343186ec188bcb8e9ea5abe0dc6035106e7d745323cc4d492750e791c41397c53616b553d79b8d5e5fc56dff3345ed533", - "dest": "nuget-sources", - "dest-filename": "system.drawing.common.8.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/system.io.pipelines/6.0.0/system.io.pipelines.6.0.0.nupkg", - "sha512": "c5983b4510bc8ae4116133ffb9b280fe61d99d47ef52dd78e5bfd03e090901896d5d5fd738dae57006b971840a4d9422bded33ddefa5e927d75d309ef1f70dea", - "dest": "nuget-sources", - "dest-filename": "system.io.pipelines.6.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/system.memory/4.5.3/system.memory.4.5.3.nupkg", - "sha512": "70fce15a52cc76aacbae05c8e89e2e398d1d32903f63f640a7dd4a3e5747f2c7a887d4bfd22f2a2e40274906cf91648dfd169734fb7c74eb9b4f72614084e1db", - "dest": "nuget-sources", - "dest-filename": "system.memory.4.5.3.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/system.memory/4.5.5/system.memory.4.5.5.nupkg", - "sha512": "e8c8e536c97b94ac3443c940b30dad43cf6e97dc7a8c3d989371048fe74e168606384f5e0143bdc0d86f7783bf9fdee8417964cb3a8a5d752713e90b125172dc", - "dest": "nuget-sources", - "dest-filename": "system.memory.4.5.5.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/tmds.dbus/0.15.0/tmds.dbus.0.15.0.nupkg", - "sha512": "6384602b2691a1ded0cad96f38b2a9bab09d5993fffa28c5904ac355643732ba71bf5a11f07102390dcd2936044e7b8187d81fecbc85504dbd31cfe5191e065a", - "dest": "nuget-sources", - "dest-filename": "tmds.dbus.0.15.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/tmds.dbus.protocol/0.15.0/tmds.dbus.protocol.0.15.0.nupkg", - "sha512": "45958a88536d1daa769934986b3ac514cdc1104a936bc404dbdec550c958847e7408af621350c09fa51bc4b837fb88471ec6e6056c4aaa2cebf30f044cd834e9", - "dest": "nuget-sources", - "dest-filename": "tmds.dbus.protocol.0.15.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/cake.tool/4.0.0/cake.tool.4.0.0.nupkg", - "sha512": "63b5049577afda8b70f7586582a1971452d767b2f771f2f3d1c0e4367ca3d6406a1b7e3a6ee81c7392e7b1a0ce98eb1f6494de9b7539a75fa9327140685b2b7d", - "dest": "nuget-sources", - "dest-filename": "cake.tool.4.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/cake.filehelpers/7.0.0/cake.filehelpers.7.0.0.nupkg", - "sha512": "1d664222e299c5289a24eac50c98add36840e0820af8f13ff826914250624bc8408f0d8e6c83e8b579e25ed675d2193352953c65f6fc6e9b6e8fe41da9cc8678", - "dest": "nuget-sources", - "dest-filename": "cake.filehelpers.7.0.0.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.linux-arm/8.0.1/microsoft.aspnetcore.app.runtime.linux-arm.8.0.1.nupkg", - "sha512": "e1f9b23b30b8b1d19c2dece0608e76a1034837fcee5dded039b7b03f3f8f4af0878ae9178b629c8a50657b8924ead353a824f30df15157b2d8f58d699e03383d", - "dest": "nuget-sources", - "dest-filename": "microsoft.aspnetcore.app.runtime.linux-arm.8.0.1.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.linux-arm64/8.0.1/microsoft.aspnetcore.app.runtime.linux-arm64.8.0.1.nupkg", - "sha512": "d4e3ac0458d81e6c96a3951187322f77144a35ce7281bf0a68cd63461bbbe33beb152e45e547d99172080e70a15ac42f6663a871384021e2f2de76f1c51139b6", - "dest": "nuget-sources", - "dest-filename": "microsoft.aspnetcore.app.runtime.linux-arm64.8.0.1.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.linux-x64/8.0.1/microsoft.aspnetcore.app.runtime.linux-x64.8.0.1.nupkg", - "sha512": "97fbccedc48880f0f9249df2ae25e2b6828d618bec4740c298ea0b359d5e3ffb828345dec01c1fa4a6d4de5eddd3671174d20a45128e495fff96a7e1521e019d", - "dest": "nuget-sources", - "dest-filename": "microsoft.aspnetcore.app.runtime.linux-x64.8.0.1.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.linux-arm/8.0.1/microsoft.netcore.app.runtime.linux-arm.8.0.1.nupkg", - "sha512": "db008e7b2f0691529a748fa31b70c9b1f76cd248f3b3d6b353c353ec99b7132fc45834798e6657ee75594e2ce158c7ac74c9df899e0c0d4b1bfd74041b2e4dc0", - "dest": "nuget-sources", - "dest-filename": "microsoft.netcore.app.runtime.linux-arm.8.0.1.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.linux-arm64/8.0.1/microsoft.netcore.app.runtime.linux-arm64.8.0.1.nupkg", - "sha512": "3322f6e3a176bb3eef54953125ae5fedba1570cbfba580d2eaef59c8fb4fd1326cc7001bfd49706961541e5bed328fa833a8b802d33fb1be6318175cd31cbd4d", - "dest": "nuget-sources", - "dest-filename": "microsoft.netcore.app.runtime.linux-arm64.8.0.1.nupkg" - }, - { - "type": "file", - "url": "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.linux-x64/8.0.1/microsoft.netcore.app.runtime.linux-x64.8.0.1.nupkg", - "sha512": "ee341ecc86c7bbf4e7fab5e468883d5c4e4c4e62581e2426f1261c3d8a195964b85017219ab1d62d9804dce2dbc7f575a79272d7df719082fec7b0d3483734da", - "dest": "nuget-sources", - "dest-filename": "microsoft.netcore.app.runtime.linux-x64.8.0.1.nupkg" - } -] \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Controllers/DrawingViewController.cs b/NickvisionCavalier.Shared/Controllers/DrawingViewController.cs deleted file mode 100644 index 2424fdf..0000000 --- a/NickvisionCavalier.Shared/Controllers/DrawingViewController.cs +++ /dev/null @@ -1,72 +0,0 @@ -using NickvisionCavalier.Shared.Models; -using SkiaSharp; -using System; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.Shared.Controllers; - -public class DrawingViewController : IDisposable -{ - private bool _disposed; - private readonly Renderer _renderer; - - /// - /// CAVA instance - /// - public CAVA CAVA { get; init; } - - public DrawingViewController() - { - _disposed = false; - _renderer = new Renderer(); - CAVA = new CAVA(); - CAVA.Restart(); - } - - /// - /// Finalizes the DrawingViewController - /// - ~DrawingViewController() => Dispose(false); - - /// - /// CAVA framerate - /// - public uint Framerate => Configuration.Current.Framerate; - - /// - /// SKCanvas to draw on - /// - public SKCanvas? Canvas - { - get => _renderer.Canvas; - - set => _renderer.Canvas = value; - } - - /// - /// Frees resources used by the Account object - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Frees resources used by the Account object - /// - protected virtual void Dispose(bool disposing) - { - if (_disposed) - { - return; - } - if (disposing) - { - CAVA.Dispose(); - } - _disposed = true; - } - - public void Render(float[] sample, float width, float height) => _renderer.Draw(sample, width, height); -} \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Controllers/MainWindowController.cs b/NickvisionCavalier.Shared/Controllers/MainWindowController.cs deleted file mode 100644 index 7957c46..0000000 --- a/NickvisionCavalier.Shared/Controllers/MainWindowController.cs +++ /dev/null @@ -1,111 +0,0 @@ -using Nickvision.Aura; -using NickvisionCavalier.Shared.Models; -using System; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.Shared.Controllers; - -/// -/// A controller for a MainWindow -/// -public class MainWindowController -{ - /// - /// Gets the AppInfo object - /// - public AppInfo AppInfo => Aura.Active.AppInfo; - /// - /// The preferred theme of the application - /// - public Theme Theme => Configuration.Current.ColorProfiles[Configuration.Current.ActiveProfile].Theme; - /// - /// The MainWindow width - /// - public uint WindowWidth => Configuration.Current.WindowWidth; - /// - /// The MainWindow height - /// - public uint WindowHeight => Configuration.Current.WindowHeight; - /// - /// Whether the main window is maximized or not - /// - public bool WindowMaximized => Configuration.Current.WindowMaximized; - /// - /// Whether the window should be borderless - /// - public bool Borderless => Configuration.Current.Borderless; - /// - /// Whether the corners of the window should be sharp - /// - public bool SharpCorners => Configuration.Current.SharpCorners; - /// - /// Whether to show window controls - /// - public bool ShowControls => Configuration.Current.ShowControls; - /// - /// Whether to autohide the headerbar - /// - public bool AutohideHeader => Configuration.Current.AutohideHeader; - - public PreferencesViewController PreferencesViewController { get; init; } - - public event EventHandler? RaiseCommandReceived; - - /// - /// Constructs a MainWindowController - /// - /// Command-line arguments - public MainWindowController(string[] args) - { - Aura.Init("org.nickvision.cavalier", "Nickvision Cavalier"); - AppInfo.EnglishShortName = "Cavalier"; - AppInfo.ShortName = _("Cavalier"); - AppInfo.Description = _("Visualize audio with CAVA"); - AppInfo.Version = "2024.1.0"; - AppInfo.SourceRepo = new Uri("https://github.com/NickvisionApps/Cavalier"); - AppInfo.IssueTracker = new Uri("https://github.com/NickvisionApps/Cavalier/issues/new"); - AppInfo.SupportUrl = new Uri("https://github.com/NickvisionApps/Cavalier/discussions"); - AppInfo.ExtraLinks[_("Matrix Chat")] = new Uri("https://matrix.to/#/#nickvision:matrix.org"); - AppInfo.Developers[_("Fyodor Sobolev")] = new Uri("https://github.com/fsobolev"); - AppInfo.Developers[_("Nicholas Logozzo")] = new Uri("https://github.com/nlogozzo"); - AppInfo.Developers[_("Contributors on GitHub ❤️")] = new Uri("https://github.com/NickvisionApps/Cavalier/graphs/contributors"); - AppInfo.Designers[_("Fyodor Sobolev")] = new Uri("https://github.com/fsobolev"); - AppInfo.Artists[_("David Lapshin")] = new Uri("https://github.com/daudix-UFO"); - AppInfo.TranslatorCredits = _("translator-credits"); - PreferencesViewController = new PreferencesViewController(); - var ipc = Aura.Active.Communicate(args); - ipc.CommandReceived += HandleCommandLine; - HandleCommandLine(this, args); - } - - /// - /// Process command-line arguments passed when starting the app or from other instances - /// - /// Sender or event, either this or IPCServer - /// Command-line arguments - public void HandleCommandLine(object? sender, string[] args) - { - if (args.Length == 0) - { - RaiseCommandReceived?.Invoke(this, EventArgs.Empty); - } - else - { - PreferencesViewController.HandleCommandLine(sender, args); - } - } - - /// - /// Saves the MainWindow size to configuration - /// - /// Window width - /// Windiw height - /// Whether the window is maximized or not - public void SaveWindowSize(uint width, uint height, bool maximized) - { - Configuration.Current.WindowWidth = width; - Configuration.Current.WindowHeight = height; - Configuration.Current.WindowMaximized = maximized; - Configuration.Current.Save(); - } -} diff --git a/NickvisionCavalier.Shared/Controllers/PreferencesViewController.cs b/NickvisionCavalier.Shared/Controllers/PreferencesViewController.cs deleted file mode 100644 index 6279c37..0000000 --- a/NickvisionCavalier.Shared/Controllers/PreferencesViewController.cs +++ /dev/null @@ -1,742 +0,0 @@ -using CommandLine; -using CommandLine.Text; -using Markdig.Helpers; -using Nickvision.Aura; -using NickvisionCavalier.Shared.Models; -using System; -using System.Collections.Generic; -using System.IO; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.Shared.Controllers; - -/// -/// A controller for a PreferencesView -/// -public class PreferencesViewController -{ - /// - /// Command-line parser - /// - private readonly Parser _parser; - /// - /// Gets the AppInfo object - /// - public string ID => Aura.Active.AppInfo.ID; - /// - /// The list of images that can be used as background images - /// - /// List of paths - public List ImagesList - { - get - { - var result = new List(); - var imagesDir = $"{UserDirectories.ApplicationConfig}{Path.DirectorySeparatorChar}images"; - if (!Directory.Exists(imagesDir)) - { - Directory.CreateDirectory(imagesDir); - return result; - } - foreach (var file in Directory.GetFiles(imagesDir)) - { - var extension = Path.GetExtension(file).ToLower(); - if (extension == ".jpg" || extension == ".jpeg" || extension == ".png") - { - result.Add(file); - } - } - result.Sort(); - return result; - } - } - - /// - /// Occurs when the view needs to be updated (instant settings) - /// - public event EventHandler? OnUpdateViewInstant; - /// - /// Occurs when the view needs to be updated (CAVA settings) - /// - public event EventHandler? OnUpdateViewCAVA; - /// - /// Occurs when window settings were changed from the view - /// - public event EventHandler? OnWindowSettingsChanged; - /// - /// Occurs when CAVA settings were changed from the view - /// - public event EventHandler? OnCAVASettingsChanged; - /// - /// Occurs when Help screen needs to be shown - /// - public event EventHandler? OnShowHelpScreen; - - /// - /// Constructs a PreferencesViewController - /// - internal PreferencesViewController() - { - _parser = new Parser(with => - { - with.AutoVersion = false; - with.HelpWriter = null; - }); - } - - /// - /// Size of drawing area margins in pixels - /// - public uint AreaMargin - { - get => Configuration.Current.AreaMargin; - - set => Configuration.Current.AreaMargin = value; - } - - /// - /// Drawing area X offset (-0.5-0.5) - /// - public float AreaOffsetX - { - get => Configuration.Current.AreaOffsetX; - - set => Configuration.Current.AreaOffsetX = value; - } - - /// - /// Drawing area Y offset (-0.5-0.5) - /// - public float AreaOffsetY - { - get => Configuration.Current.AreaOffsetY; - - set => Configuration.Current.AreaOffsetY = value; - } - - /// - /// Whether the window should be borderless - /// - public bool Borderless - { - get => Configuration.Current.Borderless; - - set => Configuration.Current.Borderless = value; - } - - /// - /// Whether the corners of the window should be sharp - /// - public bool SharpCorners - { - get => Configuration.Current.SharpCorners; - - set => Configuration.Current.SharpCorners = value; - } - - /// - /// Whether to show window controls - /// - public bool ShowControls - { - get => Configuration.Current.ShowControls; - - set => Configuration.Current.ShowControls = value; - } - - /// - /// Whether to autohide the headerbar - /// - public bool AutohideHeader - { - get => Configuration.Current.AutohideHeader; - - set => Configuration.Current.AutohideHeader = value; - } - - /// - /// CAVA framerate - /// - public uint Framerate - { - get => Configuration.Current.Framerate; - - set => Configuration.Current.Framerate = value; - } - - /// - /// Number of bar pairs in CAVA - /// - public uint BarPairs - { - get => Configuration.Current.BarPairs; - - set => Configuration.Current.BarPairs = value; - } - - /// - /// Whether to enable autosens in CAVA - /// - public bool Autosens - { - get => Configuration.Current.Autosens; - - set => Configuration.Current.Autosens = value; - } - - /// - /// Manual sensitivity (will be squared when passed to CAVA) - /// - public uint Sensitivity - { - get => Configuration.Current.Sensitivity; - - set => Configuration.Current.Sensitivity = value; - } - - /// - /// Whether to set channels to stereo (mono if false) - /// - public bool Stereo - { - get => Configuration.Current.Stereo; - - set => Configuration.Current.Stereo = value; - } - - /// - /// Whether to enable monstercat smoothing - /// - public bool Monstercat - { - get => Configuration.Current.Monstercat; - - set => Configuration.Current.Monstercat = value; - } - - /// - /// Noise reduction value (0.15-0.95) - /// - public float NoiseReduction - { - get => Configuration.Current.NoiseReduction; - - set => Configuration.Current.NoiseReduction = value; - } - - /// - /// Whether to reverse bars order for each channel - /// - public bool ReverseOrder - { - get => Configuration.Current.ReverseOrder; - - set => Configuration.Current.ReverseOrder = value; - } - - /// - /// Drawing direction - /// - public DrawingDirection Direction - { - get => Configuration.Current.Direction; - - set => Configuration.Current.Direction = value; - } - - /// - /// The size of spaces between elements - /// - public float ItemsOffset - { - get => Configuration.Current.ItemsOffset; - - set => Configuration.Current.ItemsOffset = value; - } - - /// - /// Roundness of items (0 - square, 1 - round) - /// - public float ItemsRoundness - { - get => Configuration.Current.ItemsRoundness; - - set => Configuration.Current.ItemsRoundness = value; - } - - /// - /// Whether to fill or draw lines - /// - public bool Filling - { - get => Configuration.Current.Filling; - - set => Configuration.Current.Filling = value; - } - - /// - /// Thickness of lines when filling is off (in pixels) - /// - public float LinesThickness - { - get => Configuration.Current.LinesThickness; - - set => Configuration.Current.LinesThickness = value; - } - - /// - /// Active drawing mode - /// - public DrawingMode Mode - { - get => Configuration.Current.Mode; - - set => Configuration.Current.Mode = value; - } - - /// - /// Mirror mode - /// - public Mirror Mirror - { - get => Configuration.Current.Mirror; - - set => Configuration.Current.Mirror = value; - } - - /// - /// Inner circle radius ratio in circle modes (0.2-0.8) - /// - public float InnerRadius - { - get => Configuration.Current.InnerRadius; - - set => Configuration.Current.InnerRadius = value; - } - - /// - /// Rotation angle in radians in circle modes (0-2PI) - /// - public float Rotation - { - get => Configuration.Current.Rotation; - - set => Configuration.Current.Rotation = value; - } - - /// - /// Whether to reverse mirrored bars - /// - public bool ReverseMirror - { - get => Configuration.Current.ReverseMirror; - - set => Configuration.Current.ReverseMirror = value; - } - - /// - /// List of color profiles - /// - public List ColorProfiles => Configuration.Current.ColorProfiles; - - /// - /// Active color profile index - /// - public int ActiveProfile - { - get => Configuration.Current.ActiveProfile; - - set => Configuration.Current.ActiveProfile = value; - } - - /// - /// Index of a background image to load (-1 to not load anything) - /// - public int BgImageIndex - { - get => Configuration.Current.BgImageIndex; - - set => Configuration.Current.BgImageIndex = value; - } - - /// - /// Background image scale (0.1-1.0, 1.0 - fill the window) - /// - public float BgImageScale - { - get => Configuration.Current.BgImageScale; - - set => Configuration.Current.BgImageScale = value; - } - - /// - /// Background image transparency (0.1-1.0, 1.0 - fully opaque) - /// - public float BgImageAlpha - { - get => Configuration.Current.BgImageAlpha; - - set => Configuration.Current.BgImageAlpha = value; - } - - /// - /// Index of a foreground image to load (-1 to not load anything) - /// - public int FgImageIndex - { - get => Configuration.Current.FgImageIndex; - - set => Configuration.Current.FgImageIndex = value; - } - - /// - /// Foreground image scale (0.1-1.0, 1.0 - fill the window) - /// - public float FgImageScale - { - get => Configuration.Current.FgImageScale; - - set => Configuration.Current.FgImageScale = value; - } - - /// - /// Foreground image transparency (0.1-1.0, 1.0 - fully opaque) - /// - public float FgImageAlpha - { - get => Configuration.Current.FgImageAlpha; - - set => Configuration.Current.FgImageAlpha = value; - } - - /// - /// Whether to replace Spine mode with Hearts mode (easter egg) - /// - /// Suggested by my beloved Xenia <3 - public bool Hearts - { - get => Configuration.Current.Hearts; - - private set => Configuration.Current.Hearts = value; - } - - /// - /// Process command-line arguments passed when starting the app or from other instances - /// - public void HandleCommandLine(object? sender, string[] args) - { - var parserResult = _parser.ParseArguments(args); - parserResult.WithParsed((o) => - { - var updateCavalier = false; - var updateCAVA = false; - if (o.AreaMargin.HasValue) - { - AreaMargin = Math.Min(o.AreaMargin.Value, 40); - updateCavalier = true; - } - if (o.AreaOffsetX.HasValue) - { - AreaOffsetX = Math.Max(-50, Math.Min(o.AreaOffsetX.Value, 50)) / 100f; - updateCavalier = true; - } - if (o.AreaOffsetY.HasValue) - { - AreaOffsetY = Math.Max(-50, Math.Min(o.AreaOffsetY.Value, 50)) / 100f; - updateCavalier = true; - } - if (o.AreaMargin.HasValue) - { - AreaMargin = Math.Min(o.AreaMargin.Value, 40); - updateCavalier = true; - } - if (o.Borderless.HasValue) - { - Borderless = o.Borderless.Value; - updateCavalier = true; - } - if (o.SharpCorners.HasValue) - { - SharpCorners = o.SharpCorners.Value; - updateCavalier = true; - } - if (o.BarPairs.HasValue) - { - BarPairs = Math.Max(3, Math.Min(o.BarPairs.Value, 50)); - updateCAVA = true; - } - if (o.Stereo.HasValue) - { - Stereo = o.Stereo.Value; - updateCAVA = true; - } - if (o.ReverseOrder.HasValue) - { - ReverseOrder = o.ReverseOrder.Value; - updateCavalier = true; - } - if (o.Direction.HasValue) - { - Direction = o.Direction.Value; - updateCavalier = true; - } - if (o.ItemsOffset.HasValue) - { - ItemsOffset = Math.Min(o.ItemsOffset.Value, 20) / 100.0f; - updateCavalier = true; - } - if (o.ItemsRoundness.HasValue) - { - ItemsRoundness = Math.Min(o.ItemsRoundness.Value, 100) / 100.0f; - updateCavalier = true; - } - if (o.Filling.HasValue) - { - Filling = o.Filling.Value; - updateCavalier = true; - } - if (o.LinesThickness.HasValue) - { - LinesThickness = Math.Min(o.LinesThickness.Value, 10); - updateCavalier = true; - } - if (o.Mode.HasValue) - { - Mode = o.Mode.Value; - updateCavalier = true; - } - if (o.Mirror.HasValue) - { - Mirror = o.Mirror.Value; - updateCavalier = true; - } - if (o.ReverseMirror.HasValue) - { - ReverseMirror = o.ReverseMirror.Value; - updateCavalier = true; - } - if (o.InnerRadius.HasValue) - { - InnerRadius = Math.Max(80, Math.Min(20, o.InnerRadius.Value)) / 100f; - updateCavalier = true; - } - if (o.Rotation.HasValue) - { - Rotation = Math.Max(360, o.InnerRadius.Value) / 360f * (float)Math.PI * 2; - updateCavalier = true; - } - if (o.ActiveProfile.HasValue) - { - if (o.ActiveProfile.Value < Configuration.Current.ColorProfiles.Count) - { - ActiveProfile = (int)o.ActiveProfile.Value; - updateCavalier = true; - } - } - if (!string.IsNullOrEmpty(o.BgColor) && (o.BgColor!.Length == 6 || o.BgColor!.Length == 8)) - { - if(o.BgColor.Length == 6) - { - o.BgColor = $"ff{o.BgColor}"; - } - foreach (var c in o.BgColor) - { - if (!c.IsDigit() && c < 'a' && c > 'f') //hex can be any digit or a-f - { - return; - } - } - EditColor(ColorType.Background, 0, $"#{o.BgColor}"); - updateCavalier = true; - } - if (o.BgImageIndex.HasValue) - { - if (o.BgImageIndex.Value > -1 && o.BgImageIndex.Value <= ImagesList.Count) - { - BgImageIndex = o.BgImageIndex.Value - 1; - updateCavalier = true; - } - } - if (o.BgImageScale.HasValue) - { - BgImageScale = Math.Max(0.1f, Math.Min(o.BgImageScale.Value / 100f, 1f)); - updateCavalier = true; - } - if (o.BgImageAlpha.HasValue) - { - BgImageAlpha = Math.Max(0.1f, Math.Min(o.BgImageAlpha.Value / 100f, 1f)); - updateCavalier = true; - } - if (!string.IsNullOrEmpty(o.FgColor) && (o.FgColor!.Length == 6 || o.FgColor!.Length == 8)) - { - if (o.FgColor.Length == 6) - { - o.FgColor = $"ff{o.FgColor}"; - } - foreach (var c in o.FgColor) //hex can be any digit or a-f - { - if (!c.IsDigit() && (c < 'a' || c > 'f')) - { - return; - } - } - EditColor(ColorType.Foreground, 0, $"#{o.FgColor}"); - updateCavalier = true; - } - if (o.FgImageIndex.HasValue) - { - if (o.FgImageIndex.Value > -1 && o.FgImageIndex.Value <= ImagesList.Count) - { - FgImageIndex = o.FgImageIndex.Value - 1; - updateCavalier = true; - } - } - if (o.FgImageScale.HasValue) - { - FgImageScale = Math.Max(0.1f, Math.Min(o.FgImageScale.Value / 100f, 1f)); - updateCavalier = true; - } - if (o.FgImageAlpha.HasValue) - { - FgImageAlpha = Math.Max(0.1f, Math.Min(o.FgImageAlpha.Value / 100f, 1f)); - updateCavalier = true; - } - if (o.Hearts) - { - Hearts = true; - updateCavalier = true; - } - if (updateCavalier) - { - OnUpdateViewInstant?.Invoke(this, EventArgs.Empty); - } - if (updateCAVA) - { - OnUpdateViewCAVA?.Invoke(this, EventArgs.Empty); - } - }).WithNotParsed(_ => - { - var help = GenerateHelp(parserResult); - if (sender is MainWindowController) - { - // Help screen was caused by first instance on start, let's show and exit - Console.WriteLine(help); - Environment.Exit(1); - } - OnShowHelpScreen?.Invoke(this, help); - }); - } - - /// - /// Create help text - /// - /// Command line parser result - /// Help text - private string GenerateHelp(ParserResult result) - { - var helpText = HelpText.AutoBuild(result, h => - { - h.AdditionalNewLineAfterOption = true; - h.Heading = $"{Aura.Active.AppInfo.ShortName} {Aura.Active.AppInfo.Version}"; - h.Copyright = "Copyright (c) 2023 Nickvision"; - h.AutoVersion = false; - return HelpText.DefaultParsingErrorsHandler(result, h); - }, e => e); - return helpText; - } - - /// - /// Saves the configuration to disk - /// - public void SaveConfiguration() => Configuration.Current.Save(); - - /// - /// Occurs when a window's setting has changed - /// - public void ChangeWindowSettings() => OnWindowSettingsChanged?.Invoke(this, EventArgs.Empty); - - /// - /// Occurs when a CAVA setting has changed - /// - public void ChangeCAVASettings() => OnCAVASettingsChanged?.Invoke(this, EventArgs.Empty); - - /// - /// Adds new color profile - /// - /// New profile name - public void AddColorProfile(string name) - { - var newProfile = (ColorProfile)ColorProfiles[ActiveProfile].Clone(); - newProfile.Name = name; - ColorProfiles.Add(newProfile); - ActiveProfile = ColorProfiles.Count - 1; - } - - /// - /// Add color to active profile - /// - /// Color type - /// Color string (#aarrggbb) - public void AddColor(ColorType type, string color) - { - if (type == ColorType.Foreground) - { - ColorProfiles[ActiveProfile].FgColors.Add(color); - } - else - { - ColorProfiles[ActiveProfile].BgColors.Add(color); - } - } - - /// - /// Edit color in active profile - /// - /// Color type - /// Color index - /// Color string (#aarrggbb) - public void EditColor(ColorType type, int index, string color) - { - if (type == ColorType.Foreground) - { - ColorProfiles[ActiveProfile].FgColors[index] = color; - } - else - { - ColorProfiles[ActiveProfile].BgColors[index] = color; - } - } - - /// - /// Deletes a color from active profile - /// - /// Color type - /// Color index - public void DeleteColor(ColorType type, int index) - { - if (type == ColorType.Foreground) - { - ColorProfiles[ActiveProfile].FgColors.RemoveAt(index); - } - else - { - ColorProfiles[ActiveProfile].BgColors.RemoveAt(index); - } - } - - /// - /// Copy image from given path to Cavalier's images folder - /// - public void AddImage(string path) - { - var baseFilename = Path.GetFileName(path); - var filename = baseFilename; - var i = 0; - while (File.Exists($"{UserDirectories.ApplicationConfig}{Path.DirectorySeparatorChar}images{Path.DirectorySeparatorChar}{filename}")) - { - i++; - filename = $"{Path.GetFileNameWithoutExtension(baseFilename)}-{i}{Path.GetExtension(baseFilename)}"; - } - File.Copy(path, $"{UserDirectories.ApplicationConfig}{Path.DirectorySeparatorChar}images{Path.DirectorySeparatorChar}{filename}"); - } -} diff --git a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.desktop.in b/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.desktop.in deleted file mode 100644 index 2f4ac5a..0000000 --- a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.desktop.in +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=Cavalier -Comment=Visualize audio with CAVA -Exec=@EXEC@ -Icon=org.nickvision.cavalier -Terminal=false -Type=Application -StartupNotify=true -Categories=AudioVideo;Audio; \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.in b/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.in deleted file mode 100644 index 90a7fd9..0000000 --- a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.in +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec @EXEC@ "$@" diff --git a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.metainfo.xml.in b/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.metainfo.xml.in deleted file mode 100644 index e9d92cb..0000000 --- a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.metainfo.xml.in +++ /dev/null @@ -1,70 +0,0 @@ - - - org.nickvision.cavalier.desktop - CC0-1.0 - MIT - Cavalier - Visualize audio with CAVA - -

Cavalier is an audio visualizer based on CAVA with customizable interface.

-
    -
  • 11 drawing modes!
  • -
  • Set any color, a gradient or an image for background and foreground.
  • -
  • Configure smoothing, noise reduction and a few other CAVA settings.
  • -
-
- org.nickvision.cavalier.desktop - https://github.com/NickvisionApps/Cavalier - https://github.com/NickvisionApps/Cavalier/issues - https://github.com/sponsors/nlogozzo - https://github.com/NickvisionApps/Cavalier/blob/main/CONTRIBUTING.md#providing-translations - Nickvision - Nickvision - - org.nickvision.cavalier - - - - https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@PROJECT@/Screenshots/Main.png - - - https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@PROJECT@/Screenshots/Default.png - - - https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@PROJECT@/Screenshots/Bars.png - - - https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@PROJECT@/Screenshots/Spine.png - - - https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@PROJECT@/Screenshots/Levels.png - - - https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@PROJECT@/Screenshots/Images.png - - - https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@PROJECT@/Screenshots/Circle.png - - - - - -

- The wave box drawing mode now draws smoother bezier curves (Thanks @OggyP)

-

- Users can now specify `--fg aarrggbb` or `--bg aarrggbb` command line arguments to change the foreground and background color of the running Cavalier instance respectively

-

- Updated translations (Thanks everyone on Weblate!)

-
-
-
- - - pointing - keyboard - touch - - - 360 - - - mobile - -
diff --git a/NickvisionCavalier.Shared/Models/CAVA.cs b/NickvisionCavalier.Shared/Models/CAVA.cs deleted file mode 100644 index a4f6bc1..0000000 --- a/NickvisionCavalier.Shared/Models/CAVA.cs +++ /dev/null @@ -1,134 +0,0 @@ -using Nickvision.Aura; -using System; -using System.Diagnostics; -using System.IO; -using System.Threading.Tasks; - -namespace NickvisionCavalier.Shared.Models; - -public class CAVA : IDisposable -{ - private bool _disposed; - private readonly Process _proc; - private readonly string _configPath; - - public event EventHandler? OutputReceived; - - public CAVA() - { - _disposed = false; - _configPath = $"{UserDirectories.ApplicationConfig}{Path.DirectorySeparatorChar}cava_config"; - UpdateConfig(); - _proc = new Process - { - StartInfo = new ProcessStartInfo() - { - FileName = "cava", - Arguments = $"-p \"{_configPath}\"", - RedirectStandardOutput = true, - UseShellExecute = false - } - }; - } - - /// - /// Finalizes the CAVA object - /// - ~CAVA() => Dispose(false); - - /// - /// Frees resources used by the CAVA object - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Frees resources used by the CAVA object - /// - protected virtual void Dispose(bool disposing) - { - if (_disposed) - { - return; - } - if (disposing) - { - _proc.Kill(); - _proc.WaitForExit(); - } - _disposed = true; - } - - /// - /// Update CAVA configuration file - /// - private void UpdateConfig() - { - var config = @$"[general] - framerate = {Configuration.Current.Framerate} - bars = {Configuration.Current.BarPairs * 2} - autosens = {(Configuration.Current.Autosens ? "1" : "0")} - sensitivity = {Math.Pow(Configuration.Current.Sensitivity, 2)} - [input] - method = {Environment.GetEnvironmentVariable("CAVALIER_INPUT_METHOD") ?? "pulse"} - source = {Environment.GetEnvironmentVariable("CAVALIER_INPUT_SOURCE") ?? "auto"} - [output] - method = raw - raw_target = /dev/stdout - bit_format = 16bit - channels = {(Configuration.Current.Stereo ? "stereo" : "mono")} - [smoothing] - monstercat = {(Configuration.Current.Monstercat ? "1" : "0")} - noise_reduction = {(int)(Configuration.Current.NoiseReduction * 100)}"; - File.WriteAllText(_configPath, config); - } - - /// - /// (Re)start CAVA - /// - public void Restart() - { - try - { - _proc.Kill(); - } - catch (InvalidOperationException) { } - UpdateConfig(); - _proc.Start(); - Task.Run(ReadCAVAOutput); - } - - /// - /// Read what CAVA prints to stdout - /// - private void ReadCAVAOutput() - { - var br = new BinaryReader(_proc.StandardOutput.BaseStream); - while (!_proc.HasExited) - { - var sample = new float[Configuration.Current.BarPairs * 2]; - var len = (int)Configuration.Current.BarPairs * 4; - var ba = br.ReadBytes(len); - for (var i = 0; i < len; i += 2) - { - sample[i / 2] = BitConverter.ToUInt16(ba, i) / 65535.0f; - } - if (Configuration.Current.ReverseOrder) - { - if (Configuration.Current.Stereo) - { - Array.Reverse(sample, 0, sample.Length / 2); - Array.Reverse(sample, sample.Length / 2, sample.Length / 2); - } - else - { - Array.Reverse(sample, 0, sample.Length); - } - } - OutputReceived?.Invoke(this, sample); - } - } -} diff --git a/NickvisionCavalier.Shared/Models/CmdOptions.cs b/NickvisionCavalier.Shared/Models/CmdOptions.cs deleted file mode 100644 index 38f2b90..0000000 --- a/NickvisionCavalier.Shared/Models/CmdOptions.cs +++ /dev/null @@ -1,151 +0,0 @@ -using CommandLine; - -namespace NickvisionCavalier.Shared.Models; - -/// -/// Command-line options -/// -public class CmdOptions -{ - /// - /// Active drawing mode - /// - [Option('d', "drawing-mode", Required = false, HelpText = "Drawing mode, one of: wavebox, levelsbox, particlesbox, barsbox, spinebox, splitterbox, wavecircle, levelscircle, particlescircle, barscircle, spinecircle")] - public DrawingMode? Mode { get; set; } - /// - /// Mirror mode - /// - [Option('m', "mirror-mode", Required = false, HelpText = "Mirror more, one of: off, full, splitchannels (stereo only)")] - public Mirror? Mirror { get; set; } - /// - /// Whether to reverse mirrored bars - /// - [Option('v', "reverse-mirror", Required = false, HelpText = "Reverse mirror (true or false)")] - public bool? ReverseMirror { get; set; } - /// - /// Size of drawing area margins in pixels (0-40) - /// - [Option('n', "margin", Required = false, HelpText = "Area margin (0-40)")] - public uint? AreaMargin { get; set; } - /// - /// Drawing area X offset in percent of its width (-50-50) - /// - [Option('x', "offset-x", Required = false, HelpText = "Drawing area X offset (-50-50)")] - public int? AreaOffsetX { get; set; } - /// - /// Drawing area Y offset in percent of its height (-50-50) - /// - [Option('y', "offset-y", Required = false, HelpText = "Drawing area Y offset (-50-50)")] - public int? AreaOffsetY { get; set; } - /// - /// Drawing direction - /// - [Option('g', "drawing-direction", Required = false, HelpText = "Drawing direction, one of: topbottom, bottomtop, leftright, rightleft")] - public DrawingDirection? Direction { get; set; } - /// - /// The size of spaces between elements (0-20) - /// - [Option('t', "items-offset", Required = false, HelpText = "Offset between items (0-20)")] - public uint? ItemsOffset { get; set; } - /// - /// Roundness of items (0 - square, 100 - round) - /// - [Option('r', "items-roundness", Required = false, HelpText = "Roundness of items (0-100)")] - public uint? ItemsRoundness { get; set; } - /// - /// Whether to fill or draw lines - /// - [Option('f', "filling", Required = false, HelpText = "Fill (true) or draw lines (false)")] - public bool? Filling { get; set; } - /// - /// Thickness of lines in pixels when filling is off (0-100) - /// - [Option('l', "lines-thickness", Required = false, HelpText = "Lines thickness when filling is off (0-100)")] - public uint? LinesThickness { get; set; } - /// - /// Whether the window should be borderless - /// - [Option('w', "borderless", Required = false, HelpText = "Make window borderless (true or false)")] - public bool? Borderless { get; set; } - /// - /// Whether the corners of the window should be sharp - /// - [Option('s', "sharp-corners", Required = false, HelpText = "Make window corneres sharp (true or false)")] - public bool? SharpCorners { get; set; } - /// - /// Number of bar pairs in CAVA (3-50) - /// - [Option('b', "bar-pairs", Required = false, HelpText = "Number of bar pairs (3-50)")] - public uint? BarPairs { get; set; } - /// - /// Whether to set channels to stereo (mono if false) - /// - [Option('c', "stereo", Required = false, HelpText = "Mono (false) or stereo (true)")] - public bool? Stereo { get; set; } - /// - /// Whether to reverse bars order for each channel - /// - [Option('e', "reverse-order", Required = false, HelpText = "Reverse order of bars (true or false)")] - public bool? ReverseOrder { get; set; } - /// - /// Inner circle radius ratio in circle modes (20-80) - /// - [Option('u', "radius", Required = false, HelpText = "Inner circle radius in circle modes (20-80)")] - public uint? InnerRadius { get; set; } - /// - /// Rotation in circle modes (0-360) - /// - [Option('o', "rotation", Required = false, HelpText = "Rotation in circle modes (0-360)")] - public uint? Rotation { get; set; } - /// - /// Active color profile index - /// - [Option('p', "profile", Required = false, HelpText = "Zero-based index of profile to activate")] - public uint? ActiveProfile { get; set; } - /// - /// Active background color - /// - [Option("bg", Required = false, HelpText = "Background color, hex format: aarrbbgg or rrbbgg")] - public string? BgColor { get; set; } - /// - /// Index of a background image to load (0 to not load anything) - /// - [Option("bg-index", Required = false, HelpText = "Index of background image to draw (0 for no image)")] - public int? BgImageIndex { get; set; } - /// - /// Background image scale (10-100, 100 - fill the window) - /// - [Option("bg-scale", Required = false, HelpText = "Background image scale in percent (10-100)")] - public uint? BgImageScale { get; set; } - /// - /// Background image transparency (10-100, 100 - fully opaque) - /// - [Option("bg-alpha", Required = false, HelpText = "Background image alpha in percent (10-100)")] - public uint? BgImageAlpha { get; set; } - /// - /// Active foreground color - /// - [Option("fg", Required = false, HelpText = "Foreground color, hex format: aarrbbgg or rrbbgg")] - public string? FgColor { get; set; } - /// - /// Index of a foreground image to load (0 to not load anything) - /// - [Option("fg-index", Required = false, HelpText = "Index of foreground image to draw (0 for no image)")] - public int? FgImageIndex { get; set; } - /// - /// Foreground image scale (10-100, 100 - fill the window) - /// - [Option("fg-scale", Required = false, HelpText = "Foreground image scale in percent (10-100)")] - public uint? FgImageScale { get; set; } - /// - /// Foreground image transparency (10-100, 100 - fully opaque) - /// - [Option("fg-alpha", Required = false, HelpText = "Foreground image alpha in percent (10-100)")] - public uint? FgImageAlpha { get; set; } - /// - /// Whether to replace Spine mode with Hearts mode (easter egg) - /// - /// Suggested by my beloved Xenia <3 - [Option("hearts", Required = false, HelpText = "Replace Spine mode with Hearts mode")] - public bool Hearts { get; set; } -} \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Models/ColorProfile.cs b/NickvisionCavalier.Shared/Models/ColorProfile.cs deleted file mode 100644 index 2e8366b..0000000 --- a/NickvisionCavalier.Shared/Models/ColorProfile.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using static Nickvision.Aura.Localization.Gettext; - -namespace NickvisionCavalier.Shared.Models; - -/// -/// Cavalier Color Profile -/// -public class ColorProfile : ICloneable -{ - /// - /// Name of the profile - /// - public string Name { get; set; } - /// - /// List of foreground colors, strings in formst "#aarrggbb" - /// - public List FgColors { get; set; } - /// - /// List of background colors, strings in format "#aarrggbb" - /// - public List BgColors { get; set; } - /// - /// Application theme - /// - public Theme Theme { get; set; } - - /// - /// Creates default profile - /// - public ColorProfile() - { - Name = _("Default"); - FgColors = new List { "#ff3584e4" }; - BgColors = new List { "#ff242424" }; - Theme = Theme.Dark; - } - - /// - /// Clones the color profile - /// - /// A new color profile - public object Clone() - { - return new ColorProfile() - { - Name = Name, - FgColors = new List(FgColors), - BgColors = new List(BgColors), - Theme = Theme - }; - } -} \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Models/ColorType.cs b/NickvisionCavalier.Shared/Models/ColorType.cs deleted file mode 100644 index aba4a0b..0000000 --- a/NickvisionCavalier.Shared/Models/ColorType.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace NickvisionCavalier.Shared.Models; - -/// -/// Color type -/// -public enum ColorType -{ - Foreground = 0, - Background -} \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Models/Configuration.cs b/NickvisionCavalier.Shared/Models/Configuration.cs deleted file mode 100644 index 9143009..0000000 --- a/NickvisionCavalier.Shared/Models/Configuration.cs +++ /dev/null @@ -1,221 +0,0 @@ -using Nickvision.Aura; -using System.Collections.Generic; -using System.Text.Json.Serialization; - -namespace NickvisionCavalier.Shared.Models; - -/// -/// A model for the configuration of the application -/// -public class Configuration : ConfigurationBase -{ - /// - /// Main window width - /// - public uint WindowWidth { get; set; } - /// - /// Main window height - /// - public uint WindowHeight { get; set; } - /// - /// Whether main window is maximized or not - /// - public bool WindowMaximized { get; set; } - /// - /// Size of drawing area margins in pixels - /// - public uint AreaMargin { get; set; } - /// - /// Drawing area X offset (-0.5-0.5) - /// - public float AreaOffsetX { get; set; } - /// - /// Drawing area Y offset (-0.5-0.5) - /// - public float AreaOffsetY { get; set; } - /// - /// Whether the window should be borderless - /// - public bool Borderless { get; set; } - /// - /// Whether the corners of the window should be sharp - /// - public bool SharpCorners { get; set; } - /// - /// Whether to show window controls - /// - public bool ShowControls { get; set; } - /// - /// Whether to autohide the headerbar - /// - public bool AutohideHeader { get; set; } - /// - /// CAVA framerate - /// - public uint Framerate { get; set; } - /// - /// Number of bar pairs in CAVA - /// - public uint BarPairs { get; set; } - /// - /// Whether to enable autosens in CAVA - /// - public bool Autosens { get; set; } - /// - /// Manual sensitivity (will be squared when passed to CAVA) - /// - public uint Sensitivity { get; set; } - /// - /// Whether to set channels to stereo (mono if false) - /// - public bool Stereo { get; set; } - /// - /// Whether to enable monstercat smoothing - /// - public bool Monstercat { get; set; } - /// - /// Noise reduction value (0.15-0.95) - /// - public float NoiseReduction { get; set; } - /// - /// Whether to reverse bars order for each channel - /// - public bool ReverseOrder { get; set; } - /// - /// Drawing direction - /// - public DrawingDirection Direction { get; set; } - /// - /// The size of spaces between elements - /// - public float ItemsOffset { get; set; } - /// - /// Roundness of items (0 - square, 1 - round) - /// - public float ItemsRoundness { get; set; } - /// - /// Whether to fill or draw lines - /// - public bool Filling { get; set; } - /// - /// Thickness of lines when filling is off (in pixels) - /// - public float LinesThickness { get; set; } - /// - /// Active drawing mode - /// - public DrawingMode Mode { get; set; } - /// - /// Mirror mode - /// - public Mirror Mirror { get; set; } - /// - /// Whether to reverse mirrored bars - /// - public bool ReverseMirror { get; set; } - /// - /// Inner circle radius ratio in circle modes (0.2-0.8) - /// - public float InnerRadius { get; set; } - /// - /// Rotation angle in radians in circle modes (0-2PI) - /// - public float Rotation { get; set; } - /// - /// List of color profiles - /// - public List ColorProfiles { get; set; } - /// - /// Active color profile index - /// - public int ActiveProfile { get; set; } - /// - /// Index of a background image to load (-1 to not load anything) - /// - public int BgImageIndex { get; set; } - /// - /// Background image scale (0.1-1.0, 1.0 - fill the window) - /// - public float BgImageScale { get; set; } - /// - /// Background image transparency (0.1-1.0, 1.0 - fully opaque) - /// - public float BgImageAlpha { get; set; } - /// - /// Index of a foreground image to load (-1 to not load anything) - /// - public int FgImageIndex { get; set; } - /// - /// Foreground image scale (0.1-1.0, 1.0 - fill the window) - /// - public float FgImageScale { get; set; } - /// - /// Foreground image transparency (0.1-1.0, 1.0 - fully opaque) - /// - public float FgImageAlpha { get; set; } - /// - /// Whether to replace Spine mode with Hearts mode (easter egg) - /// - /// Suggested by my beloved Xenia <3 - [JsonIgnore] - public bool Hearts { get; set; } - - /// - /// Constructs a Configuration - /// - public Configuration() - { - WindowWidth = 500; - WindowHeight = 300; - AreaMargin = 0; - Borderless = false; - SharpCorners = false; - ShowControls = false; - AutohideHeader = false; - Framerate = 60; - BarPairs = 6; - Autosens = true; - Sensitivity = 10; - Stereo = true; - Monstercat = true; - NoiseReduction = 0.77f; - ReverseOrder = true; - Direction = DrawingDirection.BottomTop; - ItemsOffset = 0.1f; - ItemsRoundness = 0.5f; - Filling = true; - LinesThickness = 5; - Mode = DrawingMode.WaveBox; - Mirror = Mirror.Off; - ReverseMirror = false; - InnerRadius = 0.5f; - Rotation = 0f; - ColorProfiles = new List { new ColorProfile() }; - ActiveProfile = 0; - BgImageIndex = -1; - BgImageScale = 1f; - BgImageAlpha = 1f; - FgImageIndex = -1; - FgImageScale = 1f; - FgImageAlpha = 1f; - Hearts = false; - } - - /// - /// Gets the singleton object - /// - internal static Configuration Current - { - get - { - var obj = Aura.Active.GetConfig("config"); - // Ensure that we have at least 1 color profile - if (obj.ColorProfiles.Count == 0) - { - obj.ColorProfiles = new List { new ColorProfile() }; - obj.ActiveProfile = 0; - } - return obj; - } - } -} diff --git a/NickvisionCavalier.Shared/Models/DrawingDirection.cs b/NickvisionCavalier.Shared/Models/DrawingDirection.cs deleted file mode 100644 index 38c0b4f..0000000 --- a/NickvisionCavalier.Shared/Models/DrawingDirection.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace NickvisionCavalier.Shared.Models; - -/// -/// Drawing direction -/// -public enum DrawingDirection -{ - TopBottom = 0, - BottomTop, - LeftRight, - RightLeft -} \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Models/DrawingMode.cs b/NickvisionCavalier.Shared/Models/DrawingMode.cs deleted file mode 100644 index a668879..0000000 --- a/NickvisionCavalier.Shared/Models/DrawingMode.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace NickvisionCavalier.Shared.Models; - -/// -/// Active drawing mode -/// -public enum DrawingMode -{ - WaveBox = 0, - LevelsBox, - ParticlesBox, - BarsBox, - SpineBox, - SplitterBox, - WaveCircle, - LevelsCircle, - ParticlesCircle, - BarsCircle, - SpineCircle -} \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Models/Mirror.cs b/NickvisionCavalier.Shared/Models/Mirror.cs deleted file mode 100644 index 54b590c..0000000 --- a/NickvisionCavalier.Shared/Models/Mirror.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace NickvisionCavalier.Shared.Models; - -/// -/// Mirror mode -/// -public enum Mirror -{ - Off = 0, - Full, - SplitChannels -} \ No newline at end of file diff --git a/NickvisionCavalier.Shared/Models/Renderer.cs b/NickvisionCavalier.Shared/Models/Renderer.cs deleted file mode 100644 index 3b4b956..0000000 --- a/NickvisionCavalier.Shared/Models/Renderer.cs +++ /dev/null @@ -1,1174 +0,0 @@ -using Nickvision.Aura; -using SkiaSharp; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -namespace NickvisionCavalier.Shared.Models; - -/// -/// An object that renders the picture -/// -public class Renderer -{ - private enum GradientType - { - Background = 0, - Foreground - } - - private delegate SKPath? DrawFunc(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint); - private float _oldWidth; - private float _oldHeight; - private int _bgImageIndex; - private SKBitmap? _bgImageBitmap; - private SKBitmap? _bgTargetBitmap; - private float _oldBgScale; - private int _fgImageIndex; - private SKBitmap? _fgImageBitmap; - private SKBitmap? _fgTargetBitmap; - private float _oldFgScale; - - /// - /// Renderer's canvas to draw on - /// - public SKCanvas? Canvas { get; set; } - - /// - /// Construct Renderer - /// - public Renderer() - { - Canvas = null; - _bgImageIndex = -1; - _fgImageIndex = -1; - _oldWidth = 0; - _oldHeight = 0; - _oldBgScale = 0f; - _oldFgScale = 0f; - } - - /// - /// Draw picture - /// - /// CAVA sample - /// Picture width - /// Picture height - public void Draw(float[] sample, float width, float height) - { - if (Canvas == null) - { - return; - } - Canvas.Clear(); - var profile = Configuration.Current.ColorProfiles[Configuration.Current.ActiveProfile]; - // Draw background - var bgPaint = new SKPaint - { - Style = SKPaintStyle.Fill, - IsAntialias = true - }; - if (profile.BgColors.Count > 1) - { - bgPaint.Shader = CreateGradient(GradientType.Background, profile.BgColors, width, height); - } - else - { - bgPaint.Color = SKColor.Parse(profile.BgColors[0]); - } - Canvas.DrawRect(0, 0, width, height, bgPaint); - // Prepare images - if (_bgImageIndex != Configuration.Current.BgImageIndex) - { - _bgImageBitmap?.Dispose(); - _bgTargetBitmap?.Dispose(); - if (Configuration.Current.BgImageIndex != -1) - { - var images = new List(); - foreach (var file in Directory.GetFiles($"{UserDirectories.ApplicationConfig}{Path.DirectorySeparatorChar}images")) - { - var extension = Path.GetExtension(file).ToLower(); - if (extension == ".jpg" || extension == ".jpeg" || extension == ".png") - { - images.Add(file); - } - } - images.Sort(); - if (Configuration.Current.BgImageIndex < images.Count) - { - _bgImageBitmap = SKBitmap.Decode(images[Configuration.Current.BgImageIndex]); - _oldBgScale = 0f; // To enforce redraw - } - else - { - Configuration.Current.BgImageIndex = -1; - } - } - _bgImageIndex = Configuration.Current.BgImageIndex; - } - if (_fgImageIndex != Configuration.Current.FgImageIndex) - { - _fgImageBitmap?.Dispose(); - _fgTargetBitmap?.Dispose(); - if (Configuration.Current.FgImageIndex != -1) - { - var images = new List(); - foreach (var file in Directory.GetFiles($"{UserDirectories.ApplicationConfig}{Path.DirectorySeparatorChar}images")) - { - var extension = Path.GetExtension(file).ToLower(); - if (extension == ".jpg" || extension == ".jpeg" || extension == ".png") - { - images.Add(file); - } - } - images.Sort(); - if (Configuration.Current.FgImageIndex < images.Count) - { - _fgImageBitmap = SKBitmap.Decode(images[Configuration.Current.FgImageIndex]); - _oldFgScale = 0f; // To enforce redraw - } - else - { - Configuration.Current.FgImageIndex = -1; - } - } - _fgImageIndex = Configuration.Current.FgImageIndex; - } - if (_oldWidth != width || _oldHeight != height || Math.Abs(_oldBgScale - Configuration.Current.BgImageScale) > 0.01f) - { - _oldBgScale = Configuration.Current.BgImageScale; - if (_bgImageIndex != -1) - { - var bgScale = Math.Max(width / _bgImageBitmap!.Width, height / _bgImageBitmap.Height); - var bgRect = new SKRect(0, 0, _bgImageBitmap.Width * bgScale, _bgImageBitmap.Height * bgScale); - _bgTargetBitmap?.Dispose(); - _bgTargetBitmap = new SKBitmap((int)(bgRect.Width * Configuration.Current.BgImageScale), (int)(bgRect.Height * Configuration.Current.BgImageScale)); - _bgImageBitmap.ScalePixels(_bgTargetBitmap, SKFilterQuality.Medium); - } - } - if (_oldWidth != width || _oldHeight != height || Math.Abs(_oldFgScale - Configuration.Current.FgImageScale) > 0.01f) - { - _oldFgScale = Configuration.Current.FgImageScale; - if (_fgImageIndex != -1) - { - var fgScale = Math.Max(width / _fgImageBitmap!.Width, height / _fgImageBitmap.Height); - var fgRect = new SKRect(0, 0, _fgImageBitmap.Width * fgScale, _fgImageBitmap.Height * fgScale); - _fgTargetBitmap?.Dispose(); - _fgTargetBitmap = new SKBitmap((int)(fgRect.Width * Configuration.Current.FgImageScale), (int)(fgRect.Height * Configuration.Current.FgImageScale)); - _fgImageBitmap.ScalePixels(_fgTargetBitmap, SKFilterQuality.Medium); - } - } - _oldWidth = width; - _oldHeight = height; - // Draw background image - if (_bgImageIndex != -1) - { - using var paint = new SKPaint(); - paint.Color = paint.Color.WithAlpha((byte)(255 * Configuration.Current.BgImageAlpha)); - Canvas.DrawBitmap(_bgTargetBitmap, width / 2 - _bgTargetBitmap!.Width / 2f, height / 2 - _bgTargetBitmap.Height / 2f, paint); - } - // Draw foreground - width -= Configuration.Current.AreaMargin * 2; - height -= Configuration.Current.AreaMargin * 2; - var fgPaint = new SKPaint - { - Style = Configuration.Current.Filling ? SKPaintStyle.Fill : SKPaintStyle.Stroke, - StrokeWidth = Configuration.Current.LinesThickness, - IsAntialias = true - }; - if (profile.FgColors.Count > 1 && Configuration.Current.Mode != DrawingMode.SpineBox && Configuration.Current.Mode != DrawingMode.SpineCircle) - { - fgPaint.Shader = CreateGradient(GradientType.Foreground, profile.FgColors, width, height, Configuration.Current.AreaMargin); - } - else - { - fgPaint.Color = SKColor.Parse(profile.FgColors[0]); - } - DrawFunc drawFunc = Configuration.Current.Mode switch - { - DrawingMode.LevelsBox => DrawLevelsBox, - DrawingMode.ParticlesBox => DrawParticlesBox, - DrawingMode.BarsBox => DrawBarsBox, - DrawingMode.SpineBox => DrawSpineBox, - DrawingMode.SplitterBox => DrawSplitterBox, - DrawingMode.WaveCircle => DrawWaveCircle, - DrawingMode.LevelsCircle => DrawLevelsCircle, - DrawingMode.ParticlesCircle => DrawParticlesCircle, - DrawingMode.BarsCircle => DrawBarsCircle, - DrawingMode.SpineCircle => DrawSpineCircle, - _ => DrawWaveBox, - }; - if (Configuration.Current.Mirror == Mirror.Full) - { - using var path1 = drawFunc(sample, Configuration.Current.Direction, - (width + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetX + Configuration.Current.AreaMargin, - (height + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetY + Configuration.Current.AreaMargin, - GetMirrorWidth(width), GetMirrorHeight(height), - Configuration.Current.Rotation, fgPaint); - using var path2 = drawFunc(Configuration.Current.ReverseMirror ? sample.Reverse().ToArray() : sample, GetMirrorDirection(), - (width + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetX + GetMirrorX(width), - (height + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetY + GetMirrorY(height), - GetMirrorWidth(width), GetMirrorHeight(height), - -Configuration.Current.Rotation, fgPaint); - if (path1 != null && path2 != null && _fgImageIndex != -1) - { - using var path = new SKPath(); - path.AddPath(path1); - path.AddPath(path2); - Canvas.Save(); - Canvas.ClipPath(path); - using var paint = new SKPaint(); - paint.Color = paint.Color.WithAlpha((byte)(255 * Configuration.Current.FgImageAlpha)); - Canvas.DrawBitmap(_fgTargetBitmap, - (width + Configuration.Current.AreaMargin * 2) / 2f - _fgTargetBitmap!.Width / 2f, - (height + Configuration.Current.AreaMargin * 2) / 2f - _fgTargetBitmap.Height / 2f, paint); - Canvas.Restore(); - } - } - else if (Configuration.Current.Mirror == Mirror.SplitChannels) - { - using var path1 = drawFunc(sample.Take(sample.Length / 2).ToArray(), Configuration.Current.Direction, - (width + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetX + Configuration.Current.AreaMargin, - (height + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetY + Configuration.Current.AreaMargin, - GetMirrorWidth(width), GetMirrorHeight(height), - Configuration.Current.Rotation, fgPaint); - using var path2 = drawFunc(Configuration.Current.ReverseMirror ? sample.Skip(sample.Length / 2).ToArray() : sample.Skip(sample.Length / 2).Reverse().ToArray(), GetMirrorDirection(), - (width + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetX + GetMirrorX(width), - (height + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetY + GetMirrorY(height), - GetMirrorWidth(width), GetMirrorHeight(height), - -Configuration.Current.Rotation, fgPaint); - if (path1 != null && path2 != null && _fgImageIndex != -1) - { - using var path = new SKPath(); - path.AddPath(path1); - path.AddPath(path2); - Canvas.Save(); - Canvas.ClipPath(path); - using var paint = new SKPaint(); - paint.Color = paint.Color.WithAlpha((byte)(255 * Configuration.Current.FgImageAlpha)); - Canvas.DrawBitmap(_fgTargetBitmap, width / 2 - _fgTargetBitmap!.Width / 2f, height / 2 - _fgTargetBitmap.Height / 2f, paint); - Canvas.Restore(); - } - } - else - { - using var path = drawFunc(sample, Configuration.Current.Direction, - (width + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetX + Configuration.Current.AreaMargin, - (height + Configuration.Current.AreaMargin * 2) * Configuration.Current.AreaOffsetY + Configuration.Current.AreaMargin, - width, height, - Configuration.Current.Rotation, fgPaint); - if (path != null && _fgImageIndex != -1) - { - Canvas.Save(); - Canvas.ClipPath(path); - using var paint = new SKPaint(); - paint.Color = paint.Color.WithAlpha((byte)(255 * Configuration.Current.FgImageAlpha)); - Canvas.DrawBitmap(_fgTargetBitmap, width / 2 - _fgTargetBitmap!.Width / 2f, height / 2 - _fgTargetBitmap.Height / 2f, paint); - Canvas.Restore(); - } - } - Canvas.Flush(); - } - - /// - /// Create gradient shader - /// - /// Gradient type (foreground or background) - /// List of colors as strings - /// Canvas width - /// Canvas height - /// Area margin - /// Skia Shader - private SKShader CreateGradient(GradientType type, List colorStrings, float width, float height, uint margin = 0) - { - var colors = colorStrings.Select(c => SKColor.Parse(c)).Reverse().ToArray(); - if (type == GradientType.Foreground) - { - if (Configuration.Current.Mode == DrawingMode.WaveCircle) - { - if (Configuration.Current.Mirror > Mirror.Off) - { - width = GetMirrorWidth(width); - height = GetMirrorHeight(height); - } - var fullRadius = Math.Min(width, height) / 2; - var innerRadius = fullRadius * Configuration.Current.InnerRadius; - var positions = new float[colors.Length]; - for (int i = 0; i < colors.Length; i++) - { - positions[i] = (i + (colors.Length - 1 - i) * innerRadius / fullRadius) / (colors.Length - 1); - } - return SKShader.CreateRadialGradient(new SKPoint(width / 2, height / 2), - fullRadius, colors, positions, SKShaderTileMode.Clamp); - } - if (Configuration.Current.Mode > DrawingMode.WaveCircle) - { - if (Configuration.Current.Mirror > Mirror.Off) - { - width = GetMirrorWidth(width); - height = GetMirrorHeight(height); - } - return SKShader.CreateLinearGradient(new SKPoint(margin, Math.Min(width, height) * Configuration.Current.InnerRadius / 2), new SKPoint(margin, Math.Min(width, height) / 2), colors, SKShaderTileMode.Clamp); - } - } - if (Configuration.Current.Mirror != Mirror.Off) - { - var mirrorColors = new SKColor[colors.Length * 2]; - if (Configuration.Current.Direction == DrawingDirection.BottomTop || Configuration.Current.Direction == DrawingDirection.RightLeft) - { - Array.Reverse(colors); - } - colors.CopyTo(mirrorColors, 0); - Array.Reverse(colors); - colors.CopyTo(mirrorColors, colors.Length); - colors = mirrorColors; - } - return Configuration.Current.Direction switch - { - DrawingDirection.TopBottom => SKShader.CreateLinearGradient(new SKPoint(margin, margin + height * Configuration.Current.AreaOffsetY), new SKPoint(margin, height * (1 + Configuration.Current.AreaOffsetY)), colors, SKShaderTileMode.Clamp), - DrawingDirection.BottomTop => SKShader.CreateLinearGradient(new SKPoint(margin, height * (1 + Configuration.Current.AreaOffsetY)), new SKPoint(margin, margin + height * Configuration.Current.AreaOffsetY), colors, SKShaderTileMode.Clamp), - DrawingDirection.LeftRight => SKShader.CreateLinearGradient(new SKPoint(margin + width * Configuration.Current.AreaOffsetX, margin), new SKPoint(width * (1 + Configuration.Current.AreaOffsetX), margin), colors, SKShaderTileMode.Clamp), - _ => SKShader.CreateLinearGradient(new SKPoint(width * (1 + Configuration.Current.AreaOffsetX), margin), new SKPoint(margin + width * Configuration.Current.AreaOffsetX, margin), colors, SKShaderTileMode.Clamp) - }; - } - - /// - /// Get direction for mirrored part of picture - /// - /// DrawingDirection - private DrawingDirection GetMirrorDirection() - { - return Configuration.Current.Direction switch - { - DrawingDirection.TopBottom => DrawingDirection.BottomTop, - DrawingDirection.BottomTop => DrawingDirection.TopBottom, - DrawingDirection.LeftRight => DrawingDirection.RightLeft, - _ => DrawingDirection.LeftRight - }; - } - - /// - /// Get X coordinate for mirror top-left corner - /// - /// X coordinate float - private float GetMirrorX(float width) - { - if (Configuration.Current.Direction == DrawingDirection.LeftRight || Configuration.Current.Direction == DrawingDirection.RightLeft) - { - return width / 2f + Configuration.Current.AreaMargin; - } - return Configuration.Current.AreaMargin; - } - - /// - /// Get Y coordinate for mirror top-left corner - /// - /// Y coordinate float - private float GetMirrorY(float height) - { - if (Configuration.Current.Direction == DrawingDirection.TopBottom || Configuration.Current.Direction == DrawingDirection.BottomTop) - { - return height / 2f + Configuration.Current.AreaMargin; - } - return Configuration.Current.AreaMargin; - } - - /// - /// Get width for mirrored part of picture - /// - /// Width float - private float GetMirrorWidth(float width) - { - if (Configuration.Current.Direction == DrawingDirection.LeftRight || Configuration.Current.Direction == DrawingDirection.RightLeft) - { - return width / 2f; - } - return width; - } - - /// - /// Get height for mirrored part of picture - /// - /// Height float - private float GetMirrorHeight(float height) - { - if (Configuration.Current.Direction == DrawingDirection.TopBottom || Configuration.Current.Direction == DrawingDirection.BottomTop) - { - return height / 2f; - } - return height; - } - - /// - /// Flips a coordinate value to the other side of the screen and ensure it doesn't exceed the maximum value - /// - /// Flip coordinate enabled - /// Dimension of screen in axis to be flipped - /// Coordinate in axis to be flipped - /// New coordinate in axis - private float FlipCoord(bool enabled, float screenDimension, float coordinate) - { - var max = Math.Max(0, Math.Min(coordinate, screenDimension)); - return enabled ? screenDimension - max : max; - // Note: By camping these values, it ensures the resulting bezier curve when smoothed - // never goes below 0 however, it does mean that it is not as smooth, as some values - // may be smoothed to be negative based on the expected gradient - } - - /// - /// Draw picture, Wave mode, Box variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Skia paint - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawWaveBox(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var step = (direction < DrawingDirection.LeftRight ? width : height) / (sample.Length - 1); - var path = new SKPath(); - var flipImage = false; - var pointsArray = new (float x, float y)[sample.Length]; - var gradientsList = new float[sample.Length]; - switch (direction) - { - case DrawingDirection.TopBottom or DrawingDirection.BottomTop: - flipImage = direction == DrawingDirection.TopBottom; - // Create a list of point of where the the curve must pass through - for (var i = 0; i < sample.Length; i++) - { - pointsArray[i] = (step * i, height * (1 - sample[i])); - } - // Calculate gradient between the two neighbouring points for every point - for (var i = 0; i < pointsArray.Length; i++) - { - // Determine the previous and next point - // If there isn't one, use the current point - var previousPoint = pointsArray[Math.Max(i - 1, 0)]; - var nextPoint = pointsArray[Math.Min(i + 1, pointsArray.Length - 1)]; - var gradient = nextPoint.y - previousPoint.y; - // If using the current point (when at the edges) - // then the run in rise/run = 1, otherwise a two step run exists - gradientsList[i] = i == 0 || i == pointsArray.Length - 1 ? gradient : gradient / 2; - } - var yOffset = y + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2); - path.MoveTo(x + pointsArray[0].x, yOffset + FlipCoord(flipImage, height, pointsArray[0].y)); - for (var i = 0; i < pointsArray.Length - 1; i++) - { - path.CubicTo( - x + pointsArray[i].x + step * 0.5f, - yOffset + FlipCoord(flipImage, height, pointsArray[i].y + gradientsList[i] * 0.5f), - x + pointsArray[i + 1].x + step * -0.5f, - yOffset + FlipCoord(flipImage, height, pointsArray[i + 1].y + gradientsList[i + 1] * -0.5f), - x + pointsArray[i + 1].x, - yOffset + FlipCoord(flipImage, height, pointsArray[i + 1].y)); - } - if (Configuration.Current.Filling) - { - path.LineTo(x + width, y + FlipCoord(flipImage, height, height)); - path.LineTo(x, y + FlipCoord(flipImage, height, height)); - path.Close(); - } - break; - case DrawingDirection.LeftRight or DrawingDirection.RightLeft: - flipImage = direction == DrawingDirection.RightLeft; - for (var i = 0; i < sample.Length; i++) - { - pointsArray[i] = (width * sample[i], step * i); - } - for (var i = 0; i < pointsArray.Length; i++) - { - var previousPoint = pointsArray[Math.Max(i - 1, 0)]; - var nextPoint = pointsArray[Math.Min(i + 1, pointsArray.Length - 1)]; - var gradient = nextPoint.x - previousPoint.x; - gradientsList[i] = i == 0 || i == pointsArray.Length - 1 ? gradient : gradient / 2; - } - var xOffset = x - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2); - path.MoveTo(xOffset + FlipCoord(flipImage, width, pointsArray[0].x), y + pointsArray[0].y); - for (var i = 0; i < pointsArray.Length - 1; i++) - { - path.CubicTo( - xOffset + FlipCoord(flipImage, width, pointsArray[i].x + gradientsList[i] * 0.5f), - y + pointsArray[i].y + step * 0.5f, - xOffset + FlipCoord(flipImage, width, pointsArray[i + 1].x + gradientsList[i + 1] * -0.5f), - y + pointsArray[i + 1].y + step * -0.5f, - xOffset + FlipCoord(flipImage, width, pointsArray[i + 1].x), - y + pointsArray[i + 1].y); - } - if (Configuration.Current.Filling) - { - path.LineTo(x + FlipCoord(flipImage, width, 0), y + height); - path.LineTo(x + FlipCoord(flipImage, width, 0), y); - path.Close(); - } - break; - } - Canvas.DrawPath(path, paint); - if (!Configuration.Current.Filling) - { - switch (direction) - { - case DrawingDirection.TopBottom: - path.LineTo(x + width, y); - path.LineTo(x, y); - path.Close(); - break; - case DrawingDirection.BottomTop: - path.LineTo(x + width, y + height); - path.LineTo(x, y + height); - path.Close(); - break; - case DrawingDirection.LeftRight: - path.LineTo(x, y + height); - path.LineTo(x, y); - path.Close(); - break; - case DrawingDirection.RightLeft: - path.LineTo(x + width, y + height); - path.LineTo(x + width, y); - path.Close(); - break; - } - } - return path; - } - - /// - /// Draw picture, Levels mode, Box variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawLevelsBox(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var step = (direction < DrawingDirection.LeftRight ? width : height) / sample.Length; - var itemWidth = (direction < DrawingDirection.LeftRight ? step : width / 10) * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2); - var itemHeight = (direction < DrawingDirection.LeftRight ? height / 10 : step) * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2); - var path = new SKPath(); - for (var i = 0; i < sample.Length; i++) - { - for (var j = 0; j < Math.Floor(sample[i] * 10); j++) - { - switch (direction) - { - case DrawingDirection.TopBottom: - path.AddRoundRect( - new SKRect( - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + height / 10 * j + height / 10 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + step * (i + Configuration.Current.ItemsOffset) + itemWidth, - y + height / 10 * j + height / 10 * Configuration.Current.ItemsOffset + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - case DrawingDirection.BottomTop: - path.AddRoundRect( - new SKRect( - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + height / 10 * (9 - j) + height / 10 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + step * (i + Configuration.Current.ItemsOffset) + itemWidth, - y + height / 10 * (9 - j) + height / 10 * Configuration.Current.ItemsOffset + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - case DrawingDirection.LeftRight: - path.AddRoundRect( - new SKRect( - x + width / 10 * j + width / 10 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + width / 10 * j + width / 10 * Configuration.Current.ItemsOffset + itemWidth, - y + step * (i + Configuration.Current.ItemsOffset) + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - case DrawingDirection.RightLeft: - path.AddRoundRect( - new SKRect( - x + width / 10 * (9 - j) + width / 10 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + width / 10 * (9 - j) + width / 10 * Configuration.Current.ItemsOffset + itemWidth, - y + step * (i + Configuration.Current.ItemsOffset) + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - } - } - } - Canvas.DrawPath(path, paint); - return path; - } - - /// - /// Draw picture, Particles mode, Box variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawParticlesBox(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var step = (direction < DrawingDirection.LeftRight ? width : height) / sample.Length; - var itemWidth = (direction < DrawingDirection.LeftRight ? step : width / 11) * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2); - var itemHeight = (direction < DrawingDirection.LeftRight ? height / 11 : step) * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2); - var path = new SKPath(); - for (var i = 0; i < sample.Length; i++) - { - switch (direction) - { - case DrawingDirection.TopBottom: - path.AddRoundRect( - new SKRect( - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + height / 11 * 10 * sample[i] + height / 11 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + step * (i + Configuration.Current.ItemsOffset) + itemWidth, - y + height / 11 * 10 * sample[i] + height / 11 * Configuration.Current.ItemsOffset + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - case DrawingDirection.BottomTop: - path.AddRoundRect( - new SKRect( - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + height / 11 * 10 * (1 - sample[i]) + height / 11 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + step * (i + Configuration.Current.ItemsOffset) + itemWidth, - y + height / 11 * 10 * (1 - sample[i]) + height / 11 * Configuration.Current.ItemsOffset + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - case DrawingDirection.LeftRight: - path.AddRoundRect( - new SKRect( - x + width / 11 * 10 * sample[i] + width / 11 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + width / 11 * 10 * sample[i] + width / 11 * Configuration.Current.ItemsOffset + itemWidth, - y + step * (i + Configuration.Current.ItemsOffset) + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - case DrawingDirection.RightLeft: - path.AddRoundRect( - new SKRect( - x + width / 11 * 10 * (1 - sample[i]) + width / 11 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + width / 11 * 10 * (1 - sample[i]) + width / 11 * Configuration.Current.ItemsOffset + itemWidth, - y + step * (i + Configuration.Current.ItemsOffset) + itemHeight), - itemWidth / 2 * Configuration.Current.ItemsRoundness, - itemHeight / 2 * Configuration.Current.ItemsRoundness); - break; - } - } - Canvas.DrawPath(path, paint); - return path; - } - - /// - /// Draw picture, Bars mode, Box variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawBarsBox(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var step = (direction < DrawingDirection.LeftRight ? width : height) / sample.Length; - var path = new SKPath(); - for (var i = 0; i < sample.Length; i++) - { - if (sample[i] == 0) - { - continue; - } - switch (direction) - { - case DrawingDirection.TopBottom: - path.AddRect(new SKRect( - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - (Configuration.Current.Filling ? y : y + Configuration.Current.LinesThickness / 2) - 1, - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2) + step * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - y + height * sample[i] - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness) + 1)); - break; - case DrawingDirection.BottomTop: - path.AddRect(new SKRect( - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + height * (1 - sample[i]) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2) + step * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - y + height - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness) + 1)); - break; - case DrawingDirection.LeftRight: - path.AddRect(new SKRect( - Configuration.Current.Filling ? x : x + Configuration.Current.LinesThickness / 2, - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + width * sample[i] - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2) + step * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness))); - break; - case DrawingDirection.RightLeft: - path.AddRect(new SKRect( - x + width * (1 - sample[i]) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - x + width - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - y + step * (i + Configuration.Current.ItemsOffset) + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2) + step * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness))); - break; - }; - } - Canvas.DrawPath(path, paint); - return path; - } - - /// - /// Draw picture, Spine mode, Box variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawSpineBox(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var step = (direction < DrawingDirection.LeftRight ? width : height) / sample.Length; - var itemSize = step * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness); - var totalPath = new SKPath(); - for (var i = 0; i < sample.Length; i++) - { - if (sample[i] == 0) - { - continue; - } - switch (direction) - { - case DrawingDirection.TopBottom: - case DrawingDirection.BottomTop: - if (Configuration.Current.Hearts) - { - Canvas.Save(); - using var path = new SKPath(); - CreateHeart(path, itemSize); - Canvas.Translate(x + step * i + step / 2, y + height / 2); - Canvas.Scale(sample[i]); - Canvas.DrawPath(path, GetSpinePaint(paint, sample[i])); - Canvas.Restore(); - break; - } - Canvas.DrawRoundRect( - x + step * (i + 0.5f) + (1 - itemSize * sample[i]) / 2, - y + height / 2 - itemSize * sample[i] / 2, - itemSize * sample[i], itemSize * sample[i], - itemSize * sample[i] / 2 * Configuration.Current.ItemsRoundness, itemSize * sample[i] / 2 * Configuration.Current.ItemsRoundness, - GetSpinePaint(paint, sample[i])); - totalPath.AddRect(new SKRect( - x + step * (i + 0.5f) + (1 - itemSize * sample[i]) / 2, - y + height / 2 - itemSize * sample[i] / 2, - x + step * (i + 0.5f) + (1 - itemSize * sample[i]) / 2 + itemSize * sample[i], - y + height / 2 - itemSize * sample[i] / 2 + itemSize * sample[i])); - break; - case DrawingDirection.LeftRight: - case DrawingDirection.RightLeft: - if (Configuration.Current.Hearts) - { - Canvas.Save(); - using var path = new SKPath(); - CreateHeart(path, itemSize); - Canvas.Translate(x + width / 2, y + step * i + step / 2); - Canvas.Scale(sample[i]); - Canvas.DrawPath(path, GetSpinePaint(paint, sample[i])); - Canvas.Restore(); - break; - } - Canvas.DrawRoundRect( - x + width / 2 - itemSize * sample[i] / 2, - y + step * (i + 0.5f) + (1 - itemSize * sample[i]) / 2, - itemSize * sample[i], itemSize * sample[i], - itemSize * sample[i] / 2 * Configuration.Current.ItemsRoundness, itemSize * sample[i] / 2 * Configuration.Current.ItemsRoundness, - GetSpinePaint(paint, sample[i])); - break; - } - } - if (Configuration.Current.Hearts) - { - totalPath.Dispose(); - return null; - } - return totalPath; - } - - /// - /// Modify path to create a heart for modified Spine mode - /// - /// Path to use for drawing - /// Size of a square to fit a heart into - private void CreateHeart(SKPath path, float itemSize) - { - path.MoveTo(0, itemSize / 2); - path.CubicTo( - 0, itemSize / 2.2f, - -itemSize / 1.8f, itemSize / 3, - -itemSize / 2, -itemSize / 6); - path.CubicTo( - -itemSize / 2.5f, -itemSize / 2, - -itemSize / 6.5f, -itemSize / 2, - 0, -itemSize / 5.5f); - path.CubicTo( - itemSize / 6.5f, -itemSize / 2, - itemSize / 2.5f, -itemSize / 2, - itemSize / 2, -itemSize / 6); - path.CubicTo( - itemSize / 1.8f, itemSize / 3, - 0, itemSize / 2.2f, - 0, itemSize / 2); - path.Close(); - } - - /// - /// Sets paint color for Spine element - /// - /// Skia paint - /// CAVA value for element - /// Modified Skia paint - private SKPaint GetSpinePaint(SKPaint paint, float sample) - { - var profile = Configuration.Current.ColorProfiles[Configuration.Current.ActiveProfile]; - if (profile.FgColors.Count > 1) - { - var pos = (profile.FgColors.Count - 1) * (1 - sample); - var color1 = SKColor.Parse(profile.FgColors[(int)Math.Floor(pos)]); - var color2 = SKColor.Parse(profile.FgColors[(int)Math.Ceiling(pos)]); - var weight = sample < 1 ? pos % 1 : 1; - paint.Color = new SKColor( - (byte)(color1.Red * (1 - weight) + color2.Red * weight), - (byte)(color1.Green * (1 - weight) + color2.Green * weight), - (byte)(color1.Blue * (1 - weight) + color2.Blue * weight), - (byte)(color1.Alpha * (1 - weight) + color2.Alpha * weight)); - } - return paint; - } - - /// - /// Draw picture, Splitter mode, Box variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawSplitterBox(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var step = (direction < DrawingDirection.LeftRight ? width : height) / sample.Length; - var path = new SKPath(); - var orient = 1; - switch (direction) - { - case DrawingDirection.TopBottom: - path.MoveTo(x, y + height / 2 * (1 + sample[0])); - break; - case DrawingDirection.BottomTop: - orient = -1; - path.MoveTo(x, y + height / 2 * (1 + sample[0] * orient)); - break; - case DrawingDirection.LeftRight: - path.MoveTo(x + width / 2 * (1 + sample[0]), y); - break; - case DrawingDirection.RightLeft: - orient = -1; - path.MoveTo(x + width / 2 * (1 + sample[0] * orient), y); - break; - } - for (var i = 0; i < sample.Length; i++) - { - switch (direction) - { - case DrawingDirection.TopBottom: - case DrawingDirection.BottomTop: - if (i > 0) - { - path.LineTo(x + step * i, y + height / 2); - } - path.LineTo(x + step * i, y + height / 2 * (1 + sample[i] * (i % 2 == 0 ? orient : -orient))); - path.LineTo(x + step * (i + 1), y + height / 2 * (1 + sample[i] * (i % 2 == 0 ? orient : -orient))); - if (i < sample.Length - 1) - { - path.LineTo(x + step * (i + 1), y + height / 2); - } - break; - case DrawingDirection.LeftRight: - case DrawingDirection.RightLeft: - if (i > 0) - { - path.LineTo(x + width / 2, y + step * i); - } - path.LineTo(x + width / 2 * (1 + sample[i] * (i % 2 == 0 ? orient : -orient)), y + step * i); - path.LineTo(x + width / 2 * (1 + sample[i] * (i % 2 == 0 ? orient : -orient)), y + step * (i + 1)); - if (i < sample.Length - 1) - { - path.LineTo(x + width / 2, y + step * (i + 1)); - } - break; - } - } - if (!Configuration.Current.Filling) - { - Canvas.DrawPath(path, paint); - } - switch (direction) - { - case DrawingDirection.TopBottom: - path.LineTo(x + width, y); - path.LineTo(x, y); - break; - case DrawingDirection.BottomTop: - path.LineTo(x + width, y + height); - path.LineTo(x, y + height); - break; - case DrawingDirection.LeftRight: - path.LineTo(x, y + height); - path.LineTo(x, y); - break; - case DrawingDirection.RightLeft: - path.LineTo(x + width, y + height); - path.LineTo(x + width, y); - break; - } - path.Close(); - if (Configuration.Current.Filling) - { - Canvas.DrawPath(path, paint); - } - return path; - } - - /// - /// Draw picture, Wave mode, Circle variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawWaveCircle(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var fullRadius = Math.Min(width, height) / 2; - var innerRadius = fullRadius * Configuration.Current.InnerRadius; - var radius = fullRadius - innerRadius; - Canvas.Save(); - Canvas.Translate(x, y); - paint.Style = SKPaintStyle.Stroke; - paint.StrokeWidth = Configuration.Current.Filling ? fullRadius - innerRadius : Configuration.Current.LinesThickness; - using var path = new SKPath(); - path.MoveTo( - width / 2 + (innerRadius + radius * sample[0]) * (float)Math.Cos(Math.PI / 2 + rotation), - height / 2 + (innerRadius + radius * sample[0]) * (float)Math.Sin(Math.PI / 2 + rotation)); - for (var i = 0; i < sample.Length - 1; i++) - { - path.CubicTo( - width / 2 + (innerRadius + radius * sample[i]) * (float)Math.Cos(Math.PI / 2 + Math.PI * 2 * (i + 0.5f) / sample.Length + rotation), - height / 2 + (innerRadius + radius * sample[i]) * (float)Math.Sin(Math.PI / 2 + Math.PI * 2 * (i + 0.5f) / sample.Length + rotation), - width / 2 + (innerRadius + radius * sample[i + 1]) * (float)Math.Cos(Math.PI / 2 + Math.PI * 2 * (i + 0.5f) / sample.Length + rotation), - height / 2 + (innerRadius + radius * sample[i + 1]) * (float)Math.Sin(Math.PI / 2 + Math.PI * 2 * (i + 0.5f) / sample.Length + rotation), - width / 2 + (innerRadius + radius * sample[i + 1]) * (float)Math.Cos(Math.PI / 2 + Math.PI * 2 * (i + 1) / sample.Length + rotation), - height / 2 + (innerRadius + radius * sample[i + 1]) * (float)Math.Sin(Math.PI / 2 + Math.PI * 2 * (i + 1) / sample.Length + rotation)); - } - path.CubicTo( - width / 2 + (innerRadius + radius * sample[^1]) * (float)Math.Cos(Math.PI / 2 + Math.PI * 2 * (sample.Length - 0.5f) / sample.Length + rotation), - height / 2 + (innerRadius + radius * sample[^1]) * (float)Math.Sin(Math.PI / 2 + Math.PI * 2 * (sample.Length - 0.5f) / sample.Length + rotation), - width / 2 + (innerRadius + radius * sample[0]) * (float)Math.Cos(Math.PI / 2 + Math.PI * 2 * (sample.Length - 0.5f) / sample.Length + rotation), - height / 2 + (innerRadius + radius * sample[0]) * (float)Math.Sin(Math.PI / 2 + Math.PI * 2 * (sample.Length - 0.5f) / sample.Length + rotation), - width / 2 + (innerRadius + radius * sample[0]) * (float)Math.Cos(Math.PI / 2 + rotation), - height / 2 + (innerRadius + radius * sample[0]) * (float)Math.Sin(Math.PI / 2 + rotation)); - path.Close(); - if (Configuration.Current.Filling) - { - Canvas.ClipPath(path, SKClipOperation.Intersect, true); - Canvas.DrawCircle(new SKPoint(width / 2, height / 2), innerRadius + (fullRadius - innerRadius) / 2, paint); - } - else - { - Canvas.DrawPath(path, paint); - } - Canvas.Restore(); - return null; - } - - /// - /// Draw picture, Levels mode, Circle variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawLevelsCircle(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var fullRadius = Math.Min(width, height) / 2; - var innerRadius = fullRadius * Configuration.Current.InnerRadius; - var barWidth = (float)(2 * Math.PI * innerRadius / sample.Length); - for (var i = 0; i < sample.Length; i++) - { - Canvas.Save(); - Canvas.Translate(x + width / 2, y + height / 2); - Canvas.RotateRadians(2 * (float)Math.PI * (i + 0.5f) / sample.Length + rotation); - for (var j = 0; j < Math.Floor(sample[i] * 10); j++) - { - Canvas.DrawRoundRect( - -barWidth * (1 - Configuration.Current.ItemsOffset * 2) / 2 + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - innerRadius + (fullRadius - innerRadius) / 10 * j + (fullRadius - innerRadius) / 10 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - barWidth * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - (fullRadius - innerRadius) / 10 * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - (barWidth * (1 - Configuration.Current.ItemsOffset) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness)) * Configuration.Current.ItemsRoundness, - (fullRadius - innerRadius) / 10 * (1 - Configuration.Current.ItemsOffset) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness) * Configuration.Current.ItemsRoundness, - paint); - } - Canvas.Restore(); - } - return null; - } - - /// - /// Draw picture, Particles mode, Circle variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawParticlesCircle(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var fullRadius = Math.Min(width, height) / 2; - var innerRadius = fullRadius * Configuration.Current.InnerRadius; - var barWidth = (float)(2 * Math.PI * innerRadius / sample.Length); - for (var i = 0; i < sample.Length; i++) - { - Canvas.Save(); - Canvas.Translate(x + width / 2, y + height / 2); - Canvas.RotateRadians(2 * (float)Math.PI * (i + 0.5f) / sample.Length + rotation); - Canvas.DrawRoundRect( - -barWidth * (1 - Configuration.Current.ItemsOffset * 2) / 2 + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - innerRadius + (fullRadius - innerRadius) / 10 * 9 * sample[i] + (fullRadius - innerRadius) / 10 * Configuration.Current.ItemsOffset + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - barWidth * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - (fullRadius - innerRadius) / 10 * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - (barWidth * (1 - Configuration.Current.ItemsOffset) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness)) * Configuration.Current.ItemsRoundness, - (fullRadius - innerRadius) / 10 * (1 - Configuration.Current.ItemsOffset) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness) * Configuration.Current.ItemsRoundness, - paint); - Canvas.Restore(); - } - return null; - } - - /// - /// Draw picture, Bars mode, Circle variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawBarsCircle(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var fullRadius = Math.Min(width, height) / 2; - var innerRadius = fullRadius * Configuration.Current.InnerRadius; - var barWidth = (float)(2 * Math.PI * innerRadius / sample.Length); - for (var i = 0; i < sample.Length; i++) - { - Canvas.Save(); - Canvas.Translate(x + width / 2, y + height / 2); - Canvas.RotateRadians(2 * (float)Math.PI * (i + 0.5f) / sample.Length + rotation); - Canvas.DrawRect( - -barWidth * (1 - Configuration.Current.ItemsOffset * 2) / 2 + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - innerRadius + (Configuration.Current.Filling ? 0 : 0 + Configuration.Current.LinesThickness / 2), - barWidth * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness), - (fullRadius - innerRadius) * sample[i] - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness) + 1, - paint); - Canvas.Restore(); - } - return null; - } - - /// - /// Draw picture, Spine mode, Circle variant - /// - /// CAVA sample - /// DrawingDirection - /// Top-left corner X coordinate - /// Top-left corner Y coordinate - /// Drawing width - /// Drawing height - /// Rotation angle in radians (only used in Circle modes) - /// Skia paint - /// SKPath for foreground image masking if supported, else null - private SKPath? DrawSpineCircle(float[] sample, DrawingDirection direction, float x, float y, float width, float height, float rotation, SKPaint paint) - { - var fullRadius = Math.Min(width, height) / 2; - var innerRadius = fullRadius * Configuration.Current.InnerRadius; - var barWidth = (float)(2 * Math.PI * innerRadius / sample.Length); - for (var i = 0; i < sample.Length; i++) - { - var itemSize = barWidth * (1 - Configuration.Current.ItemsOffset * 2) - (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness); - if (Configuration.Current.Hearts) - { - Canvas.Save(); - using var path = new SKPath(); - CreateHeart(path, itemSize); - Canvas.Translate(x + width / 2 + innerRadius * (float)Math.Cos(rotation + Math.PI / 2 + Math.PI * 2 * i / sample.Length), y + height / 2 + innerRadius * (float)Math.Sin(Math.PI / 2 + Math.PI * 2 * i / sample.Length)); - Canvas.Scale(sample[i]); - Canvas.DrawPath(path, GetSpinePaint(paint, sample[i])); - Canvas.Restore(); - continue; - } - Canvas.Save(); - Canvas.Translate(x + width / 2, y + height / 2); - Canvas.RotateRadians(2 * (float)Math.PI * (i + 0.5f) / sample.Length + rotation); - Canvas.DrawRoundRect( - -barWidth * (1 - Configuration.Current.ItemsOffset * 2) / 2 * sample[i] + (Configuration.Current.Filling ? 0 : Configuration.Current.LinesThickness / 2), - innerRadius - itemSize * sample[i] / 2, - itemSize * sample[i], itemSize * sample[i], - itemSize * sample[i] / 2 * Configuration.Current.ItemsRoundness, - itemSize * sample[i] / 2 * Configuration.Current.ItemsRoundness, - GetSpinePaint(paint, sample[i])); - Canvas.Restore(); - } - return null; - } -} diff --git a/NickvisionCavalier.Shared/Models/Theme.cs b/NickvisionCavalier.Shared/Models/Theme.cs deleted file mode 100644 index bd85e36..0000000 --- a/NickvisionCavalier.Shared/Models/Theme.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace NickvisionCavalier.Shared.Models; - -/// -/// Application themes -/// -public enum Theme -{ - Light = 0, - Dark -} diff --git a/NickvisionCavalier.Shared/NickvisionCavalier.Shared.csproj b/NickvisionCavalier.Shared/NickvisionCavalier.Shared.csproj deleted file mode 100644 index 4806e18..0000000 --- a/NickvisionCavalier.Shared/NickvisionCavalier.Shared.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - - net8.0 - enable - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.Source.svg b/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.Source.svg deleted file mode 100644 index 379671a..0000000 --- a/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.Source.svg +++ /dev/null @@ -1,983 +0,0 @@ - - - - - Adwaita Icon Template - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - GNOME Design Team - - - - - Adwaita Icon Template - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hicolor - Symbolic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/NickvisionCavalier.Shared/Resources/po/be.po b/NickvisionCavalier.Shared/Resources/po/be.po deleted file mode 100644 index 6283508..0000000 --- a/NickvisionCavalier.Shared/Resources/po/be.po +++ /dev/null @@ -1,602 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2023-11-17 18:31+0000\n" -"Last-Translator: Yahor \n" -"Language-Team: Belarusian \n" -"Language: be\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.2\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Дадаць" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Дадаць новы профіль" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Вы ўпэўнены, што хочаце выдаліць профіль \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Скасаваць" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Удзельнікі на GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "Давід Лапшын" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Па змаўчанні" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Выдаліць" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Выдаліць профіль" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Поўны" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Фёдар Собалеў" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Рэпазіторый GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Сэрцы" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Відарысы JPEG і PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Чат Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Новы каляровы профіль будзе копіяй бягучага актыўнага профілю." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Выкл." - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Укл." - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Імя профілю" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Выбраць відарыс" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Раздзяліць каналы" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Yahor Haurylenka " - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Візуалізуйце аўдыя з дапамогай CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Даведка па камандах" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Давайце танчыць!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier слухае гук вашай сістэмы. Уключыце музыку або паглядзіце відэа і " -"ўбачыце, як ваш гук ажывае!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Налады" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Рэжым адмалёўкі" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Скрынка" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Круг" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Хваля" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Узроўні" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Часціцы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Шкалы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Калонка" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Раздзяляльнік" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Радыус" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Нахіл" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Люстэрка" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Развярнуць люстэрка" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Кірунак адмалёўкі" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Зверху ўніз" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Знізу ўверх" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Злева направа" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Справа налева" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Водступ вобласці адмалёўкі" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Памер водступу вакол вобласці адмалёўкі (у пікселях)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Адхіленне вобласці адмалёўкі па восі X" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Адхіленне вобласці адмалёўкі па восі Y" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Адлегласць паміж элементамі" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Памер прасторы паміж элементамі (у працэнтах)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Кругласць элементаў" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Наколькі элементы павінны быць скругленыя (у працэнтах)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Запаўненне" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Ці павінны формы быць запоўненыя або абведзены." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Таўшчыня ліній" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Таўшчыня ліній пры выключаным запаўненні (у пікселях)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Адключыць межы акна" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Ці трэба схаваць цені і межы акна." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Вострыя вуглы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Ці павінны вуглы галоўнага акна быць вострымі." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Кнопкі кіравання акном" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Ці павінны адлюстроўвацца кнопкі кіравання акном." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Аўтаскрыццё загалоўка" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Ці павінен адлюстроўвацца загаловак галоўнага акна, калі яно не ў фокусе." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Частата кадраў" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Колькасць кадраў за секунду." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Іншае" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Свая частата кадраў" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Колькасць шкал" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Аўтаматычная адчувальнасць" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Спрабаваць змяншаць адчувальнасць, калі паказчыкі дасягаюць максімуму." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Адчувальнасць" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Ручныя налады адчувальнасці. Калі аўтаматычная адчувальнасць уключана, гэты " -"параметр задае толькі пачатковае значэнне." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Каналы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Мона" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Стэрэа" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Згладжванне Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Ці трэба ўключыць так званае \"згладжванне Monstercat\"." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Шумападаўленне" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Гэты параметр рэгулюе інтэгральныя і гравітацыйныя фільтры, якія робяць " -"сігнал гладкім.\n" -"Высокае значэнне прывядзе да павальнейшага і гладкага выніку." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Зваротны парадак" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Ці трэба змяніць парадак шкал для кожнага канала." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Колеры" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Дадаць профіль" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Тэма праграмы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Светлая" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Цёмная" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Колеры пярэдняга плана" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Дадаць колер пярэдняга плана" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Колеры фону" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Дадаць колер фону" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Відарысы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Фон" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Пярэдні план" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Дадаць відарыс" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Маштаб" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Альфа" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "Выява пярэдняга плану адлюстроўваецца толькі ў рэжымах тыпу Скрынка." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Няма відарысаў" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Дадайце відарыс для выкарыстання ў Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Без відарыса" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Змяніць рэжым адмалёўкі" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Змяніць радыус у рэжымах тыпу Круг" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Змяніць нахіл у рэжымах тыпу Круг" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Змяніць рэжым люстэрка" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Развярнуць люстэрка" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Змяніць водступ вобласці адмалёўкі" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Змяніць адхіленне вобласці адмалёўкі па восі X" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Змяніць адхіленне вобласці адмалёўкі па восі Y" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Змяніць напрамак адмалёўкі" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Змяніць адлегласць паміж элементамі" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Змяніць акругласць элементаў" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Пераключыць запаўненне" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Змяніць таўшчыню ліній" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Пераключыць межы акна" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Пераключыць вострыя вуглы" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Змяніць колькасць шкал" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Пераключыць каналы" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Пераключыць зваротны парадак" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Іншае" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Змяніць профіль колераў" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Змяніць фонавы відарыс" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Змяніць маштаб фонавага відарыса" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Змяніць значэнне альфа фонавага відарыса" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Змяніць відарыс пярэдняга плана" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Змяніць маштаб відарыса пярэдняга плану" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Змяніць значэнне альфа відарыса пярэдняга плана" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Праграма" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Пераключыць поўны экран" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Спалучэнні клавіш" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Аб праграме" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Выйсці" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Змена памеру ..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Галоўнае меню" diff --git a/NickvisionCavalier.Shared/Resources/po/cavalier.pot b/NickvisionCavalier.Shared/Resources/po/cavalier.pot deleted file mode 100644 index ef72c86..0000000 --- a/NickvisionCavalier.Shared/Resources/po/cavalier.pot +++ /dev/null @@ -1,591 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "" diff --git a/NickvisionCavalier.Shared/Resources/po/cs.po b/NickvisionCavalier.Shared/Resources/po/cs.po deleted file mode 100644 index b1d11a2..0000000 --- a/NickvisionCavalier.Shared/Resources/po/cs.po +++ /dev/null @@ -1,635 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-09-04 15:09+0000\n" -"Last-Translator: Fjuro \n" -"Language-Team: Czech \n" -"Language: cs\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 5.7.2-rc\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Přidat" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Přidat nový profil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Opravdu chcete odstranit profil „{0}“?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Zrušit" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Přispěvatelě na GitHubu ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Výchozí" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Smazat" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Smazat Profil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Plný" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Repozitář GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Srdíčka" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Obrázky JPEG a PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Matrix Chat" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Nový barevný profil bude kopie současně aktivního profilu." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Vypnuto" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Zapnuto" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Název profilu" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Vybrat obrázek" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Rozdělit kanály" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "" -"Písek Pískovec\n" -"Jonáš Loskot , 2024" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Vizualizace zvuku s CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Nápověda k příkazům" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Jdeme tančit!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier poslouchá zvuk vašeho systému. Pusťte si hudbu nebo se podívejte na " -"video a sledujte, jak váš zvuk ožije!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Předvolby" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Režim vykreslování" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Čtverec" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Kruh" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Vlna" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Úrovně" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Částečky" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Tyče" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Páteř" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Rozdělovač" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Poloměr" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Otočení" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Zrcadlo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Opačné zrcadlení" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Směr vykreslování" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Shora dolů" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Zdola nahoru" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Zleva doprava" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Zprava doleva" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Okraje vykreslovací plochy" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Velikost mezer okolo vykreslovací oblasti (v pixelech)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Posunutí X vykreslované oblasti" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Posunutí Y vykreslované oblasti" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Odsazení mezi položkami" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Velikost mezer mezi prvky (v procentech)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Zaoblení položek" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Jak moc zaoblené prvky budou (v procentech)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Výplň" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Zda tvary budou vyplněny nebo obtáhnuty." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Tloušťka čar" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Tloušťka čar když vyplňování je vypnuto (v pixelech)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Bezrámečkové okno" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Zda vypnout stín a rám okna." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Ostré rohy" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Zda budou rohy hlavního okna ostré." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Ovládání okna" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Zda zobrazovat tlačítka ovládání okna." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Automaticky skrýt záhlaví" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "Zda skrýt záhlaví hlavního okna pokud není zaměřené." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Snímková frekvence" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Počet snímků za vteřinu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Vlastní" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Vlastní snímková frekvence" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Počet tyčí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Automatická citlivost" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Pokus snížit citlivost když tyče jsou na vrcholu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Citlivost" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Ruční citlivost. Pokud je povolena automatická citlivost, toto bude pouze " -"prvotní hodnota." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Kanály" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Monstercat vyhlazování" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Zda zapnout takzvané «Monstercat smoothing»." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Redukce šumu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Tento faktor upravuje integrální a gravitační filtry pro udržení hladkého " -"signálu.\n" -"Vyšší hodnota vede k pomalejšímu a hladšímu výsledku." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Opačné pořadí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Zda obrátit pořadí tyčí každého kanálu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Barvy" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Přidat profil" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Vzhled aplikace" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Světlý" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Tmavý" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Barvy popředí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Přidat barvu popředí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Barvy pozadí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Přidat barvu pozadí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Obrázky" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Pozadí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Popředí" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Přidat obrázek" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Měřítko" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Alfa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" -"Obrázek na popředí je zobrazen pouze v krychlových režimech vykreslování." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Žádné obrázky" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Přidejte obrázek pro použití v aplikaci Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Žádný obrázek" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Změnit režim vykreslování" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Změnit poloměr v režimu Kruhu" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Změnit otočení v režimech Kruhu" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Změnit režim zrcadlení" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Přepnout opačné zrcadlení" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Změnit odsazení vykreslované oblasti" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Změnit odsazení X vykreslované oblasti" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Změnit odsazení Y vykreslované oblasti" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Změnit směr vykreslování" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Změnit odsazení mezi položkami" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Změnit zaoblení položek" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Přepnout výplň" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Změnit tloušťku čar" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Přepnout okraje okna" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Přepnout ostré rohy" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Změnit počet sloupců" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Přepnout kanály" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Přepnout opačné pořadí" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Jiné" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Změnit barevný profil" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Změnit obrázek na pozadí" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Změnit velikost obrázku na pozadí" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Změnit alfu obrázku na pozadí" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Změnit obrázek na popředí" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Změnit velikost obrázku na popředí" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Změnit alfu obrázku na popředí" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Aplikace" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Přepnout na celou obrazovku" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Klávesové zkratky" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "O aplikaci Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Ukončit" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Změna velikosti..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Hlavní nabídka" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier je vizualizér zvuku založený na CAVA s přizpůsobitelným " -#~ "prostředím." - -#~ msgid "11 drawing modes!" -#~ msgstr "11 vykreslovacích režimů!" - -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Nastavte jakoukoliv barvu, přechod nebo obrázek pro pozadí a popředí." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "Nastavte vyhlazení, redukci šumu a pár dalších CAVA nastavení." - -#, csharp-format -#~ msgid "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Contributors on GitHub ❤️ {2}" -#~ msgstr "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Přispěvatelé na GitHubu ❤️ {2}" - -#~ msgid "Toggle Window Controls" -#~ msgstr "Přepnout ovládání okna" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Přepnout automatické skrývání záhlaví" diff --git a/NickvisionCavalier.Shared/Resources/po/de.po b/NickvisionCavalier.Shared/Resources/po/de.po deleted file mode 100644 index d7b8325..0000000 --- a/NickvisionCavalier.Shared/Resources/po/de.po +++ /dev/null @@ -1,795 +0,0 @@ -# German translation for the cavalier's package -# Copyright (C) 2022 Fyodor Sobolev -# This file is distributed under the same license as the cavalier's package. -# gregorni , 2022. -# -msgid "" -msgstr "" -"Project-Id-Version: cavalier\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-10-13 14:16+0000\n" -"Last-Translator: Ettore Atalan \n" -"Language-Team: German \n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.8-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Hinzufügen" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Neues Profil hinzufügen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Sind Sie sicher, dass Sie das Profil „{0}“ löschen möchten?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Abbrechen" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Mitwirkende auf GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Standard" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Löschen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Profil löschen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Vollständig" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "GitHub-Repo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Herzen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG und PNG Bilder" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Matrix-Chat" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Neues Farbprofil wird eine Kopie vom aktuellen Profil sein." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Aus" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Ein" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Profilname" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "ein Bild auswählen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Kanäle teilen" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Mitwirkende Übersetzer" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Audio mit CAVA visualisieren" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Hilfe zum Befehl" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Lass uns tanzen!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Einstellungen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Zeichenmodus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Box" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Kreis" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Welle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Stufen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Partikel" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Säulen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Radius" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Drehung" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Spiegelung" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Spiegelung umkehren" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Zeichnungsrichtung" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Oben nach unten" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Unten nach oben" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Links nach rechts" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Rechts nach links" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Rand um die Zeichenfläche" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Größe des Rands um die Zeichenfläche herum (in Pixel)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Abstand zwischen Elementen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Die Größe der Abstände zwischen den Elementen (in Prozent)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Rundung der Elemente" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Wie stark abgerundet die Elemente sein sollen (in Prozent)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Füllung" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Ob Formen gefüllt oder umrandet werden sollen." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Dicke der Linien" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Dicke der Linien, wenn die Füllung ausgeschaltet ist (in Pixel)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Rahmenloses Fenster" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Ob Schatten und Rahmen des Fensters deaktiviert werden sollen." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Spitze Ecken" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Die Ecken des Hauptfensters zuspitzen." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Fensterregler" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Buttons der Fensterregelung anzeigen." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Kopfleiste ausblenden" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Kopfleiste automatisch ausblenden, wenn das Hauptfenster nicht fokussiert " -"ist." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Bildwiederholrate" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Anzahl der Bilder pro Sekunde." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Benutzerdefiniert" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Benutzerdefinierte Bildwiederholrate" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Anzahl der Säulen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Automatische Empfindlichkeit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Empfindlichkeit senken, wenn die Säulen den Höchststand erreichen." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Empfindlichkeit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Manuelle Empfindlichkeit. Wenn Automatische Empfindlichkeit eingeschaltet " -"ist, wird dieser Wert nur als Ursprungswert eingestellt." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Kanäle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Lärmreduzierung" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Dieser Faktor passt die Integral- und Gravitationsfilter an, um das Signal " -"glatt zu halten.\n" -"Ein höherer Wert führt zu einem langsameren und gleichmäßigeren Ergebnis." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Reihenfolge umkehren" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Ob die Reihenfolge der Balken für jeden Kanal umgekehrt werden soll." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Farben" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Profil hinzufügen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Anwendungsthema" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Hell" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Dunkel" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Vordergrundfarben" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Vordergrundfarbe hinzufügen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Hintergrundfarben" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Hintergrundfarben hinzufügen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Bilder" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Hintergrund" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Vordergrund" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Bild hinzufügen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Skalierung" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Alpha" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Keine Bilder" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Kein Bild" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Zeichenmodus wechseln" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Radius in den Kreis-Modi ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Drehung in den Kreis-Modi ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Spiegelungsmodus ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Umgekehrte Spiegelung umschalten" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Rand um die Zeichenfläche ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Zeichnungsrichtung ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Abstand zwischen Elementen ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Rundung der Elemente ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Füllung umschalten" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Liniendicke ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Fensterrahmen umschalten" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Spitze Ecken umschalten" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Anzahl der Säulen ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Kanäle umschalten" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Umgekehrte Reihenfolge umschalten" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -#, fuzzy -msgid "Other" -msgstr "Sonstiges" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Farbprofil ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Hintergrundbild ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Skalierung des Hintergrundbildes ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Alpha des Hintergrundbildes ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Vordergrundbild ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Skalierung des Vordergrundbildes ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Alpha des Vordergrundbildes ändern" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Anwendung" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Vollbild umschalten" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Tastenkürzel" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Über Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Schließen" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Größe wird geändert..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Hauptmenü" - -#, fuzzy -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier ist ein auf CAVA basierter Audio-Visualisierer mit einer " -#~ "konfigurierbaren LibAdwaita-Oberfläche." - -#, fuzzy -#~ msgid "11 drawing modes!" -#~ msgstr "4 Zeichenmodi!" - -#, fuzzy -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Eine einzige Farbe oder einen bis zu 10-farbigen Farbverlauf für Vorder- " -#~ "und Hintergrund einstellen." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "Ebenung, Lärmreduktion und andere CAVA-Einstellungen konfigurieren." - -#~ msgid "Toggle Window Controls" -#~ msgstr "Fensterregler umschalten" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Ausblenden der Kopfleiste umschalten" - -#, fuzzy -#~ msgid "Set any color or gradient for background and foreground." -#~ msgstr "" -#~ "Eine einzige Farbe oder einen bis zu 10-farbigen Farbverlauf für Vorder- " -#~ "und Hintergrund einstellen." - -#, fuzzy -#~ msgid "Audio visualizer based on CAVA" -#~ msgstr "Auf CAVA basierter Audio-Visualisierer" - -#~ msgid "Audio Visualizer" -#~ msgstr "Audio-Visualisierer" - -#~ msgid "Second release of Cavalier." -#~ msgstr "Die zweite Version von Cavalier." - -#~ msgid "New drawing mode — Particles!" -#~ msgstr "Neuer Zeichenmodus - Partikel!" - -#~ msgid "" -#~ "Color profiles! Create as many as you want and change between them " -#~ "instantly. Unfortunately, this new feature required to change how the " -#~ "application saves colors, and because of this your previous colors " -#~ "settings will be lost after installing this update." -#~ msgstr "" -#~ "Farbprofile! Erstellen Sie beliebig viele und wechseln Sie zwischen ihnen " -#~ "im Handumdrehen. Leider werden Ihre bisherigen Farbeinstellungen verloren " -#~ "gehen, da für dieses neue Feature Farbprofile anders gespeichert werden " -#~ "als bisher." - -#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." -#~ msgstr "Tastenkürzel für die meisten Einstellungen hinzugefügt." - -#~ msgid "Added option to show/hide window controls." -#~ msgstr "" -#~ "Einstellung zum Anzeigen/Ausblenden der Fensterregelung hinzugefügt." - -#~ msgid "" -#~ "Added option to autohide headerbar when the main window is not focused." -#~ msgstr "" -#~ "Einstellung zum automatischen Ausblenden der Kopfleiste hinzugefügt." - -#~ msgid "" -#~ "Added option to change roundness of items in \"levels\" and \"particles\" " -#~ "modes." -#~ msgstr "" -#~ "Einstellung für die Rundung der Elemente im Partikel- und Stufenmodus " -#~ "hinzugefügt." - -#~ msgid "Import/Export Settings" -#~ msgstr "Einstellungen importieren/exportieren" - -#~ msgid "Window size" -#~ msgstr "Fenstergröße" - -#~ msgid "Window maximized state" -#~ msgstr "Maximiertes Fenster" - -#~ msgid "Whether main window is maximized or not" -#~ msgstr "Gibt an, ob das Hauptfenster maximiert ist oder nicht" - -#~ msgid "Defines what the visualizer looks like." -#~ msgstr "Legt fest, wie die Visualisierung aussieht." - -#~ msgid "This setting only affects \"levels\" and \"particles\" modes." -#~ msgstr "Diese Einstellung betrifft nur Partikel- und Stufenmodus." - -#~ msgid "Number of bars in CAVA config" -#~ msgstr "Anzahl der Säulen in der CAVA Konfiguration" - -#~ msgid "Mono or stereo" -#~ msgstr "Mono oder Stereo" - -#~ msgid "Smoothing" -#~ msgstr "Ebenung" - -#~ msgid "Widgets style" -#~ msgstr "Stil" - -#~ msgid "Style used by Adwaita widgets." -#~ msgstr "Stil der Adwaita-Objekte" - -#~ msgid "Index of active color profile" -#~ msgstr "Liste der aktiven Farprofile" - -#~ msgid "Drawing Mode" -#~ msgstr "Zeichenmodus" - -#~ msgid "" -#~ "This setting only affects \"levels\" and \"particles\" modes.\n" -#~ "0 - square, 1 - round" -#~ msgstr "" -#~ "Diese Einstellung betrifft nur Partikel- und Stufenmodus.\n" -#~ "0 - quadratisch, 1 - rund" - -#~ msgid "Import" -#~ msgstr "Importieren" - -#~ msgid "Export" -#~ msgstr "Exportieren" - -#~ msgid "Noise Reduction" -#~ msgstr "Lärmreduktion" - -#~ msgid "0 - noisy, 1 - smooth" -#~ msgstr "0 - laut, 1 - sanft" - -#~ msgid "Type a name for a new profile" -#~ msgstr "Name des neuen Profils" - -#~ msgid "Remove profile" -#~ msgstr "Profil entfernen" - -#~ msgid "Remove" -#~ msgstr "Entfernen" - -#~ msgid "Foreground" -#~ msgstr "Vordergrund" - -#~ msgid "Background" -#~ msgstr "Hintergrund" - -#~ msgid "Select color" -#~ msgstr "Farbe auswählen" - -#~ msgid "Remove color" -#~ msgstr "Farbe entfernen" - -#~ msgid "Add color" -#~ msgstr "Farbe hinzufügen" - -#~ msgid "This name is already in use." -#~ msgstr "Dieser Name wird bereits benutzt." - -#~ msgid "Import Settings" -#~ msgstr "Einstellungen importieren" - -#~ msgid "Cavalier Settings File (*.cavalier)" -#~ msgstr "Cavalier Einstellungsdatei (*.cavalier)" - -#~ msgid "All Files" -#~ msgstr "Alle Dateien" - -#~ msgid "Export Settings" -#~ msgstr "Einstellungen exportieren" - -#~ msgid "Save" -#~ msgstr "Speichern" - -#~ msgid "About" -#~ msgstr "Über" - -#~ msgid "Toggle Widgets Style" -#~ msgstr "Stil umschalten" - -#~ msgid "" -#~ "3 drawing modes: weird Wave, retro-ish Levels and classic CAVA look - " -#~ "Bars!" -#~ msgstr "" -#~ "3 Zeichenmodi: seltsame Welle, retro-artige Stufen und der klassische " -#~ "CAVA-Look - Säulen!" - -#~ msgid "The array of foregound colors (RGBA)." -#~ msgstr "Palette der Vordergrundfarben" - -#~ msgid "The array of background colors (RGBA)." -#~ msgstr "Palette der Hintergrundfarben" diff --git a/NickvisionCavalier.Shared/Resources/po/es.po b/NickvisionCavalier.Shared/Resources/po/es.po deleted file mode 100644 index cc169c6..0000000 --- a/NickvisionCavalier.Shared/Resources/po/es.po +++ /dev/null @@ -1,794 +0,0 @@ -# Spanish translation for the cavalier's package. -# Copyright (C) 2022 Fyodor Sobolev -# This file is distributed under the same license as the cavalier package. -# Santiago F. , 2023. -# -msgid "" -msgstr "" -"Project-Id-Version: cavalier\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2023-10-29 05:18+0000\n" -"Last-Translator: Óscar Fernández Díaz \n" -"Language-Team: Spanish \n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.2-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Añadir" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Añadir perfil nuevo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "¿Está seguro de que desea eliminar el perfil \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Cancelar" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Colaboradores en GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Predeterminado" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Borrar" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Borrar perfil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Completo" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Repo de GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Corazones" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Imágenes JPEG y PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Chat de Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "El perfil de color nuevo será una copia del perfil activo actual." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Apagado" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Activo" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Nombre del perfil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Seleccione una imagen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Dividir canales" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Óscar Fernández Díaz " - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Visualice el audio con CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Ayuda de comandos" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "¡A bailar!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier escucha el sonido de su sistema. ¡Reproduzca música o mire un vídeo " -"y verá cómo el sonido cobra vida!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Preferencias" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Modo de dibujado" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Caja" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Círculo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Onda" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Niveles" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Partículas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Barras" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Columna" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Divisor" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Radio" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Giro" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Espejo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Espejo inverso" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Dirección del dibujo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "De arriba a abajo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "De abajo a arriba" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "De izquierda a derecha" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "De derecha a izquierda" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Margen del área de dibujado" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Tamaño del espacio alrededor del área de dibujado (en píxeles)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Movimiento en el eje X del área de dibujo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Movimiento en el eje Y del área de dibujo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Espacio entre elementos" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "El tamaño de los espacios entre elementos (en porcentaje)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Redondez de los elementos" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Qué tan redondeados deben ser los elementos (en porcentaje)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Relleno" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Si las formas deben rellenarse o contornearse." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Grosor de las líneas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Grosor de las líneas cuando el relleno está desactivado (en píxeles)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Ventana sin bordes" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Si se desactivan la sombra y los bordes de la ventana." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Esquinas planas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Si la ventana principal debe ser plana." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Controles de ventana" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Si se muestran los controles de ventana." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Ocultar la barra de título automáticamente" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Si se oculta la barra de título cuando la ventana principal no está activa." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Fotogramas por segundo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Número de fotogramas por segundo." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Personalizado" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Fotogramas por segundo personalizados" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Numero de barras" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Sensibilidad automática" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" -"Intento para reducir la sensibilidad si las barras llegan a su punto máximo." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Sensibilidad" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "Sensibilidad manual. De ser activado, esto será solo el valor inicial." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Canales" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Estéreo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Suavizado Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Si se activa el llamado \"suavizado Monstercat\"." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Reducción de ruido" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Este factor ajusta los filtros integral y de gravedad para mantener la " -"suavidad de la señal.\n" -"Un valor más alto conduce a un resultado más lento y suave." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Orden inverso" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Si se desea invertir el orden de las barras para cada canal." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Colores" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Añadir perfil" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Tema de la aplicación" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Claro" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Oscuro" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Colores del primer plano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Añadir color de primer plano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Colores de fondo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Añadir el color del fondo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Imágenes" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Fondo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Primer plano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Añadir imagen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Escala" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Alfa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" -"La imagen en primer plano solo se muestra con los modos de dibujo Caja." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Sin imágenes" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Añada una imagen para usarla en Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Sin imagen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Cambiar modo de dibujado" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Cambiar radio en modos Círculo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Cambiar la rotación en los modos Círculo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Cambiar modo espejo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Conmutar espejo inverso" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Cambiar margen del área de dibujado" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Cambiar el movimiento en el eje X del área de dibujo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Cambiar el movimiento en el eje Y del área de dibujo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Cambiar dirección del dibujo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Cambiar espacio entre elementos" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Cambiar la redondez de los elementos" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Conmutar relleno" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Cambiar grosor de las líneas" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Conmutar bordes de ventana" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Conmutar bordes planos" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Cambiar número de barras" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Conmutar canales" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Conmutar orden inverso" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Otros" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Cambiar perfil de color" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Cambiar imagen de fondo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Cambiar el tamaño de la imagen del fondo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Cambiar el alfa de la imagen de fondo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Cambiar la imagen en primer plano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Cambiar la escala de la imagen en primer plano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Cambiar el alfa de la imagen de primer plano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Aplicación" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Conmutar pantalla completa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Atajos del teclado" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Acerca de Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Salir" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Redimensionando..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Menú principal" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier es un visualizador de audio basado en CAVA con interfaz " -#~ "personalizable." - -#~ msgid "11 drawing modes!" -#~ msgstr "¡11 modos de dibujo!" - -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Establezca cualquier color, un degradado o una imagen para el fondo y el " -#~ "primer plano." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "Configure suavizado, reducción de ruido y otros ajustes de CAVA." - -#~ msgid "6 drawing modes!" -#~ msgstr "¡6 modos de dibujo!" - -#, csharp-format -#~ msgid "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Contributors on GitHub ❤️ {2}" -#~ msgstr "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Colaboradores en GitHub ❤️ {2}" - -#~ msgid "Toggle Window Controls" -#~ msgstr "Conmutar controles de ventana" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Conmutar ocultar barra de título automáticamente" - -#, fuzzy -#~ msgid "Set any color or gradient for background and foreground." -#~ msgstr "" -#~ "Configure un color o hasta 10 colores gradientes para el fondo y énfasis." - -#, fuzzy -#~ msgid "Audio visualizer based on CAVA" -#~ msgstr "Visualizador de audio basado en CAVA." - -#~ msgid "Audio Visualizer" -#~ msgstr "Visualizador de Audio" - -#~ msgid "Second release of Cavalier." -#~ msgstr "Segundo lanzamiento de Cavalier." - -#~ msgid "New drawing mode — Particles!" -#~ msgstr "Nuevo modo de dibujado — Partículas!" - -#~ msgid "" -#~ "Color profiles! Create as many as you want and change between them " -#~ "instantly. Unfortunately, this new feature required to change how the " -#~ "application saves colors, and because of this your previous colors " -#~ "settings will be lost after installing this update." -#~ msgstr "" -#~ "Perfiles de color! Cree cuantos perfiles desee y cambie entre ellos " -#~ "instantaneamente. Desafortunadamente, esta nueva característica cambia la " -#~ "forma en la que la aplicación guarda los colores, por consecuente sus " -#~ "anteriores ajustes de color se perderán después de instalar esta " -#~ "actualización." - -#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." -#~ msgstr "" -#~ "Se añadieron atajos de teclado para cambiar la mayoria de los ajustes." - -#~ msgid "Added option to show/hide window controls." -#~ msgstr "Se añadió la opción de mostrar/ocultar los controles de ventana." - -#~ msgid "" -#~ "Added option to autohide headerbar when the main window is not focused." -#~ msgstr "" -#~ "Se añadió la opción de ocultar la barra de título automáticamente cuando " -#~ "la ventana principal no está activa." - -#~ msgid "" -#~ "Added option to change roundness of items in \"levels\" and \"particles\" " -#~ "modes." -#~ msgstr "" -#~ "Se añadio la opción de cambiar la redondez de elementos en los modos " -#~ "\"niveles\" y \"partículas\"." - -#~ msgid "Import/Export Settings" -#~ msgstr "Importar/Exportar Ajustes" - -#~ msgid "Window size" -#~ msgstr "Tamaño de ventana" - -#~ msgid "Window maximized state" -#~ msgstr "Tamaño máximo de ventana" - -#~ msgid "Whether main window is maximized or not" -#~ msgstr "Si la ventana principal está maximizada o no" - -#~ msgid "Defines what the visualizer looks like." -#~ msgstr "Define como se ve el visualizador." - -#~ msgid "This setting only affects \"levels\" and \"particles\" modes." -#~ msgstr "Este ajuste solo afecta a los modos \"niveles\" y \"partículas\"." - -#~ msgid "Number of bars in CAVA config" -#~ msgstr "Numero de barras en la configuración de CAVA" - -#~ msgid "Mono or stereo" -#~ msgstr "Mono o estéreo" - -#~ msgid "Smoothing" -#~ msgstr "Suavizado" - -#~ msgid "Widgets style" -#~ msgstr "Estilo de los widgets" - -#~ msgid "Style used by Adwaita widgets." -#~ msgstr "Estilo usado por los widgets de Adwaita." - -#~ msgid "Index of active color profile" -#~ msgstr "Índice del perfil de color activo" - -#~ msgid "Drawing Mode" -#~ msgstr "Modo de Dibujado" - -#~ msgid "" -#~ "This setting only affects \"levels\" and \"particles\" modes.\n" -#~ "0 - square, 1 - round" -#~ msgstr "" -#~ "Este ajuste solo afecta los modos \"niveles\" y \"partículas\".\n" -#~ "0 - cuadrado, 1 - redondeado" - -#~ msgid "Import" -#~ msgstr "Importar" - -#~ msgid "Export" -#~ msgstr "Exportar" - -#~ msgid "Noise Reduction" -#~ msgstr "Reducción de Ruido" - -#~ msgid "0 - noisy, 1 - smooth" -#~ msgstr "0 - ruidoso, 1 - suave" - -#~ msgid "Type a name for a new profile" -#~ msgstr "Escriba un nombre para un nuevo perfil" - -#~ msgid "Remove profile" -#~ msgstr "Eliminar perfil" - -#~ msgid "Remove" -#~ msgstr "Eliminar" - -#~ msgid "Foreground" -#~ msgstr "Énfasis" - -#~ msgid "Background" -#~ msgstr "Fondo" - -#~ msgid "Select color" -#~ msgstr "Seleccionar color" - -#~ msgid "Remove color" -#~ msgstr "Eliminar color" - -#~ msgid "Add color" -#~ msgstr "Añadir color" - -#~ msgid "This name is already in use." -#~ msgstr "Este nombre ya está en uso." - -#~ msgid "Import Settings" -#~ msgstr "Importar Ajustes" - -#~ msgid "Cavalier Settings File (*.cavalier)" -#~ msgstr "Archivo de Ajustes de Cavalier (*.cavalier)" - -#~ msgid "All Files" -#~ msgstr "Todos los Archivos" - -#~ msgid "Export Settings" -#~ msgstr "Exportar Ajustes" - -#~ msgid "Save" -#~ msgstr "Guardar" - -#~ msgid "About" -#~ msgstr "Acerca de" - -#~ msgid "Toggle Widgets Style" -#~ msgstr "Alternar Estilo de Widgets" diff --git a/NickvisionCavalier.Shared/Resources/po/fi.po b/NickvisionCavalier.Shared/Resources/po/fi.po deleted file mode 100644 index 85d7d7c..0000000 --- a/NickvisionCavalier.Shared/Resources/po/fi.po +++ /dev/null @@ -1,625 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2025-02-04 13:02+0000\n" -"Last-Translator: Ricky Tigg \n" -"Language-Team: Finnish \n" -"Language: fi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Lisää" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Lisää uusi profiili" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Haluatko varmasti poistaa profiilin \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Peru" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Avustajat GitHubissa ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Oletus" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Poista" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Poista profiili" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Täysi" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "GitHub-tietovarasto" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG- ja PNG-kuvat" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Matrix-keskustelu" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "" -"Uusi väriprofiili tulee olemaan kopio nykyisestä aktiivisesta profiilista." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Pois" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Päällä" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Profiilin nimi" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Valitse kuva" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Jaa kanavat" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Jiri Grönroos" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Visualisoi ääntä CAVA:lla" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Tanssitaan!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier kuuntelee järjestelmän tuottamia ääniä. Toista musiikkia tai katso " -"video, ja näe, kuinka ääni herää eloon!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Asetukset" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Piirtotila" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Laatikko" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Ympyrä" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Aalto" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Tasot" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Partikkelit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Palkit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Piikki" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Säde" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Kierto" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Peili" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Käänteinen peili" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Piirtosuunta" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Ylhäältä alas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Alhaalta ylös" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Vasemmalta oikealle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Oikealta vasemmalle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Piirtoalueen reunus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Piirtoalueen X-siirtymä" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Piirtoalueen Y-siirtymä" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Siirtymä kohteiden välillä" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Täyttö" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Ovatko muodot täytettyjä vai reunustettuja." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Viivojen paksuus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Reunaton ikkuna" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Terävät kulmat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Ikkunasäätimet" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Piilota otsakepalkki automaattisesti" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Kuvanopeus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -#, fuzzy -msgid "Custom Framerate" -msgstr "Kuvanopeus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Palkkien määrä" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Kanavat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Käänteinen järjestys" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Värit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Lisää profiili" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Sovelluksen teema" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Vaalea" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Tumma" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Edustavärit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -#, fuzzy -msgid "Add foreground color" -msgstr "Edustavärit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Taustavärit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -#, fuzzy -msgid "Add background color" -msgstr "Taustavärit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -#, fuzzy -msgid "Images" -msgstr "Kuva" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -#, fuzzy -msgid "Background" -msgstr "Taustavärit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -#, fuzzy -msgid "Foreground" -msgstr "Edustavärit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Lisää kuva" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -#, fuzzy -msgid "No Images" -msgstr "Ei kuvaa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Ei kuvaa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Vaihda piirtotilaa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -#, fuzzy -msgid "Change radius in Circle modes" -msgstr "Vaihda piirtotilaa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -#, fuzzy -msgid "Change rotation in Circle modes" -msgstr "Vaihda piirtotilaa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Vaihda peilitilaa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Vaihda piirtoalueen reunusta" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -#, fuzzy -msgid "Change Drawing Area X Offset" -msgstr "Vaihda piirtoalueen reunusta" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -#, fuzzy -msgid "Change Drawing Area Y Offset" -msgstr "Vaihda piirtoalueen reunusta" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Vaihda piirtosuuntaa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Muut" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Vaihda väriprofiilia" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Vaihda taustakuva" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -#, fuzzy -msgid "Change Background Image Scale" -msgstr "Vaihda taustakuva" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -#, fuzzy -msgid "Change Background Image Alpha" -msgstr "Vaihda taustakuva" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -#, fuzzy -msgid "Change Foreground Image" -msgstr "Vaihda taustakuva" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -#, fuzzy -msgid "Change Foreground Image Scale" -msgstr "Vaihda taustakuva" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -#, fuzzy -msgid "Change Foreground Image Alpha" -msgstr "Vaihda taustakuva" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Sovellus" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Koko näyttö päälle/pois" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Pikanäppäimet" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Tietoja - Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Lopeta" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Asetetaan uutta kokoa..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Päävalikko" - -#~ msgid "11 drawing modes!" -#~ msgstr "11 piirtotilaa!" - -#, csharp-format -#~ msgid "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Contributors on GitHub ❤️ {2}" -#~ msgstr "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Avustajat GitHubissa ❤️ {2}" diff --git a/NickvisionCavalier.Shared/Resources/po/fr.po b/NickvisionCavalier.Shared/Resources/po/fr.po deleted file mode 100644 index 2db273d..0000000 --- a/NickvisionCavalier.Shared/Resources/po/fr.po +++ /dev/null @@ -1,796 +0,0 @@ -# French translation for the cavalier's package. -# Copyright (C) 2022 Fyodor Sobolev -# This file is distributed under the same license as the cavalier package. -# Irénée Thirion , 2023. -# -msgid "" -msgstr "" -"Project-Id-Version: cavalier\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2025-01-24 10:02+0000\n" -"Last-Translator: AFCMS \n" -"Language-Team: French \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.10-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Ajouter" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Ajouter un nouveau profil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Êtes-vous sûr⋅e de vouloir supprimer le profil « {0} » ?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Annuler" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Contributeurs sur GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Par défaut" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Supprimer" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Supprimer le profil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Intégral" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Dépôt GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Cœurs" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Images JPEG et PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Discussion Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Le nouveau profil de couleur sera une copie du profil actif actuel." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Désactivé" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Activé" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Nom du profil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Sélectionnez une image" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Séparer les canaux" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Irénée Thirion" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Visualisez de l’audio avec CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Aide de commande" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Dansons !" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier écoute le son de votre système. Jouez de la musique ou une vidéo " -"pour le voir prendre vie !" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Préférences" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Mode de dessin" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Boîte" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Cercle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Ondulations" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Niveaux" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Particules" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Barres" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Colonne vertébrale" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Séparateur" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Rayon" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Rotation" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Miroir" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Miroir inversé" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Direction du dessin" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "De haut en bas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "De bas en haut" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "De gauche à droite" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "De droite à gauche" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Marge autour de l’aire de dessin" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Espace (en pixels) laissé autour de l’aire dessinée." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Marge autour de l’aire de dessin X" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Marge autour de l’aire de dessin Y" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Espace entre les éléments" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Taille des espaces entre les éléments (en pourcentages)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Rondeur des éléments" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Ajuste la rondeur des éléments (en pourcentages)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Remplissage" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Indique si les formes devraient être remplies délimitées." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Épaisseur des lignes" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Épaisseur des lignes quand le remplissage est désactivé (en pixels)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Fenêtre sans bordures" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Indique s’il faut désactiver l’ombre et les bordures de la fenêtre." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Angles saillants" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Indique si les angles de la fenêtre principale doivent être saillants." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Contrôles de la fenêtre" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Indique s’il faut afficher les boutons de contrôle de la fenêtre." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Masquer automatiquement la barre supérieure" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Indique s’il faut masquer la barre supérieure lorsque la fenêtre n’est pas " -"focalisée." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Fréquence" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Nombre d’images par secondes." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Personnalisé" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Fréquence personnalisée" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Nombre de barres" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Sensibilité automatique" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Essayer de diminuer la sensibilité si les barres atteignent un pic." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Sensibilité" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Sensibilité définie manuellement. Si la sensibilité automatique est activée, " -"ce sera la valeur initiale." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Canaux" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stéréo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Lissage Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Indique s’il faut activer le « lissage Monstercat »." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Réduction de bruit" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Ce facteur ajuste les filtres de gravité et d’intégrale pour garder un " -"signal lisse.\n" -"Plus la valeur est élevée, plus le rendu sera lent et lisse." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Inverser l’ordre" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Indique s’il faut inverser l’ordre des barres pour chaque canal." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Couleurs" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Ajouter un profil" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Thème de l’application" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Clair" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Sombre" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Couleurs de premier-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Ajouter une couleur de premier-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Couleurs d’arrière-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Ajouter une couleur d’arrière-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Images" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Arrière-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Premier-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Ajouter une image" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Mise à l’échelle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Transparence" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "L'image de premier-plan est visible uniquement en mode boîte." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Aucune images" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Ajoutez une image pour l'utiliser dans Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Aucune image" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Changer le mode de dessin" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Changer le rayon dans le mode Cercle" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Changer la rotation dans le mode Cercle" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Changer le mode du miroir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Basculer le miroir d’inversion" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Modifier la marge autour de l’aire de dessin" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Modifier la marge autour de l’aire de dessin X" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Modifier la marge autour de l’aire de dessin Y" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Changer la direction du dessin" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Modifier l’espace entre les éléments" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Modifier la rondeur des éléments" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Activer/désactiver le remplissage" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Modifier l’épaisseur des lignes" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Afficher/masquer les bordures de la fenêtre" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Activer / désactiver les angles saillants" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Changer le nombre de barres" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Changer le canal" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Basculer l’inversion de l’ordre" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Autre" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Changer le profil de couleur" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Changer l’image d’arrière-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Modifier l'échelle de l'image d'arrière-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Modifier la transparence de l'image d'arrière-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Changer l’image de premier-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Changer l’échelle de l’image de premier-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Changer la transparence de l’image d’arrière-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Application" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Basculer en plein écran" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Raccourcis clavier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "À propos de Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Quitter" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Redimensionnement…" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Menu principal" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier est un visualiseur audio basé sur CAVA avec une interface " -#~ "personnalisable." - -#~ msgid "11 drawing modes!" -#~ msgstr "11 modes de dessin !" - -#, fuzzy -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Définissez une couleur ou un dégradé pour l’arrière-plan et le premier-" -#~ "plan." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "" -#~ "Configurez le lissage, la réduction du bruit et d’autres paramètres CAVA." - -#, csharp-format -#~ msgid "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Contributors on GitHub ❤️ {2}" -#~ msgstr "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Contributeurs sur GitHub ❤️ {2}" - -#~ msgid "Toggle Window Controls" -#~ msgstr "Afficher / masquer les contrôles de la fenêtre" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Masquage automatique de la barre supérieure" - -#~ msgid "Set any color or gradient for background and foreground." -#~ msgstr "" -#~ "Définissez une couleur ou un dégradé pour l’arrière-plan et le premier-" -#~ "plan." - -#, fuzzy -#~ msgid "Audio visualizer based on CAVA" -#~ msgstr "Visualiseur audio basé sur CAVA." - -#~ msgid "Audio Visualizer" -#~ msgstr "Visualiseur audio" - -#~ msgid "Second release of Cavalier." -#~ msgstr "Seconde version de Cavalier." - -#~ msgid "New drawing mode — Particles!" -#~ msgstr "Nouveau mode de dessin — Particules !" - -#~ msgid "" -#~ "Color profiles! Create as many as you want and change between them " -#~ "instantly. Unfortunately, this new feature required to change how the " -#~ "application saves colors, and because of this your previous colors " -#~ "settings will be lost after installing this update." -#~ msgstr "" -#~ "Profils de couleurs ! Créez-en autant que vous le souhaitez et basculez " -#~ "de l’un à l’autre instantanément. Malheureusement, cette nouvelle " -#~ "fonctionnalité requiert de modifier la façon dont l’application " -#~ "enregistre les couleurs, ce qui fera que vos paramètres de couleurs " -#~ "précédents seront perdus après cette mise à jour." - -#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." -#~ msgstr "" -#~ "Ajout de raccourcis clavier pour changer la plupart des paramètres à la " -#~ "volée." - -#~ msgid "Added option to show/hide window controls." -#~ msgstr "" -#~ "Ajout d’une option pour afficher ou masquer les boutons de contrôle de la " -#~ "fenêtre." - -#~ msgid "" -#~ "Added option to autohide headerbar when the main window is not focused." -#~ msgstr "" -#~ "Ajout d’une option pour masquer automatiquement la barre supérieure quand " -#~ "la fenêtre principale n’est pas focalisée." - -#~ msgid "" -#~ "Added option to change roundness of items in \"levels\" and \"particles\" " -#~ "modes." -#~ msgstr "" -#~ "Ajout d’une option permettant de modifier la rondeur des objets dans les " -#~ "modes « niveaux » et « particules »." - -#~ msgid "Import/Export Settings" -#~ msgstr "Paramètres d’importation / exportation" - -#~ msgid "Window size" -#~ msgstr "Taille de la fenêtre" - -#~ msgid "Window maximized state" -#~ msgstr "État maximisé de la fenêtre" - -#~ msgid "Whether main window is maximized or not" -#~ msgstr "Indique si la fenêtre principale est maximisée ou non" - -#~ msgid "Defines what the visualizer looks like." -#~ msgstr "Définit l’apparence du visualiseur." - -#~ msgid "This setting only affects \"levels\" and \"particles\" modes." -#~ msgstr "Ce paramètre n’affecte que les modes « niveaux » et « particules »." - -#~ msgid "Number of bars in CAVA config" -#~ msgstr "Nombre de barres dans la configuration CAVA" - -#~ msgid "Mono or stereo" -#~ msgstr "Mono ou stéréo" - -#~ msgid "Smoothing" -#~ msgstr "Lissage" - -#~ msgid "Widgets style" -#~ msgstr "Style des widgets" - -#~ msgid "Style used by Adwaita widgets." -#~ msgstr "Style des widgets Adwaita." - -#~ msgid "Index of active color profile" -#~ msgstr "Index des profils de couleur actifs" - -#~ msgid "Drawing Mode" -#~ msgstr "Mode de dessin" - -#~ msgid "" -#~ "This setting only affects \"levels\" and \"particles\" modes.\n" -#~ "0 - square, 1 - round" -#~ msgstr "" -#~ "Ce paramètre n’affecte que les modes « niveaux » et « particules ».\n" -#~ "0 - carré, 1 - rond" - -#~ msgid "Import" -#~ msgstr "Importer" - -#~ msgid "Export" -#~ msgstr "Exporter" - -#~ msgid "Noise Reduction" -#~ msgstr "Réduction de bruit" - -#~ msgid "0 - noisy, 1 - smooth" -#~ msgstr "0 - bruyant, 1 - doux" - -#~ msgid "Type a name for a new profile" -#~ msgstr "Saisissez un nom pour le nouveau profil" - -#~ msgid "Remove profile" -#~ msgstr "Supprimer le profil" - -#~ msgid "Remove" -#~ msgstr "Supprimer" - -#~ msgid "Foreground" -#~ msgstr "Premier plan" - -#~ msgid "Background" -#~ msgstr "Arrière-plan" - -#~ msgid "Select color" -#~ msgstr "Sélectionner une couleur" - -#~ msgid "Remove color" -#~ msgstr "Supprimer la couleur" - -#~ msgid "Add color" -#~ msgstr "Ajouter une couleur" - -#~ msgid "This name is already in use." -#~ msgstr "Ce nom est déjà utilisé." - -#~ msgid "Import Settings" -#~ msgstr "Paramètres d’importation" - -#~ msgid "Cavalier Settings File (*.cavalier)" -#~ msgstr "Fichier de paramètres Cavalier (*.cavalier)" - -#~ msgid "All Files" -#~ msgstr "Tous les fichiers" - -#~ msgid "Export Settings" -#~ msgstr "Paramètres d’exportation" - -#~ msgid "Save" -#~ msgstr "Enregistrer" - -#~ msgid "About" -#~ msgstr "À propos" - -#~ msgid "Toggle Widgets Style" -#~ msgstr "Changer les styles des widgets" diff --git a/NickvisionCavalier.Shared/Resources/po/hi.po b/NickvisionCavalier.Shared/Resources/po/hi.po deleted file mode 100644 index f35226c..0000000 --- a/NickvisionCavalier.Shared/Resources/po/hi.po +++ /dev/null @@ -1,600 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-07-07 17:09+0000\n" -"Last-Translator: Scrambled777 \n" -"Language-Team: Hindi \n" -"Language: hi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.7-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "जोड़ें" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "नई प्रोफाइल जोड़ें" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "क्या आप वाकई प्रोफाइल \"{0}\" को मिटाना चाहते हैं?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "रद्द करें" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "GitHub पर योगदानकर्ता ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "डेविड लापशिन" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "तयशुदा" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "मिटाएं" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "प्रोफाइल मिटाएं" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "भरा हुआ" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "फेडर सोबोलेव" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "GitHub रेपो" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "दिल" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG और PNG छवियां" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "मैट्रिक्स चैट" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "नई रंगीन प्रोफाइल वर्तमान सक्रिय प्रोफाइल की एक प्रति होगी।" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "निकोलस लोगोज़ो" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "बंद" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "चालू" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "प्रोफाइल नाम" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "एक छवि चुनें" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "विभाजित चैनल" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Scrambled777 " - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "CAVA के साथ ऑडियो विज़ुअलाइज़ करें" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "आदेश सहायता" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "आओ नाचें!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier आपके सिस्टम की ध्वनि सुनता है। कुछ संगीत बजाएं या वीडियो देखें और " -"देखें कि आपकी ध्वनि जीवंत हो गई है!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "प्राथमिकताएं" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "ड्राइंग मोड" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "बक्सा" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "वृत्त" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "तरंग" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "स्तरों" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "कण" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "बार्स" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "स्पाइन" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "विभाजक" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "त्रिज्या" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "घूर्णन" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "दर्पण" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "उलटा दर्पण" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "ड्राइंग दिशा" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "ऊपर से नीचे" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "नीचे से ऊपर" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "बाएं से दाएं" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "दाएं से बाएं" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "ड्राइंग क्षेत्र मार्जिन" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "ड्राइंग क्षेत्र के चारों ओर अंतराल का आकार (पिक्सेल में)।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "ड्राइंग क्षेत्र X ऑफसेट" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "ड्राइंग क्षेत्र Y ऑफसेट" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "वस्तुओं के बीच ऑफसेट" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "तत्वों के बीच रिक्त स्थान का आकार (प्रतिशत में)।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "वस्तुओं की गोलाई" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "तत्व कितने गोलाकार होने चाहिए (प्रतिशत में)।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "भराव" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "क्या आकृतियां भरी जानी चाहिए या रेखांकित की जानी चाहिए।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "रेखाओं की मोटाई" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "भरना बंद होने पर लाइनों की मोटाई (पिक्सेल में)।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "सीमाहीन खिड़की" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "विंडो शैडो और बॉर्डर को अक्षम करना है या नहीं।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "नुकीले कोने" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "मुख्य खिड़की के कोने नुकीले होने चाहिए या नहीं।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "विंडो नियंत्रण" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "विंडो नियंत्रण बटन दिखाना है या नहीं।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "शीर्षलेख पट्टी को स्वतः छिपाएं" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "मुख्य विंडो फोकस न होने पर शीर्षलेख पट्टी छिपाना है या नहीं।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "फ्रेम रेट" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "प्रति सेकंड फ़्रेम की संख्या।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "तदनुकूल" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "तदनुकूल फ़्रेमरेट" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "बारों की संख्या" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "स्वचालित संवेदनशीलता" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "यदि बार्स चरम पर हों तो संवेदनशीलता कम करने का प्रयास करें।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "संवेदनशीलता" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"मैनुअल संवेदनशीलता. यदि स्वचालित संवेदनशीलता सक्षम है, तो यह केवल प्रारंभिक " -"मान होगा।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "चैनल्स" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "मोनो" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "स्टीरियो" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Monstercat स्मूथिंग" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "क्या तथाकथित «Monstercat स्मूथिंग» को सक्षम करना है।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "शोर में कमी" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"यह कारक सिग्नल को सुचारू रखने के लिए इंटीग्रल और ग्रेविटी फिल्टर को समायोजित " -"करता है।\n" -"उच्च मूल्य से धीमा और सहज परिणाम प्राप्त होता है।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "उलटा क्रम" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "क्या प्रत्येक चैनल के लिए बार के क्रम को उलटना है।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "रंग" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "प्रोफाइल जोड़ें" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "अनुप्रयोग थीम" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "हल्की" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "गहरी" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "अग्रभूमि रंग" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "अग्रभूमि रंग जोड़ें" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "पृष्ठभूमि रंग" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "पृष्ठभूमि रंग जोड़ें" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "छवियां" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "पृष्ठभूमि" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "अग्रभूमि" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "छवि जोड़ें" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "पैमाना" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "अल्फा" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "अग्रभूमि छवि केवल बॉक्स ड्राइंग मोड के साथ दिखाई जाती है।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "कोई छवियां नहीं" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Cavalier में इसका उपयोग करने के लिए एक छवि जोड़ें।" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "कोई छवियां नहीं" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "ड्राइंग मोड बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "सर्कल मोड में त्रिज्या बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "सर्कल मोड में रोटेशन बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "मिरर मोड बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "उल्टा दर्पण टॉगल करें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "ड्राइंग एरिया मार्जिन बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "ड्राइंग एरिया X ऑफसेट बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "ड्राइंग एरिया Y ऑफसेट बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "ड्राइंग की दिशा बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "वस्तुओं के बीच ऑफसेट बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "वस्तुओं की गोलाई बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "भरना टॉगल करें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "लाइनों की मोटाई बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "विंडो बॉर्डर टॉगल करें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "नुकीले कोनों को टॉगल करें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "बार्स की संख्या बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "चैनल टॉगल करें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "रिवर्स ऑर्डर टॉगल करें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "अन्य" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "प्रोफाइल का रंग बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "पृष्ठभूमि छवि बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "पृष्ठभूमि छवि स्केल बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "पृष्ठभूमि छवि अल्फा बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "अग्रभूमि छवि बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "अग्रभूमि छवि स्केल बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "अग्रभूमि छवि अल्फा बदलें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "आवेदन" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "संपूर्ण स्क्रीन टॉगल करें" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "कीबोर्ड शॉर्टकट" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Cavalier के बारे में" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "बंद करें" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "आकार बदल रहा है…" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "मुख्य मेनू" diff --git a/NickvisionCavalier.Shared/Resources/po/ia.po b/NickvisionCavalier.Shared/Resources/po/ia.po deleted file mode 100644 index c8bd2d0..0000000 --- a/NickvisionCavalier.Shared/Resources/po/ia.po +++ /dev/null @@ -1,590 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: ia\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "" diff --git a/NickvisionCavalier.Shared/Resources/po/it.po b/NickvisionCavalier.Shared/Resources/po/it.po deleted file mode 100644 index edd28d6..0000000 --- a/NickvisionCavalier.Shared/Resources/po/it.po +++ /dev/null @@ -1,803 +0,0 @@ -# ITALIAN TRANSLATION FOR CAVALIER -# Copyright (C) 2022 Fyodor Sobolev -# This file is distributed under the same license as the PACKAGE package. -# ALBANO BATTISTELLA , 2022,2023. -# -msgid "" -msgstr "" -"Project-Id-Version: cavalier\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2023-09-12 17:35+0000\n" -"Last-Translator: Davide \n" -"Language-Team: Italian \n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0.1-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Aggiungi" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Aggiungi nuovo profilo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Sei sicuro di voler rimuovere il profilo \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Annulla" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "I contributori su GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Predefinito" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Elimina" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Elimina profilo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Pieno" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Repo GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Cuori" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Immagini JPEG e PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Chat Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Il nuovo profilo colore sarà una copia del profilo attivo corrente." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Spento" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Acceso" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Nome profilo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Selezionare un'immagine" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Dividi canali" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Albano Battistella" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Visualizza l'audio con CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Aiuto per i comandi" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Balliamo!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier ascolta il suono del tuo sistema. Riproduci un po' di musica o " -"guarda un video e guarda il tuo suono prendere vita!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Preferenze" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Modalità disegno" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Scatola" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Cerchio" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Onda" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Livelli" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Particelle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Barre" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Colonna" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Separatore" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Raggio" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Rotazione" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Specchio" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Specchio rovesciato" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Direzione del disegno" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Dall'alto verso il basso" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Dal basso verso l'alto" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Da sinistra a destra" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Da destra a sinistra" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Margine dell'area di disegno" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Dimensione degli spazi attorno all'area di disegno (in pixel)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Scostamento orizzontale dell'area di disegno" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Scostamento verticale dell'area di disegno" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Scostamento tra gli elementi" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "La dimensione degli spazi tra gli elementi (in percentuale)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Rotondità degli oggetti" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Quanto dovrebbero essere arrotondati gli elementi (in percentuale)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Riempimento" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Se le forme devono essere riempite o delineate." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Spessore delle linee" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Spessore delle linee quando il riempimento è disattivato (in pixel)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Finestra senza bordi" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Se disabilitare l'ombreggiatura e i bordi della finestra." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Angoli acuti" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Se gli angoli della finestra principale devono essere nitidi." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Controlli finestra" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Se mostrare i pulsanti di controllo della finestra." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Nascondi automaticamente barra di intestazione" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Se nascondere la barra di intestazione quando la finestra principale non è " -"focalizzata." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Frequenza dei fotogrammi" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Numero di fotogrammi al secondo." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Personalizzato" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Frequenza fotogrammi personalizzata" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Numero di barre" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Sensibilità automatica" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Tenta di ridurre la sensibilità se le barre raggiungono il picco." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Sensibilità" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Sensibilità manuale. Se la sensibilità automatica è abilitata, questo verrà " -"usato come valore iniziale." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Canali" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Levigatura Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Se abilitare la cosiddetta «Levigatura Monstercat»." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Riduzione del rumore" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Questo fattore regola i filtri integrale e gravitazionale per mantenere il " -"segnale uniforme.\n" -"Un valore più alto porta a un risultato più lento e uniforme." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Inverti ordine" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Se invertire l'ordine delle barre per ciascun canale." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Colori" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Aggiungi profilo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Tema dell'applicazione" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Chiaro" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Scuro" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Colori in primo piano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Aggiungi colore in primo piano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Colori di sfondo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Aggiungi colore di sfondo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Immagini" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Sfondo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Primo piano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Aggiungi immagine" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Scala" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Alfa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" -"L'immagine in primo piano è mostrata solo con la modalità di disegno Scatola." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Nessuna immagine" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Aggiungere un'immagine per usarla in Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Nessuna immagine" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Cambia modalità di disegno" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Cambia raggio nelle modalità Cerchio" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Cambia la rotazione nelle modalità cerchio" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Cambia modalità specchio" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Attiva/disattiva specchio inverso" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Modifica margine area di disegno" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Modifica lo scostamento orizzontale dell'area di disegno" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Modifica lo scostamento verticale dell'area di disegno" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Cambia la direzione del disegno" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Modifica lo scostamento tra gli elementi" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Cambia la rotondità degli elementi" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Attiva/disattiva il riempimento" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Cambia lo spessore delle linee" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Attiva/disattiva i bordi della finestra" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Attiva/disattiva angoli acuti" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Cambia il numero di barre" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Commuta il canale" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Attiva/disattiva l'ordine inverso" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Altro" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Cambia profilo colore" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Cambia immagine di sfondo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Cambia scala dell'immagine di sfondo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Cambia alfa dell'immagine di sfondo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Cambia immagine in primo piano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Cambia scala dell'immagine in primo piano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Cambia alfa dell'immagine in primo piano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Applicazione" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Attiva/disattiva schermo intero" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Scorciatoie da tastiera" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Informazioni su Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Esci" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Ridimensionamento..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Menù principale" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier è un visualizzatore audio basato su CAVA con interfaccia " -#~ "personalizzabile." - -#~ msgid "11 drawing modes!" -#~ msgstr "11 modalità di disegno!" - -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Imposta qualsiasi colore, una sfumatura o un'immagine per lo sfondo e il " -#~ "primo piano." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "" -#~ "Configura il livellamento, la riduzione del rumore e alcune altre " -#~ "impostazioni CAVA." - -#~ msgid "Toggle Window Controls" -#~ msgstr "Attiva/disattiva i controlli della finestra" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Attiva/disattiva automaticamente la barra di intestazione" - -#, fuzzy -#~ msgid "Set any color or gradient for background and foreground." -#~ msgstr "" -#~ "Imposta un singolo colore o fino a 10 sfumature di colori per lo sfondo e " -#~ "il primo piano." - -#, fuzzy -#~ msgid "Audio visualizer based on CAVA" -#~ msgstr "Visualizzatore audio basato su CAVA." - -#~ msgid "Audio Visualizer" -#~ msgstr "Visualizzatore audio" - -#~ msgid "Second release of Cavalier." -#~ msgstr "Secondo rilascio di Cavalier." - -#~ msgid "New drawing mode — Particles!" -#~ msgstr "Nuova modalità di disegno — Particelle!" - -#~ msgid "" -#~ "Color profiles! Create as many as you want and change between them " -#~ "instantly. Unfortunately, this new feature required to change how the " -#~ "application saves colors, and because of this your previous colors " -#~ "settings will be lost after installing this update." -#~ msgstr "" -#~ "Profili colore! Creane quanti ne vuoi e cambia da uno " -#~ "all'altroall'istante. Sfortunatamente, questa nuova funzionalità " -#~ "richiedeva di modificare il modo in cui l'applicazione salva i colori e, " -#~ "per questo motivo, le impostazioni dei colori precedenti andranno perse " -#~ "dopo l'installazione di questo aggiornamento." - -#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." -#~ msgstr "" -#~ "Aggiunte scorciatoie da tastiera per modificare la maggior parte delle " -#~ "impostazioni al volo." - -#~ msgid "Added option to show/hide window controls." -#~ msgstr "" -#~ "Aggiunta opzione per mostrare/nascondere i controlli della finestra." - -#~ msgid "" -#~ "Added option to autohide headerbar when the main window is not focused." -#~ msgstr "" -#~ "Aggiunta opzione per nascondere automaticamente la barra " -#~ "dell'intestazione quando la finestra principale non è focalizzata." - -#~ msgid "" -#~ "Added option to change roundness of items in \"levels\" and \"particles\" " -#~ "modes." -#~ msgstr "" -#~ "Aggiunta opzione per modificare la rotondità degli elementi in " -#~ "\"livelli\" e modalità \"particelle\"." - -#~ msgid "Import/Export Settings" -#~ msgstr "Impostazioni di importazione/esportazione" - -#~ msgid "Window size" -#~ msgstr "Dimensione finestra" - -#~ msgid "Window maximized state" -#~ msgstr "Stato della finestra massimizzato" - -#~ msgid "Whether main window is maximized or not" -#~ msgstr "Se la finestra principale è massimizzata o meno" - -#~ msgid "Defines what the visualizer looks like." -#~ msgstr "Definisce l'aspetto del visualizzatore." - -#~ msgid "This setting only affects \"levels\" and \"particles\" modes." -#~ msgstr "" -#~ "Questa impostazione riguarda solo le modalità \"livelli\" e " -#~ "\"particelle\"." - -#~ msgid "Number of bars in CAVA config" -#~ msgstr "Numero di barre nella configurazione CAVA" - -#~ msgid "Mono or stereo" -#~ msgstr "Mono o stereo" - -#~ msgid "Smoothing" -#~ msgstr "Regolazione" - -#~ msgid "Widgets style" -#~ msgstr "Stile widget" - -#~ msgid "Style used by Adwaita widgets." -#~ msgstr "Stile utilizzato dai widget Adwaita." - -#~ msgid "Index of active color profile" -#~ msgstr "Indice del profilo colore attivo" - -#~ msgid "Drawing Mode" -#~ msgstr "Modalità disegno" - -#~ msgid "" -#~ "This setting only affects \"levels\" and \"particles\" modes.\n" -#~ "0 - square, 1 - round" -#~ msgstr "" -#~ "Questa impostazione riguarda solo le modalità \"livelli\" e " -#~ "\"particelle\".\n" -#~ "0 - quadrato, 1 - rotondo" - -#~ msgid "Import" -#~ msgstr "Importa" - -#~ msgid "Export" -#~ msgstr "Esporta" - -#~ msgid "Noise Reduction" -#~ msgstr "Riduzione del rumore" - -#~ msgid "0 - noisy, 1 - smooth" -#~ msgstr "0 - rumoroso, 1 - regolare" - -#~ msgid "Type a name for a new profile" -#~ msgstr "Digitare un nome per un nuovo profilo" - -#~ msgid "Remove profile" -#~ msgstr "Rimuovi profilo" - -#~ msgid "Remove" -#~ msgstr "Rimuovi" - -#~ msgid "Foreground" -#~ msgstr "In primo piano" - -#~ msgid "Background" -#~ msgstr "Sfondo" - -#~ msgid "Select color" -#~ msgstr "Seleziona colore" - -#~ msgid "Remove color" -#~ msgstr "Rimuovi colore" - -#~ msgid "Add color" -#~ msgstr "Aggiungi colore" - -#~ msgid "This name is already in use." -#~ msgstr "Questo nome è già in uso." - -#~ msgid "Import Settings" -#~ msgstr "Impostazioni di importazione" - -#~ msgid "Cavalier Settings File (*.cavalier)" -#~ msgstr "File impostazioni di Cavalier (*.cavalier)" - -#~ msgid "All Files" -#~ msgstr "Tutti i file" - -#~ msgid "Export Settings" -#~ msgstr "Impostazioni di esportazione" - -#~ msgid "Save" -#~ msgstr "Salva" - -#~ msgid "About" -#~ msgstr "Informazioni" - -#~ msgid "Toggle Widgets Style" -#~ msgstr "Attiva/disattiva lo stile dei widget" - -#~ msgid "" -#~ "3 drawing modes: weird Wave, retro-ish Levels and classic CAVA look - " -#~ "Bars!" -#~ msgstr "" -#~ "3 modalità di disegno: strana onda, livelli retrò e aspetto classico " -#~ "Barre - CAVA!" - -#~ msgid "The array of foregound colors (RGBA)." -#~ msgstr "La matrice dei colori di primo piano (RGBA)." - -#~ msgid "The array of background colors (RGBA)." -#~ msgstr "La matrice dei colori di sfondo (RGBA)." diff --git a/NickvisionCavalier.Shared/Resources/po/metainfo.its b/NickvisionCavalier.Shared/Resources/po/metainfo.its deleted file mode 100644 index 37649bf..0000000 --- a/NickvisionCavalier.Shared/Resources/po/metainfo.its +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - diff --git a/NickvisionCavalier.Shared/Resources/po/nl.po b/NickvisionCavalier.Shared/Resources/po/nl.po deleted file mode 100644 index ea424b6..0000000 --- a/NickvisionCavalier.Shared/Resources/po/nl.po +++ /dev/null @@ -1,802 +0,0 @@ -# Copyright (C) 2022 Fyodor Sobolev -# This file is distributed under the same license as the PACKAGE package. -# -# Heimen Stoffels , 2022. -msgid "" -msgstr "" -"Project-Id-Version: cavalier\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-02-18 12:02+0000\n" -"Last-Translator: Philip Goto \n" -"Language-Team: Dutch \n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.4\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Toevoegen" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Nieuw profiel toevoegen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, fuzzy, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Weet u zeker dat u dit profiel wilt verwijderen?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Annuleren" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Bijdragers op GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Standaard" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Verwijderen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Profiel verwijderen" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Volledig" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "GitHub-repository" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Harten" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG- en PNG-afbeeldingen" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Matrix-gesprek" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Uit" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Aan" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Profiel­naam" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Afbeelding selecteren" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Kanalen opsplitsen" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Philip Goto https://philipgoto.nl/" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Visualiseer audio m.b.v. CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Opdracht­hulp" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Tijd om te dansen!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Voorkeuren" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Weergavemodus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Doos" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Cirkel" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Golf" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Niveaus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Deeltjes" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Balken" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Wervel" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Splitter" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Straal" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Rotatie" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Spiegel" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Spiegeling omkeren" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Teken­richting" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Van boven naar onderen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Van onderen naar boven" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Van links naar rechts" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Van rechts naar links" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Weergavemodusmarge" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "De grootte van ruimtes om het weergavegebied heen (in pixels)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "X-offset van teken­gebied" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Y-offset van teken­gebied" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Verschuiving tussen items" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -#, fuzzy -msgid "The size of spaces between elements (in percent)." -msgstr "" -"De ruimte tussen elementen in niveau-, balk- en deeltjesmodi (in procenten)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Rondheid van items" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Vullend" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Dikte van lijnen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Rand­loos venster" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -#, fuzzy -msgid "Whether to disable window shadow and borders." -msgstr "Of de titelbalkknoppen getoond dienen te worden." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Scherpe hoeken" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Of het hoofdvenster scherpe hoeken dient te hebben." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Titelbalkknoppen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Of de titelbalkknoppen getoond dienen te worden." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Kopbalk automatisch verbergen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Of de kopbalk automatisch moet worden verborgen als het hoofdvenster niet " -"gefocust is." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Beeld­frequentie" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Aantal beelden per seconde." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Aangepast" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Aangepaste beeld­frequentie" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Aantal balken" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Automatische gevoeligheid" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" -"Probeer de gevoeligheid te verlagen zodra het maximale aantal balken bereikt " -"is." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Gevoeligheidsgraad" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"De handmatige gevoeligheidsgraad. Als de automatische modus is ingeschakeld, " -"dan wordt dit als startwaarde gebruikt." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Kanalen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Monstercat-verzachting" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Ruisonderdrukking" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -#, fuzzy -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Deze factor bepaalt de zwaarte van de filters om het signaal vloeiend door " -"te laten komen. 1 = erg zwaar, maar vloeiend - 0 = licht, maar met ruis." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Volgorde omdraaien" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -#, fuzzy -msgid "Whether to reverse order of bars for each channel." -msgstr "Nieuw: optie om de volgorde van balken aan te passen." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Kleuren" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Profiel toevoegen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "App-thema" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Licht" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Donker" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Voorgrond­kleuren" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Voorgrond­kleur toevoegen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Achtergrond­kleuren" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Achtergrond­kleur toevoegen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Afbeeldingen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Achter­grond" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Voor­grond" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Afbeelding toevoegen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Schaal" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Alfa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Geen afbeeldingen" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Geen afbeelding" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Weergavemodus aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -#, fuzzy -msgid "Change radius in Circle modes" -msgstr "Weergavemodus aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -#, fuzzy -msgid "Change rotation in Circle modes" -msgstr "Weergavemodus aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Spiegel­modus aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Omgekeerde spiegeling omschakelen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Weergavemodusmarge aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -#, fuzzy -msgid "Change Drawing Area X Offset" -msgstr "Weergavemodusmarge aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -#, fuzzy -msgid "Change Drawing Area Y Offset" -msgstr "Weergavemodusmarge aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Teken­richting aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Verschuiving tussen items aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Rondheid van items aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Vulling omschakelen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Lijn­dikte aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Venster­randen omschakelen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Scherpe hoeken aan/uit" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Aantal balken aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Aantal kanalen aanpassen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Volgorde omdraaien aan/uit" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Anders" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Keuren­profiel wijzigen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Achtergrond­afbeelding wijzigen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Schaal van achtergrond­afbeelding wijzigen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Alfa van achtergrond­afbeelding wijzigen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Voorgrond­afbeelding wijzigen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Schaal van voorgrond­afbeelding wijzigen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Alfa van voorgrond­afbeelding wijzigen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "App" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Volledig scherm omschakelen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Sneltoetsen" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Over Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Afsluiten" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Formaat wijzigen…" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Hoofdmenu" - -#, fuzzy -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier is een audiovisualisatietoepassing, gemaakt met LibAdwaita en " -#~ "gebaseerd op CAVA." - -#, fuzzy -#~ msgid "11 drawing modes!" -#~ msgstr "4 weergavemodi!" - -#, fuzzy -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Stel een of maximaal tien kleurverlopen in voor voor- en achtergrond." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "" -#~ "Stel vloeiendheid, ruisonderdrukking en enkele andere CAVA-voorkeuren in." - -#~ msgid "Toggle Window Controls" -#~ msgstr "Titelbalkknoppen tonen/verbergen" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Kopbalk automatisch verbergen aan/uit" - -#, fuzzy -#~ msgid "Set any color or gradient for background and foreground." -#~ msgstr "" -#~ "Stel een of maximaal tien kleurverlopen in voor voor- en achtergrond." - -#, fuzzy -#~ msgid "Audio visualizer based on CAVA" -#~ msgstr "Audiovisualisatie, gebaseerd op CAVA." - -#~ msgid "Audio Visualizer" -#~ msgstr "Audiovisualisatie" - -#~ msgid "Second release of Cavalier." -#~ msgstr "De tweede versie van Cavalier." - -#~ msgid "New drawing mode — Particles!" -#~ msgstr "Nieuwe weergavemodus: deeltjes!" - -#~ msgid "" -#~ "Color profiles! Create as many as you want and change between them " -#~ "instantly. Unfortunately, this new feature required to change how the " -#~ "application saves colors, and because of this your previous colors " -#~ "settings will be lost after installing this update." -#~ msgstr "" -#~ "Kleurenprofielen! Maak zo veel profielen als u wilt en wissel met één " -#~ "muisklik van profiel. Helaas moest hiervoor code worden aangepast, dus uw " -#~ "huidige kleurvoorkeuren worden door deze update gewist." - -#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." -#~ msgstr "Nieuw: sneltoetsen om de meeste voorkeuren aan te passen." - -#~ msgid "Added option to show/hide window controls." -#~ msgstr "Nieuw: optie om de titelbalkknoppen te tonen/verbergen." - -#~ msgid "" -#~ "Added option to autohide headerbar when the main window is not focused." -#~ msgstr "" -#~ "Nieuw: optie om de kopbalk te verbergen als het hoofdvenster niet " -#~ "gefocust is." - -#~ msgid "" -#~ "Added option to change roundness of items in \"levels\" and \"particles\" " -#~ "modes." -#~ msgstr "" -#~ "Nieuw: optie om de rondheid van items aan te passen in de niveau- en " -#~ "deeltjesmodi." - -#~ msgid "Import/Export Settings" -#~ msgstr "Voorkeuren ex-/importeren" - -#~ msgid "Window size" -#~ msgstr "Vensterafmetingen" - -#~ msgid "Window maximized state" -#~ msgstr "Venstermaximalisatie" - -#~ msgid "Whether main window is maximized or not" -#~ msgstr "Of het venster gemaximaliseerd moet worden." - -#~ msgid "Defines what the visualizer looks like." -#~ msgstr "Geef aan hoe de visualisatie er uit moet zien." - -#~ msgid "This setting only affects \"levels\" and \"particles\" modes." -#~ msgstr "" -#~ "Deze voorkeur is alleen van toepassing op de niveau- en deeltjesmodi." - -#~ msgid "Number of bars in CAVA config" -#~ msgstr "Het aantal CAVA-balken" - -#~ msgid "Mono or stereo" -#~ msgstr "Mono of stereo" - -#~ msgid "Smoothing" -#~ msgstr "Vloeiendheid" - -#~ msgid "Widgets style" -#~ msgstr "Itemstijl" - -#~ msgid "Style used by Adwaita widgets." -#~ msgstr "De door Adwaita gebruikte itemstijl." - -#~ msgid "Index of active color profile" -#~ msgstr "Index van actief profiel" - -#~ msgid "Drawing Mode" -#~ msgstr "Weergavemodus" - -#~ msgid "" -#~ "This setting only affects \"levels\" and \"particles\" modes.\n" -#~ "0 - square, 1 - round" -#~ msgstr "" -#~ "Deze voorkeur is alleen van toepassing op de niveau- en deeltjesmodi.\n" -#~ "0 = vierkant; 1 = rond" - -#~ msgid "Import" -#~ msgstr "Importeren" - -#~ msgid "Export" -#~ msgstr "Exporteren" - -#~ msgid "Noise Reduction" -#~ msgstr "Ruisonderdrukking" - -#~ msgid "0 - noisy, 1 - smooth" -#~ msgstr "0 - ruis - 1 - vloeiend" - -#~ msgid "Type a name for a new profile" -#~ msgstr "Geef het nieuwe profiel een naam" - -#~ msgid "Remove profile" -#~ msgstr "Profiel verwijderen" - -#~ msgid "Remove" -#~ msgstr "Verwijderen" - -#~ msgid "Foreground" -#~ msgstr "Voorgrond" - -#~ msgid "Background" -#~ msgstr "Achtergrond" - -#~ msgid "Select color" -#~ msgstr "Kies een kleur" - -#~ msgid "Remove color" -#~ msgstr "Kleur verwijderen" - -#~ msgid "Add color" -#~ msgstr "Kleur toevoegen" - -#~ msgid "This name is already in use." -#~ msgstr "Deze naam is al in gebruik." - -#~ msgid "Import Settings" -#~ msgstr "Voorkeuren importeren" - -#~ msgid "Cavalier Settings File (*.cavalier)" -#~ msgstr "Cavalier-voorkeurenbestand (*.cavalier)" - -#~ msgid "All Files" -#~ msgstr "Alle bestanden" - -#~ msgid "Export Settings" -#~ msgstr "Voorkeuren exporteren" - -#~ msgid "Save" -#~ msgstr "Opslaan" - -#~ msgid "About" -#~ msgstr "Over" - -#~ msgid "Toggle Widgets Style" -#~ msgstr "Itemstijl aanpassen" - -#~ msgid "" -#~ "3 drawing modes: weird Wave, retro-ish Levels and classic CAVA look - " -#~ "Bars!" -#~ msgstr "" -#~ "Er zijn drie weergavemodi beschikbaar: dansende golf, retro-achtige " -#~ "volumeniveaubalken en klassieke CAVA-balken." - -#~ msgid "The array of foregound colors (RGBA)." -#~ msgstr "Het voorgrondkleurbereik (rgba)." - -#~ msgid "The array of background colors (RGBA)." -#~ msgstr "Het achtergrondkleurbereik (rgba)." diff --git a/NickvisionCavalier.Shared/Resources/po/pl.po b/NickvisionCavalier.Shared/Resources/po/pl.po deleted file mode 100644 index f5545dc..0000000 --- a/NickvisionCavalier.Shared/Resources/po/pl.po +++ /dev/null @@ -1,590 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: pl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "" diff --git a/NickvisionCavalier.Shared/Resources/po/pt_BR.po b/NickvisionCavalier.Shared/Resources/po/pt_BR.po deleted file mode 100644 index aedb7cd..0000000 --- a/NickvisionCavalier.Shared/Resources/po/pt_BR.po +++ /dev/null @@ -1,685 +0,0 @@ -# Brazilian Portuguese translation for Cavalier -# Copyright (C) 2022 Fyodor Sobolev -# This file is distributed under the same license as the cavalier package. -# Wagner Costa Gottschald , 2023. -# -msgid "" -msgstr "" -"Project-Id-Version: cavalier\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-04-20 23:07+0000\n" -"Last-Translator: araujoviana \n" -"Language-Team: Portuguese (Brazil) \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.5-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Adicionar" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Adicionar um novo perfil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Tem certeza que deseja remover esse perfil \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Cancelar" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Contribuidores no GitHub❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Padrão" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Remover" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, fuzzy -msgid "Delete Profile" -msgstr "Remover perfil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Completo" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Repositório GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Corações" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Imagens JPEG e PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Chat Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Novo perfil de cor será uma cópia do perfil ativo atualmente." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Desligado" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -#, fuzzy -msgid "On" -msgstr "Abrir" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -#, fuzzy -msgid "Profile Name" -msgstr "Perfil:" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Selecione uma imagem" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Separar Canais" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "créditos-tradutor" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Visualizador de Áudio baseado no CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Comando de Ajuda" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Vamos dançar!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier escuta o som do seu sistema. Toque uma música ou assista a um vídeo " -"e veja o seu som ganhar vida!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Preferências" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Modo de Desenho" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Caixa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Círculo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Onda" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Níveis" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Partículas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Barras" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Espinha" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Separador" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Raio" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Rotação" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Espelhamento" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Espelhamento reverso" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -#, fuzzy -msgid "Drawing direction" -msgstr "Ondas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Cima para baixo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Baixo para cima" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Esquerda para direita" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Direita para esquerda" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Margem da área de desenho" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Tamanho dos espaços ao redor da área de desenho (em pixels)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Offset X da área de desenho" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Offset Y da área de desenho" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Offset entre itens" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "O tamanho do espaço entre elementos (em porcentagem)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Arredondamento dos itens" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Quão arredondados os elementos devem ser (em porcentagem)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Preenchimento" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Se as formas devem ser preenchidas ou delineadas." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Espessura das linhas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Espessura das linhas quando o preenchimento está desligado (em pixels)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Janela sem borda" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Se deve desabilitar sombra e bordas da janela." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Bordas afiadas" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Se os cantos da janela principal devem ser afiados." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Controles da janela" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Se deve mostrar os botões de controle da janela." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Autoesconder barra de cabeçalho" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Se deve ocultar a barra de cabeçalho quando a janela principal não está " -"focada." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Taxa de frames" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Número de frames por segundo." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Customizado" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Taxa de frames customizável" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Número de barras" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Sensibilidade automática" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Tentativa de diminuir a sensibilidade se as barras atingirem o pico." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Sensibilidade" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Sensibilidade manual. Se a sensibilidade automática estiver habilitada, isso " -"será apenas o valor inicial." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Canais" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Suavização Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Se deve habilitar a chamada «suavização Monstercat»." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Redução de ruído" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Este fator ajusta os filtros integral e de gravidade para manter o sinal " -"suave.\n" -"Um valor mais alto resulta em um resultado mais lento e mais suave." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Ordem reversa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Se deve inverter a ordem das barras para cada canal." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Cores" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -#, fuzzy -msgid "Add Profile" -msgstr "Adicione um novo perfil" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Tema do aplicativo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Claro" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Escuro" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Cores do primeiro plano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -#, fuzzy -msgid "Add foreground color" -msgstr "Adicionar cor" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Cores do plano de fundo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -#, fuzzy -msgid "Add background color" -msgstr "Adicionar cor" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Imagens" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Plano de Fundo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Primeiro plano" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Adicionar Imagem" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Escala" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Opacidade" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "A imagem do primeiro plano só é mostrada com modos de desenho de caixa." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Sem Imagens" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Adicione uma imagem para usar no Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Sem Imagem" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Alterar Modo de Desenho" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Alterar raio nos modos de Círculo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Alterar rotação nos modos de Círculo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -#, fuzzy -msgid "Change Mirror Mode" -msgstr "Mudar Cores do perfil" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Alterar Espelho Invertido" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Margem da onda" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Alterar Deslocamento X da Área de Desenho" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Alterar Deslocamento Y da Área de Desenho" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Alterar Direção do Desenho" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Alterar offset entre itens" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Alterar Arredondamento dos Itens" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Alterar Preenchimento" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Alterar Espessura das Linhas" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Alternar Bordas da Janela" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Alternar Bordas Afiadas" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Alterar número de Barras" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Alternar Canais" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Alternar Ordem Reversa" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Outro" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -#, fuzzy -msgid "Change Color Profile" -msgstr "Mudar Cores do perfil" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Alterar Imagem de Fundo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Alterar Escala da Imagem de Fundo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Alterar Opacidade da Imagem de Fundo" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Alterar Imagem do Primeiro Plano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Alterar Escala da Imagem do Primeiro Plano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Alterar Opacidade da Imagem do Primeiro Plano" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Aplicação" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Alternar Tela Cheia" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Atalhos de teclado" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -#, fuzzy -msgid "About Cavalier" -msgstr "Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Sair" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Redimensionando..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Menu Principal" - -#, fuzzy -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier é um Visualizador de áudio baseado no CAVA com LibAdwaita " -#~ "customizável." - -#, fuzzy -#~ msgid "11 drawing modes!" -#~ msgstr "4 desenhos de ondas!" - -#, fuzzy -#~ msgid "Toggle Window Controls" -#~ msgstr "Controle de janela" - -#, fuzzy -#~ msgid "Audio visualizer based on CAVA" -#~ msgstr "Visualizador de Áudio baseado no CAVA." - -#~ msgid "Audio Visualizer" -#~ msgstr "Visualizador de Áudio" - -#~ msgid "Window size" -#~ msgstr "Tamanho da janela" - -#~ msgid "Window maximized state" -#~ msgstr "Janela no estado maximizado" - -#~ msgid "Mono or stereo" -#~ msgstr "Mono ou stereo" - -#~ msgid "Smoothing" -#~ msgstr "Suavidade na animação" - -#~ msgid "Import" -#~ msgstr "Importar" - -#~ msgid "Export" -#~ msgstr "Exportar" - -#~ msgid "Type a name for a new profile" -#~ msgstr "Tipos de nome para novos perfis" - -#~ msgid "Remove" -#~ msgstr "Remover" - -#~ msgid "Select color" -#~ msgstr "Selecione a cor" - -#~ msgid "Remove color" -#~ msgstr "Remover cor" - -#~ msgid "This name is already in use." -#~ msgstr "Este nome já esta em uso" - -#~ msgid "Import Settings" -#~ msgstr "Importar configurações" - -#~ msgid "Cavalier Settings File (*.cavalier)" -#~ msgstr "Arquivo de configurações (*cavalier)" - -#~ msgid "All Files" -#~ msgstr "Todos os arquivos" - -#~ msgid "Export Settings" -#~ msgstr "Exportar configurações" - -#~ msgid "Save" -#~ msgstr "Salvar" - -#~ msgid "About" -#~ msgstr "Sobre" diff --git a/NickvisionCavalier.Shared/Resources/po/ro.po b/NickvisionCavalier.Shared/Resources/po/ro.po deleted file mode 100644 index c212ec0..0000000 --- a/NickvisionCavalier.Shared/Resources/po/ro.po +++ /dev/null @@ -1,603 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2025-01-11 09:00+0000\n" -"Last-Translator: EnderIce2 \n" -"Language-Team: Romanian \n" -"Language: ro\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " -"20)) ? 1 : 2;\n" -"X-Generator: Weblate 5.10-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Adaugă" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Adaugă Profil Nou" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Sigur doriți să ștergeți profilul „{0}”?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Anulează" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Contribuitori pe GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Implicit" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Şterge" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Șterge Profilul" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Plin" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Depozit GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Inimi" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Imagini JPEG și PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Chat Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Noul profil de culoare va fi o copie a profilului activ curent." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Dezactivat" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Activat" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Nume Profil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Selectează o imagine" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Împarte Canalele" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "translator-credits" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Vizualizează sunetul cu CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Ajutor Pentru Comenzi" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Hai să dansăm!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier ascultă sunetul sistemului tău. Redă niște muzică sau urmărește un " -"videoclip și vezi cum prinde viață sunetul!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Preferințe" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Mod de desenare" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Cutie" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Cerc" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Val" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Nivele" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Particule" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Bare" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Coloană" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Separator" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Rază" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Rotire" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Oglindă" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Oglindă inversată" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Direcția de desenare" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "De sus în jos" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "De jos în sus" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "De la stânga la dreapta" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "De la dreapta la stânga" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Marginea zonei de desenare" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Dimensiunea spațiilor din jurul zonei de desenare (în pixeli)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Decalajul X al zonei de desenare" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Decalajul Y al zonei de desenare" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Decalajul dintre elemente" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Dimensiunea spațiilor dintre elemente (în procente)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Rotunjimea elementelor" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Cât de rotunjite ar trebui să fie elementele (în procente)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Umplere" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Dacă formele ar trebui să fie umplute sau conturate." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Grosimea liniilor" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Grosimea liniilor când umplerea este dezactivată (în pixeli)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Fereastră fără margini" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Dacă se dezactivează umbra și marginile ferestrei." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Colțuri ascuțite" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Dacă muchiile ferestrei principale ar trebui să fie ascuțite." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Controalele ferestrei" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Dacă să fie afișate butoanele de control ale ferestrei." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Ascundere automată a barei de titlu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" -"Dacă să fie ascunsă bara de titlu când fereastra principală nu este " -"focalizată." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Rată de cadre" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Numărul de cadre pe secundă." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Personalizat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Rată de cadre personalizată" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Numărul de bare" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Sensibilitate automată" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Încercare de a reduce sensibilitatea dacă barele ating vârful." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Sensibilitate" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Sensibilitate manuală. Dacă sensibilitatea automată este activată, aceasta " -"va fi doar valoarea inițială." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Canale" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Mono" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Netezire Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Dacă să fie activată așa-numita „netezire Monstercat”." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Reducerea zgomotului" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Acest factor ajustează filtrele integrale și de gravitație pentru a menține " -"semnalul uniform.\n" -"O valoare mai mare duce la un rezultat mai lent și mai uniform." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Ordine inversă" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Dacă să fie inversată ordinea barelor pentru fiecare canal." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Culori" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Adaugă Profil" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Tema Aplicației" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Luminos" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Întunecat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Culori Prim-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Adaugă culoare pentru prim-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Culori Fundal" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Adaugă culoare pentru fundal" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Imagini" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Fundal" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Prim-plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Adaugă Imagine" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Scară" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Alfa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "Imaginea de prim-plan este afișată doar în modurile de desenare Cutie." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Fără Imagini" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Adaugă o imagine pentru a o folosi în Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Fără Imagine" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Schimbă Modul de Desenare" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Schimbă raza în modurile Cerc" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Schimbă rotația în modurile Cerc" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Schimbă Modul Oglindă" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Comută Oglindă Inversată" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Schimbă Marginea Zonei de Desenare" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Schimbă Decalajul X al Zonei de Desenare" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Schimbă Decalajul Y al Zonei de Desenare" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Schimbă Direcția de Desenare" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Schimbă Decalajul Dintre Elemente" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Schimbă Rotunjimea Elementelor" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Comută Umplerea" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Schimbă Grosimea Liniilor" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Comută Marginile Ferestrei" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Comută Colțurile Ascuțite" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Schimbă Numărul de Bare" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Comută Canalele" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Comută Ordinea Inversă" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Altele" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Schimbă Profilul de Culoare" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Schimbă Imaginea de Fundal" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Schimbă Scala Imaginii de Fundal" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Schimbă Transparența Imaginii de Fundal" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Schimbă Imaginea de Prim-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Schimbă Scala Imaginii de Prim-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Schimbă Transparența Imaginii de Prim-plan" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Aplicație" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Comută Ecran Complet" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Scurtături Tastatură" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Despre Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Ieși" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Redimensionare..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Meniu Principal" diff --git a/NickvisionCavalier.Shared/Resources/po/ru.po b/NickvisionCavalier.Shared/Resources/po/ru.po deleted file mode 100644 index 42a3eb7..0000000 --- a/NickvisionCavalier.Shared/Resources/po/ru.po +++ /dev/null @@ -1,786 +0,0 @@ -# Russian translation for Cavalier -# Copyright (C) 2022 Fyodor Sobolev -# This file is distributed under the same license as the PACKAGE package. -# Fyodor Sobolev, 2022 -# -msgid "" -msgstr "" -"Project-Id-Version: cavalier\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2023-09-22 03:17+0000\n" -"Last-Translator: Fyodor Sobolev \n" -"Language-Team: Russian \n" -"Language: ru\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.1-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Добавить" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Добавить новый профиль" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Вы уверены, что хотите удалить профиль \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Отмена" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Соавторы на GitHub ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "Давид Лапшин" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "По умолчанию" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Удалить" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Удалить профиль" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Полное" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Фёдор Соболев" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Репозиторий GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Сердечки" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "Изображения JPEG и PNG" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Чат Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Новый цветовой профиль будет копией текущего активного профиля." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Выключено" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Включено" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Имя профиля" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Выбрать изображение" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Разделить каналы" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Фёдор Соболев https://github.com/fsobolev" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Визуализируйте аудио с помощью CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Помощь по командам" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Давайте танцевать!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier слушает звук вашей системы. Включите какую-нибудь музыку или видео " -"и наблюдайте, как звук оживает!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Настройки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Режим отрисовки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Ящик" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Круг" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Волна" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Уровни" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Частицы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Шкалы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Хребет" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Разделитель" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Радиус" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Наклон" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Зеркало" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Развернуть зеркало" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Направление отрисовки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Сверху вниз" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Снизу вверх" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Слева направо" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Справа налево" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Отступ области отрисовки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Размер отступа вокруг области отрисовки (в пикселях)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Отклонение области отрисовки по оси X" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Отклонение области отрисовки по оси Y" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Расстояние между элементами" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Размер пространства между элементами (в процентах)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Округлость элементов" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Насколько элементы должны быть скруглены (в процентах)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Заполнение" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Должны ли формы быть заполнены или обведены." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Толщина линий" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Толщина линий при выключенном заполнении (в пикселях)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Отключить границы окна" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Следует ли скрыть тени и границы окна." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Острые углы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Должны ли углы главного окна быть острыми." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Кнопки управления окном" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Должны ли отображаться кнопки управления окном." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Автоскрытие заголовка" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "Должен ли отображаться заголовок главного окна, когда оно не в фокусе." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Частота кадров" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Число кадров в секунду." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Другое" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Своя частота кадров" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Количество шкал" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Автоматическая чувствительность" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" -"Пытаться снижать чувствительность, если показатели достигают максимума." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Чувствительность" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Ручная настройка чувствительности. Если автоматическая чувствительность " -"включена, этот параметр задаёт только начальное значение." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Каналы" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Моно" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Стерео" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Сглаживание Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Следуюет ли включить так называемое «сглаживание Monstercat»." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Шумоподавление" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Этот параметр регулирует интегральные и гравитационные фильтры, делающие " -"сигнал гладким.\n" -"Высокое значение приведёт к более медленному и гладкому результату." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Обратный порядок" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Следует ли изменить порядок шкал для каждого канала." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Цвета" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Добавить профиль" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Тема приложения" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Светлая" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Тёмная" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Цвета переднего плана" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Добавить цвет переднего плана" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Цвета фона" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Добавить цвет фона" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Изображения" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Фон" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Передний план" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Добавить изображение" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Масштаб" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Альфа" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "Изображение переднего плана отображается только в режимах типа Ящик." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Нет изображений" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Добавьте изображение для использования в Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Без изображения" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Изменить режим отрисовки" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Изменить радиус в режимах типа Круг" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Изменить наклон в режимах типа Круг" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Изменить режим зеркала" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Развернуть зеркало" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Изменить отступ области отрисовки" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Изменить отклонение области отрисовки по оси X" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Изменить отклонение области отрисовки по оси Y" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Изменить направление отрисовки" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Изменить расстояние между элементами" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Изменить округлость элементов" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Переключить заполнение" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Изменить толщину линий" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Переключить границы окна" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Переключить острые углы" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Изменить количество шкал" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Переключить каналы" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Переключить обратный порядок" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Прочее" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Изменить профиль цветов" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Изменить фоновое изображение" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Изменить масштаб фонового изображения" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Изменить значение альфа фонового изображения" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Изменить изображение переднего плана" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Изменить масштаб изображения переднего плана" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Изменить значение альфа изображения переднего плана" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Приложение" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Переключить полный экран" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Комбинации клавиш" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "О приложении" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Выход" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Изменение размера..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Главное меню" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier - аудио визуализатор, использующий CAVA, с настраиваемым " -#~ "интерфейсом." - -#~ msgid "11 drawing modes!" -#~ msgstr "11 режимов отрисовки!" - -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Установите любой цвет, градиент или изображение для фона или переднего " -#~ "плана." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "" -#~ "Настраивайте сглаживание, шумоподавление и парочку других параметров CAVA." - -#, csharp-format -#~ msgid "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Contributors on GitHub ❤️ {2}" -#~ msgstr "" -#~ "Фёдор Соболев {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Соавторы на GitHub ❤️ {2}" - -#~ msgid "Toggle Window Controls" -#~ msgstr "Переключить кнопки управления окном" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Переключить автоскрытие заголовка" - -#~ msgid "Set any color or gradient for background and foreground." -#~ msgstr "Установите любой цвет или градиент для фона или переднего плана." - -#~ msgid "Audio visualizer based on CAVA" -#~ msgstr "Аудио визуализатор, основанный на CAVA" - -#~ msgid "Audio Visualizer" -#~ msgstr "Аудио визуализатор" - -#~ msgid "Second release of Cavalier." -#~ msgstr "Второй выпуск Cavalier." - -#~ msgid "New drawing mode — Particles!" -#~ msgstr "Новый режим отрисовки — Частицы!" - -#~ msgid "" -#~ "Color profiles! Create as many as you want and change between them " -#~ "instantly. Unfortunately, this new feature required to change how the " -#~ "application saves colors, and because of this your previous colors " -#~ "settings will be lost after installing this update." -#~ msgstr "" -#~ "Профили цветов! Создайте столько профилей, сколько захотите, и " -#~ "переключайтесь между ними мгновенно! К сожалению, эта функция потребовала " -#~ "изменить, как приложение сохраняет цвета, поэтому после установки этого " -#~ "обновления ваши предыдущие настройки цветов будут утеряны." - -#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." -#~ msgstr "" -#~ "Добавлены сочетания клавиш для изменения большинства настроек на лету." - -#~ msgid "Added option to show/hide window controls." -#~ msgstr "Добавлена опция для скрытия/отображения кнопок управления окном." - -#~ msgid "" -#~ "Added option to autohide headerbar when the main window is not focused." -#~ msgstr "" -#~ "Добавлена опция автоматического скрытия заголовка, когда окно не в фокусе." - -#~ msgid "" -#~ "Added option to change roundness of items in \"levels\" and \"particles\" " -#~ "modes." -#~ msgstr "" -#~ "Добавлена опция изменения округлости элементов в режимах Уровни и Частицы." - -#~ msgid "Import/Export Settings" -#~ msgstr "Импорт/Экспорт настроек" - -#~ msgid "Window size" -#~ msgstr "Размер окна" - -#~ msgid "Window maximized state" -#~ msgstr "Развёрнутое состояние окна" - -#~ msgid "Whether main window is maximized or not" -#~ msgstr "Является ли окно развёрнутым или нет" - -#~ msgid "Defines what the visualizer looks like." -#~ msgstr "Определяет, как выглядит визуализатор." - -#~ msgid "This setting only affects \"levels\" and \"particles\" modes." -#~ msgstr "Эта настройка влияет только на режимы Уровни и Частицы." - -#~ msgid "Number of bars in CAVA config" -#~ msgstr "Количество шкал в конфигурации CAVA" - -#~ msgid "Mono or stereo" -#~ msgstr "Моно или стерео" - -#~ msgid "Smoothing" -#~ msgstr "Сглаживание" - -#~ msgid "Widgets style" -#~ msgstr "Стиль виджетов" - -#~ msgid "Style used by Adwaita widgets." -#~ msgstr "Стиль, используемый виджетами Adwaita." - -#~ msgid "Index of active color profile" -#~ msgstr "Номер активного профиля цветов" - -#~ msgid "Drawing Mode" -#~ msgstr "Режим отрисовки" - -#~ msgid "" -#~ "This setting only affects \"levels\" and \"particles\" modes.\n" -#~ "0 - square, 1 - round" -#~ msgstr "" -#~ "Эта настройка влияет только на режимы Уровни и Частицы.\n" -#~ "0 - квадратные, 1 - круглые" - -#~ msgid "Import" -#~ msgstr "Импорт" - -#~ msgid "Export" -#~ msgstr "Экспорт" - -#~ msgid "Noise Reduction" -#~ msgstr "Шумоподавление" - -#~ msgid "0 - noisy, 1 - smooth" -#~ msgstr "0 - шумно, 1 - гладко" - -#~ msgid "Type a name for a new profile" -#~ msgstr "Введите имя нового профиля" - -#~ msgid "Remove profile" -#~ msgstr "Удалить профиль" - -#~ msgid "Remove" -#~ msgstr "Удалить" - -#~ msgid "Foreground" -#~ msgstr "Передний план" - -#~ msgid "Background" -#~ msgstr "Фон" - -#~ msgid "Select color" -#~ msgstr "Выбрать цвет" - -#~ msgid "Remove color" -#~ msgstr "Удалить цвет" - -#~ msgid "Add color" -#~ msgstr "Добавить цвет" - -#~ msgid "This name is already in use." -#~ msgstr "Это имя уже используется." - -#~ msgid "Import Settings" -#~ msgstr "Импорт Настроек" - -#~ msgid "Cavalier Settings File (*.cavalier)" -#~ msgstr "Файл настроек Cavalier (*.cavalier)" - -#~ msgid "All Files" -#~ msgstr "Все файлы" - -#~ msgid "Export Settings" -#~ msgstr "Экспорт Настроек" - -#~ msgid "Save" -#~ msgstr "Сохранить" - -#~ msgid "About" -#~ msgstr "О приложении" - -#~ msgid "Toggle Widgets Style" -#~ msgstr "Переключить стиль виджетов" diff --git a/NickvisionCavalier.Shared/Resources/po/sv.po b/NickvisionCavalier.Shared/Resources/po/sv.po deleted file mode 100644 index 66e33b2..0000000 --- a/NickvisionCavalier.Shared/Resources/po/sv.po +++ /dev/null @@ -1,590 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: sv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "" diff --git a/NickvisionCavalier.Shared/Resources/po/ta.po b/NickvisionCavalier.Shared/Resources/po/ta.po deleted file mode 100644 index 4bda317..0000000 --- a/NickvisionCavalier.Shared/Resources/po/ta.po +++ /dev/null @@ -1,601 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2025-01-20 14:21+0000\n" -"Last-Translator: தமிழ்நேரம் \n" -"Language-Team: Tamil \n" -"Language: ta\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "கூட்டு" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "புதிய சுயவிவரத்தைச் சேர்க்கவும்" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "சுயவிவரத்தை \"{0}\" நீக்க விரும்புகிறீர்களா?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "ரத்துசெய்" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "காவலியர்" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "கிட்அப்பில் பங்களிப்பாளர்கள்" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "டேவிட் லாப்சின்" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "இயல்புநிலை" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "நீக்கு" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "சுயவிவரத்தை நீக்கு" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "முழு" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "ஃபெடோர் சோபோலெவ்" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "அறிவிலிமையம் ரெப்போ" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "இதயங்கள்" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG மற்றும் PNG படங்கள்" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "அணி அரட்டை" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "" -"புதிய வண்ண சுயவிவரம் தற்போதைய செயலில் உள்ள சுயவிவரத்தின் நகலாக இருக்கும்." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "நிக்கோலச் லோகோச்சோ" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "அணை" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "ஆன்" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "சுயவிவர பெயர்" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "ஒரு படத்தைத் தேர்ந்தெடுக்கவும்" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "பிளவு சேனல்கள்" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "மொழிபெயர்ப்பாளர்-வரவு" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "காவாவுடன் ஆடியோவை காட்சிப்படுத்துங்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "கட்டளை உதவி" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "நடனமாடுவோம்!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"காவலியர் உங்கள் கணினி ஒலியைக் கேட்கிறார். கொஞ்சம் இசையை வாசிக்கவும் அல்லது வீடியோவைப் " -"பார்க்கவும், உங்கள் ஒலி உயிர்ப்பிக்கவும்!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "விருப்பத்தேர்வுகள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "வரைதல் முறை" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "பெட்டி" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "வட்டம்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "அலை" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "நிலைகள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "துகள்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "பார்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "வளைமுள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "ச்ப்ளிட்டர்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "ஆரம்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "சுழற்சி" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "கண்ணாடி" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "தலைகீழ் கண்ணாடி" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "வரைதல் திசை" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "மேலிருந்து கீழே" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "கீழே முதல்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "இடமிருந்து வலமாக" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "வலமிருந்து இடமாக" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "வரைதல் பகுதி விளிம்பு" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "வரைதல் பகுதியைச் சுற்றியுள்ள இடைவெளிகளின் அளவு (பிக்சல்களில்)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "வரைதல் பகுதி ஃச் ஆஃப்செட்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "வரைதல் பகுதி ஒய் ஆஃப்செட்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "உருப்படிகளுக்கு இடையில் ஈடுசெய்யவும்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "உறுப்புகளுக்கு இடையிலான இடைவெளிகளின் அளவு (சதவீதத்தில்)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "பொருட்களின் சுற்று" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "உறுப்புகள் எவ்வளவு வட்டமானதாக இருக்க வேண்டும் (சதவீதத்தில்)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "நிரப்புதல்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "வடிவங்கள் நிரப்பப்பட வேண்டுமா அல்லது கோடிட்டுக் காட்டப்பட வேண்டுமா." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "கோடுகளின் தடிமன்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "நிரப்பும்போது (பிக்சல்களில்) வரிகளின் தடிமன்." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "எல்லையற்ற சாளரம்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "சாளர நிழல் மற்றும் எல்லைகளை முடக்க வேண்டுமா." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "கூர்மையான மூலைகள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "முதன்மையான சாளர மூலைகள் கூர்மையாக இருக்க வேண்டுமா." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "சாளர கட்டுப்பாடுகள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "சாளர கட்டுப்பாட்டு பொத்தான்களைக் காட்ட வேண்டுமா." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "ஆட்டோஐட் எடர்பார்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "முதன்மையான சாளரம் கவனம் செலுத்தாதபோது எடர்பாரை மறைக்க வேண்டுமா." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "பிரேம்ரேட்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "நொடிக்கு பிரேம்களின் எண்ணிக்கை." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "தனிப்பயன்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "தனிப்பயன் பிரேம்ரேட்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "பார்களின் எண்ணிக்கை" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "தானியங்கி உணர்திறன்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "பார்கள் உச்சம் இருந்தால் உணர்திறனைக் குறைக்க முயற்சிக்கவும்." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "உணர்திறன்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"கையேடு உணர்திறன். தானியங்கி உணர்திறன் இயக்கப்பட்டிருந்தால், இது ஆரம்ப மதிப்பாக மட்டுமே " -"இருக்கும்." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "சேனல்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "மோனோ" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "ச்டீரியோ" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "மான்ச்டர்காட் மென்மையானது" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "«மான்ச்டர்காட் மென்மையானது» என்று அழைக்கப்படுவதை இயக்க வேண்டுமா." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "ஒலி குறைப்பு" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"இந்த காரணி சமிக்ஞையை மென்மையாக வைத்திருக்க ஒருங்கிணைந்த மற்றும் ஈர்ப்பு வடிப்பான்களை " -"சரிசெய்கிறது.\n" -" அதிக மதிப்பு மெதுவான மற்றும் மென்மையான முடிவுக்கு வழிவகுக்கிறது." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "தலைகீழ் ஒழுங்கு" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "ஒவ்வொரு சேனலுக்கும் பார்களின் வரிசையை மாற்றியமைக்க வேண்டுமா." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "நிறங்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "சுயவிவரத்தைச் சேர்க்கவும்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "பயன்பாட்டு கருப்பொருள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "ஒளி" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "இருண்ட" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "முன்புற வண்ணங்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "முன்புற வண்ணத்தைச் சேர்க்கவும்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "பின்னணி வண்ணங்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "பின்னணி நிறத்தைச் சேர்க்கவும்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "படங்கள்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "பின்னணி" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "முன்புறம்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "படத்தைச் சேர்க்கவும்" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "அளவு" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "அகர" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "முன்புற படம் பெட்டி வரைதல் முறைகளுடன் மட்டுமே காட்டப்பட்டுள்ளது." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "படங்கள் இல்லை" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "கேவலியரில் பயன்படுத்த ஒரு படத்தைச் சேர்க்கவும்." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "படம் இல்லை" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "வரைதல் பயன்முறையை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "வட்ட முறைகளில் ஆரம் மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "வட்ட முறைகளில் சுழற்சியை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "கண்ணாடி பயன்முறையை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "தலைகீழ் கண்ணாடியை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "வரைதல் பகுதி விளிம்பை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "வரைதல் பகுதி ஃச் ஆஃப்செட் மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "வரைதல் பகுதி ஒய் ஆஃப்செட் மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "வரைதல் திசையை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "உருப்படிகளுக்கு இடையில் ஆஃப்செட்டை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "உருப்படிகளை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "நிரப்புதல்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "கோடுகள் தடிமன் மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "சாளர எல்லைகளை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "கூர்மையான மூலைகளை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "பார்களின் எண்ணிக்கையை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "சேனல்களை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "தலைகீழ் வரிசையை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "மற்றொன்று" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "வண்ண சுயவிவரத்தை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "பின்னணி படத்தை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "பின்னணி பட அளவை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "பின்னணி பட ஆல்பாவை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "முன்புற படத்தை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "முன்புற பட அளவை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "முன்புற பட ஆல்பாவை மாற்றவும்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "பயன்பாடு" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "மாற்று முழுத்திரை" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "விசைப்பலகை குறுக்குவழிகள்" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "காவலியர் பற்றி" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "வெளியேறு" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "மறுஅளவிடுதல் ..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "பட்டியல் விளையாடுங்கள்" diff --git a/NickvisionCavalier.Shared/Resources/po/tr.po b/NickvisionCavalier.Shared/Resources/po/tr.po deleted file mode 100644 index 0a34614..0000000 --- a/NickvisionCavalier.Shared/Resources/po/tr.po +++ /dev/null @@ -1,634 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-03-14 14:01+0000\n" -"Last-Translator: Sabri Ünal \n" -"Language-Team: Turkish \n" -"Language: tr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.5-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Ekle" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Yeni Profil Ekle" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "“{0}” profilini silmek istediğinizden emin misiniz?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "İptal" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "GitHub Katkıcıları ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "Öntanımlı" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Sil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Profil Sil" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Tam" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "GitHub Deposu" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Kalpler" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG ve PNG resimler" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Matrix Sohbet" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Yeni renk profili, geçerli etkin profilin bir kopyası olacaktır." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Kapalı" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Açık" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Profil Adı" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Resim seç" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Kanalları Ayır" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Sabri Ünal " - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "CAVA ile sesleri görselleştirin" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Komut Yardımı" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Dans edelim!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier sistem sesinizi dinler. Biraz müzik çalın veya bir video izleyin ve " -"sesinizin canlandığını görün!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Tercihler" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Çizim kipi" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Kutu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Daire" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Dalga" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Düzeyler" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Parçacıklar" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Çubuklar" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Omurga" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Ayırıcı" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Yarıçap" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Döndürme" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Aynala" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Ters ayna" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Çizim yönü" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Yukarıdan aşağıya" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Aşağıdan yukarıya" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Soldan sağa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Sağdan sola" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Çizim alanı kenar boşluğu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Çizim alanı etrafındaki boşlukların boyutu (piksel olarak)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Çizim alanı X konumu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Çizim alanı Y konumu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Öğeler arasındaki boşluk" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Ögeler arasındaki boşluk (yüzde olarak)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Ögelerin yuvarlaklığı" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Ögelerin ne kadar yuvarlak olacağı (yüzde olarak)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Dolgu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Şekillerin dolgusu veya ana hatları çizilmesi durumu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Çizgi kalınlığı" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Dolgu kapalıyken çizgilerin kalınlığı (piksel olarak)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Kenarlıksız pencere" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Pencere gölgesinin ve kenarlıkların devre dışı bırakılma durumu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Keskin köşeler" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Ana pencere köşelerinin keskin olma durumu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Pencere denetimleri" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Pencere denetim düğmelerinin gösterilme durumu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Başlık çubuğunu kendiliğinden gizle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "Ana pencere odaklanmadığında başlık çubuğunun gizlenme durumu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Kare hızı" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Saniyedeki kare sayısı." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Özel" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Özel Kare Hızı" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Çubuk sayısı" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Kendiliğinden duyarlılık" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Çubuklar zirve yaparsa hassasiyeti düşürmeye çalış." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Duyarlılık" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Elle duyarlılık. Kendiliğinden duyarlılık etkinleştirilirse, bu yalnızca " -"başlangıç değeri olacaktır." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Kanallar" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Tekli" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Stereo" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Monstercat yumuşatma" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Sözde «Monstercat yumuşatmanın» etkinleştirilme durumu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Gürültü azaltma" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Bu faktör, sinyali düzgün tutmak için integral ve yerçekimi süzgeçlerini " -"ayarlar.\n" -"Daha yüksek değer, daha yavaş ve daha pürüzsüz sonuç sağlar." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Ters sırada" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Her kanal için çubukların sırasının ters çevrilme durumu." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Renkler" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Profil Ekle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Uygulama Teması" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Açık" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Kyu" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Ön Plan Rengi" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Ön plan rengi ekle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Arka Plan Rengi" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Arka plan rengi ekle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Resimler" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Arka plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Ön plan" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Resim Ekle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Ölçekle" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Alfa" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "Ön plan resmi yalnızca Kutu çizim kiplerinde gösterilir." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Resim Yok" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Cavalierʼde kullanmak için resim ekleyin." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Resim Yok" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Çizim Kipini Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Daire kiplerinde yarıçapı değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Daire kiplerinde dönüşü değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Ayna Kipini Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Ters Aynayı Aç/Kapat" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Çizim Alanı Kenar Boşluğunu Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Çizim Alanı X Konumunu Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Çizim Alanı Y Konumunu Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Çizim Yönünü Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Ögeler Arasındaki Boşluğu Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Ögelerin Yuvarlaklığını Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Dolguyu Aç/Kapat" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Çizgi Kalınlığını Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Pencere Kenarlıklarını Aç/Kapat" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Keskin Köşeleri Aç/Kapat" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Çubuk Sayısını Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Kanalları Aç/Kapat" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Ters Sıralamayı Aç/Kapat" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Diğer" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Renk Profilini Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Arka Plan Resmini Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Arka Plan Resim Ölçeğini Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Arka Plan Resim Alfasını Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Ön Plan Resmini Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Ön Plan Resim Ölçeğini Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Ön Plan Resim Alfasını Değiştir" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Uygulama" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Tam Ekranı Aç/Kapat" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Klavye Kısayolları" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Cavalier Hakkında" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Çık" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Yeniden boyutlandırılıyor..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Ana Menü" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "" -#~ "Cavalier, özelleştirilebilir arayüze sahip CAVA tabanlı bir ses " -#~ "görselleştiricisidir." - -#~ msgid "11 drawing modes!" -#~ msgstr "11 çizim kipi!" - -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "" -#~ "Arka plan ve ön plan için herhangi bir renk, renk geçişi veya resim " -#~ "ayarlayın." - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "" -#~ "Yumuşatma, gürültü azaltma ve diğer birkaç CAVA ayarını yapılandırın." - -#, csharp-format -#~ msgid "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "Contributors on GitHub ❤️ {2}" -#~ msgstr "" -#~ "Fyodor Sobolev {0}\n" -#~ "Nicholas Logozzo {1}\n" -#~ "GitHub Katkıcıları ❤️ {2}" - -#~ msgid "Toggle Window Controls" -#~ msgstr "Pencere Denetimlerini Aç/Kapat" - -#~ msgid "Toggle Autohide Headerbar" -#~ msgstr "Başlık Çubuğunu Kendiliğinden Gizlemeyi Aç/Kapat" diff --git a/NickvisionCavalier.Shared/Resources/po/uk.po b/NickvisionCavalier.Shared/Resources/po/uk.po deleted file mode 100644 index 347cf0d..0000000 --- a/NickvisionCavalier.Shared/Resources/po/uk.po +++ /dev/null @@ -1,601 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-08-14 17:09+0000\n" -"Last-Translator: Semiurg \n" -"Language-Team: Ukrainian \n" -"Language: uk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.7-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "Додати" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "Додати новий профіль" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "Ви впевнені що хочете видалити профіль \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "Відмінити" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "Співавтори на Github ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "Давид Лапшин" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "За замовчуванням" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "Видалити" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "Видалити профіль" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "Повне" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Федір Соболєв" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "Репозиторій GitHub" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "Сердечки" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG і PNG зображення" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Чат Matrix" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "Новий кольоровий профіль буде копією поточного активного профілю." - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Ніколас Логоццо" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "Вимкнуто" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "Ввімкнуто" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "Назва профілю" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "Вибрати зображення" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "Розділити канали" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "Maksym Khimka " - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "Візуалізувати аудіо за допомогою CAVA" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "Допомога з командами" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "Давайте танцювати!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "" -"Cavalier слухає аудіо вашої системи. Включіть музику або відео, та дивіться " -"як ваш звук приходить в рух!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "Налаштування" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "Режим відмальовки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "Коробка" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "Круг" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "Хвиля" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "Рівні" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "Частинки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "Бари" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "Хребет" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "Розділювач" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "Радіус" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "Нахил" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "Дзеркало" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "Розвернуте дзеркало" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "Напрямок відмальовки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "Зверху донизу" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "Знизу вверх" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "Зліва направо" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "Справа вліво" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "Відступ області відмальовки" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "Розмір відступів навколо області відмальовки (у пікселях)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "Відхилення області відмальовки по осі X" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Відхилення області відмальовки по осі Y" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "Відступ між елементами" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "Розмір простору між елементами (у відсотках)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "Закругленість елементів" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "Наскільки закругленими повинні бути елементи (у відсотках)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "Заповнення" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "Чи повинні форми бути заповнені чи обведені." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "Товщина ліній" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "Товщина ліній коли заповнення виключено (у пікселях)." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "Безрамкове вікно" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "Чи потрібно відключити тінь та рамки вікна." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "Гострі кути" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "Чи повинні кути головного вікна бути гострими." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "Керування вікном" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "Чи показувати кнопки контролю вікна." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "Автоматично ховати заголовок" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "Чи ховати заголовок коли головне вікно не у фокусі." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "Частота кадрів" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "Кількість кадрів в секунду." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "Власне" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "Своя частота кадрів" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "Кількість барів" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "Автоматична чутливість" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "Спробувати зменшити чутливість якщо бари досягають максимуму." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "Чутливість" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "" -"Ручна чутливість. Якщо ввімкнено автоматичну чутливість, це буде тільки " -"початкове значення." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "Канали" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "Моно" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "Стерео" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Згладжування Monstercat" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "Чи увімкнути так зване \"згладжування Monstercat\"." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "Зменшення шуму" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"Цей параметр регулює інтегральний та гравітаційний фільтри щоб тримати " -"сигнал гладким.\n" -"Високе значення веде до повільнішого та гладкого результату." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "Зворотній напрямок" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "Чи потрібно змінити порядок барів для кожного каналу." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "Кольори" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "Додати профіль" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "Тема програми" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "Світла" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "Темна" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "Кольори переднього плану" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "Додати колір переднього плану" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "Колір фону" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "Додати колір фону" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "Зображення" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "Фон" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "Передній план" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "Додати зображення" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "Масштаб" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "Альфа" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "Зображення переднього плану видно лише в режимах типу Коробка." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "Немає зображень" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "Додати зображення для використання у Cavalier." - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "Немає зображення" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "Змінити режим відмальовки" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "Змінити радіус у режимах типу Круг" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "Змінити нахил у режимах типу Круг" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "Змінити режим Дзеркала" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "Увімкнути розвернуте дзеркало" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "Змінити відступ зони відмальовки" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "Змінити відхилення зони відмальовки по осі X" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "Змінити відхилення зони відмальовки по осі Y" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "Змінити напрямок відмальовки" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "Змінити відстань між елементами" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "Змінити закругленість елементів" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "Увімкнути заповнення" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "Змінити товщину ліній" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "Увімкнути межі вікна" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "Увімкнути гострі кути" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "Змінити кількість барів" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "Переключити канал" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "Увімкнути зворотній напрямок" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "Інше" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "Змінити профіль кольорів" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "Змінити фонове зображення" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "Змінити масштаб фонового зоюраження" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "Змінити альфу фонового зображення" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "Змінити зображення переднього плану" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "Змінити розмір зображення переднього плану" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "Змінити альфу зображення переднього плану" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "Програма" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "Увімкнути повний екран" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "Сполучення клавіш" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "Про Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "Вийти" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "Змінюєм розмір..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "Головне меню" diff --git a/NickvisionCavalier.Shared/Resources/po/zh_Hans.po b/NickvisionCavalier.Shared/Resources/po/zh_Hans.po deleted file mode 100644 index 8da6b1f..0000000 --- a/NickvisionCavalier.Shared/Resources/po/zh_Hans.po +++ /dev/null @@ -1,610 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2024-09-01 09:09+0000\n" -"Last-Translator: D XC \n" -"Language-Team: Chinese (Simplified Han script) \n" -"Language: zh_Hans\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.8-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "新增" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "新增配置" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "你确定你要刪除配置 \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "取消" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "在 GitHub 上贡献 ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "默认" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "删除" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "删除配置" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Full" -msgstr "完全" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "GitHub 库" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -msgid "Hearts" -msgstr "爱心" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG 和 PNG 图片" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Matrix 聊天室" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "新的颜色配置将会是当前活动配置的副本。" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "关闭" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "打开" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "配置名称" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "选择一张图片" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "分离左右声道" - -#: ../../../Controllers/MainWindowController.cs:73 -msgid "translator-credits" -msgstr "翻译成员" - -#: ../../../Controllers/MainWindowController.cs:62 -msgid "Visualize audio with CAVA" -msgstr "使用 CAVA 可视化音频" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "命令帮助" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -msgid "Let's dance!" -msgstr "来跳舞吧!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "Cavalier 会聆听您电脑的声音。播放一些音乐或影片来让你的音乐舞动起来!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "设置" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "绘图模式" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "盒型" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "圆型" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "波浪" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "音量" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "粒子" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "条形" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "锥形" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "分隔" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "半径" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "旋转" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "镜像" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "反向镜像" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -msgid "Drawing direction" -msgstr "绘制方向" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "从上到下" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "从下到上" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "从左到右" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "从右到左" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "绘图边距" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "绘图区域周围的间隙大小(以像素为单位)。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "X轴偏移" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Y 轴偏移" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -msgid "Offset between items" -msgstr "条目之间的偏移" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -msgid "The size of spaces between elements (in percent)." -msgstr "两个条目之间的间隔大小(百分比)。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "条目圆角大小" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "元素的圆角大小(百分比)。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "填充" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "图形是否填充或仅展示外框。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "线条粗细" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "填充关闭时,线条的粗细(像素)。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "无边框窗体" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "是否禁用窗口的阴影及边框。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "尖角" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "窗口的边角是否为尖角。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "窗口控制" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "是否展示窗口的控制按钮。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "自动隐藏标题栏" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -msgid "Whether to hide headerbar when main window is not focused." -msgstr "当窗口未聚焦时是否隐藏标题栏。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "帧率" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "每秒的帧数。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "自定义" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "自定义帧率" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "条柱的数量" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "自动灵敏度" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "当条形图达到峰值时尝试降低灵敏度。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "灵敏度" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "手动设置敏度。如果启用自动灵敏度,这将会是一个初始值。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "声道" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "单声道" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "双声道" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Monstercat 平滑" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "是否启用 \"Monstercat smoothing\"。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "降噪" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"该因子调整积分滤波器和重力滤波器以保持信号平滑。\n" -"更高的值会使图像更慢,但会更顺滑。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "反向排序" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "是否将每个声道的柱形逆序。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "颜色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "新增配置" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "应用程序主题" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "亮色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "深色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "前景颜色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -msgid "Add foreground color" -msgstr "添加前景颜色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "背景颜色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -msgid "Add background color" -msgstr "添加背景颜色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -msgid "Images" -msgstr "图片" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -msgid "Background" -msgstr "背景" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -msgid "Foreground" -msgstr "前景" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "新增图片" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "缩放" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "透明度" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "前景图像仅在盒型绘图模式下显示。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -msgid "No Images" -msgstr "空空如也" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "添加一张在 Cavalier 中使用的图像。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "没有图片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "更改绘图方式" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "更改圆型模式的半径" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "更改圆型模式的角度" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "更改镜像模式" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "开启/关闭反向镜像" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "更改绘图区域边距" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "更改绘图区域 X 轴偏移" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "更改绘图区域 Y 轴偏移" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "更改绘图方向" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -msgid "Change Offset Between Items" -msgstr "更改条目之间的间隔" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -msgid "Change Items Roundness" -msgstr "更改条目的圆角大小" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "切换填充模式" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "更改线条粗细" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "显示/隐藏窗口边框" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "启用/关闭窗口尖角" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "更改条柱的数量" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "切换声道" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "开启/关闭逆向排序" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "其他" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "更改颜色配置" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "更改背景图片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -msgid "Change Background Image Scale" -msgstr "更改背景图像的缩放比例" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -msgid "Change Background Image Alpha" -msgstr "更改背景图像的透明度" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -msgid "Change Foreground Image" -msgstr "更改前景图片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -msgid "Change Foreground Image Scale" -msgstr "更改前景图像的缩放比例" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -msgid "Change Foreground Image Alpha" -msgstr "更改前景图像的透明度" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "应用程序" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "切换全屏" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "快捷键" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "关于 Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "退出" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "调整中..." - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "主菜单" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "Cavalier 是一款基于 Cava 制作且可高度自定义界面的音频可视化程式。" - -#~ msgid "11 drawing modes!" -#~ msgstr "11种绘图模式!" - -#, fuzzy -#~| msgid "Set any color or a gradient for background and foreground." -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "将任何颜色或渐变色设置为背景或是前景色。" - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "更改平滑程度,降噪以及部份的 CAVA 设置。" diff --git a/NickvisionCavalier.Shared/Resources/po/zh_Hant.po b/NickvisionCavalier.Shared/Resources/po/zh_Hant.po deleted file mode 100644 index e9b3e18..0000000 --- a/NickvisionCavalier.Shared/Resources/po/zh_Hant.po +++ /dev/null @@ -1,632 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-14 08:33-0500\n" -"PO-Revision-Date: 2023-08-12 17:18+0000\n" -"Last-Translator: Wolf yuan \n" -"Language-Team: Chinese (Traditional) \n" -"Language: zh_Hant\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.0-dev\n" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:42 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1207 -msgid "Add" -msgstr "新增" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "Add New Profile" -msgstr "新增設定檔" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -#, csharp-format -msgid "Are you sure you want to delete profile \"{0}\"?" -msgstr "你確定你要刪除設定檔 \"{0}\"?" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:39 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1080 -msgid "Cancel" -msgstr "取消" - -#: ../../../Controllers/MainWindowController.cs:61 -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:13 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:12 -msgid "Cavalier" -msgstr "Cavalier" - -#: ../../../Controllers/MainWindowController.cs:70 -msgid "Contributors on GitHub ❤️" -msgstr "在 GitHub 上貢獻 ❤️" - -#: ../../../Controllers/MainWindowController.cs:72 -msgid "David Lapshin" -msgstr "David Lapshin" - -#: ../../../Models/ColorProfile.cs:33 -msgid "Default" -msgstr "預設" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1083 -msgid "Delete" -msgstr "刪除" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1078 -msgid "Delete Profile" -msgstr "刪除設定檔" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#, fuzzy -msgid "Full" -msgstr "完整" - -#: ../../../Controllers/MainWindowController.cs:68 -#: ../../../Controllers/MainWindowController.cs:71 -msgid "Fyodor Sobolev" -msgstr "Fyodor Sobolev" - -#: ../../../../NickvisionCavalier.GNOME/Views/MainWindow.cs:277 -msgid "GitHub Repo" -msgstr "GitHub 儲存庫" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:994 -#, fuzzy -msgid "Hearts" -msgstr "愛心" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1209 -msgid "JPEG and PNG images" -msgstr "JPEG 及 PNG 圖片" - -#: ../../../Controllers/MainWindowController.cs:67 -msgid "Matrix Chat" -msgstr "Matrix 聊天室" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:23 -msgid "New color profile will be a copy of the current active profile." -msgstr "新的顏色設定檔將會是目前設定檔的副本。" - -#: ../../../Controllers/MainWindowController.cs:69 -msgid "Nicholas Logozzo" -msgstr "Nicholas Logozzo" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "Off" -msgstr "關" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:815 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:962 -msgid "On" -msgstr "開" - -#: ../../../../NickvisionCavalier.GNOME/Controls/AddProfileDialog.cs:29 -msgid "Profile Name" -msgstr "設定擋名稱" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:1206 -msgid "Select an image" -msgstr "選取圖檔" - -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:810 -#: ../../../../NickvisionCavalier.GNOME/Views/PreferencesDialog.cs:957 -msgid "Split Channels" -msgstr "左右聲道分離" - -#: ../../../Controllers/MainWindowController.cs:73 -#, fuzzy -msgid "translator-credits" -msgstr "翻譯者" - -#: ../../../Controllers/MainWindowController.cs:62 -#, fuzzy -msgid "Visualize audio with CAVA" -msgstr "使用 CAVA 可視化音訊" - -#: NickvisionCavalier.GNOME/Blueprints/command_help_dialog.blp:20 -msgid "Command Help" -msgstr "指令說明" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:25 -#, fuzzy -msgid "Let's dance!" -msgstr "來跳舞吧!" - -#: NickvisionCavalier.GNOME/Blueprints/drawing_view.blp:26 -msgid "" -"Cavalier listens to your system sound. Play some music or watch a video and " -"see your sound come to life!" -msgstr "Cavalier 會聆聽您電腦的聲音。播放一些音樂或影片來讓你的音樂動起來!" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:10 -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:157 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:5 -msgid "Preferences" -msgstr "設定" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:17 -msgid "Drawing mode" -msgstr "繪圖模式" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:24 -msgid "Box" -msgstr "箱型" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:28 -msgid "Circle" -msgstr "圓圈" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:36 -msgid "Wave" -msgstr "波浪" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:44 -msgid "Levels" -msgstr "音量" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:54 -msgid "Particles" -msgstr "顆粒" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:64 -msgid "Bars" -msgstr "條狀" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:74 -msgid "Spine" -msgstr "錐形" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:84 -msgid "Splitter" -msgstr "分隔" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:99 -msgid "Radius" -msgstr "半徑" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:114 -msgid "Rotation" -msgstr "旋轉" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:131 -msgid "Mirror" -msgstr "鏡像" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:135 -msgid "Reverse mirror" -msgstr "反向鏡像" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:141 -#, fuzzy -msgid "Drawing direction" -msgstr "繪圖方向" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Top to bottom" -msgstr "從上到下" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Bottom to top" -msgstr "從下到上" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Left to right" -msgstr "從左到右" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:143 -msgid "Right to left" -msgstr "從右到左" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:148 -msgid "Drawing area margin" -msgstr "繪圖邊距" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:149 -msgid "Size of gaps around drawing area (in pixels)." -msgstr "距離繪圖範圍到邊緣的距離 (像素)。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:166 -msgid "Drawing area X offset" -msgstr "X 軸偏移" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:181 -msgid "Drawing area Y offset" -msgstr "Y 軸偏移" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:196 -#, fuzzy -msgid "Offset between items" -msgstr "項目之間的偏移" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:197 -#, fuzzy -msgid "The size of spaces between elements (in percent)." -msgstr "兩個項目之間的間隔百分比。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:214 -msgid "Roundness of items" -msgstr "圓角強度" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:215 -msgid "How much rounded the elements should be (in percent)." -msgstr "項目的圓角強度 (百分比)。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:232 -msgid "Filling" -msgstr "填滿" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:233 -msgid "Whether shapes should be filled or outlined." -msgstr "圖形是否要填滿或是僅顯示外框。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:237 -msgid "Thickness of lines" -msgstr "線條粗細" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:238 -msgid "Thickness of lines when filling is off (in pixels)." -msgstr "填滿關閉時,線條的粗細 (像素)。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:258 -msgid "Borderless window" -msgstr "無邊框視窗" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:259 -msgid "Whether to disable window shadow and borders." -msgstr "是否要調用視窗邊框及陰影。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:263 -msgid "Sharp corners" -msgstr "尖角" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:264 -msgid "Whether the main window corners should be sharp." -msgstr "視窗的邊角是否為尖角。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:268 -msgid "Window controls" -msgstr "視窗控制" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:269 -msgid "Whether to show window control buttons." -msgstr "是否要顯示視窗控制按鈕。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:273 -msgid "Autohide headerbar" -msgstr "自動隱藏控制欄" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:274 -#, fuzzy -msgid "Whether to hide headerbar when main window is not focused." -msgstr "是否要在視窗未選取時隱藏控制欄。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:285 -msgid "Framerate" -msgstr "幀數" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:286 -msgid "Number of frames per second." -msgstr "每秒的幀數。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:288 -msgid "Custom" -msgstr "自訂" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:294 -msgid "Custom Framerate" -msgstr "自訂幀數" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:299 -msgid "Number of bars" -msgstr "欄數" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:316 -msgid "Automatic sensitivity" -msgstr "自動偵測靈敏度" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:317 -msgid "Attempt to decrease sensitivity if the bars peak." -msgstr "當圖形超過限制後嘗試降低靈敏度。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:321 -msgid "Sensitivity" -msgstr "靈敏度" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:322 -msgid "" -"Manual sensitivity. If automatic sensitivity is enabled, this will only be " -"the initial value." -msgstr "手動設置靈敏度。如果啟用自動靈敏度,這將會是一個初始值。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:337 -msgid "Channels" -msgstr "頻道數" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:344 -msgid "Mono" -msgstr "單聲道" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:348 -msgid "Stereo" -msgstr "雙聲道" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:357 -msgid "Monstercat smoothing" -msgstr "Monstercat 平滑" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:358 -msgid "Whether to enable the so-called «Monstercat smoothing»." -msgstr "是否要啟用 \"Monstercat\" 平滑。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:362 -msgid "Noise reduction" -msgstr "減少噪音" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:363 -#, fuzzy -msgid "" -"This factor adjusts the integral and gravity filters to keep the signal " -"smooth.\n" -"Higher value leads to a slower and smoother result." -msgstr "" -"這項數值可使訊號穩定且順滑。\n" -"更高的數值會使影像反應更慢,但是會更滑順。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:380 -msgid "Reverse order" -msgstr "反向排序" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:381 -msgid "Whether to reverse order of bars for each channel." -msgstr "是否要將每個頻道的圖形顛倒。" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:387 -msgid "Colors" -msgstr "顏色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:410 -msgid "Add Profile" -msgstr "新增設定檔" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:433 -msgid "Application Theme" -msgstr "應用程式主題" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:441 -msgid "Light" -msgstr "亮色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:445 -msgid "Dark" -msgstr "深色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:469 -msgid "Foreground Colors" -msgstr "前景顏色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:477 -#, fuzzy -msgid "Add foreground color" -msgstr "前景顏色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:492 -msgid "Background Colors" -msgstr "背景顏色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:499 -#, fuzzy -msgid "Add background color" -msgstr "背景顏色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:513 -#, fuzzy -msgid "Images" -msgstr "圖片" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:527 -#, fuzzy -msgid "Background" -msgstr "背景顏色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:532 -#, fuzzy -msgid "Foreground" -msgstr "前景顏色" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:547 -msgid "Add Image" -msgstr "新增圖片" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:558 -msgid "Scale" -msgstr "縮放" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:581 -msgid "Alpha" -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:602 -msgid "Foreground image is only shown with Box drawing modes." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:614 -#, fuzzy -msgid "No Images" -msgstr "沒有圖片" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:615 -msgid "Add an image to use it in Cavalier." -msgstr "" - -#: NickvisionCavalier.GNOME/Blueprints/preferences_dialog.blp:633 -msgid "No Image" -msgstr "沒有圖片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:15 -msgid "Change Drawing Mode" -msgstr "變更繪圖方式" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:20 -msgid "Change radius in Circle modes" -msgstr "變更圓圈半徑" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:25 -msgid "Change rotation in Circle modes" -msgstr "變更圓圈模式的角度" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:30 -msgid "Change Mirror Mode" -msgstr "變更鏡像模式" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:35 -msgid "Toggle Reverse Mirror" -msgstr "啟用/關閉反向鏡像" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:40 -msgid "Change Drawing Area Margin" -msgstr "變更繪圖邊距" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:45 -msgid "Change Drawing Area X Offset" -msgstr "變更繪圖區域 X 軸偏移" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:50 -msgid "Change Drawing Area Y Offset" -msgstr "變更繪圖區域 Y 軸偏移" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:55 -msgid "Change Drawing Direction" -msgstr "變更繪圖方向" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:60 -#, fuzzy -msgid "Change Offset Between Items" -msgstr "變更項目之間的間隔" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:65 -#, fuzzy -msgid "Change Items Roundness" -msgstr "變更項目的圓角" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:70 -msgid "Toggle Filling" -msgstr "開啟/關閉填滿模式" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:75 -msgid "Change Lines Thickness" -msgstr "變更線條粗細" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:80 -msgid "Toggle Window Borders" -msgstr "開啟/關閉視窗邊框" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:85 -msgid "Toggle Sharp Corners" -msgstr "開啟/關閉視窗尖角" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:94 -msgid "Change Number of Bars" -msgstr "變更條數" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:99 -msgid "Toggle Channels" -msgstr "變更頻道數" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:104 -msgid "Toggle Reverse Order" -msgstr "開啟/關閉反向排序" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:110 -msgid "Other" -msgstr "其他" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:113 -msgid "Change Color Profile" -msgstr "變更顏色設定檔" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:118 -msgid "Change Background Image" -msgstr "變更背景圖片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:123 -#, fuzzy -msgid "Change Background Image Scale" -msgstr "變更背景圖片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:128 -#, fuzzy -msgid "Change Background Image Alpha" -msgstr "變更背景圖片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:133 -#, fuzzy -msgid "Change Foreground Image" -msgstr "變更背景圖片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:138 -#, fuzzy -msgid "Change Foreground Image Scale" -msgstr "變更圖片縮放" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:143 -#, fuzzy -msgid "Change Foreground Image Alpha" -msgstr "變更背景圖片" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:149 -msgctxt "Shortcut" -msgid "Application" -msgstr "應用程式" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:152 -msgid "Toggle Fullscreen" -msgstr "全螢幕" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:162 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:6 -msgid "Keyboard Shortcuts" -msgstr "快捷鍵" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:167 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:7 -msgid "About Cavalier" -msgstr "關於 Cavalier" - -#: NickvisionCavalier.GNOME/Blueprints/shortcuts_dialog.blp:172 -#: NickvisionCavalier.GNOME/Blueprints/window.blp:8 -msgid "Quit" -msgstr "退出" - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:42 -msgid "Resizing..." -msgstr "縮放中,,," - -#: NickvisionCavalier.GNOME/Blueprints/window.blp:67 -msgid "Main Menu" -msgstr "主選單" - -#~ msgid "" -#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." -#~ msgstr "Cavalier 是基於 Cava 製作的高度自訂音訊可視化程式。" - -#~ msgid "11 drawing modes!" -#~ msgstr "11 種繪圖模式!" - -#, fuzzy -#~ msgid "Set any color, a gradient or an image for background and foreground." -#~ msgstr "將任何顏色或漸層設為背景或是前景色。" - -#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." -#~ msgstr "變更平滑程度,噪音減少以及部份的 CAVA 設定。" diff --git a/README.md b/README.md index b30bf60..3d21588 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![](NickvisionCavalier.Shared/Resources/banner.png) +![](resources/banner.png) [![Translation status](https://hosted.weblate.org/widgets/nickvision-cavalier/-/app/svg-badge.svg)](https://hosted.weblate.org/engage/nickvision-cavalier/) ✨Powered by [Weblate](https://weblate.org/en/)✨ @@ -27,17 +27,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how can you help the proje
GNOME - - ![GNOMEDefault](NickvisionCavalier.GNOME/Screenshots/Default.png) - ![GNOMEBars](NickvisionCavalier.GNOME/Screenshots/Bars.png) - ![GNOMESpine](NickvisionCavalier.GNOME/Screenshots/Spine.png) - ![GNOMELevels](NickvisionCavalier.GNOME/Screenshots/Levels.png) - ![GNOMEImages](NickvisionCavalier.GNOME/Screenshots/Images.png) - ![GNOMECircle](NickvisionCavalier.GNOME/Screenshots/Circle.png) +
+
+ Qt
# Dependencies -- [.NET 8](https://dotnet.microsoft.com/en-us/) - [CAVA](https://github.com/karlstav/cava/) >= 0.9.1 # Code of Conduct diff --git a/build.cake b/build.cake deleted file mode 100644 index 6dacfe4..0000000 --- a/build.cake +++ /dev/null @@ -1,13 +0,0 @@ -const string appId = "org.nickvision.cavalier"; -const string projectName = "NickvisionCavalier"; -const string shortName = "cavalier"; -readonly string[] projectsToBuild = new string[] { "GNOME" }; - -if (FileExists("CakeScripts/main.cake")) -{ - #load local:?path=CakeScripts/main.cake -} -else -{ - throw new CakeException("Failed to load main script."); -} \ No newline at end of file diff --git a/flatpak/NuGet.config b/flatpak/NuGet.config deleted file mode 100644 index 4aab2af..0000000 --- a/flatpak/NuGet.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/flatpak/build.sh b/flatpak/build.sh deleted file mode 100644 index 9c8337a..0000000 --- a/flatpak/build.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -if [ -z $1 ] -then - echo "Usage: $0 UI" - exit 1 -fi - -set -eu - -if [ -d "nuget-sources" ] -then - mv flatpak/NuGet.config ./ -fi - -dotnet tool restore -dotnet cake --target=Publish --prefix=/app --ui=$1 --self-contained - -dotnet cake --target=Install diff --git a/flatpak/cava-iniparser.patch b/flatpak/cava-iniparser.patch new file mode 100644 index 0000000..becd41b --- /dev/null +++ b/flatpak/cava-iniparser.patch @@ -0,0 +1,25 @@ +--- a/config.c 2025-02-13 18:27:37.349197294 -0500 ++++ b/config.c 2025-02-13 18:28:49.815723797 -0500 +@@ -4,7 +4,7 @@ + + #include + #ifndef _MSC_VER +-#include ++#include + #endif + #include + +@@ -750,13 +750,8 @@ + if (p->userEQ_keys > 0) { + p->userEQ_enabled = 1; + p->userEQ = (double *)calloc(p->userEQ_keys + 1, sizeof(double)); +-#ifndef LEGACYINIPARSER + const char *keys[p->userEQ_keys]; + iniparser_getseckeys(ini, "eq", keys); +-#endif +-#ifdef LEGACYINIPARSER +- char **keys = iniparser_getseckeys(ini, "eq"); +-#endif + for (int sk = 0; sk < p->userEQ_keys; sk++) { + p->userEQ[sk] = iniparser_getdouble(ini, keys[sk], 1); + } diff --git a/flatpak/fftw3f/fftw3f.json b/flatpak/fftw3f/fftw3f.json deleted file mode 100644 index ee10c75..0000000 --- a/flatpak/fftw3f/fftw3f.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "fftw3f", - "config-opts": [ - "--enable-threads", - "--enable-shared", - "--disable-static", - "--enable-float" - ], - "build-options": { - "arch": { - "x86_64": { - "config-opts": [ - "--enable-sse2", - "--enable-avx", - "--enable-avx-128-fma" - ] - }, - "aarch64": { - "config-opts": [ - "--enable-neon" - ] - } - } - }, - "sources": [ - { - "type": "archive", - "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", - "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" - } - ], - "cleanup": [ - "/bin", - "/include", - "/lib/cmake", - "/lib/pkgconfig", - "/share/man", - "*.la", - "*.so" - ] -} diff --git a/flatpak/org.nickvision.cavalier.gnome.json b/flatpak/org.nickvision.cavalier.gnome.json new file mode 100644 index 0000000..828b8b1 --- /dev/null +++ b/flatpak/org.nickvision.cavalier.gnome.json @@ -0,0 +1,266 @@ +{ + "app-id" : "org.nickvision.cavalier", + "runtime" : "org.gnome.Platform", + "runtime-version" : "48", + "sdk" : "org.gnome.Sdk", + "sdk-extensions": [ + "org.freedesktop.Sdk.Extension.llvm20" + ], + "command" : "org.nickvision.cavalier", + "finish-args":[ + "--socket=fallback-x11", + "--socket=wayland", + "--socket=pulseaudio", + "--device=dri", + "--share=ipc", + "--talk-name=com.canonical.Unity", + "--talk-name=org.freedesktop.Notifications" + ], + "cleanup":[ + "/include", + "/lib/cmake", + "/lib/debug", + "/lib/pkgconfig", + "*.a" + ], + "modules" : [ + { + "name": "boost", + "buildsystem": "simple", + "build-commands": [ + "./bootstrap.sh --prefix=/app --with-libraries=system,json", + "./b2 -j $FLATPAK_BUILDER_N_JOBS install" + ], + "sources": [ + { + "type": "archive", + "url": "https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.bz2", + "sha256": "af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89" + } + ] + }, + { + "name": "maddy", + "buildsystem": "simple", + "build-commands": [ + "mkdir -p /app/include/maddy", + "mv include/maddy/* /app/include/maddy" + ], + "sources": [ + { + "type": "git", + "url": "https://github.com/progsource/maddy", + "tag": "1.4.0" + } + ] + }, + { + "name": "libnick", + "buildsystem": "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DBUILD_TESTING=OFF", + "-DCMAKE_BUILD_TYPE=Release" + ], + "sources": [ + { + "type": "git", + "url": "https://github.com/nickvisionapps/libnick", + "tag": "2025.3.6" + } + ] + }, + { + "name": "fftw3f", + "config-opts": [ + "--enable-threads", + "--enable-shared", + "--disable-static", + "--enable-float" + ], + "build-options": { + "arch": { + "x86_64": { + "config-opts": [ + "--enable-sse2", + "--enable-avx", + "--enable-avx-128-fma" + ] + }, + "aarch64": { + "config-opts": [ + "--enable-neon" + ] + } + } + }, + "sources": [ + { + "type": "archive", + "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", + "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" + } + ] + }, + { + "name": "iniparser", + "buildsystem": "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DCMAKE_BUILD_TYPE=Release" + ], + "sources" : [ + { + "type" : "git", + "url" : "https://gitlab.com/iniparser/iniparser.git", + "tag" : "v4.2.5" + } + ] + }, + { + "name": "cava", + "buildsystem": "autotools", + "sources": [ + { + "type" : "git", + "url" : "https://github.com/karlstav/cava.git", + "tag" : "0.10.4" + }, + { + "type" : "patch", + "path" : "cava-iniparser.patch" + } + ] + }, + { + "name": "gn", + "buildsystem": "simple", + "build-options": { + "append-path": "/usr/lib/sdk/llvm20/bin", + "prepend-ld-library-path": "/usr/lib/sdk/llvm20/lib" + }, + "build-commands": [ + "python build/gen.py", + "ninja -C out", + "install -D out/gn -t /app/bin" + ], + "cleanup": [ + "*" + ], + "sources": [ + { + "type": "git", + "disable-shallow-clone": true, + "url": "https://gn.googlesource.com/gn", + "commit": "10a27145cd0770b78745ff536e343bf12c70f6c3" + } + ] + }, + { + "name": "skia", + "buildsystem": "simple", + "build-commands": [ + "gn gen out/Release --args='is_debug=false is_official_build=true is_component_build=true skia_use_dng_sdk=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false'", + "ninja -C out/Release skia modules", + "cp out/Release/*.a /app/lib", + "cp out/Release/*.so /app/lib", + "mkdir -p /app/include/skia/include", + "cp -r include/* /app/include/skia/include", + "mkdir -p /app/include/skia/modules/", + "cp -r modules/* /app/include/skia/modules", + "ldconfig" + ], + "sources": [ + { + "type": "git", + "dest": "third_party/externals/libjpeg-turbo", + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo", + "commit": "e14cbfaa85529d47f9f55b0f104a579c1061f9ad" + }, + { + "type": "git", + "dest": "third_party/externals/libpng", + "url": "https://skia.googlesource.com/third_party/libpng", + "commit": "ed217e3e601d8e462f7fd1e04bed43ac42212429" + }, + { + "type": "git", + "dest": "third_party/externals/libwebp", + "url": "https://chromium.googlesource.com/webm/libwebp", + "commit": "845d5476a866141ba35ac133f856fa62f0b7445f" + }, + { + "type": "git", + "dest": "third_party/externals/wuffs", + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c", + "commit": "e3f919ccfe3ef542cfc983a82146070258fb57f8" + }, + { + "type": "git", + "url": "https://skia.googlesource.com/skia", + "commit": "8b7f0fd0f95b97d863da34ccfa52a0f931cbd13f" + } + ] + }, + { + "name": "glfw", + "buildsystem" : "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DCMAKE_BUILD_TYPE=Release" + ], + "sources" : [ + { + "type" : "git", + "url" : "https://github.com/glfw/glfw", + "tag" : "3.4" + } + ] + }, + { + "name": "blueprint-compiler", + "buildsystem": "meson", + "cleanup": [ + "*" + ], + "sources": [ + { + "type": "git", + "url": "https://gitlab.gnome.org/jwestman/blueprint-compiler", + "tag": "v0.16.0" + } + ] + }, + { + "name": "libxmlplusplus", + "buildsystem": "meson", + "config-opts": [ + "-Dmaintainer-mode=false", + "-Dbuild-examples=false", + "-Dbuild-tests=false" + ], + "sources": [ + { + "type": "git", + "url": "https://github.com/libxmlplusplus/libxmlplusplus", + "tag": "5.4.0" + } + ] + }, + { + "name": "org.nickvision.cavalier", + "buildsystem": "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DCMAKE_BUILD_TYPE=Release", + "-DUI_PLATFORM=gnome" + ], + "sources": [ + { + "type": "dir", + "path": ".." + } + ] + } + ] +} diff --git a/flatpak/org.nickvision.cavalier.json b/flatpak/org.nickvision.cavalier.json deleted file mode 100644 index 9148b0a..0000000 --- a/flatpak/org.nickvision.cavalier.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "app-id" : "org.nickvision.cavalier", - "runtime" : "org.gnome.Platform", - "runtime-version" : "45", - "sdk" : "org.gnome.Sdk", - "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.dotnet8" - ], - "build-options": { - "append-path": "/usr/lib/sdk/dotnet8/bin", - "append-ld-library-path": "/usr/lib/sdk/dotnet8/lib", - "append-pkg-config-path": "/usr/lib/sdk/dotnet8/lib/pkgconfig" - }, - "command" : "org.nickvision.cavalier", - "finish-args":[ - "--socket=fallback-x11", - "--socket=wayland", - "--socket=pulseaudio", - "--device=dri", - "--share=ipc" - ], - "cleanup":[ - "/include", - "/lib/pkgconfig", - "*.a" - ], - "modules" : [ - "fftw3f/fftw3f.json", - { - "name" : "iniparser", - "buildsystem" : "simple", - "build-commands" : - [ - "make PREFIX=/app", - "install -Dm0644 src/iniparser.h /app/include/iniparser.h", - "install -Dm0644 src/dictionary.h /app/include/dictionary.h", - "install -Dm0644 libiniparser.so.1 /app/lib/libiniparser.so.1", - "ln -sf libiniparser.so.1 /app/lib/libiniparser.so" - ], - "sources" : [ - { - "type" : "git", - "url" : "https://github.com/ndevilla/iniparser.git", - "commit" : "deb85ad4936d4ca32cc2260ce43323d47936410d" - } - ] - }, - { - "name" : "cava", - "sources" : [ - { - "type" : "git", - "url" : "https://github.com/karlstav/cava.git", - "tag" : "0.9.1" - } - ] - }, - { - "name": "blueprint-compiler", - "buildsystem": "meson", - "cleanup": [ - "*" - ], - "sources": [ - { - "type": "git", - "url": "https://gitlab.gnome.org/jwestman/blueprint-compiler", - "tag": "v0.10.0" - } - ] - }, - { - "name": "org.nickvision.cavalier", - "buildsystem": "simple", - "build-commands": [ - "chmod +x ./flatpak/build.sh", - "./flatpak/build.sh gnome" - ], - "sources": [ - { - "type": "dir", - "path": ".." - }, - "../NickvisionCavalier.GNOME/nuget-sources.json" - ] - } - ] -} diff --git a/flatpak/org.nickvision.cavalier.qt.json b/flatpak/org.nickvision.cavalier.qt.json new file mode 100644 index 0000000..b36cc00 --- /dev/null +++ b/flatpak/org.nickvision.cavalier.qt.json @@ -0,0 +1,253 @@ +{ + "app-id" : "org.nickvision.cavalier", + "runtime" : "org.kde.Platform", + "runtime-version" : "6.8", + "sdk" : "org.kde.Sdk", + "sdk-extensions": [ + "org.freedesktop.Sdk.Extension.llvm20" + ], + "command" : "org.nickvision.cavalier", + "finish-args":[ + "--socket=fallback-x11", + "--socket=wayland", + "--socket=pulseaudio", + "--device=dri", + "--share=ipc", + "--talk-name=com.canonical.Unity", + "--talk-name=org.freedesktop.Notifications" + ], + "cleanup":[ + "/include", + "/lib/cmake", + "/lib/debug", + "/lib/pkgconfig", + "*.a" + ], + "modules" : [ + { + "name": "boost", + "buildsystem": "simple", + "build-commands": [ + "./bootstrap.sh --prefix=/app --with-libraries=system,json", + "./b2 -j $FLATPAK_BUILDER_N_JOBS install" + ], + "sources": [ + { + "type": "archive", + "url": "https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.bz2", + "sha256": "af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89" + } + ] + }, + { + "name": "libsecret", + "buildsystem": "meson", + "config-opts": [ + "-Dmanpage=false", + "-Dvapi=false", + "-Dgtk_doc=false", + "-Dintrospection=false" + ], + "sources": [ + { + "type": "git", + "url": "https://gitlab.gnome.org/GNOME/libsecret", + "tag": "0.21.7" + } + ] + }, + { + "name": "maddy", + "buildsystem": "simple", + "build-commands": [ + "mkdir -p /app/include/maddy", + "mv include/maddy/* /app/include/maddy" + ], + "sources": [ + { + "type": "git", + "url": "https://github.com/progsource/maddy", + "tag": "1.4.0" + } + ] + }, + { + "name": "libnick", + "buildsystem": "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DBUILD_TESTING=OFF", + "-DCMAKE_BUILD_TYPE=Release" + ], + "sources": [ + { + "type": "git", + "url": "https://github.com/nickvisionapps/libnick", + "tag": "2025.3.6" + } + ] + }, + { + "name": "fftw3f", + "config-opts": [ + "--enable-threads", + "--enable-shared", + "--disable-static", + "--enable-float" + ], + "build-options": { + "arch": { + "x86_64": { + "config-opts": [ + "--enable-sse2", + "--enable-avx", + "--enable-avx-128-fma" + ] + }, + "aarch64": { + "config-opts": [ + "--enable-neon" + ] + } + } + }, + "sources": [ + { + "type": "archive", + "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", + "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" + } + ] + }, + { + "name": "iniparser", + "buildsystem": "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DCMAKE_BUILD_TYPE=Release" + ], + "sources" : [ + { + "type" : "git", + "url" : "https://gitlab.com/iniparser/iniparser.git", + "tag" : "v4.2.5" + } + ] + }, + { + "name": "cava", + "buildsystem" : "autotools", + "sources" : [ + { + "type" : "git", + "url" : "https://github.com/karlstav/cava.git", + "tag" : "0.10.4" + }, + { + "type" : "patch", + "path" : "cava-iniparser.patch" + } + ] + }, + { + "name": "gn", + "buildsystem": "simple", + "build-options": { + "append-path": "/usr/lib/sdk/llvm20/bin", + "prepend-ld-library-path": "/usr/lib/sdk/llvm20/lib" + }, + "build-commands": [ + "python build/gen.py", + "ninja -C out", + "install -D out/gn -t /app/bin" + ], + "cleanup": [ + "*" + ], + "sources": [ + { + "type": "git", + "disable-shallow-clone": true, + "url": "https://gn.googlesource.com/gn", + "commit": "10a27145cd0770b78745ff536e343bf12c70f6c3" + } + ] + }, + { + "name": "skia", + "buildsystem": "simple", + "build-commands": [ + "gn gen out/Release --args='is_debug=false is_official_build=true is_component_build=true skia_use_dng_sdk=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false'", + "ninja -C out/Release skia modules", + "cp out/Release/*.a /app/lib", + "cp out/Release/*.so /app/lib", + "mkdir -p /app/include/skia/include", + "cp -r include/* /app/include/skia/include", + "mkdir -p /app/include/skia/modules/", + "cp -r modules/* /app/include/skia/modules", + "ldconfig" + ], + "sources": [ + { + "type": "git", + "dest": "third_party/externals/libjpeg-turbo", + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo", + "commit": "e14cbfaa85529d47f9f55b0f104a579c1061f9ad" + }, + { + "type": "git", + "dest": "third_party/externals/libpng", + "url": "https://skia.googlesource.com/third_party/libpng", + "commit": "ed217e3e601d8e462f7fd1e04bed43ac42212429" + }, + { + "type": "git", + "dest": "third_party/externals/libwebp", + "url": "https://chromium.googlesource.com/webm/libwebp", + "commit": "845d5476a866141ba35ac133f856fa62f0b7445f" + }, + { + "type": "git", + "dest": "third_party/externals/wuffs", + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c", + "commit": "e3f919ccfe3ef542cfc983a82146070258fb57f8" + }, + { + "type": "git", + "url": "https://skia.googlesource.com/skia", + "commit": "8b7f0fd0f95b97d863da34ccfa52a0f931cbd13f" + } + ] + }, + { + "name": "glfw", + "buildsystem" : "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DCMAKE_BUILD_TYPE=Release" + ], + "sources" : [ + { + "type" : "git", + "url" : "https://github.com/glfw/glfw", + "tag" : "3.4" + } + ] + }, + { + "name": "org.nickvision.cavalier", + "buildsystem": "cmake-ninja", + "builddir": true, + "config-opts": [ + "-DCMAKE_BUILD_TYPE=Release", + "-DUI_PLATFORM=qt" + ], + "sources": [ + { + "type": "dir", + "path": ".." + } + ] + } + ] +} diff --git a/inno/setup.iss b/inno/setup.iss new file mode 100644 index 0000000..0770f1a --- /dev/null +++ b/inno/setup.iss @@ -0,0 +1,82 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define MyAppName "Nickvision Cavalier" +#define MyAppShortName "Cavalier" +#define MyAppVersion "2025.4.0" +#define MyAppPublisher "Nickvision" +#define MyAppURL "https://nickvision.org" +#define MyAppExeName "org.nickvision.cavalier.qt.exe" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{C40FC288-6F81-48B5-B147-310E68879B76} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +UsePreviousAppDir=no +DefaultDirName={autopf}\{#MyAppName} +DisableProgramGroupPage=yes +LicenseFile=..\COPYING +; Uncomment the following line to run in non administrative install mode (install for current user only.) +;PrivilegesRequired=lowest +OutputDir=..\inno +OutputBaseFilename=NickvisionCavalierSetup +SetupIconFile=..\resources\org.nickvision.cavalier.ico +Compression=lzma +SolidCompression=yes +WizardStyle=modern +PrivilegesRequired=admin +DirExistsWarning=no +CloseApplications=yes + +[Code] +procedure SetupVC(); +var + ResultCode: Integer; +begin + if not Exec(ExpandConstant('{app}\deps\vc_redist.x64.exe'), '/install /quiet /norestart', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) + then + MsgBox('Unable to install VC . Please try again', mbError, MB_OK); +end; + +procedure SetupVC2012(); +var + ResultCode: Integer; +begin + if not Exec(ExpandConstant('{app}\deps\vc_redist.2012.x64.exe'), '/install /quiet /norestart', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) + then + MsgBox('Unable to install VC . Please try again', mbError, MB_OK); +end; + +procedure Cleanup(); +begin + DelTree(ExpandConstant('{app}\deps'), True, True, True); +end; + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "vc_redist.x64.exe"; DestDir: "{app}\deps"; AfterInstall: SetupVC +Source: "vc_redist.2012.x64.exe"; DestDir: "{app}\deps"; AfterInstall: SetupVC2012 +Source: "cava\*"; DestDir: "{app}\Release"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "..\build\org.nickvision.cavalier.qt\Release\{#MyAppExeName}"; DestDir: "{app}\Release"; Flags: ignoreversion +Source: "..\build\org.nickvision.cavalier.qt\Release\*"; DestDir: "{app}\Release"; Flags: ignoreversion recursesubdirs createallsubdirs; AfterInstall: Cleanup +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{autoprograms}\{#MyAppShortName}"; Filename: "{app}\Release\{#MyAppExeName}" +Name: "{autodesktop}\{#MyAppShortName}"; Filename: "{app}\Release\{#MyAppExeName}"; Tasks: desktopicon + +[Run] +Filename: "{app}\Release\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + diff --git a/libcavalier/CMakeLists.txt b/libcavalier/CMakeLists.txt new file mode 100644 index 0000000..98d8ff1 --- /dev/null +++ b/libcavalier/CMakeLists.txt @@ -0,0 +1,53 @@ +if(WIN32) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +add_library(libcavalier + "src/controllers/mainwindowcontroller.cpp" + "src/controllers/preferencesviewcontroller.cpp" + "src/models/backgroundimage.cpp" + "src/models/canvas.cpp" + "src/models/cava.cpp" + "src/models/cavaoptions.cpp" + "src/models/color.cpp" + "src/models/colorprofile.cpp" + "src/models/configuration.cpp" + "src/models/drawingarea.cpp" + "src/models/drawingfunctionarguments.cpp" + "src/models/pngimage.cpp" + "src/models/point.cpp" + "src/models/renderer.cpp" + "src/models/startupinformation.cpp") +set_target_properties(libcavalier PROPERTIES VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION}") +if(MSVC) + target_compile_options(libcavalier PRIVATE /W4) +else() + target_compile_options(libcavalier PRIVATE -Wall -Wextra -Wpedantic) +endif() + +find_package(libnick CONFIG REQUIRED) +find_package(glfw3 CONFIG REQUIRED) +if(DEFINED ENV{VCPKG_ROOT}) + target_include_directories(libcavalier PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") + find_package(unofficial-skia CONFIG REQUIRED) + target_link_libraries(libcavalier PUBLIC libnick::libnick glfw unofficial::skia::skia) +else() + find_library(SKIA_LIB skia) + if(DEFINED ENV{container}) + target_include_directories(libcavalier PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "/app/include/skia") + else() + target_include_directories(libcavalier PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "/usr/include/skia") + endif() + target_link_libraries(libcavalier PUBLIC libnick::libnick glfw "${SKIA_LIB}") +endif() + +add_custom_target(shared_commands ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/__shared.h") +add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__shared.h" "${CMAKE_CURRENT_BINARY_DIR}/shared.h" COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/shared.h") +if(HAS_GETTEXT) + add_custom_command(TARGET shared_commands PRE_BUILD COMMAND "${GETTEXT_XGETTEXT_EXECUTABLE}" --from-code=utf-8 --add-comments --c++ --force-po --output="${POT_FILE}" --keyword=_ --keyword=_n:1,2 --keyword=_p:1c,2 --keyword=_pn:1c,2,3 --keyword=C_:1c,2 --width=80 ${TRANSLATE_FILES} WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}") + foreach(LINGUA IN ITEMS ${LINGUAS}) + add_custom_command(TARGET shared_commands PRE_BUILD COMMAND "${GETTEXT_MSGMERGE_EXECUTABLE}" --backup=off -U "${CMAKE_SOURCE_DIR}/resources/po/${LINGUA}.po" "${POT_FILE}") + endforeach() +else() + message(WARNING "gettext not found, translations will not be generated") +endif() diff --git a/libcavalier/include/controllers/mainwindowcontroller.h b/libcavalier/include/controllers/mainwindowcontroller.h new file mode 100644 index 0000000..4d9bdce --- /dev/null +++ b/libcavalier/include/controllers/mainwindowcontroller.h @@ -0,0 +1,147 @@ +#if (defined(_WIN32) && !defined(_CRT_SECURE_NO_WARNINGS)) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#if (defined(_WIN32) && !defined(NOMINMAX)) +#define NOMINMAX +#endif + +#ifndef MAINWINDOWCONTROLLER_H +#define MAINWINDOWCONTROLLER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "controllers/preferencesviewcontroller.h" +#include "models/cava.h" +#include "models/pngimage.h" +#include "models/renderer.h" +#include "models/startupinformation.h" +#include "models/theme.h" + +namespace Nickvision::Cavalier::Shared::Controllers +{ + /** + * @brief A controller for a MainWindow. + */ + class MainWindowController + { + public: + /** + * @brief Constructs a MainWindowController. + * @param args A list of argument strings for the application + */ + MainWindowController(const std::vector& args); + /** + * @brief Gets the Saved event for the application's configuration. + * @return The configuration Saved event + */ + Nickvision::Events::Event& configurationSaved(); + /** + * @brief Gets the event for when a notification is sent. + * @return The notification sent event + */ + Nickvision::Events::Event& notificationSent(); + /** + * @brief Gets the event for when cava stops outputting data. + * @return The cava output stopped event + */ + Nickvision::Events::Event& cavaOutputStopped(); + /** + * @brief Gets the event for when an image is rendered. + * @return The image rendered event + */ + Nickvision::Events::Event>& imageRendered(); + /** + * @brief Gets the AppInfo object for the application + * @return The current AppInfo object + */ + const Nickvision::App::AppInfo& getAppInfo() const; + /** + * @brief Gets the preferred theme for the application. + * @return The preferred theme + */ + Models::Theme getTheme(); + /** + * @brief Gets the debugging information for the application. + * @param extraInformation Extra, ui-specific, information to include in the debug info statement + * @return The application's debug information + */ + std::string getDebugInformation(const std::string& extraInformation = "") const; + /** + * @brief Gets whether or not the application can be shut down. + * @return True if can shut down, else false + */ + bool canShutdown() const; + /** + * @brief Gets a PreferencesViewController. + * @return The PreferencesViewController + */ + std::shared_ptr createPreferencesViewController(); + /** + * @brief Starts the application. + * @brief Will only have an effect the first time called. + * @return The StartupInformation for the application + */ +#ifdef _WIN32 + const Models::StartupInformation& startup(HWND hwnd); +#elif defined(__linux__) + const Models::StartupInformation& startup(const std::string& desktopFile); +#else + const Models::StartupInformation& startup(); +#endif + /** + * @brief Shuts down the application. + * @param geometry The window geometry to save + */ + void shutdown(const Nickvision::App::WindowGeometry& geometry); + /** + * @brief Checks for an application update and sends a notification if one is available. + */ + void checkForUpdates(); +#ifdef _WIN32 + /** + * @brief Downloads and installs the latest application update in the background. + * @brief Will send a notification if the update fails. + * @brief MainWindowController::checkForUpdates() must be called before this method. + */ + void windowsUpdate(); +#endif + /** + * @brief Sets the size of the drawing canvas. + * @param width The new canvas width + * @param height The new canvas height + */ + void setCanvasSize(int width, int height); + + private: + /** + * @brief Handles when the configuration is saved. + */ + void onConfigurationSaved(); + /** + * @brief Handles when cava receives output. + * @param args std:vector sample + */ + void onOutputReceived(const Events::ParamEventArgs>& args); + bool m_started; + std::vector m_args; + Nickvision::App::AppInfo m_appInfo; + Nickvision::App::DataFileManager m_dataFileManager; + std::shared_ptr m_updater; + Nickvision::Taskbar::TaskbarItem m_taskbar; + Nickvision::Events::Event m_cavaOutputStopped; + Nickvision::Events::Event> m_imageRendered; + Models::Cava m_cava; + Models::Renderer m_renderer; + }; +} + +#endif //MAINWINDOWCONTROLLER_H diff --git a/libcavalier/include/controllers/preferencesviewcontroller.h b/libcavalier/include/controllers/preferencesviewcontroller.h new file mode 100644 index 0000000..1f49178 --- /dev/null +++ b/libcavalier/include/controllers/preferencesviewcontroller.h @@ -0,0 +1,121 @@ +#ifndef PREFERENCESVIEWCONTROLLER_H +#define PREFERENCESVIEWCONTROLLER_H + +#include +#include +#include "models/configuration.h" + +namespace Nickvision::Cavalier::Shared::Controllers +{ + /** + * @brief A controller for a PreferencesView. + */ + class PreferencesViewController + { + public: + /** + * @brief Constructs a PreferencesViewController. + * @param configuration The reference to the configuration to use + */ + PreferencesViewController(Models::Configuration& configuration); + /** + * @brief Gets the preferred theme for the application. + * @return The preferred theme + */ + Models::Theme getTheme() const; + /** + * @brief Sets the preferred theme for the application. + * @param theme The new preferred theme + */ + void setTheme(Models::Theme theme); + /** + * @brief Gets whether or not to automatically check for application updates. + * @return True to automatically check for updates, else false + */ + bool getAutomaticallyCheckForUpdates() const; + /** + * @brief Sets whether or not to automatically check for application updates. + * @param check Whether or not to automatically check for updates + */ + void setAutomaticallyCheckForUpdates(bool check); + /** + * @brief Gets the drawing area for the application. + * @return The drawing area + */ + Models::DrawingArea getDrawingArea() const; + /** + * @brief Sets the drawing area for the application. + * @param area The new drawing area + */ + void setDrawingArea(const Models::DrawingArea& area); + /** + * @brief Gets the cava options for the application. + * @return The cava options + */ + Models::CavaOptions getCavaOptions() const; + /** + * @brief Sets the cava options for the application. + * @param cava The new cava options + */ + void setCavaOptions(const Models::CavaOptions& cava); + /** + * @brief Gets the color profiles for the application. + * @return The list of color profiles + */ + std::vector getColorProfiles() const; + /** + * @brief Sets the color profiles for the application. + * @param profiles The new list of color profiles + */ + void setColorProfiles(const std::vector& profiles); + /** + * @brief Gets the names of the color profiles for the application. + * @return The list of names of the color profiles + */ + std::vector getColorProfileNames() const; + /** + * @brief Gets the index of the active color profile for the application. + * @return The index of the active color profile + */ + int getActiveColorProfileIndex() const; + /** + * @brief Sets the index of the active color profile for the application.. + * @param index The new index of the active color profile + */ + void setActiveColorProfileIndex(int index); + /** + * @brief Gets the background images for the application. + * @return The list of background images + */ + std::vector getBackgroundImages() const; + /** + * @brief Sets the background images for the application. + * @param images The new lsit of background images + */ + void setBackgroundImages(const std::vector& images); + /** + * @brief Gets the names of the background images for the application. + * @return The list of names of the background images + */ + std::vector getBackgroundImageNames() const; + /** + * @brief Gets the index of the active background image for the application. + * @return The index of the active background image + */ + int getActiveBackgroundImageIndex() const; + /** + * @brief Sets the index of the active background image for the application.. + * @param index The new index of the active background image + */ + void setActiveBackgroundImageIndex(int index); + /** + * @brief Saves the current configuration to disk. + */ + void saveConfiguration(); + + private: + Models::Configuration& m_configuration; + }; +} + +#endif //PREFERENCESVIEWCONTROLLER_H diff --git a/libcavalier/include/models/backgroundimage.h b/libcavalier/include/models/backgroundimage.h new file mode 100644 index 0000000..95b10fd --- /dev/null +++ b/libcavalier/include/models/backgroundimage.h @@ -0,0 +1,94 @@ +#ifndef BACKGROUNDIMAGE_H +#define BACKGROUNDIMAGE_H + +#include +#include + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of a background image to use within the application. + */ + class BackgroundImage + { + public: + /** + * @brief Constructs a BackgroundImage. + * @param path The path of the background image + */ + BackgroundImage(const std::filesystem::path& path); + /** + * @brief Constructs a BackgroundImage. + * @param path The path of the background image + * @param scale The scale of the background image (0 - 100 %) + * @param alpha The alpha of the background image (0 - 100 %) + */ + BackgroundImage(const std::filesystem::path& path, unsigned int scale, unsigned int alpha); + /** + * @brief Constructs a BackgroundImage from a json object. + * @param json The json object + */ + BackgroundImage(boost::json::object json); + /** + * @brief Gets the path of the background image. + * @return The background image's path + */ + const std::filesystem::path& getPath() const; + /** + * @brief Sets the path of the background image. + * @param path The new background image's path + */ + void setPath(const std::filesystem::path& path); + /** + * @brief Gets the scale of the background image. + * @return The background image's scale + */ + unsigned int getScale() const; + /** + * @brief Sets the scale of the background image. + * @param scale The new backgroud image's scale + */ + void setScale(unsigned int scale); + /** + * @brief Gets the alpha of the background image. + * @return The background image's alpha + */ + unsigned int getAlpha() const; + /** + * @brief Sets the alpha of the background image. + * @param alpha The new backgroud image's alpha + */ + void setAlpha(unsigned int alpha); + /** + * @brief Converts the DrawingArea to a JSON object. + * @return The JSON object + */ + boost::json::object toJson() const; + /** + * @brief Gets whether or not this BackgroundImage is equal to compare BackgroundImage. + * @param compare The BackgroundImage to compare to + * @return True if this BackgroundImage == compare BackgroundImage + */ + bool operator==(const BackgroundImage& compare) const; + /** + * @brief Gets whether or not this BackgroundImage is not equal to compare BackgroundImage. + * @param compare The BackgroundImage to compare to + * @return True if this BackgroundImage != compare BackgroundImage + */ + bool operator!=(const BackgroundImage& compare) const; + /** + * @brief Gets whether or not the image's path exists. + * @return True if path exists + * @return False if path does not exist + */ + operator bool() const; + + + private: + std::filesystem::path m_path; + unsigned int m_scale; + unsigned int m_alpha; + }; +} + +#endif //BACKGROUNDIMAGE_H diff --git a/libcavalier/include/models/canvas.h b/libcavalier/include/models/canvas.h new file mode 100644 index 0000000..b1806a0 --- /dev/null +++ b/libcavalier/include/models/canvas.h @@ -0,0 +1,94 @@ +#ifndef CANVAS_H +#define CANVAS_H + +#include +#include +#include +#include +#include + +#define DEFAULT_CANVAS_WIDTH 800 +#define DEFAULT_CANVAS_HEIGHT 600 + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of a skia canvas. + */ + class Canvas + { + public: + /** + * @brief Constructs a Canvas. + * @param width The width of the canvas + * @param height The height of the canvas + */ + Canvas(int width, int height); + /** + * @brief Destructs a Canvas. + */ + ~Canvas(); + /** + * @brief Gets whether or not the Canvas is properly initalized. + * @return True if properly initalized + * @return False if not properly initalized + */ + bool isValid() const; + /** + * @brief Gets whether or not the canvas is using the GPU. + * @return True if using GPU + * @return False if using CPU + */ + bool isGPUCanvas() const; + /** + * @brief Gets the skia surface object. + * @return SkSurface + */ + const sk_sp& getSkiaSurface() const; + /** + * @brief Gets the skia canvas object. + * @return SkCanvas + */ + SkCanvas* getSkiaCanvas() const; + /** + * @brief Gets the skia gpu context object. + * @return GrDirectContext + */ + GrDirectContext* getSkiaContext() const; + /** + * @brief Gets the width of the canvas. + * @return The width of the canvas + */ + int getWidth() const; + /** + * @brief Gets the height of the canvas. + * @return The height of the canvas + */ + int getHeight() const; + /** + * @brief Flushes the canvas. + */ + void flush(); + /** + * @brief Gets the backing skia canvas object. + * @return SkCanvas + */ + SkCanvas* operator->(); + /** + * @brief Gets whether or not the Canvas is properly initalized. + * @return True if properly initalized + * @return False if not properly initalized + */ + operator bool() const; + + private: + GLFWwindow* m_glfw; + sk_sp m_surface; + sk_sp m_context; + bool m_isGPUCanvas; + int m_width; + int m_height; + }; +} + +#endif //CANVAS_H diff --git a/libcavalier/include/models/cava.h b/libcavalier/include/models/cava.h new file mode 100644 index 0000000..b408a85 --- /dev/null +++ b/libcavalier/include/models/cava.h @@ -0,0 +1,78 @@ +#ifndef CAVA_H +#define CAVA_H + +#include +#include +#include +#include +#include +#include +#include +#include "cavaoptions.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of a cava process. + */ + class Cava + { + public: + /** + * @brief Constructs a Cava. + * @param options The options to use for cava + * @param appName The name of the application + */ + Cava(const CavaOptions& options, const std::string& appName); + /** + * @brief Destructs a Cava. + */ + ~Cava(); + /** + * @brief Gets the event for when output is received from cava. + * @return The output received event + */ + Events::Event>>& outputReceived(); + /** + * @brief Whether or not the cava process is receving audio data. + * @return True if receving audio data + * @return False is not receving audio data + */ + bool isRecevingAudio() const; + /** + * @brief Gets the options to use for cava. + * @return The cava options + */ + const CavaOptions& getOptions() const; + /** + * @brief Sets the options to use for cava. + * @brief This method will restart the cava process if it is running. + * @param options The new cava options + */ + void setOptions(const CavaOptions& options); + /** + * @brief Starts the cava process. + * @brief If the cava process has been already started, it will be restarted (loading the configuration file again). + */ + void start(); + + private: + /** + * @brief Writes the cava options to the config file on disk. + */ + void updateConfigFile(); + /** + * @brief Watches for output from the cava process. + */ + void watch(); + mutable std::mutex m_mutex; + CavaOptions m_options; + bool m_isRecevingAudio; + std::filesystem::path m_configPath; + std::shared_ptr m_process; + std::thread m_watcher; + Events::Event>> m_outputReceived; + }; +} + +#endif //CAVA_H diff --git a/libcavalier/include/models/cavaoptions.h b/libcavalier/include/models/cavaoptions.h new file mode 100644 index 0000000..d3ec123 --- /dev/null +++ b/libcavalier/include/models/cavaoptions.h @@ -0,0 +1,149 @@ +#ifndef CAVAOPTIONS_H +#define CAVAOPTIONS_H + +#include +#include +#include "channeltype.h" + +#define CAVA_ASCII_MAX_RANGE 1000 +#define CAVA_BAR_DELIMITER 59 +#define CAVA_FRAME_DELIMITER 10 + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of options for the cava executable. + */ + class CavaOptions + { + public: + /** + * @brief Constructs a CavaOptions. + */ + CavaOptions(); + /** + * @brief Constructs a CavaOptions from a json object. + * @param json The json object + */ + CavaOptions(boost::json::object json); + /** + * @brief Gets the framerate to use for cava. + * @return The framerate + */ + unsigned int getFramerate() const; + /** + * @brief Sets the framerate to use for cava. + * @param framerate The new framerate + */ + void setFramerate(unsigned int framerate); + /** + * @brief Gets the number of bars to use for cava. (6 - 100) + * @return The number of bars + */ + unsigned int getNumberOfBars() const; + /** + * @brief Sets the number of bars to use for cava. (6 - 100) + * @param bars The new number of bars + */ + void setNumberOfBars(unsigned int bars); + /** + * @brief Gets whether or not to reverse the order of bars from cava. + * @return True to reverse bar order + * @return False to not reverse bar order + */ + bool getReverseBarOrder() const; + /** + * @brief Sets whether or not to reverse the order of bars from cava. + * @param reverse True to reverse bar order, else false + */ + void setReverseBarOrder(bool reverse); + /** + * @brief Gets whether or not to use cava's automatic sensitivity detection. + * @return True to use automatic sensitivity + * @return False to not use automatic sensitivity + */ + bool getUseAutomaticSensitivity() const; + /** + * @brief Sets whether or not to use cava's automatic sensitivity detection. + * @param sensitivity True to use automatic sensitivity, else flase + */ + void setUseAutomaticSensitivity(bool sensitivity); + /** + * @brief Gets the sensitivity for cava. (10 - 100) + * @return The sensitivity + */ + unsigned int getSensitivity() const; + /** + * @brief Sets the sensitivity for cava. (10 - 100) + * @param sensitivity The new sensitivity + */ + void setSensitivity(unsigned int sensitivity); + /** + * @brief Gets the channels to use for cava. + * @return The channels + */ + ChannelType getChannels() const; + /** + * @brief Sets the channels to use for cava. + * @param type The new channels + */ + void setChannels(ChannelType type); + /** + * @brief Gets whether or not to use cava's monstercat smoothing. + * @return True to use monstercat smoothing + * @return False to not use monstercar smoothing + */ + bool getUseMonstercatSmoothing() const; + /** + * @brief Sets whether or not to use cava's monstercat smoothing. + * @param monstercat True to use monstercat smoothing, else false + */ + void setUseMonstercatSmoothing(bool monstercat); + /** + * @brief Gets the noise reduction factor for cava. (15 - 95) + * @return The noise reduction factor + */ + unsigned int getNoiseReductionFactor() const; + /** + * @brief Sets the noise reduction factor for cava. (15 - 95) + * @param noiseReduction The new noise reduction factor + */ + void setNoiseReductionFactor(unsigned int noiseReduction); + /** + * @brief Gets the string to pass to cava for options. + * @return The options string + */ + std::string toCavaOptionsString() const; + /** + * @brief Converts the CavaOptions to a JSON object. + * @return The JSON object + */ + boost::json::object toJson() const; + /** + * @brief Compares this CavaOptions to oter via ==. + * @param other The CavaOptions to compare + * @return True if this == other + * @return False if this != other + */ + bool operator==(const CavaOptions& other) const; + /** + * @brief Compares this CavaOptions to oter via !=. + * @param other The CavaOptions to compare + * @return True if this != other + * @return False if this == other + */ + bool operator!=(const CavaOptions& other) const; + + private: + unsigned int m_framerate; + unsigned int m_numberOfBars; + bool m_reverseBarOrder; + bool m_useAutomaticSensitivity; + unsigned int m_sensitivity; + ChannelType m_channels; + bool m_useMonstercatSmoothing; + unsigned int m_noiseReductionFactor; + }; +} + +#endif //CAVAOPTIONS_H diff --git a/libcavalier/include/models/channeltype.h b/libcavalier/include/models/channeltype.h new file mode 100644 index 0000000..edbeef3 --- /dev/null +++ b/libcavalier/include/models/channeltype.h @@ -0,0 +1,16 @@ +#ifndef CHANNELTYPE_H +#define CHANNELTYPE_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief Types of audio channels. + */ + enum class ChannelType + { + Mono, + Stereo + }; +} + +#endif //CHANNELTYPE_H diff --git a/libcavalier/include/models/color.h b/libcavalier/include/models/color.h new file mode 100644 index 0000000..18d87df --- /dev/null +++ b/libcavalier/include/models/color.h @@ -0,0 +1,151 @@ +#ifndef COLOR_H +#define COLOR_H + +#include +#include + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of a RGBA color value. + */ + class Color + { + public: + /** + * @brief Constructs a Color. + */ + Color(); + /** + * @brief Constructs a Color. + * @brief The A color value will be set to 255. + * @param r The R color value + * @param g The G color value + * @param a The B color value + */ + Color(unsigned char r, unsigned char g, unsigned char b); + /** + * @brief Constructs a Color. + * @param r The R color value + * @param g The G color value + * @param a The B color value + * @param a The A color value + */ + Color(unsigned char r, unsigned char g, unsigned char b, unsigned char a); + /** + * @brief Constructs a Color. + * @brief Strings must be in one of the following formats: "rgb(r,g,b)", "r,g,b", "rgba(r,g,b,a)", "r,g,b,a", "#rrggbb", "#rrggbbaa". + * @brief If parsing fails, the Color will have an empty value. + * @param s The string to parse into a Color + */ + Color(const std::string& s); + /** + * @brief Constructs a Color from a json object. + * @param json The json object + */ + Color(boost::json::object json); + /** + * @brief Gets whether or not the Color object represents an empty value. + * @return True if empty, else false + */ + bool empty() const; + /** + * @brief Gets the R color value. + * @return The R color value + */ + unsigned char getR() const; + /** + * @brief Sets the R color value. + * @param r The new R color value + */ + void setR(unsigned char r); + /** + * @brief Gets the G color value. + * @return The G color value + */ + unsigned char getG() const; + /** + * @brief Sets the G color value. + * @param g The new G color value + */ + void setG(unsigned char g); + /** + * @brief Gets the B color value. + * @return The B color value + */ + unsigned char getB() const; + /** + * @brief Sets the B color value. + * @param b The new B color value + */ + void setB(unsigned char b); + /** + * @brief Gets the A color value. + * @return The A color value + */ + unsigned char getA() const; + /** + * @brief Sets the A color value. + * @param a The new A color value + */ + void setA(unsigned char a); + /** + * @brief Gets the hex value for this Color object. + * @param alpha Whether or not to include the alpha value in the hex value + * @return The hex value + */ + unsigned int toHex(bool alpha = true) const; + /** + * @brief Gets the rgb string for this Color object. + * @param header Whether or not to wrap the string in the header: rgb() + * @return If header is true, "rgb(r,g,b)" else "r,g,b" + */ + std::string toRGBString(bool header) const; + /** + * @brief Gets the rgba string for this Color object. + * @param header Whether or not to wrap the string in the header: rgba() + * @return If header is true, "rgba(r,g,b,a)" else "r,g,b,a" + */ + std::string toRGBAString(bool header) const; + /** + * @brief Gets the rgb hex string for this Color object. + * @return "#rrggbb" + */ + std::string toRGBHexString() const; + /** + * @brief Gets the rgba hex string for this Color object. + * @return "#rrggbbaa" + */ + std::string toRGBAHexString() const; + /** + * @brief Converts the Color to a JSON object. + * @return The JSON object + */ + boost::json::object toJson() const; + /** + * @brief Gets whether or not this Color is equal to compare Color. + * @param compare The Color to compare to + * @return True if this Color == compare Color + */ + bool operator==(const Color& compare) const; + /** + * @brief Gets whether or not this Color is not equal to compare Color. + * @param compare The Color to compare to + * @return True if this Color != compare Color + */ + bool operator!=(const Color& compare) const; + /** + * @brief Gets whether or not the object is valid or not. + * @return True if valid (!empty), else false + */ + operator bool() const; + + private: + unsigned char m_r; + unsigned char m_g; + unsigned char m_b; + unsigned char m_a; + }; +} + +#endif //COLOR_H diff --git a/libcavalier/include/models/colorprofile.h b/libcavalier/include/models/colorprofile.h new file mode 100644 index 0000000..7e1a262 --- /dev/null +++ b/libcavalier/include/models/colorprofile.h @@ -0,0 +1,129 @@ +#ifndef COLORPROFILE_H +#define COLORPROFILE_H + +#include +#include +#include +#include "color.h" +#include "theme.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of a color profile. + */ + class ColorProfile + { + public: + /** + * @brief Constructs a ColorProfile. + * @note The name of the profile will be "Default" localized. + */ + ColorProfile(); + /** + * @brief Constructs a ColorProfile. + * @param name The name of the profile + */ + ColorProfile(const std::string& name); + /** + * @brief Constructs a ColorProfile from a json object. + * @param json The json object + */ + ColorProfile(boost::json::object json); + /** + * @brief Gets the name of the color profile. + * @return The color profile's name + */ + const std::string& getName() const; + /** + * @brief Sets the name of the color profile. + * @param name The color profile's new name + */ + void setName(const std::string& name); + /** + * @brief Gets the application theme of the color profile. + * @return The color profile's application theme + */ + Theme getApplicationTheme() const; + /** + * @brief Sets the application theme of the color profile. + * @param theme The color profile's new application theme + */ + void setApplicationTheme(Theme theme); + /** + * @brief Gets the foreground colors of the color profile. + * @return The color profile's foreground colors + */ + const std::vector& getForegroundColors() const; + /** + * @brief Adds a foreground color to the color profile. + * @param color The new foreground color + * @return True if added + * @return False if not added (color already added as foreground color) + */ + bool addForegroundColor(const Color& color); + /** + * @brief Removes a foreground color from the color profile. + * @param color The foreground color to remove + * @return True if removed + * @return False is not removed (color has not been added as foreground color) + */ + bool removeForegroundColor(const Color& color); + /** + * @brief Removes all added foreground colors and adds the default foreground color to the color profile. + * @return True if foreground colors reset + * @return False if foreground colors not reset + */ + bool resetForegroundColors(); + /** + * @brief Gets the background colors of the color profile. + * @return The color profile's background colors + */ + const std::vector& getBackgroundColors() const; + /** + * @brief Adds a background color to the color profile. + * @param color The new background color + * @return True if added + * @return False if not added (color already added as background color) + */ + bool addBackgroundColor(const Color& color); + /** + * @brief Removes a background color from the color profile. + * @param color The background color to remove + * @return True if removed + * @return False is not removed (color has not been added as background color) + */ + bool removeBackgroundColor(const Color& color); + /** + * @brief Removes all added background colors and adds the default background color to the color profile. + * @return True if background colors reset + * @return False if background colors not reset + */ + bool resetBackgroundColors(); + /** + * @brief Converts the ColorProfile to a JSON object. + * @return The JSON object + */ + boost::json::object toJson() const; + /** + * @brief Gets whether or not this ColorProfile is equal to compare ColorProfile. + * @param compare The ColorProfile to compare to + * @return True if this ColorProfile == compare ColorProfile + */ + bool operator==(const ColorProfile& compare) const; + /** + * @brief Gets whether or not this ColorProfile is not equal to compare ColorProfile. + * @param compare The ColorProfile to compare to + * @return True if this ColorProfile != compare ColorProfile + */ + bool operator!=(const ColorProfile& compare) const; + + private: + std::string m_name; + Theme m_appTheme; + std::vector m_foregroundColors; + std::vector m_backgroundColors; + }; +} + +#endif //COLORPROFILE_H diff --git a/libcavalier/include/models/colortype.h b/libcavalier/include/models/colortype.h new file mode 100644 index 0000000..efd3622 --- /dev/null +++ b/libcavalier/include/models/colortype.h @@ -0,0 +1,16 @@ +#ifndef COLORTYPE_H +#define COLORTYPE_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief Types of colors. + */ + enum class ColorType + { + Background, + Foreground + }; +} + +#endif //COLORTYPE_H diff --git a/libcavalier/include/models/configuration.h b/libcavalier/include/models/configuration.h new file mode 100644 index 0000000..4b501a2 --- /dev/null +++ b/libcavalier/include/models/configuration.h @@ -0,0 +1,121 @@ +#ifndef CONFIGURATION_H +#define CONFIGURATION_H + +#include +#include +#include +#include +#include "backgroundimage.h" +#include "cavaoptions.h" +#include "colorprofile.h" +#include "drawingarea.h" +#include "theme.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model for the configuration of the application. + */ + class Configuration : public Nickvision::App::DataFileBase + { + public: + /** + * @brief Constructs a Configuration. + * @param key The key to pass to the DataFileBase + * @param appName The appName to pass to the DataFileBase + */ + Configuration(const std::string& key, const std::string& appName); + /** + * @brief Gets the preferred theme for the application. + * @return The preferred theme + */ + Theme getTheme() const; + /** + * @brief Sets the preferred theme for the application. + * @param theme The new preferred theme + */ + void setTheme(Theme theme); + /** + * @brief Gets the window geometry for the application. + * @return The window geometry + */ + App::WindowGeometry getWindowGeometry() const; + /** + * @brief Sets the window geometry for the application. + * @param geometry The new window geometry + */ + void setWindowGeometry(const App::WindowGeometry& geometry); + /** + * @brief Gets whether or not to automatically check for application updates. + * @return True to automatically check for updates, else false + */ + bool getAutomaticallyCheckForUpdates() const; + /** + * @brief Sets whether or not to automatically check for application updates. + * @param check Whether or not to automatically check for updates + */ + void setAutomaticallyCheckForUpdates(bool check); + /** + * @brief Gets the drawing area for the application. + * @return The drawing area + */ + DrawingArea getDrawingArea() const; + /** + * @brief Sets the drawing area for the application. + * @param area The new drawing area + */ + void setDrawingArea(const DrawingArea& area); + /** + * @brief Gets the cava options for the application. + * @return The cava options + */ + CavaOptions getCavaOptions() const; + /** + * @brief Sets the cava options for the application. + * @param cava The new cava options + */ + void setCavaOptions(const CavaOptions& cava); + /** + * @brief Gets the color profiles for the application. + * @return The list of color profiles + */ + std::vector getColorProfiles() const; + /** + * @brief Sets the color profiles for the application. + * @param profiles The new list of color profiles + */ + void setColorProfiles(const std::vector& profiles); + /** + * @brief Gets the index of the active color profile for the application. + * @return The index of the active color profile + */ + int getActiveColorProfileIndex() const; + /** + * @brief Sets the index of the active color profile for the application.. + * @param index The new index of the active color profile + */ + void setActiveColorProfileIndex(int index); + /** + * @brief Gets the background images for the application. + * @return The list of background images + */ + std::vector getBackgroundImages() const; + /** + * @brief Sets the background images for the application. + * @param images The new lsit of background images + */ + void setBackgroundImages(const std::vector& images); + /** + * @brief Gets the index of the active background image for the application. + * @return The index of the active background image + */ + int getActiveBackgroundImageIndex() const; + /** + * @brief Sets the index of the active background image for the application.. + * @param index The new index of the active background image + */ + void setActiveBackgroundImageIndex(int index); + }; +} + +#endif //CONFIGURATION_H diff --git a/libcavalier/include/models/drawingarea.h b/libcavalier/include/models/drawingarea.h new file mode 100644 index 0000000..4fab856 --- /dev/null +++ b/libcavalier/include/models/drawingarea.h @@ -0,0 +1,148 @@ +#ifndef DRAWINGAREA_H +#define DRAWINGAREA_H + +#include +#include "drawingdirection.h" +#include "drawingmode.h" +#include "drawingshape.h" +#include "mirrormode.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of the area (space) where the audio is drawn. + */ + class DrawingArea + { + public: + /** + * @brief Constructs a DrawingArea. + */ + DrawingArea(); + /** + * @brief Constructs a DrawingArea from a json object. + * @param json The json object + */ + DrawingArea(boost::json::object json); + /** + * @brief Gets the drawing mode of the area. + * @return The area's drawing mode + */ + DrawingMode getMode() const; + /** + * @brief Sets the drawing mode of the area. + * @param mode The new drawing mode + */ + void setMode(DrawingMode mode); + /** + * @brief Gets the drawing shape of the area. + * @return The area's drawing shape + */ + DrawingShape getShape() const; + /** + * @brief Sets the drawing shape of the area. + * @param shape The new drawing shape + */ + void setShape(DrawingShape shape); + /** + * @brief Gets the drawing direction of the area. + * @return The area's drawing direction + */ + DrawingDirection getDirection() const; + /** + * @brief Sets the drawing direction of the area. + * @param direction The new drawing direction + */ + void setDirection(DrawingDirection direction); + /** + * @brief Gets whether or not the area should fill in shapes or draw their outlines only. + * @return True to fill in shape + * @return False for outlines only + */ + bool getFillShape() const; + /** + * @brief Sets whether or not the area should fill in shapes or draw their outlines only. + * @param filleShape Set true to fill in shape or false for outlines only + */ + void setFillShape(bool fillShape); + /** + * @brief Gets the mirror mode of the area. + * @return The area's mirror mode + */ + MirrorMode getMirrorMode() const; + /** + * @brief Sets the mirror mode of the area. + * @param mode The new mirror mode + */ + void setMirrorMode(MirrorMode mode); + /** + * @brief Gets the margin of the area. (0 - 40 px) + * @return The area's margin + */ + unsigned int getMargin() const; + /** + * @brief Sets the margin of the area. (0 - 40 px) + * @param margin The new margin + */ + void setMargin(unsigned int margin); + /** + * @brief Gets the x offset of the area. (-5 - 5) + * @return The area's x offset + */ + int getXOffset() const; + /** + * @brief Sets the x offset of the area. (-5 - 5) + * @param offset The new x offset + */ + void setXOffset(int offset); + /** + * @brief Gets the y offset of the area. (-5 - 5) + * @return The area's y offset + */ + int getYOffset() const; + /** + * @brief Sets the y offset of the area. (-5 - 5) + * @param offset The new y offset + */ + void setYOffset(int offset); + /** + * @brief Gets the item spacing of the area. (0 - 20 %) + * @return The area's item spacing + */ + unsigned int getItemSpacing() const; + /** + * @brief Sets the item spacing of the area. (0 - 20 %) + * @param spacing The new item spacing + */ + void setItemSpacing(unsigned int spacing); + /** + * @brief Gets the item roundness of the area. (0 - 100 %) + * @return The area's item roundness + */ + unsigned int getItemRoundness() const; + /** + * @brief Sets the item roundness of the area. (0 - 100 %) + * @param roundness The new item roundness + */ + void setItemRoundness(unsigned int roundness); + /** + * @brief Converts the DrawingArea to a JSON object. + * @return The JSON object + */ + boost::json::object toJson() const; + + private: + DrawingMode m_mode; + DrawingShape m_shape; + DrawingDirection m_direction; + bool m_fillShape; + MirrorMode m_mirrorMode; + unsigned int m_margin; + int m_xOffset; + int m_yOffset; + unsigned int m_itemSpacing; + unsigned int m_itemRoundness; + }; +} + +#endif //DRAWINGAREA_H diff --git a/libcavalier/include/models/drawingdirection.h b/libcavalier/include/models/drawingdirection.h new file mode 100644 index 0000000..85a7077 --- /dev/null +++ b/libcavalier/include/models/drawingdirection.h @@ -0,0 +1,18 @@ +#ifndef DRAWINGDIRECTION_H +#define DRAWINGDIRECTION_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief Directions for drawing audio. + */ + enum class DrawingDirection + { + TopToBottom, + BottomToTop, + LeftToRight, + RightToLeft + }; +} + +#endif //DRAWINGDIRECTION_H diff --git a/libcavalier/include/models/drawingfunctionarguments.h b/libcavalier/include/models/drawingfunctionarguments.h new file mode 100644 index 0000000..919b403 --- /dev/null +++ b/libcavalier/include/models/drawingfunctionarguments.h @@ -0,0 +1,77 @@ +#ifndef DRAWINGFUNCTIONARGUMENTS_H +#define DRAWINGFUNCTIONARGUMENTS_H + +#include +#include +#include +#include "drawingdirection.h" +#include "drawingmode.h" +#include "point.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of arguments for a renderer's drawing function. + */ + class DrawingFunctionArguments + { + public: + /** + * @brief Constructs a DrawingFunctionArguments. + * @param sample The cava sample + * @param mode The drawing mode + * @param direction The drawing direction + * @param start The starting drawing point (top-left corner) + * @param end The ending drawing point (bottom-right corner) + * @param rotation Rotation angle in radians (used for circle modes) + * @param paint Skia paint brush + */ + DrawingFunctionArguments(const std::vector& sample, DrawingMode mode, DrawingDirection direction, const Point& start, const Point& end, float rotation, const SkPaint& paint); + /** + * @brief Gets the cava sample. + * @return The cava sample + */ + const std::vector& getSample() const; + /** + * @brief Gets the drawing mode. + * @return The drawing mode + */ + DrawingMode getMode() const; + /** + * @brief Gets the drawing direction. + * @return The drawing direction + */ + DrawingDirection getDirection() const; + /** + * @brief Gets the starting drawing point. + * @return The start point + */ + const Point& getStart() const; + /** + * @brief Gets the ending drawing point. + * @return The end point + */ + const Point& getEnd() const; + /** + * @brief Gets the rotation angle in radians. + * @return The rotation angle + */ + float getRotation() const; + /** + * @brief Gets the skia paint brush. + * @return The skia paint brush + */ + const SkPaint& getPaint() const; + + private: + std::vector m_sample; + DrawingMode m_mode; + DrawingDirection m_direction; + Point m_start; + Point m_end; + float m_rotation; + SkPaint m_paint; + }; +} + +#endif //DRAWINGFUNCTIONARGUMENTS_H diff --git a/libcavalier/include/models/drawingmode.h b/libcavalier/include/models/drawingmode.h new file mode 100644 index 0000000..4dcbc09 --- /dev/null +++ b/libcavalier/include/models/drawingmode.h @@ -0,0 +1,16 @@ +#ifndef DRAWINGMODE_H +#define DRAWINGMODE_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief Modes for drawing audio. + */ + enum class DrawingMode + { + Box, + Circle + }; +} + +#endif //DRAWINGMODE_H diff --git a/libcavalier/include/models/drawingshape.h b/libcavalier/include/models/drawingshape.h new file mode 100644 index 0000000..aa6f058 --- /dev/null +++ b/libcavalier/include/models/drawingshape.h @@ -0,0 +1,21 @@ +#ifndef DRAWINGSHAPE_H +#define DRAWINGSHAPE_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief Shapes for drawing audio. + */ + enum class DrawingShape + { + Wave, + Levels, + Particles, + Bars, + Spine, + Splitter, + Hearts + }; +} + +#endif //DRAWINGSHAPE_H diff --git a/libcavalier/include/models/mirrormode.h b/libcavalier/include/models/mirrormode.h new file mode 100644 index 0000000..e7cbb28 --- /dev/null +++ b/libcavalier/include/models/mirrormode.h @@ -0,0 +1,19 @@ +#ifndef MIRRORMODE_H +#define MIRRORMODE_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief Modes for mirroring drawing of audio. + */ + enum class MirrorMode + { + Off, + Full, + SplitChannels, + ReverseFull, + ReverseSplitChannels + }; +} + +#endif //MIRRORMODE_H diff --git a/libcavalier/include/models/pngimage.h b/libcavalier/include/models/pngimage.h new file mode 100644 index 0000000..2903539 --- /dev/null +++ b/libcavalier/include/models/pngimage.h @@ -0,0 +1,54 @@ +#ifndef PNGIMAGE_H +#define PNGIMAGE_H + +#include +#include +#include + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of a png image. + */ + class PngImage + { + public: + /** + * @brief Creates a PngImage. + * @param width The width of the image + * @param height The height of the image + * @param bytes The bytes of the image + * @param size The size of the bytes of the image + */ + PngImage(int width, int height, const std::uint8_t* bytes, size_t size); + /** + * @brief Gets the width of the image. + * @return The image width + */ + int getWidth() const; + /** + * @brief Gets the height of the image. + * @return The image height + */ + int getHeight() const; + /** + * @brief Gets the bytes of the image. + * @return The image bytes + */ + const std::vector& getBytes() const; + /** + * @brief Saves the file to disk. + * @param file The file path + * @return True if saved successfully + * @return False if error + */ + bool save(const std::filesystem::path& file) const; + + private: + int m_width; + int m_height; + std::vector m_bytes; + }; +} + +#endif //PNGIMAGE_H diff --git a/libcavalier/include/models/point.h b/libcavalier/include/models/point.h new file mode 100644 index 0000000..128603c --- /dev/null +++ b/libcavalier/include/models/point.h @@ -0,0 +1,50 @@ +#ifndef POINT_H +#define POINT_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model of a coordinate point (x, y). + */ + class Point + { + public: + /** + * @brief Constructs a Point. + * @brief Default: (0,0) + */ + Point(); + /** + * @brief Constructs a Point. + * @param x The x value of the point + * @param y The y value of the point + */ + Point(float x, float y); + /** + * @brief Gets the x value of the point. + * @return The x value + */ + float getX() const; + /** + * @brief Sets the x value of the point. + * @param x The new x value + */ + void setX(float x); + /** + * @brief Gets the y value of the point. + * @return The y value + */ + float getY() const; + /** + * @brief Sets the y value of the point. + * @param y The new y value + */ + void setY(float y); + + private: + float m_x; + float m_y; + }; +} + +#endif //POINT_H diff --git a/libcavalier/include/models/renderer.h b/libcavalier/include/models/renderer.h new file mode 100644 index 0000000..ee68932 --- /dev/null +++ b/libcavalier/include/models/renderer.h @@ -0,0 +1,178 @@ +#ifndef RENDERER_H +#define RENDERER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include "backgroundimage.h" +#include "canvas.h" +#include "colorprofile.h" +#include "drawingarea.h" +#include "drawingfunctionarguments.h" +#include "pngimage.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A renderer of music data. + */ + class Renderer + { + public: + /** + * @brief Constructs a Renderer. + */ + Renderer(); + /** + * @brief Constructs a Renderer. + * @param drawingArea The drawing area options + * @param colorProfile The active color profile + * @param backgroundImage The optional background image to render + */ + Renderer(const DrawingArea& drawingArea, const ColorProfile& colorProfile, const std::optional& backgroundImage = std::nullopt); + /** + * @brief Gets whether or not the GPU is being used for rendering. + * @return True if using GPU + * @return False is using CPU + */ + bool isGPURendering() const; + /** + * @brief Sets the canvas' size. + * @param canvas The new canvas size + */ + void setCanvasSize(int width, int height); + /** + * @brief Gets the drawing area options. + * @return The drawing area options + */ + const DrawingArea& getDrawingArea() const; + /** + * @brief Sets the drawing area options. + * @param area The new drawing area options + */ + void setDrawingArea(const DrawingArea& area); + /** + * @brief Gets the active color profile. + * @return The active color profile + */ + const ColorProfile& getColorProfile() const; + /** + * @brief Sets the active color profile. + * @param profile The new active color profile + */ + void setColorProfile(const ColorProfile& profile); + /** + * @brief Gets the active background image. + * @return The active backgrouind image + */ + const std::optional& getBackgroundImage() const; + /** + * @brief Sets the active background image. + * @param image The new active background image + */ + void setBackgroundImage(const std::optional& image); + /** + * @brief Renders and draws the sample on the canvas. + * @param sample The cava sample + * @return The rendered png image if successful + * @return std::nullopt if rendering not successful + */ + std::optional draw(const std::vector& sample); + + private: + /** + * @brief Gets a mirrored width according to drawing area configuration. + * @param width The width to mirror + * @return The mirrored width + */ + float getMirrorWidth(float width); + /** + * @brief Gets a mirrored height according to drawing area configuration. + * @param height The height to mirror + * @return The mirrored height + */ + float getMirrorHeight(float height); + /** + * @brief Gets a mirrored x-value according to drawing area configuration. + * @param x The x-value to mirror + * @return The mirrored x-value + */ + float getMirrorX(float x); + /** + * @brief Gets a mirrored y-value according to drawing area configuration. + * @param y The y-value to mirror + * @return The mirrored y-value + */ + float getMirrorY(float y); + /** + * @brief Gets a gradient based on the current color profile's background colors. + * @param useForegroundColors Whether or not to use the color profile's foreground colors for the background gradient instead. + * @return The background color gradient + */ + sk_sp getBackgroundGradient(bool useForegroundColors = false); + /** + * @brief Gets a gradient based on the current color profile's background colors. + * @return The background color gradient + */ + sk_sp getForegroundGradient(); + /** + * @brief Gets a paint brush for a spine drawing. + * @param paint The paint brush to modify + * @param sample The sample value + * @return The modified paint brush + */ + SkPaint getPaintForSpine(const SkPaint& paint, float sample); + /** + * @brief Creates a wave drawing. + * @param args The DrawingFunctionArguments + */ + void drawWave(const DrawingFunctionArguments& args); + /** + * @brief Creates a levels drawing. + * @param args The DrawingFunctionArguments + */ + void drawLevels(const DrawingFunctionArguments& args); + /** + * @brief Creates a particles drawing. + * @param args The DrawingFunctionArguments + */ + void drawParticles(const DrawingFunctionArguments& args); + /** + * @brief Creates a bars drawing. + * @param args The DrawingFunctionArguments + */ + void drawBars(const DrawingFunctionArguments& args); + /** + * @brief Creates a spine drawing. + * @param args The DrawingFunctionArguments + */ + void drawSpine(const DrawingFunctionArguments& args); + /** + * @brief Creates a splitter drawing. + * @param args The DrawingFunctionArguments + * @note The splitter shape does not support circle mode. Thus, this function will always draw in box mode. + */ + void drawSplitter(const DrawingFunctionArguments& args); + /** + * @brief Creates a hearts drawing. + * @param args The DrawingFunctionArguments + */ + void drawHearts(const DrawingFunctionArguments& args); + mutable std::mutex m_mutex; + Canvas m_canvas; + DrawingArea m_drawingArea; + ColorProfile m_colorProfile; + std::optional m_backgroundImage; + std::shared_ptr m_backgroundBitmap; + bool m_createCanvas; + int m_canvasWidth; + int m_canvasHeight; + }; +} + +#endif // RENDERER_H diff --git a/libcavalier/include/models/startupinformation.h b/libcavalier/include/models/startupinformation.h new file mode 100644 index 0000000..57873c0 --- /dev/null +++ b/libcavalier/include/models/startupinformation.h @@ -0,0 +1,39 @@ +#ifndef STARTUPINFORMATION_H +#define STARTUPINFORMATION_H + +#include + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief A model for the startup information of the application. + */ + class StartupInformation + { + public: + /** + * @brief Constructs a StartupInformation. + */ + StartupInformation(); + /** + * @brief Constructs a StartupInformation. + * @param windowGeometry The window geometry + */ + StartupInformation(const Nickvision::App::WindowGeometry& windowGeometry); + /** + * @brief Gets the window geometry. + * @return The window geometry + */ + const Nickvision::App::WindowGeometry& getWindowGeometry() const; + /** + * @brief Sets the window geometry. + * @param windowGeometry The window geometry to set + */ + void setWindowGeometry(const Nickvision::App::WindowGeometry& windowGeometry); + + private: + Nickvision::App::WindowGeometry m_windowGeometry; + }; +} + +#endif //STARTUPINFORMATION_H \ No newline at end of file diff --git a/libcavalier/include/models/theme.h b/libcavalier/include/models/theme.h new file mode 100644 index 0000000..5fa137f --- /dev/null +++ b/libcavalier/include/models/theme.h @@ -0,0 +1,17 @@ +#ifndef THEME_H +#define THEME_H + +namespace Nickvision::Cavalier::Shared::Models +{ + /** + * @brief User interface themes for an application. + */ + enum class Theme + { + Light = 0, + Dark, + System + }; +} + +#endif //THEME_H \ No newline at end of file diff --git a/libcavalier/src/controllers/mainwindowcontroller.cpp b/libcavalier/src/controllers/mainwindowcontroller.cpp new file mode 100644 index 0000000..748ff7d --- /dev/null +++ b/libcavalier/src/controllers/mainwindowcontroller.cpp @@ -0,0 +1,238 @@ +#include "controllers/mainwindowcontroller.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "models/configuration.h" + +using namespace Nickvision::App; +using namespace Nickvision::Cavalier::Shared::Models; +using namespace Nickvision::Events; +using namespace Nickvision::Filesystem; +using namespace Nickvision::Helpers; +using namespace Nickvision::Notifications; +using namespace Nickvision::System; +using namespace Nickvision::Update; + +namespace Nickvision::Cavalier::Shared::Controllers +{ + MainWindowController::MainWindowController(const std::vector& args) + : m_started{ false }, + m_args{ args }, + m_appInfo{ "org.nickvision.cavalier", "Nickvision Cavalier", "Cavalier" }, + m_dataFileManager{ m_appInfo.getName() }, + m_cava{ m_dataFileManager.get("config").getCavaOptions(), m_appInfo.getName() }, + m_renderer{ m_dataFileManager.get("config").getDrawingArea(), m_dataFileManager.get("config").getColorProfiles()[m_dataFileManager.get("config").getActiveColorProfileIndex()] } + { + m_appInfo.setVersion({ "2025.4.0-next" }); + m_appInfo.setShortName(_("Cavalier")); + m_appInfo.setDescription(_("Visualize audio with CAVA")); + m_appInfo.setChangelog("- Rewrote Cavalier in C++ for faster and smoother performance\n- Added a Qt version of Cavalier which also runs on Windows\n- Added the ability to specify the `CAVALIER_INPUT_SOURCE` environment variable to change Cavalier's audio source\n- Increased the maximuim number of bars to 200\n- Removed the ability to control Cavalier via CLI. If enough users ask, we will add it back\n- Removed the ability to set a foreground image in the drawing area\n- Updated cava"); + m_appInfo.setSourceRepo("https://github.com/NickvisionApps/Cavalier"); + m_appInfo.setIssueTracker("https://github.com/NickvisionApps/Cavalier/issues/new"); + m_appInfo.setSupportUrl("https://github.com/NickvisionApps/Cavalier/discussions"); + m_appInfo.getExtraLinks()[_("Matrix Chat")] = "https://matrix.to/#/#nickvision:matrix.org"; + m_appInfo.getDevelopers()["Nicholas Logozzo"] = "https://github.com/nlogozzo"; + m_appInfo.getDevelopers()[_("Contributors on GitHub")] = "https://github.com/NickvisionApps/Cavalier/graphs/contributors"; + m_appInfo.getDesigners()["Nicholas Logozzo"] = "https://github.com/nlogozzo"; + m_appInfo.getDesigners()[_("Fyodor Sobolev")] = "https://github.com/fsobolev"; + m_appInfo.getDesigners()["DaPigGuy"] = "https://github.com/DaPigGuy"; + m_appInfo.getArtists()[_("David Lapshin")] = "https://github.com/daudix"; + m_appInfo.setTranslatorCredits(_("translator-credits")); + Localization::Gettext::init(m_appInfo.getEnglishShortName()); +#ifdef _WIN32 + m_updater = std::make_shared(m_appInfo.getSourceRepo()); +#endif + if(m_dataFileManager.get("config").getActiveBackgroundImageIndex() != -1) + { + m_renderer.setBackgroundImage(m_dataFileManager.get("config").getBackgroundImages()[m_dataFileManager.get("config").getActiveBackgroundImageIndex()]); + } + //Events + m_dataFileManager.get("config").saved() += [this](const EventArgs&){ onConfigurationSaved(); }; + m_cava.outputReceived() += [this](const ParamEventArgs>& args){ onOutputReceived(args); }; + } + + Event& MainWindowController::configurationSaved() + { + return m_dataFileManager.get("config").saved(); + } + + Event& MainWindowController::notificationSent() + { + return AppNotification::sent(); + } + + Event& MainWindowController::cavaOutputStopped() + { + return m_cavaOutputStopped; + } + + Event>& MainWindowController::imageRendered() + { + return m_imageRendered; + } + + const AppInfo& MainWindowController::getAppInfo() const + { + return m_appInfo; + } + + Theme MainWindowController::getTheme() + { + return m_dataFileManager.get("config").getTheme(); + } + + std::string MainWindowController::getDebugInformation(const std::string& extraInformation) const + { + std::stringstream builder; + //cava + if(Environment::findDependency("cava").empty()) + { + builder << "cava not found" << std::endl; + } + else + { + builder << Environment::exec(Environment::findDependency("cava").string() + " -v"); + } + //Render + builder << "GPU Rendering: " << (m_renderer.isGPURendering() ? "Enabled\n" : "Disabled\n") << std::endl; + //Extra + if(!extraInformation.empty()) + { + builder << extraInformation << std::endl; +#ifdef __linux__ + builder << Environment::exec("locale"); +#endif + } + return Environment::getDebugInformation(m_appInfo, builder.str()); + } + + bool MainWindowController::canShutdown() const + { + return true; + } + + std::shared_ptr MainWindowController::createPreferencesViewController() + { + return std::make_shared(m_dataFileManager.get("config")); + } + +#ifdef _WIN32 + const StartupInformation& MainWindowController::startup(HWND hwnd) +#elif defined(__linux__) + const StartupInformation& MainWindowController::startup(const std::string& desktopFile) +#else + const StartupInformation& MainWindowController::startup() +#endif + { + static StartupInformation info; + if (m_started) + { + return info; + } + //Load configuration + info.setWindowGeometry(m_dataFileManager.get("config").getWindowGeometry()); + m_renderer.setCanvasSize(static_cast(info.getWindowGeometry().getWidth()), static_cast(info.getWindowGeometry().getHeight())); + //Load taskbar item +#ifdef _WIN32 + m_taskbar.connect(hwnd); + if (m_dataFileManager.get("config").getAutomaticallyCheckForUpdates()) + { + checkForUpdates(); + } +#elif defined(__linux__) + m_taskbar.connect(desktopFile); +#endif + m_cava.start(); + m_started = true; + return info; + } + + void MainWindowController::shutdown(const WindowGeometry& geometry) + { + Configuration& config{ m_dataFileManager.get("config") }; + config.setWindowGeometry(geometry); + config.save(); + } + + void MainWindowController::checkForUpdates() + { + if(!m_updater) + { + return; + } + std::thread worker{ [this]() + { + Version latest{ m_updater->fetchCurrentVersion(VersionType::Stable) }; + if(!latest.empty()) + { + if(latest > m_appInfo.getVersion()) + { + AppNotification::send({ _("New update available"), NotificationSeverity::Success, "update" }); + } + } + } }; + worker.detach(); + } + +#ifdef _WIN32 + void MainWindowController::windowsUpdate() + { + if(!m_updater) + { + return; + } + AppNotification::send({ _("The update is downloading in the background and will start once it finishes"), NotificationSeverity::Informational }); + std::thread worker{ [this]() + { + if(!m_updater->windowsUpdate(VersionType::Stable)) + { + AppNotification::send({ _("Unable to download and install update"), NotificationSeverity::Error }); + } + } }; + worker.detach(); + } +#endif + + void MainWindowController::setCanvasSize(int width, int height) + { + m_renderer.setCanvasSize(width, height); + } + + void MainWindowController::onConfigurationSaved() + { + Configuration& config{ m_dataFileManager.get("config") }; + m_cava.setOptions(config.getCavaOptions()); + m_renderer.setDrawingArea(config.getDrawingArea()); + m_renderer.setColorProfile(config.getColorProfiles()[config.getActiveColorProfileIndex()]); + if(config.getActiveBackgroundImageIndex() != -1) + { + m_renderer.setBackgroundImage(config.getBackgroundImages()[config.getActiveBackgroundImageIndex()]); + } + else + { + m_renderer.setBackgroundImage(std::nullopt); + } + } + + void MainWindowController::onOutputReceived(const ParamEventArgs>& args) + { + if(args.getParam().empty()) + { + m_cavaOutputStopped.invoke({}); + } + else + { + std::optional image{ m_renderer.draw(args.getParam()) }; + if(image) + { + m_imageRendered.invoke({ *image }); + } + } + } +} diff --git a/libcavalier/src/controllers/preferencesviewcontroller.cpp b/libcavalier/src/controllers/preferencesviewcontroller.cpp new file mode 100644 index 0000000..e06420a --- /dev/null +++ b/libcavalier/src/controllers/preferencesviewcontroller.cpp @@ -0,0 +1,123 @@ +#include "controllers/preferencesviewcontroller.h" +#include + +using namespace Nickvision::Cavalier::Shared::Models; + +namespace Nickvision::Cavalier::Shared::Controllers +{ + PreferencesViewController::PreferencesViewController(Configuration& configuration) + : m_configuration{ configuration } + { + + } + + Theme PreferencesViewController::getTheme() const + { + return m_configuration.getTheme(); + } + + void PreferencesViewController::setTheme(Theme theme) + { + m_configuration.setTheme(theme); + } + + bool PreferencesViewController::getAutomaticallyCheckForUpdates() const + { + return m_configuration.getAutomaticallyCheckForUpdates(); + } + + void PreferencesViewController::setAutomaticallyCheckForUpdates(bool check) + { + m_configuration.setAutomaticallyCheckForUpdates(check); + } + + DrawingArea PreferencesViewController::getDrawingArea() const + { + return m_configuration.getDrawingArea(); + } + + void PreferencesViewController::setDrawingArea(const DrawingArea& area) + { + m_configuration.setDrawingArea(area); + } + + CavaOptions PreferencesViewController::getCavaOptions() const + { + return m_configuration.getCavaOptions(); + } + + void PreferencesViewController::setCavaOptions(const CavaOptions& cava) + { + m_configuration.setCavaOptions(cava); + } + + std::vector PreferencesViewController::getColorProfiles() const + { + return m_configuration.getColorProfiles(); + } + + void PreferencesViewController::setColorProfiles(const std::vector& profiles) + { + m_configuration.setColorProfiles(profiles); + } + + std::vector PreferencesViewController::getColorProfileNames() const + { + std::vector names; + for(const ColorProfile& profile : m_configuration.getColorProfiles()) + { + names.push_back(profile.getName()); + } + return names; + } + + int PreferencesViewController::getActiveColorProfileIndex() const + { + return m_configuration.getActiveColorProfileIndex(); + } + + void PreferencesViewController::setActiveColorProfileIndex(int index) + { + m_configuration.setActiveColorProfileIndex(index); + } + + std::vector PreferencesViewController::getBackgroundImages() const + { + return m_configuration.getBackgroundImages(); + } + + void PreferencesViewController::setBackgroundImages(const std::vector& images) + { + m_configuration.setBackgroundImages(images); + } + + std::vector PreferencesViewController::getBackgroundImageNames() const + { + std::vector names; + names.push_back(_("None")); + for(const BackgroundImage& image : m_configuration.getBackgroundImages()) + { + names.push_back(image.getPath().filename().string()); + } + return names; + } + + int PreferencesViewController::getActiveBackgroundImageIndex() const + { + return m_configuration.getActiveBackgroundImageIndex() + 1; + } + + void PreferencesViewController::setActiveBackgroundImageIndex(int index) + { + if(m_configuration.getBackgroundImages().size() == 0) + { + index = 0; + } + m_configuration.setActiveBackgroundImageIndex(index - 1); + } + + void PreferencesViewController::saveConfiguration() + { + m_configuration.save(); + } +} diff --git a/libcavalier/src/models/backgroundimage.cpp b/libcavalier/src/models/backgroundimage.cpp new file mode 100644 index 0000000..c1597d8 --- /dev/null +++ b/libcavalier/src/models/backgroundimage.cpp @@ -0,0 +1,82 @@ +#include "models/backgroundimage.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + BackgroundImage::BackgroundImage(const std::filesystem::path& path) + : m_path{ path }, + m_scale{ 100 }, + m_alpha{ 100 } + { + + } + + BackgroundImage::BackgroundImage(const std::filesystem::path& path, unsigned int scale, unsigned int alpha) + : m_path{ path }, + m_scale{ scale }, + m_alpha{ alpha } + { + + } + + BackgroundImage::BackgroundImage(boost::json::object json) + : m_path{ json["Path"].is_string() ? std::string(json["Path"].as_string()) : "" }, + m_scale{ json["Scale"].is_uint64() ? static_cast(json["Scale"].as_uint64()) : 100 }, + m_alpha{ json["Alpha"].is_uint64() ? static_cast(json["Alpha"].as_uint64()) : 100 } + { + + } + + const std::filesystem::path& BackgroundImage::getPath() const + { + return m_path; + } + + void BackgroundImage::setPath(const std::filesystem::path& path) + { + m_path = path; + } + + unsigned int BackgroundImage::getScale() const + { + return m_scale; + } + + void BackgroundImage::setScale(unsigned int scale) + { + m_scale = scale; + } + + unsigned int BackgroundImage::getAlpha() const + { + return m_alpha; + } + + void BackgroundImage::setAlpha(unsigned int alpha) + { + m_alpha = alpha; + } + + boost::json::object BackgroundImage::toJson() const + { + boost::json::object obj; + obj["Path"] = m_path.string(); + obj["Scale"] = m_scale; + obj["Alpha"] = m_alpha; + return obj; + } + + bool BackgroundImage::operator==(const BackgroundImage& compare) const + { + return m_path == compare.m_path; + } + + bool BackgroundImage::operator!=(const BackgroundImage& compare) const + { + return !(operator==(compare)); + } + + BackgroundImage::operator bool() const + { + return std::filesystem::exists(m_path); + } +} diff --git a/libcavalier/src/models/canvas.cpp b/libcavalier/src/models/canvas.cpp new file mode 100644 index 0000000..fc6ee11 --- /dev/null +++ b/libcavalier/src/models/canvas.cpp @@ -0,0 +1,117 @@ +#include "models/canvas.h" +#include +#include +#include +#include +#include +#include +#include + +namespace Nickvision::Cavalier::Shared::Models +{ + static int s_count = 0; + + Canvas::Canvas(int width, int height) + : m_glfw{ nullptr }, + m_surface{ nullptr }, + m_isGPUCanvas{ false }, + m_width{ width }, + m_height{ height } + { + ++s_count; + SkImageInfo info{ SkImageInfo::MakeN32Premul(width, height) }; + //Create GPU Renderer + if(glfwInit() == GLFW_TRUE) + { + glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE); + GLFWwindow* window{ glfwCreateWindow(width, height, "", nullptr, nullptr) }; + if(window) + { + glfwMakeContextCurrent(window); + sk_sp interface{ GrGLMakeNativeInterface() }; + if(!interface) + { + interface = GrGLMakeAssembledInterface(nullptr, +[](void*, const char* name) + { + return glfwGetProcAddress(name); + }); + } + m_context = GrDirectContexts::MakeGL(interface); + sk_sp gpuSurface{ SkSurfaces::RenderTarget(m_context.get(), skgpu::Budgeted::kNo, info) }; + if(gpuSurface) + { + m_surface = gpuSurface; + m_isGPUCanvas = true; + return; + } + } + } + //Fallback to CPU + m_surface = SkSurfaces::Raster(info); + } + + Canvas::~Canvas() + { + --s_count; + if(m_glfw) + { + glfwDestroyWindow(m_glfw); + } + if(s_count == 0) + { + glfwTerminate(); + } + } + + bool Canvas::isValid() const + { + return m_surface.operator bool(); + } + bool Canvas::isGPUCanvas() const + { + return m_isGPUCanvas; + } + + const sk_sp& Canvas::getSkiaSurface() const + { + return m_surface; + } + + SkCanvas* Canvas::getSkiaCanvas() const + { + return m_surface->getCanvas(); + } + + GrDirectContext* Canvas::getSkiaContext() const + { + return m_context.get(); + } + + int Canvas::getWidth() const + { + return m_width; + } + + int Canvas::getHeight() const + { + return m_height; + } + + void Canvas::flush() + { + if(m_context) + { + m_context->flushAndSubmit(m_surface.get(), GrSyncCpu::kYes); + } + } + + SkCanvas* Canvas::operator->() + { + return m_surface->getCanvas(); + } + + Canvas::operator bool() const + { + return isValid(); + } +} diff --git a/libcavalier/src/models/cava.cpp b/libcavalier/src/models/cava.cpp new file mode 100644 index 0000000..4c0c26d --- /dev/null +++ b/libcavalier/src/models/cava.cpp @@ -0,0 +1,145 @@ +#include "models/cava.h" +#include +#include +#include +#include +#include + +using namespace Nickvision::Events; +using namespace Nickvision::Filesystem; +using namespace Nickvision::Helpers; +using namespace Nickvision::System; + +#define CAVA_RAW_MAX 65530.0f +#define CAVA_WAIT std::chrono::milliseconds(10) + +namespace Nickvision::Cavalier::Shared::Models +{ + Cava::Cava(const CavaOptions& options, const std::string& appName) + : m_options{ options }, + m_isRecevingAudio{ false }, + m_configPath{ UserDirectories::get(ApplicationUserDirectory::Config, appName) / "cava_config" } + { + updateConfigFile(); + } + + Cava::~Cava() + { + if(m_process && m_process->kill()) + { + m_process->waitForExit(); + } + if(m_watcher.joinable()) + { + m_watcher.join(); + } + } + + Event>>& Cava::outputReceived() + { + return m_outputReceived; + } + + bool Cava::isRecevingAudio() const + { + std::lock_guard lock{ m_mutex }; + return m_isRecevingAudio; + } + + const CavaOptions& Cava::getOptions() const + { + std::lock_guard lock{ m_mutex }; + return m_options; + } + + void Cava::setOptions(const CavaOptions& options) + { + std::unique_lock lock{ m_mutex }; + if(m_options != options) + { + m_options = options; + updateConfigFile(); + lock.unlock(); + if(m_process->isRunning()) + { + start(); + } + } + } + + void Cava::start() + { + if(m_process && m_process->kill()) + { + m_process->waitForExit(); + } + if(m_watcher.joinable()) + { + m_watcher.join(); + } + std::lock_guard lock{ m_mutex }; + m_process.reset(); + std::vector arguments; + arguments.push_back("-p"); + arguments.push_back(m_configPath.string()); + m_process = std::make_shared(Environment::findDependency("cava"), arguments); + m_process->start(); + m_watcher = std::thread(&Cava::watch, this); + } + + void Cava::updateConfigFile() + { + std::ofstream file{ m_configPath, std::ios::trunc }; + file << m_options.toCavaOptionsString() << std::endl; + } + + void Cava::watch() + { + bool sentEmptyOutput{ false }; + while(m_process->isRunning()) + { + std::unique_lock lock{ m_mutex }; + std::vector frames{ StringHelpers::split(m_process->getOutput(), std::string(1, CAVA_FRAME_DELIMITER)) }; + std::vector bars; + for(std::vector::const_reverse_iterator itr = frames.rbegin(); itr != frames.rend(); ++itr) + { + const std::string& lastFrame{ *itr }; + if(std::count(lastFrame.begin(), lastFrame.end(), CAVA_BAR_DELIMITER) == m_options.getNumberOfBars()) + { + bars = StringHelpers::split(lastFrame, std::string(1, CAVA_BAR_DELIMITER)); + break; + } + } + if(bars.empty()) + { + std::this_thread::sleep_for(CAVA_WAIT); + continue; + } + std::vector sample(static_cast(m_options.getNumberOfBars())); + for(unsigned int i = 0; i < m_options.getNumberOfBars(); i++) + { + sample[i] = std::stof(bars[i].empty() ? "0" : bars[i]) / CAVA_ASCII_MAX_RANGE; + } + if(std::count(sample.begin(), sample.end(), 0.0f) == m_options.getNumberOfBars()) //No audio being received + { + m_isRecevingAudio = false; + lock.unlock(); + if(!sentEmptyOutput) + { + m_outputReceived.invoke({{}}); + sentEmptyOutput = true; + } + } + else + { + m_isRecevingAudio = true; + lock.unlock(); + sentEmptyOutput = false; + m_outputReceived.invoke({ sample }); + } + std::this_thread::sleep_for(CAVA_WAIT); + } + std::lock_guard lock{ m_mutex }; + m_isRecevingAudio = false; + } +} diff --git a/libcavalier/src/models/cavaoptions.cpp b/libcavalier/src/models/cavaoptions.cpp new file mode 100644 index 0000000..97b164a --- /dev/null +++ b/libcavalier/src/models/cavaoptions.cpp @@ -0,0 +1,189 @@ +#include "models/cavaoptions.h" +#include +#include +#include + +using namespace Nickvision::System; + +namespace Nickvision::Cavalier::Shared::Models +{ + CavaOptions::CavaOptions() + : m_framerate{ 60 }, + m_numberOfBars{ 24 }, + m_reverseBarOrder{ false }, + m_useAutomaticSensitivity{ true }, + m_sensitivity{ 10 }, + m_channels{ ChannelType::Stereo }, + m_useMonstercatSmoothing{ true }, + m_noiseReductionFactor{ 77 } + { + + } + + CavaOptions::CavaOptions(boost::json::object json) + : m_framerate{ json["Framerate"].is_uint64() ? static_cast(json["Framerate"].as_uint64()) : 60 }, + m_numberOfBars{ json["NumberOfBars"].is_uint64() ? static_cast(json["NumberOfBars"].as_uint64()) : 24 }, + m_reverseBarOrder{ json["ReverseBarOrder"].is_bool() ? json["ReverseBarOrder"].as_bool() : false }, + m_useAutomaticSensitivity{ json["UseAutomaticSensitivity"].is_bool() ? json["UseAutomaticSensitivity"].as_bool() : true }, + m_sensitivity{ json["Sensitivity"].is_uint64() ? static_cast(json["Sensitivity"].as_uint64()) : 10 }, + m_channels{ json["Channels"].is_int64() ? static_cast(json["Channels"].as_int64()) : ChannelType::Stereo }, + m_useMonstercatSmoothing{ json["UseMonstercatSmoothing"].is_bool() ? json["UseMonstercatSmoothing"].as_bool() : true }, + m_noiseReductionFactor{ json["NoiseReductionFactor"].is_uint64() ? static_cast(json["NoiseReductionFactor"].as_uint64()) : 77 } + { + + } + + unsigned int CavaOptions::getFramerate() const + { + return m_framerate; + } + + void CavaOptions::setFramerate(unsigned int framerate) + { + m_framerate = framerate; + } + + unsigned int CavaOptions::getNumberOfBars() const + { + return m_numberOfBars; + } + + void CavaOptions::setNumberOfBars(unsigned int bars) + { + if(bars < 6 || bars > 200) + { + bars = 24; + } + m_numberOfBars = bars; + } + + bool CavaOptions::getReverseBarOrder() const + { + return m_reverseBarOrder; + } + + void CavaOptions::setReverseBarOrder(bool reverse) + { + m_reverseBarOrder = reverse; + } + + bool CavaOptions::getUseAutomaticSensitivity() const + { + return m_useAutomaticSensitivity; + } + + void CavaOptions::setUseAutomaticSensitivity(bool sensitivity) + { + m_useAutomaticSensitivity = sensitivity; + } + + unsigned int CavaOptions::getSensitivity() const + { + return m_sensitivity; + } + + void CavaOptions::setSensitivity(unsigned int sensitivity) + { + if(sensitivity < 10 || sensitivity > 100) + { + sensitivity = 10; + } + m_sensitivity = sensitivity; + } + + ChannelType CavaOptions::getChannels() const + { + return m_channels; + } + + void CavaOptions::setChannels(ChannelType type) + { + m_channels = type; + } + + bool CavaOptions::getUseMonstercatSmoothing() const + { + return m_useMonstercatSmoothing; + } + + void CavaOptions::setUseMonstercatSmoothing(bool monstercat) + { + m_useMonstercatSmoothing = monstercat; + } + + unsigned int CavaOptions::getNoiseReductionFactor() const + { + return m_noiseReductionFactor; + } + + void CavaOptions::setNoiseReductionFactor(unsigned int noiseReduction) + { + if(noiseReduction < 15 || noiseReduction > 95) + { + noiseReduction = 77; + } + m_noiseReductionFactor = noiseReduction; + } + + std::string CavaOptions::toCavaOptionsString() const + { + std::stringstream builder; + builder << "[general]" << std::endl; + builder << "framerate = " << m_framerate << std::endl; + builder << "bars = " << m_numberOfBars << std::endl; + builder << "autosens = " << (m_useAutomaticSensitivity ? "1" : "0") << std::endl; + builder << "sensitivity = " << std::pow(m_sensitivity, 2) << std::endl; + if(Environment::getOperatingSystem() != OperatingSystem::Windows) + { + builder << "[input]" << std::endl; + builder << "method = " << (Environment::hasVariable("CAVALIER_INPUT_METHOD") ? Environment::getVariable("CAVALIER_INPUT_METHOD") : "pulse") << std::endl; + builder << "source = " << (Environment::hasVariable("CAVALIER_INPUT_SOURCE") ? Environment::getVariable("CAVALIER_INPUT_SOURCE") : "auto") << std::endl; + } + builder << "[output]" << std::endl; + builder << "method = raw" << std::endl; + builder << "bit_format = 16bit" << std::endl; + builder << "raw_target = /dev/stdout" << std::endl; + builder << "data_format = ascii" << std::endl; + builder << "ascii_max_range = " << CAVA_ASCII_MAX_RANGE << std::endl; + builder << "bar_delimiter = " << CAVA_BAR_DELIMITER << std::endl; + builder << "frame_delimiter = " << CAVA_FRAME_DELIMITER << std::endl; + builder << "channels = " << (m_channels == ChannelType::Mono ? "mono" : "stereo") << std::endl; + builder << "reverse = " << (m_reverseBarOrder ? "1" : "0") << std::endl; + builder << "[smoothing]" << std::endl; + builder << "monstercat = " << (m_useMonstercatSmoothing ? "1" : "0") << std::endl; + builder << "noise_reduction = " << m_noiseReductionFactor << std::endl; + return builder.str(); + } + + boost::json::object CavaOptions::toJson() const + { + boost::json::object obj; + obj["Framerate"] = m_framerate; + obj["NumberOfBars"] = m_numberOfBars; + obj["ReverseBarOrder"] = m_reverseBarOrder; + obj["UseAutomaticSensitivity"] = m_useAutomaticSensitivity; + obj["Sensitivity"] = m_sensitivity; + obj["Channels"] = static_cast(m_channels); + obj["UseMonstercatSmoothing"] = m_useMonstercatSmoothing; + obj["NoiseReductionFactor"] = m_noiseReductionFactor; + return obj; + } + + bool CavaOptions::operator==(const CavaOptions& other) const + { + return m_framerate == other.m_framerate && + m_numberOfBars == other.m_numberOfBars && + m_reverseBarOrder == other.m_reverseBarOrder && + m_useAutomaticSensitivity == other.m_useAutomaticSensitivity && + m_sensitivity == other.m_sensitivity && + m_channels == other.m_channels && + m_useMonstercatSmoothing == other.m_useMonstercatSmoothing && + m_noiseReductionFactor == other.m_noiseReductionFactor; + } + + bool CavaOptions::operator!=(const CavaOptions& other) const + { + return !(operator==(other)); + } + +} diff --git a/libcavalier/src/models/color.cpp b/libcavalier/src/models/color.cpp new file mode 100644 index 0000000..4c50c62 --- /dev/null +++ b/libcavalier/src/models/color.cpp @@ -0,0 +1,302 @@ +#include "models/color.h" +#include +#include +#include +#include + +using namespace Nickvision::Helpers; + +namespace Nickvision::Cavalier::Shared::Models +{ + Color::Color() + : m_r{ 0 }, + m_g{ 0 }, + m_b{ 0 }, + m_a{ 0 } + { + + } + + Color::Color(unsigned char r, unsigned char g, unsigned char b) + : m_r{ r }, + m_g{ g }, + m_b{ b }, + m_a{ 255 } + { + + } + + Color::Color(unsigned char r, unsigned char g, unsigned char b, unsigned char a) + : m_r{ r }, + m_g{ g }, + m_b{ b }, + m_a{ a } + { + + } + + Color::Color(const std::string& s) + : m_r{ 0 }, + m_g{ 0 }, + m_b{ 0 }, + m_a{ 0 } + { + if(s.empty()) + { + return; + } + unsigned char max{ std::numeric_limits::max() }; + unsigned char min{ std::numeric_limits::min() }; + if(s[0] == '#') + { + if(s.length() == 7) //#rrggbb + { + try + { + int r{ std::stoi(s.substr(1, 2), 0, 16) }; + int g{ std::stoi(s.substr(3, 2), 0, 16) }; + int b{ std::stoi(s.substr(5, 2), 0, 16) }; + if(r >= min && r <= max && g >= min && g <= max && b >= min && b <= max) + { + m_r = static_cast(r); + m_g = static_cast(g); + m_b = static_cast(b); + m_a = 255; + } + } + catch(...) + { + m_r = 0; + m_g = 0; + m_b = 0; + m_a = 0; + } + } + else if(s.length() == 9) //#rrggbbaa + { + try + { + int r{ std::stoi(s.substr(1, 2), 0, 16) }; + int g{ std::stoi(s.substr(3, 2), 0, 16) }; + int b{ std::stoi(s.substr(5, 2), 0, 16) }; + int a{ std::stoi(s.substr(7, 2), 0, 16) }; + if(r >= min && r <= max && g >= min && g <= max && b >= min && b <= max && a >= min && a <= max) + { + m_r = static_cast(r); + m_g = static_cast(g); + m_b = static_cast(b); + m_a = static_cast(a); + } + } + catch(...) + { + m_r = 0; + m_g = 0; + m_b = 0; + m_a = 0; + } + } + } + else + { + std::vector values{ StringHelpers::split(s, ",") }; + if(values.size() == 3) + { + if(values[0].substr(0, 4) == "rgb(") + { + values[0] = values[0].substr(4); + values[2] = values[2].substr(0, values[2].size() - 1); + } + try + { + int r{ std::stoi(values[0]) }; + int g{ std::stoi(values[1]) }; + int b{ std::stoi(values[2]) }; + if(r >= min && r <= max && g >= min && g <= max && b >= min && b <= max) + { + m_r = static_cast(r); + m_g = static_cast(g); + m_b = static_cast(b); + m_a = 255; + } + } + catch(...) + { + m_r = 0; + m_g = 0; + m_b = 0; + m_a = 0; + } + } + else if(values.size() == 4) + { + if(values[0].substr(0, 5) == "rgba(") + { + values[0] = values[0].substr(5); + values[3] = values[3].substr(0, values[3].size() - 1); + } + try + { + int r{ std::stoi(values[0]) }; + int g{ std::stoi(values[1]) }; + int b{ std::stoi(values[2]) }; + int a{ std::stoi(values[3]) }; + if(r >= min && r <= max && g >= min && g <= max && b >= min && b <= max && a >= min && a <= max) + { + m_r = static_cast(r); + m_g = static_cast(g); + m_b = static_cast(b); + m_a = static_cast(a); + } + } + catch(...) + { + m_r = 0; + m_g = 0; + m_b = 0; + m_a = 0; + } + } + } + } + + Color::Color(boost::json::object json) + : m_r{ json["R"].is_uint64() ? static_cast(json["R"].as_uint64()) : static_cast(0) }, + m_g{ json["G"].is_uint64() ? static_cast(json["G"].as_uint64()) : static_cast(0) }, + m_b{ json["B"].is_uint64() ? static_cast(json["B"].as_uint64()) : static_cast(0) }, + m_a{ json["A"].is_uint64() ? static_cast(json["A"].as_uint64()) : static_cast(0) } + { + + } + + bool Color::empty() const + { + return m_r == 0 && m_g == 0 && m_b == 0 && m_a == 0; + } + + unsigned char Color::getR() const + { + return m_r; + } + + void Color::setR(unsigned char r) + { + m_r = r; + } + + unsigned char Color::getG() const + { + return m_g; + } + + void Color::setG(unsigned char g) + { + m_g = g; + } + + unsigned char Color::getB() const + { + return m_b; + } + + void Color::setB(unsigned char b) + { + m_b = b; + } + + unsigned char Color::getA() const + { + return m_a; + } + + void Color::setA(unsigned char a) + { + m_a = a; + } + + unsigned int Color::toHex(bool alpha) const + { + return (m_r << 24) | (m_g << 16) | (m_b << 8) | (alpha ? m_a : 255); + } + + std::string Color::toRGBString(bool header) const + { + std::stringstream builder; + if(header) + { + builder << "rgb("; + } + builder << +m_r << ","; + builder << +m_g << ","; + builder << +m_b; + if(header) + { + builder << ")"; + } + return builder.str(); + } + + std::string Color::toRGBAString(bool header) const + { + std::stringstream builder; + if(header) + { + builder << "rgba("; + } + builder << +m_r << ","; + builder << +m_g << ","; + builder << +m_b << ","; + builder << +m_a; + if(header) + { + builder << ")"; + } + return builder.str(); + } + + std::string Color::toRGBHexString() const + { + std::stringstream builder; + builder << "#"; + builder << std::setfill ('0') << std::setw(2) << std::hex << +m_r; + builder << std::setfill ('0') << std::setw(2) << std::hex << +m_g; + builder << std::setfill ('0') << std::setw(2) << std::hex << +m_b; + return builder.str(); + } + + std::string Color::toRGBAHexString() const + { + std::stringstream builder; + builder << "#"; + builder << std::setfill ('0') << std::setw(2) << std::hex << +m_r; + builder << std::setfill ('0') << std::setw(2) << std::hex << +m_g; + builder << std::setfill ('0') << std::setw(2) << std::hex << +m_b; + builder << std::setfill ('0') << std::setw(2) << std::hex << +m_a; + return builder.str(); + } + + boost::json::object Color::toJson() const + { + boost::json::object obj; + obj["R"] = m_r; + obj["G"] = m_g; + obj["B"] = m_b; + obj["A"] = m_a; + return obj; + } + + bool Color::operator==(const Color& compare) const + { + return m_r == compare.m_r && m_g == compare.m_g && m_b == compare.m_b && m_a == compare.m_a; + } + + bool Color::operator!=(const Color& compare) const + { + return !operator==(compare); + } + + Color::operator bool() const + { + return !empty(); + } +} diff --git a/libcavalier/src/models/colorprofile.cpp b/libcavalier/src/models/colorprofile.cpp new file mode 100644 index 0000000..dd38067 --- /dev/null +++ b/libcavalier/src/models/colorprofile.cpp @@ -0,0 +1,175 @@ +#include "models/colorprofile.h" +#include +#include + +#define DEFAULT_FOREGROUND "#3584e4" +#define DEFAULT_BACKGROUND "#242424" + +namespace Nickvision::Cavalier::Shared::Models +{ + ColorProfile::ColorProfile() + : m_name{ _("Default") }, + m_appTheme{ Theme::System } + { + m_foregroundColors.push_back({ DEFAULT_FOREGROUND }); + m_backgroundColors.push_back({ DEFAULT_BACKGROUND }); + } + + ColorProfile::ColorProfile(const std::string& name) + : m_name{ name }, + m_appTheme{ Theme::System } + { + m_foregroundColors.push_back({ DEFAULT_FOREGROUND }); + m_backgroundColors.push_back({ DEFAULT_BACKGROUND }); + } + + ColorProfile::ColorProfile(boost::json::object json) + : m_name{ json["Name"].is_string() ? json["Name"].as_string() : _("Default") }, + m_appTheme{ json["ApplicationTheme"].is_int64() ? static_cast(json["ApplicationTheme"].as_int64()) : Theme::System } + { + if(json["ForegroundColors"].is_array()) + { + for(const boost::json::value& val : json["ForegroundColors"].as_array()) + { + if(val.is_object()) + { + m_foregroundColors.push_back(val.as_object()); + } + } + } + else + { + m_foregroundColors.push_back({ DEFAULT_FOREGROUND }); + } + if(json["BackgroundColors"].is_array()) + { + for(const boost::json::value& val : json["BackgroundColors"].as_array()) + { + if(val.is_object()) + { + m_backgroundColors.push_back(val.as_object()); + } + } + } + else + { + m_backgroundColors.push_back({ DEFAULT_BACKGROUND }); + } + } + + const std::string& ColorProfile::getName() const + { + return m_name; + } + + void ColorProfile::setName(const std::string& name) + { + m_name = name; + } + + Theme ColorProfile::getApplicationTheme() const + { + return m_appTheme; + } + + void ColorProfile::setApplicationTheme(Theme theme) + { + m_appTheme = theme; + } + + const std::vector& ColorProfile::getForegroundColors() const + { + return m_foregroundColors; + } + + bool ColorProfile::addForegroundColor(const Color& color) + { + if(std::find(m_foregroundColors.begin(), m_foregroundColors.end(), color) != m_foregroundColors.end()) + { + return false; + } + m_foregroundColors.push_back(color); + return true; + } + + bool ColorProfile::removeForegroundColor(const Color& color) + { + std::vector::iterator it{ std::find(m_foregroundColors.begin(), m_foregroundColors.end(), color) }; + if(it == m_foregroundColors.end()) + { + return false; + } + m_foregroundColors.erase(it); + return true; + } + + bool ColorProfile::resetForegroundColors() + { + m_foregroundColors.clear(); + m_foregroundColors.push_back({ DEFAULT_FOREGROUND }); + return true; + } + + const std::vector& ColorProfile::getBackgroundColors() const + { + return m_backgroundColors; + } + + bool ColorProfile::addBackgroundColor(const Color& color) + { + if(std::find(m_backgroundColors.begin(), m_backgroundColors.end(), color) != m_backgroundColors.end()) + { + return false; + } + m_backgroundColors.push_back(color); + return true; + } + + bool ColorProfile::removeBackgroundColor(const Color& color) + { + std::vector::iterator it{ std::find(m_backgroundColors.begin(), m_backgroundColors.end(), color) }; + if(it == m_backgroundColors.end()) + { + return false; + } + m_backgroundColors.erase(it); + return true; + } + + bool ColorProfile::resetBackgroundColors() + { + m_backgroundColors.clear(); + m_backgroundColors.push_back({ DEFAULT_BACKGROUND }); + return true; + } + + boost::json::object ColorProfile::toJson() const + { + boost::json::object obj; + boost::json::array foregroundColors; + boost::json::array backgroundColors; + for(const Color& color : m_foregroundColors) + { + foregroundColors.push_back(color.toJson()); + } + for(const Color& color : m_backgroundColors) + { + backgroundColors.push_back(color.toJson()); + } + obj["Name"] = m_name; + obj["ApplicationTheme"] = static_cast(m_appTheme); + obj["ForegroundColors"] = foregroundColors; + obj["BackgroundColors"] = backgroundColors; + return obj; + } + + bool ColorProfile::operator==(const ColorProfile& compare) const + { + return m_name == compare.m_name; + } + + bool ColorProfile::operator!=(const ColorProfile& compare) const + { + return !(operator==(compare)); + } +} diff --git a/libcavalier/src/models/configuration.cpp b/libcavalier/src/models/configuration.cpp new file mode 100644 index 0000000..e5abb9f --- /dev/null +++ b/libcavalier/src/models/configuration.cpp @@ -0,0 +1,160 @@ +#include "models/configuration.h" +#include + +using namespace Nickvision::App; +using namespace Nickvision::System; + +namespace Nickvision::Cavalier::Shared::Models +{ + Configuration::Configuration(const std::string& key, const std::string& appName) + : DataFileBase{ key, appName } + { + + } + + Theme Configuration::getTheme() const + { + return m_json["Theme"].is_int64() ? static_cast(m_json["Theme"].as_int64()) : Theme::System; + } + + void Configuration::setTheme(Theme theme) + { + m_json["Theme"] = static_cast(theme); + } + + WindowGeometry Configuration::getWindowGeometry() const + { + WindowGeometry geometry; + if(!m_json["WindowGeometry"].is_object()) + { + geometry.setWidth(800); + geometry.setHeight(600); + geometry.setIsMaximized(false); + return geometry; + } + boost::json::object& obj{ m_json["WindowGeometry"].as_object() }; + geometry.setWidth(obj["Width"].is_int64() ? static_cast(obj["Width"].as_int64()) : 800); + geometry.setHeight(obj["Height"].is_int64() ? static_cast(obj["Height"].as_int64()) : 600); + geometry.setIsMaximized(obj["IsMaximized"].is_bool() ? obj["IsMaximized"].as_bool() : false); + return geometry; + } + + void Configuration::setWindowGeometry(const WindowGeometry& geometry) + { + boost::json::object obj; + obj["Width"] = geometry.getWidth(); + obj["Height"] = geometry.getHeight(); + obj["IsMaximized"] = geometry.isMaximized(); + m_json["WindowGeometry"] = obj; + } + + bool Configuration::getAutomaticallyCheckForUpdates() const + { + return m_json["AutomaticallyCheckForUpdates"].is_bool() ? m_json["AutomaticallyCheckForUpdates"].as_bool() : Environment::getOperatingSystem() == OperatingSystem::Windows; + } + + void Configuration::setAutomaticallyCheckForUpdates(bool check) + { + m_json["AutomaticallyCheckForUpdates"] = check; + } + + DrawingArea Configuration::getDrawingArea() const + { + return m_json["DrawingArea"].is_object() ? DrawingArea(m_json["DrawingArea"].as_object()) : DrawingArea(); + } + + void Configuration::setDrawingArea(const DrawingArea& area) + { + m_json["DrawingArea"] = area.toJson(); + } + + CavaOptions Configuration::getCavaOptions() const + { + return m_json["CavaOptions"].is_object() ? CavaOptions(m_json["CavaOptions"].as_object()) : CavaOptions(); + } + + void Configuration::setCavaOptions(const CavaOptions& cava) + { + m_json["CavaOptions"] = cava.toJson(); + } + + std::vector Configuration::getColorProfiles() const + { + std::vector profiles; + if(m_json["ColorProfiles"].is_array()) + { + for(const boost::json::value& val : m_json["ColorProfiles"].as_array()) + { + if(val.is_object()) + { + profiles.push_back(val.as_object()); + } + } + } + else + { + profiles.push_back({}); //Default ColorProfile + } + return profiles; + } + + void Configuration::setColorProfiles(const std::vector& profiles) + { + boost::json::array arr; + for(const ColorProfile& profile : profiles) + { + arr.push_back(profile.toJson()); + } + m_json["ColorProfiles"] = arr; + } + + int Configuration::getActiveColorProfileIndex() const + { + return m_json["ActiveColorProfileIndex"].is_int64() ? static_cast(m_json["ActiveColorProfileIndex"].as_int64()) : 0; + } + + void Configuration::setActiveColorProfileIndex(int index) + { + m_json["ActiveColorProfileIndex"] = index; + } + + std::vector Configuration::getBackgroundImages() const + { + std::vector images; + if(m_json["BackgroundImages"].is_array()) + { + for(const boost::json::value& val : m_json["BackgroundImages"].as_array()) + { + if(val.is_object()) + { + BackgroundImage image = val.as_object(); + if(std::filesystem::exists(image.getPath())) + { + images.push_back(image); + } + } + } + } + return images; + } + + void Configuration::setBackgroundImages(const std::vector& images) + { + boost::json::array arr; + for(const BackgroundImage& image : images) + { + arr.push_back(image.toJson()); + } + m_json["BackgroundImages"] = arr; + } + + int Configuration::getActiveBackgroundImageIndex() const + { + return m_json["ActiveBackgroundImageIndex"].is_int64() ? static_cast(m_json["ActiveBackgroundImageIndex"].as_int64()) : -1; + } + + void Configuration::setActiveBackgroundImageIndex(int index) + { + m_json["ActiveBackgroundImageIndex"] = index; + } +} diff --git a/libcavalier/src/models/drawingarea.cpp b/libcavalier/src/models/drawingarea.cpp new file mode 100644 index 0000000..0772108 --- /dev/null +++ b/libcavalier/src/models/drawingarea.cpp @@ -0,0 +1,170 @@ +#include "models/drawingarea.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + DrawingArea::DrawingArea() + : m_mode{ DrawingMode::Box }, + m_shape{ DrawingShape::Wave }, + m_direction{ DrawingDirection::BottomToTop }, + m_fillShape{ true }, + m_mirrorMode{ MirrorMode::Off }, + m_margin{ 0 }, + m_xOffset{ 0 }, + m_yOffset{ 0 }, + m_itemSpacing{ 10 }, + m_itemRoundness{ 50 } + { + + } + + DrawingArea::DrawingArea(boost::json::object json) + : m_mode{ json["Mode"].is_int64() ? static_cast(json["Mode"].as_int64()) : DrawingMode::Box }, + m_shape{ json["Shape"].is_int64() ? static_cast(json["Shape"].as_int64()) : DrawingShape::Wave }, + m_direction{ json["Direction"].is_int64() ? static_cast(json["Direction"].as_int64()) : DrawingDirection::BottomToTop }, + m_fillShape{ json["FillShape"].is_bool() ? json["FillShape"].as_bool() : true }, + m_mirrorMode{ json["MirrorMode"].is_int64() ? static_cast(json["MirrorMode"].as_int64()) : MirrorMode::Off }, + m_margin{ json["Margin"].is_uint64() ? static_cast(json["Margin"].as_uint64()) : 0 }, + m_xOffset{ json["XOffset"].is_int64() ? static_cast(json["XOffset"].as_int64()) : 0 }, + m_yOffset{ json["YOffset"].is_int64() ? static_cast(json["YOffset"].as_int64()) : 0 }, + m_itemSpacing{ json["ItemSpacing"].is_uint64() ? static_cast(json["ItemSpacing"].as_uint64()) : 10 }, + m_itemRoundness{ json["ItemRoundness"].is_uint64() ? static_cast(json["ItemRoundness"].as_uint64()) : 50 } + { + + } + + DrawingMode DrawingArea::getMode() const + { + return m_mode; + } + + void DrawingArea::setMode(DrawingMode mode) + { + m_mode = mode; + } + + DrawingShape DrawingArea::getShape() const + { + return m_shape; + } + + void DrawingArea::setShape(DrawingShape shape) + { + m_shape = shape; + } + + DrawingDirection DrawingArea::getDirection() const + { + return m_direction; + } + + void DrawingArea::setDirection(DrawingDirection direction) + { + m_direction = direction; + } + + bool DrawingArea::getFillShape() const + { + return m_fillShape; + } + + void DrawingArea::setFillShape(bool fillShape) + { + m_fillShape = fillShape; + } + + MirrorMode DrawingArea::getMirrorMode() const + { + return m_mirrorMode; + } + + void DrawingArea::setMirrorMode(MirrorMode mode) + { + m_mirrorMode = mode; + } + + unsigned int DrawingArea::getMargin() const + { + return m_margin; + } + + void DrawingArea::setMargin(unsigned int margin) + { + if(margin > 40) + { + margin = 0; + } + m_margin = margin; + } + + int DrawingArea::getXOffset() const + { + return m_xOffset; + } + + void DrawingArea::setXOffset(int offset) + { + if(offset < -5 || offset > 5) + { + offset = 0; + } + m_xOffset = offset; + } + + int DrawingArea::getYOffset() const + { + return m_yOffset; + } + + void DrawingArea::setYOffset(int offset) + { + if(offset < -5 || offset > 5) + { + offset = 0; + } + m_yOffset = offset; + } + + unsigned int DrawingArea::getItemSpacing() const + { + return m_itemSpacing; + } + + void DrawingArea::setItemSpacing(unsigned int spacing) + { + if(spacing > 20) + { + spacing = 10; + } + m_itemSpacing = spacing; + } + + unsigned int DrawingArea::getItemRoundness() const + { + return m_itemRoundness; + } + + void DrawingArea::setItemRoundness(unsigned int roundness) + { + if(roundness > 100) + { + roundness = 50; + } + m_itemRoundness = roundness; + } + + boost::json::object DrawingArea::toJson() const + { + boost::json::object obj; + obj["Mode"] = static_cast(m_mode); + obj["Shape"] = static_cast(m_shape); + obj["Direction"] = static_cast(m_direction); + obj["FillShape"] = m_fillShape; + obj["MirrorMode"] = static_cast(m_mirrorMode); + obj["Margin"] = m_margin; + obj["XOffset"] = m_xOffset; + obj["YOffset"] = m_yOffset; + obj["ItemSpacing"] = m_itemSpacing; + obj["ItemRoundness"] = m_itemRoundness; + return obj; + } +} diff --git a/libcavalier/src/models/drawingfunctionarguments.cpp b/libcavalier/src/models/drawingfunctionarguments.cpp new file mode 100644 index 0000000..6e5eb67 --- /dev/null +++ b/libcavalier/src/models/drawingfunctionarguments.cpp @@ -0,0 +1,51 @@ +#include "models/drawingfunctionarguments.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + DrawingFunctionArguments::DrawingFunctionArguments(const std::vector& sample, DrawingMode mode, DrawingDirection direction, const Point& start, const Point& end, float rotation, const SkPaint& paint) + : m_sample{ sample }, + m_mode{ mode }, + m_direction{ direction }, + m_start{ start }, + m_end{ end }, + m_rotation{ rotation }, + m_paint{ paint } + { + + } + + const std::vector& DrawingFunctionArguments::getSample() const + { + return m_sample; + } + + DrawingMode DrawingFunctionArguments::getMode() const + { + return m_mode; + } + + DrawingDirection DrawingFunctionArguments::getDirection() const + { + return m_direction; + } + + const Point& DrawingFunctionArguments::getStart() const + { + return m_start; + } + + const Point& DrawingFunctionArguments::getEnd() const + { + return m_end; + } + + float DrawingFunctionArguments::getRotation() const + { + return m_rotation; + } + + const SkPaint& DrawingFunctionArguments::getPaint() const + { + return m_paint; + } +} diff --git a/libcavalier/src/models/pngimage.cpp b/libcavalier/src/models/pngimage.cpp new file mode 100644 index 0000000..2db9ead --- /dev/null +++ b/libcavalier/src/models/pngimage.cpp @@ -0,0 +1,39 @@ +#include "models/pngimage.h" +#include + +namespace Nickvision::Cavalier::Shared::Models +{ + PngImage::PngImage(int width, int height, const std::uint8_t* bytes, size_t size) + : m_width{ width }, + m_height{ height }, + m_bytes{ bytes, bytes + size } + { + + } + + int PngImage::getWidth() const + { + return m_width; + } + + int PngImage::getHeight() const + { + return m_height; + } + + const std::vector& PngImage::getBytes() const + { + return m_bytes; + } + + bool PngImage::save(const std::filesystem::path& file) const + { + if(file.extension() != ".png" && file.extension() != ".PNG") + { + return false; + } + std::ofstream out{ file, std::ios::trunc | std::ios::binary }; + out.write(reinterpret_cast(&m_bytes[0]), m_bytes.size()); + return true; + } +} diff --git a/libcavalier/src/models/point.cpp b/libcavalier/src/models/point.cpp new file mode 100644 index 0000000..0914314 --- /dev/null +++ b/libcavalier/src/models/point.cpp @@ -0,0 +1,38 @@ +#include "models/point.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + Point::Point() + : m_x{ 0 }, + m_y{ 0 } + { + + } + + Point::Point(float x, float y) + : m_x{ x }, + m_y{ y } + { + + } + + float Point::getX() const + { + return m_x; + } + + void Point::setX(float x) + { + m_x = x; + } + + float Point::getY() const + { + return m_y; + } + + void Point::setY(float y) + { + m_y = y; + } +} diff --git a/libcavalier/src/models/renderer.cpp b/libcavalier/src/models/renderer.cpp new file mode 100644 index 0000000..1592579 --- /dev/null +++ b/libcavalier/src/models/renderer.cpp @@ -0,0 +1,1019 @@ +#include "models/renderer.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "models/color.h" +#include "models/point.h" + +#define INNER_RADIUS 0.5f +#define LINE_THICKNESS 5 +#define PI std::numbers::pi_v +#define ROTATION 0.0f + +namespace Nickvision::Cavalier::Shared::Models +{ + static std::shared_ptr newBitmapFromImagePath(const std::filesystem::path& path) + { + if(!std::filesystem::exists(path)) + { + return nullptr; + } + std::shared_ptr bitmap{ std::make_shared() }; + sk_sp data{ SkData::MakeFromFileName(path.string().c_str()) }; + std::unique_ptr codec{ SkCodec::MakeFromData(data) }; + SkImageInfo info{ codec->getInfo().makeColorType(kN32_SkColorType).makeAlphaType(kPremul_SkAlphaType) }; + if(bitmap->tryAllocPixels(info)) + { + codec->getPixels(info, bitmap->getPixels(), bitmap->rowBytes()); + return bitmap; + } + return nullptr; + } + + static float flipCoord(float coordinate, float screenDimension, bool enabled) + { + float max{ std::max(0.0f, std::min(coordinate, screenDimension)) }; + return enabled ? screenDimension - max : max; + } + + static DrawingDirection getMirrorDirection(DrawingDirection direction) + { + switch(direction) + { + case DrawingDirection::TopToBottom: + return DrawingDirection::BottomToTop; + case DrawingDirection::BottomToTop: + return DrawingDirection::TopToBottom; + case DrawingDirection::LeftToRight: + return DrawingDirection::RightToLeft; + case DrawingDirection::RightToLeft: + return DrawingDirection::LeftToRight; + default: + return DrawingDirection::TopToBottom; + } + } + + static SkPath getHeartPath(float itemSize) + { + SkPath path; + path.moveTo(0.0f, itemSize / 2.0f); + path.cubicTo(0.0f, itemSize / 2.2f, + -itemSize / 1.8f, itemSize / 3.0f, + -itemSize / 2.0f, -itemSize / 6.0f); + path.cubicTo(-itemSize / 2.5f, -itemSize / 2.0f, + -itemSize / 6.5f, -itemSize / 2.0f, + 0.0, -itemSize / 5.5f); + path.cubicTo(itemSize / 6.5f, -itemSize / 2.0f, + itemSize / 2.5f, -itemSize / 2.0f, + itemSize / 2.0f, -itemSize / 6.0f); + path.cubicTo(itemSize / 1.8f, itemSize / 3.0f, + 0.0f, itemSize / 2.2f, + 0.0f, itemSize / 2.0f); + path.close(); + return path; + } + + Renderer::Renderer() + : m_canvas{ DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT }, + m_backgroundImage{ std::nullopt }, + m_createCanvas{ true }, + m_canvasWidth{ DEFAULT_CANVAS_WIDTH }, + m_canvasHeight{ DEFAULT_CANVAS_HEIGHT } + { + + } + + Renderer::Renderer(const DrawingArea& drawingArea, const ColorProfile& colorProfile, const std::optional& backgroundImage) + : m_canvas{ DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT }, + m_drawingArea{ drawingArea }, + m_colorProfile{ colorProfile }, + m_backgroundImage{ backgroundImage }, + m_createCanvas{ true }, + m_canvasWidth{ DEFAULT_CANVAS_WIDTH }, + m_canvasHeight{ DEFAULT_CANVAS_HEIGHT } + { + + } + + bool Renderer::isGPURendering() const + { + return m_canvas.isGPUCanvas(); + } + + void Renderer::setCanvasSize(int width, int height) + { + std::lock_guard lock{ m_mutex }; + if(m_canvasWidth != width && m_canvasHeight != height) + { + m_createCanvas = true; + m_canvasWidth = width; + m_canvasHeight = height; + } + } + + const DrawingArea& Renderer::getDrawingArea() const + { + std::lock_guard lock{ m_mutex }; + return m_drawingArea; + } + + void Renderer::setDrawingArea(const DrawingArea& area) + { + std::lock_guard lock{ m_mutex }; + m_drawingArea = area; + } + + const ColorProfile& Renderer::getColorProfile() const + { + std::lock_guard lock{ m_mutex }; + return m_colorProfile; + } + + void Renderer::setColorProfile(const ColorProfile& profile) + { + std::lock_guard lock{ m_mutex }; + m_colorProfile = profile; + } + + const std::optional& Renderer::getBackgroundImage() const + { + std::lock_guard lock{ m_mutex }; + return m_backgroundImage; + } + + void Renderer::setBackgroundImage(const std::optional& image) + { + std::lock_guard lock{ m_mutex }; + m_backgroundImage = image; + m_backgroundBitmap.reset(); + } + + std::optional Renderer::draw(const std::vector& sample) + { + std::lock_guard lock{ m_mutex }; + if(m_createCanvas) + { + m_canvas = { m_canvasWidth, m_canvasHeight }; + m_backgroundBitmap.reset(); + m_createCanvas = false; + } + if(!m_canvas || sample.empty()) + { + return std::nullopt; + } + //Setup + int width{ m_canvas.getWidth() }; + int height{ m_canvas.getHeight() }; + m_canvas->clear(SkColors::kTransparent); + //Draw Background Colors + SkPaint bgPaint; + bgPaint.setStyle(SkPaint::kFill_Style); + bgPaint.setAntiAlias(true); + if(m_colorProfile.getBackgroundColors().size() > 1) + { + bgPaint.setShader(getBackgroundGradient()); + } + else + { + const Color& color{ m_colorProfile.getBackgroundColors()[0] }; + bgPaint.setColor(SkColorSetARGB(color.getA(), color.getR(), color.getG(), color.getB())); + } + m_canvas->drawRect({ 0, 0, static_cast(width), static_cast(height) }, bgPaint); + //Draw Background Image + if(m_backgroundImage) + { + if(!m_backgroundBitmap) + { + m_backgroundBitmap = newBitmapFromImagePath(m_backgroundImage->getPath()); + //Scale Image + float scale{ std::max(static_cast(width) / static_cast(m_backgroundBitmap->width()), static_cast(height) / static_cast(m_backgroundBitmap->height())) }; + int newWidth{ static_cast(m_backgroundBitmap->width() * scale * (m_backgroundImage->getScale() / 100.0f)) }; + int newHeight{ static_cast(m_backgroundBitmap->height() * scale * (m_backgroundImage->getScale() / 100.0f)) }; + std::shared_ptr newBitmap{ std::make_shared() }; + newBitmap->setInfo(SkImageInfo::Make(newWidth, newHeight, kN32_SkColorType, kPremul_SkAlphaType)); + newBitmap->allocPixels(); + SkCanvas canvas{ *newBitmap }; + canvas.drawImageRect(m_backgroundBitmap->asImage(), SkRect::MakeWH(static_cast(newWidth), static_cast(newHeight)), SkSamplingOptions(SkFilterMode::kLinear)); + m_backgroundBitmap = newBitmap; + } + //Draw Image + SkPaint paint; + paint.setColor(SkColorSetARGB(255 * (m_backgroundImage->getAlpha() / 100), SkColorGetR(paint.getColor()), SkColorGetG(paint.getColor()), SkColorGetB(paint.getColor()))); + m_canvas->drawImage(m_backgroundBitmap->asImage(), width / 2 - m_backgroundBitmap->width() / 2.0f, height / 2 - m_backgroundBitmap->height() / 2.0f, SkSamplingOptions(SkFilterMode::kLinear), &paint); + } + //Draw Foreground Colors + width -= m_drawingArea.getMargin() * 2; + height -= m_drawingArea.getMargin() * 2; + SkPaint fgPaint; + fgPaint.setStyle(m_drawingArea.getFillShape() ? SkPaint::kFill_Style : SkPaint::kStroke_Style); + fgPaint.setStrokeWidth(LINE_THICKNESS); + fgPaint.setAntiAlias(true); + if(m_colorProfile.getForegroundColors().size() > 1 && m_drawingArea.getShape() != DrawingShape::Spine) + { + fgPaint.setShader(getForegroundGradient()); + } + else + { + const Color& color{ m_colorProfile.getForegroundColors()[0] }; + fgPaint.setColor(SkColorSetARGB(color.getA(), color.getR(), color.getG(), color.getB())); + } + //Get Drawing Function + std::function drawFunction; + switch(m_drawingArea.getShape()) + { + case DrawingShape::Wave: + drawFunction = [this](const DrawingFunctionArguments& args){ drawWave(args); }; + break; + case DrawingShape::Levels: + drawFunction = [this](const DrawingFunctionArguments& args){ drawLevels(args); };; + break; + case DrawingShape::Particles: + drawFunction = [this](const DrawingFunctionArguments& args){ drawParticles(args); };; + break; + case DrawingShape::Bars: + drawFunction = [this](const DrawingFunctionArguments& args){ drawBars(args); };; + break; + case DrawingShape::Spine: + drawFunction = [this](const DrawingFunctionArguments& args){ drawSpine(args); };; + break; + case DrawingShape::Splitter: + drawFunction = [this](const DrawingFunctionArguments& args){ drawSplitter(args); };; + break; + case DrawingShape::Hearts: + drawFunction = [this](const DrawingFunctionArguments& args){ drawHearts(args); };; + break; + default: + drawFunction = [this](const DrawingFunctionArguments& args){ drawWave(args); };; + break; + } + //Draw Shape + Point start{ static_cast((width + m_drawingArea.getMargin() * 2.0f) * (m_drawingArea.getXOffset() / 100.0f) + m_drawingArea.getMargin()), + static_cast((height + m_drawingArea.getMargin() * 2.0f) * (m_drawingArea.getYOffset() / 100.0f) + m_drawingArea.getMargin()) }; + Point mirrorStart{ static_cast((width + m_drawingArea.getMargin() * 2.0f) * (m_drawingArea.getXOffset() / 100.0f) + getMirrorX(static_cast(width))), + static_cast((height + m_drawingArea.getMargin() * 2.0f) * (m_drawingArea.getYOffset() / 100.0f) + getMirrorY(static_cast(height))) }; + Point end{ static_cast(width), static_cast(height) }; + Point mirrorEnd{ getMirrorWidth(static_cast(width)), getMirrorHeight(static_cast(height)) }; + if(m_drawingArea.getMirrorMode() == MirrorMode::Full || m_drawingArea.getMirrorMode() == MirrorMode::ReverseFull) + { + std::vector reverseSample = sample; + std::reverse(reverseSample.begin(), reverseSample.end()); + drawFunction({ sample, m_drawingArea.getMode(), m_drawingArea.getDirection(), start, mirrorEnd, ROTATION, fgPaint }); + drawFunction({ m_drawingArea.getMirrorMode() == MirrorMode::ReverseFull ? reverseSample : sample, m_drawingArea.getMode(), getMirrorDirection(m_drawingArea.getDirection()), mirrorStart, mirrorEnd, -ROTATION, fgPaint }); + } + else if(m_drawingArea.getMirrorMode() == MirrorMode::SplitChannels || m_drawingArea.getMirrorMode() == MirrorMode::ReverseSplitChannels) + { + std::vector splitSample{ sample.begin(), sample.begin() + (sample.size() / 2) }; + std::vector splitSampleEnd{ sample.begin() + (sample.size() / 2), sample.end() }; + std::vector reverseSplitSampleEnd = splitSampleEnd; + std::reverse(reverseSplitSampleEnd.begin(), reverseSplitSampleEnd.end()); + drawFunction({ splitSample, m_drawingArea.getMode(), m_drawingArea.getDirection(), start, mirrorEnd, ROTATION, fgPaint }); + drawFunction({ m_drawingArea.getMirrorMode() == MirrorMode::ReverseSplitChannels ? splitSampleEnd : reverseSplitSampleEnd, m_drawingArea.getMode(), getMirrorDirection(m_drawingArea.getDirection()), mirrorStart, mirrorEnd, -ROTATION, fgPaint }); + } + else + { + drawFunction({ sample, m_drawingArea.getMode(), m_drawingArea.getDirection(), start, end, ROTATION, fgPaint }); + } + m_canvas.flush(); + //Get PNG Image + sk_sp image{ m_canvas.getSkiaSurface()->makeImageSnapshot() }; + if(image) + { + sk_sp png{ SkPngEncoder::Encode(m_canvas.getSkiaContext(), image.get(), {}) }; + if(png) + { + return PngImage{ m_canvas.getWidth(), m_canvas.getHeight(), png->bytes(), png->size() }; + } + } + return std::nullopt; + } + + float Renderer::getMirrorWidth(float width) + { + if(m_drawingArea.getDirection() == DrawingDirection::LeftToRight || m_drawingArea.getDirection() == DrawingDirection::RightToLeft) + { + return width / 2.0f; + } + return width; + } + + float Renderer::getMirrorHeight(float height) + { + if(m_drawingArea.getDirection() == DrawingDirection::TopToBottom || m_drawingArea.getDirection() == DrawingDirection::BottomToTop) + { + return height / 2.0f; + } + return height; + } + + float Renderer::getMirrorX(float x) + { + if(m_drawingArea.getDirection() == DrawingDirection::LeftToRight || m_drawingArea.getDirection() == DrawingDirection::RightToLeft) + { + return x / 2.0f + m_drawingArea.getMargin(); + } + return static_cast(m_drawingArea.getMargin()); + } + + float Renderer::getMirrorY(float y) + { + if(m_drawingArea.getDirection() == DrawingDirection::TopToBottom || m_drawingArea.getDirection() == DrawingDirection::BottomToTop) + { + return y / 2.0f + m_drawingArea.getMargin(); + } + return static_cast(m_drawingArea.getMargin()); + } + + sk_sp Renderer::getBackgroundGradient(bool useForegroundColors) + { + if(!useForegroundColors ? m_colorProfile.getBackgroundColors().size() <= 1: m_colorProfile.getForegroundColors().size() <= 1) + { + return nullptr; + } + std::vector skColors(!useForegroundColors ? m_colorProfile.getBackgroundColors().size() : m_colorProfile.getForegroundColors().size()); + for(size_t i = skColors.size(); i > 0; i--) + { + const Color& color{ !useForegroundColors ? m_colorProfile.getBackgroundColors()[i - 1] : m_colorProfile.getForegroundColors()[i - 1] }; + skColors[i - 1] = SkColorSetARGB(color.getA(), color.getR(), color.getG(), color.getB()); + } + if(m_drawingArea.getMirrorMode() != MirrorMode::Off) + { + std::vector mirrorColors(skColors.size() * 2); + if(m_drawingArea.getDirection() == DrawingDirection::BottomToTop || m_drawingArea.getDirection() == DrawingDirection::RightToLeft) + { + std::reverse(skColors.begin(), skColors.end()); + } + for(size_t i = 0; i < skColors.size(); i++) + { + mirrorColors[i] = skColors[i]; + mirrorColors[mirrorColors.size() - 1 - i] = skColors[i]; + } + skColors = mirrorColors; + } + std::vector points(2); + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + { + points[0] = { static_cast(m_drawingArea.getMargin()), + static_cast(m_drawingArea.getMargin() + m_canvas.getHeight() + m_drawingArea.getYOffset()) }; + points[1] = { static_cast(m_drawingArea.getMargin()), + static_cast(m_canvas.getHeight() * (1 + m_drawingArea.getYOffset())) }; + break; + } + case DrawingDirection::BottomToTop: + { + points[0] = { static_cast(m_drawingArea.getMargin()), + static_cast(m_canvas.getHeight() * (1 + m_drawingArea.getYOffset())) }; + points[1] = { static_cast(m_drawingArea.getMargin()), + static_cast(m_drawingArea.getMargin() + m_canvas.getHeight() * m_drawingArea.getYOffset()) }; + break; + } + case DrawingDirection::LeftToRight: + { + points[0] = { static_cast(m_drawingArea.getMargin() + m_canvas.getWidth() * m_drawingArea.getXOffset()), + static_cast(m_drawingArea.getMargin()) }; + points[1] = { static_cast(m_canvas.getWidth() * (1 + m_drawingArea.getXOffset())), + static_cast(m_drawingArea.getMargin()) }; + break; + } + default: + { + points[0] = { static_cast(m_canvas.getWidth() * (1 + m_drawingArea.getXOffset())), + static_cast(m_drawingArea.getMargin()) }; + points[1] = { static_cast(m_drawingArea.getMargin() + m_canvas.getWidth() * m_drawingArea.getXOffset()), + static_cast(m_drawingArea.getMargin()) }; + break; + } + } + return SkGradientShader::MakeLinear(&points[0], &skColors[0], nullptr, static_cast(skColors.size()), SkTileMode::kClamp); + } + + sk_sp Renderer::getForegroundGradient() + { + if(m_colorProfile.getForegroundColors().size() <= 1) + { + return nullptr; + } + std::vector skColors(m_colorProfile.getForegroundColors().size()); + float width{ static_cast(m_canvas.getWidth()) }; + float height{ static_cast(m_canvas.getHeight()) }; + for(size_t i = skColors.size(); i > 0; i--) + { + const Color& color{ m_colorProfile.getForegroundColors()[i - 1] }; + skColors[i - 1] = SkColorSetARGB(color.getA(), color.getR(), color.getG(), color.getB()); + } + if(m_drawingArea.getMode() == DrawingMode::Box || m_drawingArea.getShape() == DrawingShape::Splitter) + { + return getBackgroundGradient(true); + } + if(m_drawingArea.getMirrorMode() == MirrorMode::Off) + { + width = getMirrorWidth(width); + height = getMirrorHeight(height); + } + if(m_drawingArea.getShape() == DrawingShape::Wave) + { + float fullRadius{ std::min(width, height) / 2 }; + float innerRadius{ fullRadius * INNER_RADIUS }; + std::vector positions(skColors.size()); + for(size_t i = 0; i < skColors.size(); i++) + { + positions[i] = (i + (skColors.size() - i - 1) * innerRadius / fullRadius) / (skColors.size() - 1); + } + return SkGradientShader::MakeRadial({ width / 2, height / 2 }, fullRadius, &skColors[0], &positions[0], static_cast(skColors.size()), SkTileMode::kClamp); + } + std::vector points(2); + points[0] = { static_cast(m_drawingArea.getMargin()), + std::min(width, height) * INNER_RADIUS / 2.0f }; + points[1] = { static_cast(m_drawingArea.getMargin()), + std::min(width, height) / 2.0f }; + return SkGradientShader::MakeLinear(&points[0], &skColors[0], nullptr, static_cast(skColors.size()), SkTileMode::kClamp); + } + + SkPaint Renderer::getPaintForSpine(const SkPaint& paint, float sample) + { + SkPaint newPaint{ paint }; + if(m_colorProfile.getForegroundColors().size() > 1) + { + float pos{ (m_colorProfile.getForegroundColors().size() - 1) * (1 - sample) }; + const Color& color1{ m_colorProfile.getForegroundColors()[static_cast(std::floor(pos))] }; + const Color& color2{ m_colorProfile.getForegroundColors()[static_cast(std::ceil(pos))] }; + float weight{ sample < 1 ? std::fmod(pos, 1.0f) : 1.0f }; + newPaint.setColor(SkColorSetARGB(color1.getA() * (1 - weight) + color2.getA() * weight, + color1.getR() * (1 - weight) + color2.getR() * weight, + color1.getG() * (1 - weight) + color2.getG() * weight, + color1.getB() * (1 - weight) + color2.getB() * weight)); + } + return newPaint; + } + + void Renderer::drawWave(const DrawingFunctionArguments& args) + { + if(args.getMode() == DrawingMode::Box) + { + float step{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getX() : args.getEnd().getY()) / (args.getSample().size() - 1) }; + SkPath path; + bool flipImage{ false }; + std::vector points(args.getSample().size()); + std::vector gradients(args.getSample().size()); + switch(args.getDirection()) + { + case DrawingDirection::TopToBottom: + case DrawingDirection::BottomToTop: + { + flipImage = args.getDirection() == DrawingDirection::TopToBottom; + //Create a list of points of where the curve must pass through + for(size_t i = 0; i < args.getSample().size(); i++) + { + points[i] = { step * i, + args.getEnd().getY() * (1 - args.getSample()[i]) }; + } + //Calculate gradient between the two neighboring points for each point + for(size_t i = 0; i < points.size(); i++) + { + //Determine the previous and next point + //If there isn't one, use the current point + const Point& previous{ points[std::max(i == 0 ? 0 : i - 1, static_cast(0))] }; + const Point& next{ points[std::min(i + 1, points.size() - 1)] }; + float gradient{ next.getY() - previous.getY() }; + //If using the current point (when at the edges), then the run is rise/run = 1 + //Otherwise, a two step run exists + gradients[i] = i == 0 || i == points.size() - 1 ? gradient : gradient / 2; + } + float yOffset{ args.getStart().getY() + (m_drawingArea.getFillShape() ? 0 : LINE_THICKNESS / 2) }; + path.moveTo(args.getStart().getX() + points[0].getX(), + yOffset + flipCoord(points[0].getY(), args.getEnd().getY(), flipImage)); + for(size_t i = 0; i < points.size() - 1; i++) + { + SkPoint a{ args.getStart().getX() + points[i].getX() + step * 0.5f, + yOffset + flipCoord(points[i].getY() + gradients[i] * 0.5f, args.getEnd().getY(), flipImage) }; + SkPoint b{ args.getStart().getX() + points[i + 1].getX() + step * -0.5f, + yOffset + flipCoord(points[i + 1].getY() + gradients[i + 1] * -0.5f, args.getEnd().getY(), flipImage) }; + SkPoint c{ args.getStart().getX() + points[i + 1].getX(), + yOffset + flipCoord(points[i + 1].getY(), args.getEnd().getY(), flipImage) }; + path.cubicTo(a, b, c); + } + if(m_drawingArea.getFillShape()) + { + path.lineTo({ args.getStart().getX() + args.getEnd().getX(), + args.getStart().getY() + flipCoord(args.getEnd().getY(), args.getEnd().getY(), flipImage) }); + path.lineTo({ args.getStart().getX(), + args.getStart().getY() + flipCoord(args.getEnd().getY(), args.getEnd().getY(), flipImage) }); + path.close(); + } + break; + } + case DrawingDirection::LeftToRight: + case DrawingDirection::RightToLeft: + { + flipImage = args.getDirection() == DrawingDirection::RightToLeft; + for(size_t i = 0; i < args.getSample().size(); i++) + { + points[i] = { args.getEnd().getX() * args.getSample()[i], step * i }; + } + for(size_t i = 0; i < points.size(); i++) + { + const Point& previous{ points[std::max(i == 0 ? 0 : i - 1, static_cast(0))] }; + const Point& next{ points[std::min(i + 1, points.size() - 1)] }; + float gradient{ next.getX() - previous.getX() }; + gradients[i] = i == 0 || i == points.size() - 1 ? gradient : gradient / 2; + } + float xOffset{ args.getStart().getX() - (m_drawingArea.getFillShape() ? 0 : LINE_THICKNESS / 2) }; + path.moveTo(xOffset + flipCoord(points[0].getX(), args.getEnd().getX(), flipImage), + args.getStart().getY() + points[0].getY()); + for(size_t i = 0; i < points.size() - 1; i++) + { + SkPoint a{ xOffset + flipCoord(points[i].getX() + gradients[i] * 0.5f, args.getEnd().getX(), flipImage), + args.getStart().getY() + points[i].getY() + step * 0.5f }; + SkPoint b{ xOffset + flipCoord(points[i + 1].getX() + gradients[i + 1] * -0.5f, args.getEnd().getX(), flipImage), + args.getStart().getY() + points[i + 1].getY() + step * -0.5f }; + SkPoint c{ xOffset + flipCoord(points[i + 1].getX(), args.getEnd().getX(), flipImage), + args.getStart().getY() + points[i + 1].getY() }; + path.cubicTo(a, b, c); + } + if(m_drawingArea.getFillShape()) + { + path.lineTo({ args.getStart().getX() + flipCoord(0, args.getEnd().getX(), flipImage), + args.getStart().getY() + args.getEnd().getY() }); + path.lineTo({ args.getStart().getX() + flipCoord(0, args.getEnd().getX(), flipImage), + args.getStart().getY() }); + path.close(); + } + break; + } + } + m_canvas->drawPath(path, args.getPaint()); + } + else if(args.getMode() == DrawingMode::Circle) + { + float fullRadius{ std::min(args.getEnd().getX(), args.getEnd().getY()) / 2.0f }; + float innerRadius{ fullRadius * INNER_RADIUS }; + float radius{ fullRadius - innerRadius }; + SkPaint paint{ args.getPaint() }; + SkPath path; + m_canvas->save(); + m_canvas->translate(args.getStart().getX(), args.getStart().getY()); + paint.setStyle(SkPaint::kStroke_Style); + paint.setStrokeWidth(m_drawingArea.getFillShape() ? radius : LINE_THICKNESS); + path.moveTo(args.getEnd().getX() / 2 + (innerRadius + radius * args.getSample()[0]) * std::cos(PI / 2 + args.getRotation()), + args.getEnd().getY() / 2 + (innerRadius + radius * args.getSample()[0]) * std::sin(PI / 2 + args.getRotation())); + for(size_t i = 0; i < args.getSample().size() - 1; i++) + { + SkPoint a{ args.getEnd().getX() / 2 + (innerRadius + radius * args.getSample()[i]) * std::cos(PI / 2 + PI * 2 * (i + 0.5f) / args.getSample().size() + args.getRotation()), + args.getEnd().getY() / 2 + (innerRadius + radius * args.getSample()[i]) * std::sin(PI / 2 + PI * 2 * (i + 0.5f) / args.getSample().size() + args.getRotation()) }; + SkPoint b{ args.getEnd().getX() / 2 + (innerRadius + radius * args.getSample()[i + 1]) * std::cos(PI / 2 + PI * 2 * (i + 0.5f) / args.getSample().size() + args.getRotation()), + args.getEnd().getY() / 2 + (innerRadius + radius * args.getSample()[i + 1]) * std::sin(PI / 2 + PI * 2 * (i + 0.5f) / args.getSample().size() + args.getRotation()) }; + SkPoint c{ args.getEnd().getX() / 2 + (innerRadius + radius * args.getSample()[i + 1]) * std::cos(PI / 2 + PI * 2 * (i + 1.0f) / args.getSample().size() + args.getRotation()), + args.getEnd().getY() / 2 + (innerRadius + radius * args.getSample()[i + 1]) * std::sin(PI / 2 + PI * 2 * (i + 1.0f) / args.getSample().size() + args.getRotation()) }; + path.cubicTo(a, b, c); + } + SkPoint a{ args.getEnd().getX() / 2 + (innerRadius + radius * args.getSample()[args.getSample().size() - 1]) * std::cos(PI / 2 + PI * 2 * (args.getSample().size() - 0.5f) / args.getSample().size() + args.getRotation()), + args.getEnd().getY() / 2 + (innerRadius + radius * args.getSample()[args.getSample().size() - 1]) * std::sin(PI / 2 + PI * 2 * (args.getSample().size() - 0.5f) / args.getSample().size() + args.getRotation()) }; + SkPoint b{ args.getEnd().getX() / 2 + (innerRadius + radius * args.getSample()[0]) * std::cos(PI / 2 + PI * 2 * (args.getSample().size() - 0.5f) / args.getSample().size() + args.getRotation()), + args.getEnd().getY() / 2 + (innerRadius + radius * args.getSample()[0]) * std::sin(PI / 2 + PI * 2 * (args.getSample().size() - 0.5f) / args.getSample().size() + args.getRotation()) }; + SkPoint c{ args.getEnd().getX() / 2 + (innerRadius + radius * args.getSample()[0]) * std::cos(PI / 2 + args.getRotation()), + args.getEnd().getY() / 2 + (innerRadius + radius * args.getSample()[0]) * std::sin(PI / 2 + args.getRotation()) }; + path.cubicTo(a, b, c); + path.close(); + if(m_drawingArea.getFillShape()) + { + m_canvas->clipPath(path, SkClipOp::kIntersect, true); + m_canvas->drawCircle({ args.getEnd().getX() / 2, args.getEnd().getY() / 2 }, innerRadius + radius / 2, paint); + } + else + { + m_canvas->drawPath(path, paint); + } + m_canvas->restore(); + } + } + + void Renderer::drawLevels(const DrawingFunctionArguments& args) + { + if(args.getMode() == DrawingMode::Box) + { + float step{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getX() : args.getEnd().getY()) / args.getSample().size() }; + float fill{ m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f }; + float itemWidth{ (args.getDirection() < DrawingDirection::LeftToRight ? step : args.getEnd().getX() / 10.0f) * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - fill }; + float itemHeight{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getY() / 10.0f : step) * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - fill }; + float rx{ itemWidth / 2.0f * (m_drawingArea.getItemRoundness() / 100.0f) }; + float ry{ itemHeight / 2.0f * (m_drawingArea.getItemRoundness() / 100.0f) }; + SkPath path; + for(size_t i = 0; i < args.getSample().size(); i++) + { + for(float j = 0; j < std::floor(args.getSample()[i] * 10.0f); j++) + { + SkRect rect; + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + rect = { args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getY() + args.getEnd().getY() / 10.0f * j + args.getEnd().getY() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + itemWidth, + args.getStart().getY() + args.getEnd().getY() / 10.0f * j + args.getEnd().getY() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemHeight }; + break; + case DrawingDirection::BottomToTop: + rect = { args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getY() + args.getEnd().getY() / 10.0f * (9 - j) + args.getEnd().getY() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + itemWidth, + args.getStart().getY() + args.getEnd().getY() / 10.0f * (9 - j) + args.getEnd().getY() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemHeight }; + break; + case DrawingDirection::LeftToRight: + rect = { args.getStart().getX() + args.getEnd().getX() / 10.0f * j + args.getEnd().getX() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getX() + args.getEnd().getX() / 10.0f * j + args.getEnd().getX() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemWidth, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + itemHeight }; + break; + case DrawingDirection::RightToLeft: + rect = { args.getStart().getX() + args.getEnd().getX() / 10.0f * (9 - j) + args.getEnd().getX() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getX() + args.getEnd().getX() / 10.0f * (9 - j) + args.getEnd().getX() / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemWidth, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + itemHeight }; + break; + } + path.addRoundRect(rect, rx, ry); + } + } + m_canvas->drawPath(path, args.getPaint()); + } + else if(args.getMode() == DrawingMode::Circle) + { + float fullRadius{ std::min(args.getEnd().getX(), args.getEnd().getY()) / 2.0f }; + float innerRadius{ fullRadius * INNER_RADIUS }; + float radius{ fullRadius - innerRadius }; + float barWidth{ 2.0f * PI * innerRadius / args.getSample().size() }; + float rx{ (barWidth * (1 - (m_drawingArea.getItemSpacing() / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS)) * (m_drawingArea.getItemRoundness() / 100.0f) }; + float ry{ radius / 10.0f * (1 - (m_drawingArea.getItemSpacing() / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS) * (m_drawingArea.getItemRoundness() / 100.0f) }; + for(size_t i = 0; i < args.getSample().size(); i++) + { + m_canvas->save(); + m_canvas->translate(args.getStart().getX() + args.getEnd().getX() / 2.0f, + args.getStart().getY() + args.getEnd().getY() / 2.0f); + m_canvas->rotate(SkRadiansToDegrees(2.0f * PI * (i + 0.5f) / args.getSample().size() + args.getRotation())); + for(float j = 0; j < std::floor(args.getSample()[i] * 10.0f); j++) + { + SkRect rect{ SkRect::MakeXYWH(-barWidth * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) / 2.0f + (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f), + innerRadius + radius / 10.0f * j + radius / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f), + barWidth * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS), + radius / 10.0f * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS)) }; + m_canvas->drawRoundRect(rect, rx, ry, args.getPaint()); + } + m_canvas->restore(); + } + } + } + + void Renderer::drawParticles(const DrawingFunctionArguments& args) + { + if(args.getMode() == DrawingMode::Box) + { + float step{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getX() : args.getEnd().getY()) / args.getSample().size() }; + float fill{ m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f }; + float itemWidth{ (args.getDirection() < DrawingDirection::LeftToRight ? step : args.getEnd().getX() / 11.0f) * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - fill }; + float itemHeight{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getY() / 11.0f : step) * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - fill }; + float rx{ itemWidth / 2.0f * (m_drawingArea.getItemRoundness() / 100.0f) }; + float ry{ itemHeight / 2.0f * (m_drawingArea.getItemRoundness() / 100.0f) }; + SkPath path; + for(size_t i = 0; i < args.getSample().size(); i++) + { + SkRect rect; + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + rect = { args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getY() + args.getEnd().getY() / 11.0f * 10.0f * args.getSample()[i] + args.getEnd().getY() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + itemWidth, + args.getStart().getY() + args.getEnd().getY() / 11.0f * 10.0f * args.getSample()[i] + args.getEnd().getY() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemHeight }; + break; + case DrawingDirection::BottomToTop: + rect = { args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getY() + args.getEnd().getY() / 11.0f * 10.0f * (1 - args.getSample()[i]) + args.getEnd().getY() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + itemWidth, + args.getStart().getY() + args.getEnd().getY() / 11.0f * 10.0f * (1 - args.getSample()[i]) + args.getEnd().getY() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemHeight }; + break; + case DrawingDirection::LeftToRight: + rect = { args.getStart().getX() + args.getEnd().getX() / 11.0f * 10.0f * args.getSample()[i] + args.getEnd().getX() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getX() + args.getEnd().getX() / 11.0f * 10.0f * args.getSample()[i] + args.getEnd().getX() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemWidth, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + itemHeight }; + break; + case DrawingDirection::RightToLeft: + rect = { args.getStart().getX() + args.getEnd().getX() / 11.0f * 10.0f * (1 - args.getSample()[i]) + args.getEnd().getX() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + fill, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getX() + args.getEnd().getX() / 11.0f * 10.0f * (1 - args.getSample()[i]) + args.getEnd().getX() / 11.0f * (m_drawingArea.getItemSpacing() / 100.0f) + itemWidth, + args.getStart().getY() + step * (i * (m_drawingArea.getItemSpacing() / 100.0f)) + itemHeight }; + break; + } + path.addRoundRect(rect, rx, ry); + } + m_canvas->drawPath(path, args.getPaint()); + } + else //Circle + { + float fullRadius{ std::min(args.getEnd().getX(), args.getEnd().getY()) / 2.0f }; + float innerRadius{ fullRadius * INNER_RADIUS }; + float radius{ fullRadius - innerRadius }; + float barWidth{ 2.0f * PI * innerRadius / args.getSample().size() }; + float rx{ (barWidth * (1 - (m_drawingArea.getItemSpacing() / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS)) * (m_drawingArea.getItemRoundness() / 100.0f) }; + float ry{ radius / 10.0f * (1 - (m_drawingArea.getItemSpacing() / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS) * (m_drawingArea.getItemRoundness() / 100.0f) }; + for(size_t i = 0; i < args.getSample().size(); i++) + { + m_canvas->save(); + m_canvas->translate(args.getStart().getX() + args.getEnd().getX() / 2.0f, + args.getStart().getY() + args.getEnd().getY() / 2.0f); + m_canvas->rotate(SkRadiansToDegrees(2.0f * PI * (i + 0.5f) / args.getSample().size() + args.getRotation())); + SkRect rect{ SkRect::MakeXYWH(-barWidth * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) / 2.0f + (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f), + innerRadius + radius / 10.0f * 9 * args.getSample()[i] + radius / 10.0f * (m_drawingArea.getItemSpacing() / 100.0f) + (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f), + barWidth * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS), + radius / 10.0f * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS)) }; + m_canvas->drawRoundRect(rect, rx, ry, args.getPaint()); + m_canvas->restore(); + } + } + } + + void Renderer::drawBars(const DrawingFunctionArguments& args) + { + if(args.getMode() == DrawingMode::Box) + { + float step{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getX() : args.getEnd().getY()) / args.getSample().size() }; + float fill{ m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f }; + SkPath path; + for(size_t i = 0; i < args.getSample().size(); i++) + { + if(args.getSample()[i] == 0) + { + continue; + } + SkRect rect; + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + rect = { args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + (m_drawingArea.getFillShape() ? args.getStart().getY() : args.getStart().getY() + LINE_THICKNESS / 2.0f) - 1, + args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill + step * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS), + args.getStart().getY() + args.getEnd().getY() * args.getSample()[i] - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS) + 1 }; + break; + case DrawingDirection::BottomToTop: + rect = { args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getY() + args.getEnd().getY() * (1 - args.getSample()[i]) + fill, + args.getStart().getX() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill + step * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS), + args.getStart().getY() + args.getEnd().getY() - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS) + 1 }; + break; + case DrawingDirection::LeftToRight: + rect = { m_drawingArea.getFillShape() ? args.getStart().getX() : args.getStart().getX() + LINE_THICKNESS / 2.0f, + args.getStart().getY() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getX() + args.getEnd().getX() * args.getSample()[i] - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS), + args.getStart().getY() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill + step * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS) }; + break; + case DrawingDirection::RightToLeft: + rect = { args.getStart().getX() + args.getEnd().getX() * (1 - args.getSample()[i]) + fill, + args.getStart().getY() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill, + args.getStart().getX() + args.getEnd().getX() - fill, + args.getStart().getY() + step * (i + (m_drawingArea.getItemSpacing() / 100.0f)) + fill + step * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS) }; + break; + } + path.addRect(rect); + } + m_canvas->drawPath(path, args.getPaint()); + } + else if(args.getMode() == DrawingMode::Circle) + { + float fullRadius{ std::min(args.getEnd().getX(), args.getEnd().getY()) / 2.0f }; + float innerRadius{ fullRadius * INNER_RADIUS }; + float radius{ fullRadius - innerRadius }; + float barWidth{ 2.0f * PI * innerRadius / args.getSample().size() }; + for(size_t i = 0; i < args.getSample().size(); i++) + { + m_canvas->save(); + m_canvas->translate(args.getStart().getX() + args.getEnd().getX() / 2.0f, + args.getStart().getY() + args.getEnd().getY() / 2.0f); + m_canvas->rotate(SkRadiansToDegrees(2.0f * PI * (i + 0.5f) / args.getSample().size() + args.getRotation())); + SkRect rect{ SkRect::MakeXYWH(-barWidth * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) / 2.0f + (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f), + innerRadius + (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f), + barWidth * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS), + radius * args.getSample()[i] - (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS) + 1) }; + m_canvas->drawRect(rect, args.getPaint()); + m_canvas->restore(); + } + } + } + + void Renderer::drawSpine(const DrawingFunctionArguments& args) + { + if(args.getMode() == DrawingMode::Box) + { + float step{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getX() : args.getEnd().getY()) / args.getSample().size() }; + float itemSize{ step * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0 : LINE_THICKNESS) }; + for(size_t i = 0; i < args.getSample().size(); i++) + { + if(args.getSample()[i] == 0) + { + continue; + } + float r{ itemSize * args.getSample()[i] / 2.0f * (m_drawingArea.getItemRoundness() / 100.0f) }; + SkRect rect; + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + case DrawingDirection::BottomToTop: + rect = SkRect::MakeXYWH(args.getStart().getX() + step * (i + 0.5f) + (1 - itemSize * args.getSample()[i]) / 2.0f, + args.getStart().getY() + args.getEnd().getY() / 2.0f - itemSize * args.getSample()[i] / 2.0f, + itemSize * args.getSample()[i], + itemSize * args.getSample()[i]); + break; + case DrawingDirection::LeftToRight: + case DrawingDirection::RightToLeft: + rect = SkRect::MakeXYWH(args.getStart().getX() + args.getEnd().getX() / 2.0f - itemSize * args.getSample()[i] / 2.0f, + args.getStart().getY() + step * (i + 0.5f) + (1 - itemSize * args.getSample()[i]) / 2.0f, + itemSize * args.getSample()[i], + itemSize * args.getSample()[i]); + break; + } + m_canvas->drawRoundRect(rect, r, r, getPaintForSpine(args.getPaint(), args.getSample()[i])); + } + } + else if(args.getMode() == DrawingMode::Circle) + { + float fullRadius{ std::min(args.getEnd().getX(), args.getEnd().getY()) / 2.0f }; + float innerRadius{ fullRadius * INNER_RADIUS }; + float barWidth{ 2.0f * PI * innerRadius / args.getSample().size() }; + float itemSize{ barWidth * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0 : LINE_THICKNESS) }; + for(size_t i = 0; i < args.getSample().size(); i++) + { + float r{ itemSize * args.getSample()[i] / 2.0f * (m_drawingArea.getItemRoundness() / 100.0f) }; + m_canvas->save(); + m_canvas->translate(args.getStart().getX() + args.getEnd().getX() / 2.0f, + args.getStart().getY() + args.getEnd().getY() / 2.0f); + m_canvas->rotate(SkRadiansToDegrees(2.0f * PI * (i + 0.5f) / args.getSample().size() + args.getRotation())); + SkRect rect{ SkRect::MakeXYWH(-barWidth * (1 - (m_drawingArea.getItemSpacing() * 2.0f / 100.0f)) / 2.0f + (m_drawingArea.getFillShape() ? 0.0f : LINE_THICKNESS / 2.0f), + innerRadius - itemSize * args.getSample()[i] / 2.0f, + itemSize * args.getSample()[i], + itemSize * args.getSample()[i]) }; + m_canvas->drawRoundRect(rect, r, r, getPaintForSpine(args.getPaint(), args.getSample()[i])); + m_canvas->restore(); + } + } + } + + void Renderer::drawSplitter(const DrawingFunctionArguments& args) + { + float step{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getX() : args.getEnd().getY()) / args.getSample().size() }; + float orient{ 1.0f }; + SkPath path; + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + path.moveTo(args.getStart().getX(), + args.getStart().getY() + args.getEnd().getY() / 2.0f * (1 + args.getSample()[0])); + break; + case DrawingDirection::BottomToTop: + orient = -1; + path.moveTo(args.getStart().getX(), + args.getStart().getY() + args.getEnd().getY() / 2.0f * (1 + args.getSample()[0] * orient)); + break; + case DrawingDirection::LeftToRight: + path.moveTo(args.getStart().getX() + args.getEnd().getX() / 2.0f * (1 + args.getSample()[0]), + args.getStart().getY()); + break; + case DrawingDirection::RightToLeft: + orient = -1; + path.moveTo(args.getStart().getX() + args.getEnd().getX() / 2.0f * (1 + args.getSample()[0] * orient), + args.getStart().getY()); + break; + } + for(size_t i = 0; i < args.getSample().size(); i++) + { + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + case DrawingDirection::BottomToTop: + { + if(i > 0) + { + path.lineTo(args.getStart().getX() + step * i, + args.getStart().getY() + args.getEnd().getY() / 2.0f); + } + path.lineTo(args.getStart().getX() + step * i, + args.getStart().getY() + args.getEnd().getY() / 2.0f * (1 + args.getSample()[i] * (i % 2 == 0 ? orient : -orient))); + path.lineTo(args.getStart().getX() + step * (i + 1), + args.getStart().getY() + args.getEnd().getY() / 2.0f * (1 + args.getSample()[i] * (i % 2 == 0 ? orient : -orient))); + if(i < args.getSample().size() - 1) + { + path.lineTo(args.getStart().getX() + step * (i + 1), + args.getStart().getY() + args.getEnd().getY() / 2.0f); + } + break; + } + case DrawingDirection::LeftToRight: + case DrawingDirection::RightToLeft: + { + if(i > 0) + { + path.lineTo(args.getStart().getX() + args.getEnd().getX() / 2.0f, + args.getStart().getY() + step * i); + } + path.lineTo(args.getStart().getX() + args.getEnd().getX() / 2.0f * (1 + args.getSample()[i] * (i % 2 == 0 ? orient : -orient)), + args.getStart().getY() + step * i); + path.lineTo(args.getStart().getX() + args.getEnd().getX() / 2.0f * (1 + args.getSample()[i] * (i % 2 == 0 ? orient : -orient)), + args.getStart().getY() + step * (i + 1)); + if(i < args.getSample().size() - 1) + { + path.lineTo(args.getStart().getX() + args.getEnd().getX() / 2.0f, + args.getStart().getY() + step * (i + 1)); + } + break; + } + } + } + if(!m_drawingArea.getFillShape()) + { + m_canvas->drawPath(path, args.getPaint()); + } + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + path.lineTo(args.getStart().getX() + args.getEnd().getX(), args.getStart().getY()); + path.lineTo(args.getStart().getX(), args.getStart().getY()); + break; + case DrawingDirection::BottomToTop: + path.lineTo(args.getStart().getX() + args.getEnd().getX(), args.getStart().getY() + args.getEnd().getY()); + path.lineTo(args.getStart().getX(), args.getStart().getY() + args.getEnd().getY()); + break; + case DrawingDirection::LeftToRight: + path.lineTo(args.getStart().getX(), args.getStart().getY() + args.getEnd().getY()); + path.lineTo(args.getStart().getX(), args.getStart().getY()); + break; + case DrawingDirection::RightToLeft: + path.lineTo(args.getStart().getX() + args.getEnd().getX(), args.getStart().getY() + args.getEnd().getY()); + path.lineTo(args.getStart().getX() + args.getEnd().getX(), args.getStart().getY()); + break; + } + path.close(); + if(m_drawingArea.getFillShape()) + { + m_canvas->drawPath(path, args.getPaint()); + } + } + + void Renderer::drawHearts(const DrawingFunctionArguments& args) + { + if(args.getMode() == DrawingMode::Box) + { + float step{ (args.getDirection() < DrawingDirection::LeftToRight ? args.getEnd().getX() : args.getEnd().getY()) / args.getSample().size() }; + float itemSize{ step * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0 : LINE_THICKNESS) }; + for(size_t i = 0; i < args.getSample().size(); i++) + { + if(args.getSample()[i] == 0) + { + continue; + } + m_canvas->save(); + switch(m_drawingArea.getDirection()) + { + case DrawingDirection::TopToBottom: + case DrawingDirection::BottomToTop: + m_canvas->translate(args.getStart().getX() + step * i + step / 2.0f, + args.getStart().getY() + args.getEnd().getY() / 2.0f); + break; + case DrawingDirection::LeftToRight: + case DrawingDirection::RightToLeft: + m_canvas->translate(args.getStart().getX() + args.getEnd().getX() / 2.0f, + args.getStart().getY() + step * i + step / 2.0f); + break; + } + m_canvas->scale(args.getSample()[i], args.getSample()[i]); + m_canvas->drawPath(getHeartPath(itemSize), getPaintForSpine(args.getPaint(), args.getSample()[i])); + m_canvas->restore(); + } + } + else if(args.getMode() == DrawingMode::Circle) + { + float fullRadius{ std::min(args.getEnd().getX(), args.getEnd().getY()) / 2.0f }; + float innerRadius{ fullRadius * INNER_RADIUS }; + float barWidth{ 2.0f * PI * innerRadius / args.getSample().size() }; + float itemSize{ barWidth * (1 - (m_drawingArea.getItemSpacing() / 100.0f) * 2) - (m_drawingArea.getFillShape() ? 0 : LINE_THICKNESS) }; + for(size_t i = 0; i < args.getSample().size(); i++) + { + m_canvas->save(); + m_canvas->translate(args.getStart().getX() + args.getEnd().getX() / 2.0f + innerRadius * std::cos(args.getRotation() + PI / 2.0f + PI * 2.0f * i / args.getSample().size()), + args.getStart().getY() + args.getEnd().getY() / 2.0f + innerRadius * std::sin(PI / 2.0f + PI * 2 * i / args.getSample().size())); + m_canvas->scale(args.getSample()[i], args.getSample()[i]); + m_canvas->drawPath(getHeartPath(itemSize), getPaintForSpine(args.getPaint(), args.getSample()[i])); + m_canvas->restore(); + } + } + } +} diff --git a/libcavalier/src/models/startupinformation.cpp b/libcavalier/src/models/startupinformation.cpp new file mode 100644 index 0000000..d06ff36 --- /dev/null +++ b/libcavalier/src/models/startupinformation.cpp @@ -0,0 +1,25 @@ +#include "models/startupinformation.h" + +namespace Nickvision::Cavalier::Shared::Models +{ + StartupInformation::StartupInformation() + { + + } + + StartupInformation::StartupInformation(const Nickvision::App::WindowGeometry& windowGeometry) + : m_windowGeometry{ windowGeometry } + { + + } + + const Nickvision::App::WindowGeometry& StartupInformation::getWindowGeometry() const + { + return m_windowGeometry; + } + + void StartupInformation::setWindowGeometry(const Nickvision::App::WindowGeometry& windowGeometry) + { + m_windowGeometry = windowGeometry; + } +} \ No newline at end of file diff --git a/org.nickvision.cavalier.gnome/CMakeLists.txt b/org.nickvision.cavalier.gnome/CMakeLists.txt new file mode 100644 index 0000000..17ebf74 --- /dev/null +++ b/org.nickvision.cavalier.gnome/CMakeLists.txt @@ -0,0 +1,70 @@ +if(NOT WIN32) + set(OUTPUT_NAME "${PROJECT_NAME}.gnome") + set(GNOME_NOTIFICATIONS true) + set(STARTUP_NOTIFY true) + + add_executable(${OUTPUT_NAME} + "src/controls/imagedialog.cpp" + "src/helpers/builder.cpp" + "src/helpers/dialogbase.cpp" + "src/helpers/gtkhelpers.cpp" + "src/views/mainwindow.cpp" + "src/views/preferencesdialog.cpp" + "src/application.cpp" + "src/main.cpp") + target_include_directories(${OUTPUT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include") + find_package(PkgConfig REQUIRED) + pkg_check_modules(gtk REQUIRED IMPORTED_TARGET gtk4) + pkg_check_modules(adwaita REQUIRED IMPORTED_TARGET libadwaita-1) + pkg_check_modules(libxmlpp REQUIRED IMPORTED_TARGET libxml++-5.0) + target_link_libraries(${OUTPUT_NAME} PRIVATE libcavalier PkgConfig::gtk PkgConfig::adwaita PkgConfig::libxmlpp) + + add_custom_target(gnome_commands ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/__gnome.h") + add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__gnome.h" "${CMAKE_CURRENT_BINARY_DIR}/gnome.h" COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/gnome.h") + + find_program(GLIB_COMPULE_RESOURCES_EXECUTABLE glib-compile-resources) + if(GLIB_COMPULE_RESOURCES_EXECUTABLE) + add_custom_command(TARGET gnome_commands PRE_BUILD COMMAND "${GLIB_COMPULE_RESOURCES_EXECUTABLE}" --sourcedir "${CMAKE_CURRENT_SOURCE_DIR}/resources" "${CMAKE_CURRENT_SOURCE_DIR}/resources/${PROJECT_NAME}.gresource.xml" --target="${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.gresource") + else() + message(WARNING "glib-compile-resources not found, resources will not be compiled") + endif() + + find_program(BLUEPRINT_COMPILER_EXECUTABLE blueprint-compiler) + if(BLUEPRINT_COMPILER_EXECUTABLE) + add_custom_command(TARGET gnome_commands PRE_BUILD COMMAND "${BLUEPRINT_COMPILER_EXECUTABLE}" batch-compile "${CMAKE_CURRENT_BINARY_DIR}/ui" "${CMAKE_CURRENT_SOURCE_DIR}/blueprints" "${CMAKE_CURRENT_SOURCE_DIR}/blueprints/*.blp") + else() + message(ERROR "blueprint-compiler not found, UI will not be compiled") + endif() + + if(HAS_GETTEXT) + foreach(LINGUA IN ITEMS ${LINGUAS}) + add_custom_command(TARGET gnome_commands PRE_BUILD COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/${LINGUA}/LC_MESSAGES") + add_custom_command(TARGET gnome_commands PRE_BUILD COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/resources/po/${LINGUA}.po" --output-file="${CMAKE_CURRENT_BINARY_DIR}/${LINGUA}/LC_MESSAGES/${SHORT_NAME}.mo") + endforeach() + endif() + + configure_file("${CMAKE_SOURCE_DIR}/resources/linux/${PROJECT_NAME}.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.desktop" @ONLY) + configure_file("${CMAKE_SOURCE_DIR}/resources/linux/${PROJECT_NAME}.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}" @ONLY) + configure_file("${CMAKE_SOURCE_DIR}/resources/linux/${PROJECT_NAME}.metainfo.xml.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.metainfo.xml" @ONLY) + install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/" DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_NAME}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo") + install(FILES "${CMAKE_SOURCE_DIR}/resources/${PROJECT_NAME}.svg" "${CMAKE_SOURCE_DIR}/resources/${PROJECT_NAME}-devel.svg" DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps") + install(FILES "${CMAKE_SOURCE_DIR}/resources/${PROJECT_NAME}-symbolic.svg" DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/symbolic/apps") + + find_program(GTK_UPDATE_ICON_CACHE_EXECUTABLE gtk-update-icon-cache) + if(GTK_UPDATE_ICON_CACHE_EXECUTABLE) + install(CODE "execute_process(COMMAND ${GTK_UPDATE_ICON_CACHE_EXECUTABLE})") + else() + message(WARNING "gtk-update-icon-cache not found, icons will not be updated") + endif() + + find_program(UPDATE_DESKTOP_DATABASE_EXECUTABLE update-desktop-database) + if(UPDATE_DESKTOP_DATABASE_EXECUTABLE) + install(CODE "execute_process(COMMAND ${UPDATE_DESKTOP_DATABASE_EXECUTABLE})") + else() + message(WARNING "update-desktop-database not found, desktop database will not be updated") + endif() +endif() diff --git a/org.nickvision.cavalier.gnome/blueprints/image_dialog.blp b/org.nickvision.cavalier.gnome/blueprints/image_dialog.blp new file mode 100644 index 0000000..11d901e --- /dev/null +++ b/org.nickvision.cavalier.gnome/blueprints/image_dialog.blp @@ -0,0 +1,61 @@ +using Gtk 4.0; +using Adw 1; + +Adw.Dialog root { + child: Adw.ToolbarView { + [top] + Adw.HeaderBar { + title-widget: Adw.WindowTitle windowTitle { }; + } + + content: Adw.Clamp { + margin-start: 12; + margin-end: 12; + margin-bottom: 12; + child: Gtk.Box { + orientation: vertical; + + Gtk.Picture picture { + valign: center; + halign: center; + + styles [ "card" ] + } + + Adw.PreferencesGroup { + title: _("Options"); + + Adw.SpinRow scaleRow { + title: _("Scale"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 0; + upper: 100; + step-increment: 1; + }; + + [prefix] + Gtk.Image { + icon-name: "zoom-fit-best-symbolic"; + } + } + + Adw.SpinRow alphaRow { + title: _("Alpha"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 0; + upper: 100; + step-increment: 1; + }; + + [prefix] + Gtk.Image { + icon-name: "checkerboard-symbolic"; + } + } + } + }; + }; + }; +} diff --git a/org.nickvision.cavalier.gnome/blueprints/main_window.blp b/org.nickvision.cavalier.gnome/blueprints/main_window.blp new file mode 100644 index 0000000..ffcf5a3 --- /dev/null +++ b/org.nickvision.cavalier.gnome/blueprints/main_window.blp @@ -0,0 +1,55 @@ +using Gtk 4.0; +using Adw 1; + +menu mainMenu { + item(_("Preferences"), "win.preferences") + item(_("Keyboard Shortcuts"), "win.keyboardShortcuts") + item(_("About Cavalier"), "win.about") +} + +Adw.ApplicationWindow root { + width-request: 360; + height-request: 200; + + Adw.ToolbarView toolbarView { + [top] + Adw.HeaderBar headerBar { + title-widget: Adw.WindowTitle title {}; + + [end] + Gtk.MenuButton { + direction: none; + menu-model: mainMenu; + tooltip-text: _("Main Menu"); + primary: true; + } + } + + content: Adw.ToastOverlay toastOverlay { + hexpand: true; + vexpand: true; + + Adw.ViewStack viewStack { + Adw.ViewStackPage { + name: "Home"; + child: Adw.StatusPage pageGreeting { + icon-name: "org.nickvision.cavalier"; + title: _("Visualize Your Audio"); + description: _("Play some music or watch a video and see your sound come to life"); + + styles ["icon-dropshadow"] + }; + } + + Adw.ViewStackPage { + name: "Image"; + child: Gtk.Picture renderImage { + hexpand: true; + vexpand: true; + content-fit: fill; + }; + } + } + }; + } +} diff --git a/org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp b/org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp new file mode 100644 index 0000000..c1addd3 --- /dev/null +++ b/org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp @@ -0,0 +1,338 @@ +using Gtk 4.0; +using Adw 1; + +Adw.PreferencesDialog root { + content-width: 600; + content-height: 600; + search-enabled: true; + title: _("Preferences"); + + Adw.PreferencesPage { + title: _("Interface"); + icon-name: "hig-symbolic"; + + Adw.PreferencesGroup { + title: _("User Interface"); + + Adw.ComboRow themeRow { + title: _("Theme"); + model: Gtk.StringList { + strings [C_("Theme", "Light"), C_("Theme", "Dark"), C_("Theme", "System")] + }; + + [prefix] + Gtk.Image { + icon-name: "dark-mode-symbolic"; + } + } + } + + Adw.PreferencesGroup { + title: _("Drawing Area"); + + Adw.ComboRow drawingModeRow { + title: _("Drawing Mode"); + model: Gtk.StringList { + strings [_("Box"), _("Circle")] + }; + + [prefix] + Gtk.Image { + icon-name: "app-icon-design-symbolic"; + } + } + + Adw.ComboRow drawingShapeRow { + title: _("Drawing Shape"); + model: Gtk.StringList { + strings [_("Wave"), _("Levels"), _("Particles"), _("Bars"), _("Spine"), _("Splitter"), _("Hearts")] + }; + + [prefix] + Gtk.Image { + icon-name: "shapes-symbolic"; + } + } + + Adw.ComboRow drawingDirectionRow { + title: _("Drawing Direction"); + model: Gtk.StringList { + strings [_("Top to Bottom"), _("Bottom to Top"), _("Left to Right"), _("Right to Left")] + }; + + [prefix] + Gtk.Image { + icon-name: "double-ended-arrows-vertical-symbolic"; + } + } + + Adw.SwitchRow fillShapeRow { + title: _("Fill Shapes"); + + [prefix] + Gtk.Image { + icon-name: "square-filled-symbolic"; + } + } + + Adw.ComboRow mirrowModeRow { + title: _("Mirror Mode"); + model: Gtk.StringList { + strings [_("Off"), _("Full"), _("Split Channels"), _("Full Reverse"), _("Split Channels Reverse")] + }; + + [prefix] + Gtk.Image { + icon-name: "view-mirror-symbolic"; + } + } + + Adw.SpinRow drawingMarginRow { + title: _("Area Margin"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 0; + upper: 40; + step-increment: 1; + }; + + [prefix] + Gtk.Image { + icon-name: "resize-mode-symbolic"; + } + } + + Adw.SpinRow drawingXOffset { + title: _("Area X Offset"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: -5; + upper: 5; + step-increment: 1; + }; + + [prefix] + Gtk.Image { + icon-name: "move-tool-symbolic"; + } + } + + Adw.SpinRow drawingYOffset { + title: _("Area Y Offset"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: -5; + upper: 5; + step-increment: 1; + }; + + [prefix] + Gtk.Image { + icon-name: "move-tool-symbolic"; + } + } + + Adw.SpinRow itemSpacingRow { + title: _("Item Spacing"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 0; + upper: 20; + step-increment: 1; + }; + + [prefix] + Gtk.Image { + icon-name: "stacked-plates-symbolic"; + } + } + + Adw.SpinRow itemRoundnessRow { + title: _("Item Roundness"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 0; + upper: 100; + step-increment: 1; + page-increment: 10; + }; + + [prefix] + Gtk.Image { + icon-name: "circle-filled-symbolic"; + } + } + } + } + + Adw.PreferencesPage { + title: _("Cava"); + icon-name: "utilities-terminal-symbolic"; + + Adw.PreferencesGroup { + title: _("Options"); + + Adw.ComboRow channelsRow { + title: _("Channels"); + model: Gtk.StringList { + strings [_("Mono"), _("Stereo")] + }; + + [prefix] + Gtk.Image { + icon-name: "speaker-symbolic"; + } + } + + Adw.SpinRow framerateRow { + title: _("Framerate"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 0; + upper: 200; + step-increment: 1; + page-increment: 30; + }; + + [prefix] + Gtk.Image { + icon-name: "speedometer5-symbolic"; + } + } + + Adw.SpinRow numberOfBarsRow { + title: _("Number of Bars"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 6; + upper: 200; + step-increment: 1; + page-increment: 6; + }; + + [prefix] + Gtk.Image { + icon-name: "strength-bars-1-symbolic"; + } + } + + Adw.SwitchRow reverseBarOrderRow { + title: _("Reverse Bar Order"); + + [prefix] + Gtk.Image { + icon-name: "double-ended-arrows-horizontal-symbolic"; + } + } + + Adw.SwitchRow automaticSensitivityRow { + title: _("Automatic Sensitivity"); + subtitle: _("Cavalier will attempt to decrease sensitivity if the bars peak."); + + [prefix] + Gtk.Image { + icon-name: "speaker-4-symbolic"; + } + } + + Adw.SpinRow sensitivityRow { + title: _("Manual Sensitivity"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 10; + upper: 100; + step-increment: 1; + page-increment: 10; + }; + + [prefix] + Gtk.Image { + icon-name: "speaker-2-symbolic"; + } + } + + Adw.SwitchRow monstercatRow { + title: _("Monstercat Smoothing"); + + [prefix] + Gtk.Image { + icon-name: "smoothen-symbolic"; + } + } + + Adw.SpinRow nosieReductionRow { + title: _("Noise Reduction Factor"); + numeric: true; + adjustment: Gtk.Adjustment { + lower: 15; + upper: 95; + step-increment: 1; + page-increment: 5; + }; + + [prefix] + Gtk.Image { + icon-name: "speaker-1-symbolic"; + } + } + } + } + + Adw.PreferencesPage { + title: _("Colors"); + icon-name: "preferences-color-symbolic"; + + Adw.PreferencesGroup colorProfilesGroup { + title: _("Profiles"); + + header-suffix: Gtk.Box { + Gtk.Button addColorProfileButton { + Adw.ButtonContent { + label: _("Add"); + icon-name: "list-add-symbolic"; + } + } + + styles [ "toolbar" ] + }; + + Adw.ComboRow activeColorProfileRow { + title: _("Active Profile"); + + [prefix] + Gtk.Image { + icon-name: "check-round-outline-symbolic"; + } + } + } + } + + Adw.PreferencesPage { + title: _("Images"); + icon-name: "image-x-generic-symbolic"; + + Adw.PreferencesGroup backgroundImagesGroup { + title: _("Background Images"); + + header-suffix: Gtk.Box { + Gtk.Button addBackgroundImageButton { + Adw.ButtonContent { + label: _("Add"); + icon-name: "list-add-symbolic"; + } + } + + styles [ "toolbar" ] + }; + + Adw.ComboRow activeBackgroundImageRow { + title: _("Active Image"); + + [prefix] + Gtk.Image { + icon-name: "check-round-outline-symbolic"; + } + } + } + } +} diff --git a/org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp b/org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp new file mode 100644 index 0000000..bd884a6 --- /dev/null +++ b/org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp @@ -0,0 +1,35 @@ +using Gtk 4.0; + +Gtk.ShortcutsWindow root { + default-width: 600; + default-height: 500; + modal: true; + resizable: true; + destroy-with-parent: false; + + Gtk.ShortcutsSection { + Gtk.ShortcutsGroup { + title: C_("Shortcut", "Application"); + + Gtk.ShortcutsShortcut { + title: _("Preferences"); + accelerator: "comma"; + } + + Gtk.ShortcutsShortcut { + title: _("Keyboard Shortcuts"); + accelerator: "question"; + } + + Gtk.ShortcutsShortcut { + title: _("About Application"); + accelerator: "F1"; + } + + Gtk.ShortcutsShortcut { + title: _("Quit"); + accelerator: "Q"; + } + } + } +} diff --git a/org.nickvision.cavalier.gnome/include/application.h b/org.nickvision.cavalier.gnome/include/application.h new file mode 100644 index 0000000..d6341fb --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/application.h @@ -0,0 +1,50 @@ +#ifndef APPLICATION_H +#define APPLICATION_H + +#include +#include +#include +#include "controllers/mainwindowcontroller.h" +#include "views/mainwindow.h" + +namespace Nickvision::Cavalier::GNOME +{ + /** + * @brief The main GTK application point. + */ + class Application + { + public: + /** + * @brief Constructs an Application. + * @param argc The number of arguments passed to the application + * @param argv The array of argument strings passed to the application + */ + Application(int argc, char* argv[]); + /** + * @brief Runs the application. + * @brief This runs the gtk application loop. + * @return The return code from the gtk application + */ + int run(); + + private: + /** + * @brief Handles starting the application. + * @param app The GtkApplication for the running app + */ + void onStartup(GtkApplication* app); + /** + * @brief Handles activating the application. + * @param app The GtkApplication for the running app + */ + void onActivate(GtkApplication* app); + int m_argc; + char** m_argv; + std::shared_ptr m_controller; + AdwApplication* m_adw; + std::shared_ptr m_mainWindow; + }; +} + +#endif //APPLCIATION_H \ No newline at end of file diff --git a/org.nickvision.cavalier.gnome/include/controls/imagedialog.h b/org.nickvision.cavalier.gnome/include/controls/imagedialog.h new file mode 100644 index 0000000..2a00f8f --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/controls/imagedialog.h @@ -0,0 +1,37 @@ +#ifndef IMAGEDIALOG_H +#define IMAGEDIALOG_H + +#include +#include "helpers/dialogbase.h" +#include "models/backgroundimage.h" + +namespace Nickvision::Cavalier::GNOME::Controls +{ + /** + * @brief A dialog for managing a background image. + */ + class ImageDialog : public Helpers::DialogBase + { + public: + /** + * @brief Constructs an ImageDialog. + * @param image The BackgroundImage object to manage + * @param parent The GtkWindow object of the parent window + */ + ImageDialog(const Shared::Models::BackgroundImage& image, GtkWindow* parent); + /** + * @brief Gets the background image managed by the dialog. + * @return The BackgroundImage + */ + const Shared::Models::BackgroundImage& getImage() const; + + private: + /** + * @brief Handles when the dialog closes. + */ + void onClosed(); + Shared::Models::BackgroundImage m_image; + }; +} + +#endif //IMAGEDIALOG_H diff --git a/org.nickvision.cavalier.gnome/include/helpers/builder.h b/org.nickvision.cavalier.gnome/include/helpers/builder.h new file mode 100644 index 0000000..8266988 --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/helpers/builder.h @@ -0,0 +1,48 @@ +#ifndef BUILDER_H +#define BUILDER_H + +#include +#include + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + /** + * @brief A helper class wrapping GtkBuilder functionality. + */ + class Builder + { + public: + /** + * @brief Constructs a Builder. + * @brief Looks for the ui file with the path: "{CURRENT_DIRECTORY}/ui/{uiFileName}.ui" + * @param uiFileName The name of the ui file + * @throw std::invalid_argument Thrown if the file does not exist + * @throw std::runtime_error Thrown if unable to create the GtkBuilder object + */ + Builder(const std::string& uiFileName); + /** + * @brief Destructs a Builder. + */ + ~Builder(); + /** + * @brief Gets the GtkBuilder object. + * @return The GtkBuilder object + */ + GtkBuilder* gobj() const; + /** + * @brief Gets a widget from the GtkBuilder object. + * @param name The name of the widget + * @return The widget or nullptr if not found + */ + template + T* get(const std::string& name) const + { + return reinterpret_cast(gtk_builder_get_object(m_builder, name.c_str())); + } + + private: + GtkBuilder* m_builder; + }; +} + +#endif //BUILDER_H \ No newline at end of file diff --git a/org.nickvision.cavalier.gnome/include/helpers/controlbase.h b/org.nickvision.cavalier.gnome/include/helpers/controlbase.h new file mode 100644 index 0000000..7a73813 --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/helpers/controlbase.h @@ -0,0 +1,46 @@ +#ifndef CONTROLBASE_H +#define CONTROLBASE_H + +#include +#include +#include "builder.h" + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + /** + * @brief A base class for custom gtk controls with blueprints. + */ + template + class ControlBase + { + public: + /** + * @brief Constructs a ControlBase. + * @param parent GtkWindow* + * @param fileName The file name for the blueprint file of the control + * @param rootName The name of the control component in the blueprint file + */ + ControlBase(GtkWindow* parent, const std::string& fileName, const std::string& rootName = "root") + : m_builder{ fileName }, + m_parent{ parent }, + m_control{ m_builder.get(rootName) } + { + + } + /** + * @brief Gets the underlying control pointer. + * @return T* + */ + T* gobj() + { + return m_control; + } + + protected: + Builder m_builder; + GtkWindow* m_parent; + T* m_control; + }; +} + +#endif //CONTROLBASE_H \ No newline at end of file diff --git a/org.nickvision.cavalier.gnome/include/helpers/controlptr.h b/org.nickvision.cavalier.gnome/include/helpers/controlptr.h new file mode 100644 index 0000000..874437d --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/helpers/controlptr.h @@ -0,0 +1,113 @@ +#ifndef CONTROLPTR_H +#define CONTROLPTR_H + +#include +#include "controlbase.h" + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + /** + * @brief A pointer for a custom gtk control. + * @brief Keeps the pointer alive until the control has been destroyed. + */ + template + class ControlPtr + { + public: + /** + * @brief Constructs a ControlPtr. + */ + ControlPtr() + : m_ptr{ nullptr } + { + + } + /** + * @brief Constructs a ControlPtr. + * @param args the arguments to pass to T's constructor. + */ + template + ControlPtr(Args... args) + : m_ptr{ new T(args...) } + { + g_signal_connect(m_ptr->gobj(), "destroy", GCallback(+[](GtkWidget*, gpointer data){ delete reinterpret_cast(data); }), m_ptr); + } + /** + * @brief Constructs a ControlPtr. + * @brief The ControlPtr assumes ownership of ptr. + * @param ptr T* + */ + ControlPtr(T* ptr) + : m_ptr{ ptr } + { + g_signal_connect(m_ptr->gobj(), "destroy", GCallback(+[](GtkWidget*, gpointer data){ delete reinterpret_cast(data); }), m_ptr); + } + /** + * @brief Constructs a ControlPtr via copy. + * @param other The ControlPtr to copy + */ + ControlPtr(const ControlPtr& other) + : m_ptr{ other.m_ptr } + { + + } + /** + * @brief Constructs a ControlPtr via move. + * @param other The ControlPtr to move + */ + ControlPtr(ControlPtr&& other) + : m_ptr{ other.m_ptr } + { + + } + /** + * @brief Gets whether or not the ControlPtr is valid. + * @return True if valid, else false + */ + bool isValid() const + { + return m_ptr != nullptr; + } + /** + * @brief Returns the underlying pointer. + * @return T* + */ + T* operator->() const + { + return m_ptr; + } + /** + * @brief Assigns a ControlPtr via copy. + * @param other The ControlPtr to copy + * @return this + */ + ControlPtr& operator=(const ControlPtr& other) + { + m_ptr = other.m_ptr; + return *this; + } + /** + * @brief Assigns a ControlPtr via move. + * @param other The ControlPtr to move + * @return this + */ + ControlPtr& operator=(ControlPtr&& other) + { + m_ptr = other.m_ptr; + return *this; + } + /** + * @brief Gets whether or not the ControlPtr is valid. + * @return True if valid, else false + */ + operator bool() const + { + return isValid(); + } + + private: + T* m_ptr; + }; +} + +#endif //CONTROLPTR_H diff --git a/org.nickvision.cavalier.gnome/include/helpers/dialogbase.h b/org.nickvision.cavalier.gnome/include/helpers/dialogbase.h new file mode 100644 index 0000000..7da218e --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/helpers/dialogbase.h @@ -0,0 +1,48 @@ +#ifndef DIALOGBASE_H +#define DIALOGBASE_H + +#include +#include +#include +#include +#include "builder.h" + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + /** + * @brief A base class for custom AdwDialogs with blueprints. + */ + class DialogBase + { + public: + /** + * @brief Constructs a DialogBase. + * @param parent GtkWindow* + * @param fileName The file name for the blueprint file of the dialog + * @param rootName The name of the AdwDialog component in the blueprint file + */ + DialogBase(GtkWindow* parent, const std::string& fileName, const std::string& rootName = "root"); + /** + * @brief Gets the underlying AdwDialog pointer. + * @return AdwDialog* + */ + AdwDialog* gobj(); + /** + * @brief Gets the event for when the dialog is closed. + * @return The closed event + */ + Nickvision::Events::Event& closed(); + /** + * @brief Presents the AdwDialog. + */ + void present() const; + + protected: + Builder m_builder; + GtkWindow* m_parent; + AdwDialog* m_dialog; + Nickvision::Events::Event m_closed; + }; +} + +#endif //DIALOGBASE_H diff --git a/org.nickvision.cavalier.gnome/include/helpers/dialogptr.h b/org.nickvision.cavalier.gnome/include/helpers/dialogptr.h new file mode 100644 index 0000000..382495b --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/helpers/dialogptr.h @@ -0,0 +1,126 @@ +#ifndef DIALOGPTR_H +#define DIALOGPTR_H + +#include +#include "dialogbase.h" + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + template + concept DerivedDialogBase = std::is_base_of_v; + + /** + * @brief A pointer for a custom AdwDialog. + * @brief Keeps the pointer alive until the dialog has closed. + */ + template + class DialogPtr + { + public: + /** + * @brief Constructs a DialogPtr. + */ + DialogPtr() + : m_ptr{ nullptr } + { + + } + /** + * @brief Constructs a DialogPtr. + * @param args The arguments to pass to T's constructor. + */ + template + DialogPtr(Args... args) + : m_ptr{ new T(args...) } + { + g_signal_connect(m_ptr->gobj(), "closed", GCallback(+[](AdwDialog*, gpointer data) + { + T* ptr{ reinterpret_cast(data) }; + ptr->closed().invoke({}); + delete ptr; + }), m_ptr); + } + /** + * @brief Constructs a DialogPtr. + * @brief The DialogPtr assumes ownership of ptr. + * @param ptr T* + */ + DialogPtr(T* ptr) + : m_ptr{ ptr } + { + g_signal_connect(m_ptr->gobj(), "closed", GCallback(+[](AdwDialog*, gpointer data) + { + T* ptr{ reinterpret_cast(data) }; + ptr->closed().invoke({}); + delete ptr; + }), m_ptr); + } + /** + * @brief Constructs a DialogPtr via copy. + * @param other The DialogPtr to copy + */ + DialogPtr(const DialogPtr& other) + : m_ptr{ other.m_ptr } + { + + } + /** + * @brief Constructs a DialogPtr via move. + * @param other The DialogPtr to move + */ + DialogPtr(DialogPtr&& other) + : m_ptr{ other.m_ptr } + { + + } + /** + * @brief Gets whether or not the DialogPtr is valid. + * @return True if valid, else false + */ + bool isValid() const + { + return m_ptr != nullptr; + } + /** + * @brief Returns the underlying pointer. + * @return T* + */ + T* operator->() const + { + return m_ptr; + } + /** + * @brief Assigns a DialogPtr via copy. + * @param other The DialogPtr to copy + * @return this + */ + DialogPtr& operator=(const DialogPtr& other) + { + m_ptr = other.m_ptr; + return *this; + } + /** + * @brief Assigns a DialogPtr via move. + * @param other The DialogPtr to move + * @return this + */ + DialogPtr& operator=(DialogPtr&& other) + { + m_ptr = other.m_ptr; + return *this; + } + /** + * @brief Gets whether or not the DialogPtr is valid. + * @return True if valid, else false + */ + operator bool() const + { + return isValid(); + } + + private: + T* m_ptr; + }; +} + +#endif //DIALOGPTR_H diff --git a/org.nickvision.cavalier.gnome/include/helpers/gtkhelpers.h b/org.nickvision.cavalier.gnome/include/helpers/gtkhelpers.h new file mode 100644 index 0000000..6d0c82b --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/helpers/gtkhelpers.h @@ -0,0 +1,56 @@ +#ifndef GTKHELPERS_H +#define GTKHELPERS_H + +#include +#include +#include +#include + +namespace Nickvision::Cavalier::GNOME::Helpers::GtkHelpers +{ + /** + * @brief Adds a widget to a GtkBox. + * @param box The box to add the widget to + * @param widget The widget to add + * @param addSeparator Whether or not to add a separator between the widgets + */ + void addToBox(GtkBox* box, GtkWidget* widget, bool addSeparator = false); + /** + * @brief Runs the function on the main UI thread. + * @param function The function to run + */ + void dispatchToMainThread(const std::function& function); + /** + * @brief Moves a widget from one box to another. + * @param oldBox The old box + * @param newBox The new box + * @param widget The widget to move + * @param addSeparator Whether or not to add a separator between the widgets + */ + void moveFromBox(GtkBox* oldBox, GtkBox* newBox, GtkWidget* widget, bool addSeparator = false); + /** + * @brief Sets the accelerator for an action. + * @param app The GtkApplication + * @param action The action detailed name + * @param accel The accelerator + */ + void setAccelForAction(GtkApplication* app, const char* action, const char* accel); + /** + * @brief Sets the model for a combo row. + * @param row The combo row + * @param strs The strings to set + * @param selected An optional string that should be selected + * @param allowEllipse Whether or not to allow ellipses in the combo row + */ + void setComboRowModel(AdwComboRow* row, const std::vector& strs, const std::string& selected = "", bool allowEllipse = true); + /** + * @brief Sets the model for a combo row. + * @param row The combo row + * @param strs The strings to set + * @param selected An optional index that should be selected + * @param allowEllipse Whether or not to allow ellipses in the combo row + */ + void setComboRowModel(AdwComboRow* row, const std::vector& strs, size_t selected = 0, bool allowEllipse = true); +} + +#endif //GTKHELPERS_H diff --git a/org.nickvision.cavalier.gnome/include/views/mainwindow.h b/org.nickvision.cavalier.gnome/include/views/mainwindow.h new file mode 100644 index 0000000..1c5169d --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/views/mainwindow.h @@ -0,0 +1,79 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include "controllers/mainwindowcontroller.h" +#include "helpers/builder.h" + +namespace Nickvision::Cavalier::GNOME::Views +{ + /** + * @brief The main window for the application. + */ + class MainWindow + { + public: + /** + * @brief Constructs a MainWindow. + * @param controller The MainWindowController + * @param app The GtkApplication object of the running app + */ + MainWindow(const std::shared_ptr& controller, GtkApplication* app); + /** + * @brief Destructs the MainWindow. + */ + ~MainWindow(); + /** + * @brief Shows the main window. + */ + void show(); + + private: + /** + * @brief Handles when the window requests to close. + * @return True to prevent closing, else false + */ + bool onCloseRequested(); + /** + * @brief Handles when the window is resized. + */ + void onWindowResized(); + /** + * @brief Handles when a notification is sent to the window. + * @param args Nickvision::Notifications::NotificationSentEventArgs + */ + void onNotificationSent(const Nickvision::Notifications::NotificationSentEventArgs& args);\ + /** + * @brief Handles when cava stops outputting data. + */ + void onCavaOutputStopped(); + /** + * @brief Handles when an image is rendered + * @param args Nickvision::Events::ParamEventArgs + */ + void onImageRendered(const Nickvision::Events::ParamEventArgs& args); + /** + * @brief Quits the application. + */ + void quit(); + /** + * @brief Opens the application's preferences dialog. + */ + void preferences(); + /** + * @brief Opens the application's keyboard shortcut dialog. + */ + void keyboardShortcuts(); + /** + * @brief Opens the application's about dialog. + */ + void about(); + std::shared_ptr m_controller; + GtkApplication* m_app; + Helpers::Builder m_builder; + AdwApplicationWindow* m_window; + }; +} + +#endif //MAINWINDOW_H diff --git a/org.nickvision.cavalier.gnome/include/views/preferencesdialog.h b/org.nickvision.cavalier.gnome/include/views/preferencesdialog.h new file mode 100644 index 0000000..44d9b35 --- /dev/null +++ b/org.nickvision.cavalier.gnome/include/views/preferencesdialog.h @@ -0,0 +1,76 @@ +#ifndef PREFERENCESDIALOG_H +#define PREFERENCESDIALOG_H + +#include +#include +#include +#include "controllers/preferencesviewcontroller.h" +#include "helpers/dialogbase.h" + +namespace Nickvision::Cavalier::GNOME::Views +{ + /** + * @brief The preferences dialog for the application. + */ + class PreferencesDialog : public Helpers::DialogBase + { + public: + /** + * @brief Constructs a PreferencesDialog. + * @param controller The PreferencesViewController + * @param parent The GtkWindow object of the parent window + */ + PreferencesDialog(const std::shared_ptr& controller, GtkWindow* parent); + + private: + /** + * @brief Handles when the dialog is closed. + */ + void onClosed(); + /** + * @brief Handles when the theme preference is changed. + */ + void onThemeChanged(); + /** + * @brief Prompts the user to create a color profile. + */ + void addColorProfile(); + /** + * @brief Prompts the user to edit a color profile. + * @param index The index of the profile to edit + */ + void editColorProfile(int index); + /** + * @brief Prompts the user to delete a color profile. + * @param index The index of the profile to delete + */ + void deleteColorProfile(int index); + /** + * @brief Prompts the user to add a background image. + */ + void addBackgroundImage(); + /** + * @brief Prompts the user to edit a background image. + * @param index The index of the image to edit + */ + void editBackgroundImage(int index); + /** + * @brief Prompts the user to delete a background image. + * @param index The index of the image to delete + */ + void deleteBackgroundImage(int index); + /** + * @brief Loads color profile rows. + */ + void loadColorProfiles(); + /** + * @brief Loads background image rows. + */ + void loadBackgroundImages(); + std::shared_ptr m_controller; + std::vector m_colorProfileRows; + std::vector m_backgroundImageRows; + }; +} + +#endif //PREFERENCESDIALOG_H diff --git a/org.nickvision.cavalier.gnome/resources/app-icon-design-symbolic.svg b/org.nickvision.cavalier.gnome/resources/app-icon-design-symbolic.svg new file mode 100644 index 0000000..a8fc2d2 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/app-icon-design-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/check-round-outline-symbolic.svg b/org.nickvision.cavalier.gnome/resources/check-round-outline-symbolic.svg new file mode 100644 index 0000000..34a1ae5 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/check-round-outline-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/checkerboard-symbolic.svg b/org.nickvision.cavalier.gnome/resources/checkerboard-symbolic.svg new file mode 100644 index 0000000..93372dd --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/checkerboard-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/circle-filled-symbolic.svg b/org.nickvision.cavalier.gnome/resources/circle-filled-symbolic.svg new file mode 100644 index 0000000..d157bb6 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/circle-filled-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/dark-mode-symbolic.svg b/org.nickvision.cavalier.gnome/resources/dark-mode-symbolic.svg new file mode 100644 index 0000000..94eee23 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/dark-mode-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/double-ended-arrows-horizontal-symbolic.svg b/org.nickvision.cavalier.gnome/resources/double-ended-arrows-horizontal-symbolic.svg new file mode 100644 index 0000000..d2e77f2 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/double-ended-arrows-horizontal-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/double-ended-arrows-vertical-symbolic.svg b/org.nickvision.cavalier.gnome/resources/double-ended-arrows-vertical-symbolic.svg new file mode 100644 index 0000000..c6a52a5 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/double-ended-arrows-vertical-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/hig-symbolic.svg b/org.nickvision.cavalier.gnome/resources/hig-symbolic.svg new file mode 100644 index 0000000..3684aef --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/hig-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/move-tool-symbolic.svg b/org.nickvision.cavalier.gnome/resources/move-tool-symbolic.svg new file mode 100644 index 0000000..51a32ba --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/move-tool-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/org.nickvision.cavalier.gresource.xml b/org.nickvision.cavalier.gnome/resources/org.nickvision.cavalier.gresource.xml new file mode 100644 index 0000000..1eafa6c --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/org.nickvision.cavalier.gresource.xml @@ -0,0 +1,33 @@ + + + + ../../resources/org.nickvision.cavalier.svg + ../../resources/org.nickvision.cavalier-devel.svg + + + ../../resources/org.nickvision.cavalier-symbolic.svg + + + app-icon-design-symbolic.svg + check-round-outline-symbolic.svg + checkerboard-symbolic.svg + circle-filled-symbolic.svg + dark-mode-symbolic.svg + double-ended-arrows-horizontal-symbolic.svg + double-ended-arrows-vertical-symbolic.svg + hig-symbolic.svg + move-tool-symbolic.svg + resize-mode-symbolic.svg + shapes-symbolic.svg + smoothen-symbolic.svg + speaker-symbolic.svg + speaker-1-symbolic.svg + speaker-2-symbolic.svg + speaker-4-symbolic.svg + speedometer5-symbolic.svg + square-filled-symbolic.svg + stacked-plates-symbolic.svg + strength-bars-1-symbolic.svg + view-mirror-symbolic.svg + + diff --git a/org.nickvision.cavalier.gnome/resources/resize-mode-symbolic.svg b/org.nickvision.cavalier.gnome/resources/resize-mode-symbolic.svg new file mode 100644 index 0000000..7df818b --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/resize-mode-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/shapes-symbolic.svg b/org.nickvision.cavalier.gnome/resources/shapes-symbolic.svg new file mode 100644 index 0000000..5919628 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/shapes-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/smoothen-symbolic.svg b/org.nickvision.cavalier.gnome/resources/smoothen-symbolic.svg new file mode 100644 index 0000000..ddf4ba5 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/smoothen-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/speaker-1-symbolic.svg b/org.nickvision.cavalier.gnome/resources/speaker-1-symbolic.svg new file mode 100644 index 0000000..435d51e --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/speaker-1-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/speaker-2-symbolic.svg b/org.nickvision.cavalier.gnome/resources/speaker-2-symbolic.svg new file mode 100644 index 0000000..3893606 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/speaker-2-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/speaker-4-symbolic.svg b/org.nickvision.cavalier.gnome/resources/speaker-4-symbolic.svg new file mode 100644 index 0000000..eb425a3 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/speaker-4-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/speaker-symbolic.svg b/org.nickvision.cavalier.gnome/resources/speaker-symbolic.svg new file mode 100644 index 0000000..7b1c819 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/speaker-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/speedometer5-symbolic.svg b/org.nickvision.cavalier.gnome/resources/speedometer5-symbolic.svg new file mode 100644 index 0000000..78e9ab8 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/speedometer5-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/square-filled-symbolic.svg b/org.nickvision.cavalier.gnome/resources/square-filled-symbolic.svg new file mode 100644 index 0000000..8c9e50c --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/square-filled-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/stacked-plates-symbolic.svg b/org.nickvision.cavalier.gnome/resources/stacked-plates-symbolic.svg new file mode 100644 index 0000000..b425deb --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/stacked-plates-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/strength-bars-1-symbolic.svg b/org.nickvision.cavalier.gnome/resources/strength-bars-1-symbolic.svg new file mode 100644 index 0000000..c2c8ea2 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/strength-bars-1-symbolic.svg @@ -0,0 +1,2 @@ + + diff --git a/org.nickvision.cavalier.gnome/resources/view-mirror-symbolic.svg b/org.nickvision.cavalier.gnome/resources/view-mirror-symbolic.svg new file mode 100644 index 0000000..0813af9 --- /dev/null +++ b/org.nickvision.cavalier.gnome/resources/view-mirror-symbolic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.nickvision.cavalier.gnome/src/application.cpp b/org.nickvision.cavalier.gnome/src/application.cpp new file mode 100644 index 0000000..fe7e719 --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/application.cpp @@ -0,0 +1,59 @@ +#include "application.h" +#include +#include + +using namespace Nickvision::Cavalier::Shared::Controllers; +using namespace Nickvision::Cavalier::Shared::Models; +using namespace Nickvision::System; + +namespace Nickvision::Cavalier::GNOME +{ + Application::Application(int argc, char* argv[]) + : m_argc{ argc }, + m_argv{ argv }, + m_controller{ std::make_shared(std::vector(argv, argv + argc)) }, + m_adw{ adw_application_new(m_controller->getAppInfo().getId().c_str(), G_APPLICATION_DEFAULT_FLAGS) }, + m_mainWindow{ nullptr } + { + std::filesystem::path resources{ Environment::getExecutableDirectory() / (m_controller->getAppInfo().getId() + ".gresource") }; + GError* resourceLoadError{ nullptr }; + GResource* resource{ g_resource_load(resources.string().c_str(), &resourceLoadError) }; + if(resourceLoadError) + { + throw std::runtime_error(resourceLoadError->message); + } + g_resources_register(resource); + g_signal_connect(m_adw, "startup", G_CALLBACK(+[](GtkApplication* app, gpointer data){ reinterpret_cast(data)->onStartup(app); }), this); + g_signal_connect(m_adw, "activate", G_CALLBACK(+[](GtkApplication* app, gpointer data){ reinterpret_cast(data)->onActivate(app); }), this); + } + + int Application::run() + { + return g_application_run(G_APPLICATION(m_adw), m_argc, m_argv); + } + + void Application::onStartup(GtkApplication* app) + { + switch (m_controller->getTheme()) + { + case Theme::Light: + adw_style_manager_set_color_scheme(adw_style_manager_get_default(), ADW_COLOR_SCHEME_FORCE_LIGHT); + break; + case Theme::Dark: + adw_style_manager_set_color_scheme(adw_style_manager_get_default(), ADW_COLOR_SCHEME_FORCE_DARK); + break; + default: + adw_style_manager_set_color_scheme(adw_style_manager_get_default(), ADW_COLOR_SCHEME_DEFAULT); + break; + } + if(!m_mainWindow) + { + m_mainWindow = std::make_shared(m_controller, app); + } + } + + void Application::onActivate(GtkApplication* app) + { + m_mainWindow->show(); + } +} diff --git a/org.nickvision.cavalier.gnome/src/controls/imagedialog.cpp b/org.nickvision.cavalier.gnome/src/controls/imagedialog.cpp new file mode 100644 index 0000000..45ebb3b --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/controls/imagedialog.cpp @@ -0,0 +1,41 @@ +#include "controls/imagedialog.h" + +#define PICTURE_WIDTH 300 +#define PICTURE_HEIGHT 200 + +using namespace Nickvision::Cavalier::GNOME::Helpers; +using namespace Nickvision::Cavalier::Shared::Models; +using namespace Nickvision::Events; + +namespace Nickvision::Cavalier::GNOME::Controls +{ + ImageDialog::ImageDialog(const BackgroundImage& image, GtkWindow* parent) + : DialogBase{ parent, "image_dialog" }, + m_image{ image } + { + //Load + adw_window_title_set_title(m_builder.get("windowTitle"), image.getPath().filename().string().c_str()); + adw_window_title_set_subtitle(m_builder.get("windowTitle"), image.getPath().parent_path().string().c_str()); + GdkPixbuf* pixbuf{ gdk_pixbuf_new_from_file_at_scale(image.getPath().string().c_str(), PICTURE_WIDTH, PICTURE_HEIGHT, true, nullptr) }; + GdkTexture* texture{ gdk_texture_new_for_pixbuf(pixbuf) }; + gtk_widget_set_size_request(m_builder.get("picture"), PICTURE_WIDTH, PICTURE_HEIGHT); + gtk_picture_set_paintable(m_builder.get("picture"), GDK_PAINTABLE(texture)); + g_object_unref(texture); + g_object_unref(pixbuf); + adw_spin_row_set_value(m_builder.get("scaleRow"), static_cast(image.getScale())); + adw_spin_row_set_value(m_builder.get("alphaRow"), static_cast(image.getAlpha())); + //Signals + m_closed += [this](const EventArgs&){ onClosed(); }; + } + + const BackgroundImage& ImageDialog::getImage() const + { + return m_image; + } + + void ImageDialog::onClosed() + { + m_image.setScale(static_cast(adw_spin_row_get_value(m_builder.get("scaleRow")))); + m_image.setAlpha(static_cast(adw_spin_row_get_value(m_builder.get("alphaRow")))); + } +} diff --git a/org.nickvision.cavalier.gnome/src/helpers/builder.cpp b/org.nickvision.cavalier.gnome/src/helpers/builder.cpp new file mode 100644 index 0000000..60264f1 --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/helpers/builder.cpp @@ -0,0 +1,57 @@ +#include "helpers/builder.h" +#include +#include +#include +#include +#include + +using namespace Nickvision::System; + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + Builder::Builder(const std::string& uiFileName) + : m_builder{ nullptr } + { + std::filesystem::path path{ Environment::getExecutableDirectory() / "ui" / (uiFileName + ".ui") }; + if(!std::filesystem::exists(path)) + { + throw std::invalid_argument("UI file not found: " + path.string()); + } + xmlpp::DomParser xml{ path.string() }; + xmlpp::Element* root{ xml.get_document()->get_root_node() }; + for(xmlpp::Node* node : root->find("//text()")) + { + xmlpp::Element* e{ node->get_parent() }; + if(e->get_attribute("translatable")) + { + xmlpp::TextNode* t{ dynamic_cast(node) }; + e->remove_attribute("translatable"); + std::string context{ e->get_attribute_value("context") }; + if(!context.empty()) + { + std::string p{ context + "\004" + t->get_content() }; + t->set_content(Nickvision::Localization::Gettext::pgettext(p.c_str(), t->get_content().c_str())); + } + else + { + t->set_content(_(t->get_content().c_str())); + } + } + } + m_builder = gtk_builder_new_from_string(xml.get_document()->write_to_string().c_str(), -1); + if(!m_builder) + { + throw std::runtime_error("Unable to create GtkBuilder object."); + } + } + + Builder::~Builder() + { + g_object_unref(m_builder); + } + + GtkBuilder* Builder::gobj() const + { + return m_builder; + } +} diff --git a/org.nickvision.cavalier.gnome/src/helpers/dialogbase.cpp b/org.nickvision.cavalier.gnome/src/helpers/dialogbase.cpp new file mode 100644 index 0000000..971057f --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/helpers/dialogbase.cpp @@ -0,0 +1,29 @@ +#include "helpers/dialogbase.h" + +using namespace Nickvision::Events; + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + DialogBase::DialogBase(GtkWindow* parent, const std::string& fileName, const std::string& rootName) + : m_builder{ fileName }, + m_parent{ parent }, + m_dialog{ m_builder.get(rootName) } + { + + } + + AdwDialog* DialogBase::gobj() + { + return m_dialog; + } + + Event& DialogBase::closed() + { + return m_closed; + } + + void DialogBase::present() const + { + adw_dialog_present(m_dialog, GTK_WIDGET(m_parent)); + } +} diff --git a/org.nickvision.cavalier.gnome/src/helpers/gtkhelpers.cpp b/org.nickvision.cavalier.gnome/src/helpers/gtkhelpers.cpp new file mode 100644 index 0000000..504b79d --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/helpers/gtkhelpers.cpp @@ -0,0 +1,81 @@ +#include "helpers/gtkhelpers.h" +#include + +namespace Nickvision::Cavalier::GNOME::Helpers +{ + void GtkHelpers::addToBox(GtkBox* box, GtkWidget* widget, bool addSeparator) + { + if(addSeparator && gtk_widget_get_first_child(GTK_WIDGET(box)) != nullptr) + { + gtk_box_append(box, gtk_separator_new(GTK_ORIENTATION_HORIZONTAL)); + } + gtk_box_append(box, widget); + } + + void GtkHelpers::dispatchToMainThread(const std::function& func) + { + g_idle_add(+[](gpointer data) -> int + { + std::function* function{ static_cast*>(data) }; + (*function)(); + delete function; + return G_SOURCE_REMOVE; + }, new std::function(func)); + } + + void GtkHelpers::moveFromBox(GtkBox* oldBox, GtkBox* newBox, GtkWidget* widget, bool addSeparator) + { + GtkWidget* oldSeparator{ gtk_widget_get_prev_sibling(widget) }; + if(oldSeparator == nullptr) + { + oldSeparator = gtk_widget_get_next_sibling(widget); + } + if(oldSeparator && GTK_IS_SEPARATOR(oldSeparator)) + { + gtk_box_remove(oldBox, oldSeparator); + } + gtk_box_remove(oldBox, widget); + if(addSeparator && gtk_widget_get_first_child(GTK_WIDGET(newBox)) != nullptr) + { + gtk_box_append(newBox, gtk_separator_new(GTK_ORIENTATION_HORIZONTAL)); + } + gtk_box_append(newBox, widget); + } + + void GtkHelpers::setAccelForAction(GtkApplication* app, const char* action, const char* accel) + { + const char* accels[2] { accel, nullptr }; + gtk_application_set_accels_for_action(app, action, accels); + } + + void GtkHelpers::setComboRowModel(AdwComboRow* row, const std::vector& strs, const std::string& selected, bool allowEllipse) + { + size_t selectedIndex{ 0 }; + GtkStringList* list{ gtk_string_list_new(nullptr) }; + for(size_t i = 0; i < strs.size(); i++) + { + const std::string str{ strs[i] }; + gtk_string_list_append(list, str.c_str()); + if(str == selected) + { + selectedIndex = i; + } + } + if(!allowEllipse) + { + g_signal_connect_after(adw_combo_row_get_factory(row), "setup", G_CALLBACK(+[](GtkListItemFactory* factory, GtkListItem* item, gpointer data) + { + GtkWidget* box{ gtk_list_item_get_child(item) }; + GtkLabel* lbl{ GTK_LABEL(gtk_widget_get_first_child(box)) }; + gtk_label_set_ellipsize(lbl, PANGO_ELLIPSIZE_NONE); + }), nullptr); + } + adw_combo_row_set_model(row, G_LIST_MODEL(list)); + adw_combo_row_set_selected(row, selectedIndex); + } + + void GtkHelpers::setComboRowModel(AdwComboRow* row, const std::vector& strs, size_t selected, bool allowEllipse) + { + setComboRowModel(row, strs, strs[selected], allowEllipse); + } +} diff --git a/org.nickvision.cavalier.gnome/src/main.cpp b/org.nickvision.cavalier.gnome/src/main.cpp new file mode 100644 index 0000000..e4aa5e5 --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/main.cpp @@ -0,0 +1,9 @@ +#include "application.h" + +using namespace Nickvision::Cavalier::GNOME; + +int main(int argc, char* argv[]) +{ + Application app{ argc, argv }; + return app.run(); +} \ No newline at end of file diff --git a/org.nickvision.cavalier.gnome/src/views/mainwindow.cpp b/org.nickvision.cavalier.gnome/src/views/mainwindow.cpp new file mode 100644 index 0000000..0f59aaa --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/views/mainwindow.cpp @@ -0,0 +1,201 @@ +#include "views/mainwindow.h" +#include +#include +#include +#include +#include +#include "helpers/dialogptr.h" +#include "helpers/gtkhelpers.h" +#include "views/preferencesdialog.h" + +using namespace Nickvision::App; +using namespace Nickvision::Cavalier::GNOME::Helpers; +using namespace Nickvision::Cavalier::Shared::Controllers; +using namespace Nickvision::Cavalier::Shared::Models; +using namespace Nickvision::Events; +using namespace Nickvision::Helpers; +using namespace Nickvision::Notifications; +using namespace Nickvision::Update; + +namespace Nickvision::Cavalier::GNOME::Views +{ + MainWindow::MainWindow(const std::shared_ptr& controller, GtkApplication* app) + : m_controller{ controller }, + m_app{ app }, + m_builder{ "main_window" }, + m_window{ m_builder.get("root") } + { + //Setup Window + gtk_application_add_window(GTK_APPLICATION(app), GTK_WINDOW(m_window)); + gtk_window_set_title(GTK_WINDOW(m_window), m_controller->getAppInfo().getShortName().c_str()); + gtk_window_set_icon_name(GTK_WINDOW(m_window), m_controller->getAppInfo().getId().c_str()); + if(m_controller->getAppInfo().getVersion().getVersionType() == VersionType::Preview) + { + gtk_widget_add_css_class(GTK_WIDGET(m_window), "devel"); + } + adw_window_title_set_title(m_builder.get("title"), m_controller->getAppInfo().getShortName().c_str()); + //Register Events + g_signal_connect(m_window, "close_request", G_CALLBACK(+[](GtkWindow*, gpointer data) -> bool { return reinterpret_cast(data)->onCloseRequested(); }), this); + g_signal_connect(m_window, "notify::default-width", G_CALLBACK(+[](GObject*, GParamSpec*, gpointer data){ reinterpret_cast(data)->onWindowResized(); }), this); + g_signal_connect(m_window, "notify::default-height", G_CALLBACK(+[](GObject*, GParamSpec*, gpointer data){ reinterpret_cast(data)->onWindowResized(); }), this); + m_controller->notificationSent() += [&](const NotificationSentEventArgs& args) { GtkHelpers::dispatchToMainThread([this, args]() { onNotificationSent(args); }); }; + m_controller->cavaOutputStopped() += [&](const EventArgs&) { GtkHelpers::dispatchToMainThread([this]() { onCavaOutputStopped(); }); }; + m_controller->imageRendered() += [&](const ParamEventArgs& args) { GtkHelpers::dispatchToMainThread([this, args]() { onImageRendered(args); }); }; + //Quit Action + GSimpleAction* actQuit{ g_simple_action_new("quit", nullptr) }; + g_signal_connect(actQuit, "activate", G_CALLBACK(+[](GSimpleAction*, GVariant*, gpointer data){ reinterpret_cast(data)->quit(); }), this); + g_action_map_add_action(G_ACTION_MAP(m_window), G_ACTION(actQuit)); + GtkHelpers::setAccelForAction(m_app, "win.quit", "Q"); + //Preferences Action + GSimpleAction* actPreferences{ g_simple_action_new("preferences", nullptr) }; + g_signal_connect(actPreferences, "activate", G_CALLBACK(+[](GSimpleAction*, GVariant*, gpointer data){ reinterpret_cast(data)->preferences(); }), this); + g_action_map_add_action(G_ACTION_MAP(m_window), G_ACTION(actPreferences)); + GtkHelpers::setAccelForAction(m_app, "win.preferences", "comma"); + //Keyboard Shortcuts Action + GSimpleAction* actKeyboardShortcuts{ g_simple_action_new("keyboardShortcuts", nullptr) }; + g_signal_connect(actKeyboardShortcuts, "activate", G_CALLBACK(+[](GSimpleAction*, GVariant*, gpointer data){ reinterpret_cast(data)->keyboardShortcuts(); }), this); + g_action_map_add_action(G_ACTION_MAP(m_window), G_ACTION(actKeyboardShortcuts)); + GtkHelpers::setAccelForAction(m_app, "win.keyboardShortcuts", "question"); + //About Action + GSimpleAction* actAbout{ g_simple_action_new("about", nullptr) }; + g_signal_connect(actAbout, "activate", G_CALLBACK(+[](GSimpleAction*, GVariant*, gpointer data){ reinterpret_cast(data)->about(); }), this); + g_action_map_add_action(G_ACTION_MAP(m_window), G_ACTION(actAbout)); + GtkHelpers::setAccelForAction(m_app, "win.about", "F1"); + } + + MainWindow::~MainWindow() + { + gtk_window_destroy(GTK_WINDOW(m_window)); + } + + void MainWindow::show() + { + gtk_window_present(GTK_WINDOW(m_window)); +#ifdef __linux__ + const StartupInformation& info{ m_controller->startup(m_controller->getAppInfo().getId() + ".desktop") }; +#else + const StartupInformation& info{ m_controller->startup() }; +#endif + gtk_window_set_default_size(GTK_WINDOW(m_window), static_cast(info.getWindowGeometry().getWidth()), static_cast(info.getWindowGeometry().getHeight())); + if(info.getWindowGeometry().isMaximized()) + { + gtk_window_maximize(GTK_WINDOW(m_window)); + } + } + + bool MainWindow::onCloseRequested() + { + if(!m_controller->canShutdown()) + { + return true; + } + int width; + int height; + gtk_window_get_default_size(GTK_WINDOW(m_window), &width, &height); + m_controller->shutdown({ width, height, static_cast(gtk_window_is_maximized(GTK_WINDOW(m_window))) }); + return false; + } + + void MainWindow::onWindowResized() + { + int width; + int height; + gtk_window_get_default_size(GTK_WINDOW(m_window), &width, &height); + m_controller->setCanvasSize(width, height); + } + + void MainWindow::onNotificationSent(const NotificationSentEventArgs& args) + { + AdwToast* toast{ adw_toast_new(args.getMessage().c_str()) }; + adw_toast_overlay_add_toast(m_builder.get("toastOverlay"), toast); + } + + void MainWindow::onCavaOutputStopped() + { + adw_view_stack_set_visible_child_name(m_builder.get("viewStack"), "Home"); + } + + void MainWindow::onImageRendered(const ParamEventArgs& args) + { + adw_view_stack_set_visible_child_name(m_builder.get("viewStack"), "Image"); + GBytes* bytes{ g_bytes_new(&args.getParam().getBytes()[0], args.getParam().getBytes().size()) }; + GdkTexture* texture{ gdk_texture_new_from_bytes(bytes, nullptr) }; + gtk_picture_set_paintable(m_builder.get("renderImage"), GDK_PAINTABLE(texture)); + g_object_unref(texture); + g_bytes_unref(bytes); + } + + void MainWindow::quit() + { + if(!onCloseRequested()) + { + g_application_quit(G_APPLICATION(m_app)); + } + } + + void MainWindow::preferences() + { + DialogPtr dialog{ m_controller->createPreferencesViewController(), GTK_WINDOW(m_window) }; + dialog->present(); + } + + void MainWindow::keyboardShortcuts() + { + Builder builderHelp{ "shortcuts_dialog" }; + GtkShortcutsWindow* shortcuts{ builderHelp.get("root") }; + gtk_window_set_transient_for(GTK_WINDOW(shortcuts), GTK_WINDOW(m_window)); + gtk_window_set_icon_name(GTK_WINDOW(shortcuts), m_controller->getAppInfo().getId().c_str()); + gtk_window_present(GTK_WINDOW(shortcuts)); + } + + void MainWindow::about() + { + std::string extraDebug; + extraDebug += "GTK " + std::to_string(gtk_get_major_version()) + "." + std::to_string(gtk_get_minor_version()) + "." + std::to_string(gtk_get_micro_version()) + "\n"; + extraDebug += "libadwaita " + std::to_string(adw_get_major_version()) + "." + std::to_string(adw_get_minor_version()) + "." + std::to_string(adw_get_micro_version()) + "\n"; + AdwAboutDialog* dialog{ ADW_ABOUT_DIALOG(adw_about_dialog_new()) }; + adw_about_dialog_set_application_name(dialog, m_controller->getAppInfo().getShortName().c_str()); + adw_about_dialog_set_application_icon(dialog, std::string(m_controller->getAppInfo().getId() + (m_controller->getAppInfo().getVersion().getVersionType() == VersionType::Preview ? "-devel" : "")).c_str()); + adw_about_dialog_set_developer_name(dialog, "Nickvision"); + adw_about_dialog_set_version(dialog, m_controller->getAppInfo().getVersion().str().c_str()); + adw_about_dialog_set_release_notes(dialog, m_controller->getAppInfo().getHtmlChangelog().c_str()); + adw_about_dialog_set_debug_info(dialog, m_controller->getDebugInformation(extraDebug).c_str()); + adw_about_dialog_set_comments(dialog, m_controller->getAppInfo().getDescription().c_str()); + adw_about_dialog_set_license_type(dialog, GTK_LICENSE_GPL_3_0); + adw_about_dialog_set_copyright(dialog, "© Nickvision 2021-2025"); + adw_about_dialog_set_website(dialog, "https://nickvision.org/"); + adw_about_dialog_set_issue_url(dialog, m_controller->getAppInfo().getIssueTracker().c_str()); + adw_about_dialog_set_support_url(dialog, m_controller->getAppInfo().getSupportUrl().c_str()); + adw_about_dialog_add_link(dialog, _("GitHub Repo"), m_controller->getAppInfo().getSourceRepo().c_str()); + for(const std::pair& pair : m_controller->getAppInfo().getExtraLinks()) + { + adw_about_dialog_add_link(dialog, pair.first.c_str(), pair.second.c_str()); + } + std::vector urls; + std::vector developers{ AppInfo::convertUrlMapToVector(m_controller->getAppInfo().getDevelopers()) }; + for(const std::string& developer : developers) + { + urls.push_back(developer.c_str()); + } + urls.push_back(nullptr); + adw_about_dialog_set_developers(dialog, &urls[0]); + urls.clear(); + std::vector designers{ AppInfo::convertUrlMapToVector(m_controller->getAppInfo().getDesigners()) }; + for(const std::string& designer : designers) + { + urls.push_back(designer.c_str()); + } + urls.push_back(nullptr); + adw_about_dialog_set_designers(dialog, &urls[0]); + urls.clear(); + std::vector artists{ AppInfo::convertUrlMapToVector(m_controller->getAppInfo().getArtists()) }; + for(const std::string& artist : artists) + { + urls.push_back(artist.c_str()); + } + urls.push_back(nullptr); + adw_about_dialog_set_artists(dialog, &urls[0]); + adw_about_dialog_set_translator_credits(dialog, m_controller->getAppInfo().getTranslatorCredits().c_str()); + adw_dialog_present(ADW_DIALOG(dialog), GTK_WIDGET(m_window)); + } +} diff --git a/org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp b/org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp new file mode 100644 index 0000000..7f2f6ea --- /dev/null +++ b/org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp @@ -0,0 +1,291 @@ +#include "views/preferencesdialog.h" +#include +#include +#include "controls/imagedialog.h" +#include "helpers/dialogptr.h" +#include "helpers/gtkhelpers.h" + +using namespace Nickvision::Cavalier::GNOME::Controls; +using namespace Nickvision::Cavalier::GNOME::Helpers; +using namespace Nickvision::Cavalier::Shared::Controllers; +using namespace Nickvision::Cavalier::Shared::Models; +using namespace Nickvision::Events; + +namespace Nickvision::Cavalier::GNOME::Views +{ + PreferencesDialog::PreferencesDialog(const std::shared_ptr& controller, GtkWindow* parent) + : DialogBase{ parent, "preferences_dialog" }, + m_controller{ controller } + { + //Load + DrawingArea drawing{ m_controller->getDrawingArea() }; + CavaOptions cava{ m_controller->getCavaOptions() }; + adw_combo_row_set_selected(m_builder.get("themeRow"), static_cast(m_controller->getTheme())); + adw_combo_row_set_selected(m_builder.get("drawingModeRow"), static_cast(drawing.getMode())); + adw_combo_row_set_selected(m_builder.get("drawingShapeRow"), static_cast(drawing.getShape())); + adw_combo_row_set_selected(m_builder.get("drawingDirectionRow"), static_cast(drawing.getDirection())); + adw_switch_row_set_active(m_builder.get("fillShapeRow"), drawing.getFillShape()); + adw_combo_row_set_selected(m_builder.get("mirrowModeRow"), static_cast(drawing.getMirrorMode())); + adw_spin_row_set_value(m_builder.get("drawingMarginRow"), static_cast(drawing.getMargin())); + adw_spin_row_set_value(m_builder.get("drawingXOffset"), static_cast(drawing.getXOffset())); + adw_spin_row_set_value(m_builder.get("drawingYOffset"), static_cast(drawing.getYOffset())); + adw_spin_row_set_value(m_builder.get("itemSpacingRow"), static_cast(drawing.getItemSpacing())); + adw_spin_row_set_value(m_builder.get("itemRoundnessRow"), static_cast(drawing.getItemRoundness())); + adw_combo_row_set_selected(m_builder.get("channelsRow"), static_cast(cava.getChannels())); + adw_spin_row_set_value(m_builder.get("framerateRow"), static_cast(cava.getFramerate())); + adw_spin_row_set_value(m_builder.get("numberOfBarsRow"), static_cast(cava.getNumberOfBars())); + adw_switch_row_set_active(m_builder.get("reverseBarOrderRow"), cava.getReverseBarOrder()); + adw_switch_row_set_active(m_builder.get("automaticSensitivityRow"), cava.getUseAutomaticSensitivity()); + adw_spin_row_set_value(m_builder.get("sensitivityRow"), static_cast(cava.getSensitivity())); + adw_switch_row_set_active(m_builder.get("monstercatRow"), cava.getUseMonstercatSmoothing()); + adw_spin_row_set_value(m_builder.get("nosieReductionRow"), static_cast(cava.getNoiseReductionFactor())); + loadColorProfiles(); + loadBackgroundImages(); + //Signals + m_closed += [&](const EventArgs&){ onClosed(); }; + g_signal_connect(m_builder.get("themeRow"), "notify::selected-item", G_CALLBACK(+[](GObject*, GParamSpec* pspec, gpointer data){ reinterpret_cast(data)->onThemeChanged(); }), this); + g_signal_connect(m_builder.get("addColorProfileButton"), "clicked", G_CALLBACK(+[](GtkButton*, gpointer data){ reinterpret_cast(data)->addColorProfile(); }), this); + g_signal_connect(m_builder.get("addBackgroundImageButton"), "clicked", G_CALLBACK(+[](GtkButton*, gpointer data){ reinterpret_cast(data)->addBackgroundImage(); }), this); + } + + void PreferencesDialog::onClosed() + { + DrawingArea drawing{ m_controller->getDrawingArea() }; + CavaOptions cava{ m_controller->getCavaOptions() }; + drawing.setMode(static_cast(adw_combo_row_get_selected(m_builder.get("drawingModeRow")))); + drawing.setShape(static_cast(adw_combo_row_get_selected(m_builder.get("drawingShapeRow")))); + drawing.setDirection(static_cast(adw_combo_row_get_selected(m_builder.get("drawingDirectionRow")))); + drawing.setFillShape(adw_switch_row_get_active(m_builder.get("fillShapeRow"))); + drawing.setMirrorMode(static_cast(adw_combo_row_get_selected(m_builder.get("mirrowModeRow")))); + drawing.setMargin(adw_spin_row_get_value(m_builder.get("drawingMarginRow"))); + drawing.setXOffset(adw_spin_row_get_value(m_builder.get("drawingXOffset"))); + drawing.setYOffset(adw_spin_row_get_value(m_builder.get("drawingYOffset"))); + drawing.setItemSpacing(adw_spin_row_get_value(m_builder.get("itemSpacingRow"))); + drawing.setItemRoundness(adw_spin_row_get_value(m_builder.get("itemRoundnessRow"))); + cava.setChannels(static_cast(adw_combo_row_get_selected(m_builder.get("channelsRow")))); + cava.setFramerate(adw_spin_row_get_value(m_builder.get("framerateRow"))); + cava.setNumberOfBars(adw_spin_row_get_value(m_builder.get("numberOfBarsRow"))); + cava.setReverseBarOrder(adw_switch_row_get_active(m_builder.get("reverseBarOrderRow"))); + cava.setUseAutomaticSensitivity(adw_switch_row_get_active(m_builder.get("automaticSensitivityRow"))); + cava.setSensitivity(adw_spin_row_get_value(m_builder.get("sensitivityRow"))); + cava.setUseMonstercatSmoothing(adw_switch_row_get_active(m_builder.get("monstercatRow"))); + cava.setNoiseReductionFactor(adw_spin_row_get_value(m_builder.get("nosieReductionRow"))); + m_controller->setDrawingArea(drawing); + m_controller->setCavaOptions(cava); + m_controller->setActiveColorProfileIndex(adw_combo_row_get_selected(m_builder.get("activeColorProfileRow"))); + m_controller->setActiveBackgroundImageIndex(adw_combo_row_get_selected(m_builder.get("activeBackgroundImageRow"))); + m_controller->saveConfiguration(); + } + + void PreferencesDialog::onThemeChanged() + { + m_controller->setTheme(static_cast(adw_combo_row_get_selected(m_builder.get("themeRow")))); + switch (m_controller->getTheme()) + { + case Theme::Light: + adw_style_manager_set_color_scheme(adw_style_manager_get_default(), ADW_COLOR_SCHEME_FORCE_LIGHT); + break; + case Theme::Dark: + adw_style_manager_set_color_scheme(adw_style_manager_get_default(), ADW_COLOR_SCHEME_FORCE_DARK); + break; + default: + adw_style_manager_set_color_scheme(adw_style_manager_get_default(), ADW_COLOR_SCHEME_DEFAULT); + break; + } + } + + void PreferencesDialog::addColorProfile() + { + + } + + void PreferencesDialog::editColorProfile(int index) + { + + } + + void PreferencesDialog::deleteColorProfile(int index) + { + AdwAlertDialog* dialog{ ADW_ALERT_DIALOG(adw_alert_dialog_new(_("Delete Profile?"), _("Are you sure you want to delete this profile?"))) }; + adw_alert_dialog_add_responses(dialog, "yes", _("Yes"), "no", _("No"), nullptr); + adw_alert_dialog_set_response_appearance(dialog, "yes", ADW_RESPONSE_DESTRUCTIVE); + adw_alert_dialog_set_default_response(dialog, "no"); + adw_alert_dialog_set_close_response(dialog, "no"); + g_signal_connect_data(dialog, "response", GCallback(+[](AdwAlertDialog*, const char* response, gpointer data) + { + std::pair* pair{ reinterpret_cast*>(data) }; + if(std::string(response) == "yes") + { + std::vector profiles{ pair->first->m_controller->getColorProfiles() }; + profiles.erase(profiles.begin() + pair->second); + pair->first->m_controller->setColorProfiles(profiles); + pair->first->loadColorProfiles(); + } + }), new std::pair(this, index), GClosureNotify(+[](gpointer data, GClosure*) + { + delete reinterpret_cast*>(data); + }), G_CONNECT_DEFAULT); + adw_dialog_present(ADW_DIALOG(dialog), GTK_WIDGET(m_dialog)); + } + + void PreferencesDialog::addBackgroundImage() + { + GtkFileDialog* fileDialog{ gtk_file_dialog_new() }; + gtk_file_dialog_set_title(fileDialog, _("Select Background Image")); + gtk_file_dialog_open(fileDialog, m_parent, nullptr, GAsyncReadyCallback(+[](GObject* self, GAsyncResult* res, gpointer data) + { + GFile* file{ gtk_file_dialog_open_finish(GTK_FILE_DIALOG(self), res, nullptr) }; + if(file) + { + PreferencesDialog* dialog{ reinterpret_cast(data) }; + DialogPtr ptr{ BackgroundImage(g_file_get_path(file)), dialog->m_parent }; + ptr->closed() += [=](const EventArgs&) + { + std::vector images{ dialog->m_controller->getBackgroundImages() }; + images.push_back(ptr->getImage()); + dialog->m_controller->setBackgroundImages(images); + dialog->loadBackgroundImages(); + }; + ptr->present(); + } + }), this); + } + + void PreferencesDialog::editBackgroundImage(int index) + { + DialogPtr dialog{ m_controller->getBackgroundImages()[index], m_parent }; + dialog->closed() += [=, this](const EventArgs&) + { + std::vector images{ m_controller->getBackgroundImages() }; + images[index] = dialog->getImage(); + m_controller->setBackgroundImages(images); + loadBackgroundImages(); + }; + dialog->present(); + } + + void PreferencesDialog::deleteBackgroundImage(int index) + { + AdwAlertDialog* dialog{ ADW_ALERT_DIALOG(adw_alert_dialog_new(_("Delete Image?"), _("Are you sure you want to delete this image?"))) }; + adw_alert_dialog_add_responses(dialog, "yes", _("Yes"), "no", _("No"), nullptr); + adw_alert_dialog_set_response_appearance(dialog, "yes", ADW_RESPONSE_DESTRUCTIVE); + adw_alert_dialog_set_default_response(dialog, "no"); + adw_alert_dialog_set_close_response(dialog, "no"); + g_signal_connect_data(dialog, "response", GCallback(+[](AdwAlertDialog*, const char* response, gpointer data) + { + std::pair* pair{ reinterpret_cast*>(data) }; + if(std::string(response) == "yes") + { + std::vector images{ pair->first->m_controller->getBackgroundImages() }; + images.erase(images.begin() + pair->second); + pair->first->m_controller->setBackgroundImages(images); + pair->first->loadBackgroundImages(); + } + }), new std::pair(this, index), GClosureNotify(+[](gpointer data, GClosure*) + { + delete reinterpret_cast*>(data); + }), G_CONNECT_DEFAULT); + adw_dialog_present(ADW_DIALOG(dialog), GTK_WIDGET(m_dialog)); + } + + void PreferencesDialog::loadColorProfiles() + { + //Clear old rows + for(AdwActionRow* row : m_colorProfileRows) + { + adw_preferences_group_remove(ADW_PREFERENCES_GROUP(m_builder.get("colorProfilesRow")), GTK_WIDGET(row)); + } + //Load active profiles + GtkHelpers::setComboRowModel(m_builder.get("activeColorProfileRow"), m_controller->getColorProfileNames(), m_controller->getActiveColorProfileIndex()); + //Load rows + int i{ 0 }; + for(const ColorProfile& profile : m_controller->getColorProfiles()) + { + GtkButton* btnEdit{ GTK_BUTTON(gtk_button_new()) }; + gtk_button_set_icon_name(btnEdit, "document-edit-symbolic"); + gtk_widget_set_valign(GTK_WIDGET(btnEdit), GTK_ALIGN_CENTER); + gtk_widget_add_css_class(GTK_WIDGET(btnEdit), "flat"); + g_signal_connect_data(btnEdit, "clicked", GCallback(+[](GtkButton*, gpointer data) + { + std::pair* pair{ reinterpret_cast*>(data) }; + pair->first->editColorProfile(pair->second); + }), new std::pair(this, i), GClosureNotify(+[](gpointer data, GClosure*) + { + delete reinterpret_cast*>(data); + }), G_CONNECT_DEFAULT); + AdwActionRow* row{ ADW_ACTION_ROW(adw_action_row_new()) }; + adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), profile.getName().c_str()); + adw_action_row_add_suffix(row, GTK_WIDGET(btnEdit)); + adw_action_row_set_activatable_widget(row, GTK_WIDGET(btnEdit)); + if(profile.getName() != _("Default")) + { + GtkButton* btnDelete{ GTK_BUTTON(gtk_button_new()) }; + gtk_button_set_icon_name(btnDelete, "user-trash-symbolic"); + gtk_widget_set_valign(GTK_WIDGET(btnDelete), GTK_ALIGN_CENTER); + gtk_widget_add_css_class(GTK_WIDGET(btnDelete), "flat"); + adw_action_row_add_suffix(row, GTK_WIDGET(btnDelete)); + g_signal_connect_data(btnDelete, "clicked", GCallback(+[](GtkButton*, gpointer data) + { + std::pair* pair{ reinterpret_cast*>(data) }; + pair->first->deleteColorProfile(pair->second); + }), new std::pair(this, i), GClosureNotify(+[](gpointer data, GClosure*) + { + delete reinterpret_cast*>(data); + }), G_CONNECT_DEFAULT); + } + adw_preferences_group_add(m_builder.get("colorProfilesGroup"), GTK_WIDGET(row)); + m_colorProfileRows.push_back(row); + i++; + } + } + + void PreferencesDialog::loadBackgroundImages() + { + //Clear old rows + for(AdwActionRow* row : m_backgroundImageRows) + { + adw_preferences_group_remove(ADW_PREFERENCES_GROUP(m_builder.get("backgroundImagesGroup")), GTK_WIDGET(row)); + } + m_backgroundImageRows.clear(); + //Load active images + GtkHelpers::setComboRowModel(m_builder.get("activeBackgroundImageRow"), m_controller->getBackgroundImageNames(), m_controller->getActiveBackgroundImageIndex()); + //Load rows + int i{ 0 }; + for(const BackgroundImage& image : m_controller->getBackgroundImages()) + { + GtkButton* btnEdit{ GTK_BUTTON(gtk_button_new()) }; + gtk_button_set_icon_name(btnEdit, "document-edit-symbolic"); + gtk_widget_set_valign(GTK_WIDGET(btnEdit), GTK_ALIGN_CENTER); + gtk_widget_add_css_class(GTK_WIDGET(btnEdit), "flat"); + g_signal_connect_data(btnEdit, "clicked", GCallback(+[](GtkButton*, gpointer data) + { + std::pair* pair{ reinterpret_cast*>(data) }; + pair->first->editBackgroundImage(pair->second); + }), new std::pair(this, i), GClosureNotify(+[](gpointer data, GClosure*) + { + delete reinterpret_cast*>(data); + }), G_CONNECT_DEFAULT); + GtkButton* btnDelete{ GTK_BUTTON(gtk_button_new()) }; + gtk_button_set_icon_name(btnDelete, "user-trash-symbolic"); + gtk_widget_set_valign(GTK_WIDGET(btnDelete), GTK_ALIGN_CENTER); + gtk_widget_add_css_class(GTK_WIDGET(btnDelete), "flat"); + g_signal_connect_data(btnDelete, "clicked", GCallback(+[](GtkButton*, gpointer data) + { + std::pair* pair{ reinterpret_cast*>(data) }; + pair->first->deleteBackgroundImage(pair->second); + }), new std::pair(this, i), GClosureNotify(+[](gpointer data, GClosure*) + { + delete reinterpret_cast*>(data); + }), G_CONNECT_DEFAULT); + AdwActionRow* row{ ADW_ACTION_ROW(adw_action_row_new()) }; + adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), image.getPath().filename().string().c_str()); + adw_action_row_set_subtitle(row, image.getPath().parent_path().string().c_str()); + adw_action_row_add_suffix(row, GTK_WIDGET(btnEdit)); + adw_action_row_set_activatable_widget(row, GTK_WIDGET(btnEdit)); + adw_action_row_add_suffix(row, GTK_WIDGET(btnDelete)); + adw_preferences_group_add(m_builder.get("backgroundImagesGroup"), GTK_WIDGET(row)); + m_backgroundImageRows.push_back(row); + i++; + } + } +} diff --git a/org.nickvision.cavalier.qt/CMakeLists.txt b/org.nickvision.cavalier.qt/CMakeLists.txt new file mode 100644 index 0000000..bedf6da --- /dev/null +++ b/org.nickvision.cavalier.qt/CMakeLists.txt @@ -0,0 +1,76 @@ +set(OUTPUT_NAME "${PROJECT_NAME}.qt") +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) +set(GNOME_NOTIFICATIONS false) +set(STARTUP_NOTIFY false) +add_definitions(-DQT_NO_KEYWORDS) + +find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Svg) +qt_standard_project_setup() + +qt_add_executable(${OUTPUT_NAME} + "include/controls/aboutdialog.h" + "include/controls/infobar.h" + "include/helpers/qthelpers.h" + "include/views/mainwindow.h" + "include/views/settingsdialog.h" + "include/application.h" + "src/controls/aboutdialog.ui" + "src/controls/aboutdialog.cpp" + "src/controls/infobar.ui" + "src/controls/infobar.cpp" + "src/helpers/qthelpers.cpp" + "src/views/mainwindow.ui" + "src/views/mainwindow.cpp" + "src/views/settingsdialog.ui" + "src/views/settingsdialog.cpp" + "src/application.cpp" + "src/main.cpp" + "${OUTPUT_NAME}.qrc" + "../resources/windows/${PROJECT_NAME}.rc") +target_include_directories(${OUTPUT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include") +target_link_libraries(${OUTPUT_NAME} PRIVATE libcavalier Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Svg) +if(WIN32) + set_target_properties(${OUTPUT_NAME} PROPERTIES WIN32_EXECUTABLE ON) +endif() + +add_custom_target(qt_commands ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/__qt.h") +add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__qt.h" "${CMAKE_CURRENT_BINARY_DIR}/qt.h" COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/qt.h") + +if(WIN32) + add_custom_command(TARGET qt_commands POST_BUILD COMMAND Qt6::windeployqt ARGS $ --no-quick-import --no-translations --no-compiler-runtime) + add_custom_command(TARGET qt_commands POST_BUILD COMMAND "mt.exe" -manifest "${CMAKE_SOURCE_DIR}/resources/windows/${PROJECT_NAME}.manifest" -inputresource:\"$\"\;\#1 -outputresource:\"$\"\;\#1) +endif() + +if(HAS_GETTEXT) + foreach(LINGUA IN ITEMS ${LINGUAS}) + if(MSVC) + add_custom_command(TARGET qt_commands PRE_BUILD COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/$/${LINGUA}/LC_MESSAGES") + add_custom_command(TARGET qt_commands PRE_BUILD COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/resources/po/${LINGUA}.po" --output-file="${CMAKE_CURRENT_BINARY_DIR}/$/${LINGUA}/LC_MESSAGES/${SHORT_NAME}.mo") + else() + add_custom_command(TARGET qt_commands PRE_BUILD COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/${LINGUA}/LC_MESSAGES") + add_custom_command(TARGET qt_commands PRE_BUILD COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/resources/po/${LINGUA}.po" --output-file="${CMAKE_CURRENT_BINARY_DIR}/${LINGUA}/LC_MESSAGES/${SHORT_NAME}.mo") + endif() + endforeach() +endif() + +if(LINUX) + configure_file("${CMAKE_SOURCE_DIR}/resources/linux/${PROJECT_NAME}.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.desktop" @ONLY) + configure_file("${CMAKE_SOURCE_DIR}/resources/linux/${PROJECT_NAME}.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}" @ONLY) + configure_file("${CMAKE_SOURCE_DIR}/resources/linux/${PROJECT_NAME}.metainfo.xml.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.metainfo.xml" @ONLY) + install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/" DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_NAME}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo") + install(FILES "${CMAKE_SOURCE_DIR}/resources/${PROJECT_NAME}.svg" "${CMAKE_SOURCE_DIR}/resources/${PROJECT_NAME}-devel.svg" DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps") + install(FILES "${CMAKE_SOURCE_DIR}/resources/${PROJECT_NAME}-symbolic.svg" DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/symbolic/apps") + + find_program(UPDATE_DESKTOP_DATABASE_EXECUTABLE update-desktop-database) + if(UPDATE_DESKTOP_DATABASE_EXECUTABLE) + install(CODE "execute_process(COMMAND ${UPDATE_DESKTOP_DATABASE_EXECUTABLE})") + else() + message(WARNING "update-desktop-database not found, desktop database will not be updated") + endif() +endif() diff --git a/org.nickvision.cavalier.qt/include/application.h b/org.nickvision.cavalier.qt/include/application.h new file mode 100644 index 0000000..7f7878f --- /dev/null +++ b/org.nickvision.cavalier.qt/include/application.h @@ -0,0 +1,39 @@ +#ifndef APPLICATION_H +#define APPLICATION_H + +#include +#include +#include "controllers/mainwindowcontroller.h" +#include "views/mainwindow.h" + +namespace Nickvision::Cavalier::Qt +{ + /** + * @brief The main Qt application point. + */ + class Application : public QApplication + { + Q_OBJECT + + public: + /** + * @brief Constructs an Application. + * @param argc The number of arguments passed to the application + * @param argv The array of argument strings passed to the application + */ + Application(int argc, char* argv[]); + /** + * @brief Runs the application. + * @brief This runs the qt application loop. + * @return The return code from the qt application + */ + int exec(); + + private: + std::shared_ptr m_controller; + std::shared_ptr m_mainWindow; + }; +} + + +#endif //APPLICATION_H diff --git a/org.nickvision.cavalier.qt/include/controls/aboutdialog.h b/org.nickvision.cavalier.qt/include/controls/aboutdialog.h new file mode 100644 index 0000000..2a7c1c4 --- /dev/null +++ b/org.nickvision.cavalier.qt/include/controls/aboutdialog.h @@ -0,0 +1,44 @@ +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include +#include +#include + +namespace Ui { class AboutDialog; } + +namespace Nickvision::Cavalier::Qt::Controls +{ + /** + * @brief A dialog for displaying information about the application. + */ + class AboutDialog : public QDialog + { + Q_OBJECT + + public: + /** + * @brief Constructs an AboutDialog. + * @param appInfo The AppInfo object for the application + * @param debugInformation The debug information for the application + * @param parent The parent widget + */ + AboutDialog(const App::AppInfo& appInfo, const std::string& debugInformation, QWidget* parent = nullptr); + /** + * @brief Destructs an AboutDialog. + */ + ~AboutDialog(); + + private Q_SLOTS: + /** + * @brief Copies the debug information to the clipboard. + */ + void copyDebugInformation(); + + private: + Ui::AboutDialog* m_ui; + QString m_debugInformation; + }; +} + +#endif //ABOUTDIALOG_H diff --git a/org.nickvision.cavalier.qt/include/controls/infobar.h b/org.nickvision.cavalier.qt/include/controls/infobar.h new file mode 100644 index 0000000..e041b21 --- /dev/null +++ b/org.nickvision.cavalier.qt/include/controls/infobar.h @@ -0,0 +1,50 @@ +#ifndef INFOBAR_H +#define INFOBAR_H + +#include +#include +#include +#include + +namespace Ui { class InfoBar; } + +namespace Nickvision::Cavalier::Qt::Controls +{ + /** + * @brief A widget for displaying a notification within a window. + */ + class InfoBar : public QDockWidget + { + Q_OBJECT + + public: + /** + * @brief Constructs an InfoBar. + * @param parent The parent widget + */ + InfoBar(QWidget* parent = nullptr); + /** + * @brief Destructs an InfoBar. + */ + ~InfoBar(); + /** + * @brief Shows the InfoBar with the provided notification. + * @param args NotificationSentEventArgs + * @param actionButtonText Optional text for the action button + * @param callback An optional function to call when the action button is clicked + */ + void show(const Notifications::NotificationSentEventArgs& args, const QString& actionButtonText = {}, const std::function& callback = {}); + + private Q_SLOTS: + /** + * @brief Handles when the action button is clicked. + */ + void action(); + + private: + Ui::InfoBar* m_ui; + std::function m_callback; + }; +} + +#endif //INFOBAR_H diff --git a/org.nickvision.cavalier.qt/include/helpers/qthelpers.h b/org.nickvision.cavalier.qt/include/helpers/qthelpers.h new file mode 100644 index 0000000..bc82d87 --- /dev/null +++ b/org.nickvision.cavalier.qt/include/helpers/qthelpers.h @@ -0,0 +1,25 @@ +#ifndef QTHELPERS_H +#define QTHELPERS_H + +#include +#include +#include +#include + +namespace Nickvision::Cavalier::Qt::Helpers::QtHelpers +{ + /** + * @brief Runs the function on the main UI thread. + * @param function The function to run + */ + void dispatchToMainThread(const std::function& function); + /** + * @brief Sets the items of a QComboBox from a vector of strings. + * @param comboBox The QComboBox to set the items of + * @param items The items to set + * @param selected An option string that should be selected + */ + void setComboBoxItems(QComboBox* comboBox, const std::vector& items, const std::string& selected = ""); +} + +#endif //QTHELPERS_H diff --git a/org.nickvision.cavalier.qt/include/views/mainwindow.h b/org.nickvision.cavalier.qt/include/views/mainwindow.h new file mode 100644 index 0000000..fa626da --- /dev/null +++ b/org.nickvision.cavalier.qt/include/views/mainwindow.h @@ -0,0 +1,103 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include +#include "controllers/mainwindowcontroller.h" +#include "controls/infobar.h" + +namespace Ui { class MainWindow; } + +namespace Nickvision::Cavalier::Qt::Views +{ + /** + * @brief The main window for the application. + */ + class MainWindow : public QMainWindow + { + Q_OBJECT + + public: + /** + * @brief Constructs a MainWindow. + * @param controller The MainWindowController + * @param parent The parent widget + */ + MainWindow(const std::shared_ptr& controller, QWidget* parent = nullptr); + /** + * @brief Destructs a MainWindow. + */ + ~MainWindow(); + /** + * @brief Shows the MainWindow. + */ + void show(); + + protected: + /** + * @brief Handles when the window is closed. + * @param event QCloseEvent + */ + void closeEvent(QCloseEvent* event) override; + /** + * @brief Handles when the window is resized. + * @param event QResizeEvent + */ + void resizeEvent(QResizeEvent* event) override; + + private Q_SLOTS: + /** + * @brief Opens the application's settings dialog. + */ + void settings(); + /** + * @brief Checks for application updates. + */ + void checkForUpdates(); +#ifdef _WIN32 + /** + * @brief Downloads and installs the latest application update in the background. + */ + void windowsUpdate(); +#endif + /** + * @brief Opens the application's GitHub repo in the browser. + */ + void gitHubRepo(); + /** + * @brief Opens the application's issue tracker in the browser. + */ + void reportABug(); + /** + * @brief Opens the application's discussions page in the browser. + */ + void discussions(); + /** + * @brief Displays the about dialog. + */ + void about(); + + private: + /** + * @brief Handles when a notification is sent. + * @param args The NotificationSentEventArgs + */ + void onNotificationSent(const Notifications::NotificationSentEventArgs& args); + /** + * @brief Handles when cava stops outputting data. + */ + void onCavaOutputStopped(); + /** + * @brief Handles when an image is rendered + * @param args Nickvision::Events::ParamEventArgs + */ + void onImageRendered(const Events::ParamEventArgs& args); + Ui::MainWindow* m_ui; + Controls::InfoBar* m_infoBar; + std::shared_ptr m_controller; + }; +} + +#endif //MAINWINDOW_H diff --git a/org.nickvision.cavalier.qt/include/views/settingsdialog.h b/org.nickvision.cavalier.qt/include/views/settingsdialog.h new file mode 100644 index 0000000..6667421 --- /dev/null +++ b/org.nickvision.cavalier.qt/include/views/settingsdialog.h @@ -0,0 +1,53 @@ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include +#include +#include +#include "controllers/preferencesviewcontroller.h" + +namespace Ui { class SettingsDialog; } + +namespace Nickvision::Cavalier::Qt::Views +{ + /** + * @brief The settings dialog for the application. + */ + class SettingsDialog : public QDialog + { + public: + /** + * @brief Constructs a SettingsDialog. + * @param controller The PreferencesViewController + * @param parent The parent widget + */ + SettingsDialog(const std::shared_ptr& controller, QWidget* parent = nullptr); + /** + * @brief Destructs a SettingsDialog. + */ + ~SettingsDialog(); + + protected: + /** + * @brief Handles when the dialog is closed. + * @param event QCloseEvent + */ + void closeEvent(QCloseEvent* event) override; + + private Q_SLOTS: + /** + * @brief Handles when the navigation row changes. + */ + void onNavigationChanged(); + /** + * @brief Handles when the theme combobox changes. + */ + void onThemeChanged(); + + private: + Ui::SettingsDialog* m_ui; + std::shared_ptr m_controller; + }; +} + +#endif //SETTINGSDIALOG_H diff --git a/org.nickvision.cavalier.qt/org.nickvision.cavalier.qt.qrc b/org.nickvision.cavalier.qt/org.nickvision.cavalier.qt.qrc new file mode 100644 index 0000000..dfee710 --- /dev/null +++ b/org.nickvision.cavalier.qt/org.nickvision.cavalier.qt.qrc @@ -0,0 +1,7 @@ + + + ../resources/org.nickvision.cavalier.ico + ../resources/org.nickvision.cavalier.svg + ../resources/org.nickvision.cavalier-devel.svg + + diff --git a/org.nickvision.cavalier.qt/src/application.cpp b/org.nickvision.cavalier.qt/src/application.cpp new file mode 100644 index 0000000..6871199 --- /dev/null +++ b/org.nickvision.cavalier.qt/src/application.cpp @@ -0,0 +1,39 @@ +#include "application.h" +#include + +using namespace Nickvision::Cavalier::Shared::Controllers; +using namespace Nickvision::Cavalier::Shared::Models; + +namespace Nickvision::Cavalier::Qt +{ + Application::Application(int argc, char* argv[]) + : QApplication{ argc, argv }, + m_controller{ std::make_shared(std::vector(argv, argv + argc)) }, + m_mainWindow{ nullptr } + { + //Set Fusion style on Windows 10 for dark mode support + if (QSysInfo::productType() == "windows" && QSysInfo::productVersion() == "10") + { + QApplication::setStyle("Fusion"); + } + } + + int Application::exec() + { + switch (m_controller->getTheme()) + { + case Theme::Light: + QApplication::styleHints()->setColorScheme(::Qt::ColorScheme::Light); + break; + case Theme::Dark: + QApplication::styleHints()->setColorScheme(::Qt::ColorScheme::Dark); + break; + default: + QApplication::styleHints()->setColorScheme(::Qt::ColorScheme::Unknown); + break; + } + m_mainWindow = std::make_shared(m_controller); + m_mainWindow->show(); + return QApplication::exec(); + } +} diff --git a/org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp b/org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp new file mode 100644 index 0000000..7da6a9f --- /dev/null +++ b/org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp @@ -0,0 +1,65 @@ +#include "controls/aboutdialog.h" +#include "ui_aboutdialog.h" +#include +#include +#include +#include +#include +#include + +using namespace Nickvision::App; +using namespace Nickvision::Helpers; +using namespace Nickvision::Update; + +namespace Nickvision::Cavalier::Qt::Controls +{ + static std::vector keys(const std::unordered_map& m) + { + std::vector k; + for(const std::pair& pair : m) + { + k.push_back(pair.first); + } + return k; + } + + AboutDialog::AboutDialog(const AppInfo& appInfo, const std::string& debugInformation, QWidget* parent) + : QDialog{ parent }, + m_ui{ new Ui::AboutDialog() }, + m_debugInformation{ QString::fromStdString(debugInformation) } + { + m_ui->setupUi(this); + setWindowTitle(_("About Cavalier")); + //Load + m_ui->tabWidget->setTabText(0, _("About")); + m_ui->tabWidget->setTabText(1, _("Changelog")); + m_ui->tabWidget->setTabText(2, _("Credits")); + m_ui->tabWidget->setTabText(3, _("Debugging")); + m_ui->tabWidget->setCurrentIndex(0); + m_ui->lblAppIcon->setPixmap({ appInfo.getVersion().getVersionType() == VersionType::Stable ? ":/resources/org.nickvision.cavalier.svg" : ":/resources/org.nickvision.cavalier-devel.svg" }); + m_ui->lblAppName->setText(QString::fromStdString(appInfo.getShortName())); + m_ui->lblAppDescription->setText(QString::fromStdString(appInfo.getDescription())); + m_ui->lblAppVersion->setText(QString::fromStdString(appInfo.getVersion().str())); + m_ui->lblChangelog->setText(QString::fromStdString(appInfo.getChangelog())); + m_ui->groupDevelopers->setTitle(_("Developers")); + m_ui->lblDevelopers->setText(QString::fromStdString(StringHelpers::join(keys(appInfo.getDevelopers()), "\n"))); + m_ui->groupDesigners->setTitle(_("Designers")); + m_ui->lblDesigners->setText(QString::fromStdString(StringHelpers::join(keys(appInfo.getDesigners()), "\n"))); + m_ui->groupArtists->setTitle(_("Artists")); + m_ui->lblArtists->setText(QString::fromStdString(StringHelpers::join(keys(appInfo.getArtists()), "\n"))); + m_ui->btnCopyDebugInformation->setText(QString::fromStdString(_("Copy Debug Information"))); + m_ui->lblDebug->setText(m_debugInformation); + //Signals + connect(m_ui->btnCopyDebugInformation, &QPushButton::clicked, this, &AboutDialog::copyDebugInformation); + } + + AboutDialog::~AboutDialog() + { + delete m_ui; + } + + void AboutDialog::copyDebugInformation() + { + QApplication::clipboard()->setText(m_debugInformation); + } +} diff --git a/org.nickvision.cavalier.qt/src/controls/aboutdialog.ui b/org.nickvision.cavalier.qt/src/controls/aboutdialog.ui new file mode 100644 index 0000000..836afca --- /dev/null +++ b/org.nickvision.cavalier.qt/src/controls/aboutdialog.ui @@ -0,0 +1,215 @@ + + + AboutDialog + + + + 0 + 0 + 420 + 410 + + + + Dialog + + + true + + + + + + 1 + + + + + + + + 12 + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + Qt::AlignmentFlag::AlignCenter + + + + + + + + true + + + + Qt::AlignmentFlag::AlignCenter + + + + + + + Qt::AlignmentFlag::AlignCenter + + + + + + + Qt::AlignmentFlag::AlignCenter + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + + true + + + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse + + + + + + + + + + + + + + + + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + + + + + + + + + false + + + + + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + + + + + + + + + + + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + + + + + + + + + + + + + + + + false + + + + + + + true + + + + + 0 + 0 + 378 + 308 + + + + + + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + + true + + + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse + + + + + + + + + + + + + + + + diff --git a/org.nickvision.cavalier.qt/src/controls/infobar.cpp b/org.nickvision.cavalier.qt/src/controls/infobar.cpp new file mode 100644 index 0000000..bb1a443 --- /dev/null +++ b/org.nickvision.cavalier.qt/src/controls/infobar.cpp @@ -0,0 +1,62 @@ +#include "controls/infobar.h" +#include "ui_infobar.h" +#include + +using namespace Nickvision::Notifications; + +namespace Nickvision::Cavalier::Qt::Controls +{ + InfoBar::InfoBar(QWidget* parent) + : QDockWidget{ parent }, + m_ui{ new Ui::InfoBar() } + { + m_ui->setupUi(this); + setWindowTitle(_("Notification")); + connect(m_ui->btnAction, &QPushButton::clicked, this, &InfoBar::action); + hide(); + } + + InfoBar::~InfoBar() + { + delete m_ui; + } + + void InfoBar::action() + { + hide(); + m_callback(); + } + + void InfoBar::show(const NotificationSentEventArgs& args, const QString& actionButtonText, const std::function& callback) + { + static QPixmap info{ QIcon::fromTheme(QIcon::ThemeIcon::DialogInformation).pixmap(16, 16) }; + static QPixmap warning{ QIcon::fromTheme(QIcon::ThemeIcon::DialogWarning).pixmap(16, 16) }; + static QPixmap error{ QIcon::fromTheme(QIcon::ThemeIcon::DialogError).pixmap(16, 16) }; + QDockWidget::show(); + if(!actionButtonText.isEmpty() && callback) + { + m_ui->btnAction->setText(actionButtonText); + m_ui->btnAction->setVisible(true); + m_callback = callback; + } + else + { + m_ui->btnAction->setVisible(false); + m_callback = {}; + } + m_ui->lblMessage->setText(QString::fromStdString(args.getMessage())); + switch(args.getSeverity()) + { + case NotificationSeverity::Informational: + case NotificationSeverity::Success: + m_ui->lblIcon->setPixmap(info); + break; + case NotificationSeverity::Warning: + m_ui->lblIcon->setPixmap(warning); + break; + case NotificationSeverity::Error: + m_ui->lblIcon->setPixmap(error); + break; + } + } +} diff --git a/org.nickvision.cavalier.qt/src/controls/infobar.ui b/org.nickvision.cavalier.qt/src/controls/infobar.ui new file mode 100644 index 0000000..c976cb1 --- /dev/null +++ b/org.nickvision.cavalier.qt/src/controls/infobar.ui @@ -0,0 +1,52 @@ + + + InfoBar + + + + 0 + 0 + + + + QDockWidget::DockWidgetFeature::DockWidgetClosable + + + Qt::DockWidgetArea::BottomDockWidgetArea|Qt::DockWidgetArea::TopDockWidgetArea + + + + + + + + + + + true + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + diff --git a/org.nickvision.cavalier.qt/src/helpers/qthelpers.cpp b/org.nickvision.cavalier.qt/src/helpers/qthelpers.cpp new file mode 100644 index 0000000..41fe501 --- /dev/null +++ b/org.nickvision.cavalier.qt/src/helpers/qthelpers.cpp @@ -0,0 +1,36 @@ +#include "helpers/qthelpers.h" +#include +#include +#include + +namespace Nickvision::Cavalier::Qt::Helpers +{ + void QtHelpers::dispatchToMainThread(const std::function& function) + { + QTimer* timer{ new QTimer() }; + timer->moveToThread(QApplication::instance()->thread()); + timer->setSingleShot(true); + QObject::connect(timer, &QTimer::timeout, [=]() + { + function(); + timer->deleteLater(); + }); + QMetaObject::invokeMethod(timer, "start", ::Qt::ConnectionType::AutoConnection, Q_ARG(int, 0)); + } + + void QtHelpers::setComboBoxItems(QComboBox* comboBox, const std::vector& items, const std::string& selected) + { + size_t selectedIndex{ 0 }; + comboBox->clear(); + for(size_t i = 0; i < items.size(); i++) + { + const std::string& item{ items[i] }; + comboBox->addItem(QString::fromStdString(item)); + if(item == selected) + { + selectedIndex = i; + } + } + comboBox->setCurrentIndex(selectedIndex); + } +} diff --git a/org.nickvision.cavalier.qt/src/main.cpp b/org.nickvision.cavalier.qt/src/main.cpp new file mode 100644 index 0000000..7013e4e --- /dev/null +++ b/org.nickvision.cavalier.qt/src/main.cpp @@ -0,0 +1,9 @@ +#include "application.h" + +using namespace Nickvision::Cavalier::Qt; + +int main(int argc, char *argv[]) +{ + Application app{ argc, argv }; + return app.exec(); +} \ No newline at end of file diff --git a/org.nickvision.cavalier.qt/src/views/mainwindow.cpp b/org.nickvision.cavalier.qt/src/views/mainwindow.cpp new file mode 100644 index 0000000..a5cfa7f --- /dev/null +++ b/org.nickvision.cavalier.qt/src/views/mainwindow.cpp @@ -0,0 +1,177 @@ +#include "views/mainwindow.h" +#include "ui_mainwindow.h" +#include +#include +#include +#include +#include +#include +#include +#include "controls/aboutdialog.h" +#include "helpers/qthelpers.h" +#include "views/settingsdialog.h" + +using namespace Nickvision::App; +using namespace Nickvision::Cavalier::Qt::Controls; +using namespace Nickvision::Cavalier::Qt::Helpers; +using namespace Nickvision::Cavalier::Shared::Controllers; +using namespace Nickvision::Cavalier::Shared::Models; +using namespace Nickvision::Events; +using namespace Nickvision::Helpers; +using namespace Nickvision::Notifications; +using namespace Nickvision::Update; + +namespace Nickvision::Cavalier::Qt::Views +{ + enum MainWindowPages + { + Home = 0, + Render = 1 + }; + + MainWindow::MainWindow(const std::shared_ptr& controller, QWidget* parent) + : QMainWindow{ parent }, + m_ui{ new Ui::MainWindow() }, + m_infoBar{ new InfoBar(this) }, + m_controller{ controller } + { + m_ui->setupUi(this); + setWindowTitle(m_controller->getAppInfo().getVersion().getVersionType() == VersionType::Stable ? _("Cavalier") : _("Cavalier (Preview)")); + addDockWidget(::Qt::BottomDockWidgetArea, m_infoBar); + //MenuBar + m_ui->menuFile->setTitle(_("File")); + m_ui->actionExit->setText(_("Exit")); + m_ui->menuEdit->setTitle(_("Edit")); + m_ui->actionSettings->setText(_("Settings")); + m_ui->menuHelp->setTitle(_("Help")); + m_ui->actionCheckForUpdates->setText(_("Check for Updates")); + m_ui->actionGitHubRepo->setText(_("GitHub Repo")); + m_ui->actionReportABug->setText(_("Report a Bug")); + m_ui->actionDiscussions->setText(_("Discussions")); + m_ui->actionAbout->setText(_("About Cavalier")); + //Home Page + m_ui->lblHomeGreeting->setText(_("Visualize Your Audio")); + m_ui->lblHomeDescription->setText(_("Play some music or watch a video and see your sound come to life")); + //Signals + connect(m_ui->actionExit, &QAction::triggered, this, &MainWindow::close); + connect(m_ui->actionSettings, &QAction::triggered, this, &MainWindow::settings); + connect(m_ui->actionCheckForUpdates, &QAction::triggered, this, &MainWindow::checkForUpdates); + connect(m_ui->actionGitHubRepo, &QAction::triggered, this, &MainWindow::gitHubRepo); + connect(m_ui->actionReportABug, &QAction::triggered, this, &MainWindow::reportABug); + connect(m_ui->actionDiscussions, &QAction::triggered, this, &MainWindow::discussions); + connect(m_ui->actionAbout, &QAction::triggered, this, &MainWindow::about); + m_controller->notificationSent() += [&](const NotificationSentEventArgs& args) { QtHelpers::dispatchToMainThread([this, args]() { onNotificationSent(args); }); }; + m_controller->cavaOutputStopped() += [&](const EventArgs&) { QtHelpers::dispatchToMainThread([this]() { onCavaOutputStopped(); }); }; + m_controller->imageRendered() += [&](const ParamEventArgs& args) { QtHelpers::dispatchToMainThread([this, args]() { onImageRendered(args); }); }; + } + + MainWindow::~MainWindow() + { + delete m_infoBar; + delete m_ui; + } + + void MainWindow::show() + { + QMainWindow::show(); +#ifdef _WIN32 + const StartupInformation& info{ m_controller->startup(reinterpret_cast(winId())) }; +#elif defined(__linux__) + const StartupInformation& info{ m_controller->startup(m_controller->getAppInfo().getId() + ".desktop") }; +#else + const StartupInformation& info{ m_controller->startup() }; +#endif + setGeometry(QWidget::geometry().x(), QWidget::geometry().y(), info.getWindowGeometry().getWidth(), info.getWindowGeometry().getHeight()); + if(info.getWindowGeometry().isMaximized()) + { + showMaximized(); + } + m_ui->viewStack->setCurrentIndex(MainWindowPages::Home); + } + + void MainWindow::closeEvent(QCloseEvent* event) + { + if(!m_controller->canShutdown()) + { + return event->ignore(); + } + m_controller->shutdown({ geometry().width(), geometry().height(), isMaximized() }); + event->accept(); + } + + void MainWindow::resizeEvent(QResizeEvent* event) + { + QMainWindow::resizeEvent(event); + m_controller->setCanvasSize(m_ui->lblImage->width(), m_ui->lblImage->height()); + } + + void MainWindow::settings() + { + SettingsDialog dialog{ m_controller->createPreferencesViewController(), this }; + dialog.exec(); + } + + void MainWindow::checkForUpdates() + { + m_controller->checkForUpdates(); + } + +#ifdef _WIN32 + void MainWindow::windowsUpdate() + { + m_controller->windowsUpdate(); + } +#endif + + void MainWindow::gitHubRepo() + { + QDesktopServices::openUrl(QString::fromStdString(m_controller->getAppInfo().getSourceRepo())); + } + + void MainWindow::reportABug() + { + QDesktopServices::openUrl(QString::fromStdString(m_controller->getAppInfo().getIssueTracker())); + } + + void MainWindow::discussions() + { + QDesktopServices::openUrl(QString::fromStdString(m_controller->getAppInfo().getSupportUrl())); + } + + void MainWindow::about() + { + std::string extraDebug; + extraDebug += "Qt " + std::string(qVersion()) + "\n"; + AboutDialog dialog{ m_controller->getAppInfo(), m_controller->getDebugInformation(extraDebug), this }; + dialog.exec(); + } + + void MainWindow::onNotificationSent(const NotificationSentEventArgs& args) + { + QString actionText; + std::function actionCallback; +#ifdef _WIN32 + if(args.getAction() == "update") + { + actionText = _("Update"); + actionCallback = [this]() { windowsUpdate(); }; + } +#endif + m_infoBar->show(args, actionText, actionCallback); + } + + void MainWindow::onCavaOutputStopped() + { + m_ui->lblImage->clear(); + m_ui->viewStack->setCurrentIndex(MainWindowPages::Home); + } + + void MainWindow::onImageRendered(const ParamEventArgs& args) + { + m_ui->viewStack->setCurrentIndex(MainWindowPages::Render); + QByteArray bytes{ reinterpret_cast(&args.getParam().getBytes()[0]), static_cast(args.getParam().getBytes().size()) }; + QPixmap pixmap{ args.getParam().getWidth(), args.getParam().getHeight() }; + pixmap.loadFromData(bytes, "PNG"); + m_ui->lblImage->setPixmap(pixmap); + } +} diff --git a/org.nickvision.cavalier.qt/src/views/mainwindow.ui b/org.nickvision.cavalier.qt/src/views/mainwindow.ui new file mode 100644 index 0000000..6c4f145 --- /dev/null +++ b/org.nickvision.cavalier.qt/src/views/mainwindow.ui @@ -0,0 +1,241 @@ + + + MainWindow + + + + 0 + 0 + 1069 + 697 + + + + + :/resources/org.nickvision.cavalier.ico:/resources/org.nickvision.cavalier.ico + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 1 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + 12 + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + :/resources/org.nickvision.cavalier.svg + + + false + + + Qt::AlignmentFlag::AlignCenter + + + + + + + + 18 + true + + + + Qt::AlignmentFlag::AlignCenter + + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + true + + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + + Qt::TextInteractionFlag::NoTextInteraction + + + + + + + + + + + + + 0 + 0 + 1069 + 23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ctrl+Q + + + + + + + + Ctrl+, + + + + + + + + + + + + + + + + F1 + + + + + + + + diff --git a/org.nickvision.cavalier.qt/src/views/settingsdialog.cpp b/org.nickvision.cavalier.qt/src/views/settingsdialog.cpp new file mode 100644 index 0000000..94dc9e4 --- /dev/null +++ b/org.nickvision.cavalier.qt/src/views/settingsdialog.cpp @@ -0,0 +1,73 @@ +#include "views/settingsdialog.h" +#include "ui_settingsdialog.h" +#include +#include +#include + +using namespace Nickvision::Cavalier::Shared::Controllers; +using namespace Nickvision::Cavalier::Shared::Models; + +namespace Nickvision::Cavalier::Qt::Views +{ + SettingsDialog::SettingsDialog(const std::shared_ptr& controller, QWidget* parent) + : QDialog{ parent }, + m_ui{ new Ui::SettingsDialog() }, + m_controller{ controller } + { + m_ui->setupUi(this); + setWindowTitle(_("Settings")); + //Localize Strings + m_ui->lblTheme->setText(_("Theme")); + m_ui->cmbTheme->addItem(_("Light")); + m_ui->cmbTheme->addItem(_("Dark")); + m_ui->cmbTheme->addItem(_("System")); + m_ui->lblUpdates->setText(_("Automatically Check for Updates")); + //Add Navigation Items + m_ui->listNavigation->addItem(new QListWidgetItem(QIcon::fromTheme(QIcon::ThemeIcon::Computer), _("Interface"), m_ui->listNavigation)); + m_ui->listNavigation->addItem(new QListWidgetItem(QIcon::fromTheme(QIcon::ThemeIcon::Computer), _("Cava"), m_ui->listNavigation)); + m_ui->listNavigation->addItem(new QListWidgetItem(QIcon::fromTheme(QIcon::ThemeIcon::Computer), _("Colors"), m_ui->listNavigation)); + m_ui->listNavigation->addItem(new QListWidgetItem(QIcon::fromTheme(QIcon::ThemeIcon::InsertImage), _("Images"), m_ui->listNavigation)); + //Load + m_ui->listNavigation->setCurrentRow(0); + m_ui->viewStack->setCurrentIndex(0); + m_ui->cmbTheme->setCurrentIndex(static_cast(m_controller->getTheme())); + m_ui->chkUpdates->setChecked(m_controller->getAutomaticallyCheckForUpdates()); + //Signals + connect(m_ui->listNavigation, &QListWidget::currentRowChanged, this, &SettingsDialog::onNavigationChanged); + connect(m_ui->cmbTheme, &QComboBox::currentIndexChanged, this, &SettingsDialog::onThemeChanged); + } + + SettingsDialog::~SettingsDialog() + { + delete m_ui; + } + + void SettingsDialog::closeEvent(QCloseEvent* event) + { + m_controller->setTheme(static_cast(m_ui->cmbTheme->currentIndex())); + m_controller->setAutomaticallyCheckForUpdates(m_ui->chkUpdates->isChecked()); + m_controller->saveConfiguration(); + event->accept(); + } + + void SettingsDialog::onNavigationChanged() + { + m_ui->viewStack->setCurrentIndex(m_ui->listNavigation->currentRow()); + } + + void SettingsDialog::onThemeChanged() + { + switch (static_cast(m_ui->cmbTheme->currentIndex())) + { + case Theme::Light: + QApplication::styleHints()->setColorScheme(::Qt::ColorScheme::Light); + break; + case Theme::Dark: + QApplication::styleHints()->setColorScheme(::Qt::ColorScheme::Dark); + break; + default: + QApplication::styleHints()->setColorScheme(::Qt::ColorScheme::Unknown); + break; + } + } +} diff --git a/org.nickvision.cavalier.qt/src/views/settingsdialog.ui b/org.nickvision.cavalier.qt/src/views/settingsdialog.ui new file mode 100644 index 0000000..69e49fa --- /dev/null +++ b/org.nickvision.cavalier.qt/src/views/settingsdialog.ui @@ -0,0 +1,63 @@ + + + SettingsDialog + + + + 0 + 0 + 600 + 400 + + + + true + + + + + + + 160 + 16777215 + + + + QAbstractItemView::EditTrigger::NoEditTriggers + + + false + + + + + + + + + 12 + + + 12 + + + + + + + + + + + + + + + + + + + + + + diff --git a/NickvisionCavalier.Shared/Resources/banner.png b/resources/banner.png similarity index 100% rename from NickvisionCavalier.Shared/Resources/banner.png rename to resources/banner.png diff --git a/NickvisionCavalier.Shared/Resources/banner.svg b/resources/banner.svg similarity index 100% rename from NickvisionCavalier.Shared/Resources/banner.svg rename to resources/banner.svg diff --git a/resources/linux/org.nickvision.cavalier.desktop.in b/resources/linux/org.nickvision.cavalier.desktop.in new file mode 100644 index 0000000..47cabb4 --- /dev/null +++ b/resources/linux/org.nickvision.cavalier.desktop.in @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Name=@DISPLAY_NAME@ +Comment=Visualize audio with CAVA +Exec=@CMAKE_INSTALL_FULL_LIBDIR@/@PROJECT_NAME@/@OUTPUT_NAME@ +Icon=@PROJECT_NAME@ +Terminal=false +Type=Application +Categories=AudioVideo;Audio; +Keywords=Cava;Nickvision; +X-GNOME-UsesNotifications=@GNOME_NOTIFICATIONS@ +StartupNotify=@STARTUP_NOTIFY@ diff --git a/resources/linux/org.nickvision.cavalier.in b/resources/linux/org.nickvision.cavalier.in new file mode 100644 index 0000000..42258c0 --- /dev/null +++ b/resources/linux/org.nickvision.cavalier.in @@ -0,0 +1,2 @@ +#!/bin/sh +exec @CMAKE_INSTALL_FULL_LIBDIR@/@PROJECT_NAME@/@OUTPUT_NAME@ "$@" diff --git a/resources/linux/org.nickvision.cavalier.metainfo.xml.in b/resources/linux/org.nickvision.cavalier.metainfo.xml.in new file mode 100644 index 0000000..d7b10b7 --- /dev/null +++ b/resources/linux/org.nickvision.cavalier.metainfo.xml.in @@ -0,0 +1,71 @@ + + + @PROJECT_NAME@ + CC0-1.0 + GPL-3.0-or-later + @Name=@DISPLAY_NAME@ + Nickvision + + Nickvision + + Visualize audio with CAVA + + +

Cavalier is an audio visualizer based on CAVA with customizable interface.

+
    +
  • 11 drawing modes!
  • +
  • Set any color, a gradient or an image for background and foreground.
  • +
  • Configure smoothing, noise reduction and a few other CAVA settings.
  • +
+
+ @PROJECT_NAME@.desktop + + + + Light mode + https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@OUTPUT_NAME@/resources/screenshots/light.png + + + + Dark mode + https://raw.githubusercontent.com/NickvisionApps/Cavalier/main/@OUTPUT_NAME@/resources/screenshots/dark.png + + + + #FFFFFF + #000000 + + https://nickvision.org/@SHORT_NAME@.html + https://github.com/NickvisionApps/@SHORT_NAME@/issues + https://github.com/sponsors/nlogozzo + https://github.com/NickvisionApps/@SHORT_NAME@/blob/master/CONTRIBUTING.md#providing-translations + https://github.com/NickvisionApps/@SHORT_NAME@/blob/main/CONTRIBUTING.md + https://matrix.to/#/#nickvision:matrix.org + https://github.com/NickvisionApps/@SHORT_NAME@ + + @PROJECT_NAME@ + + + + pointing + keyboard + touch + + + 360 + + + + + +

- Rewrote Cavalier in C++ for faster and smoother performance

+

- Added a Qt version of Cavalier which also runs on Windows

+

- Added the ability to specify the `CAVALIER_INPUT_SOURCE` environment variable to change Cavalier's audio source

+

- Increased the maximuim number of bars to 200

+

- Removed the ability to control Cavalier via CLI. If enough users ask, we will add it back

+

- Removed the ability to set a foreground image in the drawing area

+

- Updated cava

+
+
+
+
diff --git a/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier-devel.svg b/resources/org.nickvision.cavalier-devel.svg similarity index 100% rename from NickvisionCavalier.Shared/Resources/org.nickvision.cavalier-devel.svg rename to resources/org.nickvision.cavalier-devel.svg diff --git a/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier-symbolic.svg b/resources/org.nickvision.cavalier-symbolic.svg similarity index 100% rename from NickvisionCavalier.Shared/Resources/org.nickvision.cavalier-symbolic.svg rename to resources/org.nickvision.cavalier-symbolic.svg diff --git a/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.ico b/resources/org.nickvision.cavalier.ico similarity index 100% rename from NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.ico rename to resources/org.nickvision.cavalier.ico diff --git a/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.png b/resources/org.nickvision.cavalier.png similarity index 100% rename from NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.png rename to resources/org.nickvision.cavalier.png diff --git a/NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.svg b/resources/org.nickvision.cavalier.svg similarity index 100% rename from NickvisionCavalier.Shared/Resources/org.nickvision.cavalier.svg rename to resources/org.nickvision.cavalier.svg diff --git a/NickvisionCavalier.Shared/Resources/po/LINGUAS b/resources/po/LINGUAS similarity index 100% rename from NickvisionCavalier.Shared/Resources/po/LINGUAS rename to resources/po/LINGUAS index a569f50..94a939f 100644 --- a/NickvisionCavalier.Shared/Resources/po/LINGUAS +++ b/resources/po/LINGUAS @@ -4,17 +4,17 @@ de es fi fr +hi +ia it nl pl pt_BR +ro ru sv +ta tr +uk zh_Hans zh_Hant -hi -uk -ro -ta -ia diff --git a/resources/po/POTFILES b/resources/po/POTFILES new file mode 100644 index 0000000..77cc76f --- /dev/null +++ b/resources/po/POTFILES @@ -0,0 +1,13 @@ +libcavalier/src/controllers/mainwindowcontroller.cpp +libcavalier/src/controllers/preferencesviewcontroller.cpp +libcavalier/src/models/colorprofile.cpp +org.nickvision.cavalier.gnome/blueprints/image_dialog.blp +org.nickvision.cavalier.gnome/blueprints/main_window.blp +org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp +org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp +org.nickvision.cavalier.gnome/src/views/mainwindow.cpp +org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp +org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp +org.nickvision.cavalier.qt/src/controls/infobar.cpp +org.nickvision.cavalier.qt/src/views/mainwindow.cpp +org.nickvision.cavalier.qt/src/views/settingsdialog.cpp diff --git a/resources/po/be.po b/resources/po/be.po new file mode 100644 index 0000000..e13003d --- /dev/null +++ b/resources/po/be.po @@ -0,0 +1,766 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2023-11-17 18:31+0000\n" +"Last-Translator: Yahor \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 5.2\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Візуалізуйце аўдыя з дапамогай CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Чат Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Удзельнікі на GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Фёдар Собалеў" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "Давід Лапшын" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Yahor Haurylenka " + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Па змаўчанні" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Маштаб" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Альфа" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Налады" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Спалучэнні клавіш" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Аб праграме" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Галоўнае меню" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Візуалізуйце аўдыя з дапамогай CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier слухае гук вашай сістэмы. Уключыце музыку або паглядзіце відэа і " +"ўбачыце, як ваш гук ажывае!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Светлая" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Цёмная" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Рэжым адмалёўкі" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "Рэжым адмалёўкі" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Скрынка" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Круг" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Рэжым адмалёўкі" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Хваля" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Узроўні" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Часціцы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Шкалы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Калонка" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Раздзяляльнік" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Сэрцы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Кірунак адмалёўкі" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Зверху ўніз" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Знізу ўверх" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Злева направа" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Справа налева" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Змяніць рэжым люстэрка" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Выкл." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Поўны" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Раздзяліць каналы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Раздзяліць каналы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Водступ вобласці адмалёўкі" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Адхіленне вобласці адмалёўкі па восі X" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Адхіленне вобласці адмалёўкі па восі Y" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Змяніць акругласць элементаў" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Каналы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Мона" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Стэрэа" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Частата кадраў" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Колькасць шкал" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Зваротны парадак" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Аўтаматычная адчувальнасць" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Спрабаваць змяншаць адчувальнасць, калі паказчыкі дасягаюць максімуму." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Адчувальнасць" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Згладжванне Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Шумападаўленне" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Колеры" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Дадаць профіль" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Дадаць" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Выдаліць профіль" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Відарысы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Змяніць фонавы відарыс" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Дадаць відарыс" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Праграма" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Праграма" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Выйсці" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Рэпазіторый GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Выдаліць профіль" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Вы ўпэўнены, што хочаце выдаліць профіль \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Змяніць фонавы відарыс" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Выдаліць профіль" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Вы ўпэўнены, што хочаце выдаліць профіль \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Каналы" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Узроўні" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Нахіл" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Светлая" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Цёмная" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Змяніць профіль колераў" + +#~ msgid "Add New Profile" +#~ msgstr "Дадаць новы профіль" + +#~ msgid "Cancel" +#~ msgstr "Скасаваць" + +#~ msgid "Delete" +#~ msgstr "Выдаліць" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Відарысы JPEG і PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Новы каляровы профіль будзе копіяй бягучага актыўнага профілю." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Укл." + +#~ msgid "Profile Name" +#~ msgstr "Імя профілю" + +#~ msgid "Select an image" +#~ msgstr "Выбраць відарыс" + +#~ msgid "Command Help" +#~ msgstr "Даведка па камандах" + +#~ msgid "Let's dance!" +#~ msgstr "Давайце танчыць!" + +#~ msgid "Radius" +#~ msgstr "Радыус" + +#~ msgid "Mirror" +#~ msgstr "Люстэрка" + +#~ msgid "Reverse mirror" +#~ msgstr "Развярнуць люстэрка" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Памер водступу вакол вобласці адмалёўкі (у пікселях)." + +#~ msgid "Offset between items" +#~ msgstr "Адлегласць паміж элементамі" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Памер прасторы паміж элементамі (у працэнтах)." + +#~ msgid "Roundness of items" +#~ msgstr "Кругласць элементаў" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Наколькі элементы павінны быць скругленыя (у працэнтах)." + +#~ msgid "Filling" +#~ msgstr "Запаўненне" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Ці павінны формы быць запоўненыя або абведзены." + +#~ msgid "Thickness of lines" +#~ msgstr "Таўшчыня ліній" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "Таўшчыня ліній пры выключаным запаўненні (у пікселях)." + +#~ msgid "Borderless window" +#~ msgstr "Адключыць межы акна" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Ці трэба схаваць цені і межы акна." + +#~ msgid "Sharp corners" +#~ msgstr "Вострыя вуглы" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Ці павінны вуглы галоўнага акна быць вострымі." + +#~ msgid "Window controls" +#~ msgstr "Кнопкі кіравання акном" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Ці павінны адлюстроўвацца кнопкі кіравання акном." + +#~ msgid "Autohide headerbar" +#~ msgstr "Аўтаскрыццё загалоўка" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Ці павінен адлюстроўвацца загаловак галоўнага акна, калі яно не ў фокусе." + +#~ msgid "Number of frames per second." +#~ msgstr "Колькасць кадраў за секунду." + +#~ msgid "Custom" +#~ msgstr "Іншае" + +#~ msgid "Custom Framerate" +#~ msgstr "Свая частата кадраў" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Ручныя налады адчувальнасці. Калі аўтаматычная адчувальнасць уключана, " +#~ "гэты параметр задае толькі пачатковае значэнне." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Ці трэба ўключыць так званае \"згладжванне Monstercat\"." + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Гэты параметр рэгулюе інтэгральныя і гравітацыйныя фільтры, якія робяць " +#~ "сігнал гладкім.\n" +#~ "Высокае значэнне прывядзе да павальнейшага і гладкага выніку." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Ці трэба змяніць парадак шкал для кожнага канала." + +#~ msgid "Application Theme" +#~ msgstr "Тэма праграмы" + +#~ msgid "Foreground Colors" +#~ msgstr "Колеры пярэдняга плана" + +#~ msgid "Add foreground color" +#~ msgstr "Дадаць колер пярэдняга плана" + +#~ msgid "Background Colors" +#~ msgstr "Колеры фону" + +#~ msgid "Add background color" +#~ msgstr "Дадаць колер фону" + +#~ msgid "Background" +#~ msgstr "Фон" + +#~ msgid "Foreground" +#~ msgstr "Пярэдні план" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "" +#~ "Выява пярэдняга плану адлюстроўваецца толькі ў рэжымах тыпу Скрынка." + +#~ msgid "No Images" +#~ msgstr "Няма відарысаў" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Дадайце відарыс для выкарыстання ў Cavalier." + +#~ msgid "No Image" +#~ msgstr "Без відарыса" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Змяніць рэжым адмалёўкі" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Змяніць радыус у рэжымах тыпу Круг" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Змяніць нахіл у рэжымах тыпу Круг" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Развярнуць люстэрка" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Змяніць водступ вобласці адмалёўкі" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Змяніць адхіленне вобласці адмалёўкі па восі X" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Змяніць адхіленне вобласці адмалёўкі па восі Y" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Змяніць напрамак адмалёўкі" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Змяніць адлегласць паміж элементамі" + +#~ msgid "Toggle Filling" +#~ msgstr "Пераключыць запаўненне" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Змяніць таўшчыню ліній" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Пераключыць межы акна" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Пераключыць вострыя вуглы" + +#~ msgid "Change Number of Bars" +#~ msgstr "Змяніць колькасць шкал" + +#~ msgid "Toggle Channels" +#~ msgstr "Пераключыць каналы" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Пераключыць зваротны парадак" + +#~ msgid "Other" +#~ msgstr "Іншае" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Змяніць маштаб фонавага відарыса" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Змяніць значэнне альфа фонавага відарыса" + +#~ msgid "Change Foreground Image" +#~ msgstr "Змяніць відарыс пярэдняга плана" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Змяніць маштаб відарыса пярэдняга плану" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Змяніць значэнне альфа відарыса пярэдняга плана" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Пераключыць поўны экран" + +#~ msgid "Resizing..." +#~ msgstr "Змена памеру ..." diff --git a/resources/po/cavalier.pot b/resources/po/cavalier.pot new file mode 100644 index 0000000..d4557b9 --- /dev/null +++ b/resources/po/cavalier.pot @@ -0,0 +1,485 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:34-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +msgid "Contributors on GitHub" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +msgid "Visualize Your Audio" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +msgid "Drawing Area" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +msgid "Drawing Shape" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +msgid "Drawing Direction" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Top to Bottom" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Bottom to Top" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Left to Right" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Right to Left" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +msgid "Mirror Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +msgid "Area Margin" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +msgid "Area X Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +msgid "Area Y Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +msgid "Item Roundness" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +msgid "Cava" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +msgid "Number of Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +msgid "Reverse Bar Order" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +msgid "Automatic Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +msgid "Manual Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +msgid "Monstercat Smoothing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +msgid "Noise Reduction Factor" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +msgid "Profiles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +msgid "Active Profile" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +msgid "Background Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +msgid "Active Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +msgid "About Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Delete Profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Are you sure you want to delete this profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +msgid "Select Background Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Delete Image?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Are you sure you want to delete this image?" +msgstr "" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +msgid "Changelog" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +msgid "Developers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +msgid "Notification" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier (Preview)" +msgstr "" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" diff --git a/resources/po/cs.po b/resources/po/cs.po new file mode 100644 index 0000000..9635858 --- /dev/null +++ b/resources/po/cs.po @@ -0,0 +1,798 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-09-04 15:09+0000\n" +"Last-Translator: Fjuro \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Weblate 5.7.2-rc\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Vizualizace zvuku s CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Matrix Chat" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Přispěvatelě na GitHubu ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "" +"Písek Pískovec\n" +"Jonáš Loskot , 2024" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Výchozí" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Měřítko" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Alfa" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Předvolby" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Klávesové zkratky" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "O aplikaci Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Hlavní nabídka" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Vizualizace zvuku s CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier poslouchá zvuk vašeho systému. Pusťte si hudbu nebo se podívejte na " +"video a sledujte, jak váš zvuk ožije!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Světlý" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Tmavý" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Režim vykreslování" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "Režim vykreslování" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Čtverec" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Kruh" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Režim vykreslování" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Vlna" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Úrovně" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Částečky" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Tyče" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Páteř" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Rozdělovač" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Srdíčka" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Směr vykreslování" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Shora dolů" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Zdola nahoru" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Zleva doprava" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Zprava doleva" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Změnit režim zrcadlení" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Vypnuto" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Plný" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Rozdělit kanály" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Rozdělit kanály" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Okraje vykreslovací plochy" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Posunutí X vykreslované oblasti" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Posunutí Y vykreslované oblasti" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Změnit zaoblení položek" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Kanály" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Snímková frekvence" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Počet tyčí" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Opačné pořadí" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Automatická citlivost" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Pokus snížit citlivost když tyče jsou na vrcholu." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Citlivost" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Monstercat vyhlazování" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Redukce šumu" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Barvy" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Přidat profil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Přidat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Smazat Profil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Obrázky" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Změnit obrázek na pozadí" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Přidat obrázek" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Aplikace" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Aplikace" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Ukončit" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Repozitář GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Smazat Profil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Opravdu chcete odstranit profil „{0}“?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Změnit obrázek na pozadí" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Smazat Profil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Opravdu chcete odstranit profil „{0}“?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Kanály" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Úrovně" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Otočení" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Světlý" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Tmavý" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Změnit barevný profil" + +#~ msgid "Add New Profile" +#~ msgstr "Přidat nový profil" + +#~ msgid "Cancel" +#~ msgstr "Zrušit" + +#~ msgid "Delete" +#~ msgstr "Smazat" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Obrázky JPEG a PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Nový barevný profil bude kopie současně aktivního profilu." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Zapnuto" + +#~ msgid "Profile Name" +#~ msgstr "Název profilu" + +#~ msgid "Select an image" +#~ msgstr "Vybrat obrázek" + +#~ msgid "Command Help" +#~ msgstr "Nápověda k příkazům" + +#~ msgid "Let's dance!" +#~ msgstr "Jdeme tančit!" + +#~ msgid "Radius" +#~ msgstr "Poloměr" + +#~ msgid "Mirror" +#~ msgstr "Zrcadlo" + +#~ msgid "Reverse mirror" +#~ msgstr "Opačné zrcadlení" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Velikost mezer okolo vykreslovací oblasti (v pixelech)." + +#~ msgid "Offset between items" +#~ msgstr "Odsazení mezi položkami" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Velikost mezer mezi prvky (v procentech)." + +#~ msgid "Roundness of items" +#~ msgstr "Zaoblení položek" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Jak moc zaoblené prvky budou (v procentech)." + +#~ msgid "Filling" +#~ msgstr "Výplň" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Zda tvary budou vyplněny nebo obtáhnuty." + +#~ msgid "Thickness of lines" +#~ msgstr "Tloušťka čar" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "Tloušťka čar když vyplňování je vypnuto (v pixelech)." + +#~ msgid "Borderless window" +#~ msgstr "Bezrámečkové okno" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Zda vypnout stín a rám okna." + +#~ msgid "Sharp corners" +#~ msgstr "Ostré rohy" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Zda budou rohy hlavního okna ostré." + +#~ msgid "Window controls" +#~ msgstr "Ovládání okna" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Zda zobrazovat tlačítka ovládání okna." + +#~ msgid "Autohide headerbar" +#~ msgstr "Automaticky skrýt záhlaví" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "Zda skrýt záhlaví hlavního okna pokud není zaměřené." + +#~ msgid "Number of frames per second." +#~ msgstr "Počet snímků za vteřinu." + +#~ msgid "Custom" +#~ msgstr "Vlastní" + +#~ msgid "Custom Framerate" +#~ msgstr "Vlastní snímková frekvence" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Ruční citlivost. Pokud je povolena automatická citlivost, toto bude pouze " +#~ "prvotní hodnota." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Zda zapnout takzvané «Monstercat smoothing»." + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Tento faktor upravuje integrální a gravitační filtry pro udržení hladkého " +#~ "signálu.\n" +#~ "Vyšší hodnota vede k pomalejšímu a hladšímu výsledku." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Zda obrátit pořadí tyčí každého kanálu." + +#~ msgid "Application Theme" +#~ msgstr "Vzhled aplikace" + +#~ msgid "Foreground Colors" +#~ msgstr "Barvy popředí" + +#~ msgid "Add foreground color" +#~ msgstr "Přidat barvu popředí" + +#~ msgid "Background Colors" +#~ msgstr "Barvy pozadí" + +#~ msgid "Add background color" +#~ msgstr "Přidat barvu pozadí" + +#~ msgid "Background" +#~ msgstr "Pozadí" + +#~ msgid "Foreground" +#~ msgstr "Popředí" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "" +#~ "Obrázek na popředí je zobrazen pouze v krychlových režimech vykreslování." + +#~ msgid "No Images" +#~ msgstr "Žádné obrázky" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Přidejte obrázek pro použití v aplikaci Cavalier." + +#~ msgid "No Image" +#~ msgstr "Žádný obrázek" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Změnit režim vykreslování" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Změnit poloměr v režimu Kruhu" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Změnit otočení v režimech Kruhu" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Přepnout opačné zrcadlení" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Změnit odsazení vykreslované oblasti" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Změnit odsazení X vykreslované oblasti" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Změnit odsazení Y vykreslované oblasti" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Změnit směr vykreslování" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Změnit odsazení mezi položkami" + +#~ msgid "Toggle Filling" +#~ msgstr "Přepnout výplň" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Změnit tloušťku čar" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Přepnout okraje okna" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Přepnout ostré rohy" + +#~ msgid "Change Number of Bars" +#~ msgstr "Změnit počet sloupců" + +#~ msgid "Toggle Channels" +#~ msgstr "Přepnout kanály" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Přepnout opačné pořadí" + +#~ msgid "Other" +#~ msgstr "Jiné" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Změnit velikost obrázku na pozadí" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Změnit alfu obrázku na pozadí" + +#~ msgid "Change Foreground Image" +#~ msgstr "Změnit obrázek na popředí" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Změnit velikost obrázku na popředí" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Změnit alfu obrázku na popředí" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Přepnout na celou obrazovku" + +#~ msgid "Resizing..." +#~ msgstr "Změna velikosti..." + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier je vizualizér zvuku založený na CAVA s přizpůsobitelným " +#~ "prostředím." + +#~ msgid "11 drawing modes!" +#~ msgstr "11 vykreslovacích režimů!" + +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Nastavte jakoukoliv barvu, přechod nebo obrázek pro pozadí a popředí." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "Nastavte vyhlazení, redukci šumu a pár dalších CAVA nastavení." + +#, csharp-format +#~ msgid "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Contributors on GitHub ❤️ {2}" +#~ msgstr "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Přispěvatelé na GitHubu ❤️ {2}" + +#~ msgid "Toggle Window Controls" +#~ msgstr "Přepnout ovládání okna" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Přepnout automatické skrývání záhlaví" diff --git a/resources/po/de.po b/resources/po/de.po new file mode 100644 index 0000000..4ba8c25 --- /dev/null +++ b/resources/po/de.po @@ -0,0 +1,927 @@ +# German translation for the cavalier's package +# Copyright (C) 2022 Fyodor Sobolev +# This file is distributed under the same license as the cavalier's package. +# gregorni , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: cavalier\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-10-13 14:16+0000\n" +"Last-Translator: Ettore Atalan \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.8-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Audio mit CAVA visualisieren" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Matrix-Chat" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Mitwirkende auf GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Mitwirkende Übersetzer" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Standard" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Skalierung" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Alpha" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Einstellungen" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Tastenkürzel" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Über Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Hauptmenü" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Audio mit CAVA visualisieren" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Hell" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Dunkel" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Zeichenmodus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "Zeichenmodus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Box" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Kreis" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Zeichenmodus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Welle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Stufen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Partikel" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Säulen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Herzen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Zeichnungsrichtung" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Oben nach unten" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Unten nach oben" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Links nach rechts" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Rechts nach links" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Spiegelungsmodus ändern" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Aus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Vollständig" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Kanäle teilen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Kanäle teilen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Rand um die Zeichenfläche" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +msgid "Area X Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +msgid "Area Y Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Rundung der Elemente ändern" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Kanäle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Bildwiederholrate" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Anzahl der Säulen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Reihenfolge umkehren" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Automatische Empfindlichkeit" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Empfindlichkeit senken, wenn die Säulen den Höchststand erreichen." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Empfindlichkeit" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Ebenung" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Lärmreduktion" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Farben" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Profil hinzufügen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Hinzufügen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Profil löschen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Bilder" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Hintergrundbild ändern" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Bild hinzufügen" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Anwendung" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Anwendung" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Schließen" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "GitHub-Repo" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Profil löschen" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Sind Sie sicher, dass Sie das Profil „{0}“ löschen möchten?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Hintergrundbild ändern" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Profil löschen" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Sind Sie sicher, dass Sie das Profil „{0}“ löschen möchten?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "Über" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Kanäle" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Stufen" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Drehung" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +#, fuzzy +msgid "File" +msgstr "Alle Dateien" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +#, fuzzy +msgid "Settings" +msgstr "Einstellungen importieren" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Hell" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Dunkel" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Farbprofil ändern" + +#~ msgid "Add New Profile" +#~ msgstr "Neues Profil hinzufügen" + +#~ msgid "Cancel" +#~ msgstr "Abbrechen" + +#~ msgid "Delete" +#~ msgstr "Löschen" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG und PNG Bilder" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Neues Farbprofil wird eine Kopie vom aktuellen Profil sein." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Ein" + +#~ msgid "Profile Name" +#~ msgstr "Profilname" + +#~ msgid "Select an image" +#~ msgstr "ein Bild auswählen" + +#~ msgid "Command Help" +#~ msgstr "Hilfe zum Befehl" + +#~ msgid "Let's dance!" +#~ msgstr "Lass uns tanzen!" + +#~ msgid "Radius" +#~ msgstr "Radius" + +#~ msgid "Mirror" +#~ msgstr "Spiegelung" + +#~ msgid "Reverse mirror" +#~ msgstr "Spiegelung umkehren" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Größe des Rands um die Zeichenfläche herum (in Pixel)." + +#~ msgid "Offset between items" +#~ msgstr "Abstand zwischen Elementen" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Die Größe der Abstände zwischen den Elementen (in Prozent)." + +#~ msgid "Roundness of items" +#~ msgstr "Rundung der Elemente" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Wie stark abgerundet die Elemente sein sollen (in Prozent)." + +#~ msgid "Filling" +#~ msgstr "Füllung" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Ob Formen gefüllt oder umrandet werden sollen." + +#~ msgid "Thickness of lines" +#~ msgstr "Dicke der Linien" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "Dicke der Linien, wenn die Füllung ausgeschaltet ist (in Pixel)." + +#~ msgid "Borderless window" +#~ msgstr "Rahmenloses Fenster" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Ob Schatten und Rahmen des Fensters deaktiviert werden sollen." + +#~ msgid "Sharp corners" +#~ msgstr "Spitze Ecken" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Die Ecken des Hauptfensters zuspitzen." + +#~ msgid "Window controls" +#~ msgstr "Fensterregler" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Buttons der Fensterregelung anzeigen." + +#~ msgid "Autohide headerbar" +#~ msgstr "Kopfleiste ausblenden" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Kopfleiste automatisch ausblenden, wenn das Hauptfenster nicht fokussiert " +#~ "ist." + +#~ msgid "Number of frames per second." +#~ msgstr "Anzahl der Bilder pro Sekunde." + +#~ msgid "Custom" +#~ msgstr "Benutzerdefiniert" + +#~ msgid "Custom Framerate" +#~ msgstr "Benutzerdefinierte Bildwiederholrate" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Manuelle Empfindlichkeit. Wenn Automatische Empfindlichkeit eingeschaltet " +#~ "ist, wird dieser Wert nur als Ursprungswert eingestellt." + +#~ msgid "Noise reduction" +#~ msgstr "Lärmreduzierung" + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Dieser Faktor passt die Integral- und Gravitationsfilter an, um das " +#~ "Signal glatt zu halten.\n" +#~ "Ein höherer Wert führt zu einem langsameren und gleichmäßigeren Ergebnis." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "" +#~ "Ob die Reihenfolge der Balken für jeden Kanal umgekehrt werden soll." + +#~ msgid "Application Theme" +#~ msgstr "Anwendungsthema" + +#~ msgid "Foreground Colors" +#~ msgstr "Vordergrundfarben" + +#~ msgid "Add foreground color" +#~ msgstr "Vordergrundfarbe hinzufügen" + +#~ msgid "Background Colors" +#~ msgstr "Hintergrundfarben" + +#~ msgid "Add background color" +#~ msgstr "Hintergrundfarben hinzufügen" + +#~ msgid "Background" +#~ msgstr "Hintergrund" + +#~ msgid "Foreground" +#~ msgstr "Vordergrund" + +#~ msgid "No Images" +#~ msgstr "Keine Bilder" + +#~ msgid "No Image" +#~ msgstr "Kein Bild" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Zeichenmodus wechseln" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Radius in den Kreis-Modi ändern" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Drehung in den Kreis-Modi ändern" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Umgekehrte Spiegelung umschalten" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Rand um die Zeichenfläche ändern" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Zeichnungsrichtung ändern" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Abstand zwischen Elementen ändern" + +#~ msgid "Toggle Filling" +#~ msgstr "Füllung umschalten" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Liniendicke ändern" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Fensterrahmen umschalten" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Spitze Ecken umschalten" + +#~ msgid "Change Number of Bars" +#~ msgstr "Anzahl der Säulen ändern" + +#~ msgid "Toggle Channels" +#~ msgstr "Kanäle umschalten" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Umgekehrte Reihenfolge umschalten" + +#, fuzzy +#~ msgid "Other" +#~ msgstr "Sonstiges" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Skalierung des Hintergrundbildes ändern" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Alpha des Hintergrundbildes ändern" + +#~ msgid "Change Foreground Image" +#~ msgstr "Vordergrundbild ändern" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Skalierung des Vordergrundbildes ändern" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Alpha des Vordergrundbildes ändern" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Vollbild umschalten" + +#~ msgid "Resizing..." +#~ msgstr "Größe wird geändert..." + +#, fuzzy +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier ist ein auf CAVA basierter Audio-Visualisierer mit einer " +#~ "konfigurierbaren LibAdwaita-Oberfläche." + +#, fuzzy +#~ msgid "11 drawing modes!" +#~ msgstr "4 Zeichenmodi!" + +#, fuzzy +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Eine einzige Farbe oder einen bis zu 10-farbigen Farbverlauf für Vorder- " +#~ "und Hintergrund einstellen." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "Ebenung, Lärmreduktion und andere CAVA-Einstellungen konfigurieren." + +#~ msgid "Toggle Window Controls" +#~ msgstr "Fensterregler umschalten" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Ausblenden der Kopfleiste umschalten" + +#, fuzzy +#~ msgid "Set any color or gradient for background and foreground." +#~ msgstr "" +#~ "Eine einzige Farbe oder einen bis zu 10-farbigen Farbverlauf für Vorder- " +#~ "und Hintergrund einstellen." + +#, fuzzy +#~ msgid "Audio visualizer based on CAVA" +#~ msgstr "Auf CAVA basierter Audio-Visualisierer" + +#~ msgid "Audio Visualizer" +#~ msgstr "Audio-Visualisierer" + +#~ msgid "Second release of Cavalier." +#~ msgstr "Die zweite Version von Cavalier." + +#~ msgid "New drawing mode — Particles!" +#~ msgstr "Neuer Zeichenmodus - Partikel!" + +#~ msgid "" +#~ "Color profiles! Create as many as you want and change between them " +#~ "instantly. Unfortunately, this new feature required to change how the " +#~ "application saves colors, and because of this your previous colors " +#~ "settings will be lost after installing this update." +#~ msgstr "" +#~ "Farbprofile! Erstellen Sie beliebig viele und wechseln Sie zwischen ihnen " +#~ "im Handumdrehen. Leider werden Ihre bisherigen Farbeinstellungen verloren " +#~ "gehen, da für dieses neue Feature Farbprofile anders gespeichert werden " +#~ "als bisher." + +#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." +#~ msgstr "Tastenkürzel für die meisten Einstellungen hinzugefügt." + +#~ msgid "Added option to show/hide window controls." +#~ msgstr "" +#~ "Einstellung zum Anzeigen/Ausblenden der Fensterregelung hinzugefügt." + +#~ msgid "" +#~ "Added option to autohide headerbar when the main window is not focused." +#~ msgstr "" +#~ "Einstellung zum automatischen Ausblenden der Kopfleiste hinzugefügt." + +#~ msgid "" +#~ "Added option to change roundness of items in \"levels\" and \"particles\" " +#~ "modes." +#~ msgstr "" +#~ "Einstellung für die Rundung der Elemente im Partikel- und Stufenmodus " +#~ "hinzugefügt." + +#~ msgid "Import/Export Settings" +#~ msgstr "Einstellungen importieren/exportieren" + +#~ msgid "Window size" +#~ msgstr "Fenstergröße" + +#~ msgid "Window maximized state" +#~ msgstr "Maximiertes Fenster" + +#~ msgid "Whether main window is maximized or not" +#~ msgstr "Gibt an, ob das Hauptfenster maximiert ist oder nicht" + +#~ msgid "Defines what the visualizer looks like." +#~ msgstr "Legt fest, wie die Visualisierung aussieht." + +#~ msgid "This setting only affects \"levels\" and \"particles\" modes." +#~ msgstr "Diese Einstellung betrifft nur Partikel- und Stufenmodus." + +#~ msgid "Number of bars in CAVA config" +#~ msgstr "Anzahl der Säulen in der CAVA Konfiguration" + +#~ msgid "Mono or stereo" +#~ msgstr "Mono oder Stereo" + +#~ msgid "Widgets style" +#~ msgstr "Stil" + +#~ msgid "Style used by Adwaita widgets." +#~ msgstr "Stil der Adwaita-Objekte" + +#~ msgid "Index of active color profile" +#~ msgstr "Liste der aktiven Farprofile" + +#~ msgid "" +#~ "This setting only affects \"levels\" and \"particles\" modes.\n" +#~ "0 - square, 1 - round" +#~ msgstr "" +#~ "Diese Einstellung betrifft nur Partikel- und Stufenmodus.\n" +#~ "0 - quadratisch, 1 - rund" + +#~ msgid "Import" +#~ msgstr "Importieren" + +#~ msgid "Export" +#~ msgstr "Exportieren" + +#~ msgid "0 - noisy, 1 - smooth" +#~ msgstr "0 - laut, 1 - sanft" + +#~ msgid "Type a name for a new profile" +#~ msgstr "Name des neuen Profils" + +#~ msgid "Remove profile" +#~ msgstr "Profil entfernen" + +#~ msgid "Remove" +#~ msgstr "Entfernen" + +#~ msgid "Foreground" +#~ msgstr "Vordergrund" + +#~ msgid "Background" +#~ msgstr "Hintergrund" + +#~ msgid "Select color" +#~ msgstr "Farbe auswählen" + +#~ msgid "Remove color" +#~ msgstr "Farbe entfernen" + +#~ msgid "Add color" +#~ msgstr "Farbe hinzufügen" + +#~ msgid "This name is already in use." +#~ msgstr "Dieser Name wird bereits benutzt." + +#~ msgid "Cavalier Settings File (*.cavalier)" +#~ msgstr "Cavalier Einstellungsdatei (*.cavalier)" + +#~ msgid "Export Settings" +#~ msgstr "Einstellungen exportieren" + +#~ msgid "Save" +#~ msgstr "Speichern" + +#~ msgid "Toggle Widgets Style" +#~ msgstr "Stil umschalten" + +#~ msgid "" +#~ "3 drawing modes: weird Wave, retro-ish Levels and classic CAVA look - " +#~ "Bars!" +#~ msgstr "" +#~ "3 Zeichenmodi: seltsame Welle, retro-artige Stufen und der klassische " +#~ "CAVA-Look - Säulen!" + +#~ msgid "The array of foregound colors (RGBA)." +#~ msgstr "Palette der Vordergrundfarben" + +#~ msgid "The array of background colors (RGBA)." +#~ msgstr "Palette der Hintergrundfarben" diff --git a/resources/po/es.po b/resources/po/es.po new file mode 100644 index 0000000..7789aa1 --- /dev/null +++ b/resources/po/es.po @@ -0,0 +1,949 @@ +# Spanish translation for the cavalier's package. +# Copyright (C) 2022 Fyodor Sobolev +# This file is distributed under the same license as the cavalier package. +# Santiago F. , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: cavalier\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2023-10-29 05:18+0000\n" +"Last-Translator: Óscar Fernández Díaz " +"\n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.2-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Visualice el audio con CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Chat de Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Colaboradores en GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Óscar Fernández Díaz " + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Predeterminado" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Escala" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Alfa" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Preferencias" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Atajos del teclado" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Acerca de Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Menú principal" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Visualice el audio con CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier escucha el sonido de su sistema. ¡Reproduzca música o mire un vídeo " +"y verá cómo el sonido cobra vida!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Claro" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Oscuro" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Modo de Dibujado" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "Modo de Dibujado" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Caja" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Círculo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Modo de dibujado" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Onda" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Niveles" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Partículas" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Barras" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Columna" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Divisor" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Corazones" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Dirección del dibujo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "De arriba a abajo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "De abajo a arriba" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "De izquierda a derecha" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "De derecha a izquierda" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Cambiar modo espejo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Apagado" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Completo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Dividir canales" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Dividir canales" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Margen del área de dibujado" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Movimiento en el eje X del área de dibujo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Movimiento en el eje Y del área de dibujo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Cambiar la redondez de los elementos" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Canales" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Estéreo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Fotogramas por segundo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Numero de barras" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Orden inverso" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Sensibilidad automática" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" +"Intento para reducir la sensibilidad si las barras llegan a su punto máximo." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Sensibilidad" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Suavizado Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Reducción de Ruido" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Colores" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Añadir perfil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Añadir" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Borrar perfil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Imágenes" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Cambiar imagen de fondo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Añadir imagen" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Aplicación" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Aplicación" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Salir" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Repo de GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Borrar perfil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "¿Está seguro de que desea eliminar el perfil \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Cambiar imagen de fondo" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Borrar perfil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "¿Está seguro de que desea eliminar el perfil \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "Acerca de" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Canales" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Niveles" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Giro" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +#, fuzzy +msgid "File" +msgstr "Todos los Archivos" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +#, fuzzy +msgid "Settings" +msgstr "Importar Ajustes" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Claro" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Oscuro" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Cambiar perfil de color" + +#~ msgid "Add New Profile" +#~ msgstr "Añadir perfil nuevo" + +#~ msgid "Cancel" +#~ msgstr "Cancelar" + +#~ msgid "Delete" +#~ msgstr "Borrar" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Imágenes JPEG y PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "El perfil de color nuevo será una copia del perfil activo actual." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Activo" + +#~ msgid "Profile Name" +#~ msgstr "Nombre del perfil" + +#~ msgid "Select an image" +#~ msgstr "Seleccione una imagen" + +#~ msgid "Command Help" +#~ msgstr "Ayuda de comandos" + +#~ msgid "Let's dance!" +#~ msgstr "¡A bailar!" + +#~ msgid "Radius" +#~ msgstr "Radio" + +#~ msgid "Mirror" +#~ msgstr "Espejo" + +#~ msgid "Reverse mirror" +#~ msgstr "Espejo inverso" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Tamaño del espacio alrededor del área de dibujado (en píxeles)." + +#~ msgid "Offset between items" +#~ msgstr "Espacio entre elementos" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "El tamaño de los espacios entre elementos (en porcentaje)." + +#~ msgid "Roundness of items" +#~ msgstr "Redondez de los elementos" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Qué tan redondeados deben ser los elementos (en porcentaje)." + +#~ msgid "Filling" +#~ msgstr "Relleno" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Si las formas deben rellenarse o contornearse." + +#~ msgid "Thickness of lines" +#~ msgstr "Grosor de las líneas" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "" +#~ "Grosor de las líneas cuando el relleno está desactivado (en píxeles)." + +#~ msgid "Borderless window" +#~ msgstr "Ventana sin bordes" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Si se desactivan la sombra y los bordes de la ventana." + +#~ msgid "Sharp corners" +#~ msgstr "Esquinas planas" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Si la ventana principal debe ser plana." + +#~ msgid "Window controls" +#~ msgstr "Controles de ventana" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Si se muestran los controles de ventana." + +#~ msgid "Autohide headerbar" +#~ msgstr "Ocultar la barra de título automáticamente" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Si se oculta la barra de título cuando la ventana principal no está " +#~ "activa." + +#~ msgid "Number of frames per second." +#~ msgstr "Número de fotogramas por segundo." + +#~ msgid "Custom" +#~ msgstr "Personalizado" + +#~ msgid "Custom Framerate" +#~ msgstr "Fotogramas por segundo personalizados" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Sensibilidad manual. De ser activado, esto será solo el valor inicial." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Si se activa el llamado \"suavizado Monstercat\"." + +#~ msgid "Noise reduction" +#~ msgstr "Reducción de ruido" + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Este factor ajusta los filtros integral y de gravedad para mantener la " +#~ "suavidad de la señal.\n" +#~ "Un valor más alto conduce a un resultado más lento y suave." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Si se desea invertir el orden de las barras para cada canal." + +#~ msgid "Application Theme" +#~ msgstr "Tema de la aplicación" + +#~ msgid "Foreground Colors" +#~ msgstr "Colores del primer plano" + +#~ msgid "Add foreground color" +#~ msgstr "Añadir color de primer plano" + +#~ msgid "Background Colors" +#~ msgstr "Colores de fondo" + +#~ msgid "Add background color" +#~ msgstr "Añadir el color del fondo" + +#~ msgid "Background" +#~ msgstr "Fondo" + +#~ msgid "Foreground" +#~ msgstr "Primer plano" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "" +#~ "La imagen en primer plano solo se muestra con los modos de dibujo Caja." + +#~ msgid "No Images" +#~ msgstr "Sin imágenes" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Añada una imagen para usarla en Cavalier." + +#~ msgid "No Image" +#~ msgstr "Sin imagen" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Cambiar modo de dibujado" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Cambiar radio en modos Círculo" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Cambiar la rotación en los modos Círculo" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Conmutar espejo inverso" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Cambiar margen del área de dibujado" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Cambiar el movimiento en el eje X del área de dibujo" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Cambiar el movimiento en el eje Y del área de dibujo" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Cambiar dirección del dibujo" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Cambiar espacio entre elementos" + +#~ msgid "Toggle Filling" +#~ msgstr "Conmutar relleno" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Cambiar grosor de las líneas" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Conmutar bordes de ventana" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Conmutar bordes planos" + +#~ msgid "Change Number of Bars" +#~ msgstr "Cambiar número de barras" + +#~ msgid "Toggle Channels" +#~ msgstr "Conmutar canales" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Conmutar orden inverso" + +#~ msgid "Other" +#~ msgstr "Otros" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Cambiar el tamaño de la imagen del fondo" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Cambiar el alfa de la imagen de fondo" + +#~ msgid "Change Foreground Image" +#~ msgstr "Cambiar la imagen en primer plano" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Cambiar la escala de la imagen en primer plano" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Cambiar el alfa de la imagen de primer plano" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Conmutar pantalla completa" + +#~ msgid "Resizing..." +#~ msgstr "Redimensionando..." + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier es un visualizador de audio basado en CAVA con interfaz " +#~ "personalizable." + +#~ msgid "11 drawing modes!" +#~ msgstr "¡11 modos de dibujo!" + +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Establezca cualquier color, un degradado o una imagen para el fondo y el " +#~ "primer plano." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "Configure suavizado, reducción de ruido y otros ajustes de CAVA." + +#~ msgid "6 drawing modes!" +#~ msgstr "¡6 modos de dibujo!" + +#, csharp-format +#~ msgid "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Contributors on GitHub ❤️ {2}" +#~ msgstr "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Colaboradores en GitHub ❤️ {2}" + +#~ msgid "Toggle Window Controls" +#~ msgstr "Conmutar controles de ventana" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Conmutar ocultar barra de título automáticamente" + +#, fuzzy +#~ msgid "Set any color or gradient for background and foreground." +#~ msgstr "" +#~ "Configure un color o hasta 10 colores gradientes para el fondo y énfasis." + +#, fuzzy +#~ msgid "Audio visualizer based on CAVA" +#~ msgstr "Visualizador de audio basado en CAVA." + +#~ msgid "Audio Visualizer" +#~ msgstr "Visualizador de Audio" + +#~ msgid "Second release of Cavalier." +#~ msgstr "Segundo lanzamiento de Cavalier." + +#~ msgid "New drawing mode — Particles!" +#~ msgstr "Nuevo modo de dibujado — Partículas!" + +#~ msgid "" +#~ "Color profiles! Create as many as you want and change between them " +#~ "instantly. Unfortunately, this new feature required to change how the " +#~ "application saves colors, and because of this your previous colors " +#~ "settings will be lost after installing this update." +#~ msgstr "" +#~ "Perfiles de color! Cree cuantos perfiles desee y cambie entre ellos " +#~ "instantaneamente. Desafortunadamente, esta nueva característica cambia la " +#~ "forma en la que la aplicación guarda los colores, por consecuente sus " +#~ "anteriores ajustes de color se perderán después de instalar esta " +#~ "actualización." + +#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." +#~ msgstr "" +#~ "Se añadieron atajos de teclado para cambiar la mayoria de los ajustes." + +#~ msgid "Added option to show/hide window controls." +#~ msgstr "Se añadió la opción de mostrar/ocultar los controles de ventana." + +#~ msgid "" +#~ "Added option to autohide headerbar when the main window is not focused." +#~ msgstr "" +#~ "Se añadió la opción de ocultar la barra de título automáticamente cuando " +#~ "la ventana principal no está activa." + +#~ msgid "" +#~ "Added option to change roundness of items in \"levels\" and \"particles\" " +#~ "modes." +#~ msgstr "" +#~ "Se añadio la opción de cambiar la redondez de elementos en los modos " +#~ "\"niveles\" y \"partículas\"." + +#~ msgid "Import/Export Settings" +#~ msgstr "Importar/Exportar Ajustes" + +#~ msgid "Window size" +#~ msgstr "Tamaño de ventana" + +#~ msgid "Window maximized state" +#~ msgstr "Tamaño máximo de ventana" + +#~ msgid "Whether main window is maximized or not" +#~ msgstr "Si la ventana principal está maximizada o no" + +#~ msgid "Defines what the visualizer looks like." +#~ msgstr "Define como se ve el visualizador." + +#~ msgid "This setting only affects \"levels\" and \"particles\" modes." +#~ msgstr "Este ajuste solo afecta a los modos \"niveles\" y \"partículas\"." + +#~ msgid "Number of bars in CAVA config" +#~ msgstr "Numero de barras en la configuración de CAVA" + +#~ msgid "Mono or stereo" +#~ msgstr "Mono o estéreo" + +#~ msgid "Smoothing" +#~ msgstr "Suavizado" + +#~ msgid "Widgets style" +#~ msgstr "Estilo de los widgets" + +#~ msgid "Style used by Adwaita widgets." +#~ msgstr "Estilo usado por los widgets de Adwaita." + +#~ msgid "Index of active color profile" +#~ msgstr "Índice del perfil de color activo" + +#~ msgid "" +#~ "This setting only affects \"levels\" and \"particles\" modes.\n" +#~ "0 - square, 1 - round" +#~ msgstr "" +#~ "Este ajuste solo afecta los modos \"niveles\" y \"partículas\".\n" +#~ "0 - cuadrado, 1 - redondeado" + +#~ msgid "Import" +#~ msgstr "Importar" + +#~ msgid "Export" +#~ msgstr "Exportar" + +#~ msgid "0 - noisy, 1 - smooth" +#~ msgstr "0 - ruidoso, 1 - suave" + +#~ msgid "Type a name for a new profile" +#~ msgstr "Escriba un nombre para un nuevo perfil" + +#~ msgid "Remove profile" +#~ msgstr "Eliminar perfil" + +#~ msgid "Remove" +#~ msgstr "Eliminar" + +#~ msgid "Foreground" +#~ msgstr "Énfasis" + +#~ msgid "Background" +#~ msgstr "Fondo" + +#~ msgid "Select color" +#~ msgstr "Seleccionar color" + +#~ msgid "Remove color" +#~ msgstr "Eliminar color" + +#~ msgid "Add color" +#~ msgstr "Añadir color" + +#~ msgid "This name is already in use." +#~ msgstr "Este nombre ya está en uso." + +#~ msgid "Cavalier Settings File (*.cavalier)" +#~ msgstr "Archivo de Ajustes de Cavalier (*.cavalier)" + +#~ msgid "Export Settings" +#~ msgstr "Exportar Ajustes" + +#~ msgid "Save" +#~ msgstr "Guardar" + +#~ msgid "Toggle Widgets Style" +#~ msgstr "Alternar Estilo de Widgets" diff --git a/resources/po/fi.po b/resources/po/fi.po new file mode 100644 index 0000000..4907d5a --- /dev/null +++ b/resources/po/fi.po @@ -0,0 +1,696 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2025-02-04 13:02+0000\n" +"Last-Translator: Ricky Tigg \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Visualisoi ääntä CAVA:lla" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Matrix-keskustelu" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Avustajat GitHubissa ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Jiri Grönroos" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Oletus" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Asetukset" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Pikanäppäimet" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Tietoja - Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Päävalikko" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Visualisoi ääntä CAVA:lla" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier kuuntelee järjestelmän tuottamia ääniä. Toista musiikkia tai katso " +"video, ja näe, kuinka ääni herää eloon!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Vaalea" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Tumma" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Piirtotila" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "Piirtotila" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Laatikko" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Ympyrä" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Piirtotila" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Aalto" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Tasot" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Partikkelit" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Palkit" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Piikki" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Piirtosuunta" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Ylhäältä alas" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Alhaalta ylös" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Vasemmalta oikealle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Oikealta vasemmalle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Vaihda peilitilaa" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Pois" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Täysi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Jaa kanavat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Jaa kanavat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Piirtoalueen reunus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Piirtoalueen X-siirtymä" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Piirtoalueen Y-siirtymä" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +msgid "Item Roundness" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Kanavat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Kuvanopeus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Palkkien määrä" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Käänteinen järjestys" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +msgid "Automatic Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +msgid "Manual Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +msgid "Monstercat Smoothing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +msgid "Noise Reduction Factor" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Värit" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Lisää profiili" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Lisää" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Poista profiili" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +#, fuzzy +msgid "Images" +msgstr "Kuva" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Vaihda taustakuva" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Lisää kuva" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Sovellus" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Sovellus" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Lopeta" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "GitHub-tietovarasto" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Poista profiili" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Haluatko varmasti poistaa profiilin \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Vaihda taustakuva" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Poista profiili" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Haluatko varmasti poistaa profiilin \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Kanavat" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Tasot" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Kierto" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Vaalea" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Tumma" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Vaihda väriprofiilia" + +#~ msgid "Add New Profile" +#~ msgstr "Lisää uusi profiili" + +#~ msgid "Cancel" +#~ msgstr "Peru" + +#~ msgid "Delete" +#~ msgstr "Poista" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG- ja PNG-kuvat" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "" +#~ "Uusi väriprofiili tulee olemaan kopio nykyisestä aktiivisesta profiilista." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Päällä" + +#~ msgid "Profile Name" +#~ msgstr "Profiilin nimi" + +#~ msgid "Select an image" +#~ msgstr "Valitse kuva" + +#~ msgid "Let's dance!" +#~ msgstr "Tanssitaan!" + +#~ msgid "Radius" +#~ msgstr "Säde" + +#~ msgid "Mirror" +#~ msgstr "Peili" + +#~ msgid "Reverse mirror" +#~ msgstr "Käänteinen peili" + +#~ msgid "Offset between items" +#~ msgstr "Siirtymä kohteiden välillä" + +#~ msgid "Filling" +#~ msgstr "Täyttö" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Ovatko muodot täytettyjä vai reunustettuja." + +#~ msgid "Thickness of lines" +#~ msgstr "Viivojen paksuus" + +#~ msgid "Borderless window" +#~ msgstr "Reunaton ikkuna" + +#~ msgid "Sharp corners" +#~ msgstr "Terävät kulmat" + +#~ msgid "Window controls" +#~ msgstr "Ikkunasäätimet" + +#~ msgid "Autohide headerbar" +#~ msgstr "Piilota otsakepalkki automaattisesti" + +#, fuzzy +#~ msgid "Custom Framerate" +#~ msgstr "Kuvanopeus" + +#~ msgid "Application Theme" +#~ msgstr "Sovelluksen teema" + +#~ msgid "Foreground Colors" +#~ msgstr "Edustavärit" + +#, fuzzy +#~ msgid "Add foreground color" +#~ msgstr "Edustavärit" + +#~ msgid "Background Colors" +#~ msgstr "Taustavärit" + +#, fuzzy +#~ msgid "Add background color" +#~ msgstr "Taustavärit" + +#, fuzzy +#~ msgid "Background" +#~ msgstr "Taustavärit" + +#, fuzzy +#~ msgid "Foreground" +#~ msgstr "Edustavärit" + +#, fuzzy +#~ msgid "No Images" +#~ msgstr "Ei kuvaa" + +#~ msgid "No Image" +#~ msgstr "Ei kuvaa" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Vaihda piirtotilaa" + +#, fuzzy +#~ msgid "Change radius in Circle modes" +#~ msgstr "Vaihda piirtotilaa" + +#, fuzzy +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Vaihda piirtotilaa" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Vaihda piirtoalueen reunusta" + +#, fuzzy +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Vaihda piirtoalueen reunusta" + +#, fuzzy +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Vaihda piirtoalueen reunusta" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Vaihda piirtosuuntaa" + +#~ msgid "Other" +#~ msgstr "Muut" + +#, fuzzy +#~ msgid "Change Background Image Scale" +#~ msgstr "Vaihda taustakuva" + +#, fuzzy +#~ msgid "Change Background Image Alpha" +#~ msgstr "Vaihda taustakuva" + +#, fuzzy +#~ msgid "Change Foreground Image" +#~ msgstr "Vaihda taustakuva" + +#, fuzzy +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Vaihda taustakuva" + +#, fuzzy +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Vaihda taustakuva" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Koko näyttö päälle/pois" + +#~ msgid "Resizing..." +#~ msgstr "Asetetaan uutta kokoa..." + +#~ msgid "11 drawing modes!" +#~ msgstr "11 piirtotilaa!" + +#, csharp-format +#~ msgid "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Contributors on GitHub ❤️ {2}" +#~ msgstr "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Avustajat GitHubissa ❤️ {2}" diff --git a/resources/po/fr.po b/resources/po/fr.po new file mode 100644 index 0000000..43b9b8f --- /dev/null +++ b/resources/po/fr.po @@ -0,0 +1,950 @@ +# French translation for the cavalier's package. +# Copyright (C) 2022 Fyodor Sobolev +# This file is distributed under the same license as the cavalier package. +# Irénée Thirion , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: cavalier\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2025-01-24 10:02+0000\n" +"Last-Translator: AFCMS \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.10-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Visualisez de l’audio avec CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Discussion Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Contributeurs sur GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Irénée Thirion" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Par défaut" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Mise à l’échelle" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Transparence" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Préférences" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Raccourcis clavier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "À propos de Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Menu principal" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Visualisez de l’audio avec CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier écoute le son de votre système. Jouez de la musique ou une vidéo " +"pour le voir prendre vie !" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Clair" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Sombre" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Mode de dessin" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "Mode de dessin" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Boîte" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Cercle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Mode de dessin" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Ondulations" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Niveaux" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Particules" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Barres" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Colonne vertébrale" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Séparateur" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Cœurs" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Direction du dessin" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "De haut en bas" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "De bas en haut" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "De gauche à droite" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "De droite à gauche" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Changer le mode du miroir" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Désactivé" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Intégral" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Séparer les canaux" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Séparer les canaux" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Marge autour de l’aire de dessin" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Marge autour de l’aire de dessin X" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Marge autour de l’aire de dessin Y" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Modifier la rondeur des éléments" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Canaux" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stéréo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Fréquence" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Nombre de barres" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Inverser l’ordre" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Sensibilité automatique" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Essayer de diminuer la sensibilité si les barres atteignent un pic." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Sensibilité" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Lissage Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Réduction de bruit" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Couleurs" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Ajouter un profil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Ajouter" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Supprimer le profil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Images" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Changer l’image d’arrière-plan" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Ajouter une image" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Application" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Application" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Quitter" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Dépôt GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Supprimer le profil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Êtes-vous sûr⋅e de vouloir supprimer le profil « {0} » ?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Changer l’image d’arrière-plan" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Supprimer le profil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Êtes-vous sûr⋅e de vouloir supprimer le profil « {0} » ?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "À propos" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Canaux" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Niveaux" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Rotation" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +#, fuzzy +msgid "File" +msgstr "Tous les fichiers" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +#, fuzzy +msgid "Settings" +msgstr "Paramètres d’importation" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Clair" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Sombre" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Changer le profil de couleur" + +#~ msgid "Add New Profile" +#~ msgstr "Ajouter un nouveau profil" + +#~ msgid "Cancel" +#~ msgstr "Annuler" + +#~ msgid "Delete" +#~ msgstr "Supprimer" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Images JPEG et PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Le nouveau profil de couleur sera une copie du profil actif actuel." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Activé" + +#~ msgid "Profile Name" +#~ msgstr "Nom du profil" + +#~ msgid "Select an image" +#~ msgstr "Sélectionnez une image" + +#~ msgid "Command Help" +#~ msgstr "Aide de commande" + +#~ msgid "Let's dance!" +#~ msgstr "Dansons !" + +#~ msgid "Radius" +#~ msgstr "Rayon" + +#~ msgid "Mirror" +#~ msgstr "Miroir" + +#~ msgid "Reverse mirror" +#~ msgstr "Miroir inversé" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Espace (en pixels) laissé autour de l’aire dessinée." + +#~ msgid "Offset between items" +#~ msgstr "Espace entre les éléments" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Taille des espaces entre les éléments (en pourcentages)." + +#~ msgid "Roundness of items" +#~ msgstr "Rondeur des éléments" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Ajuste la rondeur des éléments (en pourcentages)." + +#~ msgid "Filling" +#~ msgstr "Remplissage" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Indique si les formes devraient être remplies délimitées." + +#~ msgid "Thickness of lines" +#~ msgstr "Épaisseur des lignes" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "" +#~ "Épaisseur des lignes quand le remplissage est désactivé (en pixels)." + +#~ msgid "Borderless window" +#~ msgstr "Fenêtre sans bordures" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Indique s’il faut désactiver l’ombre et les bordures de la fenêtre." + +#~ msgid "Sharp corners" +#~ msgstr "Angles saillants" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "" +#~ "Indique si les angles de la fenêtre principale doivent être saillants." + +#~ msgid "Window controls" +#~ msgstr "Contrôles de la fenêtre" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Indique s’il faut afficher les boutons de contrôle de la fenêtre." + +#~ msgid "Autohide headerbar" +#~ msgstr "Masquer automatiquement la barre supérieure" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Indique s’il faut masquer la barre supérieure lorsque la fenêtre n’est " +#~ "pas focalisée." + +#~ msgid "Number of frames per second." +#~ msgstr "Nombre d’images par secondes." + +#~ msgid "Custom" +#~ msgstr "Personnalisé" + +#~ msgid "Custom Framerate" +#~ msgstr "Fréquence personnalisée" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Sensibilité définie manuellement. Si la sensibilité automatique est " +#~ "activée, ce sera la valeur initiale." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Indique s’il faut activer le « lissage Monstercat »." + +#~ msgid "Noise reduction" +#~ msgstr "Réduction de bruit" + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Ce facteur ajuste les filtres de gravité et d’intégrale pour garder un " +#~ "signal lisse.\n" +#~ "Plus la valeur est élevée, plus le rendu sera lent et lisse." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Indique s’il faut inverser l’ordre des barres pour chaque canal." + +#~ msgid "Application Theme" +#~ msgstr "Thème de l’application" + +#~ msgid "Foreground Colors" +#~ msgstr "Couleurs de premier-plan" + +#~ msgid "Add foreground color" +#~ msgstr "Ajouter une couleur de premier-plan" + +#~ msgid "Background Colors" +#~ msgstr "Couleurs d’arrière-plan" + +#~ msgid "Add background color" +#~ msgstr "Ajouter une couleur d’arrière-plan" + +#~ msgid "Background" +#~ msgstr "Arrière-plan" + +#~ msgid "Foreground" +#~ msgstr "Premier-plan" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "L'image de premier-plan est visible uniquement en mode boîte." + +#~ msgid "No Images" +#~ msgstr "Aucune images" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Ajoutez une image pour l'utiliser dans Cavalier." + +#~ msgid "No Image" +#~ msgstr "Aucune image" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Changer le mode de dessin" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Changer le rayon dans le mode Cercle" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Changer la rotation dans le mode Cercle" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Basculer le miroir d’inversion" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Modifier la marge autour de l’aire de dessin" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Modifier la marge autour de l’aire de dessin X" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Modifier la marge autour de l’aire de dessin Y" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Changer la direction du dessin" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Modifier l’espace entre les éléments" + +#~ msgid "Toggle Filling" +#~ msgstr "Activer/désactiver le remplissage" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Modifier l’épaisseur des lignes" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Afficher/masquer les bordures de la fenêtre" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Activer / désactiver les angles saillants" + +#~ msgid "Change Number of Bars" +#~ msgstr "Changer le nombre de barres" + +#~ msgid "Toggle Channels" +#~ msgstr "Changer le canal" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Basculer l’inversion de l’ordre" + +#~ msgid "Other" +#~ msgstr "Autre" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Modifier l'échelle de l'image d'arrière-plan" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Modifier la transparence de l'image d'arrière-plan" + +#~ msgid "Change Foreground Image" +#~ msgstr "Changer l’image de premier-plan" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Changer l’échelle de l’image de premier-plan" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Changer la transparence de l’image d’arrière-plan" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Basculer en plein écran" + +#~ msgid "Resizing..." +#~ msgstr "Redimensionnement…" + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier est un visualiseur audio basé sur CAVA avec une interface " +#~ "personnalisable." + +#~ msgid "11 drawing modes!" +#~ msgstr "11 modes de dessin !" + +#, fuzzy +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Définissez une couleur ou un dégradé pour l’arrière-plan et le premier-" +#~ "plan." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "" +#~ "Configurez le lissage, la réduction du bruit et d’autres paramètres CAVA." + +#, csharp-format +#~ msgid "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Contributors on GitHub ❤️ {2}" +#~ msgstr "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Contributeurs sur GitHub ❤️ {2}" + +#~ msgid "Toggle Window Controls" +#~ msgstr "Afficher / masquer les contrôles de la fenêtre" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Masquage automatique de la barre supérieure" + +#~ msgid "Set any color or gradient for background and foreground." +#~ msgstr "" +#~ "Définissez une couleur ou un dégradé pour l’arrière-plan et le premier-" +#~ "plan." + +#, fuzzy +#~ msgid "Audio visualizer based on CAVA" +#~ msgstr "Visualiseur audio basé sur CAVA." + +#~ msgid "Audio Visualizer" +#~ msgstr "Visualiseur audio" + +#~ msgid "Second release of Cavalier." +#~ msgstr "Seconde version de Cavalier." + +#~ msgid "New drawing mode — Particles!" +#~ msgstr "Nouveau mode de dessin — Particules !" + +#~ msgid "" +#~ "Color profiles! Create as many as you want and change between them " +#~ "instantly. Unfortunately, this new feature required to change how the " +#~ "application saves colors, and because of this your previous colors " +#~ "settings will be lost after installing this update." +#~ msgstr "" +#~ "Profils de couleurs ! Créez-en autant que vous le souhaitez et basculez " +#~ "de l’un à l’autre instantanément. Malheureusement, cette nouvelle " +#~ "fonctionnalité requiert de modifier la façon dont l’application " +#~ "enregistre les couleurs, ce qui fera que vos paramètres de couleurs " +#~ "précédents seront perdus après cette mise à jour." + +#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." +#~ msgstr "" +#~ "Ajout de raccourcis clavier pour changer la plupart des paramètres à la " +#~ "volée." + +#~ msgid "Added option to show/hide window controls." +#~ msgstr "" +#~ "Ajout d’une option pour afficher ou masquer les boutons de contrôle de la " +#~ "fenêtre." + +#~ msgid "" +#~ "Added option to autohide headerbar when the main window is not focused." +#~ msgstr "" +#~ "Ajout d’une option pour masquer automatiquement la barre supérieure quand " +#~ "la fenêtre principale n’est pas focalisée." + +#~ msgid "" +#~ "Added option to change roundness of items in \"levels\" and \"particles\" " +#~ "modes." +#~ msgstr "" +#~ "Ajout d’une option permettant de modifier la rondeur des objets dans les " +#~ "modes « niveaux » et « particules »." + +#~ msgid "Import/Export Settings" +#~ msgstr "Paramètres d’importation / exportation" + +#~ msgid "Window size" +#~ msgstr "Taille de la fenêtre" + +#~ msgid "Window maximized state" +#~ msgstr "État maximisé de la fenêtre" + +#~ msgid "Whether main window is maximized or not" +#~ msgstr "Indique si la fenêtre principale est maximisée ou non" + +#~ msgid "Defines what the visualizer looks like." +#~ msgstr "Définit l’apparence du visualiseur." + +#~ msgid "This setting only affects \"levels\" and \"particles\" modes." +#~ msgstr "Ce paramètre n’affecte que les modes « niveaux » et « particules »." + +#~ msgid "Number of bars in CAVA config" +#~ msgstr "Nombre de barres dans la configuration CAVA" + +#~ msgid "Mono or stereo" +#~ msgstr "Mono ou stéréo" + +#~ msgid "Smoothing" +#~ msgstr "Lissage" + +#~ msgid "Widgets style" +#~ msgstr "Style des widgets" + +#~ msgid "Style used by Adwaita widgets." +#~ msgstr "Style des widgets Adwaita." + +#~ msgid "Index of active color profile" +#~ msgstr "Index des profils de couleur actifs" + +#~ msgid "" +#~ "This setting only affects \"levels\" and \"particles\" modes.\n" +#~ "0 - square, 1 - round" +#~ msgstr "" +#~ "Ce paramètre n’affecte que les modes « niveaux » et « particules ».\n" +#~ "0 - carré, 1 - rond" + +#~ msgid "Import" +#~ msgstr "Importer" + +#~ msgid "Export" +#~ msgstr "Exporter" + +#~ msgid "0 - noisy, 1 - smooth" +#~ msgstr "0 - bruyant, 1 - doux" + +#~ msgid "Type a name for a new profile" +#~ msgstr "Saisissez un nom pour le nouveau profil" + +#~ msgid "Remove profile" +#~ msgstr "Supprimer le profil" + +#~ msgid "Remove" +#~ msgstr "Supprimer" + +#~ msgid "Foreground" +#~ msgstr "Premier plan" + +#~ msgid "Background" +#~ msgstr "Arrière-plan" + +#~ msgid "Select color" +#~ msgstr "Sélectionner une couleur" + +#~ msgid "Remove color" +#~ msgstr "Supprimer la couleur" + +#~ msgid "Add color" +#~ msgstr "Ajouter une couleur" + +#~ msgid "This name is already in use." +#~ msgstr "Ce nom est déjà utilisé." + +#~ msgid "Cavalier Settings File (*.cavalier)" +#~ msgstr "Fichier de paramètres Cavalier (*.cavalier)" + +#~ msgid "Export Settings" +#~ msgstr "Paramètres d’exportation" + +#~ msgid "Save" +#~ msgstr "Enregistrer" + +#~ msgid "Toggle Widgets Style" +#~ msgstr "Changer les styles des widgets" diff --git a/resources/po/hi.po b/resources/po/hi.po new file mode 100644 index 0000000..c296565 --- /dev/null +++ b/resources/po/hi.po @@ -0,0 +1,762 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-07-07 17:09+0000\n" +"Last-Translator: Scrambled777 \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.7-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "CAVA के साथ ऑडियो विज़ुअलाइज़ करें" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "मैट्रिक्स चैट" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "GitHub पर योगदानकर्ता ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "फेडर सोबोलेव" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "डेविड लापशिन" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Scrambled777 " + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "तयशुदा" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "पैमाना" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "अल्फा" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "प्राथमिकताएं" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "कीबोर्ड शॉर्टकट" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Cavalier के बारे में" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "मुख्य मेनू" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "CAVA के साथ ऑडियो विज़ुअलाइज़ करें" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier आपके सिस्टम की ध्वनि सुनता है। कुछ संगीत बजाएं या वीडियो देखें और देखें कि आपकी " +"ध्वनि जीवंत हो गई है!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "हल्की" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "गहरी" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "ड्राइंग मोड" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "ड्राइंग मोड" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "बक्सा" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "वृत्त" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "ड्राइंग मोड" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "तरंग" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "स्तरों" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "कण" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "बार्स" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "स्पाइन" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "विभाजक" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "दिल" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "ड्राइंग दिशा" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "ऊपर से नीचे" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "नीचे से ऊपर" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "बाएं से दाएं" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "दाएं से बाएं" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "मिरर मोड बदलें" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "बंद" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "भरा हुआ" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "विभाजित चैनल" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "विभाजित चैनल" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "ड्राइंग क्षेत्र मार्जिन" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "ड्राइंग क्षेत्र X ऑफसेट" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "ड्राइंग क्षेत्र Y ऑफसेट" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "वस्तुओं की गोलाई बदलें" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "चैनल्स" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "मोनो" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "स्टीरियो" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "फ्रेम रेट" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "बारों की संख्या" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "उलटा क्रम" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "स्वचालित संवेदनशीलता" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "यदि बार्स चरम पर हों तो संवेदनशीलता कम करने का प्रयास करें।" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "संवेदनशीलता" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Monstercat स्मूथिंग" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "शोर में कमी" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "रंग" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "प्रोफाइल जोड़ें" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "जोड़ें" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "प्रोफाइल मिटाएं" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "छवियां" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "पृष्ठभूमि छवि बदलें" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "छवि जोड़ें" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "आवेदन" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "आवेदन" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "बंद करें" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "GitHub रेपो" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "प्रोफाइल मिटाएं" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "क्या आप वाकई प्रोफाइल \"{0}\" को मिटाना चाहते हैं?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "पृष्ठभूमि छवि बदलें" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "प्रोफाइल मिटाएं" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "क्या आप वाकई प्रोफाइल \"{0}\" को मिटाना चाहते हैं?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "चैनल्स" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "स्तरों" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "घूर्णन" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "हल्की" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "गहरी" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "प्रोफाइल का रंग बदलें" + +#~ msgid "Add New Profile" +#~ msgstr "नई प्रोफाइल जोड़ें" + +#~ msgid "Cancel" +#~ msgstr "रद्द करें" + +#~ msgid "Delete" +#~ msgstr "मिटाएं" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG और PNG छवियां" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "नई रंगीन प्रोफाइल वर्तमान सक्रिय प्रोफाइल की एक प्रति होगी।" + +#~ msgid "Nicholas Logozzo" +#~ msgstr "निकोलस लोगोज़ो" + +#~ msgid "On" +#~ msgstr "चालू" + +#~ msgid "Profile Name" +#~ msgstr "प्रोफाइल नाम" + +#~ msgid "Select an image" +#~ msgstr "एक छवि चुनें" + +#~ msgid "Command Help" +#~ msgstr "आदेश सहायता" + +#~ msgid "Let's dance!" +#~ msgstr "आओ नाचें!" + +#~ msgid "Radius" +#~ msgstr "त्रिज्या" + +#~ msgid "Mirror" +#~ msgstr "दर्पण" + +#~ msgid "Reverse mirror" +#~ msgstr "उलटा दर्पण" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "ड्राइंग क्षेत्र के चारों ओर अंतराल का आकार (पिक्सेल में)।" + +#~ msgid "Offset between items" +#~ msgstr "वस्तुओं के बीच ऑफसेट" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "तत्वों के बीच रिक्त स्थान का आकार (प्रतिशत में)।" + +#~ msgid "Roundness of items" +#~ msgstr "वस्तुओं की गोलाई" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "तत्व कितने गोलाकार होने चाहिए (प्रतिशत में)।" + +#~ msgid "Filling" +#~ msgstr "भराव" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "क्या आकृतियां भरी जानी चाहिए या रेखांकित की जानी चाहिए।" + +#~ msgid "Thickness of lines" +#~ msgstr "रेखाओं की मोटाई" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "भरना बंद होने पर लाइनों की मोटाई (पिक्सेल में)।" + +#~ msgid "Borderless window" +#~ msgstr "सीमाहीन खिड़की" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "विंडो शैडो और बॉर्डर को अक्षम करना है या नहीं।" + +#~ msgid "Sharp corners" +#~ msgstr "नुकीले कोने" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "मुख्य खिड़की के कोने नुकीले होने चाहिए या नहीं।" + +#~ msgid "Window controls" +#~ msgstr "विंडो नियंत्रण" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "विंडो नियंत्रण बटन दिखाना है या नहीं।" + +#~ msgid "Autohide headerbar" +#~ msgstr "शीर्षलेख पट्टी को स्वतः छिपाएं" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "मुख्य विंडो फोकस न होने पर शीर्षलेख पट्टी छिपाना है या नहीं।" + +#~ msgid "Number of frames per second." +#~ msgstr "प्रति सेकंड फ़्रेम की संख्या।" + +#~ msgid "Custom" +#~ msgstr "तदनुकूल" + +#~ msgid "Custom Framerate" +#~ msgstr "तदनुकूल फ़्रेमरेट" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "मैनुअल संवेदनशीलता. यदि स्वचालित संवेदनशीलता सक्षम है, तो यह केवल प्रारंभिक मान होगा।" + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "क्या तथाकथित «Monstercat स्मूथिंग» को सक्षम करना है।" + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "यह कारक सिग्नल को सुचारू रखने के लिए इंटीग्रल और ग्रेविटी फिल्टर को समायोजित करता " +#~ "है।\n" +#~ "उच्च मूल्य से धीमा और सहज परिणाम प्राप्त होता है।" + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "क्या प्रत्येक चैनल के लिए बार के क्रम को उलटना है।" + +#~ msgid "Application Theme" +#~ msgstr "अनुप्रयोग थीम" + +#~ msgid "Foreground Colors" +#~ msgstr "अग्रभूमि रंग" + +#~ msgid "Add foreground color" +#~ msgstr "अग्रभूमि रंग जोड़ें" + +#~ msgid "Background Colors" +#~ msgstr "पृष्ठभूमि रंग" + +#~ msgid "Add background color" +#~ msgstr "पृष्ठभूमि रंग जोड़ें" + +#~ msgid "Background" +#~ msgstr "पृष्ठभूमि" + +#~ msgid "Foreground" +#~ msgstr "अग्रभूमि" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "अग्रभूमि छवि केवल बॉक्स ड्राइंग मोड के साथ दिखाई जाती है।" + +#~ msgid "No Images" +#~ msgstr "कोई छवियां नहीं" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Cavalier में इसका उपयोग करने के लिए एक छवि जोड़ें।" + +#~ msgid "No Image" +#~ msgstr "कोई छवियां नहीं" + +#~ msgid "Change Drawing Mode" +#~ msgstr "ड्राइंग मोड बदलें" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "सर्कल मोड में त्रिज्या बदलें" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "सर्कल मोड में रोटेशन बदलें" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "उल्टा दर्पण टॉगल करें" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "ड्राइंग एरिया मार्जिन बदलें" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "ड्राइंग एरिया X ऑफसेट बदलें" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "ड्राइंग एरिया Y ऑफसेट बदलें" + +#~ msgid "Change Drawing Direction" +#~ msgstr "ड्राइंग की दिशा बदलें" + +#~ msgid "Change Offset Between Items" +#~ msgstr "वस्तुओं के बीच ऑफसेट बदलें" + +#~ msgid "Toggle Filling" +#~ msgstr "भरना टॉगल करें" + +#~ msgid "Change Lines Thickness" +#~ msgstr "लाइनों की मोटाई बदलें" + +#~ msgid "Toggle Window Borders" +#~ msgstr "विंडो बॉर्डर टॉगल करें" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "नुकीले कोनों को टॉगल करें" + +#~ msgid "Change Number of Bars" +#~ msgstr "बार्स की संख्या बदलें" + +#~ msgid "Toggle Channels" +#~ msgstr "चैनल टॉगल करें" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "रिवर्स ऑर्डर टॉगल करें" + +#~ msgid "Other" +#~ msgstr "अन्य" + +#~ msgid "Change Background Image Scale" +#~ msgstr "पृष्ठभूमि छवि स्केल बदलें" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "पृष्ठभूमि छवि अल्फा बदलें" + +#~ msgid "Change Foreground Image" +#~ msgstr "अग्रभूमि छवि बदलें" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "अग्रभूमि छवि स्केल बदलें" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "अग्रभूमि छवि अल्फा बदलें" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "संपूर्ण स्क्रीन टॉगल करें" + +#~ msgid "Resizing..." +#~ msgstr "आकार बदल रहा है…" diff --git a/resources/po/ia.po b/resources/po/ia.po new file mode 100644 index 0000000..073ad3a --- /dev/null +++ b/resources/po/ia.po @@ -0,0 +1,484 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +msgid "Contributors on GitHub" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +msgid "Visualize Your Audio" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +msgid "Drawing Area" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +msgid "Drawing Shape" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +msgid "Drawing Direction" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Top to Bottom" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Bottom to Top" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Left to Right" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Right to Left" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +msgid "Mirror Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +msgid "Area Margin" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +msgid "Area X Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +msgid "Area Y Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +msgid "Item Roundness" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +msgid "Cava" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +msgid "Number of Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +msgid "Reverse Bar Order" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +msgid "Automatic Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +msgid "Manual Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +msgid "Monstercat Smoothing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +msgid "Noise Reduction Factor" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +msgid "Profiles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +msgid "Active Profile" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +msgid "Background Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +msgid "Active Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +msgid "About Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Delete Profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Are you sure you want to delete this profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +msgid "Select Background Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Delete Image?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Are you sure you want to delete this image?" +msgstr "" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +msgid "Changelog" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +msgid "Developers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +msgid "Notification" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier (Preview)" +msgstr "" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" diff --git a/resources/po/it.po b/resources/po/it.po new file mode 100644 index 0000000..a7b03d2 --- /dev/null +++ b/resources/po/it.po @@ -0,0 +1,957 @@ +# ITALIAN TRANSLATION FOR CAVALIER +# Copyright (C) 2022 Fyodor Sobolev +# This file is distributed under the same license as the PACKAGE package. +# ALBANO BATTISTELLA , 2022,2023. +# +msgid "" +msgstr "" +"Project-Id-Version: cavalier\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2023-09-12 17:35+0000\n" +"Last-Translator: Davide \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.0.1-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Visualizza l'audio con CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Chat Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "I contributori su GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Albano Battistella" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Predefinito" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Scala" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Alfa" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Preferenze" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Scorciatoie da tastiera" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Informazioni su Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Menù principale" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Visualizza l'audio con CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier ascolta il suono del tuo sistema. Riproduci un po' di musica o " +"guarda un video e guarda il tuo suono prendere vita!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Chiaro" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Scuro" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Modalità disegno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "Modalità disegno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Scatola" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Cerchio" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Modalità disegno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Onda" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Livelli" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Particelle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Barre" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Colonna" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Separatore" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Cuori" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Direzione del disegno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Dall'alto verso il basso" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Dal basso verso l'alto" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Da sinistra a destra" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Da destra a sinistra" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Cambia modalità specchio" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Spento" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Pieno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Dividi canali" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Dividi canali" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Margine dell'area di disegno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Scostamento orizzontale dell'area di disegno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Scostamento verticale dell'area di disegno" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Cambia la rotondità degli elementi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Canali" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Frequenza dei fotogrammi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Numero di barre" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Inverti ordine" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Sensibilità automatica" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Tenta di ridurre la sensibilità se le barre raggiungono il picco." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Sensibilità" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Levigatura Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Riduzione del rumore" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Colori" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Aggiungi profilo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Aggiungi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Elimina profilo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Immagini" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Cambia immagine di sfondo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Aggiungi immagine" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Applicazione" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Applicazione" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Esci" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Repo GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Elimina profilo" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Sei sicuro di voler rimuovere il profilo \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Cambia immagine di sfondo" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Elimina profilo" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Sei sicuro di voler rimuovere il profilo \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "Informazioni" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Canali" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Livelli" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Rotazione" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +#, fuzzy +msgid "File" +msgstr "Tutti i file" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +#, fuzzy +msgid "Settings" +msgstr "Impostazioni di importazione" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Chiaro" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Scuro" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Cambia profilo colore" + +#~ msgid "Add New Profile" +#~ msgstr "Aggiungi nuovo profilo" + +#~ msgid "Cancel" +#~ msgstr "Annulla" + +#~ msgid "Delete" +#~ msgstr "Elimina" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Immagini JPEG e PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Il nuovo profilo colore sarà una copia del profilo attivo corrente." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Acceso" + +#~ msgid "Profile Name" +#~ msgstr "Nome profilo" + +#~ msgid "Select an image" +#~ msgstr "Selezionare un'immagine" + +#~ msgid "Command Help" +#~ msgstr "Aiuto per i comandi" + +#~ msgid "Let's dance!" +#~ msgstr "Balliamo!" + +#~ msgid "Radius" +#~ msgstr "Raggio" + +#~ msgid "Mirror" +#~ msgstr "Specchio" + +#~ msgid "Reverse mirror" +#~ msgstr "Specchio rovesciato" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Dimensione degli spazi attorno all'area di disegno (in pixel)." + +#~ msgid "Offset between items" +#~ msgstr "Scostamento tra gli elementi" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "La dimensione degli spazi tra gli elementi (in percentuale)." + +#~ msgid "Roundness of items" +#~ msgstr "Rotondità degli oggetti" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Quanto dovrebbero essere arrotondati gli elementi (in percentuale)." + +#~ msgid "Filling" +#~ msgstr "Riempimento" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Se le forme devono essere riempite o delineate." + +#~ msgid "Thickness of lines" +#~ msgstr "Spessore delle linee" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "" +#~ "Spessore delle linee quando il riempimento è disattivato (in pixel)." + +#~ msgid "Borderless window" +#~ msgstr "Finestra senza bordi" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Se disabilitare l'ombreggiatura e i bordi della finestra." + +#~ msgid "Sharp corners" +#~ msgstr "Angoli acuti" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Se gli angoli della finestra principale devono essere nitidi." + +#~ msgid "Window controls" +#~ msgstr "Controlli finestra" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Se mostrare i pulsanti di controllo della finestra." + +#~ msgid "Autohide headerbar" +#~ msgstr "Nascondi automaticamente barra di intestazione" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Se nascondere la barra di intestazione quando la finestra principale non " +#~ "è focalizzata." + +#~ msgid "Number of frames per second." +#~ msgstr "Numero di fotogrammi al secondo." + +#~ msgid "Custom" +#~ msgstr "Personalizzato" + +#~ msgid "Custom Framerate" +#~ msgstr "Frequenza fotogrammi personalizzata" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Sensibilità manuale. Se la sensibilità automatica è abilitata, questo " +#~ "verrà usato come valore iniziale." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Se abilitare la cosiddetta «Levigatura Monstercat»." + +#~ msgid "Noise reduction" +#~ msgstr "Riduzione del rumore" + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Questo fattore regola i filtri integrale e gravitazionale per mantenere " +#~ "il segnale uniforme.\n" +#~ "Un valore più alto porta a un risultato più lento e uniforme." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Se invertire l'ordine delle barre per ciascun canale." + +#~ msgid "Application Theme" +#~ msgstr "Tema dell'applicazione" + +#~ msgid "Foreground Colors" +#~ msgstr "Colori in primo piano" + +#~ msgid "Add foreground color" +#~ msgstr "Aggiungi colore in primo piano" + +#~ msgid "Background Colors" +#~ msgstr "Colori di sfondo" + +#~ msgid "Add background color" +#~ msgstr "Aggiungi colore di sfondo" + +#~ msgid "Background" +#~ msgstr "Sfondo" + +#~ msgid "Foreground" +#~ msgstr "Primo piano" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "" +#~ "L'immagine in primo piano è mostrata solo con la modalità di disegno " +#~ "Scatola." + +#~ msgid "No Images" +#~ msgstr "Nessuna immagine" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Aggiungere un'immagine per usarla in Cavalier." + +#~ msgid "No Image" +#~ msgstr "Nessuna immagine" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Cambia modalità di disegno" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Cambia raggio nelle modalità Cerchio" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Cambia la rotazione nelle modalità cerchio" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Attiva/disattiva specchio inverso" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Modifica margine area di disegno" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Modifica lo scostamento orizzontale dell'area di disegno" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Modifica lo scostamento verticale dell'area di disegno" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Cambia la direzione del disegno" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Modifica lo scostamento tra gli elementi" + +#~ msgid "Toggle Filling" +#~ msgstr "Attiva/disattiva il riempimento" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Cambia lo spessore delle linee" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Attiva/disattiva i bordi della finestra" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Attiva/disattiva angoli acuti" + +#~ msgid "Change Number of Bars" +#~ msgstr "Cambia il numero di barre" + +#~ msgid "Toggle Channels" +#~ msgstr "Commuta il canale" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Attiva/disattiva l'ordine inverso" + +#~ msgid "Other" +#~ msgstr "Altro" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Cambia scala dell'immagine di sfondo" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Cambia alfa dell'immagine di sfondo" + +#~ msgid "Change Foreground Image" +#~ msgstr "Cambia immagine in primo piano" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Cambia scala dell'immagine in primo piano" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Cambia alfa dell'immagine in primo piano" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Attiva/disattiva schermo intero" + +#~ msgid "Resizing..." +#~ msgstr "Ridimensionamento..." + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier è un visualizzatore audio basato su CAVA con interfaccia " +#~ "personalizzabile." + +#~ msgid "11 drawing modes!" +#~ msgstr "11 modalità di disegno!" + +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Imposta qualsiasi colore, una sfumatura o un'immagine per lo sfondo e il " +#~ "primo piano." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "" +#~ "Configura il livellamento, la riduzione del rumore e alcune altre " +#~ "impostazioni CAVA." + +#~ msgid "Toggle Window Controls" +#~ msgstr "Attiva/disattiva i controlli della finestra" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Attiva/disattiva automaticamente la barra di intestazione" + +#, fuzzy +#~ msgid "Set any color or gradient for background and foreground." +#~ msgstr "" +#~ "Imposta un singolo colore o fino a 10 sfumature di colori per lo sfondo e " +#~ "il primo piano." + +#, fuzzy +#~ msgid "Audio visualizer based on CAVA" +#~ msgstr "Visualizzatore audio basato su CAVA." + +#~ msgid "Audio Visualizer" +#~ msgstr "Visualizzatore audio" + +#~ msgid "Second release of Cavalier." +#~ msgstr "Secondo rilascio di Cavalier." + +#~ msgid "New drawing mode — Particles!" +#~ msgstr "Nuova modalità di disegno — Particelle!" + +#~ msgid "" +#~ "Color profiles! Create as many as you want and change between them " +#~ "instantly. Unfortunately, this new feature required to change how the " +#~ "application saves colors, and because of this your previous colors " +#~ "settings will be lost after installing this update." +#~ msgstr "" +#~ "Profili colore! Creane quanti ne vuoi e cambia da uno " +#~ "all'altroall'istante. Sfortunatamente, questa nuova funzionalità " +#~ "richiedeva di modificare il modo in cui l'applicazione salva i colori e, " +#~ "per questo motivo, le impostazioni dei colori precedenti andranno perse " +#~ "dopo l'installazione di questo aggiornamento." + +#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." +#~ msgstr "" +#~ "Aggiunte scorciatoie da tastiera per modificare la maggior parte delle " +#~ "impostazioni al volo." + +#~ msgid "Added option to show/hide window controls." +#~ msgstr "" +#~ "Aggiunta opzione per mostrare/nascondere i controlli della finestra." + +#~ msgid "" +#~ "Added option to autohide headerbar when the main window is not focused." +#~ msgstr "" +#~ "Aggiunta opzione per nascondere automaticamente la barra " +#~ "dell'intestazione quando la finestra principale non è focalizzata." + +#~ msgid "" +#~ "Added option to change roundness of items in \"levels\" and \"particles\" " +#~ "modes." +#~ msgstr "" +#~ "Aggiunta opzione per modificare la rotondità degli elementi in " +#~ "\"livelli\" e modalità \"particelle\"." + +#~ msgid "Import/Export Settings" +#~ msgstr "Impostazioni di importazione/esportazione" + +#~ msgid "Window size" +#~ msgstr "Dimensione finestra" + +#~ msgid "Window maximized state" +#~ msgstr "Stato della finestra massimizzato" + +#~ msgid "Whether main window is maximized or not" +#~ msgstr "Se la finestra principale è massimizzata o meno" + +#~ msgid "Defines what the visualizer looks like." +#~ msgstr "Definisce l'aspetto del visualizzatore." + +#~ msgid "This setting only affects \"levels\" and \"particles\" modes." +#~ msgstr "" +#~ "Questa impostazione riguarda solo le modalità \"livelli\" e " +#~ "\"particelle\"." + +#~ msgid "Number of bars in CAVA config" +#~ msgstr "Numero di barre nella configurazione CAVA" + +#~ msgid "Mono or stereo" +#~ msgstr "Mono o stereo" + +#~ msgid "Smoothing" +#~ msgstr "Regolazione" + +#~ msgid "Widgets style" +#~ msgstr "Stile widget" + +#~ msgid "Style used by Adwaita widgets." +#~ msgstr "Stile utilizzato dai widget Adwaita." + +#~ msgid "Index of active color profile" +#~ msgstr "Indice del profilo colore attivo" + +#~ msgid "" +#~ "This setting only affects \"levels\" and \"particles\" modes.\n" +#~ "0 - square, 1 - round" +#~ msgstr "" +#~ "Questa impostazione riguarda solo le modalità \"livelli\" e " +#~ "\"particelle\".\n" +#~ "0 - quadrato, 1 - rotondo" + +#~ msgid "Import" +#~ msgstr "Importa" + +#~ msgid "Export" +#~ msgstr "Esporta" + +#~ msgid "0 - noisy, 1 - smooth" +#~ msgstr "0 - rumoroso, 1 - regolare" + +#~ msgid "Type a name for a new profile" +#~ msgstr "Digitare un nome per un nuovo profilo" + +#~ msgid "Remove profile" +#~ msgstr "Rimuovi profilo" + +#~ msgid "Remove" +#~ msgstr "Rimuovi" + +#~ msgid "Foreground" +#~ msgstr "In primo piano" + +#~ msgid "Background" +#~ msgstr "Sfondo" + +#~ msgid "Select color" +#~ msgstr "Seleziona colore" + +#~ msgid "Remove color" +#~ msgstr "Rimuovi colore" + +#~ msgid "Add color" +#~ msgstr "Aggiungi colore" + +#~ msgid "This name is already in use." +#~ msgstr "Questo nome è già in uso." + +#~ msgid "Cavalier Settings File (*.cavalier)" +#~ msgstr "File impostazioni di Cavalier (*.cavalier)" + +#~ msgid "Export Settings" +#~ msgstr "Impostazioni di esportazione" + +#~ msgid "Save" +#~ msgstr "Salva" + +#~ msgid "Toggle Widgets Style" +#~ msgstr "Attiva/disattiva lo stile dei widget" + +#~ msgid "" +#~ "3 drawing modes: weird Wave, retro-ish Levels and classic CAVA look - " +#~ "Bars!" +#~ msgstr "" +#~ "3 modalità di disegno: strana onda, livelli retrò e aspetto classico " +#~ "Barre - CAVA!" + +#~ msgid "The array of foregound colors (RGBA)." +#~ msgstr "La matrice dei colori di primo piano (RGBA)." + +#~ msgid "The array of background colors (RGBA)." +#~ msgstr "La matrice dei colori di sfondo (RGBA)." diff --git a/resources/po/nl.po b/resources/po/nl.po new file mode 100644 index 0000000..2a9c3be --- /dev/null +++ b/resources/po/nl.po @@ -0,0 +1,934 @@ +# Copyright (C) 2022 Fyodor Sobolev +# This file is distributed under the same license as the PACKAGE package. +# +# Heimen Stoffels , 2022. +msgid "" +msgstr "" +"Project-Id-Version: cavalier\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-02-18 12:02+0000\n" +"Last-Translator: Philip Goto \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.4\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Visualiseer audio m.b.v. CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Matrix-gesprek" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Bijdragers op GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Philip Goto https://philipgoto.nl/" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Standaard" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Schaal" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Alfa" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Voorkeuren" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Sneltoetsen" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Over Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Hoofdmenu" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Visualiseer audio m.b.v. CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Licht" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Donker" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Weergavemodus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "Weergavemodus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Doos" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Cirkel" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Weergavemodus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Golf" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Niveaus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Deeltjes" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Balken" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Wervel" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Splitter" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Harten" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Teken­richting" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Van boven naar onderen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Van onderen naar boven" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Van links naar rechts" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Van rechts naar links" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Spiegel­modus aanpassen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Uit" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Volledig" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Kanalen opsplitsen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Kanalen opsplitsen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Weergavemodusmarge" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "X-offset van teken­gebied" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Y-offset van teken­gebied" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Rondheid van items aanpassen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Kanalen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Beeld­frequentie" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Aantal balken" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Volgorde omdraaien" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Automatische gevoeligheid" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" +"Probeer de gevoeligheid te verlagen zodra het maximale aantal balken bereikt " +"is." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Gevoeligheidsgraad" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Monstercat-verzachting" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Ruisonderdrukking" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Kleuren" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Profiel toevoegen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Toevoegen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Profiel verwijderen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Afbeeldingen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Achtergrond­afbeelding wijzigen" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Afbeelding toevoegen" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "App" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "App" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Afsluiten" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "GitHub-repository" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Profiel verwijderen" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Weet u zeker dat u dit profiel wilt verwijderen?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Achtergrond­afbeelding wijzigen" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Profiel verwijderen" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Weet u zeker dat u dit profiel wilt verwijderen?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "Over" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Kanalen" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Niveaus" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Rotatie" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +#, fuzzy +msgid "File" +msgstr "Alle bestanden" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +#, fuzzy +msgid "Settings" +msgstr "Voorkeuren importeren" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Licht" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Donker" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Keuren­profiel wijzigen" + +#~ msgid "Add New Profile" +#~ msgstr "Nieuw profiel toevoegen" + +#~ msgid "Cancel" +#~ msgstr "Annuleren" + +#~ msgid "Delete" +#~ msgstr "Verwijderen" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG- en PNG-afbeeldingen" + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Aan" + +#~ msgid "Profile Name" +#~ msgstr "Profiel­naam" + +#~ msgid "Select an image" +#~ msgstr "Afbeelding selecteren" + +#~ msgid "Command Help" +#~ msgstr "Opdracht­hulp" + +#~ msgid "Let's dance!" +#~ msgstr "Tijd om te dansen!" + +#~ msgid "Radius" +#~ msgstr "Straal" + +#~ msgid "Mirror" +#~ msgstr "Spiegel" + +#~ msgid "Reverse mirror" +#~ msgstr "Spiegeling omkeren" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "De grootte van ruimtes om het weergavegebied heen (in pixels)." + +#~ msgid "Offset between items" +#~ msgstr "Verschuiving tussen items" + +#, fuzzy +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "" +#~ "De ruimte tussen elementen in niveau-, balk- en deeltjesmodi (in " +#~ "procenten)." + +#~ msgid "Roundness of items" +#~ msgstr "Rondheid van items" + +#~ msgid "Filling" +#~ msgstr "Vullend" + +#~ msgid "Thickness of lines" +#~ msgstr "Dikte van lijnen" + +#~ msgid "Borderless window" +#~ msgstr "Rand­loos venster" + +#, fuzzy +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Of de titelbalkknoppen getoond dienen te worden." + +#~ msgid "Sharp corners" +#~ msgstr "Scherpe hoeken" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Of het hoofdvenster scherpe hoeken dient te hebben." + +#~ msgid "Window controls" +#~ msgstr "Titelbalkknoppen" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Of de titelbalkknoppen getoond dienen te worden." + +#~ msgid "Autohide headerbar" +#~ msgstr "Kopbalk automatisch verbergen" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Of de kopbalk automatisch moet worden verborgen als het hoofdvenster niet " +#~ "gefocust is." + +#~ msgid "Number of frames per second." +#~ msgstr "Aantal beelden per seconde." + +#~ msgid "Custom" +#~ msgstr "Aangepast" + +#~ msgid "Custom Framerate" +#~ msgstr "Aangepaste beeld­frequentie" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "De handmatige gevoeligheidsgraad. Als de automatische modus is " +#~ "ingeschakeld, dan wordt dit als startwaarde gebruikt." + +#~ msgid "Noise reduction" +#~ msgstr "Ruisonderdrukking" + +#, fuzzy +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Deze factor bepaalt de zwaarte van de filters om het signaal vloeiend " +#~ "door te laten komen. 1 = erg zwaar, maar vloeiend - 0 = licht, maar met " +#~ "ruis." + +#, fuzzy +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Nieuw: optie om de volgorde van balken aan te passen." + +#~ msgid "Application Theme" +#~ msgstr "App-thema" + +#~ msgid "Foreground Colors" +#~ msgstr "Voorgrond­kleuren" + +#~ msgid "Add foreground color" +#~ msgstr "Voorgrond­kleur toevoegen" + +#~ msgid "Background Colors" +#~ msgstr "Achtergrond­kleuren" + +#~ msgid "Add background color" +#~ msgstr "Achtergrond­kleur toevoegen" + +#~ msgid "Background" +#~ msgstr "Achter­grond" + +#~ msgid "Foreground" +#~ msgstr "Voor­grond" + +#~ msgid "No Images" +#~ msgstr "Geen afbeeldingen" + +#~ msgid "No Image" +#~ msgstr "Geen afbeelding" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Weergavemodus aanpassen" + +#, fuzzy +#~ msgid "Change radius in Circle modes" +#~ msgstr "Weergavemodus aanpassen" + +#, fuzzy +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Weergavemodus aanpassen" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Omgekeerde spiegeling omschakelen" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Weergavemodusmarge aanpassen" + +#, fuzzy +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Weergavemodusmarge aanpassen" + +#, fuzzy +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Weergavemodusmarge aanpassen" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Teken­richting aanpassen" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Verschuiving tussen items aanpassen" + +#~ msgid "Toggle Filling" +#~ msgstr "Vulling omschakelen" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Lijn­dikte aanpassen" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Venster­randen omschakelen" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Scherpe hoeken aan/uit" + +#~ msgid "Change Number of Bars" +#~ msgstr "Aantal balken aanpassen" + +#~ msgid "Toggle Channels" +#~ msgstr "Aantal kanalen aanpassen" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Volgorde omdraaien aan/uit" + +#~ msgid "Other" +#~ msgstr "Anders" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Schaal van achtergrond­afbeelding wijzigen" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Alfa van achtergrond­afbeelding wijzigen" + +#~ msgid "Change Foreground Image" +#~ msgstr "Voorgrond­afbeelding wijzigen" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Schaal van voorgrond­afbeelding wijzigen" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Alfa van voorgrond­afbeelding wijzigen" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Volledig scherm omschakelen" + +#~ msgid "Resizing..." +#~ msgstr "Formaat wijzigen…" + +#, fuzzy +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier is een audiovisualisatietoepassing, gemaakt met LibAdwaita en " +#~ "gebaseerd op CAVA." + +#, fuzzy +#~ msgid "11 drawing modes!" +#~ msgstr "4 weergavemodi!" + +#, fuzzy +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Stel een of maximaal tien kleurverlopen in voor voor- en achtergrond." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "" +#~ "Stel vloeiendheid, ruisonderdrukking en enkele andere CAVA-voorkeuren in." + +#~ msgid "Toggle Window Controls" +#~ msgstr "Titelbalkknoppen tonen/verbergen" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Kopbalk automatisch verbergen aan/uit" + +#, fuzzy +#~ msgid "Set any color or gradient for background and foreground." +#~ msgstr "" +#~ "Stel een of maximaal tien kleurverlopen in voor voor- en achtergrond." + +#, fuzzy +#~ msgid "Audio visualizer based on CAVA" +#~ msgstr "Audiovisualisatie, gebaseerd op CAVA." + +#~ msgid "Audio Visualizer" +#~ msgstr "Audiovisualisatie" + +#~ msgid "Second release of Cavalier." +#~ msgstr "De tweede versie van Cavalier." + +#~ msgid "New drawing mode — Particles!" +#~ msgstr "Nieuwe weergavemodus: deeltjes!" + +#~ msgid "" +#~ "Color profiles! Create as many as you want and change between them " +#~ "instantly. Unfortunately, this new feature required to change how the " +#~ "application saves colors, and because of this your previous colors " +#~ "settings will be lost after installing this update." +#~ msgstr "" +#~ "Kleurenprofielen! Maak zo veel profielen als u wilt en wissel met één " +#~ "muisklik van profiel. Helaas moest hiervoor code worden aangepast, dus uw " +#~ "huidige kleurvoorkeuren worden door deze update gewist." + +#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." +#~ msgstr "Nieuw: sneltoetsen om de meeste voorkeuren aan te passen." + +#~ msgid "Added option to show/hide window controls." +#~ msgstr "Nieuw: optie om de titelbalkknoppen te tonen/verbergen." + +#~ msgid "" +#~ "Added option to autohide headerbar when the main window is not focused." +#~ msgstr "" +#~ "Nieuw: optie om de kopbalk te verbergen als het hoofdvenster niet " +#~ "gefocust is." + +#~ msgid "" +#~ "Added option to change roundness of items in \"levels\" and \"particles\" " +#~ "modes." +#~ msgstr "" +#~ "Nieuw: optie om de rondheid van items aan te passen in de niveau- en " +#~ "deeltjesmodi." + +#~ msgid "Import/Export Settings" +#~ msgstr "Voorkeuren ex-/importeren" + +#~ msgid "Window size" +#~ msgstr "Vensterafmetingen" + +#~ msgid "Window maximized state" +#~ msgstr "Venstermaximalisatie" + +#~ msgid "Whether main window is maximized or not" +#~ msgstr "Of het venster gemaximaliseerd moet worden." + +#~ msgid "Defines what the visualizer looks like." +#~ msgstr "Geef aan hoe de visualisatie er uit moet zien." + +#~ msgid "This setting only affects \"levels\" and \"particles\" modes." +#~ msgstr "" +#~ "Deze voorkeur is alleen van toepassing op de niveau- en deeltjesmodi." + +#~ msgid "Number of bars in CAVA config" +#~ msgstr "Het aantal CAVA-balken" + +#~ msgid "Mono or stereo" +#~ msgstr "Mono of stereo" + +#~ msgid "Smoothing" +#~ msgstr "Vloeiendheid" + +#~ msgid "Widgets style" +#~ msgstr "Itemstijl" + +#~ msgid "Style used by Adwaita widgets." +#~ msgstr "De door Adwaita gebruikte itemstijl." + +#~ msgid "Index of active color profile" +#~ msgstr "Index van actief profiel" + +#~ msgid "" +#~ "This setting only affects \"levels\" and \"particles\" modes.\n" +#~ "0 - square, 1 - round" +#~ msgstr "" +#~ "Deze voorkeur is alleen van toepassing op de niveau- en deeltjesmodi.\n" +#~ "0 = vierkant; 1 = rond" + +#~ msgid "Import" +#~ msgstr "Importeren" + +#~ msgid "Export" +#~ msgstr "Exporteren" + +#~ msgid "0 - noisy, 1 - smooth" +#~ msgstr "0 - ruis - 1 - vloeiend" + +#~ msgid "Type a name for a new profile" +#~ msgstr "Geef het nieuwe profiel een naam" + +#~ msgid "Remove profile" +#~ msgstr "Profiel verwijderen" + +#~ msgid "Remove" +#~ msgstr "Verwijderen" + +#~ msgid "Foreground" +#~ msgstr "Voorgrond" + +#~ msgid "Background" +#~ msgstr "Achtergrond" + +#~ msgid "Select color" +#~ msgstr "Kies een kleur" + +#~ msgid "Remove color" +#~ msgstr "Kleur verwijderen" + +#~ msgid "Add color" +#~ msgstr "Kleur toevoegen" + +#~ msgid "This name is already in use." +#~ msgstr "Deze naam is al in gebruik." + +#~ msgid "Cavalier Settings File (*.cavalier)" +#~ msgstr "Cavalier-voorkeurenbestand (*.cavalier)" + +#~ msgid "Export Settings" +#~ msgstr "Voorkeuren exporteren" + +#~ msgid "Save" +#~ msgstr "Opslaan" + +#~ msgid "Toggle Widgets Style" +#~ msgstr "Itemstijl aanpassen" + +#~ msgid "" +#~ "3 drawing modes: weird Wave, retro-ish Levels and classic CAVA look - " +#~ "Bars!" +#~ msgstr "" +#~ "Er zijn drie weergavemodi beschikbaar: dansende golf, retro-achtige " +#~ "volumeniveaubalken en klassieke CAVA-balken." + +#~ msgid "The array of foregound colors (RGBA)." +#~ msgstr "Het voorgrondkleurbereik (rgba)." + +#~ msgid "The array of background colors (RGBA)." +#~ msgstr "Het achtergrondkleurbereik (rgba)." diff --git a/resources/po/pl.po b/resources/po/pl.po new file mode 100644 index 0000000..b32938e --- /dev/null +++ b/resources/po/pl.po @@ -0,0 +1,484 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +msgid "Contributors on GitHub" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +msgid "Visualize Your Audio" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +msgid "Drawing Area" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +msgid "Drawing Shape" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +msgid "Drawing Direction" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Top to Bottom" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Bottom to Top" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Left to Right" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Right to Left" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +msgid "Mirror Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +msgid "Area Margin" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +msgid "Area X Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +msgid "Area Y Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +msgid "Item Roundness" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +msgid "Cava" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +msgid "Number of Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +msgid "Reverse Bar Order" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +msgid "Automatic Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +msgid "Manual Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +msgid "Monstercat Smoothing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +msgid "Noise Reduction Factor" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +msgid "Profiles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +msgid "Active Profile" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +msgid "Background Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +msgid "Active Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +msgid "About Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Delete Profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Are you sure you want to delete this profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +msgid "Select Background Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Delete Image?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Are you sure you want to delete this image?" +msgstr "" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +msgid "Changelog" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +msgid "Developers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +msgid "Notification" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier (Preview)" +msgstr "" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" diff --git a/resources/po/pt_BR.po b/resources/po/pt_BR.po new file mode 100644 index 0000000..a6824b4 --- /dev/null +++ b/resources/po/pt_BR.po @@ -0,0 +1,838 @@ +# Brazilian Portuguese translation for Cavalier +# Copyright (C) 2022 Fyodor Sobolev +# This file is distributed under the same license as the cavalier package. +# Wagner Costa Gottschald , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: cavalier\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-04-20 23:07+0000\n" +"Last-Translator: araujoviana \n" +"Language-Team: Portuguese (Brazil) \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.5-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Visualizador de Áudio baseado no CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Chat Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Contribuidores no GitHub❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "créditos-tradutor" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Padrão" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Escala" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Opacidade" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Preferências" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Atalhos de teclado" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +#, fuzzy +msgid "About Cavalier" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Menu Principal" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Visualizador de Áudio baseado no CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier escuta o som do seu sistema. Toque uma música ou assista a um vídeo " +"e veja o seu som ganhar vida!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Claro" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Escuro" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Modo de Desenho" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "Modo de Desenho" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Caixa" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Círculo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Modo de Desenho" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Onda" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Níveis" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Partículas" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Barras" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Espinha" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Separador" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Corações" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Ondas" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Cima para baixo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Baixo para cima" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Esquerda para direita" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Direita para esquerda" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Mudar Cores do perfil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Desligado" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Completo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Separar Canais" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Separar Canais" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Margem da área de desenho" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Offset X da área de desenho" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Offset Y da área de desenho" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Alterar Arredondamento dos Itens" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Canais" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Taxa de frames" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Número de barras" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Ordem reversa" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Sensibilidade automática" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Tentativa de diminuir a sensibilidade se as barras atingirem o pico." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Sensibilidade" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Suavização Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Redução de ruído" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Cores" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Adicione um novo perfil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Adicionar" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Remover perfil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Imagens" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Alterar Imagem de Fundo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Adicionar Imagem" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Aplicação" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Aplicação" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Sair" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Repositório GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Remover perfil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Tem certeza que deseja remover esse perfil \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Alterar Imagem de Fundo" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Remover perfil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Tem certeza que deseja remover esse perfil \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "Sobre" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Canais" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Níveis" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Rotação" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +#, fuzzy +msgid "File" +msgstr "Todos os arquivos" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +#, fuzzy +msgid "Settings" +msgstr "Importar configurações" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Claro" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Escuro" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Mudar Cores do perfil" + +#~ msgid "Add New Profile" +#~ msgstr "Adicionar um novo perfil" + +#~ msgid "Cancel" +#~ msgstr "Cancelar" + +#~ msgid "Delete" +#~ msgstr "Remover" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Imagens JPEG e PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Novo perfil de cor será uma cópia do perfil ativo atualmente." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#, fuzzy +#~ msgid "On" +#~ msgstr "Abrir" + +#, fuzzy +#~ msgid "Profile Name" +#~ msgstr "Perfil:" + +#~ msgid "Select an image" +#~ msgstr "Selecione uma imagem" + +#~ msgid "Command Help" +#~ msgstr "Comando de Ajuda" + +#~ msgid "Let's dance!" +#~ msgstr "Vamos dançar!" + +#~ msgid "Radius" +#~ msgstr "Raio" + +#~ msgid "Mirror" +#~ msgstr "Espelhamento" + +#~ msgid "Reverse mirror" +#~ msgstr "Espelhamento reverso" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Tamanho dos espaços ao redor da área de desenho (em pixels)." + +#~ msgid "Offset between items" +#~ msgstr "Offset entre itens" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "O tamanho do espaço entre elementos (em porcentagem)." + +#~ msgid "Roundness of items" +#~ msgstr "Arredondamento dos itens" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Quão arredondados os elementos devem ser (em porcentagem)." + +#~ msgid "Filling" +#~ msgstr "Preenchimento" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Se as formas devem ser preenchidas ou delineadas." + +#~ msgid "Thickness of lines" +#~ msgstr "Espessura das linhas" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "" +#~ "Espessura das linhas quando o preenchimento está desligado (em pixels)." + +#~ msgid "Borderless window" +#~ msgstr "Janela sem borda" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Se deve desabilitar sombra e bordas da janela." + +#~ msgid "Sharp corners" +#~ msgstr "Bordas afiadas" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Se os cantos da janela principal devem ser afiados." + +#~ msgid "Window controls" +#~ msgstr "Controles da janela" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Se deve mostrar os botões de controle da janela." + +#~ msgid "Autohide headerbar" +#~ msgstr "Autoesconder barra de cabeçalho" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Se deve ocultar a barra de cabeçalho quando a janela principal não está " +#~ "focada." + +#~ msgid "Number of frames per second." +#~ msgstr "Número de frames por segundo." + +#~ msgid "Custom" +#~ msgstr "Customizado" + +#~ msgid "Custom Framerate" +#~ msgstr "Taxa de frames customizável" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Sensibilidade manual. Se a sensibilidade automática estiver habilitada, " +#~ "isso será apenas o valor inicial." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Se deve habilitar a chamada «suavização Monstercat»." + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Este fator ajusta os filtros integral e de gravidade para manter o sinal " +#~ "suave.\n" +#~ "Um valor mais alto resulta em um resultado mais lento e mais suave." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Se deve inverter a ordem das barras para cada canal." + +#~ msgid "Application Theme" +#~ msgstr "Tema do aplicativo" + +#~ msgid "Foreground Colors" +#~ msgstr "Cores do primeiro plano" + +#, fuzzy +#~ msgid "Add foreground color" +#~ msgstr "Adicionar cor" + +#~ msgid "Background Colors" +#~ msgstr "Cores do plano de fundo" + +#, fuzzy +#~ msgid "Add background color" +#~ msgstr "Adicionar cor" + +#~ msgid "Background" +#~ msgstr "Plano de Fundo" + +#~ msgid "Foreground" +#~ msgstr "Primeiro plano" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "" +#~ "A imagem do primeiro plano só é mostrada com modos de desenho de caixa." + +#~ msgid "No Images" +#~ msgstr "Sem Imagens" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Adicione uma imagem para usar no Cavalier." + +#~ msgid "No Image" +#~ msgstr "Sem Imagem" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Alterar Modo de Desenho" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Alterar raio nos modos de Círculo" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Alterar rotação nos modos de Círculo" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Alterar Espelho Invertido" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Margem da onda" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Alterar Deslocamento X da Área de Desenho" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Alterar Deslocamento Y da Área de Desenho" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Alterar Direção do Desenho" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Alterar offset entre itens" + +#~ msgid "Toggle Filling" +#~ msgstr "Alterar Preenchimento" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Alterar Espessura das Linhas" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Alternar Bordas da Janela" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Alternar Bordas Afiadas" + +#~ msgid "Change Number of Bars" +#~ msgstr "Alterar número de Barras" + +#~ msgid "Toggle Channels" +#~ msgstr "Alternar Canais" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Alternar Ordem Reversa" + +#~ msgid "Other" +#~ msgstr "Outro" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Alterar Escala da Imagem de Fundo" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Alterar Opacidade da Imagem de Fundo" + +#~ msgid "Change Foreground Image" +#~ msgstr "Alterar Imagem do Primeiro Plano" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Alterar Escala da Imagem do Primeiro Plano" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Alterar Opacidade da Imagem do Primeiro Plano" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Alternar Tela Cheia" + +#~ msgid "Resizing..." +#~ msgstr "Redimensionando..." + +#, fuzzy +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier é um Visualizador de áudio baseado no CAVA com LibAdwaita " +#~ "customizável." + +#, fuzzy +#~ msgid "11 drawing modes!" +#~ msgstr "4 desenhos de ondas!" + +#, fuzzy +#~ msgid "Toggle Window Controls" +#~ msgstr "Controle de janela" + +#, fuzzy +#~ msgid "Audio visualizer based on CAVA" +#~ msgstr "Visualizador de Áudio baseado no CAVA." + +#~ msgid "Audio Visualizer" +#~ msgstr "Visualizador de Áudio" + +#~ msgid "Window size" +#~ msgstr "Tamanho da janela" + +#~ msgid "Window maximized state" +#~ msgstr "Janela no estado maximizado" + +#~ msgid "Mono or stereo" +#~ msgstr "Mono ou stereo" + +#~ msgid "Smoothing" +#~ msgstr "Suavidade na animação" + +#~ msgid "Import" +#~ msgstr "Importar" + +#~ msgid "Export" +#~ msgstr "Exportar" + +#~ msgid "Type a name for a new profile" +#~ msgstr "Tipos de nome para novos perfis" + +#~ msgid "Remove" +#~ msgstr "Remover" + +#~ msgid "Select color" +#~ msgstr "Selecione a cor" + +#~ msgid "Remove color" +#~ msgstr "Remover cor" + +#~ msgid "This name is already in use." +#~ msgstr "Este nome já esta em uso" + +#~ msgid "Cavalier Settings File (*.cavalier)" +#~ msgstr "Arquivo de configurações (*cavalier)" + +#~ msgid "Export Settings" +#~ msgstr "Exportar configurações" + +#~ msgid "Save" +#~ msgstr "Salvar" diff --git a/resources/po/ro.po b/resources/po/ro.po new file mode 100644 index 0000000..c408a4b --- /dev/null +++ b/resources/po/ro.po @@ -0,0 +1,767 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2025-01-11 09:00+0000\n" +"Last-Translator: EnderIce2 \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" +"X-Generator: Weblate 5.10-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Vizualizează sunetul cu CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Chat Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Contribuitori pe GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "translator-credits" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Implicit" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Scară" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Alfa" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Preferințe" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Scurtături Tastatură" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Despre Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Meniu Principal" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Vizualizează sunetul cu CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier ascultă sunetul sistemului tău. Redă niște muzică sau urmărește un " +"videoclip și vezi cum prinde viață sunetul!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Luminos" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Întunecat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Mod de desenare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "Mod de desenare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Cutie" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Cerc" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Mod de desenare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Val" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Nivele" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Particule" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Bare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Coloană" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Separator" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Inimi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Direcția de desenare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "De sus în jos" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "De jos în sus" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "De la stânga la dreapta" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "De la dreapta la stânga" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Schimbă Modul Oglindă" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Dezactivat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Plin" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Împarte Canalele" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Împarte Canalele" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Marginea zonei de desenare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Decalajul X al zonei de desenare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Decalajul Y al zonei de desenare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Schimbă Rotunjimea Elementelor" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Canale" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Mono" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Rată de cadre" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Numărul de bare" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Ordine inversă" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Sensibilitate automată" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Încercare de a reduce sensibilitatea dacă barele ating vârful." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Sensibilitate" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Netezire Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Reducerea zgomotului" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Culori" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Adaugă Profil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Adaugă" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Șterge Profilul" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Imagini" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Schimbă Imaginea de Fundal" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Adaugă Imagine" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Aplicație" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Aplicație" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Ieși" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Depozit GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Șterge Profilul" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Sigur doriți să ștergeți profilul „{0}”?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Schimbă Imaginea de Fundal" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Șterge Profilul" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Sigur doriți să ștergeți profilul „{0}”?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Canale" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Nivele" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Rotire" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Luminos" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Întunecat" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Schimbă Profilul de Culoare" + +#~ msgid "Add New Profile" +#~ msgstr "Adaugă Profil Nou" + +#~ msgid "Cancel" +#~ msgstr "Anulează" + +#~ msgid "Delete" +#~ msgstr "Şterge" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Imagini JPEG și PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Noul profil de culoare va fi o copie a profilului activ curent." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Activat" + +#~ msgid "Profile Name" +#~ msgstr "Nume Profil" + +#~ msgid "Select an image" +#~ msgstr "Selectează o imagine" + +#~ msgid "Command Help" +#~ msgstr "Ajutor Pentru Comenzi" + +#~ msgid "Let's dance!" +#~ msgstr "Hai să dansăm!" + +#~ msgid "Radius" +#~ msgstr "Rază" + +#~ msgid "Mirror" +#~ msgstr "Oglindă" + +#~ msgid "Reverse mirror" +#~ msgstr "Oglindă inversată" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Dimensiunea spațiilor din jurul zonei de desenare (în pixeli)." + +#~ msgid "Offset between items" +#~ msgstr "Decalajul dintre elemente" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Dimensiunea spațiilor dintre elemente (în procente)." + +#~ msgid "Roundness of items" +#~ msgstr "Rotunjimea elementelor" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Cât de rotunjite ar trebui să fie elementele (în procente)." + +#~ msgid "Filling" +#~ msgstr "Umplere" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Dacă formele ar trebui să fie umplute sau conturate." + +#~ msgid "Thickness of lines" +#~ msgstr "Grosimea liniilor" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "Grosimea liniilor când umplerea este dezactivată (în pixeli)." + +#~ msgid "Borderless window" +#~ msgstr "Fereastră fără margini" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Dacă se dezactivează umbra și marginile ferestrei." + +#~ msgid "Sharp corners" +#~ msgstr "Colțuri ascuțite" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Dacă muchiile ferestrei principale ar trebui să fie ascuțite." + +#~ msgid "Window controls" +#~ msgstr "Controalele ferestrei" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Dacă să fie afișate butoanele de control ale ferestrei." + +#~ msgid "Autohide headerbar" +#~ msgstr "Ascundere automată a barei de titlu" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Dacă să fie ascunsă bara de titlu când fereastra principală nu este " +#~ "focalizată." + +#~ msgid "Number of frames per second." +#~ msgstr "Numărul de cadre pe secundă." + +#~ msgid "Custom" +#~ msgstr "Personalizat" + +#~ msgid "Custom Framerate" +#~ msgstr "Rată de cadre personalizată" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Sensibilitate manuală. Dacă sensibilitatea automată este activată, " +#~ "aceasta va fi doar valoarea inițială." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Dacă să fie activată așa-numita „netezire Monstercat”." + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Acest factor ajustează filtrele integrale și de gravitație pentru a " +#~ "menține semnalul uniform.\n" +#~ "O valoare mai mare duce la un rezultat mai lent și mai uniform." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Dacă să fie inversată ordinea barelor pentru fiecare canal." + +#~ msgid "Application Theme" +#~ msgstr "Tema Aplicației" + +#~ msgid "Foreground Colors" +#~ msgstr "Culori Prim-plan" + +#~ msgid "Add foreground color" +#~ msgstr "Adaugă culoare pentru prim-plan" + +#~ msgid "Background Colors" +#~ msgstr "Culori Fundal" + +#~ msgid "Add background color" +#~ msgstr "Adaugă culoare pentru fundal" + +#~ msgid "Background" +#~ msgstr "Fundal" + +#~ msgid "Foreground" +#~ msgstr "Prim-plan" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "" +#~ "Imaginea de prim-plan este afișată doar în modurile de desenare Cutie." + +#~ msgid "No Images" +#~ msgstr "Fără Imagini" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Adaugă o imagine pentru a o folosi în Cavalier." + +#~ msgid "No Image" +#~ msgstr "Fără Imagine" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Schimbă Modul de Desenare" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Schimbă raza în modurile Cerc" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Schimbă rotația în modurile Cerc" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Comută Oglindă Inversată" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Schimbă Marginea Zonei de Desenare" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Schimbă Decalajul X al Zonei de Desenare" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Schimbă Decalajul Y al Zonei de Desenare" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Schimbă Direcția de Desenare" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Schimbă Decalajul Dintre Elemente" + +#~ msgid "Toggle Filling" +#~ msgstr "Comută Umplerea" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Schimbă Grosimea Liniilor" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Comută Marginile Ferestrei" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Comută Colțurile Ascuțite" + +#~ msgid "Change Number of Bars" +#~ msgstr "Schimbă Numărul de Bare" + +#~ msgid "Toggle Channels" +#~ msgstr "Comută Canalele" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Comută Ordinea Inversă" + +#~ msgid "Other" +#~ msgstr "Altele" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Schimbă Scala Imaginii de Fundal" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Schimbă Transparența Imaginii de Fundal" + +#~ msgid "Change Foreground Image" +#~ msgstr "Schimbă Imaginea de Prim-plan" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Schimbă Scala Imaginii de Prim-plan" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Schimbă Transparența Imaginii de Prim-plan" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Comută Ecran Complet" + +#~ msgid "Resizing..." +#~ msgstr "Redimensionare..." diff --git a/resources/po/ru.po b/resources/po/ru.po new file mode 100644 index 0000000..390db88 --- /dev/null +++ b/resources/po/ru.po @@ -0,0 +1,940 @@ +# Russian translation for Cavalier +# Copyright (C) 2022 Fyodor Sobolev +# This file is distributed under the same license as the PACKAGE package. +# Fyodor Sobolev, 2022 +# +msgid "" +msgstr "" +"Project-Id-Version: cavalier\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2023-09-22 03:17+0000\n" +"Last-Translator: Fyodor Sobolev \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 5.1-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Визуализируйте аудио с помощью CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Чат Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Соавторы на GitHub ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Фёдор Соболев" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "Давид Лапшин" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Фёдор Соболев https://github.com/fsobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "По умолчанию" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Масштаб" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Альфа" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Настройки" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Комбинации клавиш" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "О приложении" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Главное меню" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Визуализируйте аудио с помощью CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier слушает звук вашей системы. Включите какую-нибудь музыку или видео " +"и наблюдайте, как звук оживает!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Светлая" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Тёмная" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Режим отрисовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "Режим отрисовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Ящик" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Круг" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Режим отрисовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Волна" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Уровни" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Частицы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Шкалы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Хребет" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Разделитель" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Сердечки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Направление отрисовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Сверху вниз" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Снизу вверх" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Слева направо" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Справа налево" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Изменить режим зеркала" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Выключено" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Полное" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Разделить каналы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Разделить каналы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Отступ области отрисовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Отклонение области отрисовки по оси X" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Отклонение области отрисовки по оси Y" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Изменить округлость элементов" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Каналы" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Моно" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Стерео" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Частота кадров" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Количество шкал" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Обратный порядок" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Автоматическая чувствительность" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" +"Пытаться снижать чувствительность, если показатели достигают максимума." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Чувствительность" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Сглаживание Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Шумоподавление" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Цвета" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Добавить профиль" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Добавить" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Удалить профиль" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Изображения" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Изменить фоновое изображение" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Добавить изображение" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Приложение" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Приложение" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Выход" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Репозиторий GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Удалить профиль" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Вы уверены, что хотите удалить профиль \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Изменить фоновое изображение" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Удалить профиль" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Вы уверены, что хотите удалить профиль \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "О приложении" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Каналы" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Уровни" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Наклон" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +#, fuzzy +msgid "File" +msgstr "Все файлы" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +#, fuzzy +msgid "Settings" +msgstr "Импорт Настроек" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Светлая" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Тёмная" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Изменить профиль цветов" + +#~ msgid "Add New Profile" +#~ msgstr "Добавить новый профиль" + +#~ msgid "Cancel" +#~ msgstr "Отмена" + +#~ msgid "Delete" +#~ msgstr "Удалить" + +#~ msgid "JPEG and PNG images" +#~ msgstr "Изображения JPEG и PNG" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Новый цветовой профиль будет копией текущего активного профиля." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Включено" + +#~ msgid "Profile Name" +#~ msgstr "Имя профиля" + +#~ msgid "Select an image" +#~ msgstr "Выбрать изображение" + +#~ msgid "Command Help" +#~ msgstr "Помощь по командам" + +#~ msgid "Let's dance!" +#~ msgstr "Давайте танцевать!" + +#~ msgid "Radius" +#~ msgstr "Радиус" + +#~ msgid "Mirror" +#~ msgstr "Зеркало" + +#~ msgid "Reverse mirror" +#~ msgstr "Развернуть зеркало" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Размер отступа вокруг области отрисовки (в пикселях)." + +#~ msgid "Offset between items" +#~ msgstr "Расстояние между элементами" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Размер пространства между элементами (в процентах)." + +#~ msgid "Roundness of items" +#~ msgstr "Округлость элементов" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Насколько элементы должны быть скруглены (в процентах)." + +#~ msgid "Filling" +#~ msgstr "Заполнение" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Должны ли формы быть заполнены или обведены." + +#~ msgid "Thickness of lines" +#~ msgstr "Толщина линий" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "Толщина линий при выключенном заполнении (в пикселях)." + +#~ msgid "Borderless window" +#~ msgstr "Отключить границы окна" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Следует ли скрыть тени и границы окна." + +#~ msgid "Sharp corners" +#~ msgstr "Острые углы" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Должны ли углы главного окна быть острыми." + +#~ msgid "Window controls" +#~ msgstr "Кнопки управления окном" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Должны ли отображаться кнопки управления окном." + +#~ msgid "Autohide headerbar" +#~ msgstr "Автоскрытие заголовка" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "" +#~ "Должен ли отображаться заголовок главного окна, когда оно не в фокусе." + +#~ msgid "Number of frames per second." +#~ msgstr "Число кадров в секунду." + +#~ msgid "Custom" +#~ msgstr "Другое" + +#~ msgid "Custom Framerate" +#~ msgstr "Своя частота кадров" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Ручная настройка чувствительности. Если автоматическая чувствительность " +#~ "включена, этот параметр задаёт только начальное значение." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Следуюет ли включить так называемое «сглаживание Monstercat»." + +#~ msgid "Noise reduction" +#~ msgstr "Шумоподавление" + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Этот параметр регулирует интегральные и гравитационные фильтры, делающие " +#~ "сигнал гладким.\n" +#~ "Высокое значение приведёт к более медленному и гладкому результату." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Следует ли изменить порядок шкал для каждого канала." + +#~ msgid "Application Theme" +#~ msgstr "Тема приложения" + +#~ msgid "Foreground Colors" +#~ msgstr "Цвета переднего плана" + +#~ msgid "Add foreground color" +#~ msgstr "Добавить цвет переднего плана" + +#~ msgid "Background Colors" +#~ msgstr "Цвета фона" + +#~ msgid "Add background color" +#~ msgstr "Добавить цвет фона" + +#~ msgid "Background" +#~ msgstr "Фон" + +#~ msgid "Foreground" +#~ msgstr "Передний план" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "" +#~ "Изображение переднего плана отображается только в режимах типа Ящик." + +#~ msgid "No Images" +#~ msgstr "Нет изображений" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Добавьте изображение для использования в Cavalier." + +#~ msgid "No Image" +#~ msgstr "Без изображения" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Изменить режим отрисовки" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Изменить радиус в режимах типа Круг" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Изменить наклон в режимах типа Круг" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Развернуть зеркало" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Изменить отступ области отрисовки" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Изменить отклонение области отрисовки по оси X" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Изменить отклонение области отрисовки по оси Y" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Изменить направление отрисовки" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Изменить расстояние между элементами" + +#~ msgid "Toggle Filling" +#~ msgstr "Переключить заполнение" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Изменить толщину линий" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Переключить границы окна" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Переключить острые углы" + +#~ msgid "Change Number of Bars" +#~ msgstr "Изменить количество шкал" + +#~ msgid "Toggle Channels" +#~ msgstr "Переключить каналы" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Переключить обратный порядок" + +#~ msgid "Other" +#~ msgstr "Прочее" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Изменить масштаб фонового изображения" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Изменить значение альфа фонового изображения" + +#~ msgid "Change Foreground Image" +#~ msgstr "Изменить изображение переднего плана" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Изменить масштаб изображения переднего плана" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Изменить значение альфа изображения переднего плана" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Переключить полный экран" + +#~ msgid "Resizing..." +#~ msgstr "Изменение размера..." + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier - аудио визуализатор, использующий CAVA, с настраиваемым " +#~ "интерфейсом." + +#~ msgid "11 drawing modes!" +#~ msgstr "11 режимов отрисовки!" + +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Установите любой цвет, градиент или изображение для фона или переднего " +#~ "плана." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "" +#~ "Настраивайте сглаживание, шумоподавление и парочку других параметров CAVA." + +#, csharp-format +#~ msgid "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Contributors on GitHub ❤️ {2}" +#~ msgstr "" +#~ "Фёдор Соболев {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Соавторы на GitHub ❤️ {2}" + +#~ msgid "Toggle Window Controls" +#~ msgstr "Переключить кнопки управления окном" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Переключить автоскрытие заголовка" + +#~ msgid "Set any color or gradient for background and foreground." +#~ msgstr "Установите любой цвет или градиент для фона или переднего плана." + +#~ msgid "Audio visualizer based on CAVA" +#~ msgstr "Аудио визуализатор, основанный на CAVA" + +#~ msgid "Audio Visualizer" +#~ msgstr "Аудио визуализатор" + +#~ msgid "Second release of Cavalier." +#~ msgstr "Второй выпуск Cavalier." + +#~ msgid "New drawing mode — Particles!" +#~ msgstr "Новый режим отрисовки — Частицы!" + +#~ msgid "" +#~ "Color profiles! Create as many as you want and change between them " +#~ "instantly. Unfortunately, this new feature required to change how the " +#~ "application saves colors, and because of this your previous colors " +#~ "settings will be lost after installing this update." +#~ msgstr "" +#~ "Профили цветов! Создайте столько профилей, сколько захотите, и " +#~ "переключайтесь между ними мгновенно! К сожалению, эта функция потребовала " +#~ "изменить, как приложение сохраняет цвета, поэтому после установки этого " +#~ "обновления ваши предыдущие настройки цветов будут утеряны." + +#~ msgid "Added keyboard shortcuts to change most of the settings on the fly." +#~ msgstr "" +#~ "Добавлены сочетания клавиш для изменения большинства настроек на лету." + +#~ msgid "Added option to show/hide window controls." +#~ msgstr "Добавлена опция для скрытия/отображения кнопок управления окном." + +#~ msgid "" +#~ "Added option to autohide headerbar when the main window is not focused." +#~ msgstr "" +#~ "Добавлена опция автоматического скрытия заголовка, когда окно не в фокусе." + +#~ msgid "" +#~ "Added option to change roundness of items in \"levels\" and \"particles\" " +#~ "modes." +#~ msgstr "" +#~ "Добавлена опция изменения округлости элементов в режимах Уровни и Частицы." + +#~ msgid "Import/Export Settings" +#~ msgstr "Импорт/Экспорт настроек" + +#~ msgid "Window size" +#~ msgstr "Размер окна" + +#~ msgid "Window maximized state" +#~ msgstr "Развёрнутое состояние окна" + +#~ msgid "Whether main window is maximized or not" +#~ msgstr "Является ли окно развёрнутым или нет" + +#~ msgid "Defines what the visualizer looks like." +#~ msgstr "Определяет, как выглядит визуализатор." + +#~ msgid "This setting only affects \"levels\" and \"particles\" modes." +#~ msgstr "Эта настройка влияет только на режимы Уровни и Частицы." + +#~ msgid "Number of bars in CAVA config" +#~ msgstr "Количество шкал в конфигурации CAVA" + +#~ msgid "Mono or stereo" +#~ msgstr "Моно или стерео" + +#~ msgid "Smoothing" +#~ msgstr "Сглаживание" + +#~ msgid "Widgets style" +#~ msgstr "Стиль виджетов" + +#~ msgid "Style used by Adwaita widgets." +#~ msgstr "Стиль, используемый виджетами Adwaita." + +#~ msgid "Index of active color profile" +#~ msgstr "Номер активного профиля цветов" + +#~ msgid "" +#~ "This setting only affects \"levels\" and \"particles\" modes.\n" +#~ "0 - square, 1 - round" +#~ msgstr "" +#~ "Эта настройка влияет только на режимы Уровни и Частицы.\n" +#~ "0 - квадратные, 1 - круглые" + +#~ msgid "Import" +#~ msgstr "Импорт" + +#~ msgid "Export" +#~ msgstr "Экспорт" + +#~ msgid "0 - noisy, 1 - smooth" +#~ msgstr "0 - шумно, 1 - гладко" + +#~ msgid "Type a name for a new profile" +#~ msgstr "Введите имя нового профиля" + +#~ msgid "Remove profile" +#~ msgstr "Удалить профиль" + +#~ msgid "Remove" +#~ msgstr "Удалить" + +#~ msgid "Foreground" +#~ msgstr "Передний план" + +#~ msgid "Background" +#~ msgstr "Фон" + +#~ msgid "Select color" +#~ msgstr "Выбрать цвет" + +#~ msgid "Remove color" +#~ msgstr "Удалить цвет" + +#~ msgid "Add color" +#~ msgstr "Добавить цвет" + +#~ msgid "This name is already in use." +#~ msgstr "Это имя уже используется." + +#~ msgid "Cavalier Settings File (*.cavalier)" +#~ msgstr "Файл настроек Cavalier (*.cavalier)" + +#~ msgid "Export Settings" +#~ msgstr "Экспорт Настроек" + +#~ msgid "Save" +#~ msgstr "Сохранить" + +#~ msgid "Toggle Widgets Style" +#~ msgstr "Переключить стиль виджетов" diff --git a/resources/po/sv.po b/resources/po/sv.po new file mode 100644 index 0000000..b600b3e --- /dev/null +++ b/resources/po/sv.po @@ -0,0 +1,484 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +msgid "Contributors on GitHub" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +msgid "Visualize Your Audio" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +msgid "Drawing Area" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +msgid "Drawing Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +msgid "Drawing Shape" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +msgid "Drawing Direction" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Top to Bottom" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Bottom to Top" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Left to Right" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +msgid "Right to Left" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +msgid "Mirror Mode" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +msgid "Area Margin" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +msgid "Area X Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +msgid "Area Y Offset" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +msgid "Item Roundness" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +msgid "Cava" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +msgid "Number of Bars" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +msgid "Reverse Bar Order" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +msgid "Automatic Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +msgid "Manual Sensitivity" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +msgid "Monstercat Smoothing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +msgid "Noise Reduction Factor" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +msgid "Profiles" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +msgid "Active Profile" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +msgid "Background Images" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +msgid "Active Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +msgid "About Application" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Delete Profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +msgid "Are you sure you want to delete this profile?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +msgid "Select Background Image" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Delete Image?" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +msgid "Are you sure you want to delete this image?" +msgstr "" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +msgid "Changelog" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +msgid "Developers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +msgid "Notification" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier (Preview)" +msgstr "" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" diff --git a/resources/po/ta.po b/resources/po/ta.po new file mode 100644 index 0000000..ce897d1 --- /dev/null +++ b/resources/po/ta.po @@ -0,0 +1,763 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2025-01-20 14:21+0000\n" +"Last-Translator: தமிழ்நேரம் \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "காவலியர்" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "காவாவுடன் ஆடியோவை காட்சிப்படுத்துங்கள்" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "அணி அரட்டை" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "கிட்அப்பில் பங்களிப்பாளர்கள்" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "ஃபெடோர் சோபோலெவ்" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "டேவிட் லாப்சின்" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "மொழிபெயர்ப்பாளர்-வரவு" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "இயல்புநிலை" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "அளவு" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "அகர" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "விருப்பத்தேர்வுகள்" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "விசைப்பலகை குறுக்குவழிகள்" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "காவலியர் பற்றி" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "பட்டியல் விளையாடுங்கள்" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "காவாவுடன் ஆடியோவை காட்சிப்படுத்துங்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"காவலியர் உங்கள் கணினி ஒலியைக் கேட்கிறார். கொஞ்சம் இசையை வாசிக்கவும் அல்லது வீடியோவைப் " +"பார்க்கவும், உங்கள் ஒலி உயிர்ப்பிக்கவும்!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "ஒளி" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "இருண்ட" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "வரைதல் முறை" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "வரைதல் முறை" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "பெட்டி" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "வட்டம்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "வரைதல் முறை" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "அலை" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "நிலைகள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "துகள்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "பார்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "வளைமுள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "ச்ப்ளிட்டர்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "இதயங்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "வரைதல் திசை" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "மேலிருந்து கீழே" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "கீழே முதல்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "இடமிருந்து வலமாக" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "வலமிருந்து இடமாக" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "கண்ணாடி பயன்முறையை மாற்றவும்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "அணை" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "முழு" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "பிளவு சேனல்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "பிளவு சேனல்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "வரைதல் பகுதி விளிம்பு" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "வரைதல் பகுதி ஃச் ஆஃப்செட்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "வரைதல் பகுதி ஒய் ஆஃப்செட்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "உருப்படிகளை மாற்றவும்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "காவலியர்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "சேனல்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "மோனோ" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "ச்டீரியோ" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "பிரேம்ரேட்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "பார்களின் எண்ணிக்கை" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "தலைகீழ் ஒழுங்கு" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "தானியங்கி உணர்திறன்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "பார்கள் உச்சம் இருந்தால் உணர்திறனைக் குறைக்க முயற்சிக்கவும்." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "உணர்திறன்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "மான்ச்டர்காட் மென்மையானது" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "ஒலி குறைப்பு" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "நிறங்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "சுயவிவரத்தைச் சேர்க்கவும்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "கூட்டு" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "சுயவிவரத்தை நீக்கு" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "படங்கள்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "பின்னணி படத்தை மாற்றவும்" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "படத்தைச் சேர்க்கவும்" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "பயன்பாடு" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "பயன்பாடு" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "வெளியேறு" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "அறிவிலிமையம் ரெப்போ" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "சுயவிவரத்தை நீக்கு" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "சுயவிவரத்தை \"{0}\" நீக்க விரும்புகிறீர்களா?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "பின்னணி படத்தை மாற்றவும்" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "சுயவிவரத்தை நீக்கு" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "சுயவிவரத்தை \"{0}\" நீக்க விரும்புகிறீர்களா?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "சேனல்கள்" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "நிலைகள்" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "சுழற்சி" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "காவலியர்" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "ஒளி" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "இருண்ட" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "வண்ண சுயவிவரத்தை மாற்றவும்" + +#~ msgid "Add New Profile" +#~ msgstr "புதிய சுயவிவரத்தைச் சேர்க்கவும்" + +#~ msgid "Cancel" +#~ msgstr "ரத்துசெய்" + +#~ msgid "Delete" +#~ msgstr "நீக்கு" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG மற்றும் PNG படங்கள்" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "புதிய வண்ண சுயவிவரம் தற்போதைய செயலில் உள்ள சுயவிவரத்தின் நகலாக இருக்கும்." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "நிக்கோலச் லோகோச்சோ" + +#~ msgid "On" +#~ msgstr "ஆன்" + +#~ msgid "Profile Name" +#~ msgstr "சுயவிவர பெயர்" + +#~ msgid "Select an image" +#~ msgstr "ஒரு படத்தைத் தேர்ந்தெடுக்கவும்" + +#~ msgid "Command Help" +#~ msgstr "கட்டளை உதவி" + +#~ msgid "Let's dance!" +#~ msgstr "நடனமாடுவோம்!" + +#~ msgid "Radius" +#~ msgstr "ஆரம்" + +#~ msgid "Mirror" +#~ msgstr "கண்ணாடி" + +#~ msgid "Reverse mirror" +#~ msgstr "தலைகீழ் கண்ணாடி" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "வரைதல் பகுதியைச் சுற்றியுள்ள இடைவெளிகளின் அளவு (பிக்சல்களில்)." + +#~ msgid "Offset between items" +#~ msgstr "உருப்படிகளுக்கு இடையில் ஈடுசெய்யவும்" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "உறுப்புகளுக்கு இடையிலான இடைவெளிகளின் அளவு (சதவீதத்தில்)." + +#~ msgid "Roundness of items" +#~ msgstr "பொருட்களின் சுற்று" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "உறுப்புகள் எவ்வளவு வட்டமானதாக இருக்க வேண்டும் (சதவீதத்தில்)." + +#~ msgid "Filling" +#~ msgstr "நிரப்புதல்" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "வடிவங்கள் நிரப்பப்பட வேண்டுமா அல்லது கோடிட்டுக் காட்டப்பட வேண்டுமா." + +#~ msgid "Thickness of lines" +#~ msgstr "கோடுகளின் தடிமன்" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "நிரப்பும்போது (பிக்சல்களில்) வரிகளின் தடிமன்." + +#~ msgid "Borderless window" +#~ msgstr "எல்லையற்ற சாளரம்" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "சாளர நிழல் மற்றும் எல்லைகளை முடக்க வேண்டுமா." + +#~ msgid "Sharp corners" +#~ msgstr "கூர்மையான மூலைகள்" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "முதன்மையான சாளர மூலைகள் கூர்மையாக இருக்க வேண்டுமா." + +#~ msgid "Window controls" +#~ msgstr "சாளர கட்டுப்பாடுகள்" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "சாளர கட்டுப்பாட்டு பொத்தான்களைக் காட்ட வேண்டுமா." + +#~ msgid "Autohide headerbar" +#~ msgstr "ஆட்டோஐட் எடர்பார்" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "முதன்மையான சாளரம் கவனம் செலுத்தாதபோது எடர்பாரை மறைக்க வேண்டுமா." + +#~ msgid "Number of frames per second." +#~ msgstr "நொடிக்கு பிரேம்களின் எண்ணிக்கை." + +#~ msgid "Custom" +#~ msgstr "தனிப்பயன்" + +#~ msgid "Custom Framerate" +#~ msgstr "தனிப்பயன் பிரேம்ரேட்" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "கையேடு உணர்திறன். தானியங்கி உணர்திறன் இயக்கப்பட்டிருந்தால், இது ஆரம்ப மதிப்பாக மட்டுமே " +#~ "இருக்கும்." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "«மான்ச்டர்காட் மென்மையானது» என்று அழைக்கப்படுவதை இயக்க வேண்டுமா." + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "இந்த காரணி சமிக்ஞையை மென்மையாக வைத்திருக்க ஒருங்கிணைந்த மற்றும் ஈர்ப்பு வடிப்பான்களை " +#~ "சரிசெய்கிறது.\n" +#~ " அதிக மதிப்பு மெதுவான மற்றும் மென்மையான முடிவுக்கு வழிவகுக்கிறது." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "ஒவ்வொரு சேனலுக்கும் பார்களின் வரிசையை மாற்றியமைக்க வேண்டுமா." + +#~ msgid "Application Theme" +#~ msgstr "பயன்பாட்டு கருப்பொருள்" + +#~ msgid "Foreground Colors" +#~ msgstr "முன்புற வண்ணங்கள்" + +#~ msgid "Add foreground color" +#~ msgstr "முன்புற வண்ணத்தைச் சேர்க்கவும்" + +#~ msgid "Background Colors" +#~ msgstr "பின்னணி வண்ணங்கள்" + +#~ msgid "Add background color" +#~ msgstr "பின்னணி நிறத்தைச் சேர்க்கவும்" + +#~ msgid "Background" +#~ msgstr "பின்னணி" + +#~ msgid "Foreground" +#~ msgstr "முன்புறம்" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "முன்புற படம் பெட்டி வரைதல் முறைகளுடன் மட்டுமே காட்டப்பட்டுள்ளது." + +#~ msgid "No Images" +#~ msgstr "படங்கள் இல்லை" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "கேவலியரில் பயன்படுத்த ஒரு படத்தைச் சேர்க்கவும்." + +#~ msgid "No Image" +#~ msgstr "படம் இல்லை" + +#~ msgid "Change Drawing Mode" +#~ msgstr "வரைதல் பயன்முறையை மாற்றவும்" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "வட்ட முறைகளில் ஆரம் மாற்றவும்" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "வட்ட முறைகளில் சுழற்சியை மாற்றவும்" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "தலைகீழ் கண்ணாடியை மாற்றவும்" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "வரைதல் பகுதி விளிம்பை மாற்றவும்" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "வரைதல் பகுதி ஃச் ஆஃப்செட் மாற்றவும்" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "வரைதல் பகுதி ஒய் ஆஃப்செட் மாற்றவும்" + +#~ msgid "Change Drawing Direction" +#~ msgstr "வரைதல் திசையை மாற்றவும்" + +#~ msgid "Change Offset Between Items" +#~ msgstr "உருப்படிகளுக்கு இடையில் ஆஃப்செட்டை மாற்றவும்" + +#~ msgid "Toggle Filling" +#~ msgstr "நிரப்புதல்" + +#~ msgid "Change Lines Thickness" +#~ msgstr "கோடுகள் தடிமன் மாற்றவும்" + +#~ msgid "Toggle Window Borders" +#~ msgstr "சாளர எல்லைகளை மாற்றவும்" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "கூர்மையான மூலைகளை மாற்றவும்" + +#~ msgid "Change Number of Bars" +#~ msgstr "பார்களின் எண்ணிக்கையை மாற்றவும்" + +#~ msgid "Toggle Channels" +#~ msgstr "சேனல்களை மாற்றவும்" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "தலைகீழ் வரிசையை மாற்றவும்" + +#~ msgid "Other" +#~ msgstr "மற்றொன்று" + +#~ msgid "Change Background Image Scale" +#~ msgstr "பின்னணி பட அளவை மாற்றவும்" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "பின்னணி பட ஆல்பாவை மாற்றவும்" + +#~ msgid "Change Foreground Image" +#~ msgstr "முன்புற படத்தை மாற்றவும்" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "முன்புற பட அளவை மாற்றவும்" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "முன்புற பட ஆல்பாவை மாற்றவும்" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "மாற்று முழுத்திரை" + +#~ msgid "Resizing..." +#~ msgstr "மறுஅளவிடுதல் ..." diff --git a/resources/po/tr.po b/resources/po/tr.po new file mode 100644 index 0000000..ae239f5 --- /dev/null +++ b/resources/po/tr.po @@ -0,0 +1,797 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-03-14 14:01+0000\n" +"Last-Translator: Sabri Ünal \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.5-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "CAVA ile sesleri görselleştirin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Matrix Sohbet" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "GitHub Katkıcıları ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Sabri Ünal " + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "Öntanımlı" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Ölçekle" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Alfa" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Tercihler" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Klavye Kısayolları" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Cavalier Hakkında" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Ana Menü" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "CAVA ile sesleri görselleştirin" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier sistem sesinizi dinler. Biraz müzik çalın veya bir video izleyin ve " +"sesinizin canlandığını görün!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Açık" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Kyu" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Çizim kipi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "Çizim kipi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Kutu" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Daire" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Çizim kipi" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Dalga" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Düzeyler" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Parçacıklar" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Çubuklar" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Omurga" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Ayırıcı" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Kalpler" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Çizim yönü" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Yukarıdan aşağıya" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Aşağıdan yukarıya" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Soldan sağa" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Sağdan sola" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Ayna Kipini Değiştir" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Kapalı" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Tam" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Kanalları Ayır" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Kanalları Ayır" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Çizim alanı kenar boşluğu" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Çizim alanı X konumu" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Çizim alanı Y konumu" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Ögelerin Yuvarlaklığını Değiştir" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Kanallar" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Tekli" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Stereo" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Kare hızı" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Çubuk sayısı" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Ters sırada" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Kendiliğinden duyarlılık" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Çubuklar zirve yaparsa hassasiyeti düşürmeye çalış." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Duyarlılık" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Monstercat yumuşatma" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Gürültü azaltma" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Renkler" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Profil Ekle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Ekle" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Profil Sil" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Resimler" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Arka Plan Resmini Değiştir" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Resim Ekle" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Uygulama" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Uygulama" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Çık" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "GitHub Deposu" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Profil Sil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "“{0}” profilini silmek istediğinizden emin misiniz?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Arka Plan Resmini Değiştir" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Profil Sil" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "“{0}” profilini silmek istediğinizden emin misiniz?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Kanallar" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Düzeyler" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Döndürme" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Açık" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Kyu" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Renk Profilini Değiştir" + +#~ msgid "Add New Profile" +#~ msgstr "Yeni Profil Ekle" + +#~ msgid "Cancel" +#~ msgstr "İptal" + +#~ msgid "Delete" +#~ msgstr "Sil" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG ve PNG resimler" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Yeni renk profili, geçerli etkin profilin bir kopyası olacaktır." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "Açık" + +#~ msgid "Profile Name" +#~ msgstr "Profil Adı" + +#~ msgid "Select an image" +#~ msgstr "Resim seç" + +#~ msgid "Command Help" +#~ msgstr "Komut Yardımı" + +#~ msgid "Let's dance!" +#~ msgstr "Dans edelim!" + +#~ msgid "Radius" +#~ msgstr "Yarıçap" + +#~ msgid "Mirror" +#~ msgstr "Aynala" + +#~ msgid "Reverse mirror" +#~ msgstr "Ters ayna" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Çizim alanı etrafındaki boşlukların boyutu (piksel olarak)." + +#~ msgid "Offset between items" +#~ msgstr "Öğeler arasındaki boşluk" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Ögeler arasındaki boşluk (yüzde olarak)." + +#~ msgid "Roundness of items" +#~ msgstr "Ögelerin yuvarlaklığı" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Ögelerin ne kadar yuvarlak olacağı (yüzde olarak)." + +#~ msgid "Filling" +#~ msgstr "Dolgu" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Şekillerin dolgusu veya ana hatları çizilmesi durumu." + +#~ msgid "Thickness of lines" +#~ msgstr "Çizgi kalınlığı" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "Dolgu kapalıyken çizgilerin kalınlığı (piksel olarak)." + +#~ msgid "Borderless window" +#~ msgstr "Kenarlıksız pencere" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Pencere gölgesinin ve kenarlıkların devre dışı bırakılma durumu." + +#~ msgid "Sharp corners" +#~ msgstr "Keskin köşeler" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Ana pencere köşelerinin keskin olma durumu." + +#~ msgid "Window controls" +#~ msgstr "Pencere denetimleri" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Pencere denetim düğmelerinin gösterilme durumu." + +#~ msgid "Autohide headerbar" +#~ msgstr "Başlık çubuğunu kendiliğinden gizle" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "Ana pencere odaklanmadığında başlık çubuğunun gizlenme durumu." + +#~ msgid "Number of frames per second." +#~ msgstr "Saniyedeki kare sayısı." + +#~ msgid "Custom" +#~ msgstr "Özel" + +#~ msgid "Custom Framerate" +#~ msgstr "Özel Kare Hızı" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Elle duyarlılık. Kendiliğinden duyarlılık etkinleştirilirse, bu yalnızca " +#~ "başlangıç değeri olacaktır." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Sözde «Monstercat yumuşatmanın» etkinleştirilme durumu." + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Bu faktör, sinyali düzgün tutmak için integral ve yerçekimi süzgeçlerini " +#~ "ayarlar.\n" +#~ "Daha yüksek değer, daha yavaş ve daha pürüzsüz sonuç sağlar." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Her kanal için çubukların sırasının ters çevrilme durumu." + +#~ msgid "Application Theme" +#~ msgstr "Uygulama Teması" + +#~ msgid "Foreground Colors" +#~ msgstr "Ön Plan Rengi" + +#~ msgid "Add foreground color" +#~ msgstr "Ön plan rengi ekle" + +#~ msgid "Background Colors" +#~ msgstr "Arka Plan Rengi" + +#~ msgid "Add background color" +#~ msgstr "Arka plan rengi ekle" + +#~ msgid "Background" +#~ msgstr "Arka plan" + +#~ msgid "Foreground" +#~ msgstr "Ön plan" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "Ön plan resmi yalnızca Kutu çizim kiplerinde gösterilir." + +#~ msgid "No Images" +#~ msgstr "Resim Yok" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Cavalierʼde kullanmak için resim ekleyin." + +#~ msgid "No Image" +#~ msgstr "Resim Yok" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Çizim Kipini Değiştir" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Daire kiplerinde yarıçapı değiştir" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Daire kiplerinde dönüşü değiştir" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Ters Aynayı Aç/Kapat" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Çizim Alanı Kenar Boşluğunu Değiştir" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Çizim Alanı X Konumunu Değiştir" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Çizim Alanı Y Konumunu Değiştir" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Çizim Yönünü Değiştir" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Ögeler Arasındaki Boşluğu Değiştir" + +#~ msgid "Toggle Filling" +#~ msgstr "Dolguyu Aç/Kapat" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Çizgi Kalınlığını Değiştir" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Pencere Kenarlıklarını Aç/Kapat" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Keskin Köşeleri Aç/Kapat" + +#~ msgid "Change Number of Bars" +#~ msgstr "Çubuk Sayısını Değiştir" + +#~ msgid "Toggle Channels" +#~ msgstr "Kanalları Aç/Kapat" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Ters Sıralamayı Aç/Kapat" + +#~ msgid "Other" +#~ msgstr "Diğer" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Arka Plan Resim Ölçeğini Değiştir" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Arka Plan Resim Alfasını Değiştir" + +#~ msgid "Change Foreground Image" +#~ msgstr "Ön Plan Resmini Değiştir" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Ön Plan Resim Ölçeğini Değiştir" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Ön Plan Resim Alfasını Değiştir" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Tam Ekranı Aç/Kapat" + +#~ msgid "Resizing..." +#~ msgstr "Yeniden boyutlandırılıyor..." + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "" +#~ "Cavalier, özelleştirilebilir arayüze sahip CAVA tabanlı bir ses " +#~ "görselleştiricisidir." + +#~ msgid "11 drawing modes!" +#~ msgstr "11 çizim kipi!" + +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "" +#~ "Arka plan ve ön plan için herhangi bir renk, renk geçişi veya resim " +#~ "ayarlayın." + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "" +#~ "Yumuşatma, gürültü azaltma ve diğer birkaç CAVA ayarını yapılandırın." + +#, csharp-format +#~ msgid "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "Contributors on GitHub ❤️ {2}" +#~ msgstr "" +#~ "Fyodor Sobolev {0}\n" +#~ "Nicholas Logozzo {1}\n" +#~ "GitHub Katkıcıları ❤️ {2}" + +#~ msgid "Toggle Window Controls" +#~ msgstr "Pencere Denetimlerini Aç/Kapat" + +#~ msgid "Toggle Autohide Headerbar" +#~ msgstr "Başlık Çubuğunu Kendiliğinden Gizlemeyi Aç/Kapat" diff --git a/resources/po/uk.po b/resources/po/uk.po new file mode 100644 index 0000000..b79fcf4 --- /dev/null +++ b/resources/po/uk.po @@ -0,0 +1,764 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-08-14 17:09+0000\n" +"Last-Translator: Semiurg \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 5.7-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "Візуалізувати аудіо за допомогою CAVA" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Чат Matrix" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "Співавтори на Github ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Федір Соболєв" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "Давид Лапшин" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "Maksym Khimka " + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "За замовчуванням" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "Масштаб" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "Альфа" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "Налаштування" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "Сполучення клавіш" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "Про Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "Головне меню" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "Візуалізувати аудіо за допомогою CAVA" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "" +"Cavalier слухає аудіо вашої системи. Включіть музику або відео, та дивіться " +"як ваш звук приходить в рух!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "Світла" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "Темна" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "Режим відмальовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "Режим відмальовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "Коробка" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "Круг" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "Режим відмальовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "Хвиля" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "Рівні" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "Частинки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "Бари" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "Хребет" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "Розділювач" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "Сердечки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "Напрямок відмальовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "Зверху донизу" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "Знизу вверх" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "Зліва направо" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "Справа вліво" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "Змінити режим Дзеркала" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "Вимкнуто" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "Повне" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "Розділити канали" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "Розділити канали" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "Відступ області відмальовки" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "Відхилення області відмальовки по осі X" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Відхилення області відмальовки по осі Y" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "Змінити закругленість елементів" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "Канали" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "Моно" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "Стерео" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "Частота кадрів" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "Кількість барів" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "Зворотній напрямок" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "Автоматична чутливість" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "Спробувати зменшити чутливість якщо бари досягають максимуму." + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "Чутливість" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Згладжування Monstercat" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "Зменшення шуму" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "Кольори" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "Додати профіль" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "Додати" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "Видалити профіль" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "Зображення" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "Змінити фонове зображення" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "Додати зображення" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "Програма" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "Програма" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "Вийти" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "Репозиторій GitHub" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "Видалити профіль" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "Ви впевнені що хочете видалити профіль \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "Змінити фонове зображення" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "Видалити профіль" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "Ви впевнені що хочете видалити профіль \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "Канали" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "Рівні" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "Нахил" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "Світла" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "Темна" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "Змінити профіль кольорів" + +#~ msgid "Add New Profile" +#~ msgstr "Додати новий профіль" + +#~ msgid "Cancel" +#~ msgstr "Відмінити" + +#~ msgid "Delete" +#~ msgstr "Видалити" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG і PNG зображення" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "Новий кольоровий профіль буде копією поточного активного профілю." + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Ніколас Логоццо" + +#~ msgid "On" +#~ msgstr "Ввімкнуто" + +#~ msgid "Profile Name" +#~ msgstr "Назва профілю" + +#~ msgid "Select an image" +#~ msgstr "Вибрати зображення" + +#~ msgid "Command Help" +#~ msgstr "Допомога з командами" + +#~ msgid "Let's dance!" +#~ msgstr "Давайте танцювати!" + +#~ msgid "Radius" +#~ msgstr "Радіус" + +#~ msgid "Mirror" +#~ msgstr "Дзеркало" + +#~ msgid "Reverse mirror" +#~ msgstr "Розвернуте дзеркало" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "Розмір відступів навколо області відмальовки (у пікселях)." + +#~ msgid "Offset between items" +#~ msgstr "Відступ між елементами" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "Розмір простору між елементами (у відсотках)." + +#~ msgid "Roundness of items" +#~ msgstr "Закругленість елементів" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "Наскільки закругленими повинні бути елементи (у відсотках)." + +#~ msgid "Filling" +#~ msgstr "Заповнення" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "Чи повинні форми бути заповнені чи обведені." + +#~ msgid "Thickness of lines" +#~ msgstr "Товщина ліній" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "Товщина ліній коли заповнення виключено (у пікселях)." + +#~ msgid "Borderless window" +#~ msgstr "Безрамкове вікно" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "Чи потрібно відключити тінь та рамки вікна." + +#~ msgid "Sharp corners" +#~ msgstr "Гострі кути" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "Чи повинні кути головного вікна бути гострими." + +#~ msgid "Window controls" +#~ msgstr "Керування вікном" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "Чи показувати кнопки контролю вікна." + +#~ msgid "Autohide headerbar" +#~ msgstr "Автоматично ховати заголовок" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "Чи ховати заголовок коли головне вікно не у фокусі." + +#~ msgid "Number of frames per second." +#~ msgstr "Кількість кадрів в секунду." + +#~ msgid "Custom" +#~ msgstr "Власне" + +#~ msgid "Custom Framerate" +#~ msgstr "Своя частота кадрів" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "" +#~ "Ручна чутливість. Якщо ввімкнено автоматичну чутливість, це буде тільки " +#~ "початкове значення." + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "Чи увімкнути так зване \"згладжування Monstercat\"." + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "Цей параметр регулює інтегральний та гравітаційний фільтри щоб тримати " +#~ "сигнал гладким.\n" +#~ "Високе значення веде до повільнішого та гладкого результату." + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "Чи потрібно змінити порядок барів для кожного каналу." + +#~ msgid "Application Theme" +#~ msgstr "Тема програми" + +#~ msgid "Foreground Colors" +#~ msgstr "Кольори переднього плану" + +#~ msgid "Add foreground color" +#~ msgstr "Додати колір переднього плану" + +#~ msgid "Background Colors" +#~ msgstr "Колір фону" + +#~ msgid "Add background color" +#~ msgstr "Додати колір фону" + +#~ msgid "Background" +#~ msgstr "Фон" + +#~ msgid "Foreground" +#~ msgstr "Передній план" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "Зображення переднього плану видно лише в режимах типу Коробка." + +#~ msgid "No Images" +#~ msgstr "Немає зображень" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "Додати зображення для використання у Cavalier." + +#~ msgid "No Image" +#~ msgstr "Немає зображення" + +#~ msgid "Change Drawing Mode" +#~ msgstr "Змінити режим відмальовки" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "Змінити радіус у режимах типу Круг" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "Змінити нахил у режимах типу Круг" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "Увімкнути розвернуте дзеркало" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "Змінити відступ зони відмальовки" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "Змінити відхилення зони відмальовки по осі X" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "Змінити відхилення зони відмальовки по осі Y" + +#~ msgid "Change Drawing Direction" +#~ msgstr "Змінити напрямок відмальовки" + +#~ msgid "Change Offset Between Items" +#~ msgstr "Змінити відстань між елементами" + +#~ msgid "Toggle Filling" +#~ msgstr "Увімкнути заповнення" + +#~ msgid "Change Lines Thickness" +#~ msgstr "Змінити товщину ліній" + +#~ msgid "Toggle Window Borders" +#~ msgstr "Увімкнути межі вікна" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "Увімкнути гострі кути" + +#~ msgid "Change Number of Bars" +#~ msgstr "Змінити кількість барів" + +#~ msgid "Toggle Channels" +#~ msgstr "Переключити канал" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "Увімкнути зворотній напрямок" + +#~ msgid "Other" +#~ msgstr "Інше" + +#~ msgid "Change Background Image Scale" +#~ msgstr "Змінити масштаб фонового зоюраження" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "Змінити альфу фонового зображення" + +#~ msgid "Change Foreground Image" +#~ msgstr "Змінити зображення переднього плану" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "Змінити розмір зображення переднього плану" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "Змінити альфу зображення переднього плану" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "Увімкнути повний екран" + +#~ msgid "Resizing..." +#~ msgstr "Змінюєм розмір..." diff --git a/resources/po/zh_Hans.po b/resources/po/zh_Hans.po new file mode 100644 index 0000000..a1f70c1 --- /dev/null +++ b/resources/po/zh_Hans.po @@ -0,0 +1,773 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2024-09-01 09:09+0000\n" +"Last-Translator: D XC \n" +"Language-Team: Chinese (Simplified Han script) \n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.8-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +msgid "Visualize audio with CAVA" +msgstr "使用 CAVA 可视化音频" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Matrix 聊天室" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "在 GitHub 上贡献 ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +msgid "translator-credits" +msgstr "翻译成员" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "默认" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "缩放" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "透明度" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "设置" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "快捷键" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "关于 Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "主菜单" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "使用 CAVA 可视化音频" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "Cavalier 会聆听您电脑的声音。播放一些音乐或影片来让你的音乐舞动起来!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "亮色" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "深色" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "绘图模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "绘图模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "盒型" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "圆型" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "绘图模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "波浪" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "音量" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "粒子" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "条形" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "锥形" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "分隔" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Hearts" +msgstr "爱心" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "绘制方向" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "从上到下" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "从下到上" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "从左到右" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "从右到左" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "更改镜像模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "关闭" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full" +msgstr "完全" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "分离左右声道" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "分离左右声道" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "绘图边距" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "X轴偏移" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Y 轴偏移" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "更改条目的圆角大小" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "声道" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "单声道" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "双声道" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "帧率" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "条柱的数量" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "反向排序" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "自动灵敏度" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "当条形图达到峰值时尝试降低灵敏度。" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "灵敏度" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Monstercat 平滑" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "降噪" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "颜色" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "新增配置" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "新增" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "删除配置" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +msgid "Images" +msgstr "图片" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "更改背景图片" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "新增图片" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "应用程序" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "应用程序" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "退出" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "GitHub 库" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "删除配置" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "你确定你要刪除配置 \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "更改背景图片" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "删除配置" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "你确定你要刪除配置 \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "声道" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "音量" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "旋转" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "亮色" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "深色" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "更改颜色配置" + +#~ msgid "Add New Profile" +#~ msgstr "新增配置" + +#~ msgid "Cancel" +#~ msgstr "取消" + +#~ msgid "Delete" +#~ msgstr "删除" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG 和 PNG 图片" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "新的颜色配置将会是当前活动配置的副本。" + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "打开" + +#~ msgid "Profile Name" +#~ msgstr "配置名称" + +#~ msgid "Select an image" +#~ msgstr "选择一张图片" + +#~ msgid "Command Help" +#~ msgstr "命令帮助" + +#~ msgid "Let's dance!" +#~ msgstr "来跳舞吧!" + +#~ msgid "Radius" +#~ msgstr "半径" + +#~ msgid "Mirror" +#~ msgstr "镜像" + +#~ msgid "Reverse mirror" +#~ msgstr "反向镜像" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "绘图区域周围的间隙大小(以像素为单位)。" + +#~ msgid "Offset between items" +#~ msgstr "条目之间的偏移" + +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "两个条目之间的间隔大小(百分比)。" + +#~ msgid "Roundness of items" +#~ msgstr "条目圆角大小" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "元素的圆角大小(百分比)。" + +#~ msgid "Filling" +#~ msgstr "填充" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "图形是否填充或仅展示外框。" + +#~ msgid "Thickness of lines" +#~ msgstr "线条粗细" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "填充关闭时,线条的粗细(像素)。" + +#~ msgid "Borderless window" +#~ msgstr "无边框窗体" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "是否禁用窗口的阴影及边框。" + +#~ msgid "Sharp corners" +#~ msgstr "尖角" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "窗口的边角是否为尖角。" + +#~ msgid "Window controls" +#~ msgstr "窗口控制" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "是否展示窗口的控制按钮。" + +#~ msgid "Autohide headerbar" +#~ msgstr "自动隐藏标题栏" + +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "当窗口未聚焦时是否隐藏标题栏。" + +#~ msgid "Number of frames per second." +#~ msgstr "每秒的帧数。" + +#~ msgid "Custom" +#~ msgstr "自定义" + +#~ msgid "Custom Framerate" +#~ msgstr "自定义帧率" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "手动设置敏度。如果启用自动灵敏度,这将会是一个初始值。" + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "是否启用 \"Monstercat smoothing\"。" + +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "该因子调整积分滤波器和重力滤波器以保持信号平滑。\n" +#~ "更高的值会使图像更慢,但会更顺滑。" + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "是否将每个声道的柱形逆序。" + +#~ msgid "Application Theme" +#~ msgstr "应用程序主题" + +#~ msgid "Foreground Colors" +#~ msgstr "前景颜色" + +#~ msgid "Add foreground color" +#~ msgstr "添加前景颜色" + +#~ msgid "Background Colors" +#~ msgstr "背景颜色" + +#~ msgid "Add background color" +#~ msgstr "添加背景颜色" + +#~ msgid "Background" +#~ msgstr "背景" + +#~ msgid "Foreground" +#~ msgstr "前景" + +#~ msgid "Foreground image is only shown with Box drawing modes." +#~ msgstr "前景图像仅在盒型绘图模式下显示。" + +#~ msgid "No Images" +#~ msgstr "空空如也" + +#~ msgid "Add an image to use it in Cavalier." +#~ msgstr "添加一张在 Cavalier 中使用的图像。" + +#~ msgid "No Image" +#~ msgstr "没有图片" + +#~ msgid "Change Drawing Mode" +#~ msgstr "更改绘图方式" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "更改圆型模式的半径" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "更改圆型模式的角度" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "开启/关闭反向镜像" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "更改绘图区域边距" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "更改绘图区域 X 轴偏移" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "更改绘图区域 Y 轴偏移" + +#~ msgid "Change Drawing Direction" +#~ msgstr "更改绘图方向" + +#~ msgid "Change Offset Between Items" +#~ msgstr "更改条目之间的间隔" + +#~ msgid "Toggle Filling" +#~ msgstr "切换填充模式" + +#~ msgid "Change Lines Thickness" +#~ msgstr "更改线条粗细" + +#~ msgid "Toggle Window Borders" +#~ msgstr "显示/隐藏窗口边框" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "启用/关闭窗口尖角" + +#~ msgid "Change Number of Bars" +#~ msgstr "更改条柱的数量" + +#~ msgid "Toggle Channels" +#~ msgstr "切换声道" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "开启/关闭逆向排序" + +#~ msgid "Other" +#~ msgstr "其他" + +#~ msgid "Change Background Image Scale" +#~ msgstr "更改背景图像的缩放比例" + +#~ msgid "Change Background Image Alpha" +#~ msgstr "更改背景图像的透明度" + +#~ msgid "Change Foreground Image" +#~ msgstr "更改前景图片" + +#~ msgid "Change Foreground Image Scale" +#~ msgstr "更改前景图像的缩放比例" + +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "更改前景图像的透明度" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "切换全屏" + +#~ msgid "Resizing..." +#~ msgstr "调整中..." + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "Cavalier 是一款基于 Cava 制作且可高度自定义界面的音频可视化程式。" + +#~ msgid "11 drawing modes!" +#~ msgstr "11种绘图模式!" + +#, fuzzy +#~| msgid "Set any color or a gradient for background and foreground." +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "将任何颜色或渐变色设置为背景或是前景色。" + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "更改平滑程度,降噪以及部份的 CAVA 设置。" diff --git a/resources/po/zh_Hant.po b/resources/po/zh_Hant.po new file mode 100644 index 0000000..8c2f1fb --- /dev/null +++ b/resources/po/zh_Hant.po @@ -0,0 +1,787 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-16 19:33-0400\n" +"PO-Revision-Date: 2023-08-12 17:18+0000\n" +"Last-Translator: Wolf yuan \n" +"Language-Team: Chinese (Traditional) \n" +"Language: zh_Hant\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.0-dev\n" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:33 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +msgid "Cavalier" +msgstr "Cavalier" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:34 +#, fuzzy +msgid "Visualize audio with CAVA" +msgstr "使用 CAVA 可視化音訊" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:39 +msgid "Matrix Chat" +msgstr "Matrix 聊天室" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:41 +#, fuzzy +msgid "Contributors on GitHub" +msgstr "在 GitHub 上貢獻 ❤️" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:43 +msgid "Fyodor Sobolev" +msgstr "Fyodor Sobolev" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:45 +msgid "David Lapshin" +msgstr "David Lapshin" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:46 +#, fuzzy +msgid "translator-credits" +msgstr "翻譯者" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:176 +msgid "New update available" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:190 +msgid "" +"The update is downloading in the background and will start once it finishes" +msgstr "" + +#: libcavalier/src/controllers/mainwindowcontroller.cpp:195 +msgid "Unable to download and install update" +msgstr "" + +#: libcavalier/src/controllers/preferencesviewcontroller.cpp:97 +msgid "None" +msgstr "" + +#: libcavalier/src/models/colorprofile.cpp:11 +#: libcavalier/src/models/colorprofile.cpp:27 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:220 +msgid "Default" +msgstr "預設" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:26 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:173 +msgid "Options" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:29 +msgid "Scale" +msgstr "縮放" + +#: org.nickvision.cavalier.gnome/blueprints/image_dialog.blp:44 +msgid "Alpha" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:5 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:8 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:15 +msgid "Preferences" +msgstr "設定" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:6 +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:20 +msgid "Keyboard Shortcuts" +msgstr "快捷鍵" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:7 +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:32 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:51 +msgid "About Cavalier" +msgstr "關於 Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:23 +msgid "Main Menu" +msgstr "主選單" + +#. Home Page +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:37 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:53 +#, fuzzy +msgid "Visualize Your Audio" +msgstr "使用 CAVA 可視化音訊" + +#: org.nickvision.cavalier.gnome/blueprints/main_window.blp:38 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:54 +#, fuzzy +msgid "Play some music or watch a video and see your sound come to life" +msgstr "Cavalier 會聆聽您電腦的聲音。播放一些音樂或影片來讓你的音樂動起來!" + +#. Add Navigation Items +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:11 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:26 +msgid "Interface" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:15 +msgid "User Interface" +msgstr "" + +#. Localize Strings +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:18 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:20 +msgid "Theme" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Light" +msgstr "亮色" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +#, fuzzy +msgctxt "Theme" +msgid "Dark" +msgstr "深色" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:20 +msgctxt "Theme" +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:31 +#, fuzzy +msgid "Drawing Area" +msgstr "繪圖模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:34 +#, fuzzy +msgid "Drawing Mode" +msgstr "繪圖模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Box" +msgstr "箱型" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:36 +msgid "Circle" +msgstr "圓圈" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:46 +#, fuzzy +msgid "Drawing Shape" +msgstr "繪圖模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Wave" +msgstr "波浪" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Levels" +msgstr "音量" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Particles" +msgstr "顆粒" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Bars" +msgstr "條狀" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Spine" +msgstr "錐形" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +msgid "Splitter" +msgstr "分隔" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:48 +#, fuzzy +msgid "Hearts" +msgstr "愛心" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:58 +#, fuzzy +msgid "Drawing Direction" +msgstr "繪圖方向" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Top to Bottom" +msgstr "從上到下" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Bottom to Top" +msgstr "從下到上" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Left to Right" +msgstr "從左到右" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:60 +#, fuzzy +msgid "Right to Left" +msgstr "從右到左" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:70 +msgid "Fill Shapes" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:79 +#, fuzzy +msgid "Mirror Mode" +msgstr "變更鏡像模式" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Off" +msgstr "關" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Full" +msgstr "完整" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Split Channels" +msgstr "左右聲道分離" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +msgid "Full Reverse" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:81 +#, fuzzy +msgid "Split Channels Reverse" +msgstr "左右聲道分離" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:91 +#, fuzzy +msgid "Area Margin" +msgstr "繪圖邊距" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:106 +#, fuzzy +msgid "Area X Offset" +msgstr "X 軸偏移" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:121 +#, fuzzy +msgid "Area Y Offset" +msgstr "Y 軸偏移" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:136 +msgid "Item Spacing" +msgstr "" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:151 +#, fuzzy +msgid "Item Roundness" +msgstr "變更項目的圓角" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:169 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:27 +#, fuzzy +msgid "Cava" +msgstr "Cavalier" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:176 +msgid "Channels" +msgstr "頻道數" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Mono" +msgstr "單聲道" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:178 +msgid "Stereo" +msgstr "雙聲道" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:188 +msgid "Framerate" +msgstr "幀數" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:204 +#, fuzzy +msgid "Number of Bars" +msgstr "欄數" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:220 +#, fuzzy +msgid "Reverse Bar Order" +msgstr "反向排序" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:229 +#, fuzzy +msgid "Automatic Sensitivity" +msgstr "自動偵測靈敏度" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:230 +#, fuzzy +msgid "Cavalier will attempt to decrease sensitivity if the bars peak." +msgstr "當圖形超過限制後嘗試降低靈敏度。" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:239 +#, fuzzy +msgid "Manual Sensitivity" +msgstr "靈敏度" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:255 +#, fuzzy +msgid "Monstercat Smoothing" +msgstr "Monstercat 平滑" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:264 +#, fuzzy +msgid "Noise Reduction Factor" +msgstr "減少噪音" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:282 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:28 +msgid "Colors" +msgstr "顏色" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:286 +#, fuzzy +msgid "Profiles" +msgstr "新增設定檔" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:291 +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:320 +msgid "Add" +msgstr "新增" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:300 +#, fuzzy +msgid "Active Profile" +msgstr "刪除設定檔" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:311 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:29 +#, fuzzy +msgid "Images" +msgstr "圖片" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:315 +#, fuzzy +msgid "Background Images" +msgstr "變更背景圖片" + +#: org.nickvision.cavalier.gnome/blueprints/preferences_dialog.blp:329 +#, fuzzy +msgid "Active Image" +msgstr "新增圖片" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:12 +msgctxt "Shortcut" +msgid "Application" +msgstr "應用程式" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:25 +#, fuzzy +msgid "About Application" +msgstr "應用程式" + +#: org.nickvision.cavalier.gnome/blueprints/shortcuts_dialog.blp:30 +msgid "Quit" +msgstr "退出" + +#: org.nickvision.cavalier.gnome/src/views/mainwindow.cpp:169 +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:48 +msgid "GitHub Repo" +msgstr "GitHub 儲存庫" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Delete Profile?" +msgstr "刪除設定檔" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:109 +#, fuzzy +msgid "Are you sure you want to delete this profile?" +msgstr "你確定你要刪除設定檔 \"{0}\"?" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "Yes" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:110 +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:170 +msgid "No" +msgstr "" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:134 +#, fuzzy +msgid "Select Background Image" +msgstr "變更背景圖片" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Delete Image?" +msgstr "刪除設定檔" + +#: org.nickvision.cavalier.gnome/src/views/preferencesdialog.cpp:169 +#, fuzzy +msgid "Are you sure you want to delete this image?" +msgstr "你確定你要刪除設定檔 \"{0}\"?" + +#. Load +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:34 +msgid "About" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:35 +#, fuzzy +msgid "Changelog" +msgstr "頻道數" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:36 +msgid "Credits" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:37 +msgid "Debugging" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:44 +#, fuzzy +msgid "Developers" +msgstr "音量" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:46 +msgid "Designers" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:48 +msgid "Artists" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/aboutdialog.cpp:50 +msgid "Copy Debug Information" +msgstr "" + +#: org.nickvision.cavalier.qt/src/controls/infobar.cpp:14 +#, fuzzy +msgid "Notification" +msgstr "旋轉" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:39 +#, fuzzy +msgid "Cavalier (Preview)" +msgstr "Cavalier" + +#. MenuBar +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:42 +msgid "File" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:43 +msgid "Exit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:44 +msgid "Edit" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:45 +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:18 +msgid "Settings" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:46 +msgid "Help" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:47 +msgid "Check for Updates" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:49 +msgid "Report a Bug" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:50 +msgid "Discussions" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/mainwindow.cpp:156 +msgid "Update" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:21 +msgid "Light" +msgstr "亮色" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:22 +msgid "Dark" +msgstr "深色" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:23 +msgid "System" +msgstr "" + +#: org.nickvision.cavalier.qt/src/views/settingsdialog.cpp:24 +msgid "Automatically Check for Updates" +msgstr "" + +#, fuzzy +#~ msgid "Color Profiles" +#~ msgstr "變更顏色設定檔" + +#~ msgid "Add New Profile" +#~ msgstr "新增設定檔" + +#~ msgid "Cancel" +#~ msgstr "取消" + +#~ msgid "Delete" +#~ msgstr "刪除" + +#~ msgid "JPEG and PNG images" +#~ msgstr "JPEG 及 PNG 圖片" + +#~ msgid "New color profile will be a copy of the current active profile." +#~ msgstr "新的顏色設定檔將會是目前設定檔的副本。" + +#~ msgid "Nicholas Logozzo" +#~ msgstr "Nicholas Logozzo" + +#~ msgid "On" +#~ msgstr "開" + +#~ msgid "Profile Name" +#~ msgstr "設定擋名稱" + +#~ msgid "Select an image" +#~ msgstr "選取圖檔" + +#~ msgid "Command Help" +#~ msgstr "指令說明" + +#, fuzzy +#~ msgid "Let's dance!" +#~ msgstr "來跳舞吧!" + +#~ msgid "Radius" +#~ msgstr "半徑" + +#~ msgid "Mirror" +#~ msgstr "鏡像" + +#~ msgid "Reverse mirror" +#~ msgstr "反向鏡像" + +#~ msgid "Size of gaps around drawing area (in pixels)." +#~ msgstr "距離繪圖範圍到邊緣的距離 (像素)。" + +#, fuzzy +#~ msgid "Offset between items" +#~ msgstr "項目之間的偏移" + +#, fuzzy +#~ msgid "The size of spaces between elements (in percent)." +#~ msgstr "兩個項目之間的間隔百分比。" + +#~ msgid "Roundness of items" +#~ msgstr "圓角強度" + +#~ msgid "How much rounded the elements should be (in percent)." +#~ msgstr "項目的圓角強度 (百分比)。" + +#~ msgid "Filling" +#~ msgstr "填滿" + +#~ msgid "Whether shapes should be filled or outlined." +#~ msgstr "圖形是否要填滿或是僅顯示外框。" + +#~ msgid "Thickness of lines" +#~ msgstr "線條粗細" + +#~ msgid "Thickness of lines when filling is off (in pixels)." +#~ msgstr "填滿關閉時,線條的粗細 (像素)。" + +#~ msgid "Borderless window" +#~ msgstr "無邊框視窗" + +#~ msgid "Whether to disable window shadow and borders." +#~ msgstr "是否要調用視窗邊框及陰影。" + +#~ msgid "Sharp corners" +#~ msgstr "尖角" + +#~ msgid "Whether the main window corners should be sharp." +#~ msgstr "視窗的邊角是否為尖角。" + +#~ msgid "Window controls" +#~ msgstr "視窗控制" + +#~ msgid "Whether to show window control buttons." +#~ msgstr "是否要顯示視窗控制按鈕。" + +#~ msgid "Autohide headerbar" +#~ msgstr "自動隱藏控制欄" + +#, fuzzy +#~ msgid "Whether to hide headerbar when main window is not focused." +#~ msgstr "是否要在視窗未選取時隱藏控制欄。" + +#~ msgid "Number of frames per second." +#~ msgstr "每秒的幀數。" + +#~ msgid "Custom" +#~ msgstr "自訂" + +#~ msgid "Custom Framerate" +#~ msgstr "自訂幀數" + +#~ msgid "" +#~ "Manual sensitivity. If automatic sensitivity is enabled, this will only " +#~ "be the initial value." +#~ msgstr "手動設置靈敏度。如果啟用自動靈敏度,這將會是一個初始值。" + +#~ msgid "Whether to enable the so-called «Monstercat smoothing»." +#~ msgstr "是否要啟用 \"Monstercat\" 平滑。" + +#, fuzzy +#~ msgid "" +#~ "This factor adjusts the integral and gravity filters to keep the signal " +#~ "smooth.\n" +#~ "Higher value leads to a slower and smoother result." +#~ msgstr "" +#~ "這項數值可使訊號穩定且順滑。\n" +#~ "更高的數值會使影像反應更慢,但是會更滑順。" + +#~ msgid "Whether to reverse order of bars for each channel." +#~ msgstr "是否要將每個頻道的圖形顛倒。" + +#~ msgid "Application Theme" +#~ msgstr "應用程式主題" + +#~ msgid "Foreground Colors" +#~ msgstr "前景顏色" + +#, fuzzy +#~ msgid "Add foreground color" +#~ msgstr "前景顏色" + +#~ msgid "Background Colors" +#~ msgstr "背景顏色" + +#, fuzzy +#~ msgid "Add background color" +#~ msgstr "背景顏色" + +#, fuzzy +#~ msgid "Background" +#~ msgstr "背景顏色" + +#, fuzzy +#~ msgid "Foreground" +#~ msgstr "前景顏色" + +#, fuzzy +#~ msgid "No Images" +#~ msgstr "沒有圖片" + +#~ msgid "No Image" +#~ msgstr "沒有圖片" + +#~ msgid "Change Drawing Mode" +#~ msgstr "變更繪圖方式" + +#~ msgid "Change radius in Circle modes" +#~ msgstr "變更圓圈半徑" + +#~ msgid "Change rotation in Circle modes" +#~ msgstr "變更圓圈模式的角度" + +#~ msgid "Toggle Reverse Mirror" +#~ msgstr "啟用/關閉反向鏡像" + +#~ msgid "Change Drawing Area Margin" +#~ msgstr "變更繪圖邊距" + +#~ msgid "Change Drawing Area X Offset" +#~ msgstr "變更繪圖區域 X 軸偏移" + +#~ msgid "Change Drawing Area Y Offset" +#~ msgstr "變更繪圖區域 Y 軸偏移" + +#~ msgid "Change Drawing Direction" +#~ msgstr "變更繪圖方向" + +#, fuzzy +#~ msgid "Change Offset Between Items" +#~ msgstr "變更項目之間的間隔" + +#~ msgid "Toggle Filling" +#~ msgstr "開啟/關閉填滿模式" + +#~ msgid "Change Lines Thickness" +#~ msgstr "變更線條粗細" + +#~ msgid "Toggle Window Borders" +#~ msgstr "開啟/關閉視窗邊框" + +#~ msgid "Toggle Sharp Corners" +#~ msgstr "開啟/關閉視窗尖角" + +#~ msgid "Change Number of Bars" +#~ msgstr "變更條數" + +#~ msgid "Toggle Channels" +#~ msgstr "變更頻道數" + +#~ msgid "Toggle Reverse Order" +#~ msgstr "開啟/關閉反向排序" + +#~ msgid "Other" +#~ msgstr "其他" + +#, fuzzy +#~ msgid "Change Background Image Scale" +#~ msgstr "變更背景圖片" + +#, fuzzy +#~ msgid "Change Background Image Alpha" +#~ msgstr "變更背景圖片" + +#, fuzzy +#~ msgid "Change Foreground Image" +#~ msgstr "變更背景圖片" + +#, fuzzy +#~ msgid "Change Foreground Image Scale" +#~ msgstr "變更圖片縮放" + +#, fuzzy +#~ msgid "Change Foreground Image Alpha" +#~ msgstr "變更背景圖片" + +#~ msgid "Toggle Fullscreen" +#~ msgstr "全螢幕" + +#~ msgid "Resizing..." +#~ msgstr "縮放中,,," + +#~ msgid "" +#~ "Cavalier is an audio visualizer based on CAVA with customizable interface." +#~ msgstr "Cavalier 是基於 Cava 製作的高度自訂音訊可視化程式。" + +#~ msgid "11 drawing modes!" +#~ msgstr "11 種繪圖模式!" + +#, fuzzy +#~ msgid "Set any color, a gradient or an image for background and foreground." +#~ msgstr "將任何顏色或漸層設為背景或是前景色。" + +#~ msgid "Configure smoothing, noise reduction and a few other CAVA settings." +#~ msgstr "變更平滑程度,噪音減少以及部份的 CAVA 設定。" diff --git a/resources/windows/org.nickvision.cavalier.manifest b/resources/windows/org.nickvision.cavalier.manifest new file mode 100644 index 0000000..9be64fb --- /dev/null +++ b/resources/windows/org.nickvision.cavalier.manifest @@ -0,0 +1,9 @@ + + + + + + UTF-8 + + + \ No newline at end of file diff --git a/resources/windows/org.nickvision.cavalier.rc b/resources/windows/org.nickvision.cavalier.rc new file mode 100644 index 0000000..a911232 --- /dev/null +++ b/resources/windows/org.nickvision.cavalier.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "../org.nickvision.cavalier.ico" diff --git a/snap/cavalier.patch b/snap/cavalier.patch deleted file mode 100644 index 5c84565..0000000 --- a/snap/cavalier.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -Naur a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.desktop.in b/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.desktop.in ---- a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.desktop.in 2023-08-31 19:54:31.875957934 +0530 -+++ b/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.desktop.in 2023-08-31 19:57:23.820717117 +0530 -@@ -3,7 +3,7 @@ - Name=Cavalier - Comment=Visualize audio with CAVA - Exec=@EXEC@ --Icon=org.nickvision.cavalier -+Icon=snap.cavalier.org.nickvision.cavalier - Terminal=false - Type=Application - StartupNotify=true -diff -Naur a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.metainfo.xml.in b/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.metainfo.xml.in ---- a/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.metainfo.xml.in 2023-07-21 11:48:44.565563047 +0530 -+++ b/NickvisionCavalier.Shared/Linux/org.nickvision.cavalier.metainfo.xml.in 2023-07-21 12:14:33.584013059 +0530 -@@ -1,6 +1,7 @@ - - - org.nickvision.cavalier.desktop -+ snap.cavalier.org.nickvision.cavalier - CC0-1.0 - MIT - Cavalier diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 4504935..0201273 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,27 +1,60 @@ -name: cavalier -base: core22 +name: cavalier +base: core24 adopt-info: cavalier grade: stable confinement: strict -#compression: lzo -architectures: - - build-on: amd64 - - build-on: arm64 - - build-on: armhf +compression: lzo + lint: ignore: - - library: - - usr/lib/* - - usr/bin/* + - classic + - library parts: + deps: + plugin: nil + stage-packages: + - libstdc++6 + - libboost-system1.83.0 + - libboost-json1.83.0 + prime: + - usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libstdc++*.so* + - usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libboost_system.so* + - usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libboost_json.so* + + maddy: + source: https://github.com/progsource/maddy.git + source-tag: '1.4.0' + plugin: dump + source-depth: 1 + override-prime: '' + + libnick: + after: [maddy] + source: https://github.com/nickvisionapps/libnick.git + source-tag: "2025.3.6" + source-depth: 1 + plugin: cmake + cmake-parameters: + - -DCMAKE_INSTALL_PREFIX=/usr + - -DBUILD_TESTING=OFF + - -DCMAKE_BUILD_TYPE=Release + build-environment: + - CPLUS_INCLUDE_PATH: ${CRAFT_STAGE}/include + build-packages: + - libssl-dev + - uuid-dev + - libboost-dev + - libboost-system1.83-dev + - libboost-json1.83-dev + override-prime: '' + cava: - #after: [ fftw3f ] source: https://github.com/karlstav/cava.git - source-tag: '0.9.1' + source-tag: '0.10.4' source-depth: 1 build-environment: - - CFLAGS: -I/snap/gnome-42-2204-sdk/current/usr/include + - CFLAGS: -I/snap/gnome-46-2404-sdk/current/usr/include plugin: autotools autotools-configure-parameters: - --prefix=/usr @@ -29,84 +62,50 @@ parts: - libfftw3-dev prime: - -usr/share - #fftw3f: - #source: https://www.fftw.org/fftw-3.3.10.tar.gz - #plugin: autotools - #autotools-configure-parameters: - # - --prefix=/usr - # - --enable-threads - # - --enable-shared - # - --disable-static - # - --enable-float - # - --enable-sse2 - # - --enable-avx - # - --enable-avx-128-fma - #build-packages: - #- libgfortran-12-dev - cavalier: - after: [ cava ] - # See 'snapcraft plugins' - plugin: nil - source: . - #source-tag: '' + + libxmlplusplus: + source: https://github.com/libxmlplusplus/libxmlplusplus.git + source-tag: '5.4.0' source-depth: 1 - build-environment: - - LDFLAGS: -L$CRAFT_STAGE/usr/lib - - PKG_CONFIG_PATH: $CRAFT_STAGE/usr/lib/pkgconfig:$PKG_CONFIG_PATH - - DOTNET_CLI_TELEMETRY_OPTOUT: '1' - - DOTNET_ROOT: $HOME/.dotnet - - PATH: $PATH:$HOME/.dotnet:$HOME/.dotnet/tools + plugin: meson build-packages: - - brotli - - blueprint-compiler - - wget - - libiniparser-dev - override-pull: | - craftctl default - wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh - chmod +x ./dotnet-install.sh - ./dotnet-install.sh --channel 8.0 - patch -p1 < $CRAFT_PROJECT_DIR/snap/cavalier.patch - override-build: | - craftctl default - cd $CRAFT_PART_SRC - dotnet tool restore - dotnet cake --target=Publish --prefix=/snap/cavalier/current/usr --ui=gnome --self-contained - dotnet cake --target=Install --destdir=$CRAFT_PART_INSTALL - mkdir -p $CRAFT_PART_INSTALL/meta/gui - cp -r $CRAFT_PART_INSTALL/snap/cavalier/current/usr/share/icons $CRAFT_PART_INSTALL/meta/gui/ - for i in `find $CRAFT_PART_INSTALL/meta/gui/icons -name "*.svg" -o -name "*.png"`; do - mv $i "`dirname $i`/snap.$CRAFT_PROJECT_NAME.`basename $i`" - done - parse-info: [ usr/share/metainfo/org.nickvision.cavalier.metainfo.xml ] - organize: - snap/cavalier/current: . + - libicu-dev + meson-parameters: + - --prefix=/usr + - -Dmaintainer-mode=false prime: - - -snap/cavalier + - usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/libxml++-5.0*.so* - deps: - after: [ cavalier ] - plugin: nil + cavalier: + after: [maddy, libnick, cava, libxmlplusplus] + plugin: cmake + source: . + build-snaps: + - cmake + - blueprint-compiler/latest/edge + cmake-parameters: + - -DCMAKE_INSTALL_PREFIX=/snap/cavalier/current/usr + - -DCMAKE_BUILD_TYPE=Release + - -DUI_PLATFORM=gnome stage-packages: - - libfftw3-double3 - - libiniparser1 - prime: - - usr/lib/$CRAFT_ARCH_TRIPLET/libiniparser.so.1 - - usr/lib/$CRAFT_ARCH_TRIPLET/libfftw3.so.3 - - usr/lib/$CRAFT_ARCH_TRIPLET/libfftw3.so.3.5.8 + - libstdc++6 + build-environment: + - CMAKE_PREFIX_PATH: ${CRAFT_STAGE}/usr/lib/${CRAFT_ARCH_TRIPLET_BUILD_FOR}/cmake${CMAKE_PREFIX_PATH:+:$CMAKE_PREFIX_PATH} + parse-info: [usr/share/metainfo/org.nickvision.cavalier.metainfo.xml] + organize: + snap/application/current: . slots: cavalier: interface: dbus bus: session name: org.nickvision.cavalier + apps: cavalier: - command: usr/bin/org.nickvision.cavalier - common-id: org.nickvision.cavalier + command: usr/lib/org.nickvision.cavalier/org.nickvision.cavalier.gnome desktop: usr/share/applications/org.nickvision.cavalier.desktop - extensions: [ gnome ] - environment: - CAVALIER_INPUT_METHOD: pulse + common-id: org.nickvision.cavalier + extensions: [gnome] plugs: - - audio-playback + - unity7