diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c1c6ab632..2e4765fb1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -391,14 +391,21 @@ deploy_docs: needs: - job: build_docs artifacts: true + before_script: + - apk add openssh-client rsync + - mkdir -p ~/.ssh + - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - eval `ssh-agent -s` + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + script: + - rsync -r -e "ssh -p 2282" $CI_PROJECT_DIR/public/ docs@docs.funkwhale.audio:/htdocs/$CI_COMMIT_REF_NAME rules: - if: $CI_COMMIT_BRANCH =~ /(stable|develop)/ image: $CI_REGISTRY/funkwhale/ci/python:3.11 variables: GIT_STRATEGY: none - script: - - rsync -r -e "ssh -p 2282" $CI_PROJECT_DIR/public/ docs@docs.funkwhale.audio:/htdocs/$CI_COMMIT_REF_NAME .docker: interruptible: false diff --git a/CHANGELOG.md b/CHANGELOG.md index 50153b841..4e9a7c7c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,64 +9,10 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog. -## 1.3.0-rc6 (2023-05-12) +## 1.3.0 (2023-06-01) -Updates since 1.3.0-rc5 - -- Add systemd update instructions to Debian upgrade instructions (#1966) -- Fix broken links in CHANGELOG (#1976) -- Add generic upgrade instructions to Docker postgres documentation (#2049) -- Added Nginx regeneration instructions to Debian update guide (#2050) -- Fixed mobile player element widths (#2054) -- Allow summary field of actors to be blank. This leaves actors valid that have a blank (`""`) summary field and allows follows from those. -- Fix front album tracks count translation -- Prefer str over dict for the CACHE_URL api setting\ - This fix the ability to reuse the CACHE_URL with other settings such as\ - CELERY_BROKER_URL.\ - Move api docker hardcoded env vars in the settings module\ - -## 1.3.0-rc5 (2023-03-26) - -Updates since 1.3.0-rc4 - -- Bump cryptography to 38.0.3-rc1 to match package provided by alpine -- Fix numerous frontend performance and stability issues - -## 1.3.0-rc4 (2023-03-24) - -Update since 1.3.0-rc2: - -- Resolved an issue where queue text with mouse over has dark text on dark background (#2058) (2058) -- Improve signal handling for service and containers -- Fixes an issue which made it possible to download all media files without access control (#2101) - -## 1.3.0-rc3 (2023-01-23) - -Update since 1.3.0-rc2: - -- Fix pipeline execution for tags - -## 1.3.0-rc2 (2023-01-23) - -Update since 1.3.0-rc1: - -Enhancements: - -- Retry fetching new radio track 5 times if error occurred before resetting radio session (#2022) - -Bugfixes: - -- Docker setup: do not export the API port 5000 publicly -- Fix artist name submission in Maloja plugin - -Deprecations: - -- That's the last minor version series that supports python3.7. Funkwhale 1.4 will remove support for it. #1693 -- Deprecate the api manage.py script in favor of the funkwhale-manage entrypoint - -## 1.3.0-rc1 (2023-01-20) - -Upgrade instructions are available at https://docs.funkwhale.audio/admin/upgrading.html +Upgrade instructions are available at +https://docs.funkwhale.audio/admin/upgrading.html Update instructions: @@ -74,7 +20,7 @@ Update instructions: In this small example we show you how to save the old config and update it correctly: - ```sh + ``` export FUNKWHALE_VERSION="1.3.0" cd /srv/funkwhale docker-compose down @@ -89,32 +35,26 @@ Update instructions: Replace all occurrences of `/funkwhale` by `/usr/share/nginx/html`. This loads the templates from your `nginx` folder and overrides the template files in the Docker container. - ```` - - ```sh + ``` docker-compose up -d - ```` + ``` - The Docker instructions now use the updated Docker compose plugin. If you previously used the `docker-compose` standalone installation, do the following while upgrading: -- The Docker instructions now use the updated Docker compose plugin. If you previously used the `docker-compose` standalone installation, do the following while upgrading: - - 1. Download the [Docker compose plugin](https://docs.docker.com/compose/install/linux/#install-using-the-repository) + 1. Download the `Docker compose plugin `\_ 2. Stop your containers using the **docker-compose** syntax. - ```sh + .. code-block:: sh sudo docker-compose down - ``` 3. Bring the containers back up using the **docker compose** syntax. - ```sh + .. code-block:: sh sudo docker compose up -d - ``` After this you can continue to use the **docker compose** syntax for all Docker management tasks. -- Upgrade Postgres to version 15. [Make sure to migrate!](https://docs.funkwhale.audio/administrator/upgrade/docker.html#upgrade-the-postgres-container) +- Upgrade Postgres to version 15. [Make sure to migrate!](https://docs.funkwhale.audio/administrator_documentation/upgrade_docs/docker.html#upgrade-the-postgres-container) - With this update Funkwhale starts using poetry to maintain its dependencies. We therefore recommend removing the old virtualenv by running `rm -rf /srv/funkwhale/virtualenv`. @@ -132,12 +72,15 @@ Enhancements: - Add coverage report for Frontend Tests - Add hint which serializer is used for OembedView (#1901) - Add music visualizer (#1135) +- Add playable tracks to gitpod instance - Add playlists radio to search page (#1968) - Add proper serialization for TextPreviewView (#1903) +- Add python debug and test support for gitpod - Add Serializer for SpaManifest endpoint - Add support for python 3.11 - Added proper serializers for the rate-limit endpoint. - Added type hints to the API. +- Adding support for play all radio in search result page (#1563) - All administrator documentation has been rewritten to improve clarity and update outdated information. - Allow arbitrary length names for artists, albums and tracks - Allow installing the funkwhale_api package @@ -184,6 +127,7 @@ Enhancements: - Remove unnecessary or wrong `is` keyword usage from backend - Rename OpenAPI schema's operation ids for nicer API client method names. - Replace django-channels package with web socket implementation from @vueuse/core (#1715) +- Retry fetching new radio track 5 times if error occurred before resetting radio session (#2022) - Rewrite embedded player to petite-vue - Split DATABASE_URL into multiple configuration variables - The ListenBrainz plugin submits the track duration @@ -204,8 +148,12 @@ Bugfixes: - Allow enabling systemd funkwhale.target - Allow playback of media from external frontend (#1937). +- Allow summary field of actors to be blank. This leaves actors valid that have a blank (`""`) summary field and allows follows from those. +- Catch ValueError on radio end (#1596) - Channel overview was displaying foreign tracks (#1773) (1773) +- Docker setup: do not export the API port 5000 publicly - Fix adding same track multiple times (#1933) +- Fix artist name submission in Maloja plugin - Fix changing visualizer CORS error (#1934). - Fix content form autofocus despite `autofocus` prop being set to `false` (#1924) - Fix CSP header issues @@ -217,10 +165,14 @@ Bugfixes: - Fix embedded player not working on social posts (1946) - Fix favorite button in queue - Fix fetching pages of albums in album detail view (#1927) +- Fix front album tracks count translation - Fix global keyboard shortcuts firing when input is focused (#1876) +- Fix lots of problems in debian installation guide +- Fix media directory nginx routing error in front docker container introduced in !1897 - Fix OAuth login (#1890) - Fix play button in albums with multi-page volumes (#1928) - Fix player closing when queue ends (#1931) +- Fix postgres connection details in docker setup - Fix purging of dangling files #1929 - Fix remote search (#1857) - Fix search by text in affected views (#1858) @@ -230,29 +182,44 @@ Bugfixes: - Fix validity issues in openapi/swagger spec files (#1171) - Fixed an issue which caused links in Markdown forms to not render correctly. (#2023) - Fixed login redirect (1736) +- Fixed mobile player element widths (#2054) - Fixed remote subscription form in Podcast and search views (#1708) - Fixed upload form VUE errors (#1738) (1738) +- Fixes an issue which made it possible to download all media files without access control (#2101) - Fixes channel page (#1729) (1729) - Fixes development environment set-up with docker (1726) - Fixes embed player (#1783) (1783) - Fixes service worker (#1634) - Fixes track listenings not being sent when tab is not focused - Hide create custom radio to un-authenticated users (#1720) +- Improve signal handling for service and containers +- Move api docker hardcoded env vars in the settings module +- Prefer str over dict for the CACHE_URL api setting + + This fix the ability to reuse the CACHE_URL with other settings such as + CELERY_BROKER_URL. + - Remove trailing slash from reverse proxy configuration - Remove unused Footer component (#1660) - Remove usage of deprecated Model and Serializer fields (#1663) +- Resolved an issue where queue text with mouse over has dark text on dark background (#2058) (2058) - Skip refreshing local actors in celery federation.refresh_actor_data task - fixes disappearing avatars (!1873) Documentation: - Add ability to translate documentation into multiple languages +- Add generic upgrade instructions to Docker postgres documentation (#2049) - Add restore instructions to backup docs (#1627). +- Add systemd update instructions to Debian upgrade instructions (#1966) +- Added Nginx regeneration instructions to Debian update guide (#2050) - Added virtualenv upgrade instructions for Debian (#1562). - Cleaned up documentation - Document the new login flow of the CLI-tool (#1800) - Documented LOGLEVEL command (#1541). - Documented the `NGINX_MAX_BODY_SIZE` .env variable (#1624). +- Fix broken links in CHANGELOG (#1976) - Harden security for debian install docs +- Remove unnecessary postgres variable in Docker migration guide (#2124). - Rewrote documentation contributor guide. - Rewrote the architecture file (#1908) - Rewrote the federation developer documentation (#1911) @@ -266,14 +233,12 @@ Other: - Add a CI job to check if changelog snippet is available - Add CI broken links checker - Add pre-commit hooks - - flake8 - black - isort - pyupgrade - prettier - codespell - - Add pre-commit to development tools - Align the openapi spec to the actual API wherever possible - Cache lychee checked urls for 1 day in CI @@ -297,11 +262,165 @@ Other: - Unpin asgiref in API dependencies - Use vite for building the frontend, #1644 +Deprecation: + +- Deprecate the api manage.py script in favor of the funkwhale-manage entrypoint +- That's the last minor version series that supports python3.7. Funkwhale 1.4 will remove support for + it. #1693 +- The automatically generated 'DATABASE_URL' configuration in the docker setup is deprecated, please + configure either the 'DATABASE_URL' environment variable or the 'DATABASE_HOST', 'DATABASE_USER' and + 'DATABASE_PASSWORD' environment variables instead. + Removal: - This release removes support for Python 3.6. Please make sure you update your python version before Updating Funkwhale! +Committers: + +- Agate +- Aina Hernàndez Campaña +- AMoonRabbit +- Anton +- bruce diao +- Bruno Talanski +- ButterflyOfFire +- Çağla Pickaxe +- Ciarán Ainsworth +- Dignified Silence +- dignny +- Éilias McTalún +- EorlBruder +- Fedi Funkers +- Georg Krause +- ghose +- Henri Dickson +- Jacek Pruciak +- Jasper Bogers +- Jhoan Sebastian Espinosa Borrero +- jo +- jooola +- Julian Rademacher +- JuniorJPDJ +- Kasper Seweryn +- Keunes +- Kisel1337 +- Laurin W +- Marcos Peña +- Matyáš Caras +- Michael Long +- nztvar +- oki +- Petitminion +- Philipp Wolfer +- poeppe +- Porrumentzio +- ppom +- Reinhard Prechtl +- Sky +- Sporiff +- Stuart Begley-Miller +- @ta +- Thomas +- Till Robin Zickel +- tobifroe +- wvffle + +Contributors to our Issues: + +- AMoonRabbit +- Agate +- Artem Anufrij +- ChengChung +- Ciarán Ainsworth +- Creak +- Eric Mesa +- Georg Krause +- Hans Bauer +- HurricaneDancer +- Jakob Schürz +- Jucgshu +- Julian-Samuel Gebühr +- JuniorJPDJ +- Kasper Seweryn +- Keunes +- Laser Lesbian +- Laurin W +- Marco +- Marcos Peña +- Martin Giger +- Mathieu Jourdan +- MattDHarding +- Meliurwen +- Micha Gläß-Stöcker +- MichaelBechHansen +- Nathan Mih +- Nicolas Derive +- Nolan Darilek +- Philipp Wolfer +- Porrumentzio +- Rodion Borisov +- Sam Birch +- Sky Leite +- TheSunCat +- Thomas +- Tobias Frölich +- Tony Wasserka +- Vincent Riquer +- Virgile Robles +- dddddd-mmmmmm +- gerry_the_hat +- getzze +- heyarne +- jake +- jooola +- jovuit +- nouts +- petitminion +- ppom +- pullopen +- resister +- silksow +- troll + +Contributors to our Merge Requests: + +- AMoonRabbit +- Ciarán Ainsworth +- Georg Krause +- JuniorJPDJ +- Kasper Seweryn +- Laurin W +- Marcos Peña +- Mathieu Jourdan +- Nicolas Derive +- Philipp Wolfer +- Rodion Borisov +- Thomas +- Tobias Frölich +- getzze +- jooola +- mqus +- petitminion +- poeppe + +## 1.2.10 (2023-03-17) + +Bugfixes: + +- Fixes a security vulnerability that allows to download all media files without access control #2101 + +Contributors to our Issues: + +- Georg Krause +- JuniorJPDJ + +Special thanks to Conradowatz for reporting the vulnerability + +Committers: + +- JuniorJPDJ + ## 1.2.9 (2022-11-25) Upgrade instructions are available at https://docs.funkwhale.audio/admin/upgrading.html diff --git a/api/pyproject.toml b/api/pyproject.toml index 1660d24e7..233276179 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "funkwhale-api" -version = "1.2.10" +version = "1.3.0" description = "Funkwhale API" authors = ["Funkwhale Collective"] diff --git a/changes/changelog.d/1135.enhancement b/changes/changelog.d/1135.enhancement deleted file mode 100644 index a24ec8e83..000000000 --- a/changes/changelog.d/1135.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add music visualizer (#1135) diff --git a/changes/changelog.d/1171.bugfix b/changes/changelog.d/1171.bugfix deleted file mode 100644 index 52e285460..000000000 --- a/changes/changelog.d/1171.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix validity issues in openapi/swagger spec files (#1171) diff --git a/changes/changelog.d/1319.enhancement b/changes/changelog.d/1319.enhancement deleted file mode 100644 index 40a24231c..000000000 --- a/changes/changelog.d/1319.enhancement +++ /dev/null @@ -1 +0,0 @@ -Parameterize the default S3 ACL when uploading objects. (#1319) diff --git a/changes/changelog.d/1362.bugfix b/changes/changelog.d/1362.bugfix deleted file mode 100644 index 461606312..000000000 --- a/changes/changelog.d/1362.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix editing playlist tracks (#1362) diff --git a/changes/changelog.d/1526.enhancement b/changes/changelog.d/1526.enhancement deleted file mode 100644 index 30e865a9f..000000000 --- a/changes/changelog.d/1526.enhancement +++ /dev/null @@ -1 +0,0 @@ -Automatically fetch next page of tracks (#1526) diff --git a/changes/changelog.d/1541.doc b/changes/changelog.d/1541.doc deleted file mode 100644 index ac863e5a5..000000000 --- a/changes/changelog.d/1541.doc +++ /dev/null @@ -1 +0,0 @@ -Documented LOGLEVEL command (#1541). diff --git a/changes/changelog.d/1562.doc b/changes/changelog.d/1562.doc deleted file mode 100644 index 09ae5f8c9..000000000 --- a/changes/changelog.d/1562.doc +++ /dev/null @@ -1 +0,0 @@ -Added virtualenv upgrade instructions for Debian (#1562). diff --git a/changes/changelog.d/1563-enhancement b/changes/changelog.d/1563-enhancement deleted file mode 100644 index bc0699843..000000000 --- a/changes/changelog.d/1563-enhancement +++ /dev/null @@ -1 +0,0 @@ -Adding support for play all radio in search result page (#1563) diff --git a/changes/changelog.d/1624.doc b/changes/changelog.d/1624.doc deleted file mode 100644 index 140fa25c6..000000000 --- a/changes/changelog.d/1624.doc +++ /dev/null @@ -1 +0,0 @@ -Documented the `NGINX_MAX_BODY_SIZE` .env variable (#1624). diff --git a/changes/changelog.d/1627.doc b/changes/changelog.d/1627.doc deleted file mode 100644 index 49bd506bf..000000000 --- a/changes/changelog.d/1627.doc +++ /dev/null @@ -1 +0,0 @@ -Add restore instructions to backup docs (#1627). diff --git a/changes/changelog.d/1644.misc b/changes/changelog.d/1644.misc deleted file mode 100644 index 6b4937a0e..000000000 --- a/changes/changelog.d/1644.misc +++ /dev/null @@ -1 +0,0 @@ -Use vite for building the frontend, #1644 diff --git a/changes/changelog.d/1660.bugfix b/changes/changelog.d/1660.bugfix deleted file mode 100644 index a2931d286..000000000 --- a/changes/changelog.d/1660.bugfix +++ /dev/null @@ -1 +0,0 @@ -Remove unused Footer component (#1660) diff --git a/changes/changelog.d/1663.bugfix b/changes/changelog.d/1663.bugfix deleted file mode 100644 index 705938dff..000000000 --- a/changes/changelog.d/1663.bugfix +++ /dev/null @@ -1 +0,0 @@ -Remove usage of deprecated Model and Serializer fields (#1663) diff --git a/changes/changelog.d/1708.bugfix b/changes/changelog.d/1708.bugfix deleted file mode 100644 index 100750a35..000000000 --- a/changes/changelog.d/1708.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed remote subscription form in Podcast and search views (#1708) diff --git a/changes/changelog.d/1711.enhancement b/changes/changelog.d/1711.enhancement deleted file mode 100644 index 913939dd9..000000000 --- a/changes/changelog.d/1711.enhancement +++ /dev/null @@ -1 +0,0 @@ -New task checking if remote instance is reachable to avoid playback latence (#1711) diff --git a/changes/changelog.d/1720.bugfix b/changes/changelog.d/1720.bugfix deleted file mode 100644 index 5a804da06..000000000 --- a/changes/changelog.d/1720.bugfix +++ /dev/null @@ -1 +0,0 @@ -Hide create custom radio to un-authenticated users (#1720) diff --git a/changes/changelog.d/1726.bugfix b/changes/changelog.d/1726.bugfix deleted file mode 100644 index 21a96f7c5..000000000 --- a/changes/changelog.d/1726.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes development environment set-up with docker (1726) diff --git a/changes/changelog.d/1729.bugfix b/changes/changelog.d/1729.bugfix deleted file mode 100644 index b7dd2b7c4..000000000 --- a/changes/changelog.d/1729.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes channel page (#1729) (1729) diff --git a/changes/changelog.d/1736.bugfix b/changes/changelog.d/1736.bugfix deleted file mode 100644 index e8d15c345..000000000 --- a/changes/changelog.d/1736.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed login redirect (1736) diff --git a/changes/changelog.d/1738.bugfix b/changes/changelog.d/1738.bugfix deleted file mode 100644 index cd6ad4b04..000000000 --- a/changes/changelog.d/1738.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed upload form VUE errors (#1738) (1738) diff --git a/changes/changelog.d/1759.bugfix b/changes/changelog.d/1759.bugfix deleted file mode 100644 index 4389310cf..000000000 --- a/changes/changelog.d/1759.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix CSP issue caused by django-channels package (#1752) diff --git a/changes/changelog.d/1759.enhancement b/changes/changelog.d/1759.enhancement deleted file mode 100644 index 569282bf5..000000000 --- a/changes/changelog.d/1759.enhancement +++ /dev/null @@ -1 +0,0 @@ -Replace django-channels package with web socket implementation from @vueuse/core (#1715) diff --git a/changes/changelog.d/1768.enhancement b/changes/changelog.d/1768.enhancement deleted file mode 100644 index e597dc0f1..000000000 --- a/changes/changelog.d/1768.enhancement +++ /dev/null @@ -1 +0,0 @@ -Migrate to Vue 3 diff --git a/changes/changelog.d/1769.bugfix b/changes/changelog.d/1769.bugfix deleted file mode 100644 index c209cf176..000000000 --- a/changes/changelog.d/1769.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes service worker (#1634) diff --git a/changes/changelog.d/1769.enhancement b/changes/changelog.d/1769.enhancement deleted file mode 100644 index a212d50ba..000000000 --- a/changes/changelog.d/1769.enhancement +++ /dev/null @@ -1 +0,0 @@ -Handle PWA correctly and provide better cache strategy for album covers (#1721) diff --git a/changes/changelog.d/1773.bugfix b/changes/changelog.d/1773.bugfix deleted file mode 100644 index 73be673d4..000000000 --- a/changes/changelog.d/1773.bugfix +++ /dev/null @@ -1 +0,0 @@ -Channel overview was displaying foreign tracks (#1773) (1773) diff --git a/changes/changelog.d/1783.bugfix b/changes/changelog.d/1783.bugfix deleted file mode 100644 index c2e650a03..000000000 --- a/changes/changelog.d/1783.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes embed player (#1783) (1783) diff --git a/changes/changelog.d/1787.enhancement b/changes/changelog.d/1787.enhancement deleted file mode 100644 index 6a96abb82..000000000 --- a/changes/changelog.d/1787.enhancement +++ /dev/null @@ -1 +0,0 @@ -Allow arbitrary length names for artists, albums and tracks diff --git a/changes/changelog.d/1796.enhancement b/changes/changelog.d/1796.enhancement deleted file mode 100644 index b4833dc80..000000000 --- a/changes/changelog.d/1796.enhancement +++ /dev/null @@ -1 +0,0 @@ -Cleanup Gitlab CI and Dockerfiles (!1796) diff --git a/changes/changelog.d/1800.doc b/changes/changelog.d/1800.doc deleted file mode 100644 index 99229a295..000000000 --- a/changes/changelog.d/1800.doc +++ /dev/null @@ -1 +0,0 @@ -Document the new login flow of the CLI-tool (#1800) diff --git a/changes/changelog.d/1808.feature b/changes/changelog.d/1808.feature deleted file mode 100644 index 07dc9d95e..000000000 --- a/changes/changelog.d/1808.feature +++ /dev/null @@ -1 +0,0 @@ -Prepare API for the upcoming version 2 diff --git a/changes/changelog.d/1814.bugfix b/changes/changelog.d/1814.bugfix deleted file mode 100644 index e02fa20e4..000000000 --- a/changes/changelog.d/1814.bugfix +++ /dev/null @@ -1 +0,0 @@ -Allow enabling systemd funkwhale.target diff --git a/changes/changelog.d/1815.enhancement b/changes/changelog.d/1815.enhancement deleted file mode 100644 index 689ec0cfa..000000000 --- a/changes/changelog.d/1815.enhancement +++ /dev/null @@ -1 +0,0 @@ -Update migration after django update (#1815) diff --git a/changes/changelog.d/1822.update b/changes/changelog.d/1822.update deleted file mode 100644 index 691ae10a2..000000000 --- a/changes/changelog.d/1822.update +++ /dev/null @@ -1,24 +0,0 @@ - -If you are running the docker deployment, make sure to update our compose file. -In this small example we show you how to save the old config and update it -correctly: - -``` -export FUNKWHALE_VERSION="1.3.0" -cd /srv/funkwhale -docker-compose down -mv docker-compose.yml docker-compose.bak -curl -L -o /srv/funkwhale/docker-compose.yml "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/${FUNKWHALE_VERSION}/deploy/docker-compose.yml" -``` - -.. note:: - If you need to customize your nginx template, e.g. to work around `problems with - Docker's resolver `_, you can mount your - custom nginx configuration into the container. Uncomment the commented volumes in the `nginx` section of your `docker-compose.yml`. - Additionally you need to update the paths in `nginx/funkwhale.template`. - Replace all occurrences of `/funkwhale` by `/usr/share/nginx/html`. - This loads the templates from your `nginx` folder and overrides the template files in the Docker container. - -``` -docker-compose up -d -``` diff --git a/changes/changelog.d/1831.enhancement b/changes/changelog.d/1831.enhancement deleted file mode 100644 index 8a90514ec..000000000 --- a/changes/changelog.d/1831.enhancement +++ /dev/null @@ -1,2 +0,0 @@ -Migrate to vue-i18n (#1831) -Fix locale changing (#1862) diff --git a/changes/changelog.d/1831.feature b/changes/changelog.d/1831.feature deleted file mode 100644 index 36abc2a28..000000000 --- a/changes/changelog.d/1831.feature +++ /dev/null @@ -1 +0,0 @@ -Add Gitpod configuration and guide diff --git a/changes/changelog.d/1833.enhancement b/changes/changelog.d/1833.enhancement deleted file mode 100644 index 8941e8803..000000000 --- a/changes/changelog.d/1833.enhancement +++ /dev/null @@ -1 +0,0 @@ -Fix Serializer for inline channel artists (#1833) diff --git a/changes/changelog.d/1866.enchancement b/changes/changelog.d/1866.enchancement deleted file mode 100644 index 3984d3256..000000000 --- a/changes/changelog.d/1866.enchancement +++ /dev/null @@ -1 +0,0 @@ -Add playable tracks to gitpod instance diff --git a/changes/changelog.d/1873.bugfix b/changes/changelog.d/1873.bugfix deleted file mode 100644 index ac660f5ca..000000000 --- a/changes/changelog.d/1873.bugfix +++ /dev/null @@ -1 +0,0 @@ -Skip refreshing local actors in celery federation.refresh_actor_data task - fixes disappearing avatars (!1873) diff --git a/changes/changelog.d/1875.enchancement b/changes/changelog.d/1875.enchancement deleted file mode 100644 index 5d1140f54..000000000 --- a/changes/changelog.d/1875.enchancement +++ /dev/null @@ -1 +0,0 @@ -Add python debug and test support for gitpod diff --git a/changes/changelog.d/1876.bugfix b/changes/changelog.d/1876.bugfix deleted file mode 100644 index 68f86c19c..000000000 --- a/changes/changelog.d/1876.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix global keyboard shortcuts firing when input is focused (#1876) diff --git a/changes/changelog.d/1877.refactoring b/changes/changelog.d/1877.refactoring deleted file mode 100644 index 9e970de63..000000000 --- a/changes/changelog.d/1877.refactoring +++ /dev/null @@ -1 +0,0 @@ -Replace django-rest-auth with dj-rest-auth (#1877) diff --git a/changes/changelog.d/1879.enhancement b/changes/changelog.d/1879.enhancement deleted file mode 100644 index 1c477a80b..000000000 --- a/changes/changelog.d/1879.enhancement +++ /dev/null @@ -1 +0,0 @@ -Apply migrations on API container start (!1879) diff --git a/changes/changelog.d/1890.bugfix b/changes/changelog.d/1890.bugfix deleted file mode 100644 index d68c08d89..000000000 --- a/changes/changelog.d/1890.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix OAuth login (#1890) diff --git a/changes/changelog.d/1892.enhancement b/changes/changelog.d/1892.enhancement deleted file mode 100644 index 527c9d8f4..000000000 --- a/changes/changelog.d/1892.enhancement +++ /dev/null @@ -1 +0,0 @@ -Fix openapi specs for user endpoints (#1892, #1894) diff --git a/changes/changelog.d/1895.enhancement b/changes/changelog.d/1895.enhancement deleted file mode 100644 index 447946729..000000000 --- a/changes/changelog.d/1895.enhancement +++ /dev/null @@ -1 +0,0 @@ -Make sure ChannelViewSet always has a serializer (#1895) diff --git a/changes/changelog.d/1896.enhancement b/changes/changelog.d/1896.enhancement deleted file mode 100644 index 2f384d2b6..000000000 --- a/changes/changelog.d/1896.enhancement +++ /dev/null @@ -1 +0,0 @@ -Improve specification of LibraryFollowViewSet (#1896) diff --git a/changes/changelog.d/1897.enhancement b/changes/changelog.d/1897.enhancement deleted file mode 100644 index 6f508553b..000000000 --- a/changes/changelog.d/1897.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add Serializer for SpaManifest endpoint diff --git a/changes/changelog.d/1898.enhancement b/changes/changelog.d/1898.enhancement deleted file mode 100644 index 10c683c47..000000000 --- a/changes/changelog.d/1898.enhancement +++ /dev/null @@ -1 +0,0 @@ -Fix specs for ListenViewSet (#1898) diff --git a/changes/changelog.d/1899.enhancement b/changes/changelog.d/1899.enhancement deleted file mode 100644 index 458a98dbf..000000000 --- a/changes/changelog.d/1899.enhancement +++ /dev/null @@ -1 +0,0 @@ -Exclude /api/v1/oauth/authorize from the specs since its not supported yet (#1899) diff --git a/changes/changelog.d/1901.enhancement b/changes/changelog.d/1901.enhancement deleted file mode 100644 index f97f1d8ef..000000000 --- a/changes/changelog.d/1901.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add hint which serializer is used for OembedView (#1901) diff --git a/changes/changelog.d/1902.enhancement b/changes/changelog.d/1902.enhancement deleted file mode 100644 index 1d73bd24d..000000000 --- a/changes/changelog.d/1902.enhancement +++ /dev/null @@ -1 +0,0 @@ -Use proper serializer for Search endpoint (#1902) diff --git a/changes/changelog.d/1903.enhancement b/changes/changelog.d/1903.enhancement deleted file mode 100644 index eff5f045e..000000000 --- a/changes/changelog.d/1903.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add proper serialization for TextPreviewView (#1903) diff --git a/changes/changelog.d/1908.doc b/changes/changelog.d/1908.doc deleted file mode 100644 index f40f807d6..000000000 --- a/changes/changelog.d/1908.doc +++ /dev/null @@ -1 +0,0 @@ -Rewrote the architecture file (#1908) diff --git a/changes/changelog.d/1910.doc b/changes/changelog.d/1910.doc deleted file mode 100644 index a1f331caa..000000000 --- a/changes/changelog.d/1910.doc +++ /dev/null @@ -1 +0,0 @@ -Rewrote the plugins documentation (#1910) diff --git a/changes/changelog.d/1911.doc b/changes/changelog.d/1911.doc deleted file mode 100644 index c54c97fdd..000000000 --- a/changes/changelog.d/1911.doc +++ /dev/null @@ -1 +0,0 @@ -Rewrote the federation developer documentation (#1911) diff --git a/changes/changelog.d/1919.fix b/changes/changelog.d/1919.fix deleted file mode 100644 index dcf504cc9..000000000 --- a/changes/changelog.d/1919.fix +++ /dev/null @@ -1 +0,0 @@ -Fix media directory nginx routing error in front docker container introduced in !1897 diff --git a/changes/changelog.d/1923.bugfix b/changes/changelog.d/1923.bugfix deleted file mode 100644 index 59538f84f..000000000 --- a/changes/changelog.d/1923.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix track table showing all tracks and double pagination in some cases (#1923) diff --git a/changes/changelog.d/1924-filtering.bugfix b/changes/changelog.d/1924-filtering.bugfix deleted file mode 100644 index 2d3322731..000000000 --- a/changes/changelog.d/1924-filtering.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix user requests and reports filtering (#1924) diff --git a/changes/changelog.d/1924-focus.bugfix b/changes/changelog.d/1924-focus.bugfix deleted file mode 100644 index 603b82233..000000000 --- a/changes/changelog.d/1924-focus.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix content form autofocus despite `autofocus` prop being set to `false` (#1924) diff --git a/changes/changelog.d/1927.bugfix b/changes/changelog.d/1927.bugfix deleted file mode 100644 index de8c90e41..000000000 --- a/changes/changelog.d/1927.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix fetching pages of albums in album detail view (#1927) diff --git a/changes/changelog.d/1928.bugfix b/changes/changelog.d/1928.bugfix deleted file mode 100644 index 89f8d04e1..000000000 --- a/changes/changelog.d/1928.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix play button in albums with multi-page volumes (#1928) diff --git a/changes/changelog.d/1929.bugfix b/changes/changelog.d/1929.bugfix deleted file mode 100644 index 663ec77e0..000000000 --- a/changes/changelog.d/1929.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix purging of dangling files #1929 diff --git a/changes/changelog.d/1931.bugfix b/changes/changelog.d/1931.bugfix deleted file mode 100644 index f9965a902..000000000 --- a/changes/changelog.d/1931.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix player closing when queue ends (#1931) diff --git a/changes/changelog.d/1933.bugfix b/changes/changelog.d/1933.bugfix deleted file mode 100644 index 7aaafa535..000000000 --- a/changes/changelog.d/1933.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix adding same track multiple times (#1933) diff --git a/changes/changelog.d/1934.bugfix b/changes/changelog.d/1934.bugfix deleted file mode 100644 index 2ccb1287c..000000000 --- a/changes/changelog.d/1934.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix changing visualizer CORS error (#1934). diff --git a/changes/changelog.d/1937.bugfix b/changes/changelog.d/1937.bugfix deleted file mode 100644 index 9ffc14382..000000000 --- a/changes/changelog.d/1937.bugfix +++ /dev/null @@ -1 +0,0 @@ -Allow playback of media from external frontend (#1937). diff --git a/changes/changelog.d/1946.bugfix b/changes/changelog.d/1946.bugfix deleted file mode 100644 index c091279d6..000000000 --- a/changes/changelog.d/1946.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix embedded player not working on social posts (1946) diff --git a/changes/changelog.d/1966.doc b/changes/changelog.d/1966.doc deleted file mode 100644 index f295d69fd..000000000 --- a/changes/changelog.d/1966.doc +++ /dev/null @@ -1 +0,0 @@ -Add systemd update instructions to Debian upgrade instructions (#1966) diff --git a/changes/changelog.d/1968.enhancement b/changes/changelog.d/1968.enhancement deleted file mode 100644 index ea6e5e7dc..000000000 --- a/changes/changelog.d/1968.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add playlists radio to search page (#1968) diff --git a/changes/changelog.d/1975.bugfix b/changes/changelog.d/1975.bugfix deleted file mode 100644 index 11d00ce66..000000000 --- a/changes/changelog.d/1975.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix search by text in affected views (#1858) diff --git a/changes/changelog.d/1975.enhancement b/changes/changelog.d/1975.enhancement deleted file mode 100644 index 659b4a8e9..000000000 --- a/changes/changelog.d/1975.enhancement +++ /dev/null @@ -1 +0,0 @@ -Drop direct dependency on pyopenssl (#1975) diff --git a/changes/changelog.d/1976.bugfix b/changes/changelog.d/1976.bugfix deleted file mode 100644 index f82a110ce..000000000 --- a/changes/changelog.d/1976.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix remote search (#1857) diff --git a/changes/changelog.d/1976.docs b/changes/changelog.d/1976.docs deleted file mode 100644 index 42d9ef426..000000000 --- a/changes/changelog.d/1976.docs +++ /dev/null @@ -1 +0,0 @@ -Fix broken links in CHANGELOG (#1976) diff --git a/changes/changelog.d/1977.bugfix b/changes/changelog.d/1977.bugfix deleted file mode 100644 index e05e03648..000000000 --- a/changes/changelog.d/1977.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix CSP header issues diff --git a/changes/changelog.d/1997.bugfix b/changes/changelog.d/1997.bugfix deleted file mode 100644 index c35128083..000000000 --- a/changes/changelog.d/1997.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes track listenings not being sent when tab is not focused diff --git a/changes/changelog.d/1999.enhancement b/changes/changelog.d/1999.enhancement deleted file mode 100644 index 807a19be2..000000000 --- a/changes/changelog.d/1999.enhancement +++ /dev/null @@ -1 +0,0 @@ -Update upload status when import fails (#1999) diff --git a/changes/changelog.d/2002.bugfix b/changes/changelog.d/2002.bugfix deleted file mode 100644 index 30a783f92..000000000 --- a/changes/changelog.d/2002.bugfix +++ /dev/null @@ -1 +0,0 @@ - Remove trailing slash from reverse proxy configuration diff --git a/changes/changelog.d/2006.bugfix b/changes/changelog.d/2006.bugfix deleted file mode 100644 index 3ac481a34..000000000 --- a/changes/changelog.d/2006.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix timeout on spa manifest requests diff --git a/changes/changelog.d/2007.enhancement b/changes/changelog.d/2007.enhancement deleted file mode 100644 index f7cc6bf43..000000000 --- a/changes/changelog.d/2007.enhancement +++ /dev/null @@ -1 +0,0 @@ -Random and less listened radio filter out un-owned content on library section (#2007) diff --git a/changes/changelog.d/2022.enhancement b/changes/changelog.d/2022.enhancement deleted file mode 100644 index 49f18ade2..000000000 --- a/changes/changelog.d/2022.enhancement +++ /dev/null @@ -1 +0,0 @@ -Retry fetching new radio track 5 times if error occurred before resetting radio session (#2022) diff --git a/changes/changelog.d/2023.bugfix b/changes/changelog.d/2023.bugfix deleted file mode 100644 index f139fd55d..000000000 --- a/changes/changelog.d/2023.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed an issue which caused links in Markdown forms to not render correctly. (#2023) diff --git a/changes/changelog.d/2036.bugfix b/changes/changelog.d/2036.bugfix deleted file mode 100644 index 059cbd9ee..000000000 --- a/changes/changelog.d/2036.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix postgres connection details in docker setup diff --git a/changes/changelog.d/2049.docs b/changes/changelog.d/2049.docs deleted file mode 100644 index 568dfdd73..000000000 --- a/changes/changelog.d/2049.docs +++ /dev/null @@ -1 +0,0 @@ -Add generic upgrade instructions to Docker postgres documentation (#2049) diff --git a/changes/changelog.d/2050.doc b/changes/changelog.d/2050.doc deleted file mode 100644 index f452eefb0..000000000 --- a/changes/changelog.d/2050.doc +++ /dev/null @@ -1 +0,0 @@ -Added Nginx regeneration instructions to Debian update guide (#2050) diff --git a/changes/changelog.d/2054.bugfix b/changes/changelog.d/2054.bugfix deleted file mode 100644 index 4dbfadd7a..000000000 --- a/changes/changelog.d/2054.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed mobile player element widths (#2054) diff --git a/changes/changelog.d/2058.bugfix b/changes/changelog.d/2058.bugfix deleted file mode 100644 index ce7947eb2..000000000 --- a/changes/changelog.d/2058.bugfix +++ /dev/null @@ -1 +0,0 @@ -Resolved an issue where queue text with mouse over has dark text on dark background (#2058) (2058) diff --git a/changes/changelog.d/2072.bugfix b/changes/changelog.d/2072.bugfix deleted file mode 100644 index 98dc105bb..000000000 --- a/changes/changelog.d/2072.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix docker builds on armv7 diff --git a/changes/changelog.d/2092.fix b/changes/changelog.d/2092.fix deleted file mode 100644 index 0c6089767..000000000 --- a/changes/changelog.d/2092.fix +++ /dev/null @@ -1 +0,0 @@ -Allow summary field of actors to be blank. This leaves actors valid that have a blank (`""`) summary field and allows follows from those. diff --git a/changes/changelog.d/2094.bugfix b/changes/changelog.d/2094.bugfix deleted file mode 100644 index d2c1ef99a..000000000 --- a/changes/changelog.d/2094.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix front album tracks count translation diff --git a/changes/changelog.d/2118.bugfix b/changes/changelog.d/2118.bugfix deleted file mode 100644 index 905b30b6d..000000000 --- a/changes/changelog.d/2118.bugfix +++ /dev/null @@ -1,4 +0,0 @@ -Prefer str over dict for the CACHE_URL api setting - -This fix the ability to reuse the CACHE_URL with other settings such as -CELERY_BROKER_URL. diff --git a/changes/changelog.d/add_pre-commit.misc b/changes/changelog.d/add_pre-commit.misc deleted file mode 100644 index ed90c22d3..000000000 --- a/changes/changelog.d/add_pre-commit.misc +++ /dev/null @@ -1 +0,0 @@ -Add pre-commit to development tools diff --git a/changes/changelog.d/admin_docs.enhancement b/changes/changelog.d/admin_docs.enhancement deleted file mode 100644 index 7cdb0dc8a..000000000 --- a/changes/changelog.d/admin_docs.enhancement +++ /dev/null @@ -1 +0,0 @@ -All administrator documentation has been rewritten to improve clarity and update outdated information. diff --git a/changes/changelog.d/alpine-317.enhancement b/changes/changelog.d/alpine-317.enhancement deleted file mode 100644 index 48d68120e..000000000 --- a/changes/changelog.d/alpine-317.enhancement +++ /dev/null @@ -1 +0,0 @@ -Upgrade docker base image to alpine 3.17 diff --git a/changes/changelog.d/alpine-dep-pin.enhancement b/changes/changelog.d/alpine-dep-pin.enhancement deleted file mode 100644 index 003430611..000000000 --- a/changes/changelog.d/alpine-dep-pin.enhancement +++ /dev/null @@ -1 +0,0 @@ -Pin Alpine package versions in API Dockerfile (fixes part of CI build issues). diff --git a/changes/changelog.d/api-tests-warnings.misc b/changes/changelog.d/api-tests-warnings.misc deleted file mode 100644 index 19a1a0f03..000000000 --- a/changes/changelog.d/api-tests-warnings.misc +++ /dev/null @@ -1 +0,0 @@ -Fix api tests warnings by renaming fixtures diff --git a/changes/changelog.d/api-tools-config-pyproject.misc b/changes/changelog.d/api-tools-config-pyproject.misc deleted file mode 100644 index 4de38458e..000000000 --- a/changes/changelog.d/api-tools-config-pyproject.misc +++ /dev/null @@ -1 +0,0 @@ -Move api tools config to pyproject.toml diff --git a/changes/changelog.d/api.doc b/changes/changelog.d/api.doc deleted file mode 100644 index 017949411..000000000 --- a/changes/changelog.d/api.doc +++ /dev/null @@ -1 +0,0 @@ -Updated API developer documentation (#1912, #1909) diff --git a/changes/changelog.d/auto-darkmode.enhancement b/changes/changelog.d/auto-darkmode.enhancement deleted file mode 100644 index 1657bfdd2..000000000 --- a/changes/changelog.d/auto-darkmode.enhancement +++ /dev/null @@ -1 +0,0 @@ -Allow using default browser dark mode and update UI dynamically on change diff --git a/changes/changelog.d/autobahn.bugfix b/changes/changelog.d/autobahn.bugfix deleted file mode 100644 index 9d9a59f62..000000000 --- a/changes/changelog.d/autobahn.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix docker API image building with removing autobahn workaround version pin diff --git a/changes/changelog.d/build-api-package-wheel.enhancement b/changes/changelog.d/build-api-package-wheel.enhancement deleted file mode 100644 index a5f74ed19..000000000 --- a/changes/changelog.d/build-api-package-wheel.enhancement +++ /dev/null @@ -1 +0,0 @@ -Allow installing the funkwhale_api package diff --git a/changes/changelog.d/catch_value_error_radio-bugfix b/changes/changelog.d/catch_value_error_radio-bugfix deleted file mode 100644 index 2e6e74b7b..000000000 --- a/changes/changelog.d/catch_value_error_radio-bugfix +++ /dev/null @@ -1 +0,0 @@ -Catch ValueError on radio end (#1596) diff --git a/changes/changelog.d/ci-add-broken-link-checker.misc b/changes/changelog.d/ci-add-broken-link-checker.misc deleted file mode 100644 index a4888badc..000000000 --- a/changes/changelog.d/ci-add-broken-link-checker.misc +++ /dev/null @@ -1 +0,0 @@ -Add CI broken links checker diff --git a/changes/changelog.d/ci-build-artifacts-permissions.misc b/changes/changelog.d/ci-build-artifacts-permissions.misc deleted file mode 100644 index 5374e4f98..000000000 --- a/changes/changelog.d/ci-build-artifacts-permissions.misc +++ /dev/null @@ -1 +0,0 @@ -Fix permissions for build artifacts diff --git a/changes/changelog.d/ci-cache-lychee-urls-for-1d.misc b/changes/changelog.d/ci-cache-lychee-urls-for-1d.misc deleted file mode 100644 index b862fe797..000000000 --- a/changes/changelog.d/ci-cache-lychee-urls-for-1d.misc +++ /dev/null @@ -1 +0,0 @@ -Cache lychee checked urls for 1 day in CI diff --git a/changes/changelog.d/ci-changelog-snippet.misc b/changes/changelog.d/ci-changelog-snippet.misc deleted file mode 100644 index a728b3db9..000000000 --- a/changes/changelog.d/ci-changelog-snippet.misc +++ /dev/null @@ -1 +0,0 @@ -Add a CI job to check if changelog snippet is available diff --git a/changes/changelog.d/ci-remove-all-in-one-docker.misc b/changes/changelog.d/ci-remove-all-in-one-docker.misc deleted file mode 100644 index 8c6c6c9a4..000000000 --- a/changes/changelog.d/ci-remove-all-in-one-docker.misc +++ /dev/null @@ -1 +0,0 @@ -Remove docker_all_in_one_release ci job diff --git a/changes/changelog.d/cleanup.doc b/changes/changelog.d/cleanup.doc deleted file mode 100644 index 6649cf83c..000000000 --- a/changes/changelog.d/cleanup.doc +++ /dev/null @@ -1 +0,0 @@ -Cleaned up documentation diff --git a/changes/changelog.d/compose.update b/changes/changelog.d/compose.update deleted file mode 100644 index 1888fd6d2..000000000 --- a/changes/changelog.d/compose.update +++ /dev/null @@ -1,14 +0,0 @@ -The Docker instructions now use the updated Docker compose plugin. If you previously used the ``docker-compose`` standalone installation, do the following while upgrading: - -1. Download the `Docker compose plugin `_ -2. Stop your containers using the **docker-compose** syntax. - -.. code-block:: sh - sudo docker-compose down - -3. Bring the containers back up using the **docker compose** syntax. - -.. code-block:: sh - sudo docker compose up -d - -After this you can continue to use the **docker compose** syntax for all Docker management tasks. diff --git a/changes/changelog.d/contributing.doc b/changes/changelog.d/contributing.doc deleted file mode 100644 index 9dbd526cb..000000000 --- a/changes/changelog.d/contributing.doc +++ /dev/null @@ -1 +0,0 @@ -Updated CONTRIBUTING guide with up-to-date documentation. Created layout in documentation hub. diff --git a/changes/changelog.d/coverage.enhancement b/changes/changelog.d/coverage.enhancement deleted file mode 100644 index bb66a780e..000000000 --- a/changes/changelog.d/coverage.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add coverage report for Frontend Tests diff --git a/changes/changelog.d/create-api-package-entrypoint.enhancement b/changes/changelog.d/create-api-package-entrypoint.enhancement deleted file mode 100644 index eabad34f3..000000000 --- a/changes/changelog.d/create-api-package-entrypoint.enhancement +++ /dev/null @@ -1 +0,0 @@ -Create the funkwhale-manage entrypoint in the api package diff --git a/changes/changelog.d/create_lib_cmd.feature b/changes/changelog.d/create_lib_cmd.feature deleted file mode 100644 index da1144529..000000000 --- a/changes/changelog.d/create_lib_cmd.feature +++ /dev/null @@ -1 +0,0 @@ -Add a management command to create a new library for a user diff --git a/changes/changelog.d/debian-install-docs.fix b/changes/changelog.d/debian-install-docs.fix deleted file mode 100644 index 89b926fc8..000000000 --- a/changes/changelog.d/debian-install-docs.fix +++ /dev/null @@ -1 +0,0 @@ -Fix lots of problems in debian installation guide diff --git a/changes/changelog.d/do-not-buffer-python-stdout-stderr-in-docker.enhancement b/changes/changelog.d/do-not-buffer-python-stdout-stderr-in-docker.enhancement deleted file mode 100644 index e61dacc98..000000000 --- a/changes/changelog.d/do-not-buffer-python-stdout-stderr-in-docker.enhancement +++ /dev/null @@ -1 +0,0 @@ -Don't buffer python stdout/err in docker diff --git a/changes/changelog.d/do-not-compile-python-byte-code-in-docker.enhancement b/changes/changelog.d/do-not-compile-python-byte-code-in-docker.enhancement deleted file mode 100644 index c71fdc29f..000000000 --- a/changes/changelog.d/do-not-compile-python-byte-code-in-docker.enhancement +++ /dev/null @@ -1 +0,0 @@ -Don't compile python byte code in docker diff --git a/changes/changelog.d/do-not-use-poetry-in-production-deployment.enhancement b/changes/changelog.d/do-not-use-poetry-in-production-deployment.enhancement deleted file mode 100644 index 9e87509db..000000000 --- a/changes/changelog.d/do-not-use-poetry-in-production-deployment.enhancement +++ /dev/null @@ -1 +0,0 @@ -Don't use poetry in production deployments diff --git a/changes/changelog.d/docker-api-cache-env-variables.bugfix b/changes/changelog.d/docker-api-cache-env-variables.bugfix deleted file mode 100644 index 80e35296a..000000000 --- a/changes/changelog.d/docker-api-cache-env-variables.bugfix +++ /dev/null @@ -1 +0,0 @@ -Move api docker hardcoded env vars in the settings module diff --git a/changes/changelog.d/docker-nginx-entrypoint.bugfix b/changes/changelog.d/docker-nginx-entrypoint.bugfix deleted file mode 100644 index 48c6e05c2..000000000 --- a/changes/changelog.d/docker-nginx-entrypoint.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix docker nginx entrypoint diff --git a/changes/changelog.d/docker-public-port.bugfix b/changes/changelog.d/docker-public-port.bugfix deleted file mode 100644 index 063afde05..000000000 --- a/changes/changelog.d/docker-public-port.bugfix +++ /dev/null @@ -1 +0,0 @@ -Docker setup: do not export the API port 5000 publicly diff --git a/changes/changelog.d/docs_rewrite.doc b/changes/changelog.d/docs_rewrite.doc deleted file mode 100644 index b9d8b7b38..000000000 --- a/changes/changelog.d/docs_rewrite.doc +++ /dev/null @@ -1 +0,0 @@ -Rewrote documentation contributor guide. diff --git a/changes/changelog.d/dot.enhancement b/changes/changelog.d/dot.enhancement deleted file mode 100644 index d763136a4..000000000 --- a/changes/changelog.d/dot.enhancement +++ /dev/null @@ -1 +0,0 @@ -Update Django OAuth Toolkit to version 2, ref #1944 diff --git a/changes/changelog.d/entrypoint.misc b/changes/changelog.d/entrypoint.misc deleted file mode 100644 index 8cbf72ef9..000000000 --- a/changes/changelog.d/entrypoint.misc +++ /dev/null @@ -1 +0,0 @@ -Move database url composition from custom script to django settings diff --git a/changes/changelog.d/fix-favorite-button-in-queue.bugfix b/changes/changelog.d/fix-favorite-button-in-queue.bugfix deleted file mode 100644 index 6992213a3..000000000 --- a/changes/changelog.d/fix-favorite-button-in-queue.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix favorite button in queue diff --git a/changes/changelog.d/format-api-pyproject.misc b/changes/changelog.d/format-api-pyproject.misc deleted file mode 100644 index 80fea498d..000000000 --- a/changes/changelog.d/format-api-pyproject.misc +++ /dev/null @@ -1 +0,0 @@ -Format api pyproject.toml diff --git a/changes/changelog.d/front-docker-cleanup.enhancement b/changes/changelog.d/front-docker-cleanup.enhancement deleted file mode 100644 index 26a639c38..000000000 --- a/changes/changelog.d/front-docker-cleanup.enhancement +++ /dev/null @@ -1 +0,0 @@ -Cleaned up frontend docker container diff --git a/changes/changelog.d/front-dockerfile-native-build.enhancement b/changes/changelog.d/front-dockerfile-native-build.enhancement deleted file mode 100644 index 72644a9b7..000000000 --- a/changes/changelog.d/front-dockerfile-native-build.enhancement +++ /dev/null @@ -1 +0,0 @@ -Build frontend natively for cross-arch docker images diff --git a/changes/changelog.d/harden-security-for-debian-install.doc b/changes/changelog.d/harden-security-for-debian-install.doc deleted file mode 100644 index 3fed12de8..000000000 --- a/changes/changelog.d/harden-security-for-debian-install.doc +++ /dev/null @@ -1 +0,0 @@ -Harden security for debian install docs diff --git a/changes/changelog.d/improve-docker-layer-caching.enhancement b/changes/changelog.d/improve-docker-layer-caching.enhancement deleted file mode 100644 index c89657f9a..000000000 --- a/changes/changelog.d/improve-docker-layer-caching.enhancement +++ /dev/null @@ -1 +0,0 @@ -Improve docker caching diff --git a/changes/changelog.d/improve-signal-handling.bugfix b/changes/changelog.d/improve-signal-handling.bugfix deleted file mode 100644 index 733fed50d..000000000 --- a/changes/changelog.d/improve-signal-handling.bugfix +++ /dev/null @@ -1 +0,0 @@ -Improve signal handling for service and containers diff --git a/changes/changelog.d/install-api-python-package-in-docker.enhancement b/changes/changelog.d/install-api-python-package-in-docker.enhancement deleted file mode 100644 index 7a835584b..000000000 --- a/changes/changelog.d/install-api-python-package-in-docker.enhancement +++ /dev/null @@ -1 +0,0 @@ -Install API python package in docker image diff --git a/changes/changelog.d/install-guides.enhancement b/changes/changelog.d/install-guides.enhancement deleted file mode 100644 index 8b82eaede..000000000 --- a/changes/changelog.d/install-guides.enhancement +++ /dev/null @@ -1 +0,0 @@ -Updated the installation guides to make installation steps clearer. diff --git a/changes/changelog.d/is.enhancement b/changes/changelog.d/is.enhancement deleted file mode 100644 index 410fb6b3e..000000000 --- a/changes/changelog.d/is.enhancement +++ /dev/null @@ -1 +0,0 @@ -Remove unnecessary or wrong `is` keyword usage from backend diff --git a/changes/changelog.d/lint-shell-script.misc b/changes/changelog.d/lint-shell-script.misc deleted file mode 100644 index 37a34a1bc..000000000 --- a/changes/changelog.d/lint-shell-script.misc +++ /dev/null @@ -1 +0,0 @@ -Fix shell scripts lint errors diff --git a/changes/changelog.d/listenbrainz-duration.enhancement b/changes/changelog.d/listenbrainz-duration.enhancement deleted file mode 100644 index 1b5f9bfb8..000000000 --- a/changes/changelog.d/listenbrainz-duration.enhancement +++ /dev/null @@ -1 +0,0 @@ -The ListenBrainz plugin submits the track duration diff --git a/changes/changelog.d/maloja-fix-submission.bugfix b/changes/changelog.d/maloja-fix-submission.bugfix deleted file mode 100644 index 317dcbfdf..000000000 --- a/changes/changelog.d/maloja-fix-submission.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix artist name submission in Maloja plugin diff --git a/changes/changelog.d/manage-py.deprecation b/changes/changelog.d/manage-py.deprecation deleted file mode 100644 index ebc8963ff..000000000 --- a/changes/changelog.d/manage-py.deprecation +++ /dev/null @@ -1 +0,0 @@ -Deprecate the api manage.py script in favor of the funkwhale-manage entrypoint diff --git a/changes/changelog.d/memoize.enhancement b/changes/changelog.d/memoize.enhancement deleted file mode 100644 index 998d7f15b..000000000 --- a/changes/changelog.d/memoize.enhancement +++ /dev/null @@ -1,2 +0,0 @@ -Change unmaintained PyMemoize library to django-cache-memoize -to enable Python 3.10 support diff --git a/changes/changelog.d/migrate-to-new-queue.enhancement b/changes/changelog.d/migrate-to-new-queue.enhancement deleted file mode 100644 index 9c18329f2..000000000 --- a/changes/changelog.d/migrate-to-new-queue.enhancement +++ /dev/null @@ -1 +0,0 @@ -Migrate to new queue system from old localStorage keys diff --git a/changes/changelog.d/migration_guide.enhancement b/changes/changelog.d/migration_guide.enhancement deleted file mode 100644 index 192e2e838..000000000 --- a/changes/changelog.d/migration_guide.enhancement +++ /dev/null @@ -1 +0,0 @@ -Created migration guide for the deprecated all-in-one docker container. diff --git a/changes/changelog.d/multi-language.doc b/changes/changelog.d/multi-language.doc deleted file mode 100644 index b8508e4b4..000000000 --- a/changes/changelog.d/multi-language.doc +++ /dev/null @@ -1 +0,0 @@ -Add ability to translate documentation into multiple languages diff --git a/changes/changelog.d/mutations.enhancement b/changes/changelog.d/mutations.enhancement deleted file mode 100644 index 711281961..000000000 --- a/changes/changelog.d/mutations.enhancement +++ /dev/null @@ -1 +0,0 @@ -Make mutations endpoint appear in openapi specs diff --git a/changes/changelog.d/native-html-player.feature b/changes/changelog.d/native-html-player.feature deleted file mode 100644 index d9d753779..000000000 --- a/changes/changelog.d/native-html-player.feature +++ /dev/null @@ -1 +0,0 @@ - Rewrite player to be based on Web Audio API diff --git a/changes/changelog.d/nodeinfo.enhancement b/changes/changelog.d/nodeinfo.enhancement deleted file mode 100644 index 5abe3273a..000000000 --- a/changes/changelog.d/nodeinfo.enhancement +++ /dev/null @@ -1 +0,0 @@ -Refactor node info endpoint to use proper serializers diff --git a/changes/changelog.d/oauth.enhancement b/changes/changelog.d/oauth.enhancement deleted file mode 100644 index 7b1cbf4a4..000000000 --- a/changes/changelog.d/oauth.enhancement +++ /dev/null @@ -1 +0,0 @@ -OAuth Application client secrets are now hashed before storing them to the DB. Those are only displayed once from now on! diff --git a/changes/changelog.d/openapi-alignment.misc b/changes/changelog.d/openapi-alignment.misc deleted file mode 100644 index 2de67abc7..000000000 --- a/changes/changelog.d/openapi-alignment.misc +++ /dev/null @@ -1 +0,0 @@ -Align the openapi spec to the actual API wherever possible diff --git a/changes/changelog.d/pipeline.enhancement b/changes/changelog.d/pipeline.enhancement deleted file mode 100644 index 2cba9db4e..000000000 --- a/changes/changelog.d/pipeline.enhancement +++ /dev/null @@ -1 +0,0 @@ -Prevent running two pipelines for MRs diff --git a/changes/changelog.d/postgres.update b/changes/changelog.d/postgres.update deleted file mode 100644 index 2f662a90d..000000000 --- a/changes/changelog.d/postgres.update +++ /dev/null @@ -1 +0,0 @@ -Upgrade Postgres to version 15. [Make sure to migrate!](https://docs.funkwhale.audio/administrator_documentation/upgrade_docs/docker.html#upgrade-the-postgres-container) diff --git a/changes/changelog.d/postgres_env.deprecation b/changes/changelog.d/postgres_env.deprecation deleted file mode 100644 index 1d110a607..000000000 --- a/changes/changelog.d/postgres_env.deprecation +++ /dev/null @@ -1,3 +0,0 @@ -The automatically generated 'DATABASE_URL' configuration in the docker setup is deprecated, please -configure either the 'DATABASE_URL' environment variable or the 'DATABASE_HOST', 'DATABASE_USER' and -'DATABASE_PASSWORD' environment variables instead. diff --git a/changes/changelog.d/pre-commit-fix-files.misc b/changes/changelog.d/pre-commit-fix-files.misc deleted file mode 100644 index f4c090a94..000000000 --- a/changes/changelog.d/pre-commit-fix-files.misc +++ /dev/null @@ -1,8 +0,0 @@ -Format or fix files using pre-commit - -- Upgrade code to >=python3.7 -- Fix flake8 warnings -- Fix spelling errors -- Format files using black -- Format files using isort -- Format files using prettier diff --git a/changes/changelog.d/pre-commit-hooks.misc b/changes/changelog.d/pre-commit-hooks.misc deleted file mode 100644 index d92ce8ac1..000000000 --- a/changes/changelog.d/pre-commit-hooks.misc +++ /dev/null @@ -1,8 +0,0 @@ -Add pre-commit hooks - -- flake8 -- black -- isort -- pyupgrade -- prettier -- codespell diff --git a/changes/changelog.d/prefer-using-the-funkwhale-manage-entrypoint.enhancement b/changes/changelog.d/prefer-using-the-funkwhale-manage-entrypoint.enhancement deleted file mode 100644 index 00ac652a5..000000000 --- a/changes/changelog.d/prefer-using-the-funkwhale-manage-entrypoint.enhancement +++ /dev/null @@ -1 +0,0 @@ -Prefer using the funkwhale-manage entrypoint diff --git a/changes/changelog.d/protected-tests.enhancement b/changes/changelog.d/protected-tests.enhancement deleted file mode 100644 index d6e3f3f09..000000000 --- a/changes/changelog.d/protected-tests.enhancement +++ /dev/null @@ -1 +0,0 @@ -Make CI always run all tests on protected branches. diff --git a/changes/changelog.d/public-media.bugfix b/changes/changelog.d/public-media.bugfix deleted file mode 100644 index 4fa615c24..000000000 --- a/changes/changelog.d/public-media.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes an issue which made it possible to download all media files without access control (#2101) diff --git a/changes/changelog.d/py310-ci.enhancement b/changes/changelog.d/py310-ci.enhancement deleted file mode 100644 index be967f1ff..000000000 --- a/changes/changelog.d/py310-ci.enhancement +++ /dev/null @@ -1 +0,0 @@ -Make Python 3.10 tests in CI mandatory diff --git a/changes/changelog.d/python3.11.enhancement b/changes/changelog.d/python3.11.enhancement deleted file mode 100644 index 3ac1eaf2c..000000000 --- a/changes/changelog.d/python3.11.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add support for python 3.11 diff --git a/changes/changelog.d/python36.removal b/changes/changelog.d/python36.removal deleted file mode 100644 index 14e4ceba0..000000000 --- a/changes/changelog.d/python36.removal +++ /dev/null @@ -1,2 +0,0 @@ -This release removes support for Python 3.6. Please make sure you update your python version before -Updating Funkwhale! diff --git a/changes/changelog.d/python37.deprecation b/changes/changelog.d/python37.deprecation deleted file mode 100644 index 32e7f9dc2..000000000 --- a/changes/changelog.d/python37.deprecation +++ /dev/null @@ -1,2 +0,0 @@ -That's the last minor version series that supports python3.7. Funkwhale 1.4 will remove support for -it. #1693 diff --git a/changes/changelog.d/rate-limit-serializer.enhancement b/changes/changelog.d/rate-limit-serializer.enhancement deleted file mode 100644 index c2d5c39c7..000000000 --- a/changes/changelog.d/rate-limit-serializer.enhancement +++ /dev/null @@ -1 +0,0 @@ -Added proper serializers for the rate-limit endpoint. diff --git a/changes/changelog.d/rename-api-compose-dir.misc b/changes/changelog.d/rename-api-compose-dir.misc deleted file mode 100644 index 64d3b72c9..000000000 --- a/changes/changelog.d/rename-api-compose-dir.misc +++ /dev/null @@ -1 +0,0 @@ -Rename api composer/django/ dir to docker/ diff --git a/changes/changelog.d/rename_operation_id_for_api_client.enhancement b/changes/changelog.d/rename_operation_id_for_api_client.enhancement deleted file mode 100644 index 9ddb886c9..000000000 --- a/changes/changelog.d/rename_operation_id_for_api_client.enhancement +++ /dev/null @@ -1 +0,0 @@ -Rename OpenAPI schema's operation ids for nicer API client method names. diff --git a/changes/changelog.d/rewrite-embedded-player.enhancement b/changes/changelog.d/rewrite-embedded-player.enhancement deleted file mode 100644 index f22eb7b06..000000000 --- a/changes/changelog.d/rewrite-embedded-player.enhancement +++ /dev/null @@ -1 +0,0 @@ -Rewrite embedded player to petite-vue diff --git a/changes/changelog.d/scan_library_task.enhancement b/changes/changelog.d/scan_library_task.enhancement deleted file mode 100644 index a5a4ecaa8..000000000 --- a/changes/changelog.d/scan_library_task.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add a celery task to scan remote library (#1712) diff --git a/changes/changelog.d/sentry.feature b/changes/changelog.d/sentry.feature deleted file mode 100644 index c559f62bb..000000000 --- a/changes/changelog.d/sentry.feature +++ /dev/null @@ -1 +0,0 @@ -Add Sentry SDK to collect #1479 diff --git a/changes/changelog.d/serve-frontend-without-middleware.refactoring b/changes/changelog.d/serve-frontend-without-middleware.refactoring deleted file mode 100644 index 42d7469b4..000000000 --- a/changes/changelog.d/serve-frontend-without-middleware.refactoring +++ /dev/null @@ -1,2 +0,0 @@ -Instead of requesting the right spa content from the API using a middleware we now serve the -Frontend directly with nginx and only proxy-forward for API endpoints diff --git a/changes/changelog.d/settingsview.enhancement b/changes/changelog.d/settingsview.enhancement deleted file mode 100644 index 41ea43c59..000000000 --- a/changes/changelog.d/settingsview.enhancement +++ /dev/null @@ -1 +0,0 @@ -Refactor SettingsView to use a proper serializer diff --git a/changes/changelog.d/sphinx-design.enhancement b/changes/changelog.d/sphinx-design.enhancement deleted file mode 100644 index 12829d5a5..000000000 --- a/changes/changelog.d/sphinx-design.enhancement +++ /dev/null @@ -1 +0,0 @@ -Migrated to sphinx-design. diff --git a/changes/changelog.d/split-database_url-into-mutiple-parts.enhancement b/changes/changelog.d/split-database_url-into-mutiple-parts.enhancement deleted file mode 100644 index 3cae9f87f..000000000 --- a/changes/changelog.d/split-database_url-into-mutiple-parts.enhancement +++ /dev/null @@ -1 +0,0 @@ -Split DATABASE_URL into multiple configuration variables diff --git a/changes/changelog.d/translation.doc b/changes/changelog.d/translation.doc deleted file mode 100644 index e7a7c609f..000000000 --- a/changes/changelog.d/translation.doc +++ /dev/null @@ -1 +0,0 @@ -Rewrote translators file diff --git a/changes/changelog.d/typehints.enhancement b/changes/changelog.d/typehints.enhancement deleted file mode 100644 index 61d97cfaf..000000000 --- a/changes/changelog.d/typehints.enhancement +++ /dev/null @@ -1 +0,0 @@ -Added type hints to the API. diff --git a/changes/changelog.d/unpin-api-asgiref.misc b/changes/changelog.d/unpin-api-asgiref.misc deleted file mode 100644 index 47e3ab51b..000000000 --- a/changes/changelog.d/unpin-api-asgiref.misc +++ /dev/null @@ -1 +0,0 @@ -Unpin asgiref in API dependencies diff --git a/changes/changelog.d/virtualenv.update b/changes/changelog.d/virtualenv.update deleted file mode 100644 index 553aa2145..000000000 --- a/changes/changelog.d/virtualenv.update +++ /dev/null @@ -1,2 +0,0 @@ -With this update Funkwhale starts using poetry to maintain its dependencies. We therefore recommend -removing the old virtualenv by running `rm -rf /srv/funkwhale/virtualenv`. diff --git a/docker/nginx/conf.dev b/docker/nginx/conf.dev index 9a74f36c5..c1065cbfc 100644 --- a/docker/nginx/conf.dev +++ b/docker/nginx/conf.dev @@ -107,6 +107,14 @@ http { proxy_pass http://funkwhale-api/api/subsonic/rest/; } + location /media/__sized__/ { + alias /protected/media/__sized__/; + } + + location /media/attachments/ { + alias /protected/media/attachments/; + } + location /.well-known/ { include /etc/nginx/funkwhale_proxy.conf; proxy_pass http://funkwhale-api; diff --git a/docs/administrator/migration.md b/docs/administrator/migration.md index 4a60065fa..bed397286 100644 --- a/docs/administrator/migration.md +++ b/docs/administrator/migration.md @@ -100,12 +100,6 @@ Follow this guide to migrate a mono-container installation to a multi-container cat .env.bak >> .env ``` -6. Update the database URL in your new `.env` file. - - ```{code-block} sh - echo "DATABASE_URL=postgresql://funkwhale@postgres:5432/funkwhale" >> .env - ``` - Check the file and remove any duplicated settings after copying. ## Migrate your database diff --git a/docs/poetry.lock b/docs/poetry.lock index 76947995d..740afdb00 100644 --- a/docs/poetry.lock +++ b/docs/poetry.lock @@ -153,24 +153,25 @@ vine = ">=5.0.0" [[package]] name = "anyio" -version = "3.6.2" +version = "3.7.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" category = "main" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7" files = [ - {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, - {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, + {file = "anyio-3.7.0-py3-none-any.whl", hash = "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0"}, + {file = "anyio-3.7.0.tar.gz", hash = "sha256:275d9973793619a5374e1c89a4f4ad3f4b0a5510a2b5b939444bee8f4c4d37ce"}, ] [package.dependencies] +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" [package.extras] -doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] -trio = ["trio (>=0.16,<0.22)"] +doc = ["Sphinx (>=6.1.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme", "sphinxcontrib-jquery"] +test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (<0.22)"] [[package]] name = "appnope" @@ -201,16 +202,19 @@ python-dateutil = ">=2.7.0" [[package]] name = "asgiref" -version = "3.6.0" +version = "3.7.2" description = "ASGI specs, helper code, and adapters" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "asgiref-3.6.0-py3-none-any.whl", hash = "sha256:71e68008da809b957b7ee4b43dbccff33d1b23519fb8344e33f049897077afac"}, - {file = "asgiref-3.6.0.tar.gz", hash = "sha256:9567dfe7bd8d3c8c892227827c41cce860b368104c3431da67a0c5a65a949506"}, + {file = "asgiref-3.7.2-py3-none-any.whl", hash = "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e"}, + {file = "asgiref-3.7.2.tar.gz", hash = "sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"}, ] +[package.dependencies] +typing-extensions = {version = ">=4", markers = "python_version < \"3.11\""} + [package.extras] tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] @@ -403,14 +407,14 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.29.133" +version = "1.29.145" description = "Low-level, data-driven core of boto 3." category = "main" optional = false python-versions = ">= 3.7" files = [ - {file = "botocore-1.29.133-py3-none-any.whl", hash = "sha256:b266185d7414a559952569005009a400de50af91fd3da44f05cf05b00946c4a7"}, - {file = "botocore-1.29.133.tar.gz", hash = "sha256:7b38e540f73c921d8cb0ac72794072000af9e10758c04ba7f53d5629cc52fa87"}, + {file = "botocore-1.29.145-py3-none-any.whl", hash = "sha256:264a3f19ed280d80711b7e278be09acff7ed379a96432fdf179b4e6e3a687e6a"}, + {file = "botocore-1.29.145.tar.gz", hash = "sha256:65e2a2b1cc70583225f87d6d63736215f93c6234721967bdab872270ba7a1f45"}, ] [package.dependencies] @@ -423,14 +427,14 @@ crt = ["awscrt (==0.16.9)"] [[package]] name = "cachetools" -version = "5.3.0" +version = "5.3.1" description = "Extensible memoizing collections and decorators" category = "main" optional = false -python-versions = "~=3.7" +python-versions = ">=3.7" files = [ - {file = "cachetools-5.3.0-py3-none-any.whl", hash = "sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4"}, - {file = "cachetools-5.3.0.tar.gz", hash = "sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14"}, + {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, + {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, ] [[package]] @@ -887,21 +891,21 @@ files = [ [[package]] name = "deprecated" -version = "1.2.13" +version = "1.2.14" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ - {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, - {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, + {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"}, + {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"}, ] [package.dependencies] wrapt = ">=1.10,<2" [package.extras] -dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (<5)", "importlib-metadata (<3)", "importlib-resources (<4)", "sphinx (<2)", "sphinxcontrib-websupport (<2)", "tox", "zipp (<2)"] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] [[package]] name = "dj-rest-auth" @@ -1211,6 +1215,21 @@ uritemplate = ">=2.0.0" offline = ["drf-spectacular-sidecar"] sidecar = ["drf-spectacular-sidecar"] +[[package]] +name = "exceptiongroup" +version = "1.1.1" +description = "Backport of PEP 654 (exception groups)" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, + {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, +] + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "feedparser" version = "6.0.10" @@ -1371,7 +1390,7 @@ files = [ [[package]] name = "funkwhale-api" -version = "1.2.10" +version = "1.3.0" description = "Funkwhale API" category = "main" optional = false @@ -1431,6 +1450,9 @@ unicode-slugify = "==0.1.5" uvicorn = {version = "==0.20.0", extras = ["standard"]} watchdog = "==2.2.1" +[package.extras] +typesense = ["typesense (==0.15.1)"] + [package.source] type = "directory" url = "../api" @@ -1739,17 +1761,17 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jwcrypto" -version = "1.4.2" +version = "1.5.0" description = "Implementation of JOSE Web standards" category = "main" optional = false python-versions = ">= 3.6" files = [ - {file = "jwcrypto-1.4.2.tar.gz", hash = "sha256:80a35e9ed1b3b2c43ce03d92c5d48e6d0b6647e2aa2618e4963448923d78a37b"}, + {file = "jwcrypto-1.5.0.tar.gz", hash = "sha256:2c1dc51cf8e38ddf324795dfe9426dee9dd46caf47f535ccbc18781fba810b8d"}, ] [package.dependencies] -cryptography = ">=2.3" +cryptography = ">=3.4" deprecated = "*" [[package]] @@ -2558,18 +2580,18 @@ requests = ["requests"] [[package]] name = "pyopenssl" -version = "23.1.1" +version = "23.2.0" description = "Python wrapper module around the OpenSSL library" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "pyOpenSSL-23.1.1-py3-none-any.whl", hash = "sha256:9e0c526404a210df9d2b18cd33364beadb0dc858a739b885677bc65e105d4a4c"}, - {file = "pyOpenSSL-23.1.1.tar.gz", hash = "sha256:841498b9bec61623b1b6c47ebbc02367c07d60e0e195f19790817f10cc8db0b7"}, + {file = "pyOpenSSL-23.2.0-py3-none-any.whl", hash = "sha256:24f0dc5227396b3e831f4c7f602b950a5e9833d292c8e4a2e06b709292806ae2"}, + {file = "pyOpenSSL-23.2.0.tar.gz", hash = "sha256:276f931f55a452e7dea69c7173e984eb2a4407ce413c918aa34b55f82f9b8bac"}, ] [package.dependencies] -cryptography = ">=38.0.0,<41" +cryptography = ">=38.0.0,<40.0.0 || >40.0.0,<40.0.1 || >40.0.1,<42" [package.extras] docs = ["sphinx (!=5.2.0,!=5.2.0.post0)", "sphinx-rtd-theme"] @@ -2913,19 +2935,19 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] [[package]] name = "setuptools" -version = "67.7.2" +version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-67.7.2-py3-none-any.whl", hash = "sha256:23aaf86b85ca52ceb801d32703f12d77517b2556af839621c641fca11287952b"}, - {file = "setuptools-67.7.2.tar.gz", hash = "sha256:f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990"}, + {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, + {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -3321,14 +3343,14 @@ twisted = ["twisted (>=20.3.0)", "zope.interface (>=5.2.0)"] [[package]] name = "typing-extensions" -version = "4.5.0" +version = "4.6.3" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, + {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, + {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, ] [[package]] @@ -3373,14 +3395,14 @@ files = [ [[package]] name = "urllib3" -version = "1.26.15" +version = "1.26.16" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, + {file = "urllib3-1.26.16-py2.py3-none-any.whl", hash = "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f"}, + {file = "urllib3-1.26.16.tar.gz", hash = "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"}, ] [package.extras] diff --git a/front/src/locales/de.json b/front/src/locales/de.json index 924ccb7db..119fff877 100644 --- a/front/src/locales/de.json +++ b/front/src/locales/de.json @@ -1445,7 +1445,7 @@ "tracks": "Titel" }, "meta": { - "volume": "Band { number }" + "volume": "Datenträger { number }" } }, "AlbumDropdown": { diff --git a/front/src/locales/nl.json b/front/src/locales/nl.json index 77c93199c..a4a385a72 100644 --- a/front/src/locales/nl.json +++ b/front/src/locales/nl.json @@ -1,427 +1,369 @@ { + "App": { + "loading": "Laden…" + }, "components": { - "auth": { - "Authorize": { - "header": { - "access": "{ app } wil toegang tot je Funkwhale account", - "authorize": "Autoriseer third-party app", - "authorizeFailure": "Fout bij het autoriseren van applicatie", - "fetchFailure": "Fout bij ophalen van applicatiegegevens", - "allScopes": "Volledige toegang", - "readOnly": "Alleen-lezen", - "writeOnly": "Alleen-schrijven" - }, - "title": "Sta deze applicatie toe", - "button": { - "authorize": "Autoriseer { app }" - }, - "help": { - "pasteCode": "Kopieer en plak de volgende code in de applicatie:", - "redirect": "Je wordt doorgestuurd naar { 0 }", - "copyCode": "Je zult een code te zien krijgen om te kopiëren naar de applicatie." - }, - "message": { - "unknownPermissions": "De applicatie verzoekt ook de volgende onbekende machtigingen:" - } - }, - "SubsonicTokenForm": { - "message": { - "accessDisabled": "Toegang uitgeschakeld", - "passwordUpdated": "Wachtwoord bijgewerkt", - "unavailable": "De Subsonic-API is niet beschikbaar op deze server." - }, - "button": { - "confirmDisable": "Toegang uitschakelen", - "disable": "Subsonic-toegang uitschakelen", - "newPassword": "Nieuw wachtwoord aanvragen", - "confirmNewPassword": "Wachtwoord aanvragen" - }, - "modal": { - "disableSubsonic": { - "header": "Subsonic-API-toegang uitschakelen?", - "content": { - "warning": "De toegang tot de Subsonic-API vanaf dit account wordt uitgeschakeld." - } - }, - "newPassword": { - "header": "Nieuw Subsonic-API-wachtwoord aanvragen?", - "content": { - "warning": "Je wordt uitgelogd op elk apparaat met het huidige wachtwoord." - } - } - }, - "link": { - "apps": "Ontdek hoe je Funkwhale met andere apps kunt gebruiken" - }, - "header": { - "error": "Fout", - "subsonic": "Wachtwoord voor Subsonic-API" - }, - "description": { - "subsonic": { - "paragraph1": "Funkwhale werkt met andere muziekspelers die de Subsonic-API ondersteunen.", - "paragraph3": "Om Funkwhale te benaderen via die apps is een apart wachtwoord nodig. Dit kan je hieronder instellen.", - "paragraph2": "Je kunt ze gebruiken om ook offline te genieten van je afspeellijst en muziek, bijvoorbeeld op je smartphone of tablet." - } - }, - "label": { - "subsonicField": "Je wachtwoord voor de Subsonic-API" - } - }, - "ApplicationEdit": { - "label": { - "accessToken": "Access token", - "appId": "Applicatie-ID", - "appSecret": "Applicatie-sleutel" - }, - "header": { - "appDetails": "Applicatie-details", - "editApp": "Bewerk applicatie" - }, - "help": { - "appDetails": "De applicatie-ID en sleutel zijn gevoelige gegevens en moet je als wachtwoord beschouwen. Deel ze niet met anderen." - }, - "link": { - "settings": "Terug naar instellingen" - }, - "title": "Bewerk applicatie", - "button": { - "regenerateToken": "Genereer token opnieuw" - } - }, - "Settings": { - "title": "Accountinstellingen", - "header": { - "accountSettings": "Accountinstellingen", - "authorizedApps": "Geautoriseerde apps", - "avatar": "Avatar", - "changeEmail": "Wijzig mijn e-mailadres", - "changePassword": "Wijzig mijn wachtwoord", - "contentFilters": "Inhoudsfilters", - "deleteAccount": "Verwijder mijn account", - "hiddenArtists": "Verborgen artiesten", - "plugins": "Plugins", - "settingsUpdated": "Instellingen bijgewerkt", - "emailFailure": "We kunnen je e-mailadres niet aanpassen", - "accountFailure": "We kunnen je account niet verwijderen", - "noApps": "Je hebt geen applicatie verbonden met je account.", - "noPersonalApps": "Je hebt nog geen applicatie geregistreerd.", - "yourApps": "Je applicaties", - "avatarFailure": "Je avatar kan niet opgeslagen worden", - "passwordFailure": "Je wachtwoord kan niet worden gewijzigd", - "updateFailure": "Je instellingen kunnen niet worden bijgewerkt" - }, - "table": { - "authorizedApps": { - "header": { - "application": "Applicatie", - "permissions": "Machtigingen" - } - }, - "yourApps": { - "header": { - "application": "Applicatie", - "creationDate": "Toegevoegd", - "scopes": "Scopes" - } - }, - "artists": { - "header": { - "creationDate": "Toegevoegd", - "name": "Naam" - } - } - }, - "label": { - "avatar": "Avatar", - "currentPassword": "Huidige wachtwoord", - "newEmail": "Nieuw e-mailadres", - "newPassword": "Nieuw wachtwoord", - "password": "Wachtwoord" - }, - "button": { - "password": "Wachtwoord wijzigen", - "delete": "Verwijderen", - "deleteAccountConfirm": "Verwijder mijn account", - "deleteAccount": "Verwijder mijn account…", - "disableSubsonic": "Toegang uitschakelen", - "edit": "Bewerken", - "refresh": "Verversen", - "remove": "Verwijderen", - "removeApp": "Verwijder applicatie", - "revoke": "Intrekken", - "revokeAccess": "Toestemming toegang intrekken", - "update": "Update", - "updateSettings": "Instellingen bijwerken" - }, - "description": { - "changeEmail": "Verander het e-mail adres dat aan je account gekoppeld is. We zullen een bevestiging sturen naar het nieuwe adres.", - "changePassword": { - "paragraph1": "Als je je wachtwoord wijzigt, dan wordt ook het wachtwoord voor de Subsonic-API gewijzigd als je deze had ingesteld.", - "paragraph2": "Je moet je wachtwoord bijwerken op je clients die ook dit wachtwoord gebruiken." - }, - "contentFilters": "Inhoudsfilters helpen je inhoud te verbergen die je niet wilt tegenkomen.", - "authorizedApps": "Dit is de lijst van applicaties die toegang hebben tot je accountdata.", - "yourApps": "Dit is de lijst van applicaties die je geregistreerd hebt.", - "plugins": "Gebruik plugins om Funkwhale uit te breiden en extra eigenschappen te krijgen.", - "deleteAccount": "Je kunt permanent en onomkeerbaar je account en alle bijbehorende gegevens verwijderd middels het formulier hieronder. Je zult om bevestiging worden gevraagd." - }, - "modal": { - "changePassword": { - "header": "Wil je je wachtwoord wijzigen?", - "content": { - "warning": "Het aanpassen van je wachtwoord heeft de volgende gevolgen:", - "logout": "Je wordt uitgelogd uit deze sessie moet inloggen op de nieuwe", - "subsonic": "Je Subsonic-wachtwoord wordt vervangen door een nieuwe, waardoor je wordt uitgelogd op apparaten die het oude wachtwoord gebruiken" - } - }, - "deleteAccount": { - "header": "Wil je jouw account verwijderen?", - "content": { - "warning": "Dit is onomkeerbaar en zal permanent al je data van onze servers verwijderen. Je zult onmiddellijk worden uitgelogd." - } - }, - "deleteApp": { - "header": "Applicatie \"{ application }\" verwijderen?", - "content": { - "warning": "Dit zal de applicatie en alle bijbehorende tokens verwijderen. Dit kan niet ongedaan worden gemaakt." - } - }, - "revokeApp": { - "header": "Toegang voor de service \"{ application }\" intrekken?", - "content": { - "warning": "Dit zal de applicatie verhinderen om de dienst namens jou te benaderen." - } - } - }, - "help": { - "noApps": "Als je applicaties van derden toegang hebt gegeven tot je data, vind je ze hier in de lijst.", - "changePassword": "Controleer of je wachtwoord klopt", - "noPersonalApps": "Maak er één aan om Funkwhale te integreren met third-party applicaties." - }, - "link": { - "managePlugins": "Plugins beheren", - "newApp": "Registreer een nieuwe applicatie" - }, - "warning": { - "deleteAccount": "Je account zal binnen een paar minuten van onze servers verwijderd worden. We zullen ook andere servers informeren die wellicht een kopie van je gegevens hebben, zodat zij die ook kunnen verwijderen. Merk op dat deze servers offline kunnen zijn, of niet van zins zijn om aan het verzoek te voldoen." - }, - "message": { - "currentEmail": "Je huidige e-mailadres is { email }.", - "confirmDelete": "Je verzoek tot verwijderen is ingediend. Je account en inhoud worden spoedig verwijderd" - } - }, - "Logout": { - "header": { - "confirm": "Weet je zeker dat je wilt uitloggen?", - "unauthenticated": "Je bent momenteel niet ingelogd" - }, - "link": { - "login": "Inloggen!" - }, - "title": "Uitloggen", - "button": { - "logout": "Ja, ik wil uitloggen!" - }, - "message": { - "loggedIn": "Je bent ingelogd als { username }" - } - }, - "ApplicationNew": { - "link": { - "settings": "Terug naar instellingen" - }, - "title": "Maak een nieuwe applicatie aan" - }, - "ApplicationForm": { - "label": { - "scopes": { - "description": "Het aanvinken van de bovenliggende \"Lees\"- of \"Schrijf\"-scopes impliceert toegang tot alle corresponderende kindscopes.", - "read": { - "label": "Lezen", - "description": "Alleen-lezen toegang tot gebruikersgegevens" - }, - "write": { - "label": "Schrijven", - "description": "Alleen-schrijven toegang tot gebruikersgegevens" - } - }, - "name": "Naam", - "redirectUri": "Redirect URI" - }, - "button": { - "create": "Maak applicatie aan", - "update": "Applicatie bijwerken" - }, - "help": { - "redirectUri": "Gebruik \"urn:ietf:wg:oauth:2.0:oob\" als redirect URI als je applicatie niet geserveerd wordt op het web." - }, - "header": { - "failure": "We kunnen je wijzigingen niet opslaan" - } - }, - "LoginForm": { - "link": { - "createAccount": "Creëer een account", - "resetPassword": "Wachtwoord opnieuw instellen" - }, - "placeholder": { - "username": "Voer je gebruikersnaam of e-mailadres in" - }, - "help": { - "approvalRequired": "Als je je recentelijk hebt aangemeld, moet je misschien even wachten voordat ons moderatieteam je account heeft bekeken. Of je moet je e-mailadres verifiëren.", - "invalidCredentials": "Controleer of de combinatie van gebruikersnaam en wachtwoord klopt en controleer of je je e-mailadres hebt geverifieerd." - }, - "button": { - "login": "Inloggen" - }, - "label": { - "password": "Wachtwoord", - "username": "Gebruikersnaam of e-mailadres" - }, - "header": { - "loginFailure": "Er is een fout opgetreden tijdens het inloggen" - } - }, - "SignupForm": { - "button": { - "create": "Account creëren" - }, - "label": { - "email": "E-mailadres", - "password": "Wachtwoord", - "username": "Gebruikersnaam" - }, - "placeholder": { - "email": "Voer je e-mailadres in", - "invitation": "Voer je uitnodigingscode in (hoofdletterongevoelig)", - "username": "Voer je gebruikersnaam in" - }, - "header": { - "login": "Log in op je Funkwhale-account", - "signupFailure": "Je account kan niet aangemaakt worden." - }, - "message": { - "registrationClosed": "Vrije registraties zijn niet mogelijk op deze server. Je zult een uitnodigingscode nodig hebben om te registreren.", - "requiresReview": "Registraties op deze pod zijn geopend, maar worden bekeken door beheerders voor goedkeuring.", - "awaitingReview": "Je verzoek tot account aanmaken is succesvol verstuurd. Je zult via e-mail te horen krijgen wanneer ons moderatieteam je verzoek heeft bekeken.", - "accountCreated": "Je account is succesvol aangemaakt. Verifieer je e-mailadres voordat je probeert in te loggen." - } - }, - "Plugin": { - "link": { - "documentation": "Documentatie" - }, - "label": { - "pluginEnabled": "Ingeschakeld", - "library": "Bibliotheek" - }, - "header": { - "failure": "Fout bij het opslaan van de plugin" - }, - "description": { - "library": "Bibliotheek waar bestanden geïmporteerd zouden moeten worden." - }, - "button": { - "save": "Opslaan", - "scan": "Scan" - } - } - }, "About": { - "stat": { - "activeUsers": "{ n } actieve gebruiker | { n } actieve gebruikers", - "hoursOfMusic": "uur muziek | uur muziek" + "description": { + "findApp": "Gebruik Funkwhale op andere apparaten met onze apps.", + "funkwhale": "Funkwhale is een gemeenschapsgedreven project dat je muziek en audio laat luisteren en delen binnen een gedecentraliseerd open netwerk.", + "publicContent": "Luister naar publiek toegankelijke albums en afspeellijsten op deze pod.", + "quota": "Gebruikers op deze pod krijgen ook { quota } aan gratis opslag om hun eigen content te uploaden!", + "signup": "Maak nu een account aan om je favorieten op te slaan, afspeellijsten te maken, nieuwe content te ontdekken en nog veel meer!" }, "header": { - "funkwhale": "Een sociaal platform voor het genieten en delen van muziek", "aboutPod": "Over deze pod", - "publicContent": "Publieke content doorbladeren", "findApp": "Zoek een app", + "funkwhale": "Een sociaal platform voor het genieten en delen van muziek", + "publicContent": "Publieke content doorbladeren", "signup": "Aanmelden" }, - "title": "Over", + "help": { + "closedRegistrations": "Deze pod is niet open voor nieuwe gebruikers. Je kunt je registreren bij een andere pod via de onderstaande link." + }, "link": { "findOtherPod": "Zoek een andere pod", "learnMore": "Meer leren" }, - "description": { - "funkwhale": "Funkwhale is een gemeenschapsgedreven project dat je muziek en audio laat luisteren en delen binnen een gedecentraliseerd open netwerk.", - "publicContent": "Luister naar publiek toegankelijke albums en afspeellijsten op deze pod.", - "signup": "Maak nu een account aan om je favorieten op te slaan, afspeellijsten te maken, nieuwe content te ontdekken en nog veel meer!", - "findApp": "Gebruik Funkwhale op andere apparaten met onze apps.", - "quota": "Gebruikers op deze pod krijgen ook { quota } aan gratis opslag om hun eigen content te uploaden!" + "message": { + "greeting": "Hallo {username}", + "loggedIn": "Je bent al ingelogd!" }, "placeholder": { "noDescription": "Geen beschrijving beschikbaar." }, - "message": { - "loggedIn": "Je bent al ingelogd!" - } - }, - "Home": { "stat": { "activeUsers": "{ n } actieve gebruiker | { n } actieve gebruikers", - "hoursOfMusic": "{ n } uur muziek | { n } uren muziek" + "hoursOfMusic": "uur muziek | uur muziek" + }, + "title": "Over" + }, + "AboutPod": { + "feature": { + "allowList": "Toelatingslijst", + "anonymousAccess": "Anonieme toegang", + "federation": "Federatie", + "quota": "Uploadquotum", + "registrations": "Registraties", + "status": { + "closed": "Gesloten", + "disabled": "Uitgeschakeld", + "enabled": "Ingeschakeld", + "open": "Open" + }, + "version": "Funkwhale-versie" }, "header": { - "aboutFunkwhale": "Over Funkwhale", - "about": "Over deze Funkwhale-pod", + "about": "Over deze pod", "contact": "Contact", + "features": "Kenmerken", + "rules": "Regels", + "statistics": "Statistieken", + "terms": "Voorwaarden en privacy beleid" + }, + "link": { + "about": "Over deze pod", + "features": "Kenmerken", + "introduction": "Introductie", + "rules": "Regels", + "statistics": "Statistieken", + "terms": "Voorwaarden en privacy beleid" + }, + "message": { + "contact": "Stuur ons een e-mail: {'{{'} contactEmail {'}}'}" + }, + "notApplicable": "N.B.", + "placeholder": { + "noDescription": "Geen beschrijving beschikbaar.", + "noRules": "Geen regels beschikbaar.", + "noTerms": "Geen termen beschikbaar." + }, + "stat": { + "activeUsers": "actieve gebruiker | actieve gebruikers", + "albumsCount": "album | albums", + "artistsCount": "artiest | artiesten", + "hoursOfMusic": "uur muziek | uur muziek", + "listeningsCount": "Luisterbeurt | Luisterbeurten", + "tracksCount": "nummer | nummers" + }, + "title": "Over" + }, + "Home": { + "description": { + "funkwhale": { + "paragraph1": "Deze pod draait Funkwhale, een gemeenschapgestuurd project dat je muziek en audio laat beluisteren en delen binnen een gedecentraliseerd open netwerk.", + "paragraph2": "Funkwhale is gratis en wordt ontwikkeld door een vriendelijke gemeenschap van vrijwilligers." + }, + "quota": "Gebruikers van deze pod krijgen ook { quota } aan gratis opslag om hun eigen content te uploaden!", + "signup": "Maak nu een account aan om je favorieten op te slaan, afspeellijsten te maken, nieuwe content te ontdekken en nog veel meer!" + }, + "header": { + "about": "Over deze Funkwhale-pod", + "aboutFunkwhale": "Over Funkwhale", + "contact": "Contact", + "links": "Handige links", "login": "Inloggen", - "newChannels": "Nieuwe kanalen", "newAlbums": "Recent toegevoegde albums", + "newChannels": "Nieuwe kanalen", "signup": "Aanmelden", "statistics": "Statistieken", - "links": "Handige links", "welcome": "Welkom bij { podName }!" }, "link": { - "publicContent": { - "label": "Publieke content doorbladeren", - "description": "Luister naar publiek toegankelijke albums en afspeellijsten op deze pod" + "findOtherPod": "Zoek een andere pod", + "funkwhale": "Bezoek funkwhale.audio", + "learnMore": "Meer leren", + "mobileApps": { + "description": "Gebruik Funkwhale op andere apparaten met onze apps", + "label": "Mobiele apps" }, + "publicContent": { + "description": "Luister naar publiek toegankelijke albums en afspeellijsten op deze pod", + "label": "Publieke content doorbladeren" + }, + "rules": "Regels op deze server", "userGuides": { "description": "Ontdek alles wat je moet weten over Funkwhale en zijn functies", "label": "Handleidingen" }, - "findOtherPod": "Zoek een andere pod", - "learnMore": "Meer leren", - "mobileApps": { - "label": "Mobiele apps", - "description": "Gebruik Funkwhale op andere apparaten met onze apps" - }, - "rules": "Regels op deze server", - "viewMore": "Meer bekijken…", - "funkwhale": "Bezoek funkwhale.audio" + "viewMore": "Meer bekijken…" }, - "description": { - "funkwhale": { - "paragraph2": "Funkwhale is gratis en wordt ontwikkeld door een vriendelijke gemeenschap van vrijwilligers.", - "paragraph1": "Deze pod draait Funkwhale, een gemeenschapgestuurd project dat je muziek en audio laat beluisteren en delen binnen een gedecentraliseerd open netwerk." - }, - "signup": "Maak nu een account aan om je favorieten op te slaan, afspeellijsten te maken, nieuwe content te ontdekken en nog veel meer!", - "quota": "Gebruikers van deze pod krijgen ook { quota } aan gratis opslag om hun eigen content te uploaden!" - }, - "title": "Startpagina", "placeholder": { "noDescription": "Geen beschrijving beschikbaar." + }, + "stat": { + "activeUsers": "{ n } actieve gebruiker | { n } actieve gebruikers", + "hoursOfMusic": "{ n } uur muziek | { n } uren muziek" + }, + "title": "Startpagina" + }, + "PageNotFound": { + "header": { + "pageNotFound": "Pagina niet gevonden!" + }, + "link": { + "home": "Terug naar hoofdpagina" + }, + "message": { + "pageNotFound": "Sorry, de opgevraagde pagina bestaat niet:" + }, + "title": "Pagina Niet Gevonden" + }, + "Queue": { + "button": { + "clear": "Wissen", + "close": "Sluiten", + "stopRadio": "Radio stoppen" + }, + "header": { + "failure": "Het nummer kan niet worden geladen", + "noSources": "Het nummer heeft geen beschikbare bronnen.", + "radio": "Er wordt een radiostation afgespeeld" + }, + "label": { + "addArtistContentFilter": "Verberg content van deze artiest…", + "duration": "Duur", + "enterFullscreen": "Volledig scherm openen", + "exitFullscreen": "Volledig scherm sluiten", + "next": "Volgend nummer", + "pause": "Pauseer", + "play": "Afspelen", + "previous": "Vorig nummer", + "queue": "Wachtrij", + "remove": "Verwijderen", + "restart": "Nummer herstarten", + "selectTrack": "Kies nummer", + "showCoverArt": "Toon omslagafbeelding", + "showVisualizer": "Toon MoonDrop-visualisatie" + }, + "message": { + "automaticPlay": "Het volgende nummer zal automatisch worden afgespeeld over een paar seconden…", + "radio": "Nieuwe nummers worden hier automatisch toegevoegd." + }, + "meta": { + "queuePosition": "Nummer { index } van { length }" + }, + "warning": { + "connectivity": "Je hebt wellicht een connectiviteitsprobleem." + } + }, + "RemoteSearchForm": { + "button": { + "fediverse": "Fediverse", + "rss": "RSS", + "search": "Zoeken" + }, + "description": { + "fediverse": "Gebruik dit formulier om je te abonneren op een kanaal dat elders op de Fediverse wordt beheerd.", + "rss": "Gebruik dit formulier om je te abonneren op een RSS feed vanaf z'n URL." + }, + "error": { + "fetchFailed": "Dit object kan niet worden opgehaald" + }, + "header": { + "fetchFailed": "Fout bij het ophalen van het object" + }, + "label": { + "fediverse": { + "fieldLabel": "Fediverse object", + "title": "Abonneren op een podcast beheerd op de Fediverse" + }, + "rss": { + "fieldLabel": "RSS feed locatie", + "fieldPlaceholder": "https://website.example.com/rss.xml", + "title": "Abonneren op een podcast RSS feed" + } + }, + "warning": { + "unsupported": "Dit soort object wordt nog niet ondersteund" + } + }, + "SetInstanceModal": { + "button": { + "cancel": "Annuleren", + "submit": "Indienen" + }, + "header": { + "chooseInstance": "Kies je server", + "failure": "Het is niet mogelijk om verbinding te maken met de opgegeven URL", + "suggestions": "Aanbevelingen" + }, + "help": { + "notFunkwhaleServer": "Het opgegeven adres is geen Funkwhale-server", + "selectPod": "Selecteer met welke Funkwhale-server je wil verbinden. Voer zelf de URL in, of kies een van de suggesties.", + "serverDown": "De server is mogelijk niet beschikbaar" + }, + "label": { + "url": "Server-URL" + }, + "message": { + "newUrl": "Je gebruikt nu de Funkwhale-server op { url }" + } + }, + "ShortcutsModal": { + "button": { + "close": "Sluiten" + }, + "header": { + "modal": "Sneltoetsen" + }, + "shortcut": { + "audio": { + "clearQueue": "Wachtrij leegmaken", + "decreaseVolume": "Volume verlagen", + "expandQueue": "Wachtrij/afspeler vergroten", + "increaseVolume": "Volume verhogen", + "label": "Sneltoetsen audiospeler", + "playNext": "Speel volgende nummer", + "playPause": "Pauzeer/speel het huidige nummer", + "playPrevious": "Speel vorig nummer", + "seekBack30": "Terugspoelen met 30s", + "seekBack5": "Terugspoelen met 5s", + "seekForward30": "Vooruitspoelen met 30s", + "seekForward5": "Vooruitspoelen met 5s", + "shuffleQueue": "Wachtrij shuffelen", + "toggleFavorite": "Favoriet", + "toggleLoop": "Rij doorlopen", + "toggleMute": "Stil" + }, + "general": { + "focus": "Focus zoekbalk", + "label": "Algemene sneltoetsen", + "show": "Toon beschikbare sneltoetsen", + "unfocus": "Deselecteer zoekbalk" + } + } + }, + "Sidebar": { + "header": { + "administration": "Administratie", + "explore": "Verkennen", + "library": "Mijn bibliotheek", + "main": "Hoofdnavigatie", + "more": "Meer" + }, + "label": { + "add": "Content toevoegen", + "administration": "Administratie", + "edits": "Openstaande bewerkingen", + "follows": "In behandeling zijnde volgverzoeken", + "language": "Taal", + "main": "Hoofdmenu", + "play": "Speel dit nummer", + "theme": "Thema" + }, + "link": { + "about": "Over deze pod", + "albums": "Albums", + "artists": "Artiesten", + "browse": "Bladeren", + "channels": "Kanalen", + "createAccount": "Creëer een account", + "favorites": "Favorieten", + "home": "Startpagina", + "library": "Bibliotheek", + "login": "Inloggen", + "moderation": "Moderatie", + "playlists": "Afspeellijsten", + "podcasts": "Podcasts", + "radios": "Radio's", + "search": "Zoeken", + "settings": "Instellingen", + "users": "Gebruikers" + } + }, + "admin": { + "SettingsGroup": { + "button": { + "save": "Opslaan" + }, + "header": { + "error": "Fout tijdens opslaan van instellingen", + "image": "Huidige afbeelding" + }, + "message": { + "success": "De instellingen zijn bijgewerkt." + } + }, + "SignupFormBuilder": { + "button": { + "add": "Voeg een nieuw veld toe", + "edit": "Bewerk formulier", + "preview": "Previewformulier" + }, + "help": { + "additionalFields": "Extra velden moeten weergegeven worden in het formulier. Wordt alleen getoond als handmatige aanmeldvalidatie is aangezet.", + "helpText": "Een optionele tekst om weer te geven bij het begin van het aanmeldformulier." + }, + "label": { + "additionalField": "Extra veld", + "additionalFields": "Extra velden", + "delete": "Verwijderen", + "helpText": "Helptekst", + "moveDown": "Naar beneden", + "moveUp": "Naar boven" + }, + "table": { + "additionalFields": { + "header": { + "actions": "Acties", + "label": "Veldlabel", + "required": "Vereist", + "type": "Veldtype" + }, + "required": { + "false": "Nee", + "true": "Ja" + }, + "type": { + "long": "Lange tekst", + "short": "Korte tekst" + } + } + } } }, "audio": { - "artist": { - "Card": { - "meta": { - "episodes": "{ n } aflevering | { n } afleveringen", - "tracks": "{ n } nummer | { n } nummers" - } - }, - "Widget": { - "button": { - "more": "Toon meer" - } - } - }, "ChannelCard": { "meta": { "episodes": "{ n } aflevering | { n } afleveringen", @@ -429,249 +371,49 @@ }, "title": "Bijgewerkt op { date }" }, - "ChannelSerieCard": { - "meta": { - "episodes": "{ n } aflevering | { n } afleveringen" - } - }, - "album": { - "Card": { - "meta": { - "tracks": "{ n } nummer | { n } nummers" - } - }, - "Widget": { - "button": { - "more": "Toon meer" - } - } - }, - "Player": { - "meta": { - "position": "{ index } van { length }" - }, - "header": { - "player": "Audiospeler en bediening" - }, - "label": { - "clearQueue": "Wachtrij wissen", - "expandQueue": "Wachtrij uitklappen", - "addArtistContentFilter": "Verberg content van deze artiest…", - "loopingDisabled": "Herhalen uitgeschakeld. Klik om over te schakelen naar één nummer-herhaling.", - "loopingSingle": "Eén nummer wordt herhaald. Klik om over te schakelen naar wachtrijherhaling.", - "loopingWholeQueue": "Gehele wachtrij wordt herhaald. Klik om herhalen uit te schakelen.", - "audioPlayer": "Mediaspeler", - "mute": "Dempen", - "nextTrack": "Volgend nummer", - "pause": "Pauseer", - "play": "Afspelen", - "previousTrack": "Vorig nummer", - "shuffleQueue": "Shuffel je wachtrij", - "unmute": "Ontdempen" - } - }, - "PlayButton": { - "button": { - "addToQueue": "Aan huidige wachtrij toevoegen", - "addToPlaylist": "Toevoegen aan afspeellijst…", - "episodeDetails": "Afleveringdetails", - "hideArtist": "Content van deze artiest verbergen", - "discretePlay": "Afspelen", - "playAlbum": "Album afspelen", - "playArtist": "Speel artiest af", - "playNext": "Hierna afspelen", - "playNow": "Nu afspelen", - "playPlaylist": "Afspeellijst afspelen", - "startRadio": "Speel soortgelijke nummers", - "playTrack": "Nummer afspelen", - "playTracks": "Nummers afspelen", - "report": "Rapporteren…", - "trackDetails": "Nummerdetails" - }, - "title": { - "more": "Meer…", - "unavailable": "Dit nummer is niet beschikbaar in een bibliotheek waar je toegang tot hebt" - } - }, - "podcast": { - "Modal": { - "button": { - "addToFavorites": "Toevoegen aan favorieten", - "addToPlaylist": "Toevoegen aan afspeellijst…", - "addToQueue": "Toevoegen aan wachtrij", - "episodeDetails": "Afleveringdetails", - "playNext": "Hierna afspelen", - "playNow": "Nu afspelen", - "startRadio": "Radio afspelen", - "removeFromFavorites": "Verwijderen uit favorieten", - "trackDetails": "Nummerdetails", - "albumDetails": "Album bekijken", - "artistDetails": "Artiest bekijken", - "channelDetails": "Kanaal bekijken", - "seriesDetails": "Series bekijken" - } - }, - "MobileRow": { - "button": { - "actions": "Toon nummer acties" - } - } - }, - "track": { - "Modal": { - "button": { - "addToFavorites": "Toevoegen aan favorieten", - "addToPlaylist": "Toevoegen aan afspeellijst…", - "addToQueue": "Toevoegen aan wachtrij", - "episodeDetails": "Afleveringdetails", - "playNext": "Hierna afspelen", - "playNow": "Nu afspelen", - "startRadio": "Radio afspelen", - "removeFromFavorites": "Verwijderen uit favorieten", - "trackDetails": "Nummerdetails", - "albumDetails": "Album bekijken", - "artistDetails": "Artiest bekijken", - "channelDetails": "Kanaal bekijken", - "seriesDetails": "Series bekijken" - } - }, - "Table": { - "table": { - "header": { - "album": "Album", - "artist": "Artiest", - "title": "Titel" - } - } - }, - "Widget": { - "empty": { - "noResults": "Niets gevonden" - }, - "button": { - "more": "Toon meer" - } - }, - "MobileRow": { - "button": { - "actions": "Toon nummer acties" - } - } - }, - "VolumeControl": { - "label": { - "slider": "Pas volume aan" - }, - "button": { - "mute": "Dempen", - "unmute": "Ontdempen" - } - }, - "SearchBar": { - "label": { - "album": "Album", - "artist": "Artiest", - "category": { - "federation": "Federatie", - "podcasts": "Podcasts" - }, - "search": "Zoeken naar content", - "tag": "Tag", - "track": "Nummer" - }, - "link": { - "more": "Meer resultaten 🡒", - "fediverse": "Zoeken op de fediverse", - "rss": "Abonneren op podcast via RSS" - }, - "header": { - "noResults": "Geen resultaten gevonden" - }, - "placeholder": { - "search": "Zoek naar artiesten, albums, nummers…" - }, - "empty": { - "noResults": "Sorry, er zijn geen resultaten voor deze zoekopdracht" - } - }, - "Search": { - "header": { - "albums": "Albums", - "artists": "Artiesten", - "search": "Zoek naar wat muziek" - }, - "placeholder": { - "search": "Artiest, album, nummer…" - }, - "empty": { - "noAlbums": "Geen albums gevonden voor je zoekopdracht", - "noArtists": "Geen artiesten gevonden voor je zoekopdracht" + "ChannelEntries": { + "help": { + "subscribe": "Je moet je wellicht abonneren op dit kanaal om de inhoud ervan te zien." } }, "ChannelForm": { - "label": { - "discography": "Artiestdiscografie", - "category": "Categorie", - "image": "Kanaalafbeelding", - "description": "Omschrijving", - "username": "Fediverse bijnaam", - "language": "Taal", - "name": "Naam", - "email": "Eigenaar e-mailadres", - "owner": "Eigenaarnaam", - "podcast": "Podcasts", - "subcategory": "Subcategorie", - "tags": "Tags" - }, - "placeholder": { - "name": "Geweldige kanaalnaam", - "username": "geweldigekanaalnaam" - }, "header": { "error": "Fout tijdens opslaan van het kanaal" }, "help": { - "podcast": "Beheer je afleveringen en houd je gemeenschap op de hoogte.", "discography": "Publiceer muziek die je maakt als een leuke discografie van albums en singles.", + "podcast": "Beheer je afleveringen en houd je gemeenschap op de hoogte.", "podcastFields": "Gebruikt voor de itunes:email en itunes:name velden die vereist zijn door sommige platformen zoals Spotify en iTunes.", "username": "Gebruikt in URLs en om dit kanaal te volgen op de Fediverse. Het kan later niet aangepast worden." }, + "label": { + "category": "Categorie", + "description": "Omschrijving", + "discography": "Artiestdiscografie", + "email": "Eigenaar e-mailadres", + "image": "Kanaalafbeelding", + "language": "Taal", + "name": "Naam", + "owner": "Eigenaarnaam", + "podcast": "Podcasts", + "subcategory": "Subcategorie", + "tags": "Tags", + "username": "Fediverse bijnaam" + }, + "legend": { + "purpose": "Waar zal dit kanaal voor worden gebruikt?" + }, "loader": { "loading": "Bezig met uploaden" }, - "legend": { - "purpose": "Waar zal dit kanaal voor worden gebruikt?" + "placeholder": { + "name": "Geweldige kanaalnaam", + "username": "geweldigekanaalnaam" } }, - "LibraryFollowButton": { - "button": { - "cancel": "Trek volgverzoek in", - "follow": "Volgen", - "unfollow": "Ontvolgen" - } - }, - "EmbedWizard": { - "button": { - "copy": "Kopiëren" - }, - "help": { - "embed": "Kopieer/plak deze HTML-code in je website", - "width": "Laat leeg voor een responsieve widget", - "anonymous": "Neem alsjeblieft contact op met de beheerders om te vragen de relevante instellingen aan te passen." - }, - "label": { - "embed": "Embed-code", - "height": "Widget hoogte", - "width": "Widget breedte" - }, - "header": { - "preview": "Voorbeeld" - }, - "warning": { - "anonymous": "Delen werkt niet omdat anonieme gebruikers geen toegang hebben tot content op deze pod." - }, - "message": { - "copy": "Tekst gekopieerd naar het klembord!" + "ChannelSerieCard": { + "meta": { + "episodes": "{ n } aflevering | { n } afleveringen" } }, "ChannelSeries": { @@ -687,28 +429,1055 @@ "showMore": "Toon meer" } }, - "ChannelEntries": { + "EmbedWizard": { + "button": { + "copy": "Kopiëren" + }, + "header": { + "preview": "Voorbeeld" + }, "help": { - "subscribe": "Je moet je wellicht abonneren op dit kanaal om de inhoud ervan te zien." + "anonymous": "Neem alsjeblieft contact op met de beheerders om te vragen de relevante instellingen aan te passen.", + "embed": "Kopieer/plak deze HTML-code in je website", + "width": "Laat leeg voor een responsieve widget" + }, + "label": { + "embed": "Embed-code", + "height": "Widget hoogte", + "width": "Widget breedte" + }, + "message": { + "copy": "Tekst gekopieerd naar het klembord!" + }, + "warning": { + "anonymous": "Delen werkt niet omdat anonieme gebruikers geen toegang hebben tot content op deze pod." } + }, + "LibraryFollowButton": { + "button": { + "cancel": "Trek volgverzoek in", + "follow": "Volgen", + "unfollow": "Ontvolgen" + } + }, + "PlayButton": { + "button": { + "addToPlaylist": "Toevoegen aan afspeellijst…", + "addToQueue": "Aan huidige wachtrij toevoegen", + "discretePlay": "Afspelen", + "episodeDetails": "Afleveringdetails", + "hideArtist": "Content van deze artiest verbergen", + "playAlbum": "Album afspelen", + "playArtist": "Speel artiest af", + "playNext": "Hierna afspelen", + "playNow": "Nu afspelen", + "playPlaylist": "Afspeellijst afspelen", + "playTrack": "Nummer afspelen", + "playTracks": "Nummers afspelen", + "report": "Rapporteren…", + "startRadio": "Speel soortgelijke nummers", + "trackDetails": "Nummerdetails" + }, + "title": { + "more": "Meer…", + "unavailable": "Dit nummer is niet beschikbaar in een bibliotheek waar je toegang tot hebt" + } + }, + "Player": { + "header": { + "player": "Audiospeler en bediening" + }, + "label": { + "addArtistContentFilter": "Verberg content van deze artiest…", + "audioPlayer": "Mediaspeler", + "clearQueue": "Wachtrij wissen", + "expandQueue": "Wachtrij uitklappen", + "loopingDisabled": "Herhalen uitgeschakeld. Klik om over te schakelen naar één nummer-herhaling.", + "loopingSingle": "Eén nummer wordt herhaald. Klik om over te schakelen naar wachtrijherhaling.", + "loopingWholeQueue": "Gehele wachtrij wordt herhaald. Klik om herhalen uit te schakelen.", + "mute": "Dempen", + "nextTrack": "Volgend nummer", + "pause": "Pauseer", + "play": "Afspelen", + "previousTrack": "Vorig nummer", + "shuffleQueue": "Shuffel je wachtrij", + "unmute": "Ontdempen" + }, + "meta": { + "position": "{ index } van { length }" + } + }, + "Search": { + "empty": { + "noAlbums": "Geen albums gevonden voor je zoekopdracht", + "noArtists": "Geen artiesten gevonden voor je zoekopdracht" + }, + "header": { + "albums": "Albums", + "artists": "Artiesten", + "search": "Zoek naar wat muziek" + }, + "placeholder": { + "search": "Artiest, album, nummer…" + } + }, + "SearchBar": { + "empty": { + "noResults": "Sorry, er zijn geen resultaten voor deze zoekopdracht" + }, + "header": { + "noResults": "Geen resultaten gevonden" + }, + "label": { + "album": "Album", + "artist": "Artiest", + "category": { + "federation": "Federatie", + "podcasts": "Podcasts" + }, + "search": "Zoeken naar content", + "tag": "Tag", + "track": "Nummer" + }, + "link": { + "fediverse": "Zoeken op de fediverse", + "more": "Meer resultaten 🡒", + "rss": "Abonneren op podcast via RSS" + }, + "placeholder": { + "search": "Zoek naar artiesten, albums, nummers…" + } + }, + "VolumeControl": { + "button": { + "mute": "Dempen", + "unmute": "Ontdempen" + }, + "label": { + "slider": "Pas volume aan" + } + }, + "album": { + "Card": { + "meta": { + "tracks": "{ n } nummer | { n } nummers" + } + }, + "Widget": { + "button": { + "more": "Toon meer" + } + } + }, + "artist": { + "Card": { + "meta": { + "episodes": "{ n } aflevering | { n } afleveringen", + "tracks": "{ n } nummer | { n } nummers" + } + }, + "Widget": { + "button": { + "more": "Toon meer" + } + } + }, + "podcast": { + "MobileRow": { + "button": { + "actions": "Toon nummer acties" + } + }, + "Modal": { + "button": { + "addToFavorites": "Toevoegen aan favorieten", + "addToPlaylist": "Toevoegen aan afspeellijst…", + "addToQueue": "Toevoegen aan wachtrij", + "albumDetails": "Album bekijken", + "artistDetails": "Artiest bekijken", + "channelDetails": "Kanaal bekijken", + "episodeDetails": "Afleveringdetails", + "playNext": "Hierna afspelen", + "playNow": "Nu afspelen", + "removeFromFavorites": "Verwijderen uit favorieten", + "seriesDetails": "Series bekijken", + "startRadio": "Radio afspelen", + "trackDetails": "Nummerdetails" + } + } + }, + "track": { + "MobileRow": { + "button": { + "actions": "Toon nummer acties" + } + }, + "Modal": { + "button": { + "addToFavorites": "Toevoegen aan favorieten", + "addToPlaylist": "Toevoegen aan afspeellijst…", + "addToQueue": "Toevoegen aan wachtrij", + "albumDetails": "Album bekijken", + "artistDetails": "Artiest bekijken", + "channelDetails": "Kanaal bekijken", + "episodeDetails": "Afleveringdetails", + "playNext": "Hierna afspelen", + "playNow": "Nu afspelen", + "removeFromFavorites": "Verwijderen uit favorieten", + "seriesDetails": "Series bekijken", + "startRadio": "Radio afspelen", + "trackDetails": "Nummerdetails" + } + }, + "Table": { + "table": { + "header": { + "album": "Album", + "artist": "Artiest", + "title": "Titel" + } + } + }, + "Widget": { + "button": { + "more": "Toon meer" + }, + "empty": { + "noResults": "Niets gevonden" + } + } + } + }, + "auth": { + "ApplicationEdit": { + "button": { + "regenerateToken": "Genereer token opnieuw" + }, + "header": { + "appDetails": "Applicatie-details", + "editApp": "Bewerk applicatie" + }, + "help": { + "appDetails": "De applicatie-ID en sleutel zijn gevoelige gegevens en moet je als wachtwoord beschouwen. Deel ze niet met anderen." + }, + "label": { + "accessToken": "Access token", + "appId": "Applicatie-ID", + "appSecret": "Applicatie-sleutel" + }, + "link": { + "settings": "Terug naar instellingen" + }, + "title": "Bewerk applicatie" + }, + "ApplicationForm": { + "button": { + "create": "Maak applicatie aan", + "update": "Applicatie bijwerken" + }, + "header": { + "failure": "We kunnen je wijzigingen niet opslaan" + }, + "help": { + "redirectUri": "Gebruik \"urn:ietf:wg:oauth:2.0:oob\" als redirect URI als je applicatie niet geserveerd wordt op het web." + }, + "label": { + "name": "Naam", + "redirectUri": "Redirect URI", + "scopes": { + "description": "Het aanvinken van de bovenliggende \"Lees\"- of \"Schrijf\"-scopes impliceert toegang tot alle corresponderende kindscopes.", + "read": { + "description": "Alleen-lezen toegang tot gebruikersgegevens", + "label": "Lezen" + }, + "write": { + "description": "Alleen-schrijven toegang tot gebruikersgegevens", + "label": "Schrijven" + } + } + } + }, + "ApplicationNew": { + "link": { + "settings": "Terug naar instellingen" + }, + "title": "Maak een nieuwe applicatie aan" + }, + "Authorize": { + "button": { + "authorize": "Autoriseer { app }" + }, + "header": { + "access": "{ app } wil toegang tot je Funkwhale account", + "allScopes": "Volledige toegang", + "authorize": "Autoriseer third-party app", + "authorizeFailure": "Fout bij het autoriseren van applicatie", + "fetchFailure": "Fout bij ophalen van applicatiegegevens", + "readOnly": "Alleen-lezen", + "writeOnly": "Alleen-schrijven" + }, + "help": { + "copyCode": "Je zult een code te zien krijgen om te kopiëren naar de applicatie.", + "pasteCode": "Kopieer en plak de volgende code in de applicatie:", + "redirect": "Je wordt doorgestuurd naar { 0 }" + }, + "message": { + "unknownPermissions": "De applicatie verzoekt ook de volgende onbekende machtigingen:" + }, + "title": "Sta deze applicatie toe" + }, + "LoginForm": { + "button": { + "login": "Inloggen" + }, + "header": { + "loginFailure": "Er is een fout opgetreden tijdens het inloggen" + }, + "help": { + "approvalRequired": "Als je je recentelijk hebt aangemeld, moet je misschien even wachten voordat ons moderatieteam je account heeft bekeken. Of je moet je e-mailadres verifiëren.", + "invalidCredentials": "Controleer of de combinatie van gebruikersnaam en wachtwoord klopt en controleer of je je e-mailadres hebt geverifieerd." + }, + "label": { + "password": "Wachtwoord", + "username": "Gebruikersnaam of e-mailadres" + }, + "link": { + "createAccount": "Creëer een account", + "resetPassword": "Wachtwoord opnieuw instellen" + }, + "placeholder": { + "username": "Voer je gebruikersnaam of e-mailadres in" + } + }, + "Logout": { + "button": { + "logout": "Ja, ik wil uitloggen!" + }, + "header": { + "confirm": "Weet je zeker dat je wilt uitloggen?", + "unauthenticated": "Je bent momenteel niet ingelogd" + }, + "link": { + "login": "Inloggen!" + }, + "message": { + "loggedIn": "Je bent ingelogd als { username }" + }, + "title": "Uitloggen" + }, + "Plugin": { + "button": { + "save": "Opslaan", + "scan": "Scan" + }, + "description": { + "library": "Bibliotheek waar bestanden geïmporteerd zouden moeten worden." + }, + "header": { + "failure": "Fout bij het opslaan van de plugin" + }, + "label": { + "library": "Bibliotheek", + "pluginEnabled": "Ingeschakeld" + }, + "link": { + "documentation": "Documentatie" + } + }, + "Settings": { + "button": { + "delete": "Verwijderen", + "deleteAccount": "Verwijder mijn account…", + "deleteAccountConfirm": "Verwijder mijn account", + "disableSubsonic": "Toegang uitschakelen", + "edit": "Bewerken", + "password": "Wachtwoord wijzigen", + "refresh": "Verversen", + "remove": "Verwijderen", + "removeApp": "Verwijder applicatie", + "revoke": "Intrekken", + "revokeAccess": "Toestemming toegang intrekken", + "update": "Update", + "updateSettings": "Instellingen bijwerken" + }, + "description": { + "authorizedApps": "Dit is de lijst van applicaties die toegang hebben tot je accountdata.", + "changeEmail": "Verander het e-mail adres dat aan je account gekoppeld is. We zullen een bevestiging sturen naar het nieuwe adres.", + "changePassword": { + "paragraph1": "Als je je wachtwoord wijzigt, dan wordt ook het wachtwoord voor de Subsonic-API gewijzigd als je deze had ingesteld.", + "paragraph2": "Je moet je wachtwoord bijwerken op je clients die ook dit wachtwoord gebruiken." + }, + "contentFilters": "Inhoudsfilters helpen je inhoud te verbergen die je niet wilt tegenkomen.", + "deleteAccount": "Je kunt permanent en onomkeerbaar je account en alle bijbehorende gegevens verwijderd middels het formulier hieronder. Je zult om bevestiging worden gevraagd.", + "plugins": "Gebruik plugins om Funkwhale uit te breiden en extra eigenschappen te krijgen.", + "yourApps": "Dit is de lijst van applicaties die je geregistreerd hebt." + }, + "header": { + "accountFailure": "We kunnen je account niet verwijderen", + "accountSettings": "Accountinstellingen", + "authorizedApps": "Geautoriseerde apps", + "avatar": "Avatar", + "avatarFailure": "Je avatar kan niet opgeslagen worden", + "changeEmail": "Wijzig mijn e-mailadres", + "changePassword": "Wijzig mijn wachtwoord", + "contentFilters": "Inhoudsfilters", + "deleteAccount": "Verwijder mijn account", + "emailFailure": "We kunnen je e-mailadres niet aanpassen", + "hiddenArtists": "Verborgen artiesten", + "noApps": "Je hebt geen applicatie verbonden met je account.", + "noPersonalApps": "Je hebt nog geen applicatie geregistreerd.", + "passwordFailure": "Je wachtwoord kan niet worden gewijzigd", + "plugins": "Plugins", + "settingsUpdated": "Instellingen bijgewerkt", + "updateFailure": "Je instellingen kunnen niet worden bijgewerkt", + "yourApps": "Je applicaties" + }, + "help": { + "changePassword": "Controleer of je wachtwoord klopt", + "noApps": "Als je applicaties van derden toegang hebt gegeven tot je data, vind je ze hier in de lijst.", + "noPersonalApps": "Maak er één aan om Funkwhale te integreren met third-party applicaties." + }, + "label": { + "avatar": "Avatar", + "currentPassword": "Huidige wachtwoord", + "newEmail": "Nieuw e-mailadres", + "newPassword": "Nieuw wachtwoord", + "password": "Wachtwoord" + }, + "link": { + "managePlugins": "Plugins beheren", + "newApp": "Registreer een nieuwe applicatie" + }, + "message": { + "confirmDelete": "Je verzoek tot verwijderen is ingediend. Je account en inhoud worden spoedig verwijderd", + "currentEmail": "Je huidige e-mailadres is { email }." + }, + "modal": { + "changePassword": { + "content": { + "logout": "Je wordt uitgelogd uit deze sessie moet inloggen op de nieuwe", + "subsonic": "Je Subsonic-wachtwoord wordt vervangen door een nieuwe, waardoor je wordt uitgelogd op apparaten die het oude wachtwoord gebruiken", + "warning": "Het aanpassen van je wachtwoord heeft de volgende gevolgen:" + }, + "header": "Wil je je wachtwoord wijzigen?" + }, + "deleteAccount": { + "content": { + "warning": "Dit is onomkeerbaar en zal permanent al je data van onze servers verwijderen. Je zult onmiddellijk worden uitgelogd." + }, + "header": "Wil je jouw account verwijderen?" + }, + "deleteApp": { + "content": { + "warning": "Dit zal de applicatie en alle bijbehorende tokens verwijderen. Dit kan niet ongedaan worden gemaakt." + }, + "header": "Applicatie \"{ application }\" verwijderen?" + }, + "revokeApp": { + "content": { + "warning": "Dit zal de applicatie verhinderen om de dienst namens jou te benaderen." + }, + "header": "Toegang voor de service \"{ application }\" intrekken?" + } + }, + "table": { + "artists": { + "header": { + "creationDate": "Toegevoegd", + "name": "Naam" + } + }, + "authorizedApps": { + "header": { + "application": "Applicatie", + "permissions": "Machtigingen" + } + }, + "yourApps": { + "header": { + "application": "Applicatie", + "creationDate": "Toegevoegd", + "scopes": "Scopes" + } + } + }, + "title": "Accountinstellingen", + "warning": { + "deleteAccount": "Je account zal binnen een paar minuten van onze servers verwijderd worden. We zullen ook andere servers informeren die wellicht een kopie van je gegevens hebben, zodat zij die ook kunnen verwijderen. Merk op dat deze servers offline kunnen zijn, of niet van zins zijn om aan het verzoek te voldoen." + } + }, + "SignupForm": { + "button": { + "create": "Account creëren" + }, + "header": { + "login": "Log in op je Funkwhale-account", + "signupFailure": "Je account kan niet aangemaakt worden." + }, + "label": { + "email": "E-mailadres", + "password": "Wachtwoord", + "username": "Gebruikersnaam" + }, + "message": { + "accountCreated": "Je account is succesvol aangemaakt. Verifieer je e-mailadres voordat je probeert in te loggen.", + "awaitingReview": "Je verzoek tot account aanmaken is succesvol verstuurd. Je zult via e-mail te horen krijgen wanneer ons moderatieteam je verzoek heeft bekeken.", + "registrationClosed": "Vrije registraties zijn niet mogelijk op deze server. Je zult een uitnodigingscode nodig hebben om te registreren.", + "requiresReview": "Registraties op deze pod zijn geopend, maar worden bekeken door beheerders voor goedkeuring." + }, + "placeholder": { + "email": "Voer je e-mailadres in", + "invitation": "Voer je uitnodigingscode in (hoofdletterongevoelig)", + "username": "Voer je gebruikersnaam in" + } + }, + "SubsonicTokenForm": { + "button": { + "confirmDisable": "Toegang uitschakelen", + "confirmNewPassword": "Wachtwoord aanvragen", + "disable": "Subsonic-toegang uitschakelen", + "newPassword": "Nieuw wachtwoord aanvragen" + }, + "description": { + "subsonic": { + "paragraph1": "Funkwhale werkt met andere muziekspelers die de Subsonic-API ondersteunen.", + "paragraph2": "Je kunt ze gebruiken om ook offline te genieten van je afspeellijst en muziek, bijvoorbeeld op je smartphone of tablet.", + "paragraph3": "Om Funkwhale te benaderen via die apps is een apart wachtwoord nodig. Dit kan je hieronder instellen." + } + }, + "header": { + "error": "Fout", + "subsonic": "Wachtwoord voor Subsonic-API" + }, + "label": { + "subsonicField": "Je wachtwoord voor de Subsonic-API" + }, + "link": { + "apps": "Ontdek hoe je Funkwhale met andere apps kunt gebruiken" + }, + "message": { + "accessDisabled": "Toegang uitgeschakeld", + "passwordUpdated": "Wachtwoord bijgewerkt", + "unavailable": "De Subsonic-API is niet beschikbaar op deze server." + }, + "modal": { + "disableSubsonic": { + "content": { + "warning": "De toegang tot de Subsonic-API vanaf dit account wordt uitgeschakeld." + }, + "header": "Subsonic-API-toegang uitschakelen?" + }, + "newPassword": { + "content": { + "warning": "Je wordt uitgelogd op elk apparaat met het huidige wachtwoord." + }, + "header": "Nieuw Subsonic-API-wachtwoord aanvragen?" + } + } + } + }, + "channels": { + "AlbumForm": { + "header": { + "error": "Fout bij aanmaken" + }, + "label": { + "albumTitle": "Titel" + } + }, + "AlbumModal": { + "button": { + "cancel": "Annuleren", + "create": "Aanmaken" + }, + "header": { + "newAlbum": "Nieuw album", + "newSeries": "Nieuwe series" + } + }, + "AlbumSelect": { + "label": { + "album": "Album", + "series": "Series" + }, + "meta": { + "tracks": "{ n } nummer | { n } nummers" + }, + "option": { + "none": "Geen" + } + }, + "LicenseSelect": { + "label": { + "license": "Licentie" + }, + "link": { + "license": "Over deze licentie" + }, + "option": { + "none": "Geen" + } + }, + "SubscribeButton": { + "help": { + "auth": "Je moet ingelogd zijn om je te kunnen abonneren op dit kanaal" + }, + "title": { + "subscribe": "Abonneren", + "unsubscribe": "Ontvolgen" + } + }, + "UploadForm": { + "button": { + "edit": "Bewerken", + "ignore": "Negeren", + "remove": "Verwijderen", + "resume": "Hervatten", + "retry": "Opnieuw proberen" + }, + "description": { + "extensions": "Ondersteunde uitbreidingen: { extensions }" + }, + "header": { + "error": "Fout bij het publiceren" + }, + "help": { + "license": "Voeg een licentie toe aan je upload zodat je publiek weet wat is toegestaan." + }, + "label": { + "channel": "Kanaal", + "openBrowser": "Bladeren…" + }, + "message": { + "dragAndDrop": "Sleep je bestanden hiernaartoe of open je browser om ze te uploaden", + "pending": "Je hebt wat conceptuploads die in afwachting zijn van publicatie." + }, + "status": { + "errored": "Mislukt", + "pending": "In behandeling", + "uploading": "Bezig met uploaden" + }, + "warning": { + "quota": "Je hebt geen ruimte meer over om je bestanden te uploaden. Neem contact op met de moderatoren." + } + }, + "UploadMetadataForm": { + "label": { + "description": "Omschrijving", + "image": "Afbeelding van nummer", + "position": "Positie", + "tags": "Tags", + "title": "Titel" + } + }, + "UploadModal": { + "button": { + "cancel": "Annuleren", + "close": "Sluiten", + "finishLater": "Rond later af", + "next": "Volgende stap", + "previous": "Vorige stap", + "publish": "Publiceer", + "update": "Update" + }, + "header": { + "processing": "Uploads aan het verwerken", + "publish": "Publiceer audio", + "uploadDetails": "Uploaddetails", + "uploadFiles": "Bestanden om te uploaden" + }, + "meta": { + "files": "{ n } bestand | { n } bestanden", + "quota": "Resterende opslagruimte:" + } + } + }, + "common": { + "ActionTable": { + "button": { + "allSelected": "Één element geselecteerd | Alle { n } elementen geselecteerd", + "go": "Ga", + "launch": "Opstarten", + "refresh": "Vernieuw inhoud tabel", + "select": "Selecteer", + "selectAll": "Selecteer alle voorwerpen", + "selectCurrentPage": "Alleen deze pagina kiezen", + "selectElement": "Selecteer { n } element | Selecteer alle { n } elementen", + "selected": "{ n } van { total } geselecteerd | { n } van { total } geselecteerd" + }, + "header": { + "error": "Fout tijdens toepassen van actie" + }, + "label": { + "actions": "Acties", + "performAction": "Voer acties uit" + }, + "message": { + "needsRefresh": "Inhoud is geüpdatet. Klik vernieuwen om actuele inhoud te zien", + "success": "Actie { action } is begonnen voor { n } element | Actie { action } is begonnen voor { n } elementen" + }, + "modal": { + "performAction": { + "content": { + "warning": "Dit kan gevolgen hebben voor veel elementen of onomkeerbare consequenties hebben. Controleer of je dit écht wilt doen." + }, + "header": "Wil je { action } toepassen op { n } element? | Wil je { action } toepassen op { n } elementen?" + } + } + }, + "AttachmentInput": { + "button": { + "remove": "Verwijderen" + }, + "header": { + "failure": "Je attachment kan niet opgeslagen worden" + }, + "help": { + "upload": "PNG or JPG. Dimensies zouden tussen 1400x1400px en 3000x3000px moeten liggen. Maximaal toegestane bestandsgrootte is 5MB." + }, + "label": { + "upload": "Nieuwe afbeelding uploaden…" + }, + "loader": { + "uploading": "Bezig met bestand uploaden…" + } + }, + "CollapseLink": { + "button": { + "collapse": "Toeklappen", + "expand": "Uitklappen" + } + }, + "ContentForm": { + "button": { + "preview": "Voorbeeld", + "write": "Schrijven" + }, + "empty": { + "noContent": "Niets om te bekijken." + }, + "help": { + "markdown": "Markdown syntax wordt ondersteund." + }, + "placeholder": { + "input": "Schrijf hier een paar woorden…" + } + }, + "CopyInput": { + "button": { + "copy": "Kopiëren" + }, + "message": { + "success": "Tekst gekopieerd naar het klembord!" + } + }, + "DangerousButton": { + "button": { + "cancel": "Annuleren", + "confirm": "Bevestigen" + }, + "header": { + "confirm": "Wil je de actie bevestigen?" + } + }, + "Duration": { + "meta": { + "hours": "{ hours } uur { minutes } min", + "minutes": "{ minutes } min" + } + }, + "EmptyState": { + "button": { + "refresh": "Verversen" + }, + "header": { + "noResults": "Geen resultaten gevonden." + } + }, + "ExpandableDiv": { + "button": { + "less": "Toon minder", + "more": "Toon meer" + } + }, + "InlineSearchBar": { + "button": { + "clear": "Wissen" + }, + "label": { + "search": "Zoeken" + }, + "placeholder": { + "search": "Zoeken…" + } + }, + "LoginModal": { + "description": { + "noAccess": "Je hebt geen toegang!" + }, + "header": { + "unauthenticated": "Ongeauthenticeerd" + }, + "link": { + "login": "Inloggen", + "signup": "Aanmelden" + } + }, + "RenderedDescription": { + "button": { + "cancel": "Annuleren", + "edit": "Bewerken", + "less": "Toon minder", + "more": "Toon meer", + "update": "Omschrijving bijwerken" + }, + "empty": { + "noDescription": "Geen beschrijving beschikbaar" + }, + "header": { + "failure": "Fout tijdens bijwerken van de beschrijving" + } + }, + "UserMenu": { + "label": { + "language": "Taal", + "shortcuts": "Sneltoetsen", + "theme": "Thema" + }, + "link": { + "about": "Over", + "chat": "Chatruimte", + "docs": "Documentatie", + "forum": "Forum", + "git": "Issuetracker", + "login": "Inloggen", + "logout": "Uitloggen", + "notifications": "Meldingen", + "profile": "Profiel", + "settings": "Instellingen", + "signup": "Aanmelden", + "support": "Help" + } + }, + "UserModal": { + "button": { + "switchInstance": "Andere server gebruiken" + }, + "header": { + "options": "Opties" + }, + "label": { + "language": "Taal", + "shortcuts": "Sneltoetsen", + "theme": "Thema" + }, + "link": { + "about": "Over", + "chat": "Chatruimte", + "forum": "Forum", + "git": "Issuetracker", + "login": "Inloggen", + "logout": "Uitloggen", + "notifications": "Meldingen", + "profile": "Profiel", + "settings": "Instellingen", + "signup": "Aanmelden", + "support": "Help" + } + } + }, + "favorites": { + "List": { + "empty": { + "noFavorites": "Er zijn nog geen nummers aan je favorieten toegevoegd" + }, + "header": { + "favorites": "{ n } favoriet | { n } favorieten" + }, + "link": { + "library": "Verzameling doorbladeren" + }, + "loader": { + "loading": "Je favorieten aan het laden…" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Volgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Aantal resultaten per pagina" + }, + "title": "Je favorieten" + }, + "TrackFavoriteIcon": { + "button": { + "add": "Toevoegen aan favorieten", + "remove": "Verwijderen uit favorieten" + }, + "label": { + "inFavorites": "In je favorieten" + } + } + }, + "federation": { + "FetchButton": { + "button": { + "close": "Sluiten", + "reload": "Sluiten en pagina vernieuwen" + }, + "description": { + "failure": "Er is een fout opgetreden tijdens het vernieuwen van gegevens:", + "pending": "Het verversverzoek is niet op tijd verwerkt door onze server. Het zal later worden verwerkt.", + "skipped": "De externe server reageerde, maar de geretourneerde data wordt niet ondersteund door Funkwhale.", + "success": "Gegevens van externe server succesvol vernieuwd." + }, + "header": { + "failure": "Fout bij vernieuwen", + "pending": "Vernieuwing in afwachting", + "refresh": "Object verversen van externe server…", + "saveFailure": "Fout tijdens opslaan van instellingen", + "skipped": "Vernieuwen overgeslagen", + "success": "Vernieuwen afgerond" + }, + "loader": { + "awaitingResult": "Wacht op resultaat…", + "fetchRequest": "Fetch aan het aanvragen…" + }, + "table": { + "error": { + "label": { + "detail": "Foutdetail", + "type": "Foutsoort" + }, + "value": { + "connectionError": "Kan geen verbinding krijgen met de externe server", + "httpError": "Er is een HTTP-fout opgetreden bij het contacteren van de externe server", + "httpStatus": "De externe server reageerde met HTTP { status }", + "invalidAttributesError": "Gegevens verkregen van de externe server waren onvolledig of incorrect", + "invalidJsonError": "De externe server retourneerde ongeldigde JSON of JSON-LD data", + "timeoutError": "The externe server reageerde niet snel genoeg", + "unknownError": "Onbekende fout" + } + } + } + }, + "LibraryWidget": { + "button": { + "showMore": "Toon meer" + }, + "empty": { + "noMatch": "Geen overeenkomende bibliotheek." + } + } + }, + "forms": { + "PasswordInput": { + "button": { + "copy": "Kopiëren" + }, + "message": { + "copy": "Tekst gekopieerd naar het klembord!" + }, + "title": "Wachtwoord tonen/verbergen" } }, "library": { "AlbumBase": { + "link": { + "addDescription": "Voeg een omschrijving toe…" + }, "meta": { "episodes": "{ n } aflevering | { n } afleveringen", "tracks": "{ n } nummer | { n } nummers" - }, - "link": { - "addDescription": "Voeg een omschrijving toe…" } }, - "ArtistBase": { - "meta": { - "tracks": "{ n } nummer in | { n } nummers in", - "albums": "{ n } albums | { n } albums" + "AlbumDetail": { + "description": { + "libraries": "Dit album is beschikbaar in de volgende verzamelingen:" }, - "title": "Artiest", + "header": { + "episodes": "Afleveringen", + "libraries": "Gebruikersverzamelingen", + "tracks": "Nummers" + }, + "meta": { + "volume": "Volume { number }" + } + }, + "AlbumDropdown": { + "button": { + "cancel": "Annuleren", + "delete": "Verwijderen…", + "edit": "Bewerken", + "embed": "Embedden", + "more": "Meer…" + }, + "link": { + "discogs": "Zoek bij Discogs", + "django": "Kijk in Django's admin", + "domain": "Op { domain } bekijken", + "moderation": "Open in moderatie-interface", + "musicbrainz": "Bekijken op MusicBrainz" + }, + "modal": { + "delete": { + "content": { + "warning": "Het album zal worden verwijderd, samen met alle bijbehorende bestanden en data. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Album verwijderen?" + }, + "embed": { + "header": "Embed dit album op je website" + } + } + }, + "AlbumEdit": { + "header": { + "edit": "Dit album bewerken", + "suggest": "Stel een wijziging voor op dit album" + }, + "message": { + "remote": "Dit object wordt beheerd door een andere server. Je kunt het niet bewerken." + } + }, + "Albums": { + "button": { + "search": "Zoeken" + }, + "empty": { + "noResults": "Geen resultaten gevonden voor je zoekopdracht" + }, + "header": { + "browse": "Albums doorbladeren" + }, + "label": { + "search": "Zoeken", + "tags": "Tags" + }, + "link": { + "addMusic": "Voeg muziek toe" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Aantal resultaten per pagina" + }, + "placeholder": { + "search": "Voer albumtitel in…" + }, + "title": "Albums" + }, + "ArtistBase": { "button": { "cancel": "Annuleren", "edit": "Bewerken", @@ -716,76 +1485,186 @@ "more": "Meer…", "play": "Alle albums afspelen" }, + "link": { + "discogs": "Zoek bij Discogs", + "django": "Kijk in Django's admin", + "domain": "Op { domain } bekijken", + "moderation": "Open in moderatie-interface", + "musicbrainz": "Bekijken op MusicBrainz", + "wikipedia": "Zoeken op Wikipedia" + }, + "meta": { + "albums": "{ n } albums | { n } albums", + "tracks": "{ n } nummer in | { n } nummers in" + }, "modal": { "embed": { "header": "Embed deze artiest op je website" } }, + "title": "Artiest" + }, + "ArtistDetail": { + "button": { + "filter": "Filter verwijderen", + "more": "Laad meer…" + }, + "description": { + "library": "Deze artiest komt voor in de volgende verzamelingen:" + }, + "header": { + "album": "Albums van deze artiest", + "library": "Gebruikersverzamelingen", + "track": "Nieuwe nummers van deze artiest" + }, "link": { - "moderation": "Open in moderatie-interface", - "discogs": "Zoek bij Discogs", - "wikipedia": "Zoeken op Wikipedia", - "django": "Kijk in Django's admin", - "domain": "Op { domain } bekijken", - "musicbrainz": "Bekijken op MusicBrainz" + "filter": "Mijn filters controleren" + }, + "message": { + "filter": "Je verbergt momenteel content gerelateerd aan deze artiest." } }, - "radios": { - "Builder": { - "header": { - "matches": "{ n } nummer komt overeen met de gecombineerde filters | { n } nummers komen overeen met de gecombineerde filters", - "builder": "Bouwer", - "created": "Radio gecreëerd", - "updated": "Radio bijgewerkt" + "ArtistEdit": { + "header": { + "edit": "Bewerk deze artiest", + "suggest": "Stel een wijziging voor op deze artiest" + }, + "message": { + "remote": "Dit object wordt beheerd door een andere server. Je kunt het niet bewerken." + } + }, + "Artists": { + "button": { + "search": "Zoeken", + "upload": "Voeg muziek toe" + }, + "empty": { + "noResults": "Geen resultaten gevonden voor je zoekopdracht" + }, + "header": { + "browse": "Artiesten doorbladeren" + }, + "label": { + "excludeCompilation": "Sluit compilatie artiesten uit", + "search": "Artiestnaam", + "tags": "Tags" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" }, - "table": { - "filter": { - "header": { - "actions": "Acties", - "candidates": "Mogelijkheden", - "config": "Instellingen", - "exclude": "Uitsluiten", - "name": "Filternaam" - } - } + "label": "Volgorde" + }, + "pagination": { + "results": "Aantal resultaten per pagina" + }, + "placeholder": { + "search": "Zoeken…" + }, + "title": "Artiesten" + }, + "EditCard": { + "button": { + "approve": "Goedkeuren", + "delete": "Verwijderen", + "reject": "Afkeuren" + }, + "header": { + "modification": "Modificatie { id }" + }, + "link": { + "track": "Nummer #{ id } - { name }" + }, + "modal": { + "content": { + "warning": "De suggestie zal worden verwijderd. Dit kan niet ongedaan gemaakt worden." }, - "button": { - "filter": "Filter toevoegen", - "save": "Opslaan" - }, - "label": { - "filter": "Voeg filters toe om je radio te personaliseren", - "description": "Omschrijving", - "public": "Publiekelijk tonen", - "name": "Radionaam" - }, - "placeholder": { - "description": "Mijn geweldige omschrijving", - "name": "Mijn geweldige radio" - }, - "title": "Radio opzetten", - "option": { - "filter": "Filter kiezen" - }, - "description": { - "builder": "Met deze interface kun je je eigen radiostation opzetten. Dit station speelt nummers aan de hand van jouw wensen." + "delete": { + "header": "Deze suggestie verwijderen?" } }, - "Filter": { - "cancelButton": "Annuleren", - "excludeLabel": "Uitsluiten", - "removeButton": "Verwijderen", - "matchingTracksModalHeader": "Nummers volgens filter" + "status": { + "applied": "Goedgekeurd en toegepast", + "approved": "Goedgekeurd", + "pending": "Wachtend op beoordeling", + "rejected": "Afgekeurd" + }, + "table": { + "update": { + "header": { + "field": "Veld", + "newValue": "Nieuwe waarde", + "oldValue": "Oude waarde" + }, + "notApplicable": "N.B." + } + } + }, + "EditForm": { + "button": { + "cancel": "Annuleren", + "clear": "Wissen", + "new": "Nog een bewerking verzenden", + "reset": "Zet terug naar initiële waarde", + "showAll": "Toon alle wijzigingen", + "showUnreviewed": "Beperken tot niet-bekeken bewerkingen", + "submit": "Bewerking verzenden en toepassen", + "suggest": "Suggestie versturen" + }, + "empty": { + "suggestEdit": "Stel een wijziging voor middels het formulier hieronder." + }, + "header": { + "failure": "Fout bij indienen van bewerking", + "recentEdits": "Recente bewerkingen", + "success": "Je wijziging is succesvol opgestuurd.", + "unreviewed": "Recente bewerking wachtend op een beoordeling" + }, + "label": { + "summary": "Samenvatting (optioneel)" + }, + "message": { + "noPermission": "Je hebt geen toestemming om dit object te bewerken, maar je kunt wijzigingen voorstellen. Eenmaal ingediend zullen ze voor goedkeuring worden ingezien." + }, + "notApplicable": "N.B.", + "placeholder": { + "summary": "Een korte samenvatting van je aanpassingen." } }, "FileUpload": { - "tooltip": { - "network": "Er is een netwerkfout opgetreden tijdens het uploaden van dit bestand", - "size": "Kan dit bestand niet uploaden; zorg ervoor dat het niet te groot is", - "extension": "Ongeldig bestandstype, zorg ervoor dat u een audiobestand uploadt. Ondersteunde bestandsextensies zijn { extensions }", - "retry": "Opnieuw proberen", - "denied": "Upload geweigerd. Zorg ervoor dat het bestand niet te groot is en dat je je quotum nog niet hebt bereikt", - "timeout": "Upload verlopen; probeer het opnieuw" + "button": { + "cancel": "Annuleren", + "retry": "Gefaalde uploads opnieuw proberen" + }, + "description": { + "import": "Resultaten van je import:", + "previousImport": "Resultaten van je vorige import:" + }, + "header": { + "failure": "Fout bij het importeren", + "local": "Upload muziek van je local storage", + "server": "Importstatus", + "status": "Importstatus" + }, + "label": { + "extensions": "Ondersteunde uitbreidingen: { extensions }", + "remainingSpace": "Resterende opslagruimte", + "uploadWidget": "Klik om bestanden te selecteren, of sleep bestanden of mappen hierheen" + }, + "link": { + "picard": "We raden je aan om hiervoor Picard te gebruiken.", + "processing": "Aan het verwerken", + "uploading": "Bezig met uploaden" + }, + "message": { + "local": { + "copyright": "Je uploadt geen content waarop copyright berust. Anders overtreed je misschien de wet", + "format": "De muziekbestanden die je uploadt, hebben het OGG, Flac, MP3 of AIFF formaat", + "message": "Je staat op het punt muziek te uploaden. Controleer voordat je doorgaat:", + "tag": "De muziekbestanden die je uploadt, hebben de juiste tags." + } }, "table": { "upload": { @@ -802,114 +1681,96 @@ } } }, + "tooltip": { + "denied": "Upload geweigerd. Zorg ervoor dat het bestand niet te groot is en dat je je quotum nog niet hebt bereikt", + "extension": "Ongeldig bestandstype, zorg ervoor dat u een audiobestand uploadt. Ondersteunde bestandsextensies zijn { extensions }", + "network": "Er is een netwerkfout opgetreden tijdens het uploaden van dit bestand", + "retry": "Opnieuw proberen", + "size": "Kan dit bestand niet uploaden; zorg ervoor dat het niet te groot is", + "timeout": "Upload verlopen; probeer het opnieuw" + } + }, + "FsBrowser": { "button": { - "cancel": "Annuleren", - "retry": "Gefaalde uploads opnieuw proberen" - }, - "label": { - "uploadWidget": "Klik om bestanden te selecteren, of sleep bestanden of mappen hierheen", - "remainingSpace": "Resterende opslagruimte", - "extensions": "Ondersteunde uitbreidingen: { extensions }" - }, + "import": "Importeer" + } + }, + "FsLogs": { + "empty": { + "notStarted": "Import is nog niet gestart" + } + }, + "Home": { "header": { - "failure": "Fout bij het importeren", - "server": "Importstatus", - "status": "Importstatus", - "local": "Upload muziek van je local storage" + "newChannels": "Nieuwe kanalen", + "playlists": "Afspeellijsten", + "recentlyAdded": "Recent toegevoegd", + "recentlyFavorited": "Recent toegevoegd aan favorieten", + "recentlyListened": "Recent beluisterd" }, - "link": { - "processing": "Aan het verwerken", - "uploading": "Bezig met uploaden", - "picard": "We raden je aan om hiervoor Picard te gebruiken." + "title": "Bibliotheek" + }, + "ImportStatusModal": { + "button": { + "close": "Sluiten" }, - "description": { - "import": "Resultaten van je import:", - "previousImport": "Resultaten van je vorige import:" - }, - "message": { - "local": { - "format": "De muziekbestanden die je uploadt, hebben het OGG, Flac, MP3 of AIFF formaat", - "tag": "De muziekbestanden die je uploadt, hebben de juiste tags.", - "message": "Je staat op het punt muziek te uploaden. Controleer voordat je doorgaat:", - "copyright": "Je uploadt geen content waarop copyright berust. Anders overtreed je misschien de wet" + "error": { + "importFailure": "Er is een fout opgetreden tijdens het verwerken van de upload. Meer informatie vind je hieronder.", + "invalidMetadata": { + "label": "Ongeldige metadata", + "message": "De metadata bij het bestand zijn ongeldig, of sommige verplichte velden ontbreken." + }, + "unknownError": { + "label": "Onbekende fout", + "message": "Er is een onbekende fout opgetreden" } - } - }, - "EditForm": { - "placeholder": { - "summary": "Een korte samenvatting van je aanpassingen." - }, - "button": { - "cancel": "Annuleren", - "clear": "Wissen", - "reset": "Zet terug naar initiële waarde", - "showUnreviewed": "Beperken tot niet-bekeken bewerkingen", - "showAll": "Toon alle wijzigingen", - "submit": "Bewerking verzenden en toepassen", - "new": "Nog een bewerking verzenden", - "suggest": "Suggestie versturen" }, "header": { - "failure": "Fout bij indienen van bewerking", - "recentEdits": "Recente bewerkingen", - "unreviewed": "Recente bewerking wachtend op een beoordeling", - "success": "Je wijziging is succesvol opgestuurd." + "importDetail": "Details van de import" }, - "notApplicable": "N.B.", - "empty": { - "suggestEdit": "Stel een wijziging voor middels het formulier hieronder." - }, - "label": { - "summary": "Samenvatting (optioneel)" + "link": { + "documentation": "Lees onze documentatie voor deze fout", + "support": "Open een ondersteuningsdraad (voeg de foutopsporingsinformatie toe onderaan je bericht)" }, "message": { - "noPermission": "Je hebt geen toestemming om dit object te bewerken, maar je kunt wijzigingen voorstellen. Eenmaal ingediend zullen ze voor goedkeuring worden ingezien." + "importDetail": "Upload staat nog in de wacht en wordt spoedig verwerkt door de server.", + "importSuccess": "Geüpload nummer is verwerkt door de server." + }, + "table": { + "error": { + "debug": "Foutgegevens", + "errorDetail": "Foutdetail", + "errorType": "Foutsoort", + "help": "Hulp en ondersteuning" + } + }, + "warning": { + "importSkipped": "Upload was overgeslagen omdat een vergelijkbare upload al beschikbaar is in één van je verzamelingen." } }, - "Albums": { - "link": { - "addMusic": "Voeg muziek toe" - }, - "title": "Albums", - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "header": { - "browse": "Albums doorbladeren" - }, - "placeholder": { - "search": "Voer albumtitel in…" - }, - "empty": { - "noResults": "Geen resultaten gevonden voor je zoekopdracht" - }, - "pagination": { - "results": "Aantal resultaten per pagina" - }, - "label": { + "Podcasts": { + "button": { + "cancel": "Annuleren", + "channel": "Maak een nieuw kanaal", + "feed": "Abonneren op feed", "search": "Zoeken", - "tags": "Tags" + "subscribe": "Abonneren" }, - "button": { - "search": "Zoeken" - } - }, - "Artists": { - "button": { - "upload": "Voeg muziek toe", - "search": "Zoeken" + "empty": { + "noResults": "Geen resultaten gevonden voor je zoekopdracht" + }, + "header": { + "browse": "Podcasts doorbladeren" }, "label": { - "search": "Artiestnaam", - "excludeCompilation": "Sluit compilatie artiesten uit", + "search": "Podcasttitel", "tags": "Tags" }, - "title": "Artiesten", + "modal": { + "subscription": { + "header": "Abonnement" + } + }, "ordering": { "direction": { "ascending": "Oplopend", @@ -918,20 +1779,107 @@ }, "label": "Volgorde" }, - "header": { - "browse": "Artiesten doorbladeren" - }, - "empty": { - "noResults": "Geen resultaten gevonden voor je zoekopdracht" - }, "pagination": { "results": "Aantal resultaten per pagina" }, "placeholder": { "search": "Zoeken…" + }, + "title": "Podcasts" + }, + "Radios": { + "button": { + "add": "Maak een radiostation", + "create": "Maak je eigen radiostation" + }, + "empty": { + "noResults": "Geen resultaten gevonden voor je zoekopdracht" + }, + "header": { + "browse": "Radio's doorbladeren", + "instance": "Radio's op deze server", + "user": "Gebruikersradio's" + }, + "label": { + "search": "Zoeken" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Volgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Aantal resultaten per pagina" + }, + "placeholder": { + "search": "Voer een radionaam in…" + }, + "title": "Radio's" + }, + "TagDetail": { + "header": { + "channels": "Kanalen", + "tracks": "Nummers" + }, + "link": { + "albums": "Albums", + "artists": "Artiesten", + "moderation": "Open in moderatie-interface" } }, + "TagSelector": { + "placeholder": { + "search": "Zoeken…" + } + }, + "TrackBase": { + "button": { + "cancel": "Annuleren", + "delete": "Verwijderen…", + "download": "Downloaden", + "edit": "Bewerken", + "embed": "Embedden", + "more": "Meer…", + "play": "Afspelen" + }, + "link": { + "discogs": "Zoek bij Discogs", + "django": "Kijk in Django's admin", + "domain": "Op { domain } bekijken", + "moderation": "Open in moderatie-interface", + "wikipedia": "Zoeken op Wikipedia" + }, + "modal": { + "delete": { + "content": { + "warning": "Het nummer zal worden verwijderd, samen met alle bijbehorende bestanden en data. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Dit nummer verwijderen?" + }, + "embed": { + "header": "Embed dit nummer op je website" + } + }, + "title": "Nummer" + }, "TrackDetail": { + "description": { + "library": "Dit nummer komt voor in de volgende verzamelingen:" + }, + "header": { + "episode": "Afleveringdetails", + "library": "Gerelateerde bibliotheken", + "playlists": "Gerelateerde afspeellijsten", + "release": "Publicatiedetails", + "track": "Nummerdetails" + }, + "link": { + "musicbrainz": "Bekijken op MusicBrainz" + }, + "notApplicable": "N.B.", "table": { "release": { "album": "Album", @@ -951,272 +1899,6 @@ "duration": "Duur", "size": "Grootte" } - }, - "header": { - "episode": "Afleveringdetails", - "library": "Gerelateerde bibliotheken", - "playlists": "Gerelateerde afspeellijsten", - "release": "Publicatiedetails", - "track": "Nummerdetails" - }, - "notApplicable": "N.B.", - "description": { - "library": "Dit nummer komt voor in de volgende verzamelingen:" - }, - "link": { - "musicbrainz": "Bekijken op MusicBrainz" - } - }, - "TagDetail": { - "link": { - "albums": "Albums", - "artists": "Artiesten", - "moderation": "Open in moderatie-interface" - }, - "header": { - "channels": "Kanalen", - "tracks": "Nummers" - } - }, - "ArtistDetail": { - "header": { - "album": "Albums van deze artiest", - "track": "Nieuwe nummers van deze artiest", - "library": "Gebruikersverzamelingen" - }, - "button": { - "more": "Laad meer…", - "filter": "Filter verwijderen" - }, - "link": { - "filter": "Mijn filters controleren" - }, - "description": { - "library": "Deze artiest komt voor in de volgende verzamelingen:" - }, - "message": { - "filter": "Je verbergt momenteel content gerelateerd aan deze artiest." - } - }, - "ImportStatusModal": { - "error": { - "importFailure": "Er is een fout opgetreden tijdens het verwerken van de upload. Meer informatie vind je hieronder.", - "unknownError": { - "message": "Er is een onbekende fout opgetreden", - "label": "Onbekende fout" - }, - "invalidMetadata": { - "label": "Ongeldige metadata", - "message": "De metadata bij het bestand zijn ongeldig, of sommige verplichte velden ontbreken." - } - }, - "button": { - "close": "Sluiten" - }, - "table": { - "error": { - "debug": "Foutgegevens", - "errorDetail": "Foutdetail", - "errorType": "Foutsoort", - "help": "Hulp en ondersteuning" - } - }, - "header": { - "importDetail": "Details van de import" - }, - "link": { - "support": "Open een ondersteuningsdraad (voeg de foutopsporingsinformatie toe onderaan je bericht)", - "documentation": "Lees onze documentatie voor deze fout" - }, - "message": { - "importDetail": "Upload staat nog in de wacht en wordt spoedig verwerkt door de server.", - "importSuccess": "Geüpload nummer is verwerkt door de server." - }, - "warning": { - "importSkipped": "Upload was overgeslagen omdat een vergelijkbare upload al beschikbaar is in één van je verzamelingen." - } - }, - "EditCard": { - "button": { - "approve": "Goedkeuren", - "delete": "Verwijderen", - "reject": "Afkeuren" - }, - "status": { - "approved": "Goedgekeurd", - "applied": "Goedgekeurd en toegepast", - "pending": "Wachtend op beoordeling", - "rejected": "Afgekeurd" - }, - "modal": { - "delete": { - "header": "Deze suggestie verwijderen?" - }, - "content": { - "warning": "De suggestie zal worden verwijderd. Dit kan niet ongedaan gemaakt worden." - } - }, - "table": { - "update": { - "header": { - "field": "Veld", - "newValue": "Nieuwe waarde", - "oldValue": "Oude waarde" - }, - "notApplicable": "N.B." - } - }, - "header": { - "modification": "Modificatie { id }" - }, - "link": { - "track": "Nummer #{ id } - { name }" - } - }, - "Podcasts": { - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "header": { - "browse": "Podcasts doorbladeren" - }, - "button": { - "cancel": "Annuleren", - "channel": "Maak een nieuw kanaal", - "search": "Zoeken", - "subscribe": "Abonneren", - "feed": "Abonneren op feed" - }, - "empty": { - "noResults": "Geen resultaten gevonden voor je zoekopdracht" - }, - "label": { - "search": "Podcasttitel", - "tags": "Tags" - }, - "title": "Podcasts", - "pagination": { - "results": "Aantal resultaten per pagina" - }, - "placeholder": { - "search": "Zoeken…" - }, - "modal": { - "subscription": { - "header": "Abonnement" - } - } - }, - "Radios": { - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Volgorde" - }, - "label": "Volgorde" - }, - "header": { - "browse": "Radio's doorbladeren", - "instance": "Radio's op deze server", - "user": "Gebruikersradio's" - }, - "button": { - "add": "Maak een radiostation", - "create": "Maak je eigen radiostation" - }, - "placeholder": { - "search": "Voer een radionaam in…" - }, - "empty": { - "noResults": "Geen resultaten gevonden voor je zoekopdracht" - }, - "title": "Radio's", - "pagination": { - "results": "Aantal resultaten per pagina" - }, - "label": { - "search": "Zoeken" - } - }, - "AlbumDropdown": { - "button": { - "cancel": "Annuleren", - "delete": "Verwijderen…", - "edit": "Bewerken", - "embed": "Embedden", - "more": "Meer…" - }, - "modal": { - "delete": { - "header": "Album verwijderen?", - "content": { - "warning": "Het album zal worden verwijderd, samen met alle bijbehorende bestanden en data. Dit kan niet ongedaan gemaakt worden." - } - }, - "embed": { - "header": "Embed dit album op je website" - } - }, - "link": { - "moderation": "Open in moderatie-interface", - "discogs": "Zoek bij Discogs", - "django": "Kijk in Django's admin", - "domain": "Op { domain } bekijken", - "musicbrainz": "Bekijken op MusicBrainz" - } - }, - "TrackBase": { - "button": { - "cancel": "Annuleren", - "delete": "Verwijderen…", - "download": "Downloaden", - "edit": "Bewerken", - "embed": "Embedden", - "more": "Meer…", - "play": "Afspelen" - }, - "modal": { - "delete": { - "header": "Dit nummer verwijderen?", - "content": { - "warning": "Het nummer zal worden verwijderd, samen met alle bijbehorende bestanden en data. Dit kan niet ongedaan gemaakt worden." - } - }, - "embed": { - "header": "Embed dit nummer op je website" - } - }, - "link": { - "moderation": "Open in moderatie-interface", - "discogs": "Zoek bij Discogs", - "wikipedia": "Zoeken op Wikipedia", - "django": "Kijk in Django's admin", - "domain": "Op { domain } bekijken" - }, - "title": "Nummer" - }, - "AlbumEdit": { - "header": { - "edit": "Dit album bewerken", - "suggest": "Stel een wijziging voor op dit album" - }, - "message": { - "remote": "Dit object wordt beheerd door een andere server. Je kunt het niet bewerken." - } - }, - "ArtistEdit": { - "header": { - "edit": "Bewerk deze artiest", - "suggest": "Stel een wijziging voor op deze artiest" - }, - "message": { - "remote": "Dit object wordt beheerd door een andere server. Je kunt het niet bewerken." } }, "TrackEdit": { @@ -1228,625 +1910,344 @@ "remote": "Dit object wordt beheerd door een andere server. Je kunt het niet bewerken." } }, - "AlbumDetail": { - "header": { - "episodes": "Afleveringen", - "tracks": "Nummers", - "libraries": "Gebruikersverzamelingen" + "radios": { + "Builder": { + "button": { + "filter": "Filter toevoegen", + "save": "Opslaan" + }, + "description": { + "builder": "Met deze interface kun je je eigen radiostation opzetten. Dit station speelt nummers aan de hand van jouw wensen." + }, + "header": { + "builder": "Bouwer", + "created": "Radio gecreëerd", + "matches": "{ n } nummer komt overeen met de gecombineerde filters | { n } nummers komen overeen met de gecombineerde filters", + "updated": "Radio bijgewerkt" + }, + "label": { + "description": "Omschrijving", + "filter": "Voeg filters toe om je radio te personaliseren", + "name": "Radionaam", + "public": "Publiekelijk tonen" + }, + "option": { + "filter": "Filter kiezen" + }, + "placeholder": { + "description": "Mijn geweldige omschrijving", + "name": "Mijn geweldige radio" + }, + "table": { + "filter": { + "header": { + "actions": "Acties", + "candidates": "Mogelijkheden", + "config": "Instellingen", + "exclude": "Uitsluiten", + "name": "Filternaam" + } + } + }, + "title": "Radio opzetten" }, - "description": { - "libraries": "Dit album is beschikbaar in de volgende verzamelingen:" - }, - "meta": { - "volume": "Volume { number }" - } - }, - "FsBrowser": { - "button": { - "import": "Importeer" - } - }, - "FsLogs": { - "empty": { - "notStarted": "Import is nog niet gestart" - } - }, - "Home": { - "title": "Bibliotheek", - "header": { - "newChannels": "Nieuwe kanalen", - "playlists": "Afspeellijsten", - "recentlyAdded": "Recent toegevoegd", - "recentlyFavorited": "Recent toegevoegd aan favorieten", - "recentlyListened": "Recent beluisterd" - } - }, - "TagSelector": { - "placeholder": { - "search": "Zoeken…" + "Filter": { + "cancelButton": "Annuleren", + "excludeLabel": "Uitsluiten", + "matchingTracksModalHeader": "Nummers volgens filter", + "removeButton": "Verwijderen" } } }, - "favorites": { - "List": { - "header": { - "favorites": "{ n } favoriet | { n } favorieten" + "manage": { + "ChannelsTable": { + "label": { + "category": "Categorie", + "search": "Zoeken" + }, + "link": { + "local": "Lokaal", + "moderation": "Open in moderatie-interface" + }, + "option": { + "all": "Alles" }, "ordering": { "direction": { "ascending": "Oplopend", "descending": "Aflopend", - "label": "Volgorde" + "label": "Sorteervolgorde" }, "label": "Volgorde" }, - "link": { - "library": "Verzameling doorbladeren" - }, - "loader": { - "loading": "Je favorieten aan het laden…" - }, - "empty": { - "noFavorites": "Er zijn nog geen nummers aan je favorieten toegevoegd" - }, "pagination": { - "results": "Aantal resultaten per pagina" - }, - "title": "Je favorieten" - }, - "TrackFavoriteIcon": { - "button": { - "add": "Toevoegen aan favorieten", - "remove": "Verwijderen uit favorieten" - }, - "label": { - "inFavorites": "In je favorieten" - } - } - }, - "channels": { - "UploadModal": { - "meta": { - "files": "{ n } bestand | { n } bestanden", - "quota": "Resterende opslagruimte:" - }, - "button": { - "cancel": "Annuleren", - "close": "Sluiten", - "finishLater": "Rond later af", - "next": "Volgende stap", - "previous": "Vorige stap", - "publish": "Publiceer", - "update": "Update" - }, - "header": { - "uploadFiles": "Bestanden om te uploaden", - "processing": "Uploads aan het verwerken", - "publish": "Publiceer audio", - "uploadDetails": "Uploaddetails" - } - }, - "AlbumSelect": { - "meta": { - "tracks": "{ n } nummer | { n } nummers" - }, - "label": { - "album": "Album", - "series": "Series" - }, - "option": { - "none": "Geen" - } - }, - "LicenseSelect": { - "link": { - "license": "Over deze licentie" - }, - "label": { - "license": "Licentie" - }, - "option": { - "none": "Geen" - } - }, - "UploadForm": { - "help": { - "license": "Voeg een licentie toe aan je upload zodat je publiek weet wat is toegestaan." - }, - "label": { - "openBrowser": "Bladeren…", - "channel": "Kanaal" - }, - "message": { - "dragAndDrop": "Sleep je bestanden hiernaartoe of open je browser om ze te uploaden", - "pending": "Je hebt wat conceptuploads die in afwachting zijn van publicatie." - }, - "button": { - "edit": "Bewerken", - "ignore": "Negeren", - "remove": "Verwijderen", - "resume": "Hervatten", - "retry": "Opnieuw proberen" - }, - "header": { - "error": "Fout bij het publiceren" - }, - "status": { - "errored": "Mislukt", - "pending": "In behandeling", - "uploading": "Bezig met uploaden" - }, - "description": { - "extensions": "Ondersteunde uitbreidingen: { extensions }" - }, - "warning": { - "quota": "Je hebt geen ruimte meer over om je bestanden te uploaden. Neem contact op met de moderatoren." - } - }, - "AlbumModal": { - "button": { - "cancel": "Annuleren", - "create": "Aanmaken" - }, - "header": { - "newAlbum": "Nieuw album", - "newSeries": "Nieuwe series" - } - }, - "UploadMetadataForm": { - "label": { - "description": "Omschrijving", - "position": "Positie", - "tags": "Tags", - "title": "Titel", - "image": "Afbeelding van nummer" - } - }, - "AlbumForm": { - "header": { - "error": "Fout bij aanmaken" - }, - "label": { - "albumTitle": "Titel" - } - }, - "SubscribeButton": { - "title": { - "subscribe": "Abonneren", - "unsubscribe": "Ontvolgen" - }, - "help": { - "auth": "Je moet ingelogd zijn om je te kunnen abonneren op dit kanaal" - } - } - }, - "AboutPod": { - "stat": { - "hoursOfMusic": "uur muziek | uur muziek", - "activeUsers": "actieve gebruiker | actieve gebruikers", - "albumsCount": "album | albums", - "artistsCount": "artiest | artiesten", - "listeningsCount": "Luisterbeurt | Luisterbeurten", - "tracksCount": "nummer | nummers" - }, - "title": "Over", - "link": { - "about": "Over deze pod", - "features": "Kenmerken", - "introduction": "Introductie", - "rules": "Regels", - "statistics": "Statistieken", - "terms": "Voorwaarden en privacy beleid" - }, - "header": { - "about": "Over deze pod", - "contact": "Contact", - "features": "Kenmerken", - "rules": "Regels", - "statistics": "Statistieken", - "terms": "Voorwaarden en privacy beleid" - }, - "feature": { - "allowList": "Toelatingslijst", - "anonymousAccess": "Anonieme toegang", - "status": { - "closed": "Gesloten", - "disabled": "Uitgeschakeld", - "enabled": "Ingeschakeld", - "open": "Open" - }, - "federation": "Federatie", - "version": "Funkwhale-versie", - "registrations": "Registraties", - "quota": "Uploadquotum" - }, - "notApplicable": "N.B.", - "placeholder": { - "noDescription": "Geen beschrijving beschikbaar.", - "noRules": "Geen regels beschikbaar.", - "noTerms": "Geen termen beschikbaar." - }, - "message": { - "contact": "Stuur ons een e-mail: {'{{'} contactEmail {'}}'}" - } - }, - "common": { - "ActionTable": { - "button": { - "selected": "{ n } van { total } geselecteerd | { n } van { total } geselecteerd", - "allSelected": "Één element geselecteerd | Alle { n } elementen geselecteerd", - "go": "Ga", - "launch": "Opstarten", - "refresh": "Vernieuw inhoud tabel", - "select": "Selecteer", - "selectAll": "Selecteer alle voorwerpen", - "selectElement": "Selecteer { n } element | Selecteer alle { n } elementen", - "selectCurrentPage": "Alleen deze pagina kiezen" - }, - "message": { - "success": "Actie { action } is begonnen voor { n } element | Actie { action } is begonnen voor { n } elementen", - "needsRefresh": "Inhoud is geüpdatet. Klik vernieuwen om actuele inhoud te zien" - }, - "label": { - "actions": "Acties", - "performAction": "Voer acties uit" - }, - "modal": { - "performAction": { - "header": "Wil je { action } toepassen op { n } element? | Wil je { action } toepassen op { n } elementen?", - "content": { - "warning": "Dit kan gevolgen hebben voor veel elementen of onomkeerbare consequenties hebben. Controleer of je dit écht wilt doen." - } - } - }, - "header": { - "error": "Fout tijdens toepassen van actie" - } - }, - "Duration": { - "meta": { - "hours": "{ hours } uur { minutes } min", - "minutes": "{ minutes } min" - } - }, - "UserMenu": { - "link": { - "about": "Over", - "chat": "Chatruimte", - "docs": "Documentatie", - "forum": "Forum", - "support": "Help", - "git": "Issuetracker", - "login": "Inloggen", - "logout": "Uitloggen", - "notifications": "Meldingen", - "profile": "Profiel", - "settings": "Instellingen", - "signup": "Aanmelden" - }, - "label": { - "shortcuts": "Sneltoetsen", - "language": "Taal", - "theme": "Thema" - } - }, - "UserModal": { - "link": { - "about": "Over", - "chat": "Chatruimte", - "forum": "Forum", - "support": "Help", - "git": "Issuetracker", - "login": "Inloggen", - "logout": "Uitloggen", - "notifications": "Meldingen", - "profile": "Profiel", - "settings": "Instellingen", - "signup": "Aanmelden" - }, - "label": { - "shortcuts": "Sneltoetsen", - "language": "Taal", - "theme": "Thema" - }, - "header": { - "options": "Opties" - }, - "button": { - "switchInstance": "Andere server gebruiken" - } - }, - "DangerousButton": { - "button": { - "cancel": "Annuleren", - "confirm": "Bevestigen" - }, - "header": { - "confirm": "Wil je de actie bevestigen?" - } - }, - "RenderedDescription": { - "button": { - "cancel": "Annuleren", - "edit": "Bewerken", - "less": "Toon minder", - "more": "Toon meer", - "update": "Omschrijving bijwerken" - }, - "header": { - "failure": "Fout tijdens bijwerken van de beschrijving" - }, - "empty": { - "noDescription": "Geen beschrijving beschikbaar" - } - }, - "InlineSearchBar": { - "button": { - "clear": "Wissen" - }, - "label": { - "search": "Zoeken" + "results": "Resultaten - { start }-{ end } van de { total }" }, "placeholder": { - "search": "Zoeken…" - } - }, - "CollapseLink": { - "button": { - "collapse": "Toeklappen", - "expand": "Uitklappen" - } - }, - "CopyInput": { - "button": { - "copy": "Kopiëren" - }, - "message": { - "success": "Tekst gekopieerd naar het klembord!" - } - }, - "LoginModal": { - "link": { - "login": "Inloggen", - "signup": "Aanmelden" - }, - "header": { - "unauthenticated": "Ongeauthenticeerd" - }, - "description": { - "noAccess": "Je hebt geen toegang!" - } - }, - "ContentForm": { - "help": { - "markdown": "Markdown syntax wordt ondersteund." - }, - "empty": { - "noContent": "Niets om te bekijken." - }, - "button": { - "preview": "Voorbeeld", - "write": "Schrijven" - }, - "placeholder": { - "input": "Schrijf hier een paar woorden…" - } - }, - "EmptyState": { - "header": { - "noResults": "Geen resultaten gevonden." - }, - "button": { - "refresh": "Verversen" - } - }, - "AttachmentInput": { - "help": { - "upload": "PNG or JPG. Dimensies zouden tussen 1400x1400px en 3000x3000px moeten liggen. Maximaal toegestane bestandsgrootte is 5MB." - }, - "button": { - "remove": "Verwijderen" - }, - "label": { - "upload": "Nieuwe afbeelding uploaden…" - }, - "loader": { - "uploading": "Bezig met bestand uploaden…" - }, - "header": { - "failure": "Je attachment kan niet opgeslagen worden" - } - }, - "ExpandableDiv": { - "button": { - "less": "Toon minder", - "more": "Toon meer" - } - } - }, - "playlists": { - "Card": { - "meta": { - "tracks": "{ n } nummer | { n } nummers" - } - }, - "PlaylistModal": { - "warning": { - "duplicate": "{ 0 } staat al in { 1 }." - }, - "button": { - "addDuplicate": "Toch toevoegen", - "addToPlaylist": "Toevoegen aan deze afspeellijst", - "addTrack": "Nummer toevoegen", - "cancel": "Annuleren", - "edit": "Bewerken" - }, - "header": { - "addToPlaylist": "Toevoegen aan afspeellijst", - "available": "Beschikbare afspeellijsten", - "manage": "Afspeellijsten beheren", - "noResults": "Geen resultaten bij je filter", - "addFailure": "Het nummer kan niet aan een afspeellijst worden toegevoegd" + "search": "Zoek op domein, naam, account…" }, "table": { - "edit": { + "channel": { "header": { - "edit": "Bewerken", - "lastModification": "Laatste wijziging", + "account": "Account", + "albums": "Albums", + "creationDate": "Toegevoegd", + "domain": "Domein", "name": "Naam", "tracks": "Nummers" } } - }, - "placeholder": { - "filterPlaylist": "Voer een afspeellijstnaam in" - }, - "label": { - "filter": "Filter" - }, - "empty": { - "noPlaylists": "Er zijn nog geen afspeellijsten gemaakt" } }, - "Editor": { - "button": { - "addDuplicate": "Toch toevoegen", - "clear": "Afspeellijst wissen", - "copy": "Kopieer nummers van de huidige wachtrij naar deze afspeellijst", - "insertFromQueue": "Toevoegen vanuit wachtrij ({ count } nummer) | Toevoegen vanuit wachtrij ({ count } nummers)" - }, - "error": { - "sync": "Er is een fout opgetreden tijdens het opslaan van je wijzigingen" - }, - "message": { - "sync": "Wijzigingen opgeslagen op server" - }, - "modal": { - "clearPlaylist": { - "header": "Weet je zeker dat je de afspeellijst \"{ playlist }\" wilt wissen?", - "content": { - "warning": "Alle nummers worden verwijderd uit de afspeellijst; dit kan niet ongedaan worden gemaakt." + "library": { + "AlbumsTable": { + "action": { + "delete": { + "label": "Verwijderen", + "warning": "De geselecteerde albums worden verwijderd, samen met bijbehorende nummers, uploads, favorieten en luisterhistorie. Dit kan niet ongedaan gemaakt worden." + } + }, + "label": { + "search": "Zoeken" + }, + "link": { + "local": "Lokaal", + "moderation": "Open in moderatie-interface" + }, + "notApplicable": "N.B.", + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" + }, + "placeholder": { + "search": "Zoek op domein, titel, artiest, MusicBrainz ID…" + }, + "table": { + "album": { + "header": { + "artist": "Artiest", + "creationDate": "Toegevoegd", + "domain": "Domein", + "name": "Titel", + "releaseDate": "Publicatiedatum", + "tracks": "Nummers" + } } } }, - "help": { - "reorder": "Versleep de rijen om nummers op de afspeellijst te herordenen" - }, - "header": { - "editor": "Afspeellijst wijzigen" - }, - "warning": { - "duplicate": "Een aantal nummers in je wachtrij staat al in deze afspeellijst:" - }, - "loading": { - "sync": "Bezig met synchroniseren van wijzigingen naar server…" - } - }, - "TrackPlaylistIcon": { - "button": { - "add": "Toevoegen aan afspeellijst…" - } - }, - "Form": { - "header": { - "createPlaylist": "Creëer een nieuwe afspeellijst", - "createSuccess": "Afspeellijst gecreëerd", - "updateSuccess": "Afspeellijst gewijzigd", - "createFailure": "De afspeellijst kon niet worden gecreëerd" - }, - "button": { - "create": "Afspeellijst creëren", - "update": "Afspeellijst bijwerken" - }, - "placeholder": { - "name": "Mijn geweldige afspeellijst" - }, - "label": { - "name": "Afspeellijstnaam", - "visibility": "Zichtbaarheid van afspeellijst" - } - }, - "Widget": { - "button": { - "create": "Maak afspeellijst", - "more": "Toon meer" - }, - "placeholder": { - "noPlaylists": "Er zijn nog geen afspeellijsten gemaakt" - } - } - }, - "notifications": { - "NotificationRow": { - "message": { - "libraryAcceptFollow": "{ username } heeft je volgverzoek voor de verzameling \"{ library }\" geaccepteerd", - "libraryFollow": "{ username } volgt nu je verzameling \"{ library }\"", - "libraryPendingFollow": "{ username } wil je verzameling \"{ library }\" volgen" - }, - "button": { - "approve": "Goedkeuren", - "markRead": "Markeer als gelezen", - "markUnread": "Markeer als ongelezen", - "reject": "Afkeuren" - } - } - }, - "Sidebar": { - "link": { - "about": "Over deze pod", - "albums": "Albums", - "artists": "Artiesten", - "browse": "Bladeren", - "channels": "Kanalen", - "createAccount": "Creëer een account", - "favorites": "Favorieten", - "home": "Startpagina", - "library": "Bibliotheek", - "login": "Inloggen", - "moderation": "Moderatie", - "playlists": "Afspeellijsten", - "podcasts": "Podcasts", - "radios": "Radio's", - "search": "Zoeken", - "settings": "Instellingen", - "users": "Gebruikers" - }, - "label": { - "add": "Content toevoegen", - "administration": "Administratie", - "language": "Taal", - "main": "Hoofdmenu", - "follows": "In behandeling zijnde volgverzoeken", - "edits": "Openstaande bewerkingen", - "play": "Speel dit nummer", - "theme": "Thema" - }, - "header": { - "administration": "Administratie", - "explore": "Verkennen", - "main": "Hoofdnavigatie", - "more": "Meer", - "library": "Mijn bibliotheek" - } - }, - "manage": { - "library": { - "UploadsTable": { + "ArtistsTable": { + "action": { + "delete": { + "label": "Verwijderen", + "warning": "De geselecteerde artiest wordt verwijderd, samen met bijbehorende uploads, nummers, favorieten en luistergeschiedenis. Dit kan niet ongedaan gemaakt worden." + } + }, + "label": { + "category": "Categorie", + "search": "Zoeken" + }, + "link": { + "local": "Lokaal" + }, + "option": { + "all": "Alles" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" + }, + "placeholder": { + "search": "Zoek op domein, naam, MusicBrainz ID…" + }, "table": { - "upload": { + "artist": { + "header": { + "albums": "Albums", + "creationDate": "Toegevoegd", + "domain": "Domein", + "name": "Naam", + "tracks": "Nummers" + } + } + } + }, + "EditsCardList": { + "label": { + "status": "Status" + }, + "option": { + "all": "Alles", + "approved": "Goedgekeurd", + "pending": "Wachtend op beoordeling", + "rejected": "Afgekeurd" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Volgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" + }, + "placeholder": { + "search": "Zoek op account, samenvatting, domein…" + } + }, + "LibrariesTable": { + "action": { + "delete": { + "label": "Verwijderen", + "warning": "De geselecteerde bibliotheek zal worden verwijderd, samen met de bijbehorende uploads en volgers. Dit kan niet ongedaan gemaakt worden." + } + }, + "label": { + "search": "Zoeken", + "visibility": "Zichtbaarheid" + }, + "link": { + "local": "Lokaal" + }, + "option": { + "all": "Alles" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" + }, + "placeholder": { + "search": "Zoek op domeinnaam, gebruikersnaam, beschrijving…" + }, + "table": { + "library": { "header": { - "accessedDate": "Benaderd op", "account": "Account", "creationDate": "Toegevoegd", "domain": "Domein", - "importStatus": "Importstatus", - "library": "Bibliotheek", + "followers": "Volgers", "name": "Naam", - "size": "Grootte", + "uploads": "Uploads", "visibility": "Zichtbaarheid" } } + } + }, + "TagsTable": { + "action": { + "delete": { + "label": "Verwijderen", + "warning": "De geselecteerde tag zal worden verwijderd en worden losgekoppeld van enige bestaande content. Dit kan niet ongedaan gemaakt worden." + } }, + "label": { + "search": "Zoeken" + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" + }, + "placeholder": { + "search": "Zoek op naam" + }, + "table": { + "tag": { + "header": { + "albums": "Albums", + "artists": "Artiesten", + "creationDate": "Toegevoegd", + "name": "Naam", + "tracks": "Nummers" + } + } + } + }, + "TracksTable": { + "action": { + "delete": { + "label": "Verwijderen", + "warning": "De geselecteerde nummers worden verwijderd, samen met bijbehorende uploads, favorieten en luistergeschiedenis. Dit kan niet ongedaan gemaakt worden." + } + }, + "label": { + "search": "Zoeken" + }, + "link": { + "local": "Lokaal" + }, + "notApplicable": "N.B.", + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" + }, + "placeholder": { + "search": "Zoek op domein, titel, artiest, album, MusicBrainz ID…" + }, + "table": { + "track": { + "header": { + "album": "Album", + "artist": "Artiest", + "creationDate": "Toegevoegd", + "domain": "Domein", + "license": "Licentie", + "title": "Titel" + } + } + } + }, + "UploadsTable": { + "action": { + "delete": { + "label": "Verwijderen", + "warning": "De geselecteerde upload zal worden verwijderd. Dit kan niet ongedaan gemaakt worden." + } + }, + "label": { + "search": "Zoeken", + "status": "Status", + "visibility": "Zichtbaarheid" + }, + "link": { + "local": "Lokaal" + }, + "notApplicable": "N.B.", "option": { "all": "Alles", "failed": "Mislukt", @@ -1862,396 +2263,68 @@ }, "label": "Volgorde" }, - "action": { - "delete": { - "label": "Verwijderen", - "warning": "De geselecteerde upload zal worden verwijderd. Dit kan niet ongedaan gemaakt worden." - } - }, - "link": { - "local": "Lokaal" - }, - "notApplicable": "N.B.", - "label": { - "search": "Zoeken", - "status": "Status", - "visibility": "Zichtbaarheid" + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" }, "placeholder": { "search": "Zoek op domeinnaam, actor, naam, referentie, bron…" }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - } - }, - "LibrariesTable": { "table": { - "library": { + "upload": { "header": { + "accessedDate": "Benaderd op", "account": "Account", "creationDate": "Toegevoegd", "domain": "Domein", - "followers": "Volgers", + "importStatus": "Importstatus", + "library": "Bibliotheek", "name": "Naam", - "uploads": "Uploads", + "size": "Grootte", "visibility": "Zichtbaarheid" } } - }, - "option": { - "all": "Alles" - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "action": { - "delete": { - "label": "Verwijderen", - "warning": "De geselecteerde bibliotheek zal worden verwijderd, samen met de bijbehorende uploads en volgers. Dit kan niet ongedaan gemaakt worden." - } - }, - "link": { - "local": "Lokaal" - }, - "label": { - "search": "Zoeken", - "visibility": "Zichtbaarheid" - }, - "placeholder": { - "search": "Zoek op domeinnaam, gebruikersnaam, beschrijving…" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - } - }, - "TracksTable": { - "table": { - "track": { - "header": { - "album": "Album", - "artist": "Artiest", - "creationDate": "Toegevoegd", - "domain": "Domein", - "license": "Licentie", - "title": "Titel" - } - } - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "action": { - "delete": { - "label": "Verwijderen", - "warning": "De geselecteerde nummers worden verwijderd, samen met bijbehorende uploads, favorieten en luistergeschiedenis. Dit kan niet ongedaan gemaakt worden." - } - }, - "link": { - "local": "Lokaal" - }, - "notApplicable": "N.B.", - "label": { - "search": "Zoeken" - }, - "placeholder": { - "search": "Zoek op domein, titel, artiest, album, MusicBrainz ID…" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - } - }, - "ArtistsTable": { - "table": { - "artist": { - "header": { - "albums": "Albums", - "creationDate": "Toegevoegd", - "domain": "Domein", - "name": "Naam", - "tracks": "Nummers" - } - } - }, - "option": { - "all": "Alles" - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "label": { - "category": "Categorie", - "search": "Zoeken" - }, - "action": { - "delete": { - "label": "Verwijderen", - "warning": "De geselecteerde artiest wordt verwijderd, samen met bijbehorende uploads, nummers, favorieten en luistergeschiedenis. Dit kan niet ongedaan gemaakt worden." - } - }, - "link": { - "local": "Lokaal" - }, - "placeholder": { - "search": "Zoek op domein, naam, MusicBrainz ID…" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - } - }, - "TagsTable": { - "table": { - "tag": { - "header": { - "albums": "Albums", - "artists": "Artiesten", - "creationDate": "Toegevoegd", - "name": "Naam", - "tracks": "Nummers" - } - } - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "action": { - "delete": { - "label": "Verwijderen", - "warning": "De geselecteerde tag zal worden verwijderd en worden losgekoppeld van enige bestaande content. Dit kan niet ongedaan gemaakt worden." - } - }, - "label": { - "search": "Zoeken" - }, - "placeholder": { - "search": "Zoek op naam" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - } - }, - "EditsCardList": { - "option": { - "all": "Alles", - "approved": "Goedgekeurd", - "pending": "Wachtend op beoordeling", - "rejected": "Afgekeurd" - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Volgorde" - }, - "label": "Volgorde" - }, - "placeholder": { - "search": "Zoek op account, samenvatting, domein…" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - }, - "label": { - "status": "Status" - } - }, - "AlbumsTable": { - "table": { - "album": { - "header": { - "artist": "Artiest", - "creationDate": "Toegevoegd", - "domain": "Domein", - "name": "Titel", - "releaseDate": "Publicatiedatum", - "tracks": "Nummers" - } - } - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "action": { - "delete": { - "label": "Verwijderen", - "warning": "De geselecteerde albums worden verwijderd, samen met bijbehorende nummers, uploads, favorieten en luisterhistorie. Dit kan niet ongedaan gemaakt worden." - } - }, - "link": { - "local": "Lokaal", - "moderation": "Open in moderatie-interface" - }, - "notApplicable": "N.B.", - "label": { - "search": "Zoeken" - }, - "placeholder": { - "search": "Zoek op domein, titel, artiest, MusicBrainz ID…" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" } } }, "moderation": { - "ReportCard": { - "table": { - "object": { - "account": "Account", - "domain": "Domein", - "local": "Lokaal", - "owner": "Eigenaar", - "type": "Type" - }, - "status": { - "assignedTo": "Toegewezen aan", - "internalNotes": "Interne notities", - "resolutionDate": "Datum opgelost", - "resolved": "Opgelost", - "status": "Status", - "unresolved": "Niet opgelost" - }, - "report": { - "category": "Categorie", - "creationDate": "Toegevoegd", - "submittedBy": "Ingediend door" + "AccountsTable": { + "action": { + "purge": { + "label": "Leegmaken" } }, - "header": { - "actions": "Acties", - "notes": "Interne notities", - "message": "Bericht", - "reportedObject": "Gemeldde object" - }, - "button": { - "confirmDelete": "Verwijderen", - "delete": "Verwijder gemeld object", - "resolve": "Oplossen", - "unresolve": "Niet opgelost" - }, - "modal": { - "delete": { - "header": "Gemeld object verwijderen?", - "content": { - "warning": "Dit zal het object verwijderen dat bij dit rapport hoort, en het rapport als opgelost markeren. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "notApplicable": "N.B.", - "link": { - "moderation": "Open in moderatie-interface", - "report": "Melding { id }", - "publicPage": "Publieke pagina bekijken" - }, - "warning": { - "objectDeleted": "Het object behorend bij dit verslag is verwijderd." - } - }, - "UserRequestCard": { - "header": { - "actions": "Acties", - "notes": "Interne notities", - "signup": "Bericht" - }, - "button": { - "approve": "Goedkeuren", - "reject": "Weigeren" - }, - "table": { - "status": { - "approved": "Goedgekeurd", - "assignedTo": "Toegewezen aan", - "internalNotes": "Interne notities", - "pending": "In behandeling", - "refused": "Geweigerd", - "status": "Status" - }, - "request": { - "creationDate": "Toegevoegd", - "submittedBy": "Ingediend door" - } - }, - "notApplicable": "N.B.", - "link": { - "request": "Verzoek { id }" - }, - "message": { - "signup": "Deze gebruiker wil zich aanmelden bij je pod." - } - }, - "InstancePolicyForm": { - "header": { - "addRule": "Nieuwe moderatieregel toevoegen", - "editRule": "Moderatie-regel aanpassen", - "failure": "Fout bij aanmaken van regel" - }, "label": { - "blockAll": "Alles blokkeren", - "policyDisabled": "Uitgeschakeld", - "policyEnabled": "Ingeschakeld", - "silenceActivity": "Demp activiteit", - "silenceNotifications": "Demp notificaties", - "customizeRule": "Of pas de regel aan", - "policyReason": "Reden", - "rejectMedia": "Media afkeuren" + "search": "Zoeken" }, - "tooltip": { - "blockAll": "Alles van dit account of deze domeinnaam blokkeren. Dit voorkomt elke interactie en verwijdert alle gerelateerde gegevens (uploads, bibliotheken, gevolgde accounts, enz.)", - "rejectMedia": "Geen mediabestanden (audio, albumhoes, profielfoto…) downloaden van dit account of domein. Hiermee wordt ook bestaande content verwijderd.", - "summary": "Leg uit waarom je dit beleid toepast. Zo kun je later nog achterhalen waarom je actie hebt ondernomen op dit account of dit domein. Afhankelijk van de instellingen op je server, wordt dit ook aan gebruikers getoond zodat ze kunnen begrijpen welke regels er gelden.", - "silenceActivity": "Verberg account- of domeininhoud, behalve voor volgers.", - "silenceNotifications": "Voorkom dat account of domein notificaties veroorzaakt, behalve van volgers.", - "isActive": "Gebruik deze instelling om tijdelijk het beleid in en uit te schakelen zonder het helemaal te verwijderen." + "link": { + "local": "Lokale account" }, - "button": { - "cancel": "Annuleren", - "create": "Aanmaken", - "delete": "Verwijderen", - "confirm": "Moderatie-regel verwijderen", - "update": "Update" + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" }, - "modal": { - "delete": { - "header": "Deze moderatie-regel verwijderen?", - "content": { - "warning": "Dit kan niet ongedaan gemaakt worden." - } - } - } - }, - "NoteForm": { - "button": { - "add": "Notitie toevoegen" + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" }, "placeholder": { - "summary": "Beschrijf welke acties zijn ondernomen, of eventuele andere gerelateerde updates …" + "search": "Zoek op domein, gebruikersnaam, biografie…" }, - "header": { - "failure": "Fout bij indienen van notitie" + "table": { + "account": { + "header": { + "domain": "Domein", + "firstSeen": "Eerst gezien", + "lastSeen": "Laatst gezien", + "moderationRule": "Gemodereerd", + "name": "Naam", + "uploads": "Uploads" + }, + "moderationRule": "Ja" + } } }, "DomainsTable": { @@ -2266,6 +2339,16 @@ "label": "Verwijder van toelatingslijst" } }, + "empty": { + "noPods": "Geen andere pods gevonden" + }, + "label": { + "inList": "Is aanwezig op toestemmingslijst", + "search": "Zoeken" + }, + "link": { + "list": "Dit domein is aanwezig in je toestemmingslijst" + }, "option": { "all": "Alles", "no": "Nee", @@ -2279,76 +2362,32 @@ }, "label": "Volgorde" }, - "table": { - "domain": { - "header": { - "firstSeen": "Eerst gezien", - "name": "Naam", - "receivedMessages": "Ontvangen berichten", - "moderationRule": "Gemodereerd", - "users": "Gebruikers" - }, - "moderationRule": "Ja" - } - }, - "label": { - "inList": "Is aanwezig op toestemmingslijst", - "search": "Zoeken" - }, - "empty": { - "noPods": "Geen andere pods gevonden" + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" }, "placeholder": { "search": "Zoek op naam…" }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - }, - "link": { - "list": "Dit domein is aanwezig in je toestemmingslijst" - } - }, - "AccountsTable": { - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, "table": { - "account": { + "domain": { "header": { - "domain": "Domein", "firstSeen": "Eerst gezien", - "lastSeen": "Laatst gezien", - "name": "Naam", "moderationRule": "Gemodereerd", - "uploads": "Uploads" + "name": "Naam", + "receivedMessages": "Ontvangen berichten", + "users": "Gebruikers" }, "moderationRule": "Ja" } - }, - "link": { - "local": "Lokale account" - }, - "action": { - "purge": { - "label": "Leegmaken" - } - }, - "label": { - "search": "Zoeken" - }, - "placeholder": { - "search": "Zoek op domein, gebruikersnaam, biografie…" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" } }, "InstancePolicyCard": { + "button": { + "edit": "Bewerken" + }, + "header": { + "rule": "Regel" + }, "label": { "blockAll": "Alles blokkeren", "muteActivity": "Demp activiteit", @@ -2356,15 +2395,49 @@ "reason": "Reden", "rejectMedia": "Media afkeuren" }, - "button": { - "edit": "Bewerken" - }, "status": { "enabled": "Ingeschakeld", "paused": "Gepauzeerd" + } + }, + "InstancePolicyForm": { + "button": { + "cancel": "Annuleren", + "confirm": "Moderatie-regel verwijderen", + "create": "Aanmaken", + "delete": "Verwijderen", + "update": "Update" }, "header": { - "rule": "Regel" + "addRule": "Nieuwe moderatieregel toevoegen", + "editRule": "Moderatie-regel aanpassen", + "failure": "Fout bij aanmaken van regel" + }, + "label": { + "blockAll": "Alles blokkeren", + "customizeRule": "Of pas de regel aan", + "policyDisabled": "Uitgeschakeld", + "policyEnabled": "Ingeschakeld", + "policyReason": "Reden", + "rejectMedia": "Media afkeuren", + "silenceActivity": "Demp activiteit", + "silenceNotifications": "Demp notificaties" + }, + "modal": { + "delete": { + "content": { + "warning": "Dit kan niet ongedaan gemaakt worden." + }, + "header": "Deze moderatie-regel verwijderen?" + } + }, + "tooltip": { + "blockAll": "Alles van dit account of deze domeinnaam blokkeren. Dit voorkomt elke interactie en verwijdert alle gerelateerde gegevens (uploads, bibliotheken, gevolgde accounts, enz.)", + "isActive": "Gebruik deze instelling om tijdelijk het beleid in en uit te schakelen zonder het helemaal te verwijderen.", + "rejectMedia": "Geen mediabestanden (audio, albumhoes, profielfoto…) downloaden van dit account of domein. Hiermee wordt ook bestaande content verwijderd.", + "silenceActivity": "Verberg account- of domeininhoud, behalve voor volgers.", + "silenceNotifications": "Voorkom dat account of domein notificaties veroorzaakt, behalve van volgers.", + "summary": "Leg uit waarom je dit beleid toepast. Zo kun je later nog achterhalen waarom je actie hebt ondernomen op dit account of dit domein. Afhankelijk van de instellingen op je server, wordt dit ook aan gebruikers getoond zodat ze kunnen begrijpen welke regels er gelden." } }, "InstancePolicyModal": { @@ -2374,117 +2447,172 @@ }, "modal": { "manage": { - "header": "Beheer moderatieregels voor { obj }", "content": { "warning": "Deze entiteit is onderhevig aan specifieke moderatieregels" - } + }, + "header": "Beheer moderatieregels voor { obj }" } } }, + "NoteForm": { + "button": { + "add": "Notitie toevoegen" + }, + "header": { + "failure": "Fout bij indienen van notitie" + }, + "placeholder": { + "summary": "Beschrijf welke acties zijn ondernomen, of eventuele andere gerelateerde updates …" + } + }, "NotesThread": { "button": { "delete": "Verwijderen" }, "modal": { "delete": { - "header": "Deze notitie verwijderen?", "content": { "warning": "De notitie zal worden verwijderd. Dit kan niet ongedaan gemaakt worden." - } - } - } - } - }, - "ChannelsTable": { - "table": { - "channel": { - "header": { - "account": "Account", - "albums": "Albums", - "creationDate": "Toegevoegd", - "domain": "Domein", - "name": "Naam", - "tracks": "Nummers" + }, + "header": "Deze notitie verwijderen?" } } }, - "option": { - "all": "Alles" - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" + "ReportCard": { + "button": { + "confirmDelete": "Verwijderen", + "delete": "Verwijder gemeld object", + "resolve": "Oplossen", + "unresolve": "Niet opgelost" }, - "label": "Volgorde" + "header": { + "actions": "Acties", + "message": "Bericht", + "notes": "Interne notities", + "reportedObject": "Gemeldde object" + }, + "link": { + "moderation": "Open in moderatie-interface", + "publicPage": "Publieke pagina bekijken", + "report": "Melding { id }" + }, + "modal": { + "delete": { + "content": { + "warning": "Dit zal het object verwijderen dat bij dit rapport hoort, en het rapport als opgelost markeren. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Gemeld object verwijderen?" + } + }, + "notApplicable": "N.B.", + "table": { + "object": { + "account": "Account", + "domain": "Domein", + "local": "Lokaal", + "owner": "Eigenaar", + "type": "Type" + }, + "report": { + "category": "Categorie", + "creationDate": "Toegevoegd", + "submittedBy": "Ingediend door" + }, + "status": { + "assignedTo": "Toegewezen aan", + "internalNotes": "Interne notities", + "resolutionDate": "Datum opgelost", + "resolved": "Opgelost", + "status": "Status", + "unresolved": "Niet opgelost" + } + }, + "warning": { + "objectDeleted": "Het object behorend bij dit verslag is verwijderd." + } }, - "label": { - "category": "Categorie", - "search": "Zoeken" - }, - "link": { - "local": "Lokaal", - "moderation": "Open in moderatie-interface" - }, - "placeholder": { - "search": "Zoek op domein, naam, account…" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" + "UserRequestCard": { + "button": { + "approve": "Goedkeuren", + "reject": "Weigeren" + }, + "header": { + "actions": "Acties", + "notes": "Interne notities", + "signup": "Bericht" + }, + "link": { + "request": "Verzoek { id }" + }, + "message": { + "signup": "Deze gebruiker wil zich aanmelden bij je pod." + }, + "notApplicable": "N.B.", + "table": { + "request": { + "creationDate": "Toegevoegd", + "submittedBy": "Ingediend door" + }, + "status": { + "approved": "Goedgekeurd", + "assignedTo": "Toegewezen aan", + "internalNotes": "Interne notities", + "pending": "In behandeling", + "refused": "Geweigerd", + "status": "Status" + } + } } }, "users": { - "UsersTable": { + "InvitationForm": { + "button": { + "clear": "Wissen", + "new": "Nieuwe uitnodiging aanvragen" + }, + "header": { + "failure": "Fout tijdens creëren van uitnodiging" + }, + "label": { + "invite": "Uitnodigingscode" + }, + "placeholder": { + "invitation": "Laat leeg om een willekeurig code te krijgen" + }, "table": { - "user": { + "invitation": { "header": { - "accountStatus": "Accountstatus", - "email": "E-mailadres", - "lastActivity": "Laatste activiteit", - "permissions": "Machtigingen", - "signup": "Registreren", - "status": "Status", - "username": "Gebruikersnaam" - }, - "accountStatus": { - "active": "Actief", - "inactive": "Inactief" - }, - "status": { - "admin": "Beheerder", - "regular": "Standaardgebruiker", - "staff": "Staflid" + "code": "Code", + "link": "Link om te delen" } } - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Sorteervolgorde" - }, - "label": "Volgorde" - }, - "permission": { - "library": "Bibliotheek", - "moderation": "Moderatie", - "settings": "Instellingen" - }, - "notApplicable": "N.B.", - "placeholder": { - "search": "Zoek op gebruikersnaam, e-mailadres, naam…" - }, - "pagination": { - "results": "Eén resultaat wordt getoond | Resultaten { start } t/m { end } van { total }" } }, "InvitationsTable": { + "action": { + "delete": "Verwijderen" + }, + "label": { + "expired": "Vervallen", + "search": "Zoeken", + "status": "Status", + "unused": "Niet gebruikt", + "used": "Gebruikt" + }, "option": { "all": "Alles", "expired": "Vervallen/gebruikt", "open": "Open" }, + "ordering": { + "label": "Volgorde" + }, + "pagination": { + "results": "Eén resultaat wordt getoond | Resultaten { start } t/m { end } van { total }" + }, + "placeholder": { + "search": "Zoek op gebruikersnaam, e-mailadres, code…" + }, "table": { "invitation": { "header": { @@ -2495,565 +2623,10 @@ "status": "Status" } } - }, - "action": { - "delete": "Verwijderen" - }, - "label": { - "expired": "Vervallen", - "unused": "Niet gebruikt", - "search": "Zoeken", - "status": "Status", - "used": "Gebruikt" - }, - "ordering": { - "label": "Volgorde" - }, - "placeholder": { - "search": "Zoek op gebruikersnaam, e-mailadres, code…" - }, - "pagination": { - "results": "Eén resultaat wordt getoond | Resultaten { start } t/m { end } van { total }" } }, - "InvitationForm": { - "button": { - "clear": "Wissen", - "new": "Nieuwe uitnodiging aanvragen" - }, - "table": { - "invitation": { - "header": { - "code": "Code", - "link": "Link om te delen" - } - } - }, - "header": { - "failure": "Fout tijdens creëren van uitnodiging" - }, - "label": { - "invite": "Uitnodigingscode" - }, - "placeholder": { - "invitation": "Laat leeg om een willekeurig code te krijgen" - } - } - } - }, - "admin": { - "SignupFormBuilder": { - "table": { - "additionalFields": { - "header": { - "actions": "Acties", - "label": "Veldlabel", - "type": "Veldtype", - "required": "Vereist" - }, - "type": { - "long": "Lange tekst", - "short": "Korte tekst" - }, - "required": { - "false": "Nee", - "true": "Ja" - } - } - }, - "button": { - "add": "Voeg een nieuw veld toe", - "edit": "Bewerk formulier", - "preview": "Previewformulier" - }, - "label": { - "additionalField": "Extra veld", - "additionalFields": "Extra velden", - "delete": "Verwijderen", - "helpText": "Helptekst", - "moveDown": "Naar beneden", - "moveUp": "Naar boven" - }, - "help": { - "additionalFields": "Extra velden moeten weergegeven worden in het formulier. Wordt alleen getoond als handmatige aanmeldvalidatie is aangezet.", - "helpText": "Een optionele tekst om weer te geven bij het begin van het aanmeldformulier." - } - }, - "SettingsGroup": { - "header": { - "image": "Huidige afbeelding", - "error": "Fout tijdens opslaan van instellingen" - }, - "button": { - "save": "Opslaan" - }, - "message": { - "success": "De instellingen zijn bijgewerkt." - } - } - }, - "moderation": { - "ReportCategoryDropdown": { - "option": { - "all": "Alles" - }, - "label": { - "category": "Categorie" - } - }, - "ReportModal": { - "header": { - "disabled": "Anonieme meldingen zijn uitgeschakeld, gelieve je aan te melden om een melding in te dienen.", - "modal": "Wil je dit object melden?", - "submissionFailure": "Fout bij indienen van melding" - }, - "button": { - "cancel": "Annuleren", - "submit": "Rapport indienen" - }, - "label": { - "email": "E-mailadres", - "forwardToDomain": "Stuur door naar { domain}", - "message": "Bericht" - }, - "description": { - "forwardToDomain": "Stuur een geanonimiseerde kopie van je rapport door naar de server die dit element beheert.", - "message": "Gebruik dit veld om extra context te geven aan de moderator die dit rapport zal behandelen.", - "modal": "Gebruik dit formulier om een rapport in te dienen voor ons moderatieteam.", - "email": "We zullen dit e-mailadres gebruiken als we contact met je moeten opnemen aangaande dit rapport." - }, - "message": { - "submissionSuccess": "Melding succesvol ingediend, dankjewel" - } - }, - "FilterModal": { - "button": { - "cancel": "Annuleren", - "hide": "Inhoud verbergen" - }, - "message": { - "success": "Inhoudsfilter succesvol toegevoegd" - }, - "header": { - "modal": "Wil je content van de artiest \"{ name }\" verbergen?", - "failure": "Fout bij aanmaken van filter" - }, - "warning": { - "createFilter": { - "listItem2": "In de \"Recent toegevoegd\" widget", - "listItem3": "In artiesten- en albumlijsten", - "listItem1": "In favorieten en luistergeschiedenis van andere gebruikers", - "listItem4": "In radiosuggesties", - "listIntro": "Je zult geen nummers, albums en gebruikersactiviteit gekoppeld aan deze artiest meer zien:" - } - }, - "help": { - "createFilter": "Je kunt je filters beheren en bijwerken vanuit je accountinstellingen wanneer je maar wilt." - } - } - }, - "federation": { - "FetchButton": { - "description": { - "failure": "Er is een fout opgetreden tijdens het vernieuwen van gegevens:", - "success": "Gegevens van externe server succesvol vernieuwd.", - "pending": "Het verversverzoek is niet op tijd verwerkt door onze server. Het zal later worden verwerkt.", - "skipped": "De externe server reageerde, maar de geretourneerde data wordt niet ondersteund door Funkwhale." - }, - "table": { - "error": { - "value": { - "httpError": "Er is een HTTP-fout opgetreden bij het contacteren van de externe server", - "invalidAttributesError": "Gegevens verkregen van de externe server waren onvolledig of incorrect", - "connectionError": "Kan geen verbinding krijgen met de externe server", - "httpStatus": "De externe server reageerde met HTTP { status }", - "timeoutError": "The externe server reageerde niet snel genoeg", - "invalidJsonError": "De externe server retourneerde ongeldigde JSON of JSON-LD data", - "unknownError": "Onbekende fout" - }, - "label": { - "detail": "Foutdetail", - "type": "Foutsoort" - } - } - }, - "button": { - "close": "Sluiten", - "reload": "Sluiten en pagina vernieuwen" - }, - "header": { - "saveFailure": "Fout tijdens opslaan van instellingen", - "failure": "Fout bij vernieuwen", - "pending": "Vernieuwing in afwachting", - "success": "Vernieuwen afgerond", - "skipped": "Vernieuwen overgeslagen", - "refresh": "Object verversen van externe server…" - }, - "loader": { - "fetchRequest": "Fetch aan het aanvragen…", - "awaitingResult": "Wacht op resultaat…" - } - }, - "LibraryWidget": { - "empty": { - "noMatch": "Geen overeenkomende bibliotheek." - }, - "button": { - "showMore": "Toon meer" - } - } - }, - "ShortcutsModal": { - "shortcut": { - "audio": { - "label": "Sneltoetsen audiospeler", - "clearQueue": "Wachtrij leegmaken", - "decreaseVolume": "Volume verlagen", - "expandQueue": "Wachtrij/afspeler vergroten", - "increaseVolume": "Volume verhogen", - "playPause": "Pauzeer/speel het huidige nummer", - "playNext": "Speel volgende nummer", - "playPrevious": "Speel vorig nummer", - "seekBack30": "Terugspoelen met 30s", - "seekBack5": "Terugspoelen met 5s", - "seekForward30": "Vooruitspoelen met 30s", - "seekForward5": "Vooruitspoelen met 5s", - "shuffleQueue": "Wachtrij shuffelen", - "toggleFavorite": "Favoriet", - "toggleMute": "Stil", - "toggleLoop": "Rij doorlopen" - }, - "general": { - "focus": "Focus zoekbalk", - "label": "Algemene sneltoetsen", - "show": "Toon beschikbare sneltoetsen", - "unfocus": "Deselecteer zoekbalk" - } - }, - "button": { - "close": "Sluiten" - }, - "header": { - "modal": "Sneltoetsen" - } - }, - "SetInstanceModal": { - "button": { - "cancel": "Annuleren", - "submit": "Indienen" - }, - "header": { - "chooseInstance": "Kies je server", - "failure": "Het is niet mogelijk om verbinding te maken met de opgegeven URL", - "suggestions": "Aanbevelingen" - }, - "label": { - "url": "Server-URL" - }, - "help": { - "notFunkwhaleServer": "Het opgegeven adres is geen Funkwhale-server", - "serverDown": "De server is mogelijk niet beschikbaar", - "selectPod": "Selecteer met welke Funkwhale-server je wil verbinden. Voer zelf de URL in, of kies een van de suggesties." - }, - "message": { - "newUrl": "Je gebruikt nu de Funkwhale-server op { url }" - } - }, - "Queue": { - "button": { - "clear": "Wissen", - "close": "Sluiten", - "stopRadio": "Radio stoppen" - }, - "label": { - "duration": "Duur", - "addArtistContentFilter": "Verberg content van deze artiest…", - "next": "Volgend nummer", - "pause": "Pauseer", - "play": "Afspelen", - "previous": "Vorig nummer", - "queue": "Wachtrij", - "remove": "Verwijderen", - "restart": "Nummer herstarten" - }, - "message": { - "radio": "Nieuwe nummers worden hier automatisch toegevoegd.", - "automaticPlay": "Het volgende nummer zal automatisch worden afgespeeld over een paar seconden…" - }, - "header": { - "failure": "Het nummer kan niet worden geladen", - "radio": "Er wordt een radiostation afgespeeld" - }, - "meta": { - "queuePosition": "Nummer { index } van { length }" - }, - "warning": { - "connectivity": "Je hebt wellicht een connectiviteitsprobleem." - } - }, - "forms": { - "PasswordInput": { - "button": { - "copy": "Kopiëren" - }, - "title": "Wachtwoord tonen/verbergen", - "message": { - "copy": "Tekst gekopieerd naar het klembord!" - } - } - }, - "radios": { - "Card": { - "button": { - "edit": "Bewerken" - } - }, - "Button": { - "startRadio": "Radio afspelen", - "stopRadio": "Radio stoppen" - } - }, - "RemoteSearchForm": { - "header": { - "fetchFailed": "Fout bij het ophalen van het object" - }, - "button": { - "fediverse": "Fediverse", - "rss": "RSS", - "search": "Zoeken" - }, - "label": { - "fediverse": { - "fieldLabel": "Fediverse object", - "title": "Abonneren op een podcast beheerd op de Fediverse" - }, - "rss": { - "fieldPlaceholder": "https://website.example.com/rss.xml", - "fieldLabel": "RSS feed locatie", - "title": "Abonneren op een podcast RSS feed" - } - }, - "warning": { - "unsupported": "Dit soort object wordt nog niet ondersteund" - }, - "error": { - "fetchFailed": "Dit object kan niet worden opgehaald" - }, - "description": { - "fediverse": "Gebruik dit formulier om je te abonneren op een kanaal dat elders op de Fediverse wordt beheerd.", - "rss": "Gebruik dit formulier om je te abonneren op een RSS feed vanaf z'n URL." - } - }, - "PageNotFound": { - "link": { - "home": "Terug naar hoofdpagina" - }, - "title": "Pagina Niet Gevonden", - "header": { - "pageNotFound": "Pagina niet gevonden!" - }, - "message": { - "pageNotFound": "Sorry, de opgevraagde pagina bestaat niet:" - } - }, - "vui": { - "Pagination": { - "next": "Volgende pagina", - "label": "Paginatie", - "previous": "Vorige pagina" - } - }, - "tags": { - "List": { - "button": { - "more": "Nog 1 tag tonen | Nog { count } tags tonen" - } - } - } - }, - "views": { - "channels": { - "DetailBase": { - "meta": { - "episodes": "{ count } aflevering | { count } afleveringen", - "listenings": "{ count } luisteraar | { count } luisteraars", - "subscribers": "{ count } abonnee | { count } abonnees", - "tracks": "{ count } nummer | { count } nummers" - }, - "link": { - "channelEpisodes": "Alle Afleveringen", - "mirrored": "Gemirrord van { domain }", - "moderation": "Open in moderatie-interface", - "channelOverview": "Overzicht", - "channelTracks": "Nummers", - "domainView": "Op { domain } bekijken" - }, - "header": { - "artistChannel": "Artiestkanaal", - "podcastChannel": "Podcastkanaal" - }, - "button": { - "cancel": "Annuleren", - "confirm": "Verwijderen", - "delete": "Verwijderen…", - "edit": "Bewerken…", - "embed": "Embedden", - "play": "Afspelen", - "updateChannel": "Kanaal bijwerken", - "upload": "Uploaden" - }, - "title": "Kanaal", - "modal": { - "subscribe": { - "rss": { - "content": { - "help": "Kopieer en plak de volgende URL in je favoriete podcatcher:" - }, - "header": "Abonneren via RSS" - }, - "fediverse": { - "content": { - "help": "Als je Mastodon of andere fediverse applicaties gebruikt, kun je je abonneren op dit account:" - }, - "header": "Abonneren op de Fediverse" - }, - "funkwhale": { - "header": "Abonneren op Funkwhale" - }, - "header": "Abonneren op dit kanaal" - }, - "delete": { - "header": "Dit kanaal verwijderen?", - "content": { - "warning": "Dit kanaal zal worden verwijderd, samen met alle bijbehorende bestanden en data. Dit kan niet ongedaan gemaakt worden." - } - }, - "embed": { - "header": "Embed deze artiest op je website" - } - } - }, - "DetailOverview": { - "link": { - "addAlbum": "Nieuwe toevoegen", - "erroredUploads": "Uploads met fouten bekijken", - "skippedUploads": "Overgeslagen uploads bekijken" - }, - "header": { - "albums": "Albums", - "latestEpisodes": "Nieuwste afleveringen", - "latestTracks": "Nieuwste nummers", - "series": "Series", - "uploadsFailure": "Sommige uploads konden niet gepubliceerd worden", - "uploadsProcessing": "Uploads worden verwerkt", - "uploadsSuccess": "Uploads succesvol gepubliceerd" - }, - "meta": { - "progress": "Verwerkte uploads:" - }, - "message": { - "processing": "Je uploads worden door Funkwhale verwerkt en zullen zeer spoedig live staan." - } - }, - "SubscriptionsList": { - "link": { - "addNew": "Nieuwe toevoegen" - }, - "button": { - "cancel": "Annuleren", - "subscribe": "Abonneren" - }, - "placeholder": { - "search": "Filter op naam…" - }, - "title": "Geabonneerde Kanalen", - "modal": { - "subscription": { - "header": "Abonnement" - } - } - } - }, - "content": { - "libraries": { - "Card": { - "meta": { - "tracks": "{ count } nummer | { count } nummers" - }, - "link": { - "details": "Bibliotheekdetails" - }, - "label": { - "size": "Totale grootte van de bestanden in deze verzameling" - }, - "button": { - "upload": "Uploaden" - } - }, - "Quota": { - "label": { - "currentUsage": "{ current } in gebruik; maximaal { max } toegestaan", - "errored": "Mislukte bestanden", - "pending": "In behandeling zijnde bestanden", - "skipped": "Overgeslagen bestanden" - }, - "header": { - "currentUsage": "Huidig verbruik" - }, - "loading": { - "currentUsage": "Gebruiksgegevens aan het laden…" - }, - "button": { - "purge": "Leegmaken" - }, - "modal": { - "purgeErrored": { - "header": "Foutieve bestanden verwijderen?", - "content": { - "description": "Alle nummers die zijn geüpload maar niet volledig door de server verwerkt konden worden, worden verwijderd. De bestanden worden gewist en je krijgt de bijbehorende opslagruimte terug." - } - }, - "purgePending": { - "header": "In behandeling zijnde bestanden verwijderen?", - "content": { - "description": "Alle nummers die geüpload maar nog niet verwerkt zijn, worden verwijderd. De bestanden worden gewist en je krijgt de bijbehorende opslagruimte terug." - } - }, - "purgeSkipped": { - "header": "Overgeslagen bestanden verwijderen?", - "content": { - "description": "Alle nummers die bij het importeren zijn overgeslagen, worden verwijderd. De bestanden worden gewist en je krijgt de bijbehorende opslagruimte terug." - } - } - }, - "link": { - "viewFiles": "Bestanden bekijken" - } - }, - "FilesTable": { - "table": { - "file": { - "header": { - "album": "Album", - "artist": "Artiest", - "duration": "Duur", - "importStatus": "Importstatus", - "size": "Grootte", - "title": "Titel", - "uploadDate": "Uploaddatum" - } - } - }, - "option": { - "status": { - "all": "Alles", - "draft": "Klad", - "failed": "Mislukt", - "finished": "Afgerond", - "pending": "In behandeling", - "skipped": "Overgeslagen" - } - }, + "UsersTable": { + "notApplicable": "N.B.", "ordering": { "direction": { "ascending": "Oplopend", @@ -3062,397 +2635,549 @@ }, "label": "Volgorde" }, - "action": { - "delete": "Verwijderen", - "restartImport": "Importeren herstarten" + "pagination": { + "results": "Eén resultaat wordt getoond | Resultaten { start } t/m { end } van { total }" }, - "label": { - "importStatus": "Importstatus", - "search": "Zoeken" - }, - "notApplicable": "N.B.", - "empty": { - "noTracks": "Er zijn nog geen nummers aan deze bibliotheek toegevoegd" + "permission": { + "library": "Bibliotheek", + "moderation": "Moderatie", + "settings": "Instellingen" }, "placeholder": { - "search": "Zoek op titel, artiest, album…" + "search": "Zoek op gebruikersnaam, e-mailadres, naam…" }, - "button": { - "showStatus": "Toon informatie over de uploadstatus van dit nummer" - }, - "pagination": { - "results": "Resultaten - { start }-{ end } van de { total }" - } - }, - "Home": { - "link": { - "createLibrary": "Maak een nieuwe bibliotheek" - }, - "loading": { - "libraries": "Bibliotheken aan het laden…" - }, - "empty": { - "noLibrary": "Het lijkt erop dat je geen bibliotheek hebt; tijd om er één te creëren." - }, - "header": { - "libraries": "Mijn verzamelingen" - } - }, - "Form": { - "button": { - "create": "Bibliotheek maken", - "delete": "Verwijderen", - "confirm": "Bibliotheek verwijderen", - "update": "Verzameling bijwerken" - }, - "modal": { - "delete": { - "header": "Deze bibliotheek verwijderen?", - "content": { - "warning": "De bibliotheek en al haar nummers worden verwijderd. Dit kan niet ongedaan gemaakt worden." + "table": { + "user": { + "accountStatus": { + "active": "Actief", + "inactive": "Inactief" + }, + "header": { + "accountStatus": "Accountstatus", + "email": "E-mailadres", + "lastActivity": "Laatste activiteit", + "permissions": "Machtigingen", + "signup": "Registreren", + "status": "Status", + "username": "Gebruikersnaam" + }, + "status": { + "admin": "Beheerder", + "regular": "Standaardgebruiker", + "staff": "Staflid" } } - }, - "label": { - "description": "Omschrijving", - "name": "Naam", - "visibility": "Zichtbaarheid" - }, - "header": { - "failure": "Fout" - }, - "description": { - "library": "Verzamelingen helpen je bij het organiseren en delen van je muziekverzamelingen. Je kunt je eigen muziek uploaden naar Funkwhale en delen met vrienden en familie.", - "visibility": "Je kunt je verzameling delen met anderen, ongeacht hoe je de zichtbaarheid hebt ingesteld." - }, - "message": { - "libraryCreated": "Bibliotheek gecreëerd", - "libraryDeleted": "Bibliotheek verwijderd", - "libraryUpdated": "Bibliotheek bijgewerkt" - }, - "placeholder": { - "name": "Mijn geweldige bibliotheek", - "description": "Deze bibliotheek bevat mijn persoonlijke muziek. Ik hoop dat het je smaak is." } } - }, - "remote": { - "Card": { - "meta": { - "tracks": "{ count } nummer | { count } nummers", - "failedTracks": "Mislukte nummers:", - "lastUpdate": "Laatste update:" - }, - "modal": { - "unfollow": { - "content": { - "warning": "Als je deze verzameling ontvolgt, verlies je toegang tot haar inhoud." - }, - "header": "Wil je deze verzameling ontvolgen?" - } - }, - "button": { - "cancel": "Trek volgverzoek in", - "follow": "Volgen", - "pending": "Openstaande volgverzoeken", - "unfollow": "Ontvolgen" - }, - "link": { - "scanDetails": "Details", - "scan": "Nu scannen" - }, - "label": { - "scanFailure": "Probleem tijdens scannen", - "scanPending": "Nog te scannen", - "scanSuccess": "Gescand", - "scanPartialSuccess": "Afgerond, maar met foutmeldingen", - "scanProgress": "Aan het scannen… ({ progress }%)", - "sharingLink": "Link om te delen" - }, - "message": { - "scanLaunched": "Scan begonnen", - "scanSkipped": "Scan overgeslagen (vorige scan was zeer recent)" - }, - "tooltip": { - "private": "Deze bibliotheek is privé en goedkeuring van de eigenaar is nodig om de inhoud te benaderen", - "public": "Deze bibliotheek is publiek toegankelijk en je kunt de inhoud vrij benaderen" - } - }, - "ScanForm": { - "header": { - "failure": "Externe bibliotheek kon niet opgehaald worden" - }, - "placeholder": { - "url": "Voer de URL van een bibliotheek in" - }, - "label": { - "search": "Zoek een externe bibliotheek" - }, - "button": { - "submit": "Zoekopdracht versturen" - } - }, - "Home": { - "header": { - "knownLibraries": "Bekende verzamelingen", - "remoteLibraries": "Externe verzamelingen" - }, - "loading": { - "remoteLibraries": "Externe bibliotheken aan het laden…" - }, - "button": { - "refresh": "Verversen" - }, - "description": { - "remoteLibraries": "Externe bibliotheken worden beheerd door andere gebruikers op het netwerk. Je kunt ze gebruiken als ze publiek toegankelijk zijn of je toegang hebt gekregen." - } - } - }, - "Home": { - "title": "Inhoud toevoegen en beheren", - "description": { - "follow": "Je kunt andere verzamelingen volgen voor toegang tot nieuwe muziek. Publiek toegankelijke verzamelingen kun je meteen volgen – voor privéverzamelingen heb je toestemming nodig van de beheerder.", - "channel": { - "1": "Als je een muzikant of podcaster bent, zijn kanalen voor jou ontworpen!", - "2": "Deel je werk publiekelijk en krijg abonnees op Funkwhale, de Fediverse of enig welke podcasting applicatie." - }, - "upload": "Upload je persoonlijke muziekverzameling naar Funkwhale om ervan te genieten van waar dan ook, en om het te delen met vrienden en familie." - }, - "header": { - "follow": "Externe verzamelingen volgen", - "channel": "Publiceer je werk in een kanaal", - "upload": "Upload third-party content in je verzameling" - }, - "button": { - "start": "Aan de slag" - }, - "help": { - "uploadQuota": "Deze server biedt tot {quota} opslagruimte aan elke gebruiker." - } - }, - "Base": { - "title": "Content toevoegen", - "link": { - "libraries": "Verzamelingen", - "tracks": "Nummers" - }, - "menu": { - "secondary": "Submenu" - } } }, - "library": { - "LibraryBase": { - "meta": { - "tracks": "{ count } nummer | { count } nummers" - }, - "link": { - "albums": "Albums", - "artists": "Artiesten", - "moderation": "Open in moderatie-interface", - "owner": "In het bezit van { username }", - "tracks": "Nummers", - "domain": "Op { domain } bekijken" - }, - "button": { - "edit": "Bewerken", - "upload": "Uploaden" - }, - "title": "Bibliotheek", - "label": { - "private": "Privé", - "public": "Publiek", - "instance": "Beperkt", - "sharingLink": "Link om te delen" - }, - "description": { - "sharingLink": "Deel deze link met anderen zodat ze toegang tot je bibliotheek kunnen aanvragen, door de link te kopiëren naar hun zoekbalk." - }, - "tooltip": { - "private": "Deze bibliotheek is privé en goedkeuring van de eigenaar is nodig om de inhoud te benaderen", - "public": "Deze bibliotheek is publiek toegankelijk en je kunt de inhoud vrij benaderen", - "instance": "Deze bibliotheek is beperkt tot gebruikers van deze pod" - } - }, - "Edit": { - "button": { - "accept": "Accepteren", - "reject": "Afkeuren" - }, - "table": { - "action": { - "status": { - "accepted": "Geaccepteerd", - "pending": "Wachtend op goedkeuring", - "rejected": "Afgekeurd" - }, - "header": { - "action": "Actie", - "date": "Datum", - "status": "Status", - "user": "Gebruiker" - } - } - }, - "header": { - "followers": "Volgers", - "libraryContents": "Bibliotheekinhoud" - }, - "loading": { - "followers": "Volgers aan het laden…" - }, - "empty": { - "noFollowers": "Niemand volgt deze bibliotheek" - } - }, - "DetailAlbums": { - "empty": { - "upload": "Deze bibliotheek is leeg. Je zou er iets naartoe moeten uploaden!", - "follow": "Je moet wellicht deze verzameling volgen om de inhoud ervan te zien." - } - }, - "DetailOverview": { - "empty": { - "upload": "Deze bibliotheek is leeg. Je zou er iets naartoe moeten uploaden!", - "follow": "Je moet wellicht deze verzameling volgen om de inhoud ervan te zien." - } - }, - "DetailTracks": { - "empty": { - "upload": "Deze bibliotheek is leeg. Je zou er iets naartoe moeten uploaden!", - "follow": "Je moet wellicht deze verzameling volgen om de inhoud ervan te zien." - } - } - }, - "auth": { - "ProfileBase": { - "title": "{ username }'s profiel", - "link": { - "activity": "Activiteit", - "moderation": "Open in moderatie-interface", - "overview": "Overzicht", - "domainView": "Op { domain } bekijken" - }, - "label": { - "self": "Dit ben jij!" - } - }, - "PasswordReset": { - "label": { - "email": "E-mailadres van account" - }, - "button": { - "requestReset": "Wachtwoordherstel aanvragen" - }, - "link": { - "back": "Terug naar inlogpagina" - }, - "placeholder": { - "email": "Voer het e-mailadres in dat is gekoppeld aan je account" - }, - "header": { - "failure": "Fout tijdens aanvragen van wachtwoordherstel", - "reset": "Wachtwoord opnieuw instellen" - }, - "title": "Wachtwoord opnieuw instellen", - "help": { - "form": "Met dit formulier kun je je wachtwoord laten resetten. Je ontvangt van ons een e-mail op het door jou ingevoerde aangegeven adres met de instructies om je wachtwoord te herstellen." - } - }, - "ProfileOverview": { - "link": { - "addNew": "Nieuwe toevoegen" - }, - "modal": { - "createChannel": { - "artist": { - "header": "Artiestkanaal" - }, - "header": "Maak kanaal", - "podcast": { - "header": "Podcastkanaal" - } - } - }, + "moderation": { + "FilterModal": { "button": { "cancel": "Annuleren", - "createChannel": "Maak kanaal", - "next": "Volgende stap", - "previous": "Vorige stap" + "hide": "Inhoud verbergen" }, "header": { - "channels": "Kanalen", - "sharedLibraries": "Deze gebruiker heeft de volgende verzamelingen gedeeld", - "libraries": "Gebruikersverzamelingen" - } - }, - "PasswordResetConfirm": { - "link": { - "back": "Terug naar inlogpagina", - "login": "Doorgaan met inloggen" + "failure": "Fout bij aanmaken van filter", + "modal": "Wil je content van de artiest \"{ name }\" verbergen?" }, - "title": "Wachtwoord wijzigen", - "header": { - "failure": "Fout tijdens wijzigen van wachtwoord", - "success": "Wachtwoord is gewijzigd" + "help": { + "createFilter": "Je kunt je filters beheren en bijwerken vanuit je accountinstellingen wanneer je maar wilt." }, "message": { - "requestSent": "Als het e-mailadres uit de vorige stap geldig is en verbonden aan een gebruikersaccount, dan zou je binnen een paar minuten een e-mail moeten ontvangen met resetinstructies.", - "success": "Je wachtwoord is bijgewerkt." + "success": "Inhoudsfilter succesvol toegevoegd" }, + "warning": { + "createFilter": { + "listIntro": "Je zult geen nummers, albums en gebruikersactiviteit gekoppeld aan deze artiest meer zien:", + "listItem1": "In favorieten en luistergeschiedenis van andere gebruikers", + "listItem2": "In de \"Recent toegevoegd\" widget", + "listItem3": "In artiesten- en albumlijsten", + "listItem4": "In radiosuggesties" + } + } + }, + "ReportCategoryDropdown": { "label": { - "newPassword": "Nieuw wachtwoord" + "category": "Categorie" }, + "option": { + "all": "Alles" + } + }, + "ReportModal": { "button": { - "update": "Wachtwoord bijwerken" - } - }, - "EmailConfirm": { - "title": "Bevestig je e-mailadres", - "label": { - "confirmationCode": "Bevestigingscode" + "cancel": "Annuleren", + "submit": "Rapport indienen" + }, + "description": { + "email": "We zullen dit e-mailadres gebruiken als we contact met je moeten opnemen aangaande dit rapport.", + "forwardToDomain": "Stuur een geanonimiseerde kopie van je rapport door naar de server die dit element beheert.", + "message": "Gebruik dit veld om extra context te geven aan de moderator die dit rapport zal behandelen.", + "modal": "Gebruik dit formulier om een rapport in te dienen voor ons moderatieteam." }, "header": { - "failure": "We konden je e-mailadres niet bevestigen", - "success": "E-mailadres bevestigd" + "disabled": "Anonieme meldingen zijn uitgeschakeld, gelieve je aan te melden om een melding in te dienen.", + "modal": "Wil je dit object melden?", + "submissionFailure": "Fout bij indienen van melding" }, - "link": { - "login": "Doorgaan met inloggen", - "back": "Terug naar inloggen" + "label": { + "email": "E-mailadres", + "forwardToDomain": "Stuur door naar { domain}", + "message": "Bericht" }, "message": { - "success": "Je kunt nu onbeperkt gebruikmaken van de dienst." - } - }, - "Signup": { - "header": { - "createAccount": "Maak een Funkwhale-account" - }, - "title": "Aanmelden" - }, - "Login": { - "title": "Inloggen", - "header": { - "login": "Log in op je Funkwhale-account" - } - }, - "Callback": { - "header": { - "loggingIn": "Aan het inloggen…" - } - }, - "Plugins": { - "title": "Plugins beheren" - }, - "ProfileActivity": { - "header": { - "playlists": "Afspeellijsten", - "recentlyFavorited": "Recent toegevoegd aan favorieten", - "recentlyListened": "Recent beluisterd" + "submissionSuccess": "Melding succesvol ingediend, dankjewel" } } }, + "notifications": { + "NotificationRow": { + "button": { + "approve": "Goedkeuren", + "markRead": "Markeer als gelezen", + "markUnread": "Markeer als ongelezen", + "reject": "Afkeuren" + }, + "message": { + "libraryAcceptFollow": "{ username } heeft je volgverzoek voor de verzameling \"{ library }\" geaccepteerd", + "libraryFollow": "{ username } volgt nu je verzameling \"{ library }\"", + "libraryPendingFollow": "{ username } wil je verzameling \"{ library }\" volgen" + } + } + }, + "playlists": { + "Card": { + "meta": { + "tracks": "{ n } nummer | { n } nummers" + } + }, + "Editor": { + "button": { + "addDuplicate": "Toch toevoegen", + "clear": "Afspeellijst wissen", + "copy": "Kopieer nummers van de huidige wachtrij naar deze afspeellijst", + "insertFromQueue": "Toevoegen vanuit wachtrij ({ count } nummer) | Toevoegen vanuit wachtrij ({ count } nummers)" + }, + "error": { + "sync": "Er is een fout opgetreden tijdens het opslaan van je wijzigingen" + }, + "header": { + "editor": "Afspeellijst wijzigen" + }, + "help": { + "reorder": "Versleep de rijen om nummers op de afspeellijst te herordenen" + }, + "loading": { + "sync": "Bezig met synchroniseren van wijzigingen naar server…" + }, + "message": { + "sync": "Wijzigingen opgeslagen op server" + }, + "modal": { + "clearPlaylist": { + "content": { + "warning": "Alle nummers worden verwijderd uit de afspeellijst; dit kan niet ongedaan worden gemaakt." + }, + "header": "Weet je zeker dat je de afspeellijst \"{ playlist }\" wilt wissen?" + } + }, + "warning": { + "duplicate": "Een aantal nummers in je wachtrij staat al in deze afspeellijst:" + } + }, + "Form": { + "button": { + "create": "Afspeellijst creëren", + "update": "Afspeellijst bijwerken" + }, + "header": { + "createFailure": "De afspeellijst kon niet worden gecreëerd", + "createPlaylist": "Creëer een nieuwe afspeellijst", + "createSuccess": "Afspeellijst gecreëerd", + "updateSuccess": "Afspeellijst gewijzigd" + }, + "label": { + "name": "Afspeellijstnaam", + "visibility": "Zichtbaarheid van afspeellijst" + }, + "placeholder": { + "name": "Mijn geweldige afspeellijst" + } + }, + "PlaylistModal": { + "button": { + "addDuplicate": "Toch toevoegen", + "addToPlaylist": "Toevoegen aan deze afspeellijst", + "addTrack": "Nummer toevoegen", + "cancel": "Annuleren", + "edit": "Bewerken" + }, + "empty": { + "noPlaylists": "Er zijn nog geen afspeellijsten gemaakt" + }, + "header": { + "addFailure": "Het nummer kan niet aan een afspeellijst worden toegevoegd", + "addToPlaylist": "Toevoegen aan afspeellijst", + "available": "Beschikbare afspeellijsten", + "manage": "Afspeellijsten beheren", + "noResults": "Geen resultaten bij je filter" + }, + "label": { + "filter": "Filter" + }, + "placeholder": { + "filterPlaylist": "Voer een afspeellijstnaam in" + }, + "table": { + "edit": { + "header": { + "edit": "Bewerken", + "lastModification": "Laatste wijziging", + "name": "Naam", + "tracks": "Nummers" + } + } + }, + "warning": { + "duplicate": "{ 0 } staat al in { 1 }." + } + }, + "TrackPlaylistIcon": { + "button": { + "add": "Toevoegen aan afspeellijst…" + } + }, + "Widget": { + "button": { + "create": "Maak afspeellijst", + "more": "Toon meer" + }, + "placeholder": { + "noPlaylists": "Er zijn nog geen afspeellijsten gemaakt" + } + } + }, + "radios": { + "Button": { + "startRadio": "Radio afspelen", + "stopRadio": "Radio stoppen" + }, + "Card": { + "button": { + "edit": "Bewerken" + } + } + }, + "tags": { + "List": { + "button": { + "more": "Nog 1 tag tonen | Nog { count } tags tonen" + } + } + }, + "vui": { + "Pagination": { + "label": "Paginatie", + "next": "Volgende pagina", + "previous": "Vorige pagina" + } + } + }, + "composables": { + "audio": { + "usePlayOptions": { + "addToQueueMessage": "{ count } nummer toegevoegd aan je wachtrij | { count } nummers toegevoegd aan je wachtrij" + } + }, + "locale": { + "useSharedLabels": { + "fields": { + "contentCategory": { + "choices": { + "music": "Muziek", + "other": "Overig", + "podcast": "Podcast" + }, + "label": "Inhoudcategorie" + }, + "importStatus": { + "choices": { + "draft": { + "help": "Dit nummer is geüpload, maar is nog niet ingepland om verwerkt te worden door de server", + "label": "Klad" + }, + "errored": { + "help": "Dit nummer kon niet worden verwerkt. Controleer dat het goed getagd is", + "label": "Mislukt" + }, + "finished": { + "help": "Geïmporteerd", + "label": "Afgerond" + }, + "pending": { + "help": "Nummer is geüpload, maar is nog niet verwerkt door de server", + "label": "In behandeling" + }, + "skipped": { + "help": "Nummer is al aanwezig in één van je bibliotheken", + "label": "Overgeslagen" + } + }, + "label": "Klik voor meer informatie over het importeerproces van deze upload" + }, + "privacyLevel": { + "choices": { + "instance": "Iedereen op deze server", + "private": "Niemand, behalve ik", + "public": "Iedereen, op alle servers" + }, + "help": "Bepaal de zichtbaarheid van je activiteit", + "label": "Zichtbaarheid van activiteit", + "shortChoices": { + "instance": "Server", + "private": "Privé", + "public": "Iedereen" + } + }, + "reportType": { + "choices": { + "illegalContent": "Illegale inhoud", + "invalidMetadata": "Ongeldige metadata", + "offensiveContent": "Aanstootgevende inhoud", + "other": "Overig", + "takedownRequest": "Verzoek tot uitschakelen" + }, + "label": "Categorie" + }, + "summary": { + "label": "Bio" + } + }, + "filters": { + "accessedDate": "Benaderd op", + "albumTitle": "Albumnaam", + "artistName": "Artiestnaam", + "bitrate": "Bitrate", + "creationDate": "Toegevoegd", + "dateJoined": "Geregistreerd op", + "domain": "Domein", + "duration": "Duur", + "expirationDate": "Vervaldatum", + "firstSeen": "Eerst gezien-datum", + "followers": "Volgers", + "itemsCount": "Items", + "lastActivity": "Laatste activiteit", + "lastSeen": "Datum laatst gezien", + "modificationDate": "Bewerkt op", + "name": "Naam", + "receivedMessages": "Ontvangen berichten", + "releaseDate": "Publicatiedatum", + "size": "Grootte", + "trackTitle": "Naam van nummer", + "uploads": "Uploads", + "username": "Gebruikersnaam", + "users": "Gebruikers" + }, + "scopes": { + "edits": { + "description": "Toegang tot bewerkingen", + "label": "Wijzigingen" + }, + "favorites": { + "label": "Favorieten" + }, + "filters": { + "description": "Toegang tot contentfilters", + "label": "Inhoudsfilters" + }, + "follows": { + "description": "Toegang tot je volglijst", + "label": "Volgingen" + }, + "libraries": { + "description": "Toegang tot audiobestanden, bibliotheken, artiesten, albums, en nummers", + "label": "Bibliotheek en uploads" + }, + "listenings": { + "description": "Toegang tot je luistergeschiedenis", + "label": "Luisterbeurten" + }, + "notifications": { + "description": "Toegang tot notificaties", + "label": "Meldingen" + }, + "playlists": { + "description": "Toegang tot afspeellijsten", + "label": "Afspeellijsten" + }, + "profile": { + "description": "Toegang tot je emailadres, gebruikersnaam en profiel", + "label": "Profiel" + }, + "radios": { + "description": "Toegang tot radio's", + "label": "Radio's" + }, + "reports": { + "description": "Toegang tot moderatierapporten", + "label": "Meldingen" + }, + "security": { + "description": "Toegang tot beveiligingsinstellingen zoals wachtwoord en authorisaties", + "label": "Beveiliging" + } + } + } + }, + "moderation": { + "useEditConfigs": { + "album": { + "releaseDate": "Publicatiedatum", + "title": "Titel" + }, + "artist": { + "name": "Naam" + }, + "cover": { + "label": "Kaft" + }, + "description": { + "label": "Omschrijving" + }, + "tags": { + "label": "Tags" + }, + "track": { + "copyright": "Copyright", + "license": "Licentie", + "position": "Positie", + "title": "Titel" + } + }, + "useReport": { + "account": { + "typeLabel": "Account" + }, + "album": { + "label": "Dit album rapporteren…", + "typeLabel": "Album" + }, + "artist": { + "label": "Deze artiest rapporteren…", + "typeLabel": "Artiest" + }, + "channel": { + "label": "Dit kanaal rapporteren…", + "typeLabel": "Kanaal" + }, + "library": { + "label": "Deze bibliotheek rapporteren…", + "typeLabel": "Bibliotheek" + }, + "playlist": { + "label": "Deze afspeellijst rapporteren…", + "typeLabel": "Afspeellijst" + }, + "track": { + "label": "Dit nummer rapporteren…", + "typeLabel": "Nummer" + } + }, + "useReportConfigs": { + "account": { + "label": "Account", + "summary": "Bio" + }, + "album": { + "label": "Album", + "releaseDate": "Publicatiedatum", + "title": "Titel" + }, + "artist": { + "label": "Artiest" + }, + "channel": { + "label": "Kanaal" + }, + "creationDate": { + "label": "Toegevoegd" + }, + "library": { + "description": "Omschrijving", + "label": "Bibliotheek" + }, + "musicbrainzId": { + "label": "MusicBrainz ID" + }, + "name": { + "label": "Naam" + }, + "playlist": { + "label": "Afspeellijst" + }, + "tags": { + "label": "Tags" + }, + "track": { + "copyright": "Copyright", + "label": "Nummer", + "license": "Licentie", + "position": "Positie", + "title": "Titel" + }, + "visibility": { + "label": "Zichtbaarheid" + } + } + }, + "useThemeList": { + "darkTheme": "Donker", + "lightTheme": "Licht" + } + }, + "init": { + "axios": { + "rateLimitDelay": "Je hebt te veel verzoeken ingediend en wordt tijdelijk tegengehouden. Probeer het nog eens over { delay }", + "rateLimitLater": "Je hebt te veel verzoeken ingediend en wordt tijdelijk tegengehouden. Probeer het later nog eens" + }, + "serviceWorker": { + "actions": { + "later": "Later", + "update": "Update" + }, + "newAppVersion": "Er is een nieuwe versie van de app beschikbaar." + } + }, + "views": { "Notifications": { + "button": { + "read": "Alles markeren als gelezen", + "submit": "Begrepen!" + }, + "empty": { + "notifications": "Geen notificaties te tonen." + }, + "header": { + "funkwhaleSupport": "Vind je Funkwhale leuk?", + "instanceSupport": "Steun deze Funkwhale pod", + "messages": "Je berichten", + "notifications": "Je meldingen" + }, + "label": { + "reminder": "Herinner me over:", + "showRead": "Gelezen meldingen tonen" + }, + "link": { + "donate": "Doneer", + "help": "Ontdek andere manieren om te helpen" + }, + "loading": { + "notifications": "Notificaties aan het laden…" + }, + "message": { + "funkwhaleSupport": "We merken dat je hier al een tijdje bent. Als je Funkwhale nuttig vindt, kunnen we je hulp gebruiken om het nog beter te maken!" + }, "option": { "delay": { "30": "30 dagen", @@ -3461,584 +3186,63 @@ "never": "Nooit" } }, - "link": { - "help": "Ontdek andere manieren om te helpen", - "donate": "Doneer" + "title": "Meldingen" + }, + "Search": { + "button": { + "submit": "Zoekopdracht versturen" }, "header": { - "funkwhaleSupport": "Vind je Funkwhale leuk?", - "instanceSupport": "Steun deze Funkwhale pod", - "messages": "Je berichten", - "notifications": "Je meldingen" + "remote": "Zoek een extern object", + "rss": "Abonneren op een podcast RSS feed", + "search": "Zoeken" }, - "button": { - "submit": "Begrepen!", - "read": "Alles markeren als gelezen" - }, - "loading": { - "notifications": "Notificaties aan het laden…" - }, - "empty": { - "notifications": "Geen notificaties te tonen." - }, - "title": "Meldingen", "label": { - "reminder": "Herinner me over:", - "showRead": "Gelezen meldingen tonen" - }, - "message": { - "funkwhaleSupport": "We merken dat je hier al een tijdje bent. Als je Funkwhale nuttig vindt, kunnen we je hulp gebruiken om het nog beter te maken!" + "albums": "Albums", + "artists": "Artiesten", + "playlists": "Afspeellijsten", + "podcasts": "Podcasts", + "radios": "Radio's", + "series": "Series", + "tags": "Tags", + "tracks": "Nummers" } }, "admin": { - "moderation": { - "AccountsDetail": { - "table": { - "accountData": { - "username": "Gebruikersnaam", - "loginStatus": { - "disabled": "Uitgeschakeld", - "enabled": "Ingeschakeld", - "label": "Loginstatus" - }, - "displayName": "Weergavenaam", - "email": "E-mailadres", - "lastActivity": "Laatste activiteit", - "lastChecked": "Laatst gecontroleerd", - "permissions": "Machtigingen", - "signupDate": "Geregistreerd op", - "userType": "Type" - }, - "audioContent": { - "cachedSize": "Gecachete grootte", - "megabyte": "MB", - "totalSize": "Totale grootte", - "uploadQuota": "Uploadquotum" - }, - "activity": { - "emittedFollows": "Uitgezonden bibliotheekvolgingen", - "emittedMessages": "Uitgezonden berichten", - "firstSeen": "Eerst gezien", - "receivedFollows": "Bibliotheek-volgers" - } - }, - "header": { - "accountData": "Accountgegevens", - "activity": "Activiteit", - "audioContent": "Audio-inhoud", - "localAccount": "Lokale account", - "activePolicy": "Dit domein is onderhevig aan moderatieregels", - "noPolicy": "Je hebt geen regels ingesteld voor dit account." - }, - "button": { - "addPolicy": "Een moderatiebeleid toevoegen" - }, - "link": { - "albums": "Albums", - "artists": "Artiesten", - "channels": "Kanalen", - "domain": "Domein", - "libraries": "Verzamelingen", - "linkedReports": "Gelinkte meldingen", - "openProfile": "Open profiel", - "remoteProfile": "Open extern profiel", - "requests": "Verzoeken", - "tracks": "Nummers", - "uploads": "Uploads", - "django": "Kijk in Django's admin" - }, - "tooltip": { - "uploadQuota": "Bepaald hoeveel content de gebruiker kan uploaden. Laat leeg om de standaardwaarde van deze server te gebruiken." - }, - "option": { - "permission": { - "library": "Bibliotheek", - "moderation": "Moderatie", - "settings": "Instellingen" - } - }, - "description": { - "policy": "Met moderatieregels kun je bepalen of en hoe er interactie is tussen jouw server en een bepaald domein of account." - }, - "notApplicable": "N.B.", - "warning": { - "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" - } - }, - "Base": { - "link": { - "accounts": "Accounts", - "domains": "Domeinen", - "reports": "Meldingen", - "userRequests": "Gebruikerverzoeken" - }, - "title": "Moderatie", - "menu": { - "secondary": "Submenu" - } - }, - "DomainsDetail": { - "header": { - "activity": "Activiteit", - "audioContent": "Audio-inhoud", - "instanceData": "Servergegevens", - "activePolicy": "Dit domein is onderhevig aan moderatieregels", - "noPolicy": "Je hebt geen regels ingesteld op dit domein." - }, - "button": { - "addPolicy": "Een moderatiebeleid toevoegen", - "addToAllowList": "Toevoegen aan toelatingslijst", - "refreshNodeInfo": "Vernieuw serverinformatie", - "removeFromAllowList": "Verwijder van toelatingslijst" - }, - "link": { - "albums": "Albums", - "artists": "Artiesten", - "channels": "Kanalen", - "knownAccounts": "Bekende accounts", - "libraries": "Verzamelingen", - "website": "Open website", - "tracks": "Nummers", - "uploads": "Uploads", - "django": "Kijk in Django's admin" - }, - "table": { - "audioContent": { - "cachedSize": "Gecachete grootte", - "totalSize": "Totale grootte" - }, - "activity": { - "emittedFollows": "Uitgezonden bibliotheekvolgingen", - "emittedMessages": "Uitgezonden berichten", - "firstSeen": "Eerst gezien", - "receivedFollows": "Bibliotheek-volgers" - }, - "instanceData": { - "nodeInfoStatus": { - "value": "Fout bij het ophalen van serverinformatie", - "label": "Status" - }, - "inAllowList": { - "label": "Is aanwezig op toestemmingslijst", - "false": "Nee", - "true": "Ja" - }, - "lastChecked": "Laatst gecontroleerd", - "domainName": "Naam", - "software": { - "label": "Software" - }, - "totalUsers": "Totaal aantal gebruikers" - } - }, - "description": { - "policy": "Met moderatieregels kun je bepalen of en hoe er interactie is tussen jouw server en een bepaald domein of account." - }, - "notApplicable": "N.B.", - "warning": { - "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" - } - }, - "DomainsList": { - "button": { - "add": "Toevoegen" - }, - "label": { - "addDomain": "Domein toevoegen", - "addToAllowList": "Toevoegen aan toelatingslijst" - }, - "title": "Domeinen", - "header": { - "domains": "Domeinen", - "failure": "Fout bij aanmaken van domein" - } - }, - "ReportsList": { - "option": { - "status": { - "all": "Alles", - "resolved": "Opgelost", - "unresolved": "Niet opgelost" - } - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Volgorde" - }, - "label": "Volgorde" - }, - "title": "Meldingen", - "header": { - "reports": "Meldingen" - }, - "label": { - "search": "Zoeken", - "status": "Status" - }, - "placeholder": { - "search": "Zoek op account, samenvatting, domein…" - } - }, - "RequestsList": { - "option": { - "status": { - "all": "Alles", - "approved": "Goedgekeurd", - "pending": "In behandeling", - "refused": "Geweigerd" - } - }, - "ordering": { - "direction": { - "ascending": "Oplopend", - "descending": "Aflopend", - "label": "Volgorde" - }, - "label": "Volgorde" - }, - "label": { - "search": "Zoeken", - "status": "Status" - }, - "placeholder": { - "search": "Zoek op gebruikersnaam…" - }, - "title": "Gebruikerverzoeken", - "header": { - "userRequests": "Gebruikerverzoeken" - } - } - }, - "library": { - "UploadDetail": { - "table": { - "activity": { - "accessedDate": "Benaderd op", - "firstSeen": "Eerst gezien" - }, - "audioContent": { - "bitrate": { - "label": "Bitrate" - }, - "cachedSize": "Gecachete grootte", - "duration": "Duur", - "size": "Grootte", - "track": "Nummer" - }, - "upload": { - "name": "Naam" - } - }, - "link": { - "account": "Account", - "domain": "Domein", - "importStatus": "Importstatus", - "library": "Bibliotheek", - "remoteProfile": "Open extern profiel", - "type": "Type", - "django": "Kijk in Django's admin", - "visibility": "Zichtbaarheid" - }, - "header": { - "activity": "Activiteit", - "audioContent": "Audio-inhoud", - "local": "Lokaal", - "uploadData": "Uploaddatum" - }, - "button": { - "delete": "Verwijderen", - "download": "Downloaden" - }, - "modal": { - "delete": { - "header": "Deze upload verwijderen?", - "content": { - "warning": "De content zal worden verwijderd. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "notApplicable": "N.B." - }, - "LibraryDetail": { - "link": { - "account": "Account", - "albums": "Albums", - "artists": "Artiesten", - "domain": "Domein", - "reports": "Gelinkte meldingen", - "remoteProfile": "Open extern profiel", - "tracks": "Nummers", - "uploads": "Uploads", - "django": "Kijk in Django's admin", - "visibility": "Zichtbaarheid" - }, - "header": { - "activity": "Activiteit", - "audioContent": "Audio-inhoud", - "libraryData": "Bibliotheekgegevens", - "local": "Lokaal" - }, - "table": { - "audioContent": { - "cachedSize": "Gecachete grootte", - "totalSize": "Totale grootte" - }, - "library": { - "description": "Omschrijving", - "name": "Naam" - }, - "activity": { - "firstSeen": "Eerst gezien", - "followers": "Volgers" - } - }, - "button": { - "delete": "Verwijderen" - }, - "modal": { - "delete": { - "header": "Deze bibliotheek verwijderen?", - "content": { - "warning": "De bibliotheek zal worden verwijderd, samen met alle bijbehorende nummers en volgers. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "warning": { - "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" - } - }, - "AlbumDetail": { - "header": { - "activity": "Activiteit", - "albumData": "Albumgegevens", - "audioContent": "Audio-inhoud", - "local": "Lokaal" - }, - "link": { - "artist": "Artiest", - "domain": "Domein", - "edits": "Wijzigingen", - "libraries": "Verzamelingen", - "reports": "Gelinkte meldingen", - "localProfile": "Open lokaal profiel", - "musicbrainz": "Open op MusicBrainz", - "remoteProfile": "Open extern profiel", - "tracks": "Nummers", - "uploads": "Uploads", - "django": "Kijk in Django's admin" - }, - "table": { - "audioContent": { - "cachedSize": "Gecachete grootte", - "totalSize": "Totale grootte" - }, - "album": { - "description": "Omschrijving", - "title": "Titel" - }, - "activity": { - "favorited": "Favoriete nummers", - "firstSeen": "Eerst gezien", - "listenings": "Luisterbeurten", - "playlists": "Afspeellijsten" - } - }, - "button": { - "delete": "Verwijderen", - "edit": "Bewerken", - "remoteRefresh": "Vernieuwd door externe server" - }, - "modal": { - "delete": { - "header": "Album verwijderen?", - "content": { - "warning": "Het album en de bijbehorende nummers, favorieten en luisterhistorie worden verwijderd. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "warning": { - "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" - } - }, - "ArtistDetail": { - "header": { - "activity": "Activiteit", - "artistData": "Artiestgegevens", - "audioContent": "Audio-inhoud", - "local": "Lokaal" - }, - "link": { - "albums": "Albums", - "category": "Categorie", - "domain": "Domein", - "edits": "Wijzigingen", - "libraries": "Verzamelingen", - "reports": "Gelinkte meldingen", - "localProfile": "Open lokaal profiel", - "musicbrainz": "Open op MusicBrainz", - "remoteProfile": "Open extern profiel", - "tracks": "Nummers", - "uploads": "Uploads", - "django": "Kijk in Django's admin" - }, - "table": { - "audioContent": { - "cachedSize": "Gecachete grootte", - "totalSize": "Totale grootte" - }, - "artist": { - "description": "Omschrijving", - "name": "Naam" - }, - "activity": { - "favorited": "Favoriete nummers", - "firstSeen": "Eerst gezien", - "listenings": "Luisterbeurten", - "playlists": "Afspeellijsten" - } - }, - "button": { - "delete": "Verwijderen", - "edit": "Bewerken", - "remoteRefresh": "Vernieuwd door externe server" - }, - "modal": { - "delete": { - "header": "Deze artiest verwijderen?", - "content": { - "warning": "The artiest wordt verwijderd, samen met bijbehorende uploads, nummers, albums, favorieten en luisterhistorie. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "warning": { - "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" - } - }, - "TagDetail": { - "header": { - "activity": "Activiteit", - "audioContent": "Audio-inhoud", - "tagData": "Tag data" - }, - "link": { - "albums": "Albums", - "artists": "Artiesten", - "localProfile": "Open lokaal profiel", - "tracks": "Nummers", - "django": "Kijk in Django's admin" - }, - "button": { - "delete": "Verwijderen" - }, - "modal": { - "delete": { - "header": "Deze tag verwijderen?", - "content": { - "warning": "De content zal worden verwijderd en losgekoppeld van enig welke entiteit. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "table": { - "activity": { - "firstSeen": "Eerst gezien" - }, - "tag": { - "name": "Naam" - } - } - }, - "TrackDetail": { - "header": { - "activity": "Activiteit", - "local": "Lokaal", - "trackData": "Nummergegevens" - }, - "link": { - "album": "Album", - "albumArtist": "Albumartiest", - "artist": "Artiest", - "domain": "Domein", - "edits": "Wijzigingen", - "libraries": "Verzamelingen", - "reports": "Gelinkte meldingen", - "localProfile": "Open lokaal profiel", - "musicbrainz": "Open op MusicBrainz", - "remoteProfile": "Open extern profiel", - "uploads": "Uploads", - "django": "Kijk in Django's admin" - }, - "table": { - "trackData": { - "cachedSize": "Gecachete grootte", - "totalSize": "Totale grootte" - }, - "track": { - "copyright": "Copyright", - "description": "Omschrijving", - "discNumber": "CD-nummer", - "license": "Licentie", - "position": "Positie", - "title": "Titel" - }, - "activity": { - "favorited": "Favoriete nummers", - "firstSeen": "Eerst gezien", - "listenings": "Luisterbeurten", - "playlists": "Afspeellijsten" - } - }, - "button": { - "delete": "Verwijderen", - "edit": "Bewerken", - "remoteRefresh": "Vernieuwd door externe server" - }, - "modal": { - "delete": { - "header": "Dit nummer verwijderen?", - "content": { - "warning": "Het nummer zal worden verwijderd, samen met alle bijbehorende uploads, favorieten en luistergeschiedenis. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "warning": { - "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" - } - }, - "Base": { - "link": { - "albums": "Albums", - "artists": "Artiesten", - "channels": "Kanalen", - "edits": "Wijzigingen", - "libraries": "Verzamelingen", - "tags": "Tags", - "tracks": "Nummers", - "uploads": "Uploads" - }, - "title": "Bibliotheek beheren", - "menu": { - "secondary": "Submenu" - } - }, - "EditsList": { - "title": "Wijzigingen", - "header": { - "edits": "Bibliotheekbewerkingen" - } - } - }, "ChannelDetail": { + "button": { + "delete": "Verwijderen", + "openRemote": "Open extern profiel", + "refresh": "Vernieuwd door externe server" + }, + "header": { + "activity": "Activiteit", + "audioContent": "Audio-inhoud", + "channelData": "Kanaalgegevens" + }, + "label": { + "local": "Lokaal" + }, + "link": { + "django": "Kijk in Django's admin", + "localProfile": "Open lokaal profiel" + }, + "modal": { + "delete": { + "content": { + "warning": "Het kanaal zal worden verwijderd, samen met alle bijbehorende uploads, nummers en albums. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Dit kanaal verwijderen?" + } + }, "table": { - "channelData": { - "account": "Account", - "category": "Categorie", - "description": "Omschrijving", - "domain": "Domein", - "name": "Naam", - "rss": "RSS Feed", - "url": "URL" + "activity": { + "edits": "Wijzigingen", + "favorited": "Favoriete nummers", + "firstSeen": "Eerst gezien", + "linkedReports": "Gelinkte meldingen", + "listenings": "Luisterbeurten", + "playlists": "Afspeellijsten" }, "audioContent": { "albums": "Albums", @@ -4047,40 +3251,16 @@ "tracks": "Nummers", "uploads": "Uploads" }, - "activity": { - "edits": "Wijzigingen", - "favorited": "Favoriete nummers", - "firstSeen": "Eerst gezien", - "linkedReports": "Gelinkte meldingen", - "listenings": "Luisterbeurten", - "playlists": "Afspeellijsten" + "channelData": { + "account": "Account", + "category": "Categorie", + "description": "Omschrijving", + "domain": "Domein", + "name": "Naam", + "rss": "RSS Feed", + "url": "URL" } }, - "header": { - "activity": "Activiteit", - "audioContent": "Audio-inhoud", - "channelData": "Kanaalgegevens" - }, - "button": { - "delete": "Verwijderen", - "openRemote": "Open extern profiel", - "refresh": "Vernieuwd door externe server" - }, - "modal": { - "delete": { - "header": "Dit kanaal verwijderen?", - "content": { - "warning": "Het kanaal zal worden verwijderd, samen met alle bijbehorende uploads, nummers en albums. Dit kan niet ongedaan gemaakt worden." - } - } - }, - "label": { - "local": "Lokaal" - }, - "link": { - "localProfile": "Open lokaal profiel", - "django": "Kijk in Django's admin" - }, "warning": { "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" } @@ -4104,53 +3284,1198 @@ "channels": "Kanalen", "federation": "Federatie", "instanceInfo": "Serverinformatie", - "settings": "Serverinstellingen", "moderation": "Moderatie", "music": "Muziek", "playlists": "Afspeellijsten", "sections": "Secties", "security": "Beveiliging", + "settings": "Serverinstellingen", "signups": "Aanmeldingen", "stats": "Statistieken", "subsonic": "Subsonic", "ui": "Gebruikersinterface" } }, + "library": { + "AlbumDetail": { + "button": { + "delete": "Verwijderen", + "edit": "Bewerken", + "remoteRefresh": "Vernieuwd door externe server" + }, + "header": { + "activity": "Activiteit", + "albumData": "Albumgegevens", + "audioContent": "Audio-inhoud", + "local": "Lokaal" + }, + "link": { + "artist": "Artiest", + "django": "Kijk in Django's admin", + "domain": "Domein", + "edits": "Wijzigingen", + "libraries": "Verzamelingen", + "localProfile": "Open lokaal profiel", + "musicbrainz": "Open op MusicBrainz", + "remoteProfile": "Open extern profiel", + "reports": "Gelinkte meldingen", + "tracks": "Nummers", + "uploads": "Uploads" + }, + "modal": { + "delete": { + "content": { + "warning": "Het album en de bijbehorende nummers, favorieten en luisterhistorie worden verwijderd. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Album verwijderen?" + } + }, + "table": { + "activity": { + "favorited": "Favoriete nummers", + "firstSeen": "Eerst gezien", + "listenings": "Luisterbeurten", + "playlists": "Afspeellijsten" + }, + "album": { + "description": "Omschrijving", + "title": "Titel" + }, + "audioContent": { + "cachedSize": "Gecachete grootte", + "totalSize": "Totale grootte" + } + }, + "warning": { + "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" + } + }, + "ArtistDetail": { + "button": { + "delete": "Verwijderen", + "edit": "Bewerken", + "remoteRefresh": "Vernieuwd door externe server" + }, + "header": { + "activity": "Activiteit", + "artistData": "Artiestgegevens", + "audioContent": "Audio-inhoud", + "local": "Lokaal" + }, + "link": { + "albums": "Albums", + "category": "Categorie", + "django": "Kijk in Django's admin", + "domain": "Domein", + "edits": "Wijzigingen", + "libraries": "Verzamelingen", + "localProfile": "Open lokaal profiel", + "musicbrainz": "Open op MusicBrainz", + "remoteProfile": "Open extern profiel", + "reports": "Gelinkte meldingen", + "tracks": "Nummers", + "uploads": "Uploads" + }, + "modal": { + "delete": { + "content": { + "warning": "The artiest wordt verwijderd, samen met bijbehorende uploads, nummers, albums, favorieten en luisterhistorie. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Deze artiest verwijderen?" + } + }, + "table": { + "activity": { + "favorited": "Favoriete nummers", + "firstSeen": "Eerst gezien", + "listenings": "Luisterbeurten", + "playlists": "Afspeellijsten" + }, + "artist": { + "description": "Omschrijving", + "name": "Naam" + }, + "audioContent": { + "cachedSize": "Gecachete grootte", + "totalSize": "Totale grootte" + } + }, + "warning": { + "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" + } + }, + "Base": { + "link": { + "albums": "Albums", + "artists": "Artiesten", + "channels": "Kanalen", + "edits": "Wijzigingen", + "libraries": "Verzamelingen", + "tags": "Tags", + "tracks": "Nummers", + "uploads": "Uploads" + }, + "menu": { + "secondary": "Submenu" + }, + "title": "Bibliotheek beheren" + }, + "EditsList": { + "header": { + "edits": "Bibliotheekbewerkingen" + }, + "title": "Wijzigingen" + }, + "LibraryDetail": { + "button": { + "delete": "Verwijderen" + }, + "header": { + "activity": "Activiteit", + "audioContent": "Audio-inhoud", + "libraryData": "Bibliotheekgegevens", + "local": "Lokaal" + }, + "link": { + "account": "Account", + "albums": "Albums", + "artists": "Artiesten", + "django": "Kijk in Django's admin", + "domain": "Domein", + "remoteProfile": "Open extern profiel", + "reports": "Gelinkte meldingen", + "tracks": "Nummers", + "uploads": "Uploads", + "visibility": "Zichtbaarheid" + }, + "modal": { + "delete": { + "content": { + "warning": "De bibliotheek zal worden verwijderd, samen met alle bijbehorende nummers en volgers. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Deze bibliotheek verwijderen?" + } + }, + "table": { + "activity": { + "firstSeen": "Eerst gezien", + "followers": "Volgers" + }, + "audioContent": { + "cachedSize": "Gecachete grootte", + "totalSize": "Totale grootte" + }, + "library": { + "description": "Omschrijving", + "name": "Naam" + } + }, + "warning": { + "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" + } + }, + "TagDetail": { + "button": { + "delete": "Verwijderen" + }, + "header": { + "activity": "Activiteit", + "audioContent": "Audio-inhoud", + "tagData": "Tag data" + }, + "link": { + "albums": "Albums", + "artists": "Artiesten", + "django": "Kijk in Django's admin", + "localProfile": "Open lokaal profiel", + "tracks": "Nummers" + }, + "modal": { + "delete": { + "content": { + "warning": "De content zal worden verwijderd en losgekoppeld van enig welke entiteit. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Deze tag verwijderen?" + } + }, + "table": { + "activity": { + "firstSeen": "Eerst gezien" + }, + "tag": { + "name": "Naam" + } + } + }, + "TrackDetail": { + "button": { + "delete": "Verwijderen", + "edit": "Bewerken", + "remoteRefresh": "Vernieuwd door externe server" + }, + "header": { + "activity": "Activiteit", + "local": "Lokaal", + "trackData": "Nummergegevens" + }, + "link": { + "album": "Album", + "albumArtist": "Albumartiest", + "artist": "Artiest", + "django": "Kijk in Django's admin", + "domain": "Domein", + "edits": "Wijzigingen", + "libraries": "Verzamelingen", + "localProfile": "Open lokaal profiel", + "musicbrainz": "Open op MusicBrainz", + "remoteProfile": "Open extern profiel", + "reports": "Gelinkte meldingen", + "uploads": "Uploads" + }, + "modal": { + "delete": { + "content": { + "warning": "Het nummer zal worden verwijderd, samen met alle bijbehorende uploads, favorieten en luistergeschiedenis. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Dit nummer verwijderen?" + } + }, + "table": { + "activity": { + "favorited": "Favoriete nummers", + "firstSeen": "Eerst gezien", + "listenings": "Luisterbeurten", + "playlists": "Afspeellijsten" + }, + "track": { + "copyright": "Copyright", + "description": "Omschrijving", + "discNumber": "CD-nummer", + "license": "Licentie", + "position": "Positie", + "title": "Titel" + }, + "trackData": { + "cachedSize": "Gecachete grootte", + "totalSize": "Totale grootte" + } + }, + "warning": { + "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" + } + }, + "UploadDetail": { + "button": { + "delete": "Verwijderen", + "download": "Downloaden" + }, + "header": { + "activity": "Activiteit", + "audioContent": "Audio-inhoud", + "local": "Lokaal", + "uploadData": "Uploaddatum" + }, + "link": { + "account": "Account", + "django": "Kijk in Django's admin", + "domain": "Domein", + "importStatus": "Importstatus", + "library": "Bibliotheek", + "remoteProfile": "Open extern profiel", + "type": "Type", + "visibility": "Zichtbaarheid" + }, + "modal": { + "delete": { + "content": { + "warning": "De content zal worden verwijderd. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Deze upload verwijderen?" + } + }, + "notApplicable": "N.B.", + "table": { + "activity": { + "accessedDate": "Benaderd op", + "firstSeen": "Eerst gezien" + }, + "audioContent": { + "bitrate": { + "label": "Bitrate" + }, + "cachedSize": "Gecachete grootte", + "duration": "Duur", + "size": "Grootte", + "track": "Nummer" + }, + "upload": { + "name": "Naam" + } + } + } + }, + "moderation": { + "AccountsDetail": { + "button": { + "addPolicy": "Een moderatiebeleid toevoegen" + }, + "description": { + "policy": "Met moderatieregels kun je bepalen of en hoe er interactie is tussen jouw server en een bepaald domein of account." + }, + "header": { + "accountData": "Accountgegevens", + "activePolicy": "Dit domein is onderhevig aan moderatieregels", + "activity": "Activiteit", + "audioContent": "Audio-inhoud", + "localAccount": "Lokale account", + "noPolicy": "Je hebt geen regels ingesteld voor dit account." + }, + "link": { + "albums": "Albums", + "artists": "Artiesten", + "channels": "Kanalen", + "django": "Kijk in Django's admin", + "domain": "Domein", + "libraries": "Verzamelingen", + "linkedReports": "Gelinkte meldingen", + "openProfile": "Open profiel", + "remoteProfile": "Open extern profiel", + "requests": "Verzoeken", + "tracks": "Nummers", + "uploads": "Uploads" + }, + "notApplicable": "N.B.", + "option": { + "permission": { + "library": "Bibliotheek", + "moderation": "Moderatie", + "settings": "Instellingen" + } + }, + "table": { + "accountData": { + "displayName": "Weergavenaam", + "email": "E-mailadres", + "lastActivity": "Laatste activiteit", + "lastChecked": "Laatst gecontroleerd", + "loginStatus": { + "disabled": "Uitgeschakeld", + "enabled": "Ingeschakeld", + "label": "Loginstatus" + }, + "permissions": "Machtigingen", + "signupDate": "Geregistreerd op", + "userType": "Type", + "username": "Gebruikersnaam" + }, + "activity": { + "emittedFollows": "Uitgezonden bibliotheekvolgingen", + "emittedMessages": "Uitgezonden berichten", + "firstSeen": "Eerst gezien", + "receivedFollows": "Bibliotheek-volgers" + }, + "audioContent": { + "cachedSize": "Gecachete grootte", + "megabyte": "MB", + "totalSize": "Totale grootte", + "uploadQuota": "Uploadquotum" + } + }, + "tooltip": { + "uploadQuota": "Bepaald hoeveel content de gebruiker kan uploaden. Laat leeg om de standaardwaarde van deze server te gebruiken." + }, + "warning": { + "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" + } + }, + "Base": { + "link": { + "accounts": "Accounts", + "domains": "Domeinen", + "reports": "Meldingen", + "userRequests": "Gebruikerverzoeken" + }, + "menu": { + "secondary": "Submenu" + }, + "title": "Moderatie" + }, + "DomainsDetail": { + "button": { + "addPolicy": "Een moderatiebeleid toevoegen", + "addToAllowList": "Toevoegen aan toelatingslijst", + "refreshNodeInfo": "Vernieuw serverinformatie", + "removeFromAllowList": "Verwijder van toelatingslijst" + }, + "description": { + "policy": "Met moderatieregels kun je bepalen of en hoe er interactie is tussen jouw server en een bepaald domein of account." + }, + "header": { + "activePolicy": "Dit domein is onderhevig aan moderatieregels", + "activity": "Activiteit", + "audioContent": "Audio-inhoud", + "instanceData": "Servergegevens", + "noPolicy": "Je hebt geen regels ingesteld op dit domein." + }, + "link": { + "albums": "Albums", + "artists": "Artiesten", + "channels": "Kanalen", + "django": "Kijk in Django's admin", + "knownAccounts": "Bekende accounts", + "libraries": "Verzamelingen", + "tracks": "Nummers", + "uploads": "Uploads", + "website": "Open website" + }, + "notApplicable": "N.B.", + "table": { + "activity": { + "emittedFollows": "Uitgezonden bibliotheekvolgingen", + "emittedMessages": "Uitgezonden berichten", + "firstSeen": "Eerst gezien", + "receivedFollows": "Bibliotheek-volgers" + }, + "audioContent": { + "cachedSize": "Gecachete grootte", + "totalSize": "Totale grootte" + }, + "instanceData": { + "domainName": "Naam", + "inAllowList": { + "false": "Nee", + "label": "Is aanwezig op toestemmingslijst", + "true": "Ja" + }, + "lastChecked": "Laatst gecontroleerd", + "nodeInfoStatus": { + "label": "Status", + "value": "Fout bij het ophalen van serverinformatie" + }, + "software": { + "label": "Software" + }, + "totalUsers": "Totaal aantal gebruikers" + } + }, + "warning": { + "stats": "Statistieken worden berekend op basis van de activiteit en media op je server, en vertegenwoordigen niet de activiteit voor dit object" + } + }, + "DomainsList": { + "button": { + "add": "Toevoegen" + }, + "header": { + "domains": "Domeinen", + "failure": "Fout bij aanmaken van domein" + }, + "label": { + "addDomain": "Domein toevoegen", + "addToAllowList": "Toevoegen aan toelatingslijst" + }, + "title": "Domeinen" + }, + "ReportsList": { + "header": { + "reports": "Meldingen" + }, + "label": { + "search": "Zoeken", + "status": "Status" + }, + "option": { + "status": { + "all": "Alles", + "resolved": "Opgelost", + "unresolved": "Niet opgelost" + } + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Volgorde" + }, + "label": "Volgorde" + }, + "placeholder": { + "search": "Zoek op account, samenvatting, domein…" + }, + "title": "Meldingen" + }, + "RequestsList": { + "header": { + "userRequests": "Gebruikerverzoeken" + }, + "label": { + "search": "Zoeken", + "status": "Status" + }, + "option": { + "status": { + "all": "Alles", + "approved": "Goedgekeurd", + "pending": "In behandeling", + "refused": "Geweigerd" + } + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Volgorde" + }, + "label": "Volgorde" + }, + "placeholder": { + "search": "Zoek op gebruikersnaam…" + }, + "title": "Gebruikerverzoeken" + } + }, "users": { "Base": { "link": { "invitations": "Uitnodigingen", "users": "Gebruikers" }, - "title": "Gebruikers beheren", "menu": { "secondary": "Submenu" + }, + "title": "Gebruikers beheren" + } + } + }, + "auth": { + "Callback": { + "header": { + "loggingIn": "Aan het inloggen…" + } + }, + "EmailConfirm": { + "header": { + "failure": "We konden je e-mailadres niet bevestigen", + "success": "E-mailadres bevestigd" + }, + "label": { + "confirmationCode": "Bevestigingscode" + }, + "link": { + "back": "Terug naar inloggen", + "login": "Doorgaan met inloggen" + }, + "message": { + "success": "Je kunt nu onbeperkt gebruikmaken van de dienst." + }, + "title": "Bevestig je e-mailadres" + }, + "Login": { + "header": { + "login": "Log in op je Funkwhale-account" + }, + "title": "Inloggen" + }, + "PasswordReset": { + "button": { + "requestReset": "Wachtwoordherstel aanvragen" + }, + "header": { + "failure": "Fout tijdens aanvragen van wachtwoordherstel", + "reset": "Wachtwoord opnieuw instellen" + }, + "help": { + "form": "Met dit formulier kun je je wachtwoord laten resetten. Je ontvangt van ons een e-mail op het door jou ingevoerde aangegeven adres met de instructies om je wachtwoord te herstellen." + }, + "label": { + "email": "E-mailadres van account" + }, + "link": { + "back": "Terug naar inlogpagina" + }, + "placeholder": { + "email": "Voer het e-mailadres in dat is gekoppeld aan je account" + }, + "title": "Wachtwoord opnieuw instellen" + }, + "PasswordResetConfirm": { + "button": { + "update": "Wachtwoord bijwerken" + }, + "header": { + "failure": "Fout tijdens wijzigen van wachtwoord", + "success": "Wachtwoord is gewijzigd" + }, + "label": { + "newPassword": "Nieuw wachtwoord" + }, + "link": { + "back": "Terug naar inlogpagina", + "login": "Doorgaan met inloggen" + }, + "message": { + "requestSent": "Als het e-mailadres uit de vorige stap geldig is en verbonden aan een gebruikersaccount, dan zou je binnen een paar minuten een e-mail moeten ontvangen met resetinstructies.", + "success": "Je wachtwoord is bijgewerkt." + }, + "title": "Wachtwoord wijzigen" + }, + "Plugins": { + "title": "Plugins beheren" + }, + "ProfileActivity": { + "header": { + "playlists": "Afspeellijsten", + "recentlyFavorited": "Recent toegevoegd aan favorieten", + "recentlyListened": "Recent beluisterd" + } + }, + "ProfileBase": { + "label": { + "self": "Dit ben jij!" + }, + "link": { + "activity": "Activiteit", + "domainView": "Op { domain } bekijken", + "moderation": "Open in moderatie-interface", + "overview": "Overzicht" + }, + "title": "{ username }'s profiel" + }, + "ProfileOverview": { + "button": { + "cancel": "Annuleren", + "createChannel": "Maak kanaal", + "next": "Volgende stap", + "previous": "Vorige stap" + }, + "header": { + "channels": "Kanalen", + "libraries": "Gebruikersverzamelingen", + "sharedLibraries": "Deze gebruiker heeft de volgende verzamelingen gedeeld" + }, + "link": { + "addNew": "Nieuwe toevoegen" + }, + "modal": { + "createChannel": { + "artist": { + "header": "Artiestkanaal" + }, + "header": "Maak kanaal", + "podcast": { + "header": "Podcastkanaal" + } + } + } + }, + "Signup": { + "header": { + "createAccount": "Maak een Funkwhale-account" + }, + "title": "Aanmelden" + } + }, + "channels": { + "DetailBase": { + "button": { + "cancel": "Annuleren", + "confirm": "Verwijderen", + "delete": "Verwijderen…", + "edit": "Bewerken…", + "embed": "Embedden", + "play": "Afspelen", + "updateChannel": "Kanaal bijwerken", + "upload": "Uploaden" + }, + "header": { + "artistChannel": "Artiestkanaal", + "podcastChannel": "Podcastkanaal" + }, + "link": { + "channelEpisodes": "Alle Afleveringen", + "channelOverview": "Overzicht", + "channelTracks": "Nummers", + "domainView": "Op { domain } bekijken", + "mirrored": "Gemirrord van { domain }", + "moderation": "Open in moderatie-interface" + }, + "meta": { + "episodes": "{ count } aflevering | { count } afleveringen", + "listenings": "{ count } luisteraar | { count } luisteraars", + "subscribers": "{ count } abonnee | { count } abonnees", + "tracks": "{ count } nummer | { count } nummers" + }, + "modal": { + "delete": { + "content": { + "warning": "Dit kanaal zal worden verwijderd, samen met alle bijbehorende bestanden en data. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Dit kanaal verwijderen?" + }, + "embed": { + "header": "Embed deze artiest op je website" + }, + "subscribe": { + "fediverse": { + "content": { + "help": "Als je Mastodon of andere fediverse applicaties gebruikt, kun je je abonneren op dit account:" + }, + "header": "Abonneren op de Fediverse" + }, + "funkwhale": { + "header": "Abonneren op Funkwhale" + }, + "header": "Abonneren op dit kanaal", + "rss": { + "content": { + "help": "Kopieer en plak de volgende URL in je favoriete podcatcher:" + }, + "header": "Abonneren via RSS" + } + } + }, + "title": "Kanaal" + }, + "DetailOverview": { + "header": { + "albums": "Albums", + "latestEpisodes": "Nieuwste afleveringen", + "latestTracks": "Nieuwste nummers", + "series": "Series", + "uploadsFailure": "Sommige uploads konden niet gepubliceerd worden", + "uploadsProcessing": "Uploads worden verwerkt", + "uploadsSuccess": "Uploads succesvol gepubliceerd" + }, + "link": { + "addAlbum": "Nieuwe toevoegen", + "erroredUploads": "Uploads met fouten bekijken", + "skippedUploads": "Overgeslagen uploads bekijken" + }, + "message": { + "processing": "Je uploads worden door Funkwhale verwerkt en zullen zeer spoedig live staan." + }, + "meta": { + "progress": "Verwerkte uploads:" + } + }, + "SubscriptionsList": { + "button": { + "cancel": "Annuleren", + "subscribe": "Abonneren" + }, + "link": { + "addNew": "Nieuwe toevoegen" + }, + "modal": { + "subscription": { + "header": "Abonnement" + } + }, + "placeholder": { + "search": "Filter op naam…" + }, + "title": "Geabonneerde Kanalen" + } + }, + "content": { + "Base": { + "link": { + "libraries": "Verzamelingen", + "tracks": "Nummers" + }, + "menu": { + "secondary": "Submenu" + }, + "title": "Content toevoegen" + }, + "Home": { + "button": { + "start": "Aan de slag" + }, + "description": { + "channel": { + "1": "Als je een muzikant of podcaster bent, zijn kanalen voor jou ontworpen!", + "2": "Deel je werk publiekelijk en krijg abonnees op Funkwhale, de Fediverse of enig welke podcasting applicatie." + }, + "follow": "Je kunt andere verzamelingen volgen voor toegang tot nieuwe muziek. Publiek toegankelijke verzamelingen kun je meteen volgen – voor privéverzamelingen heb je toestemming nodig van de beheerder.", + "upload": "Upload je persoonlijke muziekverzameling naar Funkwhale om ervan te genieten van waar dan ook, en om het te delen met vrienden en familie." + }, + "header": { + "channel": "Publiceer je werk in een kanaal", + "follow": "Externe verzamelingen volgen", + "upload": "Upload third-party content in je verzameling" + }, + "help": { + "uploadQuota": "Deze server biedt tot {quota} opslagruimte aan elke gebruiker." + }, + "title": "Inhoud toevoegen en beheren" + }, + "libraries": { + "Card": { + "button": { + "upload": "Uploaden" + }, + "label": { + "size": "Totale grootte van de bestanden in deze verzameling" + }, + "link": { + "details": "Bibliotheekdetails" + }, + "meta": { + "tracks": "{ count } nummer | { count } nummers" + } + }, + "FilesTable": { + "action": { + "delete": "Verwijderen", + "restartImport": "Importeren herstarten" + }, + "button": { + "showStatus": "Toon informatie over de uploadstatus van dit nummer" + }, + "empty": { + "noTracks": "Er zijn nog geen nummers aan deze bibliotheek toegevoegd" + }, + "label": { + "importStatus": "Importstatus", + "search": "Zoeken" + }, + "notApplicable": "N.B.", + "option": { + "status": { + "all": "Alles", + "draft": "Klad", + "failed": "Mislukt", + "finished": "Afgerond", + "pending": "In behandeling", + "skipped": "Overgeslagen" + } + }, + "ordering": { + "direction": { + "ascending": "Oplopend", + "descending": "Aflopend", + "label": "Sorteervolgorde" + }, + "label": "Volgorde" + }, + "pagination": { + "results": "Resultaten - { start }-{ end } van de { total }" + }, + "placeholder": { + "search": "Zoek op titel, artiest, album…" + }, + "table": { + "file": { + "header": { + "album": "Album", + "artist": "Artiest", + "duration": "Duur", + "importStatus": "Importstatus", + "size": "Grootte", + "title": "Titel", + "uploadDate": "Uploaddatum" + } + } + } + }, + "Form": { + "button": { + "confirm": "Bibliotheek verwijderen", + "create": "Bibliotheek maken", + "delete": "Verwijderen", + "update": "Verzameling bijwerken" + }, + "description": { + "library": "Verzamelingen helpen je bij het organiseren en delen van je muziekverzamelingen. Je kunt je eigen muziek uploaden naar Funkwhale en delen met vrienden en familie.", + "visibility": "Je kunt je verzameling delen met anderen, ongeacht hoe je de zichtbaarheid hebt ingesteld." + }, + "header": { + "failure": "Fout" + }, + "label": { + "description": "Omschrijving", + "name": "Naam", + "visibility": "Zichtbaarheid" + }, + "message": { + "libraryCreated": "Bibliotheek gecreëerd", + "libraryDeleted": "Bibliotheek verwijderd", + "libraryUpdated": "Bibliotheek bijgewerkt" + }, + "modal": { + "delete": { + "content": { + "warning": "De bibliotheek en al haar nummers worden verwijderd. Dit kan niet ongedaan gemaakt worden." + }, + "header": "Deze bibliotheek verwijderen?" + } + }, + "placeholder": { + "description": "Deze bibliotheek bevat mijn persoonlijke muziek. Ik hoop dat het je smaak is.", + "name": "Mijn geweldige bibliotheek" + } + }, + "Home": { + "empty": { + "noLibrary": "Het lijkt erop dat je geen bibliotheek hebt; tijd om er één te creëren." + }, + "header": { + "libraries": "Mijn verzamelingen" + }, + "link": { + "createLibrary": "Maak een nieuwe bibliotheek" + }, + "loading": { + "libraries": "Bibliotheken aan het laden…" + } + }, + "Quota": { + "button": { + "purge": "Leegmaken" + }, + "header": { + "currentUsage": "Huidig verbruik" + }, + "label": { + "currentUsage": "{ current } in gebruik; maximaal { max } toegestaan", + "errored": "Mislukte bestanden", + "pending": "In behandeling zijnde bestanden", + "skipped": "Overgeslagen bestanden" + }, + "link": { + "viewFiles": "Bestanden bekijken" + }, + "loading": { + "currentUsage": "Gebruiksgegevens aan het laden…" + }, + "modal": { + "purgeErrored": { + "content": { + "description": "Alle nummers die zijn geüpload maar niet volledig door de server verwerkt konden worden, worden verwijderd. De bestanden worden gewist en je krijgt de bijbehorende opslagruimte terug." + }, + "header": "Foutieve bestanden verwijderen?" + }, + "purgePending": { + "content": { + "description": "Alle nummers die geüpload maar nog niet verwerkt zijn, worden verwijderd. De bestanden worden gewist en je krijgt de bijbehorende opslagruimte terug." + }, + "header": "In behandeling zijnde bestanden verwijderen?" + }, + "purgeSkipped": { + "content": { + "description": "Alle nummers die bij het importeren zijn overgeslagen, worden verwijderd. De bestanden worden gewist en je krijgt de bijbehorende opslagruimte terug." + }, + "header": "Overgeslagen bestanden verwijderen?" + } + } + } + }, + "remote": { + "Card": { + "button": { + "cancel": "Trek volgverzoek in", + "follow": "Volgen", + "pending": "Openstaande volgverzoeken", + "unfollow": "Ontvolgen" + }, + "label": { + "scanFailure": "Probleem tijdens scannen", + "scanPartialSuccess": "Afgerond, maar met foutmeldingen", + "scanPending": "Nog te scannen", + "scanProgress": "Aan het scannen… ({ progress }%)", + "scanSuccess": "Gescand", + "sharingLink": "Link om te delen" + }, + "link": { + "scan": "Nu scannen", + "scanDetails": "Details" + }, + "message": { + "scanLaunched": "Scan begonnen", + "scanSkipped": "Scan overgeslagen (vorige scan was zeer recent)" + }, + "meta": { + "failedTracks": "Mislukte nummers:", + "lastUpdate": "Laatste update:", + "tracks": "{ count } nummer | { count } nummers" + }, + "modal": { + "unfollow": { + "content": { + "warning": "Als je deze verzameling ontvolgt, verlies je toegang tot haar inhoud." + }, + "header": "Wil je deze verzameling ontvolgen?" + } + }, + "tooltip": { + "private": "Deze bibliotheek is privé en goedkeuring van de eigenaar is nodig om de inhoud te benaderen", + "public": "Deze bibliotheek is publiek toegankelijk en je kunt de inhoud vrij benaderen" + } + }, + "Home": { + "button": { + "refresh": "Verversen" + }, + "description": { + "remoteLibraries": "Externe bibliotheken worden beheerd door andere gebruikers op het netwerk. Je kunt ze gebruiken als ze publiek toegankelijk zijn of je toegang hebt gekregen." + }, + "header": { + "knownLibraries": "Bekende verzamelingen", + "remoteLibraries": "Externe verzamelingen" + }, + "loading": { + "remoteLibraries": "Externe bibliotheken aan het laden…" + } + }, + "ScanForm": { + "button": { + "submit": "Zoekopdracht versturen" + }, + "header": { + "failure": "Externe bibliotheek kon niet opgehaald worden" + }, + "label": { + "search": "Zoek een externe bibliotheek" + }, + "placeholder": { + "url": "Voer de URL van een bibliotheek in" } } } }, - "Search": { - "label": { - "albums": "Albums", - "artists": "Artiesten", - "playlists": "Afspeellijsten", - "podcasts": "Podcasts", - "radios": "Radio's", - "series": "Series", - "tags": "Tags", - "tracks": "Nummers" + "library": { + "DetailAlbums": { + "empty": { + "follow": "Je moet wellicht deze verzameling volgen om de inhoud ervan te zien.", + "upload": "Deze bibliotheek is leeg. Je zou er iets naartoe moeten uploaden!" + } }, - "header": { - "search": "Zoeken", - "remote": "Zoek een extern object", - "rss": "Abonneren op een podcast RSS feed" + "DetailOverview": { + "empty": { + "follow": "Je moet wellicht deze verzameling volgen om de inhoud ervan te zien.", + "upload": "Deze bibliotheek is leeg. Je zou er iets naartoe moeten uploaden!" + } }, - "button": { - "submit": "Zoekopdracht versturen" + "DetailTracks": { + "empty": { + "follow": "Je moet wellicht deze verzameling volgen om de inhoud ervan te zien.", + "upload": "Deze bibliotheek is leeg. Je zou er iets naartoe moeten uploaden!" + } + }, + "Edit": { + "button": { + "accept": "Accepteren", + "reject": "Afkeuren" + }, + "empty": { + "noFollowers": "Niemand volgt deze bibliotheek" + }, + "header": { + "followers": "Volgers", + "libraryContents": "Bibliotheekinhoud" + }, + "loading": { + "followers": "Volgers aan het laden…" + }, + "table": { + "action": { + "header": { + "action": "Actie", + "date": "Datum", + "status": "Status", + "user": "Gebruiker" + }, + "status": { + "accepted": "Geaccepteerd", + "pending": "Wachtend op goedkeuring", + "rejected": "Afgekeurd" + } + } + } + }, + "LibraryBase": { + "button": { + "edit": "Bewerken", + "upload": "Uploaden" + }, + "description": { + "sharingLink": "Deel deze link met anderen zodat ze toegang tot je bibliotheek kunnen aanvragen, door de link te kopiëren naar hun zoekbalk." + }, + "label": { + "instance": "Beperkt", + "private": "Privé", + "public": "Publiek", + "sharingLink": "Link om te delen" + }, + "link": { + "albums": "Albums", + "artists": "Artiesten", + "domain": "Op { domain } bekijken", + "moderation": "Open in moderatie-interface", + "owner": "In het bezit van { username }", + "tracks": "Nummers" + }, + "meta": { + "tracks": "{ count } nummer | { count } nummers" + }, + "title": "Bibliotheek", + "tooltip": { + "instance": "Deze bibliotheek is beperkt tot gebruikers van deze pod", + "private": "Deze bibliotheek is privé en goedkeuring van de eigenaar is nodig om de inhoud te benaderen", + "public": "Deze bibliotheek is publiek toegankelijk en je kunt de inhoud vrij benaderen" + } } }, "playlists": { + "Detail": { + "button": { + "cancel": "Annuleren", + "confirm": "Afspeellijst verwijderen", + "delete": "Verwijderen", + "edit": "Bewerken", + "embed": "Embedden", + "playAll": "Alles afspelen", + "stopEdit": "Bewerken stoppen" + }, + "empty": { + "noTracks": "Er zitten nog geen nummers in deze afspeellijst" + }, + "header": { + "tracks": "Nummers" + }, + "meta": { + "tracks": "Afspeellijst met { count } nummer, door { username } | Afspeellijst met { count } nummers, door { username }" + }, + "modal": { + "delete": { + "content": { + "warning": "De afspeellijst wordt volledig verwijderd; dit kan niet ongedaan worden gemaakt." + }, + "header": "Weet je zeker dat je de afspeellijst \"{ playlist }\" wilt verwijderen?" + }, + "embed": { + "header": "Embed deze afspeellijst op je website" + } + }, + "title": "Afspeellijst" + }, "List": { + "button": { + "create": "Maak een afspeellijst", + "manage": "Beheer je afspeellijsten", + "search": "Zoeken" + }, + "empty": { + "noResults": "Geen resultaten gevonden voor je zoekopdracht" + }, + "header": { + "browse": "Afspeellijsten doorbladeren", + "playlists": "Afspeellijsten" + }, + "label": { + "search": "Zoeken" + }, "ordering": { "direction": { "ascending": "Oplopend", @@ -4159,58 +4484,11 @@ }, "label": "Volgorde" }, - "header": { - "browse": "Afspeellijsten doorbladeren", - "playlists": "Afspeellijsten" - }, - "button": { - "create": "Maak een afspeellijst", - "manage": "Beheer je afspeellijsten", - "search": "Zoeken" - }, - "placeholder": { - "search": "Voer een afspeellijsttitel in…" - }, - "empty": { - "noResults": "Geen resultaten gevonden voor je zoekopdracht" - }, "pagination": { "results": "Aantal resultaten per pagina" }, - "label": { - "search": "Zoeken" - } - }, - "Detail": { - "button": { - "cancel": "Annuleren", - "delete": "Verwijderen", - "confirm": "Afspeellijst verwijderen", - "edit": "Bewerken", - "embed": "Embedden", - "playAll": "Alles afspelen", - "stopEdit": "Bewerken stoppen" - }, - "modal": { - "delete": { - "header": "Weet je zeker dat je de afspeellijst \"{ playlist }\" wilt verwijderen?", - "content": { - "warning": "De afspeellijst wordt volledig verwijderd; dit kan niet ongedaan worden gemaakt." - } - }, - "embed": { - "header": "Embed deze afspeellijst op je website" - } - }, - "title": "Afspeellijst", - "meta": { - "tracks": "Afspeellijst met { count } nummer, door { username } | Afspeellijst met { count } nummers, door { username }" - }, - "empty": { - "noTracks": "Er zitten nog geen nummers in deze afspeellijst" - }, - "header": { - "tracks": "Nummers" + "placeholder": { + "search": "Voer een afspeellijsttitel in…" } } }, @@ -4220,287 +4498,22 @@ "confirm": "Radiostation verwijderen", "edit": "Bewerken…" }, - "modal": { - "delete": { - "header": "Weet je zeker dat je het radiostation \"{ radio }\" wilt verwijderen?", - "content": { - "warning": "De radio wordt volledig verwijderd; dit kan niet ongedaan worden gemaakt." - } - } - }, "empty": { "noTracks": "Er zijn nog geen nummers aan deze radio toegevoegd" }, - "title": "Radio", "header": { "tracks": "Nummers" - } - } - } - }, - "composables": { - "audio": { - "usePlayOptions": { - "addToQueueMessage": "{ count } nummer toegevoegd aan je wachtrij | { count } nummers toegevoegd aan je wachtrij" - } - }, - "locale": { - "useSharedLabels": { - "scopes": { - "libraries": { - "description": "Toegang tot audiobestanden, bibliotheken, artiesten, albums, en nummers", - "label": "Bibliotheek en uploads" - }, - "filters": { - "description": "Toegang tot contentfilters", - "label": "Inhoudsfilters" - }, - "profile": { - "description": "Toegang tot je emailadres, gebruikersnaam en profiel", - "label": "Profiel" - }, - "edits": { - "description": "Toegang tot bewerkingen", - "label": "Wijzigingen" - }, - "follows": { - "description": "Toegang tot je volglijst", - "label": "Volgingen" - }, - "listenings": { - "description": "Toegang tot je luistergeschiedenis", - "label": "Luisterbeurten" - }, - "reports": { - "description": "Toegang tot moderatierapporten", - "label": "Meldingen" - }, - "notifications": { - "description": "Toegang tot notificaties", - "label": "Meldingen" - }, - "playlists": { - "description": "Toegang tot afspeellijsten", - "label": "Afspeellijsten" - }, - "radios": { - "description": "Toegang tot radio's", - "label": "Radio's" - }, - "security": { - "description": "Toegang tot beveiligingsinstellingen zoals wachtwoord en authorisaties", - "label": "Beveiliging" - }, - "favorites": { - "label": "Favorieten" - } }, - "filters": { - "accessedDate": "Benaderd op", - "albumTitle": "Albumnaam", - "artistName": "Artiestnaam", - "bitrate": "Bitrate", - "creationDate": "Toegevoegd", - "domain": "Domein", - "duration": "Duur", - "expirationDate": "Vervaldatum", - "firstSeen": "Eerst gezien-datum", - "followers": "Volgers", - "itemsCount": "Items", - "lastActivity": "Laatste activiteit", - "lastSeen": "Datum laatst gezien", - "modificationDate": "Bewerkt op", - "name": "Naam", - "receivedMessages": "Ontvangen berichten", - "releaseDate": "Publicatiedatum", - "dateJoined": "Geregistreerd op", - "size": "Grootte", - "trackTitle": "Naam van nummer", - "uploads": "Uploads", - "username": "Gebruikersnaam", - "users": "Gebruikers" - }, - "fields": { - "privacyLevel": { - "label": "Zichtbaarheid van activiteit", - "help": "Bepaal de zichtbaarheid van je activiteit", - "shortChoices": { - "public": "Iedereen", - "instance": "Server", - "private": "Privé" + "modal": { + "delete": { + "content": { + "warning": "De radio wordt volledig verwijderd; dit kan niet ongedaan worden gemaakt." }, - "choices": { - "instance": "Iedereen op deze server", - "public": "Iedereen, op alle servers", - "private": "Niemand, behalve ik" - } - }, - "summary": { - "label": "Bio" - }, - "reportType": { - "label": "Categorie", - "choices": { - "illegalContent": "Illegale inhoud", - "invalidMetadata": "Ongeldige metadata", - "offensiveContent": "Aanstootgevende inhoud", - "other": "Overig", - "takedownRequest": "Verzoek tot uitschakelen" - } - }, - "importStatus": { - "label": "Klik voor meer informatie over het importeerproces van deze upload", - "choices": { - "draft": { - "label": "Klad", - "help": "Dit nummer is geüpload, maar is nog niet ingepland om verwerkt te worden door de server" - }, - "errored": { - "label": "Mislukt", - "help": "Dit nummer kon niet worden verwerkt. Controleer dat het goed getagd is" - }, - "finished": { - "label": "Afgerond", - "help": "Geïmporteerd" - }, - "pending": { - "label": "In behandeling", - "help": "Nummer is geüpload, maar is nog niet verwerkt door de server" - }, - "skipped": { - "label": "Overgeslagen", - "help": "Nummer is al aanwezig in één van je bibliotheken" - } - } - }, - "contentCategory": { - "label": "Inhoudcategorie", - "choices": { - "music": "Muziek", - "other": "Overig", - "podcast": "Podcast" - } + "header": "Weet je zeker dat je het radiostation \"{ radio }\" wilt verwijderen?" } - } + }, + "title": "Radio" } - }, - "moderation": { - "useReport": { - "account": { - "typeLabel": "Account" - }, - "album": { - "typeLabel": "Album", - "label": "Dit album rapporteren…" - }, - "artist": { - "typeLabel": "Artiest", - "label": "Deze artiest rapporteren…" - }, - "channel": { - "typeLabel": "Kanaal", - "label": "Dit kanaal rapporteren…" - }, - "library": { - "typeLabel": "Bibliotheek", - "label": "Deze bibliotheek rapporteren…" - }, - "playlist": { - "typeLabel": "Afspeellijst", - "label": "Deze afspeellijst rapporteren…" - }, - "track": { - "label": "Dit nummer rapporteren…", - "typeLabel": "Nummer" - } - }, - "useReportConfigs": { - "account": { - "label": "Account", - "summary": "Bio" - }, - "album": { - "label": "Album", - "releaseDate": "Publicatiedatum", - "title": "Titel" - }, - "artist": { - "label": "Artiest" - }, - "channel": { - "label": "Kanaal" - }, - "track": { - "copyright": "Copyright", - "license": "Licentie", - "position": "Positie", - "title": "Titel", - "label": "Nummer" - }, - "creationDate": { - "label": "Toegevoegd" - }, - "library": { - "description": "Omschrijving", - "label": "Bibliotheek" - }, - "musicbrainzId": { - "label": "MusicBrainz ID" - }, - "name": { - "label": "Naam" - }, - "playlist": { - "label": "Afspeellijst" - }, - "tags": { - "label": "Tags" - }, - "visibility": { - "label": "Zichtbaarheid" - } - }, - "useEditConfigs": { - "track": { - "copyright": "Copyright", - "license": "Licentie", - "position": "Positie", - "title": "Titel" - }, - "cover": { - "label": "Kaft" - }, - "description": { - "label": "Omschrijving" - }, - "artist": { - "name": "Naam" - }, - "album": { - "releaseDate": "Publicatiedatum", - "title": "Titel" - }, - "tags": { - "label": "Tags" - } - } - }, - "useThemeList": { - "darkTheme": "Donker", - "lightTheme": "Licht" - } - }, - "init": { - "serviceWorker": { - "newAppVersion": "Er is een nieuwe versie van de app beschikbaar.", - "actions": { - "later": "Later", - "update": "Update" - } - }, - "axios": { - "rateLimitDelay": "Je hebt te veel verzoeken ingediend en wordt tijdelijk tegengehouden. Probeer het nog eens over { delay }", - "rateLimitLater": "Je hebt te veel verzoeken ingediend en wordt tijdelijk tegengehouden. Probeer het later nog eens" } } } diff --git a/front/src/locales/pt_BR.json b/front/src/locales/pt_BR.json index 632b63177..f23243903 100644 --- a/front/src/locales/pt_BR.json +++ b/front/src/locales/pt_BR.json @@ -1,1698 +1,296 @@ { + "App": { + "loading": "Carregando..." + }, "components": { - "auth": { - "Authorize": { - "header": { - "access": "{ app } quer acessar sua conta Funkwhale", - "authorize": "Permitir aplicativo de terceiros", - "authorizeFailure": "Erro ao permitir aplicativo", - "fetchFailure": "Erro ao ver dados do aplicativo", - "allScopes": "Acesso total", - "readOnly": "Apenas leitura", - "writeOnly": "Apenas escrita" - }, - "title": "Permitir aplicativo", - "button": { - "authorize": "Permitir { app }" - }, - "help": { - "pasteCode": "Copie e cole no aplicativo o seguinte código:", - "redirect": "Você será redirecionado para { 0 }", - "copyCode": "Você verá um código para copiar e colar no aplicativo." - }, - "message": { - "unknownPermissions": "O aplicativo também está solicitando as seguintes permissões desconhecidas:" - } - }, - "SubsonicTokenForm": { - "message": { - "accessDisabled": "Acesso desativado", - "passwordUpdated": "Senha atualizada", - "unavailable": "A API Subsonic não está disponível nesta instância do Funkwhale." - }, - "button": { - "confirmDisable": "Desativar acesso", - "disable": "Desativar acesso Subsonic", - "newPassword": "Solicitar uma nova senha", - "confirmNewPassword": "Solicitar uma senha" - }, - "modal": { - "disableSubsonic": { - "header": "Desativar acesso à API Subsonic?", - "content": { - "warning": "Isso vai desativar completamente o acesso á API Subsonic usada na conta." - } - }, - "newPassword": { - "header": "Solicitar uma nova senha da API Subsonic?", - "content": { - "warning": "Isso fará com que sua conta saia de todos os dispositivos que usem a senha atual." - } - } - }, - "link": { - "apps": "Aprenda a usar o Funkwhale em outros aplicativos" - }, - "header": { - "error": "Erro", - "subsonic": "Senha da API Subsonic" - }, - "description": { - "subsonic": { - "paragraph1": "O Funkwhale funciona em outros reprodutores de música compatíveis com a API Subsonic.", - "paragraph3": "Porém, para acessar o Funkwhale a partir desses clientes você precisa de uma senha que pode ser configurada abaixo.", - "paragraph2": "Você pode usá-los para curtir sua lista no modo offline, em um dispositivo móvel, por exemplo." - } - }, - "label": { - "subsonicField": "Senha da API Subsonic" - } - }, - "ApplicationEdit": { - "label": { - "accessToken": "Ver edições", - "appId": "ID do aplicativo", - "appSecret": "Segredo do aplicativo" - }, - "header": { - "appDetails": "Detalhes do aplicativo", - "editApp": "Editar aplicativo" - }, - "help": { - "appDetails": "A ID e o segredo do aplicativo são valores realmente sensíveis e devem ser tratados como senhas. Não compartilhe isso com mais ninguém." - }, - "link": { - "settings": "Voltar à configurações" - }, - "title": "Editar aplicativo" - }, - "Settings": { - "title": "Configurações da conta", - "header": { - "accountSettings": "Configurações da conta", - "authorizedApps": "Aplicativos permitidos", - "avatar": "Imagem de perfil", - "changeEmail": "Confirmar seu endereço de e-mail", - "changePassword": "Alterar minha senha", - "contentFilters": "Filtros", - "deleteAccount": "Excluir minha conta", - "hiddenArtists": "Artistas ocultados", - "settingsUpdated": "Configurações atualizadas", - "emailFailure": "Não foi possível confirmar seu endereço de e-mail", - "accountFailure": "Não foi possível excluir sua conta", - "noApps": "Sem aplicativos.", - "noPersonalApps": "Sem aplicativos configurados.", - "yourApps": "Seus aplicativos", - "avatarFailure": "Não foi possível salvar imagem de perfil", - "passwordFailure": "Não foi possível alterar senha", - "updateFailure": "Não foi possível atualizar suas configurações" - }, - "table": { - "authorizedApps": { - "header": { - "application": "Aplicativo", - "permissions": "Permissões" - } - }, - "yourApps": { - "header": { - "application": "Aplicativo", - "creationDate": "Data de criação", - "scopes": "Campos" - } - }, - "artists": { - "header": { - "creationDate": "Data de criação", - "name": "Nome" - } - } - }, - "label": { - "avatar": "Avatar", - "currentPassword": "Nova senha", - "newEmail": "Endereço de e-mail", - "newPassword": "Nova senha", - "password": "Senha" - }, - "button": { - "password": "Alterar senha", - "delete": "Excluir", - "deleteAccountConfirm": "Excluir minha conta", - "deleteAccount": "Excluir minha conta…", - "disableSubsonic": "Desativar acesso", - "edit": "Editar", - "refresh": "Atualizar", - "remove": "Remover", - "removeApp": "Excluir aplicativo", - "revoke": "Revogar", - "revokeAccess": "Revogar acesso", - "update": "Atualizar", - "updateSettings": "Atualizar configurações" - }, - "modal": { - "changePassword": { - "header": "Alterar sua senha?", - "content": { - "warning": "Alterar a senha terá as seguintes consequências:", - "logout": "Você sairá desta conta e precisará entrar novamente", - "subsonic": "Sua senha do Subsonic será alterada para uma nova aleatória, e sua conta sairá de dispositivos que usaram a senha antiga do Subsonic" - } - }, - "deleteAccount": { - "header": "Você deseja excluir sua conta?", - "content": { - "warning": "Esta ação é irreversível e excluirá permanentemente seus dados dos nossos servidores. Você sairá da sua conta imediatamente." - } - }, - "deleteApp": { - "header": "Excluir aplicativo \"{ application }\"?", - "content": { - "warning": "Isso excluirá permanentemente seus aplicativos e todos os tokens associados." - } - }, - "revokeApp": { - "header": "Revogar acesso do aplicativo \"{ application }\"?", - "content": { - "warning": "Isso impedirá que esse aplicativo acesse o serviço em seu nome." - } - } - }, - "description": { - "changePassword": { - "paragraph1": "A alteração de sua senha também modificará - caso use - a senha da API Subsonic.", - "paragraph2": "Você precisará atualizar a senha nos clientes que usam a senha atual." - }, - "contentFilters": "Filtros ajudam você a ocultar o que você não quer ver no Funkwhale.", - "authorizedApps": "Esta é a lista de aplicativos que tem acesso aos dados da sua conta.", - "yourApps": "Esta é a lista de aplicativos que você criou.", - "deleteAccount": "Você pode irreversivelmente excluir sua conta e todos os dados vinculados à ela usando o formulário abaixo. Será solicitado uma confirmação." - }, - "help": { - "noApps": "Se você permitir que aplicativos de terceiros acessem seus dados, eles aparecerão aqui.", - "changePassword": "Por favor verifique novamente se a senha está certa", - "noPersonalApps": "Crie um para integrar o Funkwhale com aplicativos de terceiros." - }, - "link": { - "managePlugins": "Gerenciar listas", - "newApp": "Criar novo aplicativo" - }, - "warning": { - "deleteAccount": "Sua conta será excluída de nossos servidores em poucos minutos. Nós também notificaremos outros servidores que podem ter uma cópia de algum dado seu para que possam prosseguir com a exclusão. Por favor, note que alguns desses servidores podem estar offline ou recusando fazê-lo." - }, - "message": { - "currentEmail": "Você entrou como { username }", - "confirmDelete": "Sua solicitação de exclusão foi enviada, logo mais sua conta e seus conteúdos serão excluídos" - } - }, - "Logout": { - "header": { - "confirm": "Tem certeza de que deseja sair?", - "unauthenticated": "Você entrou como { username }" - }, - "link": { - "login": "Entrar" - }, - "title": "Sair", - "button": { - "logout": "Sim, quero sair!" - }, - "message": { - "loggedIn": "Você entrou como { username }" - } - }, - "ApplicationNew": { - "link": { - "settings": "Voltar à configurações" - }, - "title": "Criar novo aplicativo" - }, - "ApplicationForm": { - "label": { - "scopes": { - "description": "Verificar \"Ler\" e \"Escrever\" implica em verificar também todos os seus dependentes.", - "read": { - "label": "Ler", - "description": "Apenas lê seus dados de usuário" - }, - "write": { - "label": "Escrita", - "description": "Apenas escreve seus dados de usuário" - } - }, - "name": "Nome", - "redirectUri": "Redirecionar link" - }, - "button": { - "create": "Criar aplicativo", - "update": "Atualizar aplicativo" - }, - "help": { - "redirectUri": "Use \"urn:ietf:wg:oauth:2.0:oob\" como link de redirecionamento se seu aplicativo não está na Web." - }, - "header": { - "failure": "Não foi possível salvar as alterações" - } - }, - "LoginForm": { - "link": { - "createAccount": "Criar conta", - "resetPassword": "Redefinir sua senha" - }, - "placeholder": { - "username": "Insira seu nome de usuário ou e-mail" - }, - "button": { - "login": "Entrada" - }, - "label": { - "password": "Senha", - "username": "Nome de usuário ou e-mail" - }, - "help": { - "invalidCredentials": "Verifique novamente se usuário/senha estão corretos e confirme se verificou seu e-mail." - }, - "header": { - "loginFailure": "Não foi possível entrar" - } - }, - "SignupForm": { - "button": { - "create": "Criar minha conta" - }, - "label": { - "email": "Endereço de e-mail", - "password": "Senha", - "username": "Nome de usuário" - }, - "placeholder": { - "email": "Confirmar seu endereço de e-mail", - "invitation": "Insira seu código de convite (não diferencia maiúsculas de minúsculas)", - "username": "Insira seu nome de usuário" - }, - "header": { - "login": "Entrar com sua conta Funkwhale", - "signupFailure": "Não foi possível criar conta." - }, - "message": { - "registrationClosed": "Cadastros estão fechados nesta instância, você precisa de um código de convite para criar uma conta." - } - }, - "Plugin": { - "link": { - "documentation": "Documentação" - }, - "label": { - "pluginEnabled": "Ativado", - "library": "Biblioteca" - }, - "header": { - "failure": "Erro ao salvar configurações" - }, - "button": { - "save": "Salvar", - "scan": "Varredura completa" - } - } - }, "About": { - "stat": { - "activeUsers": "{ n } usuário ativo | { n } usuários ativos", - "hoursOfMusic": "{ n } hora de música | { n } horas de músicas" + "description": { + "findApp": "Use Funkwhale em outros dispositivos com nossos aplicativos", + "funkwhale": "Este pod roda Funkwhale, um projeto comunitário que permite compartilhar músicas e áudios numa rede aberta e descentralizada.", + "publicContent": "Ouça álbuns públicos e listas compartilhados neste pod", + "quota": "Os usuários deste pod também ganham { quota } de espaço grátis para compartilhar o próprio conteúdo!", + "signup": "Crie uma conta agora para favoritar a faixa, criar listas, explorar novos conteúdos e muito mais!" }, - "title": "Sobre", "header": { "aboutPod": "Sobre este pod", - "publicContent": "Explorar conteúdo público", "findApp": "Encontrar outro pod", + "funkwhale": "Plataforma social para curtir e compartilhar música", + "publicContent": "Explorar conteúdo público", "signup": "Criar conta" }, + "help": { + "closedRegistrations": "As inscrições estão encerradas neste pod. Você pode se inscrever em outro pod usando o link abaixo." + }, "link": { "findOtherPod": "Encontrar outro pod", "learnMore": "Saiba mais" }, - "description": { - "funkwhale": "Este pod roda Funkwhale, um projeto comunitário que permite compartilhar músicas e áudios numa rede aberta e descentralizada.", - "publicContent": "Ouça álbuns públicos e listas compartilhados neste pod", - "signup": "Crie uma conta agora para favoritar a faixa, criar listas, explorar novos conteúdos e muito mais!", - "findApp": "Use Funkwhale em outros dispositivos com nossos aplicativos", - "quota": "Os usuários deste pod também ganham { quota } de espaço grátis para compartilhar o próprio conteúdo!" + "message": { + "greeting": "Olá, {username}", + "loggedIn": "Você já está autenticado!" }, "placeholder": { "noDescription": "Sem descrição." - } - }, - "Home": { + }, "stat": { "activeUsers": "{ n } usuário ativo | { n } usuários ativos", "hoursOfMusic": "{ n } hora de música | { n } horas de músicas" }, - "header": { - "aboutFunkwhale": "Sobre o Funkwhale", - "about": "Sobre este pod Funkwhale", - "contact": "Contato", - "login": "Entrar", - "newAlbums": "Álbuns adicionados recentemente", - "signup": "Criar conta", - "statistics": "Estatísticas", - "links": "Links úteis", - "welcome": "Bem-vindo(a) ao { podName }!" - }, - "link": { - "publicContent": { - "label": "Explorar conteúdo público", - "description": "Ouça álbuns públicos e listas compartilhados neste pod" - }, - "userGuides": { - "description": "Descubra tudo o que você precisa saber sobre Funkwhale e suas funcionalidades", - "label": "Guias do usuário" - }, - "findOtherPod": "Encontrar outro pod", - "learnMore": "Saiba mais", - "mobileApps": { - "label": "Aplicativos móveis", - "description": "Use Funkwhale em outros dispositivos com nossos aplicativos" - }, - "rules": "Regras do servidor", - "viewMore": "Ver mais…", - "funkwhale": "Visite funkwhale.audio" - }, - "description": { - "funkwhale": { - "paragraph2": "Funkwhale é gratuito e desenvolvido por uma comunidade maravilhosa de voluntários.", - "paragraph1": "Este pod roda Funkwhale, um projeto comunitário que permite compartilhar músicas e áudios numa rede aberta e descentralizada." - }, - "signup": "Crie uma conta agora para favoritar a faixa, criar listas, explorar novos conteúdos e muito mais!", - "quota": "Os usuários deste pod também ganham { quota } de espaço grátis para compartilhar o próprio conteúdo!" - }, - "title": "Início", - "placeholder": { - "noDescription": "Sem descrição." - } - }, - "audio": { - "artist": { - "Card": { - "meta": { - "episodes": "{ n } episódio | { n } episódios", - "tracks": "{ n } faixa | { n } faixas" - } - }, - "Widget": { - "button": { - "more": "Mostrar mais" - } - } - }, - "ChannelCard": { - "meta": { - "episodes": "{ n } episódio | { n } episódios", - "tracks": "{ n } faixa | { n } faixas" - }, - "title": "Atualizado em { date }" - }, - "ChannelSerieCard": { - "meta": { - "episodes": "{ n } episódio | { n } episódios" - } - }, - "album": { - "Card": { - "meta": { - "tracks": "{ n } faixa | { n } faixas" - } - }, - "Widget": { - "button": { - "more": "Mostrar mais" - } - } - }, - "Player": { - "meta": { - "position": "{ index } de { length }" - }, - "header": { - "player": "Atalhos do reprodutor de áudio" - }, - "label": { - "clearQueue": "Limpar fila", - "expandQueue": "Expandir fila", - "addArtistContentFilter": "Ocultar conteúdo deste(a) artista…", - "loopingDisabled": "Repetição desativada. Clique para repetir uma única faixa.", - "loopingSingle": "Repetindo uma única faixa. Clique para repetir a fila inteira.", - "loopingWholeQueue": "Repetindo a fila inteira. Clique para desativar a repetição.", - "audioPlayer": "Reprodutor de mídia", - "mute": "Silenciar", - "nextTrack": "Próxima faixa", - "pause": "Pausado", - "play": "Tocar", - "previousTrack": "Faixa anterior", - "shuffleQueue": "Embaralhar sua fila", - "unmute": "Desfazer silêncio" - } - }, - "PlayButton": { - "button": { - "addToQueue": "Adicionar à fila atual", - "addToPlaylist": "Adicionar à lista…", - "episodeDetails": "Detalhes do episódio", - "hideArtist": "Ocultar conteúdo deste(a) artista", - "discretePlay": "Tocar", - "playAlbum": "Tocar todos os álbuns", - "playArtist": "Lista", - "playNext": "Tocar próxima", - "playNow": "Tocar agora", - "playPlaylist": "Limpar lista", - "startRadio": "Tocar músicas parecidas", - "playTrack": "Tocar faixa", - "playTracks": "Tocar faixa", - "report": "Denunciar…", - "trackDetails": "Detalhes da faixa" - }, - "title": { - "more": "Mais…", - "unavailable": "Esta faixa não está disponível em nenhuma biblioteca à qual você possa ver" - } - }, - "podcast": { - "Modal": { - "button": { - "addToFavorites": "Favoritar", - "addToPlaylist": "Adicionar à lista…", - "addToQueue": "Adicionar à fila", - "episodeDetails": "Detalhes do episódio", - "playNext": "Tocar próxima", - "playNow": "Tocar agora", - "startRadio": "Tocar faixa", - "removeFromFavorites": "Desfavoritar", - "trackDetails": "Detalhes da faixa", - "albumDetails": "Novo álbum", - "artistDetails": "Artistas ocultados", - "channelDetails": "Canal do artista", - "seriesDetails": "Novo álbum" - } - }, - "MobileRow": { - "button": { - "actions": "Mostrar notificações lidas" - } - } - }, - "track": { - "Modal": { - "button": { - "addToFavorites": "Favoritar", - "addToPlaylist": "Adicionar à lista…", - "addToQueue": "Adicionar à fila", - "episodeDetails": "Detalhes do episódio", - "playNext": "Tocar próxima", - "playNow": "Tocar agora", - "startRadio": "Tocar faixa", - "removeFromFavorites": "Desfavoritar", - "trackDetails": "Detalhes da faixa", - "albumDetails": "Novo álbum", - "artistDetails": "Artistas ocultados", - "channelDetails": "Canal do artista", - "seriesDetails": "Novo álbum" - } - }, - "Table": { - "table": { - "header": { - "album": "Álbum", - "artist": "Artista", - "title": "Título" - } - } - }, - "Widget": { - "button": { - "more": "Mostrar mais" - } - }, - "MobileRow": { - "button": { - "actions": "Mostrar notificações lidas" - } - } - }, - "SearchBar": { - "label": { - "album": "Álbum", - "artist": "Artista", - "category": { - "federation": "Federação" - }, - "search": "Pesquisar músicas", - "tag": "Tag", - "track": "Faixa" - }, - "placeholder": { - "search": "Pesquisar por artistas, álbuns, faixas…" - }, - "link": { - "fediverse": "Pesquisar no fediverso" - } - }, - "Search": { - "header": { - "albums": "Álbuns", - "artists": "Artistas", - "search": "Pesquisar músicas" - }, - "placeholder": { - "search": "Artista, álbum, faixa…" - }, - "empty": { - "noAlbums": "Álbum não encontrado", - "noArtists": "Artista não encontrado" - } - }, - "ChannelForm": { - "label": { - "discography": "Discografia do artista", - "category": "Categoria", - "image": "Foto do canal", - "description": "Descrição", - "language": "Idioma", - "name": "Nome", - "email": "Confirmar seu endereço de e-mail", - "owner": "Dono(a)", - "subcategory": "Subcategoria", - "tags": "Tags" - }, - "placeholder": { - "name": "Nome do canal", - "username": "nomedocanalpô" - }, - "header": { - "error": "Erro ao salvar canal" - }, - "help": { - "podcast": "Armazene seus episódios e mantenha sua comunidade atualizada." - }, - "loader": { - "loading": "Carregando" - } - }, - "LibraryFollowButton": { - "button": { - "cancel": "Cancelar solicitação para seguir", - "follow": "Seguir", - "unfollow": "Deixar de seguir" - } - }, - "EmbedWizard": { - "button": { - "copy": "Copiar" - }, - "help": { - "embed": "Copie e cole este código HTML em seu site", - "width": "Deixar vazio para um widget responsivo", - "anonymous": "Entre em contato com seus administradores e peça que atualizem a configuração correspondente." - }, - "label": { - "embed": "Código para incorporar", - "height": "Altura do widget", - "width": "Largura do widget" - }, - "header": { - "preview": "Prévia" - }, - "warning": { - "anonymous": "O compartilhamento não funcionará porque este pod não permite que usuários anônimos vejam o conteúdo." - }, - "message": { - "copy": "Texto copiado para a área de transferência!" - } - }, - "VolumeControl": { - "button": { - "mute": "Silenciar", - "unmute": "Desfazer silêncio" - } - }, - "ChannelSeries": { - "button": { - "showMore": "Mostrar mais" - }, - "help": { - "subscribe": "Pode ser necessário se inscrever neste canal para ver o seu conteúdo." - } - }, - "ChannelsWidget": { - "button": { - "showMore": "Mostrar mais" - } - }, - "ChannelEntries": { - "help": { - "subscribe": "Pode ser necessário se inscrever neste canal para ver o seu conteúdo." - } - } - }, - "library": { - "AlbumBase": { - "meta": { - "episodes": "{ n } episódio | { n } episódios", - "tracks": "{ n } faixa | { n } faixas" - }, - "link": { - "addDescription": "Adicionar descrição…" - } - }, - "ArtistBase": { - "meta": { - "tracks": "{ n } faixa em | { n } faixas em", - "albums": "{ n } álbuns | { n } álbuns" - }, - "title": "Artista", - "button": { - "cancel": "Cancelar", - "edit": "Editar", - "embed": "Incorporar", - "more": "Mais…", - "play": "Tocar todos os álbuns" - }, - "modal": { - "embed": { - "header": "Incorpore a obra do(a) artista em seu site" - } - }, - "link": { - "moderation": "Abrir interface de moderação", - "discogs": "Pesquisar em Discogs", - "wikipedia": "Pesquisar no Wikipedia", - "django": "Ver administração Django", - "domain": "Encaminhar para { domain}", - "musicbrainz": "Ver em MusicBrainz" - } - }, - "radios": { - "Builder": { - "header": { - "matches": "{ n } faixa encontrada com os filtros | { n } faixas encontradas com os filtros", - "builder": "Criador", - "created": "Rádio criada", - "updated": "Rádio atualizada" - }, - "table": { - "filter": { - "header": { - "actions": "Ações", - "candidates": "Candidatos(as)", - "config": "Configuração", - "exclude": "Excluir", - "name": "Nome do filtro" - } - } - }, - "button": { - "filter": "Adicionar filtro", - "save": "Salvar" - }, - "label": { - "filter": "Adicionar filtros para personalizar sua rádio", - "description": "Descrição", - "public": "Mostrar publicamente", - "name": "Nome da Rádio" - }, - "placeholder": { - "description": "Minha incrível descrição", - "name": "Minha incrível rádio" - }, - "title": "Criador de rádio", - "option": { - "filter": "Selecione um filtro" - }, - "description": { - "builder": "Você pode usar esta interface para criar sua própria rádio personalizada, que tocará faixas de sua escolha." - } - }, - "Filter": { - "cancelButton": "Cancelar", - "excludeLabel": "Excluir", - "removeButton": "Remover", - "matchingTracksModalHeader": "Faixas encontradas" - } - }, - "FileUpload": { - "tooltip": { - "network": "Ocorreu um erro de rede ao enviar este arquivo", - "size": "Não é possível enviar este arquivo, certifique-se de que não é grande demais", - "extension": "Formato de arquivo inválido. Certifique-se de estar enviando um arquivo de áudio. As extensões suportadas são { extensions }", - "denied": "Não enviado, certifique-se de que o arquivo não é muito grande e você não atingiu sua cota", - "timeout": "Tempo de envio esgotado, por favor, tente novamente" - }, - "table": { - "upload": { - "header": { - "actions": "Ações", - "filename": "Nome do arquivo", - "size": "Tamanho", - "status": "Status" - }, - "status": { - "pending": "Pendente", - "uploaded": "Enviado", - "uploading": "Enviando…" - } - } - }, - "button": { - "cancel": "Cancelar", - "retry": "Reenviar" - }, - "label": { - "uploadWidget": "Clique para selecionar arquivos para enviar ou arraste e solte arquivos ou pastas", - "remainingSpace": "Espaço de armazenamento restante", - "extensions": "Extensões suportadas: { extensions }" - }, - "header": { - "failure": "Erro ao enviar denúncia", - "status": "Importar status", - "server": "Importar status" - }, - "link": { - "processing": "Processando", - "uploading": "Enviando", - "picard": "Recomendamos o uso do Picard para este propósito." - }, - "description": { - "import": "Reiniciar importação" - }, - "message": { - "local": { - "format": "Os arquivos de áudio que você está enviando estão com as tags adequadas.", - "tag": "Os arquivos de áudio que você está enviando estão com as tags adequadas.", - "message": "Você está prestes a enviar músicas para sua biblioteca. Antes de continuar, certifique-se de que:", - "copyright": "Não envie conteúdo protegido por direitos autorais em uma biblioteca pública porque você pode estar violando a lei" - } - } - }, - "EditForm": { - "placeholder": { - "summary": "Ocorreu um erro ao salvar suas alterações." - }, - "button": { - "cancel": "Cancelar", - "clear": "Limpar", - "reset": "Redefinir para o valor inicial", - "showUnreviewed": "Mostrar apenas edições não revisadas", - "showAll": "Mostrar todas as edições", - "submit": "Enviar e aplicar edição", - "new": "Enviar outra edição", - "suggest": "Enviar sugestão" - }, - "header": { - "failure": "Erro ao editar", - "recentEdits": "Edições recentes", - "unreviewed": "Edições recentes esperando revisão", - "success": "Sua edição foi enviada." - }, - "notApplicable": "N/A", - "empty": { - "suggestEdit": "Sugira uma alteração usando o formulário abaixo." - }, - "label": { - "summary": "Resumo (opcional)" - }, - "message": { - "noPermission": "Você não tem permissão para editar este objeto, mas pode sugerir alterações. Depois de enviadas, as sugestões serão revisadas antes da aprovação." - } - }, - "Albums": { - "link": { - "addMusic": "Adicionar música" - }, - "title": "Álbuns", - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "header": { - "browse": "Explorando álbums" - }, - "placeholder": { - "search": "Insira o título do álbum…" - }, - "empty": { - "noResults": "Nenhum álbum encontrado" - }, - "pagination": { - "results": "Resultados por página" - }, - "label": { - "search": "Pesquisar", - "tags": "Tags" - }, - "button": { - "search": "Pesquisar" - } - }, - "Artists": { - "button": { - "upload": "Adicionar música", - "search": "Pesquisar" - }, - "label": { - "search": "Nome do(a) artista", - "tags": "Tags" - }, - "title": "Artistas", - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "header": { - "browse": "Explorando artistas" - }, - "empty": { - "noResults": "Nenhum artista encontrado" - }, - "pagination": { - "results": "Resultados por página" - }, - "placeholder": { - "search": "Pesquisar…" - } - }, - "TrackDetail": { - "table": { - "release": { - "album": "Álbum", - "artist": "Artista", - "copyright": "Direitos autorais", - "license": "Licença" - }, - "track": { - "bitrate": { - "label": "Taxa de bits" - }, - "codec": "Codec", - "downloads": "Baixar", - "duration": "Duração", - "size": "Tamanho" - } - }, - "header": { - "episode": "Detalhes do episódio", - "library": "Bibliotecas remotas", - "playlists": "Listas remotas", - "release": "Detalhes de lançamento", - "track": "Detalhes da faixa" - }, - "notApplicable": "N/A", - "description": { - "library": "Esta faixa está presente nas seguintes bibliotecas:" - }, - "link": { - "musicbrainz": "Ver em MusicBrainz" - } - }, - "TagDetail": { - "link": { - "albums": "Álbuns", - "artists": "Artistas", - "moderation": "Abrir interface de moderação" - }, - "header": { - "channels": "Canais", - "tracks": "Faixas" - } - }, - "ArtistDetail": { - "header": { - "album": "Álbuns deste artista", - "track": "Faixas deste artista", - "library": "Bibliotecas do usuário" - }, - "button": { - "more": "Ver mais…", - "filter": "Excluir filtro" - }, - "link": { - "filter": "Revisar filtros" - }, - "description": { - "library": "Este artista está presente nas seguintes bibliotecas:" - }, - "message": { - "filter": "Você ocultou conteúdos deste(a) artista." - } - }, - "ImportStatusModal": { - "error": { - "importFailure": "Ocorreu um erro durante o envio. Veja mais informações sobre abaixo.", - "unknownError": { - "message": "Ocorreu um erro desconhecido", - "label": "Erro desconhecido" - }, - "invalidMetadata": { - "label": "Metadado inválido", - "message": "Os metadados incluídos no arquivo são inválidos ou alguns campos obrigatórios estão faltando." - } - }, - "button": { - "close": "Fechar" - }, - "table": { - "error": { - "debug": "Informação de depuração", - "errorDetail": "Detalhe do erro", - "errorType": "Tipo do erro", - "help": "Procurar ajuda" - } - }, - "header": { - "importDetail": "Detalhe da importação" - }, - "link": { - "support": "Abra um tópico de suporte (inclua informação de depuração na mensagem)", - "documentation": "Leia nossa documentação para este erro" - }, - "message": { - "importDetail": "O envio ainda está pendente e logo será processado pelo servidor.", - "importSuccess": "Envio foi processado pelo servidor." - }, - "warning": { - "importSkipped": "O envio foi ignorado porque já existe em uma de suas bibliotecas." - } - }, - "EditCard": { - "button": { - "approve": "Aprovar", - "delete": "Excluir", - "reject": "Recusar" - }, - "status": { - "approved": "Aprovado", - "applied": "Aprovado e aplicado", - "pending": "Revisão pendente", - "rejected": "Recusado" - }, - "modal": { - "delete": { - "header": "Excluir esta sugestão?" - }, - "content": { - "warning": "A sugestão será permanentemente excluída." - } - }, - "table": { - "update": { - "header": { - "field": "Campo", - "newValue": "Novo valor", - "oldValue": "Valor anterior" - }, - "notApplicable": "N/A" - } - }, - "header": { - "modification": "Modificação { id }" - }, - "link": { - "track": "Faixa #{ id } - { name }" - } - }, - "Podcasts": { - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "header": { - "browse": "Explorando artistas" - }, - "button": { - "cancel": "Cancelar", - "channel": "Criar canal", - "search": "Pesquisar", - "feed": "Inscreva-se em Funkwhale" - }, - "empty": { - "noResults": "Nenhum artista encontrado" - }, - "pagination": { - "results": "Resultados por página" - }, - "placeholder": { - "search": "Pesquisar…" - }, - "modal": { - "subscription": { - "header": "Inscrição" - } - }, - "label": { - "tags": "Tags" - } - }, - "Radios": { - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Ordem" - }, - "label": "Ordenando" - }, - "header": { - "browse": "Explorando rádios", - "instance": "Rádios da instância", - "user": "Rádios do usuário" - }, - "button": { - "add": "Criar uma rádio", - "create": "Criar sua própria rádio" - }, - "placeholder": { - "search": "Insira o nome de uma rádio…" - }, - "empty": { - "noResults": "Nenhuma rádio encontrada" - }, - "title": "Rádios", - "pagination": { - "results": "Resultados por página" - }, - "label": { - "search": "Pesquisar" - } - }, - "AlbumDropdown": { - "button": { - "cancel": "Cancelar", - "delete": "Excluir…", - "edit": "Editar", - "embed": "Incorporar", - "more": "Mais…" - }, - "modal": { - "delete": { - "header": "Excluir este álbum?", - "content": { - "warning": "O álbum será permanentemente excluído, junto com seus arquivos e dados." - } - }, - "embed": { - "header": "Incorpore este álbum em seu site" - } - }, - "link": { - "moderation": "Abrir interface de moderação", - "discogs": "Pesquisar em Discogs", - "django": "Ver administração Django", - "domain": "Encaminhar para { domain}", - "musicbrainz": "Ver em MusicBrainz" - } - }, - "TrackBase": { - "button": { - "cancel": "Cancelar", - "delete": "Excluir…", - "download": "Baixar", - "edit": "Editar", - "embed": "Incorporar", - "more": "Mais…", - "play": "Tocar" - }, - "modal": { - "delete": { - "header": "Excluir esta faixa?", - "content": { - "warning": "A faixa será permanentemente excluída, junto com seus arquivos e dados." - } - }, - "embed": { - "header": "Incorpore esta faixa em seu site" - } - }, - "link": { - "moderation": "Abrir interface de moderação", - "discogs": "Pesquisar em Discogs", - "wikipedia": "Pesquisar no Wikipedia", - "django": "Ver administração Django", - "domain": "Encaminhar para { domain}" - }, - "title": "Faixa" - }, - "AlbumEdit": { - "header": { - "edit": "Editar álbum", - "suggest": "Sugerir edição neste álbum" - }, - "message": { - "remote": "Não é possível editar este objeto, ele é gerenciado por outro servidor." - } - }, - "ArtistEdit": { - "header": { - "edit": "Editar artista", - "suggest": "Sugerir edição neste artista" - }, - "message": { - "remote": "Não é possível editar este objeto, ele é gerenciado por outro servidor." - } - }, - "TrackEdit": { - "header": { - "edit": "Editar faixa", - "suggest": "Sugerir edição nesta faixa" - }, - "message": { - "remote": "Não é possível editar este objeto, ele é gerenciado por outro servidor." - } - }, - "AlbumDetail": { - "header": { - "episodes": "Episódios", - "tracks": "Faixas", - "libraries": "Bibliotecas do usuário" - }, - "description": { - "libraries": "Este álbum está presente nas seguintes bibliotecas:" - }, - "meta": { - "volume": "Volume { number }" - } - }, - "FsBrowser": { - "button": { - "import": "Importado" - } - }, - "Home": { - "title": "Biblioteca", - "header": { - "playlists": "Listas de reprodução", - "recentlyAdded": "Adicionado recentemente", - "recentlyFavorited": "Favoritado recentemente", - "recentlyListened": "Escutado recentemente" - } - }, - "TagSelector": { - "placeholder": { - "search": "Pesquisar…" - } - } - }, - "favorites": { - "List": { - "header": { - "favorites": "{ n } favorito | { n } favoritos" - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Ordem" - }, - "label": "Ordenando" - }, - "link": { - "library": "Explorar biblioteca" - }, - "loader": { - "loading": "Carregando seus favoritos…" - }, - "empty": { - "noFavorites": "Sem faixas favoritadas ainda" - }, - "pagination": { - "results": "Resultados por página" - }, - "title": "Seus Favoritos" - }, - "TrackFavoriteIcon": { - "button": { - "add": "Favoritar", - "remove": "Desfavoritar" - }, - "label": { - "inFavorites": "Nos favoritos" - } - } - }, - "channels": { - "UploadModal": { - "meta": { - "files": "{ n } arquivo | { n } arquivos", - "quota": "Armazenamento disponível:" - }, - "button": { - "cancel": "Cancelar", - "close": "Fechar", - "finishLater": "Finalizar depois", - "next": "Próximo", - "previous": "Anterior", - "update": "Atualizar" - }, - "header": { - "uploadFiles": "Arquivos para enviar", - "processing": "Processando envios", - "uploadDetails": "Detalhes do envio" - } - }, - "AlbumSelect": { - "meta": { - "tracks": "{ n } faixa | { n } faixas" - }, - "label": { - "album": "Álbum" - } - }, - "LicenseSelect": { - "link": { - "license": "Sobre esta licença" - }, - "label": { - "license": "Licença" - } - }, - "UploadForm": { - "help": { - "license": "Adicione uma licença para seu arquivo para garantir algumas liberdades ao seu público." - }, - "label": { - "openBrowser": "Explorar…", - "channel": "Canal" - }, - "message": { - "dragAndDrop": "Arraste e solte seus arquivos aqui ou abra o navegador para enviar seus arquivos" - }, - "button": { - "edit": "Editar", - "remove": "Remover" - }, - "header": { - "error": "Erro ao publicar" - }, - "status": { - "errored": "Com erro", - "pending": "Pendente", - "uploading": "Enviando" - }, - "description": { - "extensions": "Extensões suportadas: { extensions }" - } - }, - "AlbumModal": { - "button": { - "cancel": "Cancelar", - "create": "Criar" - }, - "header": { - "newAlbum": "Novo álbum", - "newSeries": "Novo álbum" - } - }, - "UploadMetadataForm": { - "label": { - "description": "Descrição", - "position": "Posição", - "tags": "Tags", - "title": "Título", - "image": "Foto da faixa" - } - }, - "AlbumForm": { - "header": { - "error": "Erro ao criar" - }, - "label": { - "albumTitle": "Título" - } - }, - "SubscribeButton": { - "title": { - "unsubscribe": "Cancelar inscrição" - }, - "help": { - "auth": "Pode ser necessário se inscrever neste canal para ver o seu conteúdo." - } - } + "title": "Sobre" }, "AboutPod": { - "stat": { - "hoursOfMusic": "{ n } hora de música | { n } horas de músicas", - "activeUsers": "{ n } usuário ativo | { n } usuários ativos", - "albumsCount": "Álbum | Álbum", - "artistsCount": "Artista | Artista", - "listeningsCount": "Escutados | Escutados", - "tracksCount": "Faixa | Faixa" - }, - "title": "Sobre", - "link": { - "about": "Sobre este pod", - "introduction": "Convites", - "rules": "Regras", - "statistics": "Estatísticas", - "terms": "Política de Privacidade e Termos de Uso" - }, - "header": { - "about": "Sobre este pod", - "contact": "Contato", - "rules": "Regras", - "statistics": "Estatísticas", - "terms": "Política de Privacidade e Termos de Uso" - }, "feature": { "allowList": "Lista de permissão", "anonymousAccess": "Acesso anônimo", + "federation": "Federação", + "quota": "Cota de envio", + "registrations": "Registros", "status": { "closed": "Fechado", "disabled": "Desativado", "enabled": "Ativado", "open": "Abrir" }, - "federation": "Federação", - "version": "Versão do Funkwhale", - "registrations": "Registros", - "quota": "Cota de envio" + "version": "Versão do Funkwhale" + }, + "header": { + "about": "Sobre este pod", + "contact": "Contato", + "features": "Funcionalidades", + "rules": "Regras", + "statistics": "Estatísticas", + "terms": "Política de Privacidade e Termos de Uso" + }, + "link": { + "about": "Sobre este pod", + "features": "Funcionalidades", + "introduction": "Convites", + "rules": "Regras", + "statistics": "Estatísticas", + "terms": "Política de Privacidade e Termos de Uso" + }, + "message": { + "contact": "Entre em contato conosco: { contactEmail }" }, "notApplicable": "N/A", "placeholder": { "noDescription": "Sem descrição.", "noRules": "Sem regras.", "noTerms": "Sem termos." + }, + "stat": { + "activeUsers": "{ n } usuário ativo | { n } usuários ativos", + "albumsCount": "Álbum | Álbum", + "artistsCount": "Artista | Artista", + "hoursOfMusic": "{ n } hora de música | { n } horas de músicas", + "listeningsCount": "Escutados | Escutados", + "tracksCount": "Faixa | Faixa" + }, + "title": "Sobre" + }, + "Home": { + "description": { + "funkwhale": { + "paragraph1": "Este pod roda Funkwhale, um projeto comunitário que permite compartilhar músicas e áudios numa rede aberta e descentralizada.", + "paragraph2": "Funkwhale é gratuito e desenvolvido por uma comunidade maravilhosa de voluntários." + }, + "quota": "Os usuários deste pod também ganham { quota } de espaço grátis para compartilhar o próprio conteúdo!", + "signup": "Crie uma conta agora para favoritar a faixa, criar listas, explorar novos conteúdos e muito mais!" + }, + "header": { + "about": "Sobre este pod Funkwhale", + "aboutFunkwhale": "Sobre o Funkwhale", + "contact": "Contato", + "links": "Links úteis", + "login": "Entrar", + "newAlbums": "Álbuns adicionados recentemente", + "newChannels": "Novos canais", + "signup": "Criar conta", + "statistics": "Estatísticas", + "welcome": "Bem-vindo(a) ao { podName }!" + }, + "help": { + "registrationsClosed": "As inscrições estão encerradas neste pod. Você pode se inscrever em outro pod usando o link abaixo." + }, + "link": { + "findOtherPod": "Encontrar outro pod", + "funkwhale": "Visite funkwhale.audio", + "learnMore": "Saiba mais", + "mobileApps": { + "description": "Use Funkwhale em outros dispositivos com nossos aplicativos", + "label": "Aplicativos móveis" + }, + "publicContent": { + "description": "Ouça álbuns públicos e listas compartilhados neste pod", + "label": "Explorar conteúdo público" + }, + "rules": "Regras do servidor", + "userGuides": { + "description": "Descubra tudo o que você precisa saber sobre Funkwhale e suas funcionalidades", + "label": "Guias do usuário" + }, + "viewMore": "Ver mais…" + }, + "placeholder": { + "noDescription": "Sem descrição." + }, + "stat": { + "activeUsers": "{ n } usuário ativo | { n } usuários ativos", + "hoursOfMusic": "{ n } hora de música | { n } horas de músicas" + }, + "title": "Início" + }, + "PageNotFound": { + "header": { + "pageNotFound": "Página não encontrada!" + }, + "link": { + "home": "Ir para a página inicial" + }, + "message": { + "pageNotFound": "Desculpe, mas esta página não existe:" + }, + "title": "Página não encontrada" + }, + "Queue": { + "button": { + "clear": "Limpar", + "close": "Fechar", + "stopRadio": "Parar rádio" + }, + "header": { + "failure": "Não foi possível carregar a faixa", + "radio": "Você tem uma rádio tocando" + }, + "label": { + "addArtistContentFilter": "Ocultar conteúdo deste(a) artista…", + "duration": "Duração", + "enterFullscreen": "Entrar em modo tela-cheia", + "exitFullscreen": "Said do modo tela-cheia", + "favorite": "Favoritar faixa", + "next": "Próxima faixa", + "pause": "Pausar", + "play": "Tocar", + "populatingRadio": "Buscando faixa de rádio...", + "previous": "Faixa anterior", + "queue": "Fila", + "remove": "Remover", + "restart": "Reiniciar faixa", + "selectTrack": "Seleciona uma faixa", + "showCoverArt": "Mostrar arte de capa", + "showVisualizer": "Exibir visualizador MoonDrop" + }, + "message": { + "automaticPlay": "A próxima faixa tocará automaticamente em alguns segundos…", + "radio": "Novas faixas serão acrescentadas aqui automaticamente." + }, + "meta": { + "queuePosition": "Faixa ({ index } de { length })" + }, + "warning": { + "connectivity": "Você pode ter um problema de conexão." } }, - "common": { - "ActionTable": { - "button": { - "selected": "{ n } de { total } selecionado | { n } de { total } selecionados", - "allSelected": "{ n } elemento selecionado | { n } elementos selecionados", - "go": "Ir", - "launch": "Executar", - "refresh": "Atualizar tabela de conteúdo", - "selectAll": "Selecione um filtro", - "selectElement": "Selecionar { n } elemento | Selecionar todos os { n } elementos", - "selectCurrentPage": "Selecionar apenas a página atual" + "RemoteSearchForm": { + "button": { + "search": "Pesquisar" + }, + "description": { + "fediverse": "Use este formulário para recuperar um objeto armazenado em algum lugar no fediverso." + }, + "error": { + "fetchFailed": "Não foi possível recuperar este objeto" + }, + "header": { + "fetchFailed": "Erro ao obter objeto" + }, + "label": { + "fediverse": { + "fieldLabel": "Objeto denunciado", + "title": "Pesquisar no fediverso" }, - "message": { - "success": "Ação { action } aplicada com sucesso em { n } elemento | Ação { action } aplicada com sucesso em { n } elementos", - "needsRefresh": "Conteúdo alterado, atualize a página" - }, - "label": { - "actions": "Ações", - "performAction": "Informação de depuração" - }, - "modal": { - "performAction": { - "header": "Você deseja executar { action } em { n } elemento? | Você deseja executar { action } em { n } elementos?", - "content": { - "warning": "Isso pode afetar muitos elementos ou ter consequências irreversíveis, por favor, verifique se é o que você realmente deseja." - } - } - }, - "header": { - "error": "Erro ao executar esta ação" + "rss": { + "fieldLabel": "Localização do canal", + "fieldPlaceholder": "{'@'}canal{'@'}pod.exemplo ou https://linkdosite.exemplo/rss.xml" } }, - "Duration": { - "meta": { - "hours": "{ hours } h { minutes } min", - "minutes": "{ minutes } min" - } - }, - "UserMenu": { - "link": { - "about": "Sobre", - "chat": "Sala de chat", - "docs": "Documentação", - "support": "Texto de ajuda", - "git": "Registro de bugs", - "login": "Entrar", - "logout": "Sair", - "notifications": "Notificações", - "profile": "Perfil", - "settings": "Configurações", - "signup": "Criar conta" - }, - "label": { - "shortcuts": "Atalhos de teclado", - "language": "Idioma" - } - }, - "UserModal": { - "link": { - "about": "Sobre", - "chat": "Sala de chat", - "support": "Texto de ajuda", - "git": "Registro de bugs", - "login": "Entrar", - "logout": "Sair", - "notifications": "Notificações", - "profile": "Perfil", - "settings": "Configurações", - "signup": "Criar conta" - }, - "label": { - "shortcuts": "Atalhos de teclado", - "language": "Idioma" - }, - "header": { - "options": "Ações" - }, - "button": { - "switchInstance": "Usar outra instância" - } - }, - "DangerousButton": { - "button": { - "cancel": "Cancelar", - "confirm": "Confirmar" - }, - "header": { - "confirm": "Você deseja confirmar esta ação?" - } - }, - "RenderedDescription": { - "button": { - "cancel": "Cancelar", - "edit": "Editar", - "less": "Mostrar menos", - "more": "Mostrar mais", - "update": "Atualizar descrição" - }, - "header": { - "failure": "Erro ao atualizar descrição" - }, - "empty": { - "noDescription": "Sem descrição" - } - }, - "InlineSearchBar": { - "button": { - "clear": "Limpar" - }, - "label": { - "search": "Pesquisar" - }, - "placeholder": { - "search": "Pesquisar…" - } - }, - "CollapseLink": { - "button": { - "collapse": "Ocultar", - "expand": "Expandir" - } - }, - "CopyInput": { - "button": { - "copy": "Copiar" - }, - "message": { - "success": "Texto copiado para a área de transferência!" - } - }, - "LoginModal": { - "link": { - "login": "Entrar", - "signup": "Criar conta" - } - }, - "EmptyState": { - "header": { - "noResults": "Sem resultados." - }, - "button": { - "refresh": "Atualizar" - } - }, - "ContentForm": { - "empty": { - "noContent": "Nada para mostrar." - }, - "button": { - "preview": "Prévia", - "write": "Escrita" - } - }, - "AttachmentInput": { - "button": { - "remove": "Remover" - }, - "label": { - "upload": "Enviar nova imagem…" - }, - "loader": { - "uploading": "Enviando…" - }, - "header": { - "failure": "Não foi possível salvar o anexo" - } - }, - "ExpandableDiv": { - "button": { - "less": "Mostrar menos", - "more": "Mostrar mais" - } + "warning": { + "unsupported": "Tipo de objeto ainda não suportado" } }, - "playlists": { - "Card": { - "meta": { - "tracks": "{ n } faixa | { n } faixas" - } + "SetInstanceModal": { + "button": { + "cancel": "Cancelar", + "submit": "Enviar" }, - "PlaylistModal": { - "warning": { - "duplicate": "{ 0 } já está em { 1 }." - }, - "button": { - "addDuplicate": "Adicionar assim mesmo", - "addToPlaylist": "Adicionar a esta lista", - "addTrack": "Adicionar faixa", - "cancel": "Cancelar", - "edit": "Editar" - }, - "header": { - "addToPlaylist": "Adicionar à lista", - "available": "Listas disponíveis", - "manage": "Gerenciar listas", - "noResults": "Nenhum resultado correspondente ao filtro", - "addFailure": "Não foi possível adicionar a faixa na lista" - }, - "table": { - "edit": { - "header": { - "edit": "Editar", - "lastModification": "Última modificação", - "name": "Nome", - "tracks": "Faixas" - } - } - }, - "placeholder": { - "filterPlaylist": "Insira o nome da lista" - }, - "label": { - "filter": "Filtrar" - }, - "empty": { - "noPlaylists": "Sem listas" - } + "header": { + "chooseInstance": "Escolha sua instância", + "failure": "Não foi possível entrar neste link", + "suggestions": "Opções sugeridas" }, - "Editor": { - "button": { - "addDuplicate": "Adicionar assim mesmo", - "clear": "Limpar lista", - "copy": "Copiar faixas da fila atual para lista", - "insertFromQueue": "Inserir da fila ({ n } faixa) | Inserir da fila ({ n } faixas)" - }, - "error": { - "sync": "Ocorreu um erro ao salvar suas alterações" - }, - "message": { - "sync": "Alterações sincronizadas com o servidor" - }, - "modal": { - "clearPlaylist": { - "header": "Você quer limpar a lista \"{ playlist }\"?", - "content": { - "warning": "Isso vai excluir permanentemente todas as faixas da sua lista." - } - } - }, - "help": { - "reorder": "Arraste as faixas para reorganizá-las na lista" - }, - "header": { - "editor": "Editor de listas" - }, - "warning": { - "duplicate": "Algumas faixas na sua fila já estão nesta lista:" - }, - "loading": { - "sync": "Sincronizando alterações com o servidor…" - } + "help": { + "notFunkwhaleServer": "Este link não é de uma instância Funkwhale", + "selectPod": "Para continuar, insira a instância Funkwhale que você deseja entrar. Digite o endereço ou selecione uma das sugeridas.", + "serverDown": "Parece que o servidor caiu" }, - "TrackPlaylistIcon": { - "button": { - "add": "Adicionar à lista…" - } + "label": { + "url": "Link da instância" }, - "Form": { - "header": { - "createPlaylist": "Criar nova lista", - "createSuccess": "Lista criada", - "updateSuccess": "Lista atualizada", - "createFailure": "A lista não foi criada" - }, - "button": { - "create": "Criar lista", - "update": "Atualizar lista" - }, - "placeholder": { - "name": "Minha incrível lista" - }, - "label": { - "name": "Nome da lista", - "visibility": "Visibilidade da lista" - } - }, - "Widget": { - "button": { - "create": "Criar lista", - "more": "Mostrar mais" - }, - "placeholder": { - "noPlaylists": "Sem listas" - } + "message": { + "newUrl": "Você está usando a instância Funkwhale em { url }" } }, - "notifications": { - "NotificationRow": { - "message": { - "libraryAcceptFollow": "{ username } aceitou sua solicitação para seguir a biblioteca \"{ library }\"", - "libraryFollow": "{ username } seguiu sua biblioteca \"{ library }\"", - "libraryPendingFollow": "{ username } seguiu sua biblioteca \"{ library }\"" + "ShortcutsModal": { + "button": { + "close": "Fechar" + }, + "header": { + "modal": "Atalhos de teclado" + }, + "shortcut": { + "audio": { + "clearQueue": "Limpar fila", + "decreaseVolume": "Diminuir volume", + "expandQueue": "Expandir fila/ visão do tocador", + "increaseVolume": "Aumentar volume", + "label": "Atalhos do reprodutor de áudio", + "playNext": "Tocar próxima faixa", + "playPause": "Tocar/pausar a faixa atual", + "playPrevious": "Tocar faixa anterior", + "seekBack30": "Voltar 30s", + "seekBack5": "Voltar 5s", + "seekForward30": "Avançar 30s", + "seekForward5": "Avançar 5s", + "shuffleQueue": "Embaralhar fila", + "toggleFavorite": "Alterar favorito", + "toggleLoop": "Botão de repetição da fila", + "toggleMute": "Alterar mudo" }, - "button": { - "approve": "Aprovar", - "markRead": "Marcar como lido", - "markUnread": "Marcar como não lido", - "reject": "Recusar" + "general": { + "focus": "Foco na barra de pesquisa", + "label": "Atalhos gerais", + "show": "Mostrar atalhos de teclado disponíveis", + "unfocus": "Desfocar a barra de pesquisa" } } }, "Sidebar": { + "header": { + "administration": "Administração", + "explore": "Descubra", + "library": "Minha biblioteca", + "main": "Paginação", + "more": "Mais" + }, + "label": { + "add": "Adicionar conteúdo", + "administration": "Administração", + "edits": "Edições de revisão pendente", + "follows": "Solicitações de seguidor pendentes", + "language": "Idioma", + "main": "Menu principal", + "play": "Tocar esta faixa" + }, "link": { "about": "Sobre este pod", "albums": "Álbuns", @@ -1710,42 +308,1848 @@ "search": "Pesquisar", "settings": "Configurações", "users": "Usuários" - }, - "label": { - "add": "Adicionar conteúdo", - "administration": "Administração", - "language": "Idioma", - "main": "Menu principal", - "follows": "Solicitações de seguidor pendentes", - "edits": "Edições de revisão pendente", - "play": "Tocar esta faixa" - }, - "header": { - "administration": "Administração", - "explore": "Descubra", - "main": "Paginação", - "more": "Mais", - "library": "Minha biblioteca" } }, - "manage": { - "library": { - "UploadsTable": { + "admin": { + "SettingsGroup": { + "button": { + "save": "Salvar" + }, + "header": { + "error": "Erro ao salvar configurações", + "image": "Imagem atual" + }, + "message": { + "success": "As configurações foram atualizadas." + } + }, + "SignupFormBuilder": { + "button": { + "add": "Adicionar um novo campo", + "edit": "Editar formulário", + "preview": "Ver formulário" + }, + "help": { + "additionalFields": "Campos do formulário adicional para ser mostrado no formulário. Só aparece se a validação manual de nova conta estiver ativada.", + "helpText": "Texto opcional para ser mostrado no início do formulário de nova conta." + }, + "label": { + "additionalField": "Campo adicional", + "additionalFields": "Campos adicionais", + "delete": "Excluir", + "helpText": "Texto de ajuda" + }, + "table": { + "additionalFields": { + "header": { + "actions": "Ações", + "label": "Nome do campo", + "type": "Tipo do campo" + }, + "required": { + "false": "Não", + "true": "Sim" + } + } + } + } + }, + "audio": { + "ChannelCard": { + "meta": { + "episodes": "{ n } episódio | { n } episódios", + "tracks": "{ n } faixa | { n } faixas" + }, + "title": "Atualizado em { date }" + }, + "ChannelEntries": { + "help": { + "subscribe": "Pode ser necessário se inscrever neste canal para ver o seu conteúdo." + } + }, + "ChannelForm": { + "header": { + "error": "Erro ao salvar canal" + }, + "help": { + "podcast": "Armazene seus episódios e mantenha sua comunidade atualizada." + }, + "label": { + "category": "Categoria", + "description": "Descrição", + "discography": "Discografia do artista", + "email": "Confirmar seu endereço de e-mail", + "image": "Foto do canal", + "language": "Idioma", + "name": "Nome", + "owner": "Dono(a)", + "subcategory": "Subcategoria", + "tags": "Tags" + }, + "loader": { + "loading": "Carregando" + }, + "placeholder": { + "name": "Nome do canal", + "username": "nomedocanalpô" + } + }, + "ChannelSerieCard": { + "meta": { + "episodes": "{ n } episódio | { n } episódios" + } + }, + "ChannelSeries": { + "button": { + "showMore": "Mostrar mais" + }, + "help": { + "subscribe": "Pode ser necessário se inscrever neste canal para ver o seu conteúdo." + } + }, + "ChannelsWidget": { + "button": { + "showMore": "Mostrar mais" + } + }, + "EmbedWizard": { + "button": { + "copy": "Copiar" + }, + "header": { + "preview": "Prévia" + }, + "help": { + "anonymous": "Entre em contato com seus administradores e peça que atualizem a configuração correspondente.", + "embed": "Copie e cole este código HTML em seu site", + "width": "Deixar vazio para um widget responsivo" + }, + "label": { + "embed": "Código para incorporar", + "height": "Altura do widget", + "width": "Largura do widget" + }, + "message": { + "copy": "Texto copiado para a área de transferência!" + }, + "warning": { + "anonymous": "O compartilhamento não funcionará porque este pod não permite que usuários anônimos vejam o conteúdo." + } + }, + "LibraryFollowButton": { + "button": { + "cancel": "Cancelar solicitação para seguir", + "follow": "Seguir", + "unfollow": "Deixar de seguir" + } + }, + "PlayButton": { + "button": { + "addToPlaylist": "Adicionar à lista…", + "addToQueue": "Adicionar à fila atual", + "discretePlay": "Tocar", + "episodeDetails": "Detalhes do episódio", + "hideArtist": "Ocultar conteúdo deste(a) artista", + "playAlbum": "Tocar todos os álbuns", + "playArtist": "Lista", + "playNext": "Tocar próxima", + "playNow": "Tocar agora", + "playPlaylist": "Limpar lista", + "playTrack": "Tocar faixa", + "playTracks": "Tocar faixa", + "report": "Denunciar…", + "startRadio": "Tocar músicas parecidas", + "trackDetails": "Detalhes da faixa" + }, + "title": { + "more": "Mais…", + "unavailable": "Esta faixa não está disponível em nenhuma biblioteca à qual você possa ver" + } + }, + "Player": { + "header": { + "player": "Atalhos do reprodutor de áudio" + }, + "label": { + "addArtistContentFilter": "Ocultar conteúdo deste(a) artista…", + "audioPlayer": "Reprodutor de mídia", + "clearQueue": "Limpar fila", + "expandQueue": "Expandir fila", + "loopingDisabled": "Repetição desativada. Clique para repetir uma única faixa.", + "loopingSingle": "Repetindo uma única faixa. Clique para repetir a fila inteira.", + "loopingWholeQueue": "Repetindo a fila inteira. Clique para desativar a repetição.", + "mute": "Silenciar", + "nextTrack": "Próxima faixa", + "pause": "Pausado", + "play": "Tocar", + "previousTrack": "Faixa anterior", + "shuffleQueue": "Embaralhar sua fila", + "unmute": "Desfazer silêncio" + }, + "meta": { + "position": "{ index } de { length }" + } + }, + "Search": { + "empty": { + "noAlbums": "Álbum não encontrado", + "noArtists": "Artista não encontrado" + }, + "header": { + "albums": "Álbuns", + "artists": "Artistas", + "search": "Pesquisar músicas" + }, + "placeholder": { + "search": "Artista, álbum, faixa…" + } + }, + "SearchBar": { + "label": { + "album": "Álbum", + "artist": "Artista", + "category": { + "federation": "Federação" + }, + "search": "Pesquisar músicas", + "tag": "Tag", + "track": "Faixa" + }, + "link": { + "fediverse": "Pesquisar no fediverso" + }, + "placeholder": { + "search": "Pesquisar por artistas, álbuns, faixas…" + } + }, + "VolumeControl": { + "button": { + "mute": "Silenciar", + "unmute": "Desfazer silêncio" + } + }, + "album": { + "Card": { + "meta": { + "tracks": "{ n } faixa | { n } faixas" + } + }, + "Widget": { + "button": { + "more": "Mostrar mais" + } + } + }, + "artist": { + "Card": { + "meta": { + "episodes": "{ n } episódio | { n } episódios", + "tracks": "{ n } faixa | { n } faixas" + } + }, + "Widget": { + "button": { + "more": "Mostrar mais" + } + } + }, + "podcast": { + "MobileRow": { + "button": { + "actions": "Mostrar notificações lidas" + } + }, + "Modal": { + "button": { + "addToFavorites": "Favoritar", + "addToPlaylist": "Adicionar à lista…", + "addToQueue": "Adicionar à fila", + "albumDetails": "Novo álbum", + "artistDetails": "Artistas ocultados", + "channelDetails": "Canal do artista", + "episodeDetails": "Detalhes do episódio", + "playNext": "Tocar próxima", + "playNow": "Tocar agora", + "removeFromFavorites": "Desfavoritar", + "seriesDetails": "Novo álbum", + "startRadio": "Tocar faixa", + "trackDetails": "Detalhes da faixa" + } + } + }, + "track": { + "MobileRow": { + "button": { + "actions": "Mostrar notificações lidas" + } + }, + "Modal": { + "button": { + "addToFavorites": "Favoritar", + "addToPlaylist": "Adicionar à lista…", + "addToQueue": "Adicionar à fila", + "albumDetails": "Novo álbum", + "artistDetails": "Artistas ocultados", + "channelDetails": "Canal do artista", + "episodeDetails": "Detalhes do episódio", + "playNext": "Tocar próxima", + "playNow": "Tocar agora", + "removeFromFavorites": "Desfavoritar", + "seriesDetails": "Novo álbum", + "startRadio": "Tocar faixa", + "trackDetails": "Detalhes da faixa" + } + }, + "Table": { "table": { - "upload": { + "header": { + "album": "Álbum", + "artist": "Artista", + "title": "Título" + } + } + }, + "Widget": { + "button": { + "more": "Mostrar mais" + } + } + } + }, + "auth": { + "ApplicationEdit": { + "header": { + "appDetails": "Detalhes do aplicativo", + "editApp": "Editar aplicativo" + }, + "help": { + "appDetails": "A ID e o segredo do aplicativo são valores realmente sensíveis e devem ser tratados como senhas. Não compartilhe isso com mais ninguém." + }, + "label": { + "accessToken": "Ver edições", + "appId": "ID do aplicativo", + "appSecret": "Segredo do aplicativo" + }, + "link": { + "settings": "Voltar à configurações" + }, + "title": "Editar aplicativo" + }, + "ApplicationForm": { + "button": { + "create": "Criar aplicativo", + "update": "Atualizar aplicativo" + }, + "header": { + "failure": "Não foi possível salvar as alterações" + }, + "help": { + "redirectUri": "Use \"urn:ietf:wg:oauth:2.0:oob\" como link de redirecionamento se seu aplicativo não está na Web." + }, + "label": { + "name": "Nome", + "redirectUri": "Redirecionar link", + "scopes": { + "description": "Verificar \"Ler\" e \"Escrever\" implica em verificar também todos os seus dependentes.", + "read": { + "description": "Apenas lê seus dados de usuário", + "label": "Ler" + }, + "write": { + "description": "Apenas escreve seus dados de usuário", + "label": "Escrita" + } + } + } + }, + "ApplicationNew": { + "link": { + "settings": "Voltar à configurações" + }, + "title": "Criar novo aplicativo" + }, + "Authorize": { + "button": { + "authorize": "Permitir { app }" + }, + "header": { + "access": "{ app } quer acessar sua conta Funkwhale", + "allScopes": "Acesso total", + "authorize": "Permitir aplicativo de terceiros", + "authorizeFailure": "Erro ao permitir aplicativo", + "fetchFailure": "Erro ao ver dados do aplicativo", + "readOnly": "Apenas leitura", + "writeOnly": "Apenas escrita" + }, + "help": { + "copyCode": "Você verá um código para copiar e colar no aplicativo.", + "pasteCode": "Copie e cole no aplicativo o seguinte código:", + "redirect": "Você será redirecionado para { 0 }" + }, + "message": { + "unknownPermissions": "O aplicativo também está solicitando as seguintes permissões desconhecidas:" + }, + "title": "Permitir aplicativo" + }, + "LoginForm": { + "button": { + "login": "Entrada" + }, + "header": { + "loginFailure": "Não foi possível entrar" + }, + "help": { + "invalidCredentials": "Verifique novamente se usuário/senha estão corretos e confirme se verificou seu e-mail." + }, + "label": { + "password": "Senha", + "username": "Nome de usuário ou e-mail" + }, + "link": { + "createAccount": "Criar conta", + "resetPassword": "Redefinir sua senha" + }, + "placeholder": { + "username": "Insira seu nome de usuário ou e-mail" + } + }, + "Logout": { + "button": { + "logout": "Sim, quero sair!" + }, + "header": { + "confirm": "Tem certeza de que deseja sair?", + "unauthenticated": "Você entrou como { username }" + }, + "link": { + "login": "Entrar" + }, + "message": { + "loggedIn": "Você entrou como { username }" + }, + "title": "Sair" + }, + "Plugin": { + "button": { + "save": "Salvar", + "scan": "Varredura completa" + }, + "header": { + "failure": "Erro ao salvar configurações" + }, + "label": { + "library": "Biblioteca", + "pluginEnabled": "Ativado" + }, + "link": { + "documentation": "Documentação" + } + }, + "Settings": { + "button": { + "delete": "Excluir", + "deleteAccount": "Excluir minha conta…", + "deleteAccountConfirm": "Excluir minha conta", + "disableSubsonic": "Desativar acesso", + "edit": "Editar", + "password": "Alterar senha", + "refresh": "Atualizar", + "remove": "Remover", + "removeApp": "Excluir aplicativo", + "revoke": "Revogar", + "revokeAccess": "Revogar acesso", + "update": "Atualizar", + "updateSettings": "Atualizar configurações" + }, + "description": { + "authorizedApps": "Esta é a lista de aplicativos que tem acesso aos dados da sua conta.", + "changePassword": { + "paragraph1": "A alteração de sua senha também modificará - caso use - a senha da API Subsonic.", + "paragraph2": "Você precisará atualizar a senha nos clientes que usam a senha atual." + }, + "contentFilters": "Filtros ajudam você a ocultar o que você não quer ver no Funkwhale.", + "deleteAccount": "Você pode irreversivelmente excluir sua conta e todos os dados vinculados à ela usando o formulário abaixo. Será solicitado uma confirmação.", + "yourApps": "Esta é a lista de aplicativos que você criou." + }, + "header": { + "accountFailure": "Não foi possível excluir sua conta", + "accountSettings": "Configurações da conta", + "authorizedApps": "Aplicativos permitidos", + "avatar": "Imagem de perfil", + "avatarFailure": "Não foi possível salvar imagem de perfil", + "changeEmail": "Confirmar seu endereço de e-mail", + "changePassword": "Alterar minha senha", + "contentFilters": "Filtros", + "deleteAccount": "Excluir minha conta", + "emailFailure": "Não foi possível confirmar seu endereço de e-mail", + "hiddenArtists": "Artistas ocultados", + "noApps": "Sem aplicativos.", + "noPersonalApps": "Sem aplicativos configurados.", + "passwordFailure": "Não foi possível alterar senha", + "settingsUpdated": "Configurações atualizadas", + "updateFailure": "Não foi possível atualizar suas configurações", + "yourApps": "Seus aplicativos" + }, + "help": { + "changePassword": "Por favor verifique novamente se a senha está certa", + "noApps": "Se você permitir que aplicativos de terceiros acessem seus dados, eles aparecerão aqui.", + "noPersonalApps": "Crie um para integrar o Funkwhale com aplicativos de terceiros." + }, + "label": { + "avatar": "Avatar", + "currentPassword": "Nova senha", + "newEmail": "Endereço de e-mail", + "newPassword": "Nova senha", + "password": "Senha" + }, + "link": { + "managePlugins": "Gerenciar listas", + "newApp": "Criar novo aplicativo" + }, + "message": { + "confirmDelete": "Sua solicitação de exclusão foi enviada, logo mais sua conta e seus conteúdos serão excluídos", + "currentEmail": "Você entrou como { username }" + }, + "modal": { + "changePassword": { + "content": { + "logout": "Você sairá desta conta e precisará entrar novamente", + "subsonic": "Sua senha do Subsonic será alterada para uma nova aleatória, e sua conta sairá de dispositivos que usaram a senha antiga do Subsonic", + "warning": "Alterar a senha terá as seguintes consequências:" + }, + "header": "Alterar sua senha?" + }, + "deleteAccount": { + "content": { + "warning": "Esta ação é irreversível e excluirá permanentemente seus dados dos nossos servidores. Você sairá da sua conta imediatamente." + }, + "header": "Você deseja excluir sua conta?" + }, + "deleteApp": { + "content": { + "warning": "Isso excluirá permanentemente seus aplicativos e todos os tokens associados." + }, + "header": "Excluir aplicativo \"{ application }\"?" + }, + "revokeApp": { + "content": { + "warning": "Isso impedirá que esse aplicativo acesse o serviço em seu nome." + }, + "header": "Revogar acesso do aplicativo \"{ application }\"?" + } + }, + "table": { + "artists": { + "header": { + "creationDate": "Data de criação", + "name": "Nome" + } + }, + "authorizedApps": { + "header": { + "application": "Aplicativo", + "permissions": "Permissões" + } + }, + "yourApps": { + "header": { + "application": "Aplicativo", + "creationDate": "Data de criação", + "scopes": "Campos" + } + } + }, + "title": "Configurações da conta", + "warning": { + "deleteAccount": "Sua conta será excluída de nossos servidores em poucos minutos. Nós também notificaremos outros servidores que podem ter uma cópia de algum dado seu para que possam prosseguir com a exclusão. Por favor, note que alguns desses servidores podem estar offline ou recusando fazê-lo." + } + }, + "SignupForm": { + "button": { + "create": "Criar minha conta" + }, + "header": { + "login": "Entrar com sua conta Funkwhale", + "signupFailure": "Não foi possível criar conta." + }, + "label": { + "email": "Endereço de e-mail", + "password": "Senha", + "username": "Nome de usuário" + }, + "message": { + "registrationClosed": "Cadastros estão fechados nesta instância, você precisa de um código de convite para criar uma conta." + }, + "placeholder": { + "email": "Confirmar seu endereço de e-mail", + "invitation": "Insira seu código de convite (não diferencia maiúsculas de minúsculas)", + "username": "Insira seu nome de usuário" + } + }, + "SubsonicTokenForm": { + "button": { + "confirmDisable": "Desativar acesso", + "confirmNewPassword": "Solicitar uma senha", + "disable": "Desativar acesso Subsonic", + "newPassword": "Solicitar uma nova senha" + }, + "description": { + "subsonic": { + "paragraph1": "O Funkwhale funciona em outros reprodutores de música compatíveis com a API Subsonic.", + "paragraph2": "Você pode usá-los para curtir sua lista no modo offline, em um dispositivo móvel, por exemplo.", + "paragraph3": "Porém, para acessar o Funkwhale a partir desses clientes você precisa de uma senha que pode ser configurada abaixo." + } + }, + "header": { + "error": "Erro", + "subsonic": "Senha da API Subsonic" + }, + "label": { + "subsonicField": "Senha da API Subsonic" + }, + "link": { + "apps": "Aprenda a usar o Funkwhale em outros aplicativos" + }, + "message": { + "accessDisabled": "Acesso desativado", + "passwordUpdated": "Senha atualizada", + "unavailable": "A API Subsonic não está disponível nesta instância do Funkwhale." + }, + "modal": { + "disableSubsonic": { + "content": { + "warning": "Isso vai desativar completamente o acesso á API Subsonic usada na conta." + }, + "header": "Desativar acesso à API Subsonic?" + }, + "newPassword": { + "content": { + "warning": "Isso fará com que sua conta saia de todos os dispositivos que usem a senha atual." + }, + "header": "Solicitar uma nova senha da API Subsonic?" + } + } + } + }, + "channels": { + "AlbumForm": { + "header": { + "error": "Erro ao criar" + }, + "label": { + "albumTitle": "Título" + } + }, + "AlbumModal": { + "button": { + "cancel": "Cancelar", + "create": "Criar" + }, + "header": { + "newAlbum": "Novo álbum", + "newSeries": "Novo álbum" + } + }, + "AlbumSelect": { + "label": { + "album": "Álbum" + }, + "meta": { + "tracks": "{ n } faixa | { n } faixas" + } + }, + "LicenseSelect": { + "label": { + "license": "Licença" + }, + "link": { + "license": "Sobre esta licença" + } + }, + "SubscribeButton": { + "help": { + "auth": "Pode ser necessário se inscrever neste canal para ver o seu conteúdo." + }, + "title": { + "unsubscribe": "Cancelar inscrição" + } + }, + "UploadForm": { + "button": { + "edit": "Editar", + "remove": "Remover" + }, + "description": { + "extensions": "Extensões suportadas: { extensions }" + }, + "header": { + "error": "Erro ao publicar" + }, + "help": { + "license": "Adicione uma licença para seu arquivo para garantir algumas liberdades ao seu público." + }, + "label": { + "channel": "Canal", + "openBrowser": "Explorar…" + }, + "message": { + "dragAndDrop": "Arraste e solte seus arquivos aqui ou abra o navegador para enviar seus arquivos" + }, + "status": { + "errored": "Com erro", + "pending": "Pendente", + "uploading": "Enviando" + } + }, + "UploadMetadataForm": { + "label": { + "description": "Descrição", + "image": "Foto da faixa", + "position": "Posição", + "tags": "Tags", + "title": "Título" + } + }, + "UploadModal": { + "button": { + "cancel": "Cancelar", + "close": "Fechar", + "finishLater": "Finalizar depois", + "next": "Próximo", + "previous": "Anterior", + "update": "Atualizar" + }, + "header": { + "processing": "Processando envios", + "uploadDetails": "Detalhes do envio", + "uploadFiles": "Arquivos para enviar" + }, + "meta": { + "files": "{ n } arquivo | { n } arquivos", + "quota": "Armazenamento disponível:" + } + } + }, + "common": { + "ActionTable": { + "button": { + "allSelected": "{ n } elemento selecionado | { n } elementos selecionados", + "go": "Ir", + "launch": "Executar", + "refresh": "Atualizar tabela de conteúdo", + "selectAll": "Selecione um filtro", + "selectCurrentPage": "Selecionar apenas a página atual", + "selectElement": "Selecionar { n } elemento | Selecionar todos os { n } elementos", + "selected": "{ n } de { total } selecionado | { n } de { total } selecionados" + }, + "header": { + "error": "Erro ao executar esta ação" + }, + "label": { + "actions": "Ações", + "performAction": "Informação de depuração" + }, + "message": { + "needsRefresh": "Conteúdo alterado, atualize a página", + "success": "Ação { action } aplicada com sucesso em { n } elemento | Ação { action } aplicada com sucesso em { n } elementos" + }, + "modal": { + "performAction": { + "content": { + "warning": "Isso pode afetar muitos elementos ou ter consequências irreversíveis, por favor, verifique se é o que você realmente deseja." + }, + "header": "Você deseja executar { action } em { n } elemento? | Você deseja executar { action } em { n } elementos?" + } + } + }, + "AttachmentInput": { + "button": { + "remove": "Remover" + }, + "header": { + "failure": "Não foi possível salvar o anexo" + }, + "label": { + "upload": "Enviar nova imagem…" + }, + "loader": { + "uploading": "Enviando…" + } + }, + "CollapseLink": { + "button": { + "collapse": "Ocultar", + "expand": "Expandir" + } + }, + "ContentForm": { + "button": { + "preview": "Prévia", + "write": "Escrita" + }, + "empty": { + "noContent": "Nada para mostrar." + } + }, + "CopyInput": { + "button": { + "copy": "Copiar" + }, + "message": { + "success": "Texto copiado para a área de transferência!" + } + }, + "DangerousButton": { + "button": { + "cancel": "Cancelar", + "confirm": "Confirmar" + }, + "header": { + "confirm": "Você deseja confirmar esta ação?" + } + }, + "Duration": { + "meta": { + "hours": "{ hours } h { minutes } min", + "minutes": "{ minutes } min" + } + }, + "EmptyState": { + "button": { + "refresh": "Atualizar" + }, + "header": { + "noResults": "Sem resultados." + } + }, + "ExpandableDiv": { + "button": { + "less": "Mostrar menos", + "more": "Mostrar mais" + } + }, + "InlineSearchBar": { + "button": { + "clear": "Limpar" + }, + "label": { + "search": "Pesquisar" + }, + "placeholder": { + "search": "Pesquisar…" + } + }, + "LoginModal": { + "link": { + "login": "Entrar", + "signup": "Criar conta" + } + }, + "RenderedDescription": { + "button": { + "cancel": "Cancelar", + "edit": "Editar", + "less": "Mostrar menos", + "more": "Mostrar mais", + "update": "Atualizar descrição" + }, + "empty": { + "noDescription": "Sem descrição" + }, + "header": { + "failure": "Erro ao atualizar descrição" + } + }, + "UserMenu": { + "label": { + "language": "Idioma", + "shortcuts": "Atalhos de teclado" + }, + "link": { + "about": "Sobre", + "chat": "Sala de chat", + "docs": "Documentação", + "git": "Registro de bugs", + "login": "Entrar", + "logout": "Sair", + "notifications": "Notificações", + "profile": "Perfil", + "settings": "Configurações", + "signup": "Criar conta", + "support": "Texto de ajuda" + } + }, + "UserModal": { + "button": { + "switchInstance": "Usar outra instância" + }, + "header": { + "options": "Ações" + }, + "label": { + "language": "Idioma", + "shortcuts": "Atalhos de teclado" + }, + "link": { + "about": "Sobre", + "chat": "Sala de chat", + "git": "Registro de bugs", + "login": "Entrar", + "logout": "Sair", + "notifications": "Notificações", + "profile": "Perfil", + "settings": "Configurações", + "signup": "Criar conta", + "support": "Texto de ajuda" + } + } + }, + "favorites": { + "List": { + "empty": { + "noFavorites": "Sem faixas favoritadas ainda" + }, + "header": { + "favorites": "{ n } favorito | { n } favoritos" + }, + "link": { + "library": "Explorar biblioteca" + }, + "loader": { + "loading": "Carregando seus favoritos…" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Resultados por página" + }, + "title": "Seus Favoritos" + }, + "TrackFavoriteIcon": { + "button": { + "add": "Favoritar", + "remove": "Desfavoritar" + }, + "label": { + "inFavorites": "Nos favoritos" + } + } + }, + "federation": { + "FetchButton": { + "button": { + "close": "Fechar", + "reload": "Fechar e atualizar a página" + }, + "description": { + "failure": "Ocorreu um erro ao atualizar os dados:", + "pending": "A solicitação de atualização não foi realizada a tempo pelo nosso servidor. Será processado mais tarde.", + "skipped": "O servidor remoto retornou dados não suportados pelo Funkwhale.", + "success": "Os dados foram atualizados no servidor remoto." + }, + "header": { + "failure": "Atualizar erro", + "pending": "Atualizar pendentes", + "refresh": "Atualizando objeto do servidor remoto…", + "saveFailure": "Erro ao salvar configurações", + "skipped": "Atualização foi ignorada", + "success": "Atualizado" + }, + "loader": { + "awaitingResult": "Carregando…", + "fetchRequest": "Requisitando busca…" + }, + "table": { + "error": { + "label": { + "detail": "Detalhe do erro", + "type": "Tipo do erro" + }, + "value": { + "connectionError": "não foi possível se conectar com o servidor remoto", + "httpError": "Ocorreu um erro no HTTP ao contatar o servidor remoto", + "httpStatus": "O servidor remoto retornou com HTTP { status }", + "invalidAttributesError": "Dados retornados pelo servidor remoto tinham atributos inválidos ou ausentes", + "invalidJsonError": "O servidor remoto retornou dados inválidos de JSON ou JSON-LD", + "timeoutError": "O servidor remoto não respondeu a tempo", + "unknownError": "Erro desconhecido" + } + } + } + }, + "LibraryWidget": { + "button": { + "showMore": "Mostrar mais" + }, + "empty": { + "noMatch": "Nenhuma biblioteca encontrada." + } + } + }, + "forms": { + "PasswordInput": { + "button": { + "copy": "Copiar" + }, + "message": { + "copy": "Texto copiado para a área de transferência!" + }, + "title": "Mostrar/ocultar senha" + } + }, + "library": { + "AlbumBase": { + "link": { + "addDescription": "Adicionar descrição…" + }, + "meta": { + "episodes": "{ n } episódio | { n } episódios", + "tracks": "{ n } faixa | { n } faixas" + } + }, + "AlbumDetail": { + "description": { + "libraries": "Este álbum está presente nas seguintes bibliotecas:" + }, + "header": { + "episodes": "Episódios", + "libraries": "Bibliotecas do usuário", + "tracks": "Faixas" + }, + "meta": { + "volume": "Volume { number }" + } + }, + "AlbumDropdown": { + "button": { + "cancel": "Cancelar", + "delete": "Excluir…", + "edit": "Editar", + "embed": "Incorporar", + "more": "Mais…" + }, + "link": { + "discogs": "Pesquisar em Discogs", + "django": "Ver administração Django", + "domain": "Encaminhar para { domain}", + "moderation": "Abrir interface de moderação", + "musicbrainz": "Ver em MusicBrainz" + }, + "modal": { + "delete": { + "content": { + "warning": "O álbum será permanentemente excluído, junto com seus arquivos e dados." + }, + "header": "Excluir este álbum?" + }, + "embed": { + "header": "Incorpore este álbum em seu site" + } + } + }, + "AlbumEdit": { + "header": { + "edit": "Editar álbum", + "suggest": "Sugerir edição neste álbum" + }, + "message": { + "remote": "Não é possível editar este objeto, ele é gerenciado por outro servidor." + } + }, + "Albums": { + "button": { + "search": "Pesquisar" + }, + "empty": { + "noResults": "Nenhum álbum encontrado" + }, + "header": { + "browse": "Explorando álbums" + }, + "label": { + "search": "Pesquisar", + "tags": "Tags" + }, + "link": { + "addMusic": "Adicionar música" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Resultados por página" + }, + "placeholder": { + "search": "Insira o título do álbum…" + }, + "title": "Álbuns" + }, + "ArtistBase": { + "button": { + "cancel": "Cancelar", + "edit": "Editar", + "embed": "Incorporar", + "more": "Mais…", + "play": "Tocar todos os álbuns" + }, + "link": { + "discogs": "Pesquisar em Discogs", + "django": "Ver administração Django", + "domain": "Encaminhar para { domain}", + "moderation": "Abrir interface de moderação", + "musicbrainz": "Ver em MusicBrainz", + "wikipedia": "Pesquisar no Wikipedia" + }, + "meta": { + "albums": "{ n } álbuns | { n } álbuns", + "tracks": "{ n } faixa em | { n } faixas em" + }, + "modal": { + "embed": { + "header": "Incorpore a obra do(a) artista em seu site" + } + }, + "title": "Artista" + }, + "ArtistDetail": { + "button": { + "filter": "Excluir filtro", + "more": "Ver mais…" + }, + "description": { + "library": "Este artista está presente nas seguintes bibliotecas:" + }, + "header": { + "album": "Álbuns deste artista", + "library": "Bibliotecas do usuário", + "track": "Faixas deste artista" + }, + "link": { + "filter": "Revisar filtros" + }, + "message": { + "filter": "Você ocultou conteúdos deste(a) artista." + } + }, + "ArtistEdit": { + "header": { + "edit": "Editar artista", + "suggest": "Sugerir edição neste artista" + }, + "message": { + "remote": "Não é possível editar este objeto, ele é gerenciado por outro servidor." + } + }, + "Artists": { + "button": { + "search": "Pesquisar", + "upload": "Adicionar música" + }, + "empty": { + "noResults": "Nenhum artista encontrado" + }, + "header": { + "browse": "Explorando artistas" + }, + "label": { + "search": "Nome do(a) artista", + "tags": "Tags" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Resultados por página" + }, + "placeholder": { + "search": "Pesquisar…" + }, + "title": "Artistas" + }, + "EditCard": { + "button": { + "approve": "Aprovar", + "delete": "Excluir", + "reject": "Recusar" + }, + "header": { + "modification": "Modificação { id }" + }, + "link": { + "track": "Faixa #{ id } - { name }" + }, + "modal": { + "content": { + "warning": "A sugestão será permanentemente excluída." + }, + "delete": { + "header": "Excluir esta sugestão?" + } + }, + "status": { + "applied": "Aprovado e aplicado", + "approved": "Aprovado", + "pending": "Revisão pendente", + "rejected": "Recusado" + }, + "table": { + "update": { + "header": { + "field": "Campo", + "newValue": "Novo valor", + "oldValue": "Valor anterior" + }, + "notApplicable": "N/A" + } + } + }, + "EditForm": { + "button": { + "cancel": "Cancelar", + "clear": "Limpar", + "new": "Enviar outra edição", + "reset": "Redefinir para o valor inicial", + "showAll": "Mostrar todas as edições", + "showUnreviewed": "Mostrar apenas edições não revisadas", + "submit": "Enviar e aplicar edição", + "suggest": "Enviar sugestão" + }, + "empty": { + "suggestEdit": "Sugira uma alteração usando o formulário abaixo." + }, + "header": { + "failure": "Erro ao editar", + "recentEdits": "Edições recentes", + "success": "Sua edição foi enviada.", + "unreviewed": "Edições recentes esperando revisão" + }, + "label": { + "summary": "Resumo (opcional)" + }, + "message": { + "noPermission": "Você não tem permissão para editar este objeto, mas pode sugerir alterações. Depois de enviadas, as sugestões serão revisadas antes da aprovação." + }, + "notApplicable": "N/A", + "placeholder": { + "summary": "Ocorreu um erro ao salvar suas alterações." + } + }, + "FileUpload": { + "button": { + "cancel": "Cancelar", + "retry": "Reenviar" + }, + "description": { + "import": "Reiniciar importação" + }, + "header": { + "failure": "Erro ao enviar denúncia", + "server": "Importar status", + "status": "Importar status" + }, + "label": { + "extensions": "Extensões suportadas: { extensions }", + "remainingSpace": "Espaço de armazenamento restante", + "uploadWidget": "Clique para selecionar arquivos para enviar ou arraste e solte arquivos ou pastas" + }, + "link": { + "picard": "Recomendamos o uso do Picard para este propósito.", + "processing": "Processando", + "uploading": "Enviando" + }, + "message": { + "local": { + "copyright": "Não envie conteúdo protegido por direitos autorais em uma biblioteca pública porque você pode estar violando a lei", + "format": "Os arquivos de áudio que você está enviando estão com as tags adequadas.", + "message": "Você está prestes a enviar músicas para sua biblioteca. Antes de continuar, certifique-se de que:", + "tag": "Os arquivos de áudio que você está enviando estão com as tags adequadas." + } + }, + "table": { + "upload": { + "header": { + "actions": "Ações", + "filename": "Nome do arquivo", + "size": "Tamanho", + "status": "Status" + }, + "status": { + "pending": "Pendente", + "uploaded": "Enviado", + "uploading": "Enviando…" + } + } + }, + "tooltip": { + "denied": "Não enviado, certifique-se de que o arquivo não é muito grande e você não atingiu sua cota", + "extension": "Formato de arquivo inválido. Certifique-se de estar enviando um arquivo de áudio. As extensões suportadas são { extensions }", + "network": "Ocorreu um erro de rede ao enviar este arquivo", + "size": "Não é possível enviar este arquivo, certifique-se de que não é grande demais", + "timeout": "Tempo de envio esgotado, por favor, tente novamente" + } + }, + "FsBrowser": { + "button": { + "import": "Importado" + } + }, + "Home": { + "header": { + "playlists": "Listas de reprodução", + "recentlyAdded": "Adicionado recentemente", + "recentlyFavorited": "Favoritado recentemente", + "recentlyListened": "Escutado recentemente" + }, + "title": "Biblioteca" + }, + "ImportStatusModal": { + "button": { + "close": "Fechar" + }, + "error": { + "importFailure": "Ocorreu um erro durante o envio. Veja mais informações sobre abaixo.", + "invalidMetadata": { + "label": "Metadado inválido", + "message": "Os metadados incluídos no arquivo são inválidos ou alguns campos obrigatórios estão faltando." + }, + "unknownError": { + "label": "Erro desconhecido", + "message": "Ocorreu um erro desconhecido" + } + }, + "header": { + "importDetail": "Detalhe da importação" + }, + "link": { + "documentation": "Leia nossa documentação para este erro", + "support": "Abra um tópico de suporte (inclua informação de depuração na mensagem)" + }, + "message": { + "importDetail": "O envio ainda está pendente e logo será processado pelo servidor.", + "importSuccess": "Envio foi processado pelo servidor." + }, + "table": { + "error": { + "debug": "Informação de depuração", + "errorDetail": "Detalhe do erro", + "errorType": "Tipo do erro", + "help": "Procurar ajuda" + } + }, + "warning": { + "importSkipped": "O envio foi ignorado porque já existe em uma de suas bibliotecas." + } + }, + "Podcasts": { + "button": { + "cancel": "Cancelar", + "channel": "Criar canal", + "feed": "Inscreva-se em Funkwhale", + "search": "Pesquisar" + }, + "empty": { + "noResults": "Nenhum artista encontrado" + }, + "header": { + "browse": "Explorando artistas" + }, + "label": { + "tags": "Tags" + }, + "modal": { + "subscription": { + "header": "Inscrição" + } + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Resultados por página" + }, + "placeholder": { + "search": "Pesquisar…" + } + }, + "Radios": { + "button": { + "add": "Criar uma rádio", + "create": "Criar sua própria rádio" + }, + "empty": { + "noResults": "Nenhuma rádio encontrada" + }, + "header": { + "browse": "Explorando rádios", + "instance": "Rádios da instância", + "user": "Rádios do usuário" + }, + "label": { + "search": "Pesquisar" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Resultados por página" + }, + "placeholder": { + "search": "Insira o nome de uma rádio…" + }, + "title": "Rádios" + }, + "TagDetail": { + "header": { + "channels": "Canais", + "tracks": "Faixas" + }, + "link": { + "albums": "Álbuns", + "artists": "Artistas", + "moderation": "Abrir interface de moderação" + } + }, + "TagSelector": { + "placeholder": { + "search": "Pesquisar…" + } + }, + "TrackBase": { + "button": { + "cancel": "Cancelar", + "delete": "Excluir…", + "download": "Baixar", + "edit": "Editar", + "embed": "Incorporar", + "more": "Mais…", + "play": "Tocar" + }, + "link": { + "discogs": "Pesquisar em Discogs", + "django": "Ver administração Django", + "domain": "Encaminhar para { domain}", + "moderation": "Abrir interface de moderação", + "wikipedia": "Pesquisar no Wikipedia" + }, + "modal": { + "delete": { + "content": { + "warning": "A faixa será permanentemente excluída, junto com seus arquivos e dados." + }, + "header": "Excluir esta faixa?" + }, + "embed": { + "header": "Incorpore esta faixa em seu site" + } + }, + "title": "Faixa" + }, + "TrackDetail": { + "description": { + "library": "Esta faixa está presente nas seguintes bibliotecas:" + }, + "header": { + "episode": "Detalhes do episódio", + "library": "Bibliotecas remotas", + "playlists": "Listas remotas", + "release": "Detalhes de lançamento", + "track": "Detalhes da faixa" + }, + "link": { + "musicbrainz": "Ver em MusicBrainz" + }, + "notApplicable": "N/A", + "table": { + "release": { + "album": "Álbum", + "artist": "Artista", + "copyright": "Direitos autorais", + "license": "Licença" + }, + "track": { + "bitrate": { + "label": "Taxa de bits" + }, + "codec": "Codec", + "downloads": "Baixar", + "duration": "Duração", + "size": "Tamanho" + } + } + }, + "TrackEdit": { + "header": { + "edit": "Editar faixa", + "suggest": "Sugerir edição nesta faixa" + }, + "message": { + "remote": "Não é possível editar este objeto, ele é gerenciado por outro servidor." + } + }, + "radios": { + "Builder": { + "button": { + "filter": "Adicionar filtro", + "save": "Salvar" + }, + "description": { + "builder": "Você pode usar esta interface para criar sua própria rádio personalizada, que tocará faixas de sua escolha." + }, + "header": { + "builder": "Criador", + "created": "Rádio criada", + "matches": "{ n } faixa encontrada com os filtros | { n } faixas encontradas com os filtros", + "updated": "Rádio atualizada" + }, + "label": { + "description": "Descrição", + "filter": "Adicionar filtros para personalizar sua rádio", + "name": "Nome da Rádio", + "public": "Mostrar publicamente" + }, + "option": { + "filter": "Selecione um filtro" + }, + "placeholder": { + "description": "Minha incrível descrição", + "name": "Minha incrível rádio" + }, + "table": { + "filter": { "header": { - "accessedDate": "Data de acesso", - "account": "Conta", - "creationDate": "Data de criação", - "domain": "Domínio", - "importStatus": "Importar status", - "library": "Biblioteca", - "name": "Nome", - "size": "Tamanho", - "visibility": "Visibilidade" + "actions": "Ações", + "candidates": "Candidatos(as)", + "config": "Configuração", + "exclude": "Excluir", + "name": "Nome do filtro" } } }, + "title": "Criador de rádio" + }, + "Filter": { + "cancelButton": "Cancelar", + "excludeLabel": "Excluir", + "matchingTracksModalHeader": "Faixas encontradas", + "removeButton": "Remover" + } + } + }, + "manage": { + "ChannelsTable": { + "label": { + "category": "Categoria", + "search": "Pesquisar" + }, + "link": { + "local": "Local", + "moderation": "Abrir interface de moderação" + }, + "option": { + "all": "Todos" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por domínio, nome, conta…" + }, + "table": { + "channel": { + "header": { + "account": "Conta", + "albums": "Álbuns", + "creationDate": "Data de criação", + "domain": "Domínio", + "name": "Nome", + "tracks": "Faixas" + } + } + } + }, + "library": { + "AlbumsTable": { + "action": { + "delete": { + "label": "Excluir", + "warning": "Os álbuns selecionados serão permanentemente excluídos, junto com as faixas, envios, favoritos e histórico de escutados." + } + }, + "label": { + "search": "Pesquisar" + }, + "link": { + "local": "Local", + "moderation": "Abrir interface de moderação" + }, + "notApplicable": "N/A", + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por domínio, título, artista, ID MusicBrainz…" + }, + "table": { + "album": { + "header": { + "artist": "Artista", + "creationDate": "Data de criação", + "domain": "Domínio", + "name": "Título", + "releaseDate": "Data de lançamento", + "tracks": "Faixas" + } + } + } + }, + "ArtistsTable": { + "action": { + "delete": { + "label": "Excluir", + "warning": "O(A) artista selecionado(a) será permanentemente excluído(a), junto com as faixas, álbuns, favoritos e histórico de escutados." + } + }, + "label": { + "category": "Categoria", + "search": "Pesquisar" + }, + "link": { + "local": "Local" + }, + "option": { + "all": "Todos" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por domínio, nome, ID MusicBrainz…" + }, + "table": { + "artist": { + "header": { + "albums": "Álbuns", + "creationDate": "Data de criação", + "domain": "Domínio", + "name": "Nome", + "tracks": "Faixas" + } + } + } + }, + "EditsCardList": { + "label": { + "status": "Status" + }, + "option": { + "all": "Todos", + "approved": "Aprovado", + "pending": "Revisão pendente", + "rejected": "Recusado" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por conta, resumo, domínio…" + } + }, + "LibrariesTable": { + "action": { + "delete": { + "label": "Excluir", + "warning": "A biblioteca selecionada será permanentemente excluída, junto com os envios e seguidos." + } + }, + "label": { + "search": "Pesquisar", + "visibility": "Visibilidade" + }, + "link": { + "local": "Local" + }, + "option": { + "all": "Todos" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por domínio, artista, nome, descrição…" + }, + "table": { + "library": { + "header": { + "account": "Conta", + "creationDate": "Data de criação", + "domain": "Domínio", + "followers": "Seguidores", + "name": "Nome", + "uploads": "Envios", + "visibility": "Visibilidade" + } + } + } + }, + "TagsTable": { + "action": { + "delete": { + "label": "Excluir", + "warning": "A tag selecionada será permanentemente removida e desvinculada do conteúdo, se houver um." + } + }, + "label": { + "search": "Pesquisar" + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por nome" + }, + "table": { + "tag": { + "header": { + "albums": "Álbuns", + "artists": "Artistas", + "creationDate": "Data de criação", + "name": "Nome", + "tracks": "Faixas" + } + } + } + }, + "TracksTable": { + "action": { + "delete": { + "label": "Excluir", + "warning": "As faixas selecionadas serão permanentemente excluídas, junto com os envios, favoritos e histórico de escutados." + } + }, + "label": { + "search": "Pesquisar" + }, + "link": { + "local": "Local" + }, + "notApplicable": "N/A", + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por domínio, título, artista, álbum, ID MusicBrainz…" + }, + "table": { + "track": { + "header": { + "album": "Álbum", + "artist": "Artista", + "creationDate": "Data de criação", + "domain": "Domínio", + "license": "Licença", + "title": "Título" + } + } + } + }, + "UploadsTable": { + "action": { + "delete": { + "label": "Excluir", + "warning": "O envio selecionado será permanentemente excluído." + } + }, + "label": { + "search": "Pesquisar", + "status": "Status", + "visibility": "Visibilidade" + }, + "link": { + "local": "Local" + }, + "notApplicable": "N/A", "option": { "all": "Todos", "failed": "Falhou", @@ -1761,392 +2165,68 @@ }, "label": "Ordenando" }, - "action": { - "delete": { - "label": "Excluir", - "warning": "O envio selecionado será permanentemente excluído." - } - }, - "link": { - "local": "Local" - }, - "notApplicable": "N/A", - "label": { - "search": "Pesquisar", - "status": "Status", - "visibility": "Visibilidade" + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" }, "placeholder": { "search": "Pesquisar por domínio, artista, nome, referência, fonte…" }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - } - }, - "LibrariesTable": { "table": { - "library": { + "upload": { "header": { + "accessedDate": "Data de acesso", "account": "Conta", "creationDate": "Data de criação", "domain": "Domínio", - "followers": "Seguidores", + "importStatus": "Importar status", + "library": "Biblioteca", "name": "Nome", - "uploads": "Envios", + "size": "Tamanho", "visibility": "Visibilidade" } } - }, - "option": { - "all": "Todos" - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "action": { - "delete": { - "label": "Excluir", - "warning": "A biblioteca selecionada será permanentemente excluída, junto com os envios e seguidos." - } - }, - "link": { - "local": "Local" - }, - "label": { - "search": "Pesquisar", - "visibility": "Visibilidade" - }, - "placeholder": { - "search": "Pesquisar por domínio, artista, nome, descrição…" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - } - }, - "TracksTable": { - "table": { - "track": { - "header": { - "album": "Álbum", - "artist": "Artista", - "creationDate": "Data de criação", - "domain": "Domínio", - "license": "Licença", - "title": "Título" - } - } - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "action": { - "delete": { - "label": "Excluir", - "warning": "As faixas selecionadas serão permanentemente excluídas, junto com os envios, favoritos e histórico de escutados." - } - }, - "link": { - "local": "Local" - }, - "notApplicable": "N/A", - "label": { - "search": "Pesquisar" - }, - "placeholder": { - "search": "Pesquisar por domínio, título, artista, álbum, ID MusicBrainz…" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - } - }, - "ArtistsTable": { - "table": { - "artist": { - "header": { - "albums": "Álbuns", - "creationDate": "Data de criação", - "domain": "Domínio", - "name": "Nome", - "tracks": "Faixas" - } - } - }, - "option": { - "all": "Todos" - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "label": { - "category": "Categoria", - "search": "Pesquisar" - }, - "action": { - "delete": { - "label": "Excluir", - "warning": "O(A) artista selecionado(a) será permanentemente excluído(a), junto com as faixas, álbuns, favoritos e histórico de escutados." - } - }, - "link": { - "local": "Local" - }, - "placeholder": { - "search": "Pesquisar por domínio, nome, ID MusicBrainz…" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - } - }, - "TagsTable": { - "table": { - "tag": { - "header": { - "albums": "Álbuns", - "artists": "Artistas", - "creationDate": "Data de criação", - "name": "Nome", - "tracks": "Faixas" - } - } - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "action": { - "delete": { - "label": "Excluir", - "warning": "A tag selecionada será permanentemente removida e desvinculada do conteúdo, se houver um." - } - }, - "label": { - "search": "Pesquisar" - }, - "placeholder": { - "search": "Pesquisar por nome" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - } - }, - "EditsCardList": { - "option": { - "all": "Todos", - "approved": "Aprovado", - "pending": "Revisão pendente", - "rejected": "Recusado" - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Ordem" - }, - "label": "Ordenando" - }, - "placeholder": { - "search": "Pesquisar por conta, resumo, domínio…" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - }, - "label": { - "status": "Status" - } - }, - "AlbumsTable": { - "table": { - "album": { - "header": { - "artist": "Artista", - "creationDate": "Data de criação", - "domain": "Domínio", - "name": "Título", - "releaseDate": "Data de lançamento", - "tracks": "Faixas" - } - } - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "action": { - "delete": { - "label": "Excluir", - "warning": "Os álbuns selecionados serão permanentemente excluídos, junto com as faixas, envios, favoritos e histórico de escutados." - } - }, - "link": { - "local": "Local", - "moderation": "Abrir interface de moderação" - }, - "notApplicable": "N/A", - "label": { - "search": "Pesquisar" - }, - "placeholder": { - "search": "Pesquisar por domínio, título, artista, ID MusicBrainz…" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" } } }, "moderation": { - "ReportCard": { - "table": { - "object": { - "account": "Conta", - "domain": "Domínio", - "local": "Local", - "owner": "Dono(a)", - "type": "Tipo" - }, - "status": { - "assignedTo": "Atribuído a", - "internalNotes": "Observações internas", - "resolutionDate": "Data de resolução", - "resolved": "Resolvido", - "status": "Status", - "unresolved": "Resolução desfeita" - }, - "report": { - "category": "Categoria", - "creationDate": "Data de criação", - "submittedBy": "Enviado por" + "AccountsTable": { + "action": { + "purge": { + "label": "Excluir" } }, - "header": { - "actions": "Ações", - "notes": "Observações internas", - "message": "Mensagem", - "reportedObject": "Objeto denunciado" - }, - "button": { - "confirmDelete": "Excluir", - "delete": "Excluir objeto denunciado", - "resolve": "Resolver", - "unresolve": "Desfazer resolução" - }, - "modal": { - "delete": { - "header": "Excluir objeto denunciado?", - "content": { - "warning": "Isto irá excluir o objeto associado à esta denúncia e marcar a denúncia como resolvida. A exclusão é irreversível." - } - } - }, - "notApplicable": "N/A", - "link": { - "moderation": "Abrir interface de moderação", - "report": "Denunciar { id }", - "publicPage": "Ver página pública" - }, - "warning": { - "objectDeleted": "O objeto associado à esta denúncia foi excluído." - } - }, - "UserRequestCard": { - "header": { - "actions": "Ações", - "notes": "Observações internas", - "signup": "Mensagem" - }, - "button": { - "approve": "Aprovar" - }, - "table": { - "status": { - "approved": "Aprovado", - "assignedTo": "Atribuído a", - "internalNotes": "Observações internas", - "pending": "Pendente", - "refused": "Recusado", - "status": "Status" - }, - "request": { - "creationDate": "Data de criação", - "submittedBy": "Enviado por" - } - }, - "notApplicable": "N/A", - "link": { - "request": "Solicitar { id }" - } - }, - "InstancePolicyForm": { - "header": { - "addRule": "Adicionar nova regra de moderação", - "editRule": "Editar regra de moderação", - "failure": "Erro ao criar regra" - }, "label": { - "blockAll": "Bloquear tudo", - "policyDisabled": "Desativado", - "policyEnabled": "Ativado", - "silenceActivity": "Silenciar atividade", - "silenceNotifications": "Silenciar notificações", - "customizeRule": "Ou personalize sua regra", - "policyReason": "Motivo", - "rejectMedia": "Recusar mídia" + "search": "Pesquisar" }, - "tooltip": { - "blockAll": "Bloquear tudo desta conta ou domínio. Isso impedirá a interação e eliminará conteúdos relacionados (envios, bibliotecas, seguidos, etc.)", - "rejectMedia": "Não baixar nenhum arquivo de mídia (áudio, capa de álbum, imagem de exibição…) desta conta ou domínio. Esta ação também excluirá o conteúdo já existente.", - "summary": "Explique por que está aplicando esta regra. Dependendo da configuração de sua instância, a descrição te ajudará a se lembrar o motivo da ação e também será exposta publicamente para que os usuários possam saber quais regras de moderação estão ativas.", - "silenceActivity": "Ocultar conteúdo da conta ou domínio, exceto de seguidores.", - "silenceNotifications": "Impedir conta ou domínio de notificar, exceto seguidores.", - "isActive": "Usar essa configuração ativa/desativa as regras sem removê-las." + "link": { + "local": "Conta local" }, - "button": { - "cancel": "Cancelar", - "create": "Criar", - "delete": "Excluir", - "confirm": "Excluir regra de moderação", - "update": "Atualizar" + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" }, - "modal": { - "delete": { - "header": "Excluir esta regra de moderação?", - "content": { - "warning": "Esta ação é irreversível." - } - } - } - }, - "NoteForm": { - "button": { - "add": "Adicionar comentário" + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" }, "placeholder": { - "summary": "Descreva que ações foram tomadas, ou alguma outra atualização relacionada…" + "search": "Pesquisar por domínio, nome de usuário, bio…" }, - "header": { - "failure": "Erro ao enviar comentário" + "table": { + "account": { + "header": { + "domain": "Domínio", + "firstSeen": "Visto primeiro", + "lastSeen": "Última visualização", + "moderationRule": "Sob regra de moderação", + "name": "Nome", + "uploads": "Envios" + }, + "moderationRule": "Sim" + } } }, "DomainsTable": { @@ -2161,6 +2241,13 @@ "label": "Remover da lista de permissão" } }, + "label": { + "inList": "Está presente na lista de permissão", + "search": "Pesquisar" + }, + "link": { + "list": "Este domínio está presente na sua lista de permissão" + }, "option": { "all": "Todos", "no": "Não", @@ -2174,73 +2261,32 @@ }, "label": "Ordenando" }, - "table": { - "domain": { - "header": { - "firstSeen": "Visto primeiro", - "name": "Nome", - "receivedMessages": "Mensagens recebidas", - "moderationRule": "Sob regra de moderação", - "users": "Usuários" - }, - "moderationRule": "Sim" - } - }, - "label": { - "inList": "Está presente na lista de permissão", - "search": "Pesquisar" + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" }, "placeholder": { "search": "Pesquisar por nome…" }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - }, - "link": { - "list": "Este domínio está presente na sua lista de permissão" - } - }, - "AccountsTable": { - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, "table": { - "account": { + "domain": { "header": { - "domain": "Domínio", "firstSeen": "Visto primeiro", - "lastSeen": "Última visualização", - "name": "Nome", "moderationRule": "Sob regra de moderação", - "uploads": "Envios" + "name": "Nome", + "receivedMessages": "Mensagens recebidas", + "users": "Usuários" }, "moderationRule": "Sim" } - }, - "link": { - "local": "Conta local" - }, - "action": { - "purge": { - "label": "Excluir" - } - }, - "label": { - "search": "Pesquisar" - }, - "placeholder": { - "search": "Pesquisar por domínio, nome de usuário, bio…" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" } }, "InstancePolicyCard": { + "button": { + "edit": "Editar" + }, + "header": { + "rule": "Regra" + }, "label": { "blockAll": "Bloquear tudo", "muteActivity": "Silenciar atividade", @@ -2248,15 +2294,49 @@ "reason": "Motivo", "rejectMedia": "Recusar mídia" }, - "button": { - "edit": "Editar" - }, "status": { "enabled": "Ativado", "paused": "Pausado" + } + }, + "InstancePolicyForm": { + "button": { + "cancel": "Cancelar", + "confirm": "Excluir regra de moderação", + "create": "Criar", + "delete": "Excluir", + "update": "Atualizar" }, "header": { - "rule": "Regra" + "addRule": "Adicionar nova regra de moderação", + "editRule": "Editar regra de moderação", + "failure": "Erro ao criar regra" + }, + "label": { + "blockAll": "Bloquear tudo", + "customizeRule": "Ou personalize sua regra", + "policyDisabled": "Desativado", + "policyEnabled": "Ativado", + "policyReason": "Motivo", + "rejectMedia": "Recusar mídia", + "silenceActivity": "Silenciar atividade", + "silenceNotifications": "Silenciar notificações" + }, + "modal": { + "delete": { + "content": { + "warning": "Esta ação é irreversível." + }, + "header": "Excluir esta regra de moderação?" + } + }, + "tooltip": { + "blockAll": "Bloquear tudo desta conta ou domínio. Isso impedirá a interação e eliminará conteúdos relacionados (envios, bibliotecas, seguidos, etc.)", + "isActive": "Usar essa configuração ativa/desativa as regras sem removê-las.", + "rejectMedia": "Não baixar nenhum arquivo de mídia (áudio, capa de álbum, imagem de exibição…) desta conta ou domínio. Esta ação também excluirá o conteúdo já existente.", + "silenceActivity": "Ocultar conteúdo da conta ou domínio, exceto de seguidores.", + "silenceNotifications": "Impedir conta ou domínio de notificar, exceto seguidores.", + "summary": "Explique por que está aplicando esta regra. Dependendo da configuração de sua instância, a descrição te ajudará a se lembrar o motivo da ação e também será exposta publicamente para que os usuários possam saber quais regras de moderação estão ativas." } }, "InstancePolicyModal": { @@ -2266,117 +2346,168 @@ }, "modal": { "manage": { - "header": "Gerenciar regras de moderação para { obj }", "content": { "warning": "Esta entidade está sujeita à regras específicas de moderação" - } + }, + "header": "Gerenciar regras de moderação para { obj }" } } }, + "NoteForm": { + "button": { + "add": "Adicionar comentário" + }, + "header": { + "failure": "Erro ao enviar comentário" + }, + "placeholder": { + "summary": "Descreva que ações foram tomadas, ou alguma outra atualização relacionada…" + } + }, "NotesThread": { "button": { "delete": "Excluir" }, "modal": { "delete": { - "header": "Excluir este comentário?", "content": { "warning": "O comentário será permanentemente excluído." - } - } - } - } - }, - "ChannelsTable": { - "table": { - "channel": { - "header": { - "account": "Conta", - "albums": "Álbuns", - "creationDate": "Data de criação", - "domain": "Domínio", - "name": "Nome", - "tracks": "Faixas" + }, + "header": "Excluir este comentário?" } } }, - "option": { - "all": "Todos" - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" + "ReportCard": { + "button": { + "confirmDelete": "Excluir", + "delete": "Excluir objeto denunciado", + "resolve": "Resolver", + "unresolve": "Desfazer resolução" }, - "label": "Ordenando" + "header": { + "actions": "Ações", + "message": "Mensagem", + "notes": "Observações internas", + "reportedObject": "Objeto denunciado" + }, + "link": { + "moderation": "Abrir interface de moderação", + "publicPage": "Ver página pública", + "report": "Denunciar { id }" + }, + "modal": { + "delete": { + "content": { + "warning": "Isto irá excluir o objeto associado à esta denúncia e marcar a denúncia como resolvida. A exclusão é irreversível." + }, + "header": "Excluir objeto denunciado?" + } + }, + "notApplicable": "N/A", + "table": { + "object": { + "account": "Conta", + "domain": "Domínio", + "local": "Local", + "owner": "Dono(a)", + "type": "Tipo" + }, + "report": { + "category": "Categoria", + "creationDate": "Data de criação", + "submittedBy": "Enviado por" + }, + "status": { + "assignedTo": "Atribuído a", + "internalNotes": "Observações internas", + "resolutionDate": "Data de resolução", + "resolved": "Resolvido", + "status": "Status", + "unresolved": "Resolução desfeita" + } + }, + "warning": { + "objectDeleted": "O objeto associado à esta denúncia foi excluído." + } }, - "label": { - "category": "Categoria", - "search": "Pesquisar" - }, - "link": { - "local": "Local", - "moderation": "Abrir interface de moderação" - }, - "placeholder": { - "search": "Pesquisar por domínio, nome, conta…" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" + "UserRequestCard": { + "button": { + "approve": "Aprovar" + }, + "header": { + "actions": "Ações", + "notes": "Observações internas", + "signup": "Mensagem" + }, + "link": { + "request": "Solicitar { id }" + }, + "notApplicable": "N/A", + "table": { + "request": { + "creationDate": "Data de criação", + "submittedBy": "Enviado por" + }, + "status": { + "approved": "Aprovado", + "assignedTo": "Atribuído a", + "internalNotes": "Observações internas", + "pending": "Pendente", + "refused": "Recusado", + "status": "Status" + } + } } }, "users": { - "UsersTable": { + "InvitationForm": { + "button": { + "clear": "Limpar", + "new": "Solicitar novo convite" + }, + "header": { + "failure": "Erro ao gerar convite" + }, + "label": { + "invite": "Código de convite" + }, + "placeholder": { + "invitation": "Deixe vazio para um código aleatório" + }, "table": { - "user": { + "invitation": { "header": { - "accountStatus": "Status da conta", - "email": "E-mail", - "lastActivity": "Última atividade", - "permissions": "Permissões", - "signup": "Criar conta", - "status": "Status", - "username": "Nome de usuário" - }, - "accountStatus": { - "active": "Ativo", - "inactive": "Inativo" - }, - "status": { - "admin": "Administrador(a)", - "regular": "Usuário regular", - "staff": "Membro da equipe" + "code": "Código", + "link": "Compartilhar link" } } - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Direção da ordem" - }, - "label": "Ordenando" - }, - "permission": { - "library": "Biblioteca", - "moderation": "Moderação", - "settings": "Configurações" - }, - "notApplicable": "N/A", - "placeholder": { - "search": "Pesquisar por nome de usuário, e-mail, nome…" - }, - "pagination": { - "results": "Carregando… | Carregando…" } }, "InvitationsTable": { + "action": { + "delete": "Excluir" + }, + "label": { + "expired": "Expirado", + "search": "Pesquisar", + "status": "Status", + "unused": "Não usado", + "used": "Usado" + }, "option": { "all": "Todos", "expired": "Expirado/usado", "open": "Abrir" }, + "ordering": { + "label": "Ordenando" + }, + "pagination": { + "results": "Carregando… | Carregando…" + }, + "placeholder": { + "search": "Pesquisar por nome de usuário, e-mail, código…" + }, "table": { "invitation": { "header": { @@ -2387,534 +2518,10 @@ "status": "Status" } } - }, - "action": { - "delete": "Excluir" - }, - "label": { - "expired": "Expirado", - "unused": "Não usado", - "search": "Pesquisar", - "status": "Status", - "used": "Usado" - }, - "ordering": { - "label": "Ordenando" - }, - "placeholder": { - "search": "Pesquisar por nome de usuário, e-mail, código…" - }, - "pagination": { - "results": "Carregando… | Carregando…" } }, - "InvitationForm": { - "button": { - "clear": "Limpar", - "new": "Solicitar novo convite" - }, - "table": { - "invitation": { - "header": { - "code": "Código", - "link": "Compartilhar link" - } - } - }, - "header": { - "failure": "Erro ao gerar convite" - }, - "label": { - "invite": "Código de convite" - }, - "placeholder": { - "invitation": "Deixe vazio para um código aleatório" - } - } - } - }, - "admin": { - "SignupFormBuilder": { - "table": { - "additionalFields": { - "header": { - "actions": "Ações", - "label": "Nome do campo", - "type": "Tipo do campo" - }, - "required": { - "false": "Não", - "true": "Sim" - } - } - }, - "button": { - "add": "Adicionar um novo campo", - "edit": "Editar formulário", - "preview": "Ver formulário" - }, - "label": { - "additionalField": "Campo adicional", - "additionalFields": "Campos adicionais", - "delete": "Excluir", - "helpText": "Texto de ajuda" - }, - "help": { - "additionalFields": "Campos do formulário adicional para ser mostrado no formulário. Só aparece se a validação manual de nova conta estiver ativada.", - "helpText": "Texto opcional para ser mostrado no início do formulário de nova conta." - } - }, - "SettingsGroup": { - "header": { - "image": "Imagem atual", - "error": "Erro ao salvar configurações" - }, - "button": { - "save": "Salvar" - }, - "message": { - "success": "As configurações foram atualizadas." - } - } - }, - "moderation": { - "ReportCategoryDropdown": { - "option": { - "all": "Todos" - }, - "label": { - "category": "Categoria" - } - }, - "ReportModal": { - "header": { - "disabled": "Denúncias anônimas estão desativadas, entre na sua conta para denunciar.", - "modal": "Você deseja denunciar este objeto?", - "submissionFailure": "Erro ao enviar denúncia" - }, - "button": { - "cancel": "Cancelar", - "submit": "Enviar denúncia" - }, - "label": { - "email": "E-mail", - "forwardToDomain": "Encaminhar para { domain}", - "message": "Mensagem" - }, - "description": { - "forwardToDomain": "Encaminhe uma cópia anônima da sua denúncia para o servidor armazenando este elemento.", - "message": "Use este campo para fornecer contexto adicional para o moderador que irá atender sua denúncia.", - "modal": "Use este formulário para enviar uma denúncia para nossa equipe de moderação.", - "email": "Usaremos este e-mail se precisarmos entrar em contato com você a respeito desta denúncia." - }, - "message": { - "submissionSuccess": "Sua denúncia foi enviada" - } - }, - "FilterModal": { - "button": { - "cancel": "Cancelar", - "hide": "Ocultar conteúdo" - }, - "message": { - "success": "Filtro adicionado" - }, - "header": { - "modal": "Você deseja ocultar o conteúdo do(a) artista \"{ name }\"?", - "failure": "Erro ao criar filtro" - }, - "warning": { - "createFilter": { - "listItem2": "No widget \"Recentemente adicionado\"", - "listItem3": "Em listas de artistas e álbuns", - "listItem1": "Nos favoritos e histórico de escutados de outros usuários", - "listItem4": "Nas sugestões de rádios", - "listIntro": "Você não verá mais faixas, álbuns e atividades de usuários vinculados a este(a) artista:" - } - }, - "help": { - "createFilter": "Você pode gerenciar e atualizar seus filtros a qualquer momento nas configurações da conta." - } - } - }, - "federation": { - "FetchButton": { - "description": { - "failure": "Ocorreu um erro ao atualizar os dados:", - "success": "Os dados foram atualizados no servidor remoto.", - "pending": "A solicitação de atualização não foi realizada a tempo pelo nosso servidor. Será processado mais tarde.", - "skipped": "O servidor remoto retornou dados não suportados pelo Funkwhale." - }, - "table": { - "error": { - "value": { - "httpError": "Ocorreu um erro no HTTP ao contatar o servidor remoto", - "invalidAttributesError": "Dados retornados pelo servidor remoto tinham atributos inválidos ou ausentes", - "connectionError": "não foi possível se conectar com o servidor remoto", - "httpStatus": "O servidor remoto retornou com HTTP { status }", - "timeoutError": "O servidor remoto não respondeu a tempo", - "invalidJsonError": "O servidor remoto retornou dados inválidos de JSON ou JSON-LD", - "unknownError": "Erro desconhecido" - }, - "label": { - "detail": "Detalhe do erro", - "type": "Tipo do erro" - } - } - }, - "button": { - "close": "Fechar", - "reload": "Fechar e atualizar a página" - }, - "header": { - "saveFailure": "Erro ao salvar configurações", - "failure": "Atualizar erro", - "pending": "Atualizar pendentes", - "success": "Atualizado", - "skipped": "Atualização foi ignorada", - "refresh": "Atualizando objeto do servidor remoto…" - }, - "loader": { - "fetchRequest": "Requisitando busca…", - "awaitingResult": "Carregando…" - } - }, - "LibraryWidget": { - "empty": { - "noMatch": "Nenhuma biblioteca encontrada." - }, - "button": { - "showMore": "Mostrar mais" - } - } - }, - "ShortcutsModal": { - "shortcut": { - "audio": { - "label": "Atalhos do reprodutor de áudio", - "clearQueue": "Limpar fila", - "decreaseVolume": "Diminuir volume", - "expandQueue": "Expandir fila/ visão do tocador", - "increaseVolume": "Aumentar volume", - "playPause": "Tocar/pausar a faixa atual", - "playNext": "Tocar próxima faixa", - "playPrevious": "Tocar faixa anterior", - "seekBack30": "Voltar 30s", - "seekBack5": "Voltar 5s", - "seekForward30": "Avançar 30s", - "seekForward5": "Avançar 5s", - "shuffleQueue": "Embaralhar fila", - "toggleFavorite": "Alterar favorito", - "toggleMute": "Alterar mudo", - "toggleLoop": "Botão de repetição da fila" - }, - "general": { - "focus": "Foco na barra de pesquisa", - "label": "Atalhos gerais", - "show": "Mostrar atalhos de teclado disponíveis", - "unfocus": "Desfocar a barra de pesquisa" - } - }, - "button": { - "close": "Fechar" - }, - "header": { - "modal": "Atalhos de teclado" - } - }, - "SetInstanceModal": { - "button": { - "cancel": "Cancelar", - "submit": "Enviar" - }, - "header": { - "chooseInstance": "Escolha sua instância", - "failure": "Não foi possível entrar neste link", - "suggestions": "Opções sugeridas" - }, - "label": { - "url": "Link da instância" - }, - "help": { - "notFunkwhaleServer": "Este link não é de uma instância Funkwhale", - "serverDown": "Parece que o servidor caiu", - "selectPod": "Para continuar, insira a instância Funkwhale que você deseja entrar. Digite o endereço ou selecione uma das sugeridas." - }, - "message": { - "newUrl": "Você está usando a instância Funkwhale em { url }" - } - }, - "Queue": { - "button": { - "clear": "Limpar", - "close": "Fechar", - "stopRadio": "Parar rádio" - }, - "label": { - "duration": "Duração", - "addArtistContentFilter": "Ocultar conteúdo deste(a) artista…", - "next": "Próxima faixa", - "pause": "Pausado", - "play": "Tocar", - "previous": "Faixa anterior", - "queue": "Fila", - "remove": "Remover", - "restart": "Próxima faixa" - }, - "message": { - "radio": "Novas faixas serão acrescentadas aqui automaticamente.", - "automaticPlay": "A próxima faixa tocará automaticamente em alguns segundos…" - }, - "header": { - "failure": "Não foi possível carregar a faixa", - "radio": "Você tem uma rádio tocando" - }, - "meta": { - "queuePosition": "Faixa ({ index } de { length })" - }, - "warning": { - "connectivity": "Você pode ter um problema de conexão." - } - }, - "forms": { - "PasswordInput": { - "button": { - "copy": "Copiar" - }, - "title": "Mostrar/ocultar senha", - "message": { - "copy": "Texto copiado para a área de transferência!" - } - } - }, - "radios": { - "Card": { - "button": { - "edit": "Editar" - } - }, - "Button": { - "startRadio": "Tocar faixa", - "stopRadio": "Parar rádio" - } - }, - "RemoteSearchForm": { - "header": { - "fetchFailed": "Erro ao obter objeto" - }, - "label": { - "fediverse": { - "fieldLabel": "Objeto denunciado", - "title": "Pesquisar no fediverso" - }, - "rss": { - "fieldPlaceholder": "{'@'}canal{'@'}pod.exemplo ou https://linkdosite.exemplo/rss.xml", - "fieldLabel": "Localização do canal" - } - }, - "button": { - "search": "Pesquisar" - }, - "warning": { - "unsupported": "Tipo de objeto ainda não suportado" - }, - "error": { - "fetchFailed": "Não foi possível recuperar este objeto" - }, - "description": { - "fediverse": "Use este formulário para recuperar um objeto armazenado em algum lugar no fediverso." - } - }, - "PageNotFound": { - "link": { - "home": "Ir à página inicial" - }, - "title": "Página Não Encontrada", - "header": { - "pageNotFound": "Página não encontrada!" - }, - "message": { - "pageNotFound": "Desculpe, mas esta página não existe:" - } - }, - "vui": { - "Pagination": { - "next": "Próximo", - "label": "Paginação", - "previous": "Anterior" - } - }, - "tags": { - "List": { - "button": { - "more": "Mostrar mais 1 tag | Mostrar mais { n } tags" - } - } - } - }, - "views": { - "channels": { - "DetailBase": { - "meta": { - "episodes": "{ n } episódio | { n } episódios", - "listenings": "{ n } áudio | { n } áudios", - "subscribers": "{ n } inscrito | { n } inscritos", - "tracks": "{ n } faixa | { n } faixas" - }, - "link": { - "channelEpisodes": "Episódios", - "moderation": "Abrir interface de moderação", - "channelOverview": "Visão geral", - "channelTracks": "Faixas", - "domainView": "Encaminhar para { domain}" - }, - "header": { - "artistChannel": "Canal do artista" - }, - "button": { - "cancel": "Cancelar", - "confirm": "Excluir", - "delete": "Excluir…", - "edit": "Editar…", - "embed": "Incorporar", - "play": "Tocar", - "updateChannel": "Atualizar canal", - "upload": "Enviar" - }, - "title": "Canal", - "modal": { - "subscribe": { - "rss": { - "content": { - "help": "Copie e cole no aplicativo de Podcast o seguinte link:" - } - }, - "funkwhale": { - "header": "Inscreva-se em Funkwhale" - } - }, - "delete": { - "header": "Excluir este canal?", - "content": { - "warning": "O canal será permanentemente excluído, junto com seus arquivos e dados." - } - }, - "embed": { - "header": "Incorpore a obra do(a) artista em seu site" - } - } - }, - "DetailOverview": { - "link": { - "addAlbum": "Adicionar novo", - "erroredUploads": "Ver envios com falha" - }, - "header": { - "albums": "Álbuns", - "latestTracks": "Últimas faixas", - "uploadsSuccess": "Envio publicado com sucesso" - }, - "meta": { - "progress": "Envios processados:" - } - }, - "SubscriptionsList": { - "link": { - "addNew": "Adicionar novo" - }, - "button": { - "cancel": "Cancelar" - }, - "placeholder": { - "search": "Filtrar por nome…" - }, - "modal": { - "subscription": { - "header": "Inscrição" - } - } - } - }, - "content": { - "libraries": { - "Card": { - "meta": { - "tracks": "{ n } faixa | { n } faixas" - }, - "link": { - "details": "Edições na biblioteca" - }, - "label": { - "size": "Tamanho total dos arquivos nesta biblioteca" - }, - "button": { - "upload": "Enviar" - } - }, - "Quota": { - "label": { - "currentUsage": "{ current } usados de { max } permitidos", - "errored": "Arquivos com erro", - "pending": "Arquivos pendentes", - "skipped": "Arquivos ignorados" - }, - "header": { - "currentUsage": "Uso atual" - }, - "loading": { - "currentUsage": "Carregando dados de uso…" - }, - "button": { - "purge": "Excluir" - }, - "modal": { - "purgeErrored": { - "header": "Excluir arquivos com erro?", - "content": { - "description": "Exclui completamente faixas enviadas que não foram processadas pelo servidor, adicionando os dados correspondentes à sua cota." - } - }, - "purgePending": { - "header": "Excluir arquivos pendentes?", - "content": { - "description": "Exclui completamente as faixas enviadas mas ainda a serem processadas, adicionando os dados correspondentes à sua cota." - } - }, - "purgeSkipped": { - "header": "Excluir arquivos ignorados?", - "content": { - "description": "Exclui completamente as faixas ignoradas durante o processo de importação, adicionando os dados correspondentes à sua cota." - } - } - }, - "link": { - "viewFiles": "Ver arquivos" - } - }, - "FilesTable": { - "table": { - "file": { - "header": { - "album": "Álbum", - "artist": "Artista", - "duration": "Duração", - "importStatus": "Importar status", - "size": "Tamanho", - "title": "Título", - "uploadDate": "Data de envio" - } - } - }, - "option": { - "status": { - "all": "Todos", - "draft": "Rascunho", - "failed": "Falhou", - "finished": "Finalizado", - "pending": "Pendente", - "skipped": "Ignorado" - } - }, + "UsersTable": { + "notApplicable": "N/A", "ordering": { "direction": { "ascending": "Crescente", @@ -2923,385 +2530,540 @@ }, "label": "Ordenando" }, - "action": { - "delete": "Excluir", - "restartImport": "Reiniciar importação" + "pagination": { + "results": "Carregando… | Carregando…" }, - "label": { - "importStatus": "Importar status", - "search": "Pesquisar" - }, - "notApplicable": "N/A", - "empty": { - "noTracks": "Sem faixas na biblioteca ainda" + "permission": { + "library": "Biblioteca", + "moderation": "Moderação", + "settings": "Configurações" }, "placeholder": { - "search": "Pesquisar por título, artista, álbum…" + "search": "Pesquisar por nome de usuário, e-mail, nome…" }, - "button": { - "showStatus": "Clique para mostrar mais informações sobre o processo de importação desse envio" - }, - "pagination": { - "results": "Mostrando resultados { start }-{ end } de { total }" - } - }, - "Home": { - "link": { - "createLibrary": "Criar nova biblioteca" - }, - "loading": { - "libraries": "Carregando Bibliotecas…" - }, - "empty": { - "noLibrary": "Parece que você não possui nenhuma biblioteca. É hora de criar uma." - }, - "header": { - "libraries": "Minhas bibliotecas" - } - }, - "Form": { - "button": { - "create": "Criar biblioteca", - "delete": "Excluir", - "confirm": "Excluir biblioteca", - "update": "Atualizar biblioteca" - }, - "modal": { - "delete": { - "header": "Excluir esta biblioteca?", - "content": { - "warning": "A biblioteca e todas as suas faixas serão excluídas permanentemente." + "table": { + "user": { + "accountStatus": { + "active": "Ativo", + "inactive": "Inativo" + }, + "header": { + "accountStatus": "Status da conta", + "email": "E-mail", + "lastActivity": "Última atividade", + "permissions": "Permissões", + "signup": "Criar conta", + "status": "Status", + "username": "Nome de usuário" + }, + "status": { + "admin": "Administrador(a)", + "regular": "Usuário regular", + "staff": "Membro da equipe" } } - }, - "label": { - "description": "Descrição", - "name": "Nome", - "visibility": "Visibilidade" - }, - "header": { - "failure": "Erro" - }, - "description": { - "library": "Bibliotecas ajudam você a organizar e compartilhar suas coleções de músicas. Você pode enviar sua própria coleção de músicas ao Funkwhale e compartilhar com seus amigos e família.", - "visibility": "Você pode compartilhar sua biblioteca com outras pessoas, independente da sua visibilidade." - }, - "message": { - "libraryCreated": "Bibliloteca criada", - "libraryDeleted": "Biblioteca excluída", - "libraryUpdated": "Biblioteca atualizada" - }, - "placeholder": { - "name": "Minha incrível biblioteca", - "description": "Esta biblioteca contém minhas músicas pessoais, espero que você goste." } } - }, - "remote": { - "Card": { - "meta": { - "tracks": "{ n } faixa | { n } faixas", - "failedTracks": "Faixas que falharam:", - "lastUpdate": "Última atualização:" - }, - "modal": { - "unfollow": { - "content": { - "warning": "Ao deixar de seguir esta biblioteca, você não poderá mais ver o seu conteúdo." - }, - "header": "Deixar de seguir esta biblioteca?" - } - }, - "button": { - "cancel": "Cancelar solicitação para seguir", - "follow": "Seguir", - "pending": "Solicitação para seguir pendente", - "unfollow": "Deixar de seguir" - }, - "link": { - "scanDetails": "Detalhes", - "scan": "Iniciar varredura" - }, - "label": { - "scanFailure": "Erro durante leitura", - "scanPending": "Varredura pendente", - "scanSuccess": "Varredura completa", - "scanPartialSuccess": "Varredura completa com erros", - "scanProgress": "Varrendo… ({ progress }%)", - "sharingLink": "Link de compartilhamento" - }, - "message": { - "scanLaunched": "Varredura iniciada", - "scanSkipped": "Varredura ignorada (a anterior é muito recente)" - }, - "tooltip": { - "private": "Esta biblioteca é privada e a permissão do dono é necessária para ver seu conteúdo", - "public": "Esta biblioteca é pública e você pode ver seu conteúdo livremente" - } - }, - "ScanForm": { - "header": { - "failure": "Não foi possível obter a biblioteca remota" - }, - "placeholder": { - "url": "Insira o link de uma biblioteca" - }, - "label": { - "search": "Pesquisar uma biblioteca remota" - }, - "button": { - "submit": "Enviar denúncia" - } - }, - "Home": { - "header": { - "knownLibraries": "Bibliotecas conhecidas", - "remoteLibraries": "Bibliotecas remotas" - }, - "loading": { - "remoteLibraries": "Carregando bibliotecas remotas…" - }, - "button": { - "refresh": "Atualizar" - }, - "description": { - "remoteLibraries": "Bibliotecas remotas são de outros usuários da rede. Você pode vê-las desde que você tenha permissão ou sejam públicas." - } - } - }, - "Home": { - "title": "Adicionar e gerenciar conteúdo", - "description": { - "follow": "Você pode seguir bibliotecas de outros usuários para conhecer novas músicas. Bibliotecas públicas podem ser seguidas imediatamente, enquanto seguir uma biblioteca privada requer permissão do dono.", - "channel": { - "1": "Se você é um músico ou podcaster, canais são feitos para você!" - } - }, - "header": { - "follow": "Seguir bibliotecas remotas" - }, - "button": { - "start": "Comece agora" - }, - "help": { - "uploadQuota": "Esta instância oferece até {quota} de espaço de armazenamento por usuário." - } - }, - "Base": { - "title": "Adicionar conteúdo", - "link": { - "libraries": "Bibliotecas", - "tracks": "Faixas" - }, - "menu": { - "secondary": "Menu secundário" - } } }, - "library": { - "LibraryBase": { - "meta": { - "tracks": "{ n } faixa | { n } faixas" - }, - "link": { - "albums": "Álbuns", - "artists": "Artistas", - "moderation": "Abrir interface de moderação", - "owner": "Propriedade de { username }", - "tracks": "Faixas", - "domain": "Encaminhar para { domain}" - }, - "button": { - "edit": "Editar", - "upload": "Enviar" - }, - "title": "Biblioteca", - "label": { - "private": "Privado", - "instance": "Restrito", - "sharingLink": "Link de compartilhamento" - }, - "description": { - "sharingLink": "Compartilhe este link com outros usuários para que possam solicitar permissão para ver sua biblioteca." - }, - "tooltip": { - "private": "Esta biblioteca é privada e a permissão do dono é necessária para ver seu conteúdo", - "public": "Esta biblioteca é pública e você pode ver seu conteúdo livremente" - } - }, - "Edit": { - "button": { - "accept": "Aceitar", - "reject": "Recusar" - }, - "table": { - "action": { - "status": { - "accepted": "Aceito", - "pending": "Aprovação pendente", - "rejected": "Recusado" - }, - "header": { - "action": "Ação", - "date": "Data", - "status": "Status", - "user": "Usuário" - } - } - }, - "header": { - "followers": "Seguidores", - "libraryContents": "Conteúdos da biblioteca" - }, - "loading": { - "followers": "Carregando seguidores…" - }, - "empty": { - "noFollowers": "Ninguém está seguindo esta biblioteca" - } - }, - "DetailAlbums": { - "empty": { - "follow": "Pode ser necessário seguir esta biblioteca para ver o seu conteúdo." - } - }, - "DetailOverview": { - "empty": { - "follow": "Pode ser necessário seguir esta biblioteca para ver o seu conteúdo." - } - }, - "DetailTracks": { - "empty": { - "follow": "Pode ser necessário seguir esta biblioteca para ver o seu conteúdo." - } - } - }, - "auth": { - "ProfileBase": { - "title": "Perfil de { username }", - "link": { - "activity": "Atividade", - "moderation": "Abrir interface de moderação", - "overview": "Visão geral", - "domainView": "Encaminhar para { domain}" - }, - "label": { - "self": "Este é você!" - } - }, - "PasswordReset": { - "label": { - "email": "E-mail da conta" - }, - "button": { - "requestReset": "Solicitar redefinição de senha" - }, - "link": { - "back": "Voltar à entrada" - }, - "placeholder": { - "email": "Insira o e-mail vinculado à sua conta" - }, - "header": { - "failure": "Erro ao solicitar redefinição de senha", - "reset": "Redefinir sua senha" - }, - "title": "Redefinir sua senha", - "help": { - "form": "Use este formulário para solicitar redefinição de senha. Enviaremos um e-mail com instruções para o endereço fornecido." - } - }, - "ProfileOverview": { - "link": { - "addNew": "Adicionar novo" - }, - "modal": { - "createChannel": { - "artist": { - "header": "Canal do artista" - }, - "header": "Criar canal" - } - }, + "moderation": { + "FilterModal": { "button": { "cancel": "Cancelar", - "createChannel": "Criar canal", - "next": "Próximo", - "previous": "Anterior" + "hide": "Ocultar conteúdo" }, "header": { - "channels": "Canais", - "sharedLibraries": "Este usuário compartilhou as seguintes bibliotecas.", - "libraries": "Bibliotecas do usuário" - } - }, - "PasswordResetConfirm": { - "link": { - "back": "Voltar à entrada", - "login": "Continuar para entrar" + "failure": "Erro ao criar filtro", + "modal": "Você deseja ocultar o conteúdo do(a) artista \"{ name }\"?" }, - "title": "Alterar sua senha", - "header": { - "failure": "Erro ao alterar sua senha", - "success": "Senha atualizada com sucesso" + "help": { + "createFilter": "Você pode gerenciar e atualizar seus filtros a qualquer momento nas configurações da conta." }, "message": { - "requestSent": "Se o e-mail inserido anteriormente for válido e vinculado à uma conta de usuário, você receberá um e-mail com instruções de redefinição nos próximos minutos.", - "success": "Sua senha foi atualizada com sucesso." + "success": "Filtro adicionado" }, + "warning": { + "createFilter": { + "listIntro": "Você não verá mais faixas, álbuns e atividades de usuários vinculados a este(a) artista:", + "listItem1": "Nos favoritos e histórico de escutados de outros usuários", + "listItem2": "No widget \"Recentemente adicionado\"", + "listItem3": "Em listas de artistas e álbuns", + "listItem4": "Nas sugestões de rádios" + } + } + }, + "ReportCategoryDropdown": { "label": { - "newPassword": "Nova senha" + "category": "Categoria" }, + "option": { + "all": "Todos" + } + }, + "ReportModal": { "button": { - "update": "Atualizar senha" - } - }, - "EmailConfirm": { - "title": "Confirmar seu endereço de e-mail", - "label": { - "confirmationCode": "Código de confirmação" + "cancel": "Cancelar", + "submit": "Enviar denúncia" + }, + "description": { + "email": "Usaremos este e-mail se precisarmos entrar em contato com você a respeito desta denúncia.", + "forwardToDomain": "Encaminhe uma cópia anônima da sua denúncia para o servidor armazenando este elemento.", + "message": "Use este campo para fornecer contexto adicional para o moderador que irá atender sua denúncia.", + "modal": "Use este formulário para enviar uma denúncia para nossa equipe de moderação." }, "header": { - "failure": "Não foi possível confirmar seu endereço de e-mail", - "success": "Endereço de e-mail confirmado" + "disabled": "Denúncias anônimas estão desativadas, entre na sua conta para denunciar.", + "modal": "Você deseja denunciar este objeto?", + "submissionFailure": "Erro ao enviar denúncia" }, - "link": { - "login": "Continuar para entrar", - "back": "Voltar para entrada" + "label": { + "email": "E-mail", + "forwardToDomain": "Encaminhar para { domain}", + "message": "Mensagem" }, "message": { - "success": "Agora você pode usar o serviço sem limitações." - } - }, - "Signup": { - "header": { - "createAccount": "Criar conta Funkwhale" - }, - "title": "Criar conta" - }, - "Login": { - "title": "Entrar", - "header": { - "login": "Entrar com sua conta Funkwhale" - } - }, - "Callback": { - "header": { - "loggingIn": "Carregando Bibliotecas…" - } - }, - "Plugins": { - "title": "Gerenciar listas" - }, - "ProfileActivity": { - "header": { - "playlists": "Listas de reprodução", - "recentlyFavorited": "Favoritado recentemente", - "recentlyListened": "Escutado recentemente" + "submissionSuccess": "Sua denúncia foi enviada" } } }, + "notifications": { + "NotificationRow": { + "button": { + "approve": "Aprovar", + "markRead": "Marcar como lido", + "markUnread": "Marcar como não lido", + "reject": "Recusar" + }, + "message": { + "libraryAcceptFollow": "{ username } aceitou sua solicitação para seguir a biblioteca \"{ library }\"", + "libraryFollow": "{ username } seguiu sua biblioteca \"{ library }\"", + "libraryPendingFollow": "{ username } seguiu sua biblioteca \"{ library }\"" + } + } + }, + "playlists": { + "Card": { + "meta": { + "tracks": "{ n } faixa | { n } faixas" + } + }, + "Editor": { + "button": { + "addDuplicate": "Adicionar assim mesmo", + "clear": "Limpar lista", + "copy": "Copiar faixas da fila atual para lista", + "insertFromQueue": "Inserir da fila ({ n } faixa) | Inserir da fila ({ n } faixas)" + }, + "error": { + "sync": "Ocorreu um erro ao salvar suas alterações" + }, + "header": { + "editor": "Editor de listas" + }, + "help": { + "reorder": "Arraste as faixas para reorganizá-las na lista" + }, + "loading": { + "sync": "Sincronizando alterações com o servidor…" + }, + "message": { + "sync": "Alterações sincronizadas com o servidor" + }, + "modal": { + "clearPlaylist": { + "content": { + "warning": "Isso vai excluir permanentemente todas as faixas da sua lista." + }, + "header": "Você quer limpar a lista \"{ playlist }\"?" + } + }, + "warning": { + "duplicate": "Algumas faixas na sua fila já estão nesta lista:" + } + }, + "Form": { + "button": { + "create": "Criar lista", + "update": "Atualizar lista" + }, + "header": { + "createFailure": "A lista não foi criada", + "createPlaylist": "Criar nova lista", + "createSuccess": "Lista criada", + "updateSuccess": "Lista atualizada" + }, + "label": { + "name": "Nome da lista", + "visibility": "Visibilidade da lista" + }, + "placeholder": { + "name": "Minha incrível lista" + } + }, + "PlaylistModal": { + "button": { + "addDuplicate": "Adicionar assim mesmo", + "addToPlaylist": "Adicionar a esta lista", + "addTrack": "Adicionar faixa", + "cancel": "Cancelar", + "edit": "Editar" + }, + "empty": { + "noPlaylists": "Sem listas" + }, + "header": { + "addFailure": "Não foi possível adicionar a faixa na lista", + "addToPlaylist": "Adicionar à lista", + "available": "Listas disponíveis", + "manage": "Gerenciar listas", + "noResults": "Nenhum resultado correspondente ao filtro" + }, + "label": { + "filter": "Filtrar" + }, + "placeholder": { + "filterPlaylist": "Insira o nome da lista" + }, + "table": { + "edit": { + "header": { + "edit": "Editar", + "lastModification": "Última modificação", + "name": "Nome", + "tracks": "Faixas" + } + } + }, + "warning": { + "duplicate": "{ 0 } já está em { 1 }." + } + }, + "TrackPlaylistIcon": { + "button": { + "add": "Adicionar à lista…" + } + }, + "Widget": { + "button": { + "create": "Criar lista", + "more": "Mostrar mais" + }, + "placeholder": { + "noPlaylists": "Sem listas" + } + } + }, + "radios": { + "Button": { + "startRadio": "Tocar faixa", + "stopRadio": "Parar rádio" + }, + "Card": { + "button": { + "edit": "Editar" + } + } + }, + "tags": { + "List": { + "button": { + "more": "Mostrar mais 1 tag | Mostrar mais { n } tags" + } + } + }, + "vui": { + "Pagination": { + "label": "Paginação", + "next": "Próximo", + "previous": "Anterior" + } + } + }, + "composables": { + "audio": { + "usePlayOptions": { + "addToQueueMessage": "{ n } faixa adicionada à fila | { n } faixas adicionadas à fila" + } + }, + "locale": { + "useSharedLabels": { + "fields": { + "contentCategory": { + "choices": { + "music": "Música", + "other": "Outro" + }, + "label": "Categoria do conteúdo" + }, + "importStatus": { + "choices": { + "draft": { + "help": "Faixa enviada, mas ainda não foi processada pelo servidor", + "label": "Rascunho" + }, + "errored": { + "help": "Não foi possível processar esta faixa, verifique se ela está com as tags adequadas", + "label": "Com erro" + }, + "finished": { + "help": "Importado", + "label": "Finalizado" + }, + "pending": { + "help": "Faixa enviada, mas ainda não foi processada pelo servidor", + "label": "Pendente" + }, + "skipped": { + "help": "Faixa já presente em uma de suas bibliotecas", + "label": "Ignorado" + } + }, + "label": "Clique para mostrar mais informações sobre o processo de importação desse envio" + }, + "privacyLevel": { + "choices": { + "instance": "Todo mundo nesta instância", + "private": "Apenas eu", + "public": "Todo mundo em todas as instâncias" + }, + "help": "Determine o nível de visibilidade de sua atividade", + "label": "Visibilidade da atividade", + "shortChoices": { + "instance": "Instância", + "private": "Privado", + "public": "Todo mundo" + } + }, + "reportType": { + "choices": { + "illegalContent": "Conteúdo ilegal", + "invalidMetadata": "Metadado inválido", + "offensiveContent": "Conteúdo ofensivo", + "other": "Outro", + "takedownRequest": "Solicitação de exclusão" + }, + "label": "Categoria" + }, + "summary": { + "label": "Biografia" + } + }, + "filters": { + "accessedDate": "Data de acesso", + "albumTitle": "Nome do álbum", + "artistName": "Nome do(a) artista", + "bitrate": "Taxa de bits", + "creationDate": "Data de criação", + "dateJoined": "Data de criação", + "domain": "Domínio", + "duration": "Duração", + "expirationDate": "Data de expiração", + "firstSeen": "Data do primeiro acesso", + "followers": "Seguidores", + "itemsCount": "Itens", + "lastActivity": "Última atividade", + "lastSeen": "Data da última visualização", + "modificationDate": "Data de modificação", + "name": "Nome", + "receivedMessages": "Mensagens recebidas", + "releaseDate": "Data de lançamento", + "size": "Tamanho", + "trackTitle": "Nome da faixa", + "uploads": "Envios", + "username": "Nome de usuário", + "users": "Usuários" + }, + "scopes": { + "edits": { + "description": "Ver edições", + "label": "Edições" + }, + "favorites": { + "label": "Favoritos" + }, + "filters": { + "description": "Ver filtros", + "label": "Filtros" + }, + "follows": { + "description": "Ver seguidos", + "label": "Seguidos" + }, + "libraries": { + "description": "Ver arquivos de áudio, bibliotecas, artistas, álbuns e faixas", + "label": "Bibliotecas e envios" + }, + "listenings": { + "description": "Ver histórico de escutados", + "label": "Escutados" + }, + "notifications": { + "description": "Ver notificações", + "label": "Notificações" + }, + "playlists": { + "description": "Ver listas", + "label": "Listas de reprodução" + }, + "profile": { + "description": "Ver e-mail, nome de usuário e informações de perfil", + "label": "Perfil" + }, + "radios": { + "description": "Ver rádios", + "label": "Rádios" + }, + "reports": { + "description": "Ver rádios", + "label": "Denúncias" + } + } + } + }, + "moderation": { + "useEditConfigs": { + "album": { + "releaseDate": "Data de lançamento", + "title": "Título" + }, + "artist": { + "name": "Nome" + }, + "description": { + "label": "Descrição" + }, + "tags": { + "label": "Tags" + }, + "track": { + "copyright": "Direitos autorais", + "license": "Licença", + "position": "Posição", + "title": "Título" + } + }, + "useReport": { + "account": { + "typeLabel": "Conta" + }, + "album": { + "label": "Denunciar este álbum…", + "typeLabel": "Álbum" + }, + "artist": { + "label": "Denunciar este artista…", + "typeLabel": "Artista" + }, + "channel": { + "label": "Denunciar este canal…", + "typeLabel": "Canal" + }, + "library": { + "label": "Denunciar esta biblioteca…", + "typeLabel": "Biblioteca" + }, + "playlist": { + "label": "Denunciar esta lista…", + "typeLabel": "Lista" + }, + "track": { + "label": "Denunciar esta faixa…", + "typeLabel": "Faixa" + } + }, + "useReportConfigs": { + "account": { + "label": "Conta", + "summary": "Biografia" + }, + "album": { + "label": "Álbum", + "releaseDate": "Data de lançamento", + "title": "Título" + }, + "artist": { + "label": "Artista" + }, + "channel": { + "label": "Canal" + }, + "creationDate": { + "label": "Data de criação" + }, + "library": { + "description": "Descrição", + "label": "Biblioteca" + }, + "musicbrainzId": { + "label": "ID MusicBrainz" + }, + "name": { + "label": "Nome" + }, + "playlist": { + "label": "Lista" + }, + "tags": { + "label": "Tags" + }, + "track": { + "copyright": "Direitos autorais", + "label": "Faixa", + "license": "Licença", + "position": "Posição", + "title": "Título" + }, + "visibility": { + "label": "Visibilidade" + } + } + }, + "useThemeList": { + "darkTheme": "Escuro", + "lightTheme": "Claro" + } + }, + "init": { + "axios": { + "rateLimitDelay": "Você foi limitado por enviar muitas solicitações, tente novamente em { delay }", + "rateLimitLater": "Você foi limitado por enviar muitas solicitações, tente novamente mais tarde" + }, + "serviceWorker": { + "actions": { + "update": "Atualizar" + }, + "newAppVersion": "Nova versão do aplicativo disponível." + } + }, + "views": { "Notifications": { + "button": { + "read": "Marcar tudo como lido", + "submit": "Entendi!" + }, + "empty": { + "notifications": "Sem notificações." + }, + "header": { + "funkwhaleSupport": "Você curte Funkwhale?", + "instanceSupport": "Apoie este pod Funkwhale", + "messages": "Suas mensagens", + "notifications": "Suas notificações" + }, + "label": { + "reminder": "Lembre-me em:", + "showRead": "Mostrar notificações lidas" + }, + "link": { + "donate": "Doe", + "help": "Descubra outras maneiras de ajudar" + }, + "loading": { + "notifications": "Carregando notificações…" + }, + "message": { + "funkwhaleSupport": "Notamos que você está aqui há um tempo. Se Funkwhale for útil para você, adoraríamos ter sua ajuda para torná-lo ainda melhor!" + }, "option": { "delay": { "30": "30 dias", @@ -3310,582 +3072,60 @@ "never": "Nunca" } }, - "link": { - "help": "Descubra outras maneiras de ajudar", - "donate": "Doe" + "title": "Notificações" + }, + "Search": { + "button": { + "submit": "Enviar denúncia" }, "header": { - "funkwhaleSupport": "Você curte Funkwhale?", - "instanceSupport": "Apoie este pod Funkwhale", - "messages": "Suas mensagens", - "notifications": "Suas notificações" + "remote": "Pesquisar um objeto remoto", + "search": "Pesquisar" }, - "button": { - "submit": "Entendi!", - "read": "Marcar tudo como lido" - }, - "loading": { - "notifications": "Carregando notificações…" - }, - "empty": { - "notifications": "Sem notificações." - }, - "title": "Notificações", "label": { - "reminder": "Lembre-me em:", - "showRead": "Mostrar notificações lidas" - }, - "message": { - "funkwhaleSupport": "Notamos que você está aqui há um tempo. Se Funkwhale for útil para você, adoraríamos ter sua ajuda para torná-lo ainda melhor!" + "albums": "Álbuns", + "artists": "Artistas", + "playlists": "Listas de reprodução", + "radios": "Rádios", + "tags": "Tags", + "tracks": "Faixas" } }, "admin": { - "moderation": { - "AccountsDetail": { - "table": { - "accountData": { - "username": "Nome de usuário", - "loginStatus": { - "disabled": "Desativado", - "enabled": "Ativado", - "label": "Status da entrada" - }, - "displayName": "Nome de exibição", - "email": "Endereço de e-mail", - "lastActivity": "Última atividade", - "lastChecked": "Última verificação", - "permissions": "Permissões", - "signupDate": "Data de criação", - "userType": "Tipo" - }, - "audioContent": { - "cachedSize": "Tamanho em cache", - "megabyte": "MB", - "totalSize": "Tamanho total", - "uploadQuota": "Cota de envio" - }, - "activity": { - "emittedFollows": "Biblioteca enviada segue", - "emittedMessages": "Mensagens enviadas", - "firstSeen": "Visto primeiro", - "receivedFollows": "Biblioteca recebida segue" - } - }, - "header": { - "accountData": "Dados da conta", - "activity": "Atividade", - "audioContent": "Conteúdo de áudio", - "localAccount": "Conta local", - "activePolicy": "Este domínio está sujeito a regras específicas de moderação", - "noPolicy": "Você não tem nenhuma regra para esta conta." - }, - "button": { - "addPolicy": "Adicionar regra de moderação" - }, - "link": { - "albums": "Álbuns", - "artists": "Artistas", - "channels": "Canais", - "domain": "Domínio", - "libraries": "Bibliotecas", - "linkedReports": "Denúncias vinculadas", - "openProfile": "Abrir perfil", - "remoteProfile": "Abrir perfil remoto", - "requests": "Solicitações", - "tracks": "Faixas", - "uploads": "Envios", - "django": "Ver administração Django" - }, - "tooltip": { - "uploadQuota": "Determine quanto conteúdo o usuário pode enviar. Deixe em branco para usar o valor padrão da instância." - }, - "option": { - "permission": { - "library": "Biblioteca", - "moderation": "Moderação", - "settings": "Configurações" - } - }, - "description": { - "policy": "Regras de moderação ajudam você a controlar como sua instância interage com um determinado domínio ou conta." - }, - "notApplicable": "N/A", - "warning": { - "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" - } - }, - "Base": { - "link": { - "accounts": "Contas", - "domains": "Domínios", - "reports": "Denúncias", - "userRequests": "Solicitações do usuário" - }, - "title": "Moderação", - "menu": { - "secondary": "Menu secundário" - } - }, - "DomainsDetail": { - "header": { - "activity": "Atividade", - "audioContent": "Conteúdo de áudio", - "instanceData": "Dados da instância", - "activePolicy": "Este domínio está sujeito a regras específicas de moderação", - "noPolicy": "Você não tem nenhuma regra para este domínio." - }, - "button": { - "addPolicy": "Adicionar regra de moderação", - "addToAllowList": "Adicionar à lista de permissão", - "refreshNodeInfo": "Atualizar node info", - "removeFromAllowList": "Remover da lista de permissão" - }, - "link": { - "albums": "Álbuns", - "artists": "Artistas", - "channels": "Canais", - "knownAccounts": "Contas conhecidas", - "libraries": "Bibliotecas", - "website": "Abrir site", - "tracks": "Faixas", - "uploads": "Envios", - "django": "Ver administração Django" - }, - "table": { - "audioContent": { - "cachedSize": "Tamanho em cache", - "totalSize": "Tamanho total" - }, - "activity": { - "emittedFollows": "Biblioteca enviada segue", - "emittedMessages": "Mensagens enviadas", - "firstSeen": "Visto primeiro", - "receivedFollows": "Biblioteca recebida segue" - }, - "instanceData": { - "nodeInfoStatus": { - "value": "Erro ao obter node info", - "label": "Status" - }, - "inAllowList": { - "label": "Está presente na lista de permissão", - "false": "Não", - "true": "Sim" - }, - "lastChecked": "Última verificação", - "domainName": "Nome", - "software": { - "label": "Software" - }, - "totalUsers": "Total de usuários" - } - }, - "description": { - "policy": "Regras de moderação ajudam você a controlar como sua instância interage com um determinado domínio ou conta." - }, - "notApplicable": "N/A", - "warning": { - "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" - } - }, - "DomainsList": { - "button": { - "add": "Adicionar" - }, - "label": { - "addDomain": "Adicionar domínio", - "addToAllowList": "Adicionar à lista de permissão" - }, - "title": "Domínios", - "header": { - "domains": "Domínios", - "failure": "Erro ao criar domínio" - } - }, - "ReportsList": { - "option": { - "status": { - "all": "Todos", - "resolved": "Resolvido", - "unresolved": "Resolução desfeita" - } - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Ordem" - }, - "label": "Ordenando" - }, - "title": "Denúncias", - "header": { - "reports": "Denúncias" - }, - "label": { - "search": "Pesquisar", - "status": "Status" - }, - "placeholder": { - "search": "Pesquisar por conta, resumo, domínio…" - } - }, - "RequestsList": { - "option": { - "status": { - "all": "Todos", - "approved": "Aprovado", - "pending": "Pendente", - "refused": "Recusado" - } - }, - "ordering": { - "direction": { - "ascending": "Crescente", - "descending": "Descendente", - "label": "Ordem" - }, - "label": "Ordenando" - }, - "label": { - "search": "Pesquisar", - "status": "Status" - }, - "placeholder": { - "search": "Pesquisar por nome de usuário…" - }, - "title": "Solicitações do usuário", - "header": { - "userRequests": "Solicitações do usuário" - } - } - }, - "library": { - "UploadDetail": { - "table": { - "activity": { - "accessedDate": "Data de acesso", - "firstSeen": "Visto primeiro" - }, - "audioContent": { - "bitrate": { - "label": "Taxa de bits" - }, - "cachedSize": "Tamanho em cache", - "duration": "Duração", - "size": "Tamanho", - "track": "Faixa" - }, - "upload": { - "name": "Nome" - } - }, - "link": { - "account": "Conta", - "domain": "Domínio", - "importStatus": "Importar status", - "library": "Biblioteca", - "remoteProfile": "Abrir perfil remoto", - "type": "Tipo", - "django": "Ver administração Django", - "visibility": "Visibilidade" - }, - "header": { - "activity": "Atividade", - "audioContent": "Conteúdo de áudio", - "local": "Local", - "uploadData": "Data de envio" - }, - "button": { - "delete": "Excluir", - "download": "Baixar" - }, - "modal": { - "delete": { - "header": "Excluir este envio?", - "content": { - "warning": "O envio será permanentemente excluído." - } - } - }, - "notApplicable": "N/A" - }, - "LibraryDetail": { - "link": { - "account": "Conta", - "albums": "Álbuns", - "artists": "Artistas", - "domain": "Domínio", - "reports": "Denúncias vinculadas", - "remoteProfile": "Abrir perfil remoto", - "tracks": "Faixas", - "uploads": "Envios", - "django": "Ver administração Django", - "visibility": "Visibilidade" - }, - "header": { - "activity": "Atividade", - "audioContent": "Conteúdo de áudio", - "libraryData": "Dados da biblioteca", - "local": "Local" - }, - "table": { - "audioContent": { - "cachedSize": "Tamanho em cache", - "totalSize": "Tamanho total" - }, - "library": { - "description": "Descrição", - "name": "Nome" - }, - "activity": { - "firstSeen": "Visto primeiro", - "followers": "Seguidores" - } - }, - "button": { - "delete": "Excluir" - }, - "modal": { - "delete": { - "header": "Excluir esta biblioteca?", - "content": { - "warning": "A biblioteca será permanentemente excluída, junto com os envios e os seguidos." - } - } - }, - "warning": { - "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" - } - }, - "AlbumDetail": { - "header": { - "activity": "Atividade", - "albumData": "Dados do álbum", - "audioContent": "Conteúdo de áudio", - "local": "Local" - }, - "link": { - "artist": "Artista", - "domain": "Domínio", - "edits": "Edições", - "libraries": "Bibliotecas", - "reports": "Denúncias vinculadas", - "localProfile": "Abrir perfil local", - "musicbrainz": "Abrir em MusicBrainz", - "remoteProfile": "Abrir perfil remoto", - "tracks": "Faixas", - "uploads": "Envios", - "django": "Ver administração Django" - }, - "table": { - "audioContent": { - "cachedSize": "Tamanho em cache", - "totalSize": "Tamanho total" - }, - "album": { - "description": "Descrição", - "title": "Título" - }, - "activity": { - "favorited": "Faixas favoritadas", - "firstSeen": "Visto primeiro", - "listenings": "Escutados", - "playlists": "Listas de reprodução" - } - }, - "button": { - "delete": "Excluir", - "edit": "Editar", - "remoteRefresh": "Atualizar a partir de um servidor remoto" - }, - "modal": { - "delete": { - "header": "Excluir este álbum?", - "content": { - "warning": "O álbum será permanentemente excluído, junto com os envios, faixas, favoritos e histórico de escutados." - } - } - }, - "warning": { - "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" - } - }, - "ArtistDetail": { - "header": { - "activity": "Atividade", - "artistData": "Dados do(a) artista", - "audioContent": "Conteúdo de áudio", - "local": "Local" - }, - "link": { - "albums": "Álbuns", - "category": "Categoria", - "domain": "Domínio", - "edits": "Edições", - "libraries": "Bibliotecas", - "reports": "Denúncias vinculadas", - "localProfile": "Abrir perfil local", - "musicbrainz": "Abrir em MusicBrainz", - "remoteProfile": "Abrir perfil remoto", - "tracks": "Faixas", - "uploads": "Envios", - "django": "Ver administração Django" - }, - "table": { - "audioContent": { - "cachedSize": "Tamanho em cache", - "totalSize": "Tamanho total" - }, - "artist": { - "description": "Descrição", - "name": "Nome" - }, - "activity": { - "favorited": "Faixas favoritadas", - "firstSeen": "Visto primeiro", - "listenings": "Escutados", - "playlists": "Listas de reprodução" - } - }, - "button": { - "delete": "Excluir", - "edit": "Editar", - "remoteRefresh": "Atualizar a partir de um servidor remoto" - }, - "modal": { - "delete": { - "header": "Excluir este artista?", - "content": { - "warning": "O(A) artista será permanentemente excluído(a), junto com os envios, faixas, álbuns, favoritos e histórico de escutados." - } - } - }, - "warning": { - "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" - } - }, - "TagDetail": { - "header": { - "activity": "Atividade", - "audioContent": "Conteúdo de áudio", - "tagData": "Dados da tag" - }, - "link": { - "albums": "Álbuns", - "artists": "Artistas", - "localProfile": "Abrir perfil local", - "tracks": "Faixas", - "django": "Ver administração Django" - }, - "button": { - "delete": "Excluir" - }, - "modal": { - "delete": { - "header": "Excluir esta tag?", - "content": { - "warning": "A tag será permanentemente removida e desvinculada da entidade, se houver uma." - } - } - }, - "table": { - "activity": { - "firstSeen": "Visto primeiro" - }, - "tag": { - "name": "Nome" - } - } - }, - "TrackDetail": { - "header": { - "activity": "Atividade", - "local": "Local", - "trackData": "Dados da faixa" - }, - "link": { - "album": "Álbum", - "albumArtist": "Álbuns deste artista", - "artist": "Artista", - "domain": "Domínio", - "edits": "Edições", - "libraries": "Bibliotecas", - "reports": "Denúncias vinculadas", - "localProfile": "Abrir perfil local", - "musicbrainz": "Abrir em MusicBrainz", - "remoteProfile": "Abrir perfil remoto", - "uploads": "Envios", - "django": "Ver administração Django" - }, - "table": { - "trackData": { - "cachedSize": "Tamanho em cache", - "totalSize": "Tamanho total" - }, - "track": { - "copyright": "Direitos autorais", - "description": "Descrição", - "discNumber": "Número do disco", - "license": "Licença", - "position": "Posição", - "title": "Título" - }, - "activity": { - "favorited": "Faixas favoritadas", - "firstSeen": "Visto primeiro", - "listenings": "Escutados", - "playlists": "Listas de reprodução" - } - }, - "button": { - "delete": "Excluir", - "edit": "Editar", - "remoteRefresh": "Atualizar a partir de um servidor remoto" - }, - "modal": { - "delete": { - "header": "Excluir esta faixa?", - "content": { - "warning": "A faixa será permanentemente excluída, junto com os envios, favoritos e histórico de escutados." - } - } - }, - "warning": { - "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" - } - }, - "Base": { - "link": { - "albums": "Álbuns", - "artists": "Artistas", - "channels": "Canais", - "edits": "Edições", - "libraries": "Bibliotecas", - "tags": "Tags", - "tracks": "Faixas", - "uploads": "Envios" - }, - "title": "Gerenciar biblioteca", - "menu": { - "secondary": "Menu secundário" - } - }, - "EditsList": { - "title": "Edições", - "header": { - "edits": "Edições na biblioteca" - } - } - }, "ChannelDetail": { + "button": { + "delete": "Excluir", + "openRemote": "Abrir perfil remoto", + "refresh": "Atualizar a partir de um servidor remoto" + }, + "header": { + "activity": "Atividade", + "audioContent": "Conteúdo de áudio", + "channelData": "Dados do canal" + }, + "label": { + "local": "Local" + }, + "link": { + "django": "Ver administração Django", + "localProfile": "Abrir perfil local" + }, + "modal": { + "delete": { + "content": { + "warning": "A biblioteca será permanentemente removido, junto com os seus arquivos, faixas e álbuns." + }, + "header": "Excluir este canal?" + } + }, "table": { - "channelData": { - "account": "Conta", - "category": "Categoria", - "description": "Descrição", - "domain": "Domínio", - "name": "Nome" + "activity": { + "edits": "Edições", + "favorited": "Faixas favoritadas", + "firstSeen": "Visto primeiro", + "linkedReports": "Denúncias vinculadas", + "listenings": "Escutados", + "playlists": "Listas de reprodução" }, "audioContent": { "albums": "Álbuns", @@ -3894,40 +3134,14 @@ "tracks": "Faixas", "uploads": "Envios" }, - "activity": { - "edits": "Edições", - "favorited": "Faixas favoritadas", - "firstSeen": "Visto primeiro", - "linkedReports": "Denúncias vinculadas", - "listenings": "Escutados", - "playlists": "Listas de reprodução" + "channelData": { + "account": "Conta", + "category": "Categoria", + "description": "Descrição", + "domain": "Domínio", + "name": "Nome" } }, - "header": { - "activity": "Atividade", - "audioContent": "Conteúdo de áudio", - "channelData": "Dados do canal" - }, - "button": { - "delete": "Excluir", - "openRemote": "Abrir perfil remoto", - "refresh": "Atualizar a partir de um servidor remoto" - }, - "modal": { - "delete": { - "header": "Excluir este canal?", - "content": { - "warning": "A biblioteca será permanentemente removido, junto com os seus arquivos, faixas e álbuns." - } - } - }, - "label": { - "local": "Local" - }, - "link": { - "localProfile": "Abrir perfil local", - "django": "Ver administração Django" - }, "warning": { "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" } @@ -3951,49 +3165,1165 @@ "channels": "Canais", "federation": "Federação", "instanceInfo": "Informação da instância", - "settings": "Configurações da instância", "moderation": "Moderação", "music": "Músicas", "playlists": "Listas de reprodução", "sections": "Seções", + "settings": "Configurações da instância", "signups": "Novas contas", "stats": "Estatísticas", "subsonic": "Subsonic", "ui": "Interface do usuário" } }, + "library": { + "AlbumDetail": { + "button": { + "delete": "Excluir", + "edit": "Editar", + "remoteRefresh": "Atualizar a partir de um servidor remoto" + }, + "header": { + "activity": "Atividade", + "albumData": "Dados do álbum", + "audioContent": "Conteúdo de áudio", + "local": "Local" + }, + "link": { + "artist": "Artista", + "django": "Ver administração Django", + "domain": "Domínio", + "edits": "Edições", + "libraries": "Bibliotecas", + "localProfile": "Abrir perfil local", + "musicbrainz": "Abrir em MusicBrainz", + "remoteProfile": "Abrir perfil remoto", + "reports": "Denúncias vinculadas", + "tracks": "Faixas", + "uploads": "Envios" + }, + "modal": { + "delete": { + "content": { + "warning": "O álbum será permanentemente excluído, junto com os envios, faixas, favoritos e histórico de escutados." + }, + "header": "Excluir este álbum?" + } + }, + "table": { + "activity": { + "favorited": "Faixas favoritadas", + "firstSeen": "Visto primeiro", + "listenings": "Escutados", + "playlists": "Listas de reprodução" + }, + "album": { + "description": "Descrição", + "title": "Título" + }, + "audioContent": { + "cachedSize": "Tamanho em cache", + "totalSize": "Tamanho total" + } + }, + "warning": { + "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" + } + }, + "ArtistDetail": { + "button": { + "delete": "Excluir", + "edit": "Editar", + "remoteRefresh": "Atualizar a partir de um servidor remoto" + }, + "header": { + "activity": "Atividade", + "artistData": "Dados do(a) artista", + "audioContent": "Conteúdo de áudio", + "local": "Local" + }, + "link": { + "albums": "Álbuns", + "category": "Categoria", + "django": "Ver administração Django", + "domain": "Domínio", + "edits": "Edições", + "libraries": "Bibliotecas", + "localProfile": "Abrir perfil local", + "musicbrainz": "Abrir em MusicBrainz", + "remoteProfile": "Abrir perfil remoto", + "reports": "Denúncias vinculadas", + "tracks": "Faixas", + "uploads": "Envios" + }, + "modal": { + "delete": { + "content": { + "warning": "O(A) artista será permanentemente excluído(a), junto com os envios, faixas, álbuns, favoritos e histórico de escutados." + }, + "header": "Excluir este artista?" + } + }, + "table": { + "activity": { + "favorited": "Faixas favoritadas", + "firstSeen": "Visto primeiro", + "listenings": "Escutados", + "playlists": "Listas de reprodução" + }, + "artist": { + "description": "Descrição", + "name": "Nome" + }, + "audioContent": { + "cachedSize": "Tamanho em cache", + "totalSize": "Tamanho total" + } + }, + "warning": { + "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" + } + }, + "Base": { + "link": { + "albums": "Álbuns", + "artists": "Artistas", + "channels": "Canais", + "edits": "Edições", + "libraries": "Bibliotecas", + "tags": "Tags", + "tracks": "Faixas", + "uploads": "Envios" + }, + "menu": { + "secondary": "Menu secundário" + }, + "title": "Gerenciar biblioteca" + }, + "EditsList": { + "header": { + "edits": "Edições na biblioteca" + }, + "title": "Edições" + }, + "LibraryDetail": { + "button": { + "delete": "Excluir" + }, + "header": { + "activity": "Atividade", + "audioContent": "Conteúdo de áudio", + "libraryData": "Dados da biblioteca", + "local": "Local" + }, + "link": { + "account": "Conta", + "albums": "Álbuns", + "artists": "Artistas", + "django": "Ver administração Django", + "domain": "Domínio", + "remoteProfile": "Abrir perfil remoto", + "reports": "Denúncias vinculadas", + "tracks": "Faixas", + "uploads": "Envios", + "visibility": "Visibilidade" + }, + "modal": { + "delete": { + "content": { + "warning": "A biblioteca será permanentemente excluída, junto com os envios e os seguidos." + }, + "header": "Excluir esta biblioteca?" + } + }, + "table": { + "activity": { + "firstSeen": "Visto primeiro", + "followers": "Seguidores" + }, + "audioContent": { + "cachedSize": "Tamanho em cache", + "totalSize": "Tamanho total" + }, + "library": { + "description": "Descrição", + "name": "Nome" + } + }, + "warning": { + "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" + } + }, + "TagDetail": { + "button": { + "delete": "Excluir" + }, + "header": { + "activity": "Atividade", + "audioContent": "Conteúdo de áudio", + "tagData": "Dados da tag" + }, + "link": { + "albums": "Álbuns", + "artists": "Artistas", + "django": "Ver administração Django", + "localProfile": "Abrir perfil local", + "tracks": "Faixas" + }, + "modal": { + "delete": { + "content": { + "warning": "A tag será permanentemente removida e desvinculada da entidade, se houver uma." + }, + "header": "Excluir esta tag?" + } + }, + "table": { + "activity": { + "firstSeen": "Visto primeiro" + }, + "tag": { + "name": "Nome" + } + } + }, + "TrackDetail": { + "button": { + "delete": "Excluir", + "edit": "Editar", + "remoteRefresh": "Atualizar a partir de um servidor remoto" + }, + "header": { + "activity": "Atividade", + "local": "Local", + "trackData": "Dados da faixa" + }, + "link": { + "album": "Álbum", + "albumArtist": "Álbuns deste artista", + "artist": "Artista", + "django": "Ver administração Django", + "domain": "Domínio", + "edits": "Edições", + "libraries": "Bibliotecas", + "localProfile": "Abrir perfil local", + "musicbrainz": "Abrir em MusicBrainz", + "remoteProfile": "Abrir perfil remoto", + "reports": "Denúncias vinculadas", + "uploads": "Envios" + }, + "modal": { + "delete": { + "content": { + "warning": "A faixa será permanentemente excluída, junto com os envios, favoritos e histórico de escutados." + }, + "header": "Excluir esta faixa?" + } + }, + "table": { + "activity": { + "favorited": "Faixas favoritadas", + "firstSeen": "Visto primeiro", + "listenings": "Escutados", + "playlists": "Listas de reprodução" + }, + "track": { + "copyright": "Direitos autorais", + "description": "Descrição", + "discNumber": "Número do disco", + "license": "Licença", + "position": "Posição", + "title": "Título" + }, + "trackData": { + "cachedSize": "Tamanho em cache", + "totalSize": "Tamanho total" + } + }, + "warning": { + "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" + } + }, + "UploadDetail": { + "button": { + "delete": "Excluir", + "download": "Baixar" + }, + "header": { + "activity": "Atividade", + "audioContent": "Conteúdo de áudio", + "local": "Local", + "uploadData": "Data de envio" + }, + "link": { + "account": "Conta", + "django": "Ver administração Django", + "domain": "Domínio", + "importStatus": "Importar status", + "library": "Biblioteca", + "remoteProfile": "Abrir perfil remoto", + "type": "Tipo", + "visibility": "Visibilidade" + }, + "modal": { + "delete": { + "content": { + "warning": "O envio será permanentemente excluído." + }, + "header": "Excluir este envio?" + } + }, + "notApplicable": "N/A", + "table": { + "activity": { + "accessedDate": "Data de acesso", + "firstSeen": "Visto primeiro" + }, + "audioContent": { + "bitrate": { + "label": "Taxa de bits" + }, + "cachedSize": "Tamanho em cache", + "duration": "Duração", + "size": "Tamanho", + "track": "Faixa" + }, + "upload": { + "name": "Nome" + } + } + } + }, + "moderation": { + "AccountsDetail": { + "button": { + "addPolicy": "Adicionar regra de moderação" + }, + "description": { + "policy": "Regras de moderação ajudam você a controlar como sua instância interage com um determinado domínio ou conta." + }, + "header": { + "accountData": "Dados da conta", + "activePolicy": "Este domínio está sujeito a regras específicas de moderação", + "activity": "Atividade", + "audioContent": "Conteúdo de áudio", + "localAccount": "Conta local", + "noPolicy": "Você não tem nenhuma regra para esta conta." + }, + "link": { + "albums": "Álbuns", + "artists": "Artistas", + "channels": "Canais", + "django": "Ver administração Django", + "domain": "Domínio", + "libraries": "Bibliotecas", + "linkedReports": "Denúncias vinculadas", + "openProfile": "Abrir perfil", + "remoteProfile": "Abrir perfil remoto", + "requests": "Solicitações", + "tracks": "Faixas", + "uploads": "Envios" + }, + "notApplicable": "N/A", + "option": { + "permission": { + "library": "Biblioteca", + "moderation": "Moderação", + "settings": "Configurações" + } + }, + "table": { + "accountData": { + "displayName": "Nome de exibição", + "email": "Endereço de e-mail", + "lastActivity": "Última atividade", + "lastChecked": "Última verificação", + "loginStatus": { + "disabled": "Desativado", + "enabled": "Ativado", + "label": "Status da entrada" + }, + "permissions": "Permissões", + "signupDate": "Data de criação", + "userType": "Tipo", + "username": "Nome de usuário" + }, + "activity": { + "emittedFollows": "Biblioteca enviada segue", + "emittedMessages": "Mensagens enviadas", + "firstSeen": "Visto primeiro", + "receivedFollows": "Biblioteca recebida segue" + }, + "audioContent": { + "cachedSize": "Tamanho em cache", + "megabyte": "MB", + "totalSize": "Tamanho total", + "uploadQuota": "Cota de envio" + } + }, + "tooltip": { + "uploadQuota": "Determine quanto conteúdo o usuário pode enviar. Deixe em branco para usar o valor padrão da instância." + }, + "warning": { + "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" + } + }, + "Base": { + "link": { + "accounts": "Contas", + "domains": "Domínios", + "reports": "Denúncias", + "userRequests": "Solicitações do usuário" + }, + "menu": { + "secondary": "Menu secundário" + }, + "title": "Moderação" + }, + "DomainsDetail": { + "button": { + "addPolicy": "Adicionar regra de moderação", + "addToAllowList": "Adicionar à lista de permissão", + "refreshNodeInfo": "Atualizar node info", + "removeFromAllowList": "Remover da lista de permissão" + }, + "description": { + "policy": "Regras de moderação ajudam você a controlar como sua instância interage com um determinado domínio ou conta." + }, + "header": { + "activePolicy": "Este domínio está sujeito a regras específicas de moderação", + "activity": "Atividade", + "audioContent": "Conteúdo de áudio", + "instanceData": "Dados da instância", + "noPolicy": "Você não tem nenhuma regra para este domínio." + }, + "link": { + "albums": "Álbuns", + "artists": "Artistas", + "channels": "Canais", + "django": "Ver administração Django", + "knownAccounts": "Contas conhecidas", + "libraries": "Bibliotecas", + "tracks": "Faixas", + "uploads": "Envios", + "website": "Abrir site" + }, + "notApplicable": "N/A", + "table": { + "activity": { + "emittedFollows": "Biblioteca enviada segue", + "emittedMessages": "Mensagens enviadas", + "firstSeen": "Visto primeiro", + "receivedFollows": "Biblioteca recebida segue" + }, + "audioContent": { + "cachedSize": "Tamanho em cache", + "totalSize": "Tamanho total" + }, + "instanceData": { + "domainName": "Nome", + "inAllowList": { + "false": "Não", + "label": "Está presente na lista de permissão", + "true": "Sim" + }, + "lastChecked": "Última verificação", + "nodeInfoStatus": { + "label": "Status", + "value": "Erro ao obter node info" + }, + "software": { + "label": "Software" + }, + "totalUsers": "Total de usuários" + } + }, + "warning": { + "stats": "Estatísticas são calculadas por atividades conhecidas e conteúdo da instância, e não refletem a atividade geral deste objeto" + } + }, + "DomainsList": { + "button": { + "add": "Adicionar" + }, + "header": { + "domains": "Domínios", + "failure": "Erro ao criar domínio" + }, + "label": { + "addDomain": "Adicionar domínio", + "addToAllowList": "Adicionar à lista de permissão" + }, + "title": "Domínios" + }, + "ReportsList": { + "header": { + "reports": "Denúncias" + }, + "label": { + "search": "Pesquisar", + "status": "Status" + }, + "option": { + "status": { + "all": "Todos", + "resolved": "Resolvido", + "unresolved": "Resolução desfeita" + } + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Ordem" + }, + "label": "Ordenando" + }, + "placeholder": { + "search": "Pesquisar por conta, resumo, domínio…" + }, + "title": "Denúncias" + }, + "RequestsList": { + "header": { + "userRequests": "Solicitações do usuário" + }, + "label": { + "search": "Pesquisar", + "status": "Status" + }, + "option": { + "status": { + "all": "Todos", + "approved": "Aprovado", + "pending": "Pendente", + "refused": "Recusado" + } + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Ordem" + }, + "label": "Ordenando" + }, + "placeholder": { + "search": "Pesquisar por nome de usuário…" + }, + "title": "Solicitações do usuário" + } + }, "users": { "Base": { "link": { "invitations": "Convites", "users": "Usuários" }, - "title": "Gerenciar usuários", "menu": { "secondary": "Menu secundário" + }, + "title": "Gerenciar usuários" + } + } + }, + "auth": { + "Callback": { + "header": { + "loggingIn": "Carregando Bibliotecas…" + } + }, + "EmailConfirm": { + "header": { + "failure": "Não foi possível confirmar seu endereço de e-mail", + "success": "Endereço de e-mail confirmado" + }, + "label": { + "confirmationCode": "Código de confirmação" + }, + "link": { + "back": "Voltar para entrada", + "login": "Continuar para entrar" + }, + "message": { + "success": "Agora você pode usar o serviço sem limitações." + }, + "title": "Confirmar seu endereço de e-mail" + }, + "Login": { + "header": { + "login": "Entrar com sua conta Funkwhale" + }, + "title": "Entrar" + }, + "PasswordReset": { + "button": { + "requestReset": "Solicitar redefinição de senha" + }, + "header": { + "failure": "Erro ao solicitar redefinição de senha", + "reset": "Redefinir sua senha" + }, + "help": { + "form": "Use este formulário para solicitar redefinição de senha. Enviaremos um e-mail com instruções para o endereço fornecido." + }, + "label": { + "email": "E-mail da conta" + }, + "link": { + "back": "Voltar à entrada" + }, + "placeholder": { + "email": "Insira o e-mail vinculado à sua conta" + }, + "title": "Redefinir sua senha" + }, + "PasswordResetConfirm": { + "button": { + "update": "Atualizar senha" + }, + "header": { + "failure": "Erro ao alterar sua senha", + "success": "Senha atualizada com sucesso" + }, + "label": { + "newPassword": "Nova senha" + }, + "link": { + "back": "Voltar à entrada", + "login": "Continuar para entrar" + }, + "message": { + "requestSent": "Se o e-mail inserido anteriormente for válido e vinculado à uma conta de usuário, você receberá um e-mail com instruções de redefinição nos próximos minutos.", + "success": "Sua senha foi atualizada com sucesso." + }, + "title": "Alterar sua senha" + }, + "Plugins": { + "title": "Gerenciar listas" + }, + "ProfileActivity": { + "header": { + "playlists": "Listas de reprodução", + "recentlyFavorited": "Favoritado recentemente", + "recentlyListened": "Escutado recentemente" + } + }, + "ProfileBase": { + "label": { + "self": "Este é você!" + }, + "link": { + "activity": "Atividade", + "domainView": "Encaminhar para { domain}", + "moderation": "Abrir interface de moderação", + "overview": "Visão geral" + }, + "title": "Perfil de { username }" + }, + "ProfileOverview": { + "button": { + "cancel": "Cancelar", + "createChannel": "Criar canal", + "next": "Próximo", + "previous": "Anterior" + }, + "header": { + "channels": "Canais", + "libraries": "Bibliotecas do usuário", + "sharedLibraries": "Este usuário compartilhou as seguintes bibliotecas." + }, + "link": { + "addNew": "Adicionar novo" + }, + "modal": { + "createChannel": { + "artist": { + "header": "Canal do artista" + }, + "header": "Criar canal" + } + } + }, + "Signup": { + "header": { + "createAccount": "Criar conta Funkwhale" + }, + "title": "Criar conta" + } + }, + "channels": { + "DetailBase": { + "button": { + "cancel": "Cancelar", + "confirm": "Excluir", + "delete": "Excluir…", + "edit": "Editar…", + "embed": "Incorporar", + "play": "Tocar", + "updateChannel": "Atualizar canal", + "upload": "Enviar" + }, + "header": { + "artistChannel": "Canal do artista" + }, + "link": { + "channelEpisodes": "Episódios", + "channelOverview": "Visão geral", + "channelTracks": "Faixas", + "domainView": "Encaminhar para { domain}", + "moderation": "Abrir interface de moderação" + }, + "meta": { + "episodes": "{ n } episódio | { n } episódios", + "listenings": "{ n } áudio | { n } áudios", + "subscribers": "{ n } inscrito | { n } inscritos", + "tracks": "{ n } faixa | { n } faixas" + }, + "modal": { + "delete": { + "content": { + "warning": "O canal será permanentemente excluído, junto com seus arquivos e dados." + }, + "header": "Excluir este canal?" + }, + "embed": { + "header": "Incorpore a obra do(a) artista em seu site" + }, + "subscribe": { + "funkwhale": { + "header": "Inscreva-se em Funkwhale" + }, + "rss": { + "content": { + "help": "Copie e cole no aplicativo de Podcast o seguinte link:" + } + } + } + }, + "title": "Canal" + }, + "DetailOverview": { + "header": { + "albums": "Álbuns", + "latestTracks": "Últimas faixas", + "uploadsSuccess": "Envio publicado com sucesso" + }, + "link": { + "addAlbum": "Adicionar novo", + "erroredUploads": "Ver envios com falha" + }, + "meta": { + "progress": "Envios processados:" + } + }, + "SubscriptionsList": { + "button": { + "cancel": "Cancelar" + }, + "link": { + "addNew": "Adicionar novo" + }, + "modal": { + "subscription": { + "header": "Inscrição" + } + }, + "placeholder": { + "search": "Filtrar por nome…" + } + } + }, + "content": { + "Base": { + "link": { + "libraries": "Bibliotecas", + "tracks": "Faixas" + }, + "menu": { + "secondary": "Menu secundário" + }, + "title": "Adicionar conteúdo" + }, + "Home": { + "button": { + "start": "Comece agora" + }, + "description": { + "channel": { + "1": "Se você é um músico ou podcaster, canais são feitos para você!" + }, + "follow": "Você pode seguir bibliotecas de outros usuários para conhecer novas músicas. Bibliotecas públicas podem ser seguidas imediatamente, enquanto seguir uma biblioteca privada requer permissão do dono." + }, + "header": { + "follow": "Seguir bibliotecas remotas" + }, + "help": { + "uploadQuota": "Esta instância oferece até {quota} de espaço de armazenamento por usuário." + }, + "title": "Adicionar e gerenciar conteúdo" + }, + "libraries": { + "Card": { + "button": { + "upload": "Enviar" + }, + "label": { + "size": "Tamanho total dos arquivos nesta biblioteca" + }, + "link": { + "details": "Edições na biblioteca" + }, + "meta": { + "tracks": "{ n } faixa | { n } faixas" + } + }, + "FilesTable": { + "action": { + "delete": "Excluir", + "restartImport": "Reiniciar importação" + }, + "button": { + "showStatus": "Clique para mostrar mais informações sobre o processo de importação desse envio" + }, + "empty": { + "noTracks": "Sem faixas na biblioteca ainda" + }, + "label": { + "importStatus": "Importar status", + "search": "Pesquisar" + }, + "notApplicable": "N/A", + "option": { + "status": { + "all": "Todos", + "draft": "Rascunho", + "failed": "Falhou", + "finished": "Finalizado", + "pending": "Pendente", + "skipped": "Ignorado" + } + }, + "ordering": { + "direction": { + "ascending": "Crescente", + "descending": "Descendente", + "label": "Direção da ordem" + }, + "label": "Ordenando" + }, + "pagination": { + "results": "Mostrando resultados { start }-{ end } de { total }" + }, + "placeholder": { + "search": "Pesquisar por título, artista, álbum…" + }, + "table": { + "file": { + "header": { + "album": "Álbum", + "artist": "Artista", + "duration": "Duração", + "importStatus": "Importar status", + "size": "Tamanho", + "title": "Título", + "uploadDate": "Data de envio" + } + } + } + }, + "Form": { + "button": { + "confirm": "Excluir biblioteca", + "create": "Criar biblioteca", + "delete": "Excluir", + "update": "Atualizar biblioteca" + }, + "description": { + "library": "Bibliotecas ajudam você a organizar e compartilhar suas coleções de músicas. Você pode enviar sua própria coleção de músicas ao Funkwhale e compartilhar com seus amigos e família.", + "visibility": "Você pode compartilhar sua biblioteca com outras pessoas, independente da sua visibilidade." + }, + "header": { + "failure": "Erro" + }, + "label": { + "description": "Descrição", + "name": "Nome", + "visibility": "Visibilidade" + }, + "message": { + "libraryCreated": "Bibliloteca criada", + "libraryDeleted": "Biblioteca excluída", + "libraryUpdated": "Biblioteca atualizada" + }, + "modal": { + "delete": { + "content": { + "warning": "A biblioteca e todas as suas faixas serão excluídas permanentemente." + }, + "header": "Excluir esta biblioteca?" + } + }, + "placeholder": { + "description": "Esta biblioteca contém minhas músicas pessoais, espero que você goste.", + "name": "Minha incrível biblioteca" + } + }, + "Home": { + "empty": { + "noLibrary": "Parece que você não possui nenhuma biblioteca. É hora de criar uma." + }, + "header": { + "libraries": "Minhas bibliotecas" + }, + "link": { + "createLibrary": "Criar nova biblioteca" + }, + "loading": { + "libraries": "Carregando Bibliotecas…" + } + }, + "Quota": { + "button": { + "purge": "Excluir" + }, + "header": { + "currentUsage": "Uso atual" + }, + "label": { + "currentUsage": "{ current } usados de { max } permitidos", + "errored": "Arquivos com erro", + "pending": "Arquivos pendentes", + "skipped": "Arquivos ignorados" + }, + "link": { + "viewFiles": "Ver arquivos" + }, + "loading": { + "currentUsage": "Carregando dados de uso…" + }, + "modal": { + "purgeErrored": { + "content": { + "description": "Exclui completamente faixas enviadas que não foram processadas pelo servidor, adicionando os dados correspondentes à sua cota." + }, + "header": "Excluir arquivos com erro?" + }, + "purgePending": { + "content": { + "description": "Exclui completamente as faixas enviadas mas ainda a serem processadas, adicionando os dados correspondentes à sua cota." + }, + "header": "Excluir arquivos pendentes?" + }, + "purgeSkipped": { + "content": { + "description": "Exclui completamente as faixas ignoradas durante o processo de importação, adicionando os dados correspondentes à sua cota." + }, + "header": "Excluir arquivos ignorados?" + } + } + } + }, + "remote": { + "Card": { + "button": { + "cancel": "Cancelar solicitação para seguir", + "follow": "Seguir", + "pending": "Solicitação para seguir pendente", + "unfollow": "Deixar de seguir" + }, + "label": { + "scanFailure": "Erro durante leitura", + "scanPartialSuccess": "Varredura completa com erros", + "scanPending": "Varredura pendente", + "scanProgress": "Varrendo… ({ progress }%)", + "scanSuccess": "Varredura completa", + "sharingLink": "Link de compartilhamento" + }, + "link": { + "scan": "Iniciar varredura", + "scanDetails": "Detalhes" + }, + "message": { + "scanLaunched": "Varredura iniciada", + "scanSkipped": "Varredura ignorada (a anterior é muito recente)" + }, + "meta": { + "failedTracks": "Faixas que falharam:", + "lastUpdate": "Última atualização:", + "tracks": "{ n } faixa | { n } faixas" + }, + "modal": { + "unfollow": { + "content": { + "warning": "Ao deixar de seguir esta biblioteca, você não poderá mais ver o seu conteúdo." + }, + "header": "Deixar de seguir esta biblioteca?" + } + }, + "tooltip": { + "private": "Esta biblioteca é privada e a permissão do dono é necessária para ver seu conteúdo", + "public": "Esta biblioteca é pública e você pode ver seu conteúdo livremente" + } + }, + "Home": { + "button": { + "refresh": "Atualizar" + }, + "description": { + "remoteLibraries": "Bibliotecas remotas são de outros usuários da rede. Você pode vê-las desde que você tenha permissão ou sejam públicas." + }, + "header": { + "knownLibraries": "Bibliotecas conhecidas", + "remoteLibraries": "Bibliotecas remotas" + }, + "loading": { + "remoteLibraries": "Carregando bibliotecas remotas…" + } + }, + "ScanForm": { + "button": { + "submit": "Enviar denúncia" + }, + "header": { + "failure": "Não foi possível obter a biblioteca remota" + }, + "label": { + "search": "Pesquisar uma biblioteca remota" + }, + "placeholder": { + "url": "Insira o link de uma biblioteca" } } } }, - "Search": { - "label": { - "albums": "Álbuns", - "artists": "Artistas", - "playlists": "Listas de reprodução", - "radios": "Rádios", - "tags": "Tags", - "tracks": "Faixas" + "library": { + "DetailAlbums": { + "empty": { + "follow": "Pode ser necessário seguir esta biblioteca para ver o seu conteúdo." + } }, - "header": { - "search": "Pesquisar", - "remote": "Pesquisar um objeto remoto" + "DetailOverview": { + "empty": { + "follow": "Pode ser necessário seguir esta biblioteca para ver o seu conteúdo." + } }, - "button": { - "submit": "Enviar denúncia" + "DetailTracks": { + "empty": { + "follow": "Pode ser necessário seguir esta biblioteca para ver o seu conteúdo." + } + }, + "Edit": { + "button": { + "accept": "Aceitar", + "reject": "Recusar" + }, + "empty": { + "noFollowers": "Ninguém está seguindo esta biblioteca" + }, + "header": { + "followers": "Seguidores", + "libraryContents": "Conteúdos da biblioteca" + }, + "loading": { + "followers": "Carregando seguidores…" + }, + "table": { + "action": { + "header": { + "action": "Ação", + "date": "Data", + "status": "Status", + "user": "Usuário" + }, + "status": { + "accepted": "Aceito", + "pending": "Aprovação pendente", + "rejected": "Recusado" + } + } + } + }, + "LibraryBase": { + "button": { + "edit": "Editar", + "upload": "Enviar" + }, + "description": { + "sharingLink": "Compartilhe este link com outros usuários para que possam solicitar permissão para ver sua biblioteca." + }, + "label": { + "instance": "Restrito", + "private": "Privado", + "sharingLink": "Link de compartilhamento" + }, + "link": { + "albums": "Álbuns", + "artists": "Artistas", + "domain": "Encaminhar para { domain}", + "moderation": "Abrir interface de moderação", + "owner": "Propriedade de { username }", + "tracks": "Faixas" + }, + "meta": { + "tracks": "{ n } faixa | { n } faixas" + }, + "title": "Biblioteca", + "tooltip": { + "private": "Esta biblioteca é privada e a permissão do dono é necessária para ver seu conteúdo", + "public": "Esta biblioteca é pública e você pode ver seu conteúdo livremente" + } } }, "playlists": { + "Detail": { + "button": { + "cancel": "Cancelar", + "confirm": "Excluir lista", + "delete": "Excluir", + "edit": "Editar", + "embed": "Incorporar", + "playAll": "Tocar tudo", + "stopEdit": "Parar edição" + }, + "empty": { + "noTracks": "Sem faixas na lista ainda" + }, + "header": { + "tracks": "Faixas" + }, + "meta": { + "tracks": "Lista contendo { n } faixa de { username } | Lista contendo { n } faixas de { username }" + }, + "modal": { + "delete": { + "content": { + "warning": "Isso vai excluir permanentemente sua lista." + }, + "header": "Você deseja excluir a lista \"{ playlist }\"?" + }, + "embed": { + "header": "Incorpore esta lista no seu site" + } + }, + "title": "Lista" + }, "List": { + "button": { + "create": "Criar uma lista", + "manage": "Gerenciar suas listas", + "search": "Pesquisar" + }, + "empty": { + "noResults": "Nenhuma lista encontrada" + }, + "header": { + "browse": "Explorando listas", + "playlists": "Listas de reprodução" + }, + "label": { + "search": "Pesquisar" + }, "ordering": { "direction": { "ascending": "Crescente", @@ -4002,58 +4332,11 @@ }, "label": "Ordenando" }, - "header": { - "browse": "Explorando listas", - "playlists": "Listas de reprodução" - }, - "button": { - "create": "Criar uma lista", - "manage": "Gerenciar suas listas", - "search": "Pesquisar" - }, - "placeholder": { - "search": "Insira o nome da lista…" - }, - "empty": { - "noResults": "Nenhuma lista encontrada" - }, "pagination": { "results": "Resultados por página" }, - "label": { - "search": "Pesquisar" - } - }, - "Detail": { - "button": { - "cancel": "Cancelar", - "delete": "Excluir", - "confirm": "Excluir lista", - "edit": "Editar", - "embed": "Incorporar", - "playAll": "Tocar tudo", - "stopEdit": "Parar edição" - }, - "modal": { - "delete": { - "header": "Você deseja excluir a lista \"{ playlist }\"?", - "content": { - "warning": "Isso vai excluir permanentemente sua lista." - } - }, - "embed": { - "header": "Incorpore esta lista no seu site" - } - }, - "title": "Lista", - "meta": { - "tracks": "Lista contendo { n } faixa de { username } | Lista contendo { n } faixas de { username }" - }, - "empty": { - "noTracks": "Sem faixas na lista ainda" - }, - "header": { - "tracks": "Faixas" + "placeholder": { + "search": "Insira o nome da lista…" } } }, @@ -4063,278 +4346,22 @@ "confirm": "Excluir rádio", "edit": "Editar…" }, - "modal": { - "delete": { - "header": "Você deseja excluir a rádio \"{ radio }\"?", - "content": { - "warning": "Isso vai excluir permanentemente sua rádio." - } - } - }, "empty": { "noTracks": "Sem faixas na rádio ainda" }, - "title": "Rádio", "header": { "tracks": "Faixas" - } - } - } - }, - "composables": { - "audio": { - "usePlayOptions": { - "addToQueueMessage": "{ n } faixa adicionada à fila | { n } faixas adicionadas à fila" - } - }, - "locale": { - "useSharedLabels": { - "scopes": { - "libraries": { - "description": "Ver arquivos de áudio, bibliotecas, artistas, álbuns e faixas", - "label": "Bibliotecas e envios" - }, - "filters": { - "description": "Ver filtros", - "label": "Filtros" - }, - "profile": { - "description": "Ver e-mail, nome de usuário e informações de perfil", - "label": "Perfil" - }, - "edits": { - "description": "Ver edições", - "label": "Edições" - }, - "follows": { - "description": "Ver seguidos", - "label": "Seguidos" - }, - "listenings": { - "description": "Ver histórico de escutados", - "label": "Escutados" - }, - "reports": { - "description": "Ver rádios", - "label": "Denúncias" - }, - "notifications": { - "description": "Ver notificações", - "label": "Notificações" - }, - "playlists": { - "description": "Ver listas", - "label": "Listas de reprodução" - }, - "radios": { - "description": "Ver rádios", - "label": "Rádios" - }, - "favorites": { - "label": "Favoritos" - } }, - "filters": { - "accessedDate": "Data de acesso", - "albumTitle": "Nome do álbum", - "artistName": "Nome do(a) artista", - "bitrate": "Taxa de bits", - "creationDate": "Data de criação", - "domain": "Domínio", - "duration": "Duração", - "expirationDate": "Data de expiração", - "firstSeen": "Data do primeiro acesso", - "followers": "Seguidores", - "itemsCount": "Itens", - "lastActivity": "Última atividade", - "lastSeen": "Data da última visualização", - "modificationDate": "Data de modificação", - "name": "Nome", - "receivedMessages": "Mensagens recebidas", - "releaseDate": "Data de lançamento", - "dateJoined": "Data de criação", - "size": "Tamanho", - "trackTitle": "Nome da faixa", - "uploads": "Envios", - "username": "Nome de usuário", - "users": "Usuários" - }, - "fields": { - "privacyLevel": { - "label": "Visibilidade da atividade", - "help": "Determine o nível de visibilidade de sua atividade", - "shortChoices": { - "public": "Todo mundo", - "instance": "Instância", - "private": "Privado" + "modal": { + "delete": { + "content": { + "warning": "Isso vai excluir permanentemente sua rádio." }, - "choices": { - "instance": "Todo mundo nesta instância", - "public": "Todo mundo em todas as instâncias", - "private": "Apenas eu" - } - }, - "summary": { - "label": "Biografia" - }, - "reportType": { - "label": "Categoria", - "choices": { - "illegalContent": "Conteúdo ilegal", - "invalidMetadata": "Metadado inválido", - "offensiveContent": "Conteúdo ofensivo", - "other": "Outro", - "takedownRequest": "Solicitação de exclusão" - } - }, - "importStatus": { - "label": "Clique para mostrar mais informações sobre o processo de importação desse envio", - "choices": { - "draft": { - "label": "Rascunho", - "help": "Faixa enviada, mas ainda não foi processada pelo servidor" - }, - "errored": { - "label": "Com erro", - "help": "Não foi possível processar esta faixa, verifique se ela está com as tags adequadas" - }, - "finished": { - "label": "Finalizado", - "help": "Importado" - }, - "pending": { - "label": "Pendente", - "help": "Faixa enviada, mas ainda não foi processada pelo servidor" - }, - "skipped": { - "label": "Ignorado", - "help": "Faixa já presente em uma de suas bibliotecas" - } - } - }, - "contentCategory": { - "label": "Categoria do conteúdo", - "choices": { - "music": "Música", - "other": "Outro" - } + "header": "Você deseja excluir a rádio \"{ radio }\"?" } - } + }, + "title": "Rádio" } - }, - "moderation": { - "useReport": { - "account": { - "typeLabel": "Conta" - }, - "album": { - "typeLabel": "Álbum", - "label": "Denunciar este álbum…" - }, - "artist": { - "typeLabel": "Artista", - "label": "Denunciar este artista…" - }, - "channel": { - "typeLabel": "Canal", - "label": "Denunciar este canal…" - }, - "library": { - "typeLabel": "Biblioteca", - "label": "Denunciar esta biblioteca…" - }, - "playlist": { - "typeLabel": "Lista", - "label": "Denunciar esta lista…" - }, - "track": { - "label": "Denunciar esta faixa…", - "typeLabel": "Faixa" - } - }, - "useReportConfigs": { - "account": { - "label": "Conta", - "summary": "Biografia" - }, - "album": { - "label": "Álbum", - "releaseDate": "Data de lançamento", - "title": "Título" - }, - "artist": { - "label": "Artista" - }, - "channel": { - "label": "Canal" - }, - "track": { - "copyright": "Direitos autorais", - "license": "Licença", - "position": "Posição", - "title": "Título", - "label": "Faixa" - }, - "creationDate": { - "label": "Data de criação" - }, - "library": { - "description": "Descrição", - "label": "Biblioteca" - }, - "musicbrainzId": { - "label": "ID MusicBrainz" - }, - "name": { - "label": "Nome" - }, - "playlist": { - "label": "Lista" - }, - "tags": { - "label": "Tags" - }, - "visibility": { - "label": "Visibilidade" - } - }, - "useEditConfigs": { - "track": { - "copyright": "Direitos autorais", - "license": "Licença", - "position": "Posição", - "title": "Título" - }, - "description": { - "label": "Descrição" - }, - "artist": { - "name": "Nome" - }, - "album": { - "releaseDate": "Data de lançamento", - "title": "Título" - }, - "tags": { - "label": "Tags" - } - } - }, - "useThemeList": { - "darkTheme": "Escuro", - "lightTheme": "Claro" - } - }, - "init": { - "serviceWorker": { - "newAppVersion": "Nova versão do aplicativo disponível.", - "actions": { - "update": "Atualizar" - } - }, - "axios": { - "rateLimitDelay": "Você foi limitado por enviar muitas solicitações, tente novamente em { delay }", - "rateLimitLater": "Você foi limitado por enviar muitas solicitações, tente novamente mais tarde" } } } diff --git a/front/src/locales/ru.json b/front/src/locales/ru.json index 62ea012b3..a81974ad7 100644 --- a/front/src/locales/ru.json +++ b/front/src/locales/ru.json @@ -1,1442 +1,57 @@ { + "App": { + "loading": "Загрузка..." + }, "components": { - "auth": { - "Authorize": { - "header": { - "access": "{ app } хочет получить доступ к Вашему аккаунту Funkwhale", - "authorize": "Авторизовать стороннее приложение", - "authorizeFailure": "Ошибка при авторизации приложения", - "fetchFailure": "Ошибка при запросе данных приложения", - "allScopes": "Полный доступ", - "readOnly": "Только чтение", - "writeOnly": "Только запись" - }, - "title": "Разрешить приложение", - "button": { - "authorize": "Авторизовать { app }" - }, - "help": { - "pasteCode": "Скопируйте и вставьте следующий код в приложение:", - "redirect": "Вы будете перенаправлены на { 0 }", - "copyCode": "Вам будет показан код для вставки в приложение." - }, - "message": { - "unknownPermissions": "Приложение также запрашивает следующие неизвестные разрешения:" - } - }, - "SubsonicTokenForm": { - "message": { - "accessDisabled": "Доступ отключен", - "passwordUpdated": "Пароль обновлён", - "unavailable": "Subsonic API недоступен на этом узле Funkwhale." - }, - "button": { - "confirmDisable": "Отключить доступ", - "disable": "Отключить доступ Subsonic", - "newPassword": "Запросить новый пароль", - "confirmNewPassword": "Запросить пароль" - }, - "modal": { - "disableSubsonic": { - "header": "Отключить доступ Subsonic API?", - "content": { - "warning": "Это полностью отключит доступ к Subsonic API для этого аккаунта." - } - }, - "newPassword": { - "header": "Запросить новый пароль Subsonic API?", - "content": { - "warning": "Это приведёт к отключению устройств которые используют текущий пароль." - } - } - }, - "link": { - "apps": "Узнайте как использовать Funkwhale из других приложений" - }, - "header": { - "error": "Ошибка", - "subsonic": "Пароль Subsonic API" - }, - "description": { - "subsonic": { - "paragraph1": "Funkwhale совместим с другими музыкальными плеерами, которые поддерживают Subsonic API.", - "paragraph3": "Получение доступа к Funkwhale из этих клиентов требует отдельного пароля, который может быть задан ниже.", - "paragraph2": "Вы можете наслаждаться Вашим списком воспроизведения и музыкой в режиме оффлайн, например с Вашего смартфона или планшета." - } - }, - "label": { - "subsonicField": "Пароль Subsonic API" - } - }, - "ApplicationEdit": { - "label": { - "accessToken": "Токен доступа", - "appId": "ID приложения", - "appSecret": "Секрет приложения" - }, - "header": { - "appDetails": "Информация о приложении", - "editApp": "Редактировать приложение" - }, - "help": { - "appDetails": "ID приложения и секрет являются важной информацией, к ним нужно относиться как к паролям. Не передавайте их никому." - }, - "link": { - "settings": "Назад к настройкам" - }, - "title": "Редактировать приложение", - "button": { - "regenerateToken": "Перегенерировать токен" - } - }, - "Settings": { - "title": "Настройки аккаунта", - "header": { - "accountSettings": "Настройки аккаунта", - "authorizedApps": "Авторизованные приложения", - "avatar": "Аватар", - "changeEmail": "Изменить Ваш адрес электронной почты", - "changePassword": "Сменить мой пароль", - "contentFilters": "Фильтры содержимого", - "deleteAccount": "Удалить мой аккаунт", - "hiddenArtists": "Скрытые исполнители", - "plugins": "Плагины", - "settingsUpdated": "Настройки обновлены", - "emailFailure": "Мы не можем изменить ваш адрес почты", - "accountFailure": "Нам не удалось удалить Ваш аккаунт", - "noApps": "У Вас нет приложений, связанных с Вашей учётной записью.", - "noPersonalApps": "У вас пока нет настроенных приложений.", - "yourApps": "Ваши приложения", - "avatarFailure": "Ваш аватар не может быть сохранён", - "passwordFailure": "Ваш пароль не может быть изменён", - "updateFailure": "Настройки не могут быть обновлены" - }, - "table": { - "authorizedApps": { - "header": { - "application": "Приложение", - "permissions": "Разрешения" - } - }, - "yourApps": { - "header": { - "application": "Приложение", - "creationDate": "Дата создания", - "scopes": "Области" - } - }, - "artists": { - "header": { - "creationDate": "Дата создания", - "name": "Имя" - } - } - }, - "label": { - "avatar": "Аватар", - "currentPassword": "Текущий пароль", - "newEmail": "Новый адрес почты", - "newPassword": "Новый пароль", - "password": "Пароль" - }, - "button": { - "password": "Сменить пароль", - "delete": "Удалить", - "deleteAccountConfirm": "Удалить мой аккаунт", - "deleteAccount": "Удалить мой аккаунт…", - "disableSubsonic": "Отключить доступ", - "edit": "Редактировать", - "refresh": "Обновить", - "remove": "Удалить", - "removeApp": "Удалить приложение", - "revoke": "Отозвать", - "revokeAccess": "Отозвать доступ", - "update": "Обновить", - "updateSettings": "Обновить настройки" - }, - "description": { - "changeEmail": "Изменить адрес почты, связанный с вашим аккаунтом. Мы вышлем подтверждение на новый адрес.", - "changePassword": { - "paragraph1": "Изменение Вашего пароля также изменит Ваш пароль Subsonic API, если Вы запрашивали его.", - "paragraph2": "Вам потребуется обновить пароль на своих клиентах, которые используют его." - }, - "contentFilters": "Фильтры содержимого помогают Вам скрывать контент, который Вы не ходите видеть в этом сервисе.", - "authorizedApps": "Это список приложений, которые имеют доступ к данным Вашего аккаунта.", - "yourApps": "Это список приложений, которые Вы создали.", - "plugins": "Используйте плагины для расширения возможностей Funkwhale.", - "deleteAccount": "Вы можете окончательно и бесповоротно удалить Ваш аккаунт и все связанные с ним данные, используя форму ниже. Потребуется дополнительное подтверждение." - }, - "modal": { - "changePassword": { - "header": "Сменить Ваш пароль?", - "content": { - "warning": "Изменение Вашего пароля приведёт к следующим последствиям:", - "logout": "Вы будете отключены от этого сеанса и Вам нужно будет зайти заново", - "subsonic": "Ваш пароль Subsonic будет изменён на новый случайный, что приведёт к отключению всех устройств, которые использовали старый пароль Subsonic" - } - }, - "deleteAccount": { - "header": "Вы хотите удалить Ваш аккаунт?", - "content": { - "warning": "Это окончательно и бесповоротно удалит ваши данные с наших серверов. Вы немедленно выйдете из системы." - } - }, - "deleteApp": { - "header": "Удалить приложение \"{ application }\"?", - "content": { - "warning": "Это необратимо удалит приложение и все связанные с ним токены." - } - }, - "revokeApp": { - "header": "Отозвать доступ для приложения \"{ application }\"?", - "content": { - "warning": "Это предотвратит доступ приложения к сервису от вашего имени." - } - } - }, - "help": { - "noApps": "Если Вы разрешите сторонним приложениям доступ к Вашим данным, эти приложения появятся здесь.", - "changePassword": "Пожалуйста, перепроверьте правильный ввод пароля", - "noPersonalApps": "Создайте его, чтобы интегрировать Funkwhale со сторонними приложениями." - }, - "link": { - "managePlugins": "Управлять плагинами", - "newApp": "Создать новое приложение" - }, - "warning": { - "deleteAccount": "Ваш аккаунт будет удалён с наших серверов в течение нескольких минут. Мы сообщим об удалении и другим серверам, которые могут иметь частичные копии Ваших данных, чтобы они тоже произвели удаление. Обратите внимание, что некоторые из них могут быть недоступны или откажутся выполнить эту просьбу." - }, - "message": { - "currentEmail": "Ваш текущий почтовый адрес { email }.", - "confirmDelete": "Ваш запрос на удаление был отправлен, Ваш аккаунт и данные будут удалены в ближайшее время" - } - }, - "Logout": { - "header": { - "confirm": "Вы уверены, что хотите выйти?", - "unauthenticated": "Вы не вошли в систему" - }, - "link": { - "login": "Войти!" - }, - "title": "Выход", - "button": { - "logout": "Да, выйти!" - }, - "message": { - "loggedIn": "Вы вошли как { username }" - } - }, - "ApplicationNew": { - "link": { - "settings": "Назад к настройкам" - }, - "title": "Создать новое приложение" - }, - "ApplicationForm": { - "label": { - "scopes": { - "description": "Отметка родительских областей на \"чтение\" или \"запись\" подразумевает доступ ко всем соответствующим дочерним объектам.", - "read": { - "label": "Чтение", - "description": "Доступ к данным пользователя только для чтения" - }, - "write": { - "label": "Запись", - "description": "Доступ к данным пользователя только для записи" - } - }, - "name": "Имя", - "redirectUri": "URI перенаправления" - }, - "button": { - "create": "Создать приложение", - "update": "Обновить приложение" - }, - "help": { - "redirectUri": "Используйте \"urn:ietf:wg:oauth:2.0:oob\" как URI перенаправления, если Ваше приложение не опубликовано в Интернет." - }, - "header": { - "failure": "Мы не смогли сохранить Ваши изменения" - } - }, - "LoginForm": { - "link": { - "createAccount": "Создать новый аккаунт", - "resetPassword": "Сбросить ваш пароль" - }, - "placeholder": { - "username": "Введите ваше имя пользователя или адрес электронной почты" - }, - "help": { - "approvalRequired": "Если вы недавно зарегистрировались, может понадобиться подождать, пока ваша учётная запись будет одобрена, либо придёт подтверждение по почте.", - "invalidCredentials": "Пожалуйста перепроверьте, что ваше имя пользователя и пароль верны и что вы подтвердили ваш адрес почты." - }, - "button": { - "login": "Войти" - }, - "label": { - "password": "Пароль", - "username": "Имя пользователя или почта" - }, - "header": { - "loginFailure": "Вход не удался" - } - }, - "SignupForm": { - "button": { - "create": "Создать мой аккаунт" - }, - "label": { - "email": "Адрес электронной почты", - "password": "Пароль", - "username": "Имя пользователя" - }, - "placeholder": { - "email": "Введите ваш адрес электронной почты", - "invitation": "Введите Ваш код приглашения (нечувствительно к регистру)", - "username": "Введите Ваше имя пользователя" - }, - "header": { - "login": "Войти в Ваш аккаунт Funkwhale", - "signupFailure": "Ваша учётная запись не может быть создана." - }, - "message": { - "registrationClosed": "Регистрация на этом узле закрыта, Вам понадобится код приглашения чтобы зарегистрироваться.", - "requiresReview": "Регистрация на этом узле открыта, но требует подтверждения модератором.", - "awaitingReview": "Ваш запрос на регистрацию успешно отправлен. Вы получите письмо, когда команда модераторов рассмотрит его.", - "accountCreated": "Ваш аккаунт был успешно создан. Пожалуйста, проверьте свою электронную почту, прежде чем входить в него." - } - }, - "Plugin": { - "link": { - "documentation": "Документация" - }, - "label": { - "pluginEnabled": "Включено", - "library": "Библиотека" - }, - "header": { - "failure": "Ошибка во время сохранения плагина" - }, - "description": { - "library": "Библиотека, куда будут импортированы файлы." - }, - "button": { - "save": "Сохранить", - "scan": "Сканировать" - } - } - }, "About": { - "stat": { - "activeUsers": "{ n } активный пользователь | { n } активных пользователя", - "hoursOfMusic": "час музыки | часа музыки" + "description": { + "findApp": "Используйте Funkwhale на других устройствах с помощью наших приложений.", + "funkwhale": "Этот узел работает на Funkwhale, общественном проекте, который позволяет Вам слушать и делиться музыкой и другим аудио по децентрализованной открытой сети.", + "publicContent": "Слушайте публичные альбомы и списки воспроизведения, имеющиеся на этом узле.", + "quota": "Пользователи этого узла так же получают { quota } места бесплатно, чтобы делиться своей музыкой!", + "signup": "Зарегистрируйтесь сейчас, чтобы добавлять треки в избранное, создавать списки, находить новую музыку и многое другое!" }, "header": { - "funkwhale": "Социальная сеть для прослушивания и распространения музыки", "aboutPod": "Об этом узле", - "publicContent": "Посмотреть публичное содержимое", "findApp": "Найти приложение", + "funkwhale": "Социальная сеть для прослушивания и распространения музыки", + "publicContent": "Посмотреть публичное содержимое", "signup": "Регистрация" }, - "title": "Информация", + "help": { + "closedRegistrations": "Регистрация на этом узле закрыта. Вы можете создать аккаунт на другом узле по ссылке ниже." + }, "link": { "findOtherPod": "Найти другой узел", "learnMore": "Узнать больше" }, - "description": { - "funkwhale": "Этот узел работает на Funkwhale, общественном проекте, который позволяет Вам слушать и делиться музыкой и другим аудио по децентрализованной открытой сети.", - "publicContent": "Слушайте публичные альбомы и списки воспроизведения, имеющиеся на этом узле.", - "signup": "Зарегистрируйтесь сейчас, чтобы добавлять треки в избранное, создавать списки, находить новую музыку и многое другое!", - "findApp": "Используйте Funkwhale на других устройствах с помощью наших приложений.", - "quota": "Пользователи этого узла так же получают { quota } места бесплатно, чтобы делиться своей музыкой!" + "message": { + "greeting": "Привет, {username}", + "loggedIn": "Вы уже зашли!" }, "placeholder": { - "noDescription": "Нет описания." + "noDescription": "Нет описания" }, - "message": { - "loggedIn": "Вы уже зашли!" - } - }, - "Home": { "stat": { "activeUsers": "{ n } активный пользователь | { n } активных пользователя", - "hoursOfMusic": "{ n } час музыки | { n } часа музыки" + "hoursOfMusic": "час музыки | часа музыки" }, - "header": { - "aboutFunkwhale": "О Funkwhale", - "about": "Об этом узле Funkwhale", - "contact": "Контакт", - "login": "Вход", - "newChannels": "Новые каналы", - "newAlbums": "Недавно добавленные альбомы", - "signup": "Регистрация", - "statistics": "Статистика", - "links": "Полезные ссылки", - "welcome": "Добро пожаловать на { podName }!" - }, - "link": { - "publicContent": { - "label": "Посмотреть публичное содержимое", - "description": "Слушайте публичные альбомы и списки воспроизведения, имеющиеся на этом узле" - }, - "userGuides": { - "description": "Узнайте всё о Funkwhale и её возможностях", - "label": "Руководства пользователя" - }, - "findOtherPod": "Найти другой узел", - "learnMore": "Узнать больше", - "mobileApps": { - "label": "Мобильные приложения", - "description": "Используйте Funkwhale на других устройствах с помощью наших приложений" - }, - "rules": "Правила сервера", - "viewMore": "Загрузить ещё…", - "funkwhale": "Посетить funkwhale.audio" - }, - "description": { - "funkwhale": { - "paragraph2": "Funkwhale бесплатен и разрабатывается дружелюбной командой добровольцев.", - "paragraph1": "Этот узел работает на Funkwhale, общественном проекте, который позволяет Вам слушать и делиться музыкой и другим аудио по децентрализованной открытой сети." - }, - "signup": "Зарегистрируйтесь сейчас, чтобы добавлять треки в избранное, создавать списки, находить новую музыку и многое другое!", - "quota": "Пользователи этого узла так же получают { quota } места бесплатно, чтобы делиться своей музыкой!" - }, - "title": "Домой", - "placeholder": { - "noDescription": "Нет описания." - } - }, - "audio": { - "artist": { - "Card": { - "meta": { - "episodes": "{ n } эпизод | { n } эпизода", - "tracks": "{ n } трек | { n } трека" - } - }, - "Widget": { - "button": { - "more": "Показать больше" - } - } - }, - "ChannelCard": { - "meta": { - "episodes": "{ n } эпизод | { n } эпизода", - "tracks": "{ n } трек | { n } трека" - }, - "title": "Обновлено { date }" - }, - "ChannelSerieCard": { - "meta": { - "episodes": "{ n } эпизод | { n } эпизода" - } - }, - "album": { - "Card": { - "meta": { - "tracks": "{ n } трек | { n } трека" - } - }, - "Widget": { - "button": { - "more": "Показать больше" - } - } - }, - "Player": { - "meta": { - "position": "({ index } из { length })" - }, - "header": { - "player": "Плеер и управление" - }, - "label": { - "clearQueue": "Очистить Вашу очередь", - "expandQueue": "Раскрыть", - "addArtistContentFilter": "Скрыть контент этого исполнителя…", - "loopingDisabled": "Повтор отключен. Нажмите чтобы включить проигрывание трека по кругу.", - "loopingSingle": "Режим повтора трека. Нажмите, чтобы включить проигрывание всего списка по кругу.", - "loopingWholeQueue": "Повтор всего списка включён. Нажмите, чтобы выключить повтор воспроизведения.", - "audioPlayer": "Плеер", - "mute": "Выключить звук", - "nextTrack": "Следующий трек", - "pause": "Пауза", - "play": "Проиграть", - "previousTrack": "Предыдущий трек", - "shuffleQueue": "Перемешать очередь", - "unmute": "Включить звук" - } - }, - "PlayButton": { - "button": { - "addToQueue": "Добавить в очередь", - "addToPlaylist": "Добавить в список воспроизведения…", - "episodeDetails": "Подробности", - "hideArtist": "Скрыть контент этого исполнителя", - "discretePlay": "Проиграть", - "playAlbum": "Проиграть альбом", - "playArtist": "Проиграть исполнителя", - "playNext": "Проиграть следующий", - "playNow": "Играть сейчас", - "playPlaylist": "Проиграть список воспроизведения", - "startRadio": "Играть похожие треки", - "playTrack": "Проиграть трек", - "playTracks": "Проиграть треки", - "report": "Пожаловаться…", - "trackDetails": "Подробности" - }, - "title": { - "more": "Ещё…", - "unavailable": "Этот трек недоступен ни в одной из библиотек, к которым у Вас есть доступ" - } - }, - "podcast": { - "Modal": { - "button": { - "addToFavorites": "Добавить в избранное", - "addToPlaylist": "Добавить в список воспроизведения…", - "addToQueue": "Добавить в очередь", - "episodeDetails": "Подробности", - "playNext": "Проиграть следующий", - "playNow": "Играть сейчас", - "startRadio": "Запустить радио", - "removeFromFavorites": "Удалить из избранного", - "trackDetails": "Подробности", - "albumDetails": "Посмотреть альбом", - "artistDetails": "Посмотреть исполнителя", - "channelDetails": "Посмотреть канал", - "seriesDetails": "Посмотреть серии" - } - }, - "MobileRow": { - "button": { - "actions": "Действия с треком" - } - } - }, - "track": { - "Modal": { - "button": { - "addToFavorites": "Добавить в избранное", - "addToPlaylist": "Добавить в список воспроизведения…", - "addToQueue": "Добавить в очередь", - "episodeDetails": "Подробности", - "playNext": "Проиграть следующий", - "playNow": "Играть сейчас", - "startRadio": "Запустить радио", - "removeFromFavorites": "Удалить из избранного", - "trackDetails": "Подробности", - "albumDetails": "Посмотреть альбом", - "artistDetails": "Посмотреть исполнителя", - "channelDetails": "Посмотреть канал", - "seriesDetails": "Посмотреть серии" - } - }, - "Table": { - "table": { - "header": { - "album": "Альбом", - "artist": "Исполнитель", - "title": "Название" - } - } - }, - "Widget": { - "empty": { - "noResults": "Ничего не найдено" - }, - "button": { - "more": "Показать больше" - } - }, - "MobileRow": { - "button": { - "actions": "Действия с треком" - } - } - }, - "VolumeControl": { - "label": { - "slider": "Регулировка громкости" - }, - "button": { - "mute": "Выключить звук", - "unmute": "Включить звук" - } - }, - "SearchBar": { - "label": { - "album": "Альбом", - "artist": "Исполнитель", - "category": { - "federation": "Федерация", - "podcasts": "Подкасты" - }, - "search": "Поискать музыку", - "tag": "Тег", - "track": "Трек" - }, - "link": { - "more": "Ещё результаты", - "fediverse": "Искать в Fediverse", - "rss": "Подписаться на подкаст через RSS" - }, - "header": { - "noResults": "Совпадений не найдено" - }, - "placeholder": { - "search": "Искать исполнителей, альбомы, треки…" - }, - "empty": { - "noResults": "К сожалению этот поиск не дал результатов" - } - }, - "Search": { - "header": { - "albums": "Альбомы", - "artists": "Исполнители", - "search": "Поискать музыку" - }, - "placeholder": { - "search": "Исполнитель, альбом, трек…" - }, - "empty": { - "noAlbums": "Нет альбомов, подходящих Вашему запросу", - "noArtists": "Нет исполнителей по Вашему запросу" - } - }, - "ChannelForm": { - "label": { - "discography": "Дискография", - "category": "Категория", - "image": "Изображение канала", - "description": "Описание", - "username": "Имя в Fediverse", - "language": "Язык", - "name": "Имя", - "email": "Адрес почты владельца", - "owner": "Имя владельца", - "podcast": "Подкасты", - "subcategory": "Подкатегория", - "tags": "Теги" - }, - "placeholder": { - "name": "Крутое имя для канала", - "username": "крутоеназваниеканала" - }, - "header": { - "error": "Ошибка при сохранении канала" - }, - "help": { - "podcast": "Загружайте ваши эпизоды и держите вашу аудиторию в курсе.", - "discography": "Публикуйте музыку, которую вы делаете, в виде удобной дискографии из альбомов и синглов.", - "podcastFields": "Used for the itunes:email and itunes:поле имени требуется некоторыми платформами, например Spotify и iTunes.", - "username": "Используется в URL и для подписки на этот канал в Федерации. Вы не сможете изменить это позже." - }, - "loader": { - "loading": "Загружается" - }, - "legend": { - "purpose": "Для чего этот канал будет использоваться?" - } - }, - "LibraryFollowButton": { - "button": { - "cancel": "Отменить запрос на подписку", - "follow": "Подписаться", - "unfollow": "Отписаться" - } - }, - "EmbedWizard": { - "button": { - "copy": "Копировать" - }, - "help": { - "embed": "Скопируйте и вставьте этот код в HTML Вашего сайта", - "width": "Оставьте пустым для динамического виджета", - "anonymous": "Пожалуйста, свяжитесь с администратором и попросите изменить соответствующие настройки." - }, - "label": { - "embed": "Внедрить код", - "height": "Высота виджета", - "width": "Ширина виджета" - }, - "header": { - "preview": "Предпросмотр" - }, - "warning": { - "anonymous": "Общий доступ не будет работать, так как данный узел не разрешает анонимным пользователям доступ к содержимому." - }, - "message": { - "copy": "Текст скопирован в буфер обмена!" - } - }, - "ChannelSeries": { - "button": { - "showMore": "Показать больше" - }, - "help": { - "subscribe": "Вам может потребоваться подписаться на этот канал, чтобы увидеть его содержимое." - } - }, - "ChannelsWidget": { - "button": { - "showMore": "Показать больше" - } - }, - "ChannelEntries": { - "help": { - "subscribe": "Вам может потребоваться подписаться на этот канал, чтобы увидеть его содержимое." - } - } - }, - "library": { - "AlbumBase": { - "meta": { - "episodes": "{ n } эпизод | { n } эпизода", - "tracks": "{ n } трек | { n } трека" - }, - "link": { - "addDescription": "Добавить описание…" - } - }, - "ArtistBase": { - "meta": { - "tracks": "{ n } трек из | { n } трека из", - "albums": "{ n } альбомов | { n } альбомов" - }, - "title": "Исполнитель", - "button": { - "cancel": "Отмена", - "edit": "Редактировать", - "embed": "Внедрить", - "more": "Ещё…", - "play": "Проиграть все альбомы" - }, - "modal": { - "embed": { - "header": "Внедрить произведения этого исполнителя на Ваш сайт" - } - }, - "link": { - "moderation": "Открыть в режиме модерации", - "discogs": "Искать на Discogs", - "wikipedia": "Искать на Википедии", - "django": "Посмотреть в админке Django", - "domain": "Посмотреть на { domain }", - "musicbrainz": "Смотреть на MusicBrainz" - } - }, - "radios": { - "Builder": { - "header": { - "matches": "{ n } подходящий трек | { n } подходящих трека", - "builder": "Конструктор", - "created": "Радио создано", - "updated": "Радио обновлено" - }, - "table": { - "filter": { - "header": { - "actions": "Действия", - "candidates": "Кандидаты", - "config": "Конфигурация", - "exclude": "Исключить", - "name": "Имя фильтра" - } - } - }, - "button": { - "filter": "Добавить фильтр", - "save": "Сохранить" - }, - "label": { - "filter": "Добавить фильтры, чтобы настроить своё радио", - "description": "Описание", - "public": "Публично отображать", - "name": "Название радио" - }, - "placeholder": { - "description": "Моё замечательное описание", - "name": "Моё замечательное радио" - }, - "title": "Конструктор радио", - "option": { - "filter": "Выберите фильтр" - }, - "description": { - "builder": "Вы можете использовать этот интерфейс чтобы создать собственное радио, которое будет проигрывать треки согласно Вашим критериям." - } - }, - "Filter": { - "cancelButton": "Отмена", - "excludeLabel": "Исключить", - "removeButton": "Удалить", - "matchingTracksModalHeader": "Треки, подходящие под фильтр" - } - }, - "FileUpload": { - "tooltip": { - "network": "При загрузке этого файла произошла сетевая ошибка", - "size": "Невозможно загрузить файл, убедитесь что он не слишком большой", - "extension": "Неправильный тип файла, убедитесь, что закачиваете аудио-файл. Поддерживаемые типы файлов: { extensions }", - "retry": "Повторить", - "denied": "Загрузка отклонена, убедитесь, что файл не слишком большой и Вы не превысили квоту", - "timeout": "Таймаут загрузки, попробуйте ещё раз" - }, - "table": { - "upload": { - "header": { - "actions": "Действия", - "filename": "Имя файла", - "size": "Размер", - "status": "Статус" - }, - "status": { - "pending": "Ожидает", - "uploaded": "Загружено", - "uploading": "Загружается…" - } - } - }, - "button": { - "cancel": "Отмена", - "retry": "Повторить неудачные закачки" - }, - "label": { - "uploadWidget": "Нажмите чтобы выбрать файлы для загрузки или перетащите файлы или директории", - "remainingSpace": "Свободное место", - "extensions": "Поддерживаемые расширения: { extensions }" - }, - "header": { - "failure": "Ошибка при отправке жалобы", - "server": "Статус импорта", - "status": "Статус импорта", - "local": "Импорт музыки из локального хранилища" - }, - "link": { - "processing": "Обработка", - "uploading": "Загружается", - "picard": "Мы рекомендуем использовать Picard для этого." - }, - "description": { - "import": "Результат импорта:", - "previousImport": "Результаты прошлого импорта:" - }, - "message": { - "local": { - "format": "Закачиваемые вами файлы имеют формат OGG, Flac, MP3 или AIFF", - "tag": "Закачиваемые вами файлы имеют правильные теги.", - "message": "Вы собираетесь загрузить музыку в Вашу библиотеку. Перед тем как продолжить, убедитесь что:", - "copyright": "Вы не загружаете контент, защищенный авторскими правами, в публичные библиотеки, это может быть нарушением закона" - } - } - }, - "EditForm": { - "placeholder": { - "summary": "Краткая информация о Ваших правках." - }, - "button": { - "cancel": "Отмена", - "clear": "Очистить", - "reset": "Сброс на начальное значение", - "showUnreviewed": "Ограничить неодобренные правки", - "showAll": "Показать все правки", - "submit": "Применить изменения", - "new": "Отправить ещё одну правку", - "suggest": "Отправить предложение" - }, - "header": { - "failure": "Ошибка при отправке правки", - "recentEdits": "Недавние правки", - "unreviewed": "Свежие правки в ожидании принятия", - "success": "Ваша правка была успешно отправлена." - }, - "notApplicable": "Н/Д", - "empty": { - "suggestEdit": "Предложите правку, используя форму ниже." - }, - "label": { - "summary": "Сводка (необязательно)" - }, - "message": { - "noPermission": "Вы не имеете разрешений для редактирования этого объекта, но Вы можете предложить правки. После отправки правки будут рассмотрены перед применением." - } - }, - "Albums": { - "link": { - "addMusic": "Добавить музыку" - }, - "title": "Альбомы", - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "header": { - "browse": "Просмотр альбомов" - }, - "placeholder": { - "search": "Введите название альбома…" - }, - "empty": { - "noResults": "Нет результатов по этому запросу" - }, - "pagination": { - "results": "Результатов на странице" - }, - "label": { - "search": "Поиск", - "tags": "Теги" - }, - "button": { - "search": "Поиск" - } - }, - "Artists": { - "button": { - "upload": "Добавить музыку", - "search": "Поиск" - }, - "label": { - "search": "Имя исполнителя", - "excludeCompilation": "Исключить исполнителей с компиляциями", - "tags": "Теги" - }, - "title": "Исполнители", - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "header": { - "browse": "Просмотр исполнителей" - }, - "empty": { - "noResults": "Нет результатов по этому запросу" - }, - "pagination": { - "results": "Результатов на странице" - }, - "placeholder": { - "search": "Поиск…" - } - }, - "TrackDetail": { - "table": { - "release": { - "album": "Альбом", - "artist": "Исполнитель", - "copyright": "Копирайт", - "license": "Лицензия", - "series": "Серия", - "url": "URL", - "year": "Год" - }, - "track": { - "bitrate": { - "label": "Битрейт" - }, - "codec": "Кодек", - "downloads": "Загрузки", - "duration": "Длительность", - "size": "Размер" - } - }, - "header": { - "episode": "Подробности", - "library": "Связанные библиотеки", - "playlists": "Связанные списки воспроизведения", - "release": "О релизе", - "track": "Подробности" - }, - "notApplicable": "Н/Д", - "description": { - "library": "Этот трек представлен в следующих библиотеках:" - }, - "link": { - "musicbrainz": "Смотреть на MusicBrainz" - } - }, - "TagDetail": { - "link": { - "albums": "Альбомы", - "artists": "Исполнители", - "moderation": "Открыть в режиме модерации" - }, - "header": { - "channels": "Каналы", - "tracks": "Треки" - } - }, - "ArtistDetail": { - "header": { - "album": "Альбомы этого исполнителя", - "track": "Новые треки этого исполнителя", - "library": "Пользовательские библиотеки" - }, - "button": { - "more": "Загрузить ещё…", - "filter": "Удалить фильтр" - }, - "link": { - "filter": "Просмотреть мои фильтры" - }, - "description": { - "library": "Исполнитель представлен в следующих библиотеках:" - }, - "message": { - "filter": "Сейчас Вы скрываете содержимое, связанное с этим исполнителем." - } - }, - "ImportStatusModal": { - "error": { - "importFailure": "Во время обработки закачки возникла ошибка. Дополнительная информация ниже.", - "unknownError": { - "message": "Возникла неизвестная ошибка", - "label": "Неизвестная ошибка" - }, - "invalidMetadata": { - "label": "Неправильные метаданные", - "message": "Метаданные файла неправильные или некоторые обязательные поля отсутствуют." - } - }, - "button": { - "close": "Закрыть" - }, - "table": { - "error": { - "debug": "Диагностика", - "errorDetail": "Информация об ошибке", - "errorType": "Тип ошибки", - "help": "Помощь" - } - }, - "header": { - "importDetail": "Детали импорта" - }, - "link": { - "support": "Открыть тему в поддержке (вставьте диагностическую информацию ниже в Ваше сообщение)", - "documentation": "Посмотрите нашу документацию по этой ошибке" - }, - "message": { - "importDetail": "Закачка всё ещё в очереди и скоро будет обработана сервером.", - "importSuccess": "Закачка была успешно обработана сервером." - }, - "warning": { - "importSkipped": "Закачка была пропущена, так как похожая уже есть в одной из ваших библиотек." - } - }, - "EditCard": { - "button": { - "approve": "Одобрить", - "delete": "Удалить", - "reject": "Отклонить" - }, - "status": { - "approved": "Одобрено", - "applied": "Одобрено и применено", - "pending": "Ожидание одобрения", - "rejected": "Отклонено" - }, - "modal": { - "delete": { - "header": "Удалить это предложение?" - }, - "content": { - "warning": "Предложенная правка будет удалена, это действие нельзя отменить." - } - }, - "table": { - "update": { - "header": { - "field": "Поле", - "newValue": "Новое значение", - "oldValue": "Старое значение" - }, - "notApplicable": "Н/Д" - } - }, - "header": { - "modification": "Изменение { id }" - }, - "link": { - "track": "Трек #{ id } - { name }" - } - }, - "Podcasts": { - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "header": { - "browse": "Просмотр подкастов" - }, - "button": { - "cancel": "Отмена", - "channel": "Создать канал", - "search": "Поиск", - "subscribe": "Подписаться", - "feed": "Подписаться на канал" - }, - "empty": { - "noResults": "Нет результатов по этому запросу" - }, - "label": { - "search": "Название подкаста", - "tags": "Теги" - }, - "title": "Подкасты", - "pagination": { - "results": "Результатов на странице" - }, - "placeholder": { - "search": "Поиск…" - }, - "modal": { - "subscription": { - "header": "Подписка" - } - } - }, - "Radios": { - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "header": { - "browse": "Просмотр радио", - "instance": "Радио узла", - "user": "Пользовательские радио" - }, - "button": { - "add": "Создать радио", - "create": "Создать Ваше собственное радио" - }, - "placeholder": { - "search": "Введите название радио…" - }, - "empty": { - "noResults": "Нет результатов по этому запросу" - }, - "title": "Радио", - "pagination": { - "results": "Результатов на странице" - }, - "label": { - "search": "Поиск" - } - }, - "AlbumDropdown": { - "button": { - "cancel": "Отмена", - "delete": "Удалить…", - "edit": "Редактировать", - "embed": "Внедрить", - "more": "Ещё…" - }, - "modal": { - "delete": { - "header": "Удалить этот альбом?", - "content": { - "warning": "Альбом будет удалён вместе со связанными с ним файлами и данными. Это действие нельзя отменить." - } - }, - "embed": { - "header": "Внедрить этот альбом на Ваш сайт" - } - }, - "link": { - "moderation": "Открыть в режиме модерации", - "discogs": "Искать на Discogs", - "django": "Посмотреть в админке Django", - "domain": "Посмотреть на { domain }", - "musicbrainz": "Смотреть на MusicBrainz" - } - }, - "TrackBase": { - "button": { - "cancel": "Отмена", - "delete": "Удалить…", - "download": "Скачать", - "edit": "Редактировать", - "embed": "Внедрить", - "more": "Ещё…", - "play": "Проиграть" - }, - "modal": { - "delete": { - "header": "Удалить этот трек?", - "content": { - "warning": "Трек будет удалён вместе со связанными с ним файлами и данными. Это действие нельзя отменить." - } - }, - "embed": { - "header": "Внедрить этот трек на Ваш сайт" - } - }, - "link": { - "moderation": "Открыть в режиме модерации", - "discogs": "Искать на Discogs", - "wikipedia": "Искать на Википедии", - "django": "Посмотреть в админке Django", - "domain": "Посмотреть на { domain }" - }, - "title": "Трек" - }, - "AlbumEdit": { - "header": { - "edit": "Редактировать этот альбом", - "suggest": "Предложите правку для этого альбома" - }, - "message": { - "remote": "Этот объект управляется другим сервером, Вы не можете редактировать его." - } - }, - "ArtistEdit": { - "header": { - "edit": "Редактировать этого исполнителя", - "suggest": "Предложите правку для этого исполнителя" - }, - "message": { - "remote": "Этот объект управляется другим сервером, Вы не можете редактировать его." - } - }, - "TrackEdit": { - "header": { - "edit": "Редактировать этот трек", - "suggest": "Предложите правку для этого трека" - }, - "message": { - "remote": "Этот объект управляется другим сервером, Вы не можете редактировать его." - } - }, - "AlbumDetail": { - "header": { - "episodes": "Эпизоды", - "tracks": "Треки", - "libraries": "Пользовательские библиотеки" - }, - "description": { - "libraries": "Альбом представлен в следующих библиотеках:" - }, - "meta": { - "volume": "Том { number }" - } - }, - "FsBrowser": { - "button": { - "import": "Импорт" - } - }, - "FsLogs": { - "empty": { - "notStarted": "Импорт ещё на начался" - } - }, - "Home": { - "title": "Библиотека", - "header": { - "newChannels": "Новые каналы", - "playlists": "Списки воспроизведения", - "recentlyAdded": "Недавно добавленные", - "recentlyFavorited": "Недавно добавленные в избранное", - "recentlyListened": "Недавно прослушанные" - } - }, - "TagSelector": { - "placeholder": { - "search": "Поиск…" - } - } - }, - "favorites": { - "List": { - "header": { - "favorites": "{ n } избранный | { n } избранных" - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "link": { - "library": "Просмотр библиотеки" - }, - "loader": { - "loading": "Загружаем Ваше избранное…" - }, - "empty": { - "noFavorites": "Вы ещё не добавляли треки в избранное" - }, - "pagination": { - "results": "Результатов на странице" - }, - "title": "Ваше избранное" - }, - "TrackFavoriteIcon": { - "button": { - "add": "Добавить в избранное", - "remove": "Удалить из избранного" - }, - "label": { - "inFavorites": "В избранном" - } - } - }, - "channels": { - "UploadModal": { - "meta": { - "files": "{ n } файл | { n } файла", - "quota": "Свободное место:" - }, - "button": { - "cancel": "Отмена", - "close": "Закрыть", - "finishLater": "Закончить позже", - "next": "Следующий шаг", - "previous": "Предыдущий шаг", - "publish": "Опубликовать", - "update": "Обновить" - }, - "header": { - "uploadFiles": "Файлы для загрузки", - "processing": "Обработка закачек", - "publish": "Опубликовать аудио", - "uploadDetails": "Данные о закачке" - } - }, - "AlbumSelect": { - "meta": { - "tracks": "{ n } трек | { n } трека" - }, - "label": { - "album": "Альбом", - "series": "Серии" - }, - "option": { - "none": "Нет" - } - }, - "LicenseSelect": { - "link": { - "license": "Об этой лицензии" - }, - "label": { - "license": "Лицензия" - }, - "option": { - "none": "Нет" - } - }, - "UploadForm": { - "help": { - "license": "Добавьте информацию о лицензии к вашей закачке, чтобы слушатели были в курсе." - }, - "label": { - "openBrowser": "Просмотр…", - "channel": "Канал" - }, - "message": { - "dragAndDrop": "Перетащите файлы сюда, либо откройте форму для закачки ваших файлов", - "pending": "У вас остались закачки, которые ещё не опубликованы." - }, - "button": { - "edit": "Редактировать", - "ignore": "Игнорировать", - "remove": "Удалить", - "resume": "Продолжить", - "retry": "Повторить" - }, - "header": { - "error": "Ошибка при публикации" - }, - "status": { - "errored": "Ошибочно", - "pending": "Ожидание", - "uploading": "Загружается" - }, - "description": { - "extensions": "Поддерживаемые расширения: { extensions }" - }, - "warning": { - "quota": "У вас не осталось места, чтобы загрузить ваши файлы. Пожалуйста, свяжитесь с модераторами." - } - }, - "AlbumModal": { - "button": { - "cancel": "Отмена", - "create": "Создать" - }, - "header": { - "newAlbum": "Новый альбом", - "newSeries": "Новая серия" - } - }, - "UploadMetadataForm": { - "label": { - "description": "Описание", - "position": "Позиция", - "tags": "Теги", - "title": "Название", - "image": "Картинка трека" - } - }, - "AlbumForm": { - "header": { - "error": "Ошибка во время создания" - }, - "label": { - "albumTitle": "Название" - } - }, - "SubscribeButton": { - "title": { - "subscribe": "Подписаться", - "unsubscribe": "Отписаться" - }, - "help": { - "auth": "Вам нужно войти, чтобы подписаться на этот канал" - } - } + "title": "Информация" }, "AboutPod": { - "stat": { - "hoursOfMusic": "час музыки | часа музыки", - "activeUsers": "активный пользователь | активных пользователя", - "albumsCount": "альбом | альбома", - "artistsCount": "исполнитель | исполнителя", - "listeningsCount": "прослушивание | прослушивания", - "tracksCount": "трек | трека" - }, - "title": "Информация", - "link": { - "about": "Об этом узле", - "features": "Функции", - "introduction": "Введение", - "rules": "Правила", - "statistics": "Статистика", - "terms": "Условия использования и политика приватности" + "feature": { + "allowList": "\"Белый\" список", + "anonymousAccess": "Анонимный доступ", + "federation": "Федерация", + "quota": "Квота загрузки", + "registrations": "Регистрации", + "status": { + "closed": "Закрыто", + "disabled": "Отключено", + "enabled": "Включено", + "open": "Открыть" + }, + "version": "Версия Funkwhale" }, "header": { "about": "Об этом узле", @@ -1446,352 +61,250 @@ "statistics": "Статистика", "terms": "Условия использования и политика приватности" }, - "feature": { - "allowList": "\"Белый\" список", - "anonymousAccess": "Анонимный доступ", - "status": { - "closed": "Закрыто", - "disabled": "Отключено", - "enabled": "Включено", - "open": "Открыть" - }, - "federation": "Федерация", - "version": "Версия Funkwhale", - "registrations": "Регистрации", - "quota": "Квота загрузки" - }, - "notApplicable": "Н/Д", - "placeholder": { - "noDescription": "Нет описания.", - "noRules": "Нет доступных правил.", - "noTerms": "Нет доступных условий." + "link": { + "about": "Об этом узле", + "features": "Функции", + "introduction": "Введение", + "rules": "Правила", + "statistics": "Статистика", + "terms": "Условия использования и политика приватности" }, "message": { "contact": "Напишите нам: {'{{'} contactEmail {'}}'}" + }, + "notApplicable": "Н/Д", + "placeholder": { + "noDescription": "Нет описания", + "noRules": "Нет доступных правил", + "noTerms": "Нет доступных условий" + }, + "stat": { + "activeUsers": "активный пользователь | активных пользователя", + "albumsCount": "альбом | альбома", + "artistsCount": "исполнитель | исполнителя", + "hoursOfMusic": "час музыки | часа музыки", + "listeningsCount": "прослушивание | прослушивания", + "tracksCount": "трек | трека" + }, + "title": "Информация" + }, + "Home": { + "description": { + "funkwhale": { + "paragraph1": "Этот узел работает на Funkwhale, общественном проекте, который позволяет Вам слушать и делиться музыкой и другим аудио по децентрализованной открытой сети.", + "paragraph2": "Funkwhale бесплатен и разрабатывается дружелюбной командой добровольцев." + }, + "quota": "Пользователи этого узла так же получают { quota } места бесплатно, чтобы делиться своей музыкой!", + "signup": "Зарегистрируйтесь сейчас, чтобы добавлять треки в избранное, создавать списки, находить новую музыку и многое другое!" + }, + "header": { + "about": "Об этом узле Funkwhale", + "aboutFunkwhale": "О Funkwhale", + "contact": "Контакт", + "links": "Полезные ссылки", + "login": "Вход", + "newAlbums": "Недавно добавленные альбомы", + "newChannels": "Новые каналы", + "signup": "Регистрация", + "statistics": "Статистика", + "welcome": "Добро пожаловать на { podName }!" + }, + "help": { + "registrationsClosed": "Регистрация на этом узле закрыта. Вы можете создать аккаунт на другом узле по ссылке ниже." + }, + "link": { + "findOtherPod": "Найти другой узел", + "funkwhale": "Посетить funkwhale.audio", + "learnMore": "Узнать больше", + "mobileApps": { + "description": "Используйте Funkwhale на других устройствах с помощью наших приложений", + "label": "Мобильные приложения" + }, + "publicContent": { + "description": "Слушайте публичные альбомы и списки воспроизведения, имеющиеся на этом узле.", + "label": "Посмотреть публичное содержимое" + }, + "rules": "Правила сервера", + "userGuides": { + "description": "Узнайте всё о Funkwhale и её возможностях", + "label": "Руководства пользователя" + }, + "viewMore": "Загрузить ещё…" + }, + "placeholder": { + "noDescription": "Нет описания" + }, + "stat": { + "activeUsers": "{ n } активный пользователь | { n } активных пользователя", + "hoursOfMusic": "{ n } час музыки | { n } часа музыки" + }, + "title": "Домой" + }, + "PageNotFound": { + "header": { + "pageNotFound": "Страница не найдена!" + }, + "link": { + "home": "Перейти на домашнюю страницу" + }, + "message": { + "pageNotFound": "Извините, страницы, которую вы запрашивали, не существует:" + }, + "title": "Страница не найдена" + }, + "Queue": { + "button": { + "clear": "Очистить", + "close": "Закрыть", + "stopRadio": "Остановить радио" + }, + "header": { + "failure": "Трек не может быть загружен", + "noSources": "У трека нет доступных источников.", + "radio": "У Вас проигрывается радио" + }, + "label": { + "addArtistContentFilter": "Скрыть контент этого исполнителя…", + "duration": "Длительность", + "enterFullscreen": "Войти в полноэкранный режим", + "exitFullscreen": "Выйти из полноэкранного режима", + "favorite": "Любимый трек", + "next": "Следующий трек", + "pause": "Пауза", + "play": "Проиграть", + "populatingRadio": "Получение радио трека...", + "previous": "Предыдущий трек", + "queue": "Очередь", + "remove": "Удалить", + "restart": "Перезапуск трека", + "selectTrack": "Выбрать трек", + "showCoverArt": "Показать обложку", + "showVisualizer": "Показать визуализатор MoonDrop" + }, + "message": { + "automaticPlay": "Следующий трек запустится автоматически через несколько секунд…", + "radio": "Новые треки будут добавлены сюда автоматически.", + "webglUnsupported": "Ваш браузер не поддерживает WebGL2." + }, + "meta": { + "end": "Конец", + "queuePosition": "({ index } из { length })", + "startTime": "00:00", + "unknownAlbum": "Неизвестный альбом", + "unknownArtist": "Неизвестный исполнитель" + }, + "warning": { + "connectivity": "У Вас могут быть проблемы со связью." } }, - "common": { - "ActionTable": { - "button": { - "selected": "выбран { n } из { total } | выбраны { n } из { total }", - "allSelected": "Выбран { n } из { total } | Выбраны { n } из { total }", - "go": "Перейти", - "launch": "Запустить", - "refresh": "Обновить данные таблицы", - "select": "Выбрать", - "selectAll": "Выбрать всё", - "selectElement": "Выделить { n } элемент | Выделить все { n } элемента", - "selectCurrentPage": "Выбрать только текущую страницу" + "RemoteSearchForm": { + "button": { + "fediverse": "Федивёрс", + "rss": "RSS", + "search": "Поиск" + }, + "description": { + "fediverse": "Используйте эту форму, чтобы подписаться на канал, размещённый где-то в другом месте Федиверса.", + "rss": "Используйте эту форму, чтобы подписаться на RSS-ленту по её ссылке." + }, + "error": { + "fetchFailed": "Этот объект не может быть получен" + }, + "header": { + "fetchFailed": "Ошибка при запросе объекта" + }, + "label": { + "fediverse": { + "fieldLabel": "Объект Fediverse", + "fieldPlaceholder": "{'@'}username{'@'}example.com", + "title": "Подписаться на подкаст размещенный в Fediverse" }, - "message": { - "success": "Действие { action } было успешно запущено на { n } элементе | Действие { action } было успешно запущено на { n } элементах", - "needsRefresh": "Контент обновлён, нажмите \"Обновить\", чтобы увидеть его" - }, - "label": { - "actions": "Действия", - "performAction": "Выполнить" - }, - "modal": { - "performAction": { - "header": "Вы хотите запустить { action } на { n } элементе? | Вы хотите запустить { action } на { n } элементах?", - "content": { - "warning": "Это может повлиять на многие элементы, пожалуйста перепроверьте что Вы действительно хотите этого." - } - } - }, - "header": { - "error": "Ошибка во время применения действия" + "rss": { + "fieldLabel": "Расположение канала", + "fieldPlaceholder": "https://website.example.com/rss.xml", + "title": "Подписаться на подкаст через RSS" } }, - "Duration": { - "meta": { - "hours": "{ hours } ч { minutes } мин", - "minutes": "{ minutes } мин" - } - }, - "UserMenu": { - "link": { - "about": "Информация", - "chat": "Чат-комната", - "docs": "Документация", - "forum": "Форум", - "support": "Помощь", - "git": "Багтрекер", - "login": "Войти", - "logout": "Выход", - "notifications": "Уведомления", - "profile": "Профиль", - "settings": "Настройки", - "signup": "Регистрация" - }, - "label": { - "shortcuts": "Горячие клавиши", - "language": "Язык", - "theme": "Тема" - } - }, - "UserModal": { - "link": { - "about": "Информация", - "chat": "Чат-комната", - "forum": "Форум", - "support": "Помощь", - "git": "Багтрекер", - "login": "Войти", - "logout": "Выход", - "notifications": "Уведомления", - "profile": "Профиль", - "settings": "Настройки", - "signup": "Регистрация" - }, - "label": { - "shortcuts": "Горячие клавиши", - "language": "Язык", - "theme": "Тема" - }, - "header": { - "options": "Дополнительно" - }, - "button": { - "switchInstance": "Использовать другой узел" - } - }, - "DangerousButton": { - "button": { - "cancel": "Отмена", - "confirm": "Подтвердить" - }, - "header": { - "confirm": "Вы хотите подтвердить это действие?" - } - }, - "RenderedDescription": { - "button": { - "cancel": "Отмена", - "edit": "Редактировать", - "less": "Показать меньше", - "more": "Показать больше", - "update": "Описание обновления" - }, - "header": { - "failure": "Ошибка при обновлении описания" - }, - "empty": { - "noDescription": "Нет описания" - } - }, - "InlineSearchBar": { - "button": { - "clear": "Очистить" - }, - "label": { - "search": "Поиск" - }, - "placeholder": { - "search": "Поиск…" - } - }, - "CollapseLink": { - "button": { - "collapse": "Свернуть", - "expand": "Раскрыть" - } - }, - "CopyInput": { - "button": { - "copy": "Копировать" - }, - "message": { - "success": "Текст скопирован в буфер обмена!" - } - }, - "LoginModal": { - "link": { - "login": "Войти", - "signup": "Регистрация" - }, - "header": { - "unauthenticated": "Не аутентифицирован" - }, - "description": { - "noAccess": "У вас нет доступа!" - } - }, - "ContentForm": { - "help": { - "markdown": "Поддерживается разметка Markdown." - }, - "empty": { - "noContent": "Нет предпросмотра." - }, - "button": { - "preview": "Предпросмотр", - "write": "Запись" - }, - "placeholder": { - "input": "Напишите здесь несколько слов…" - } - }, - "EmptyState": { - "header": { - "noResults": "Ничего не найдено." - }, - "button": { - "refresh": "Обновить" - } - }, - "AttachmentInput": { - "help": { - "upload": "PNG или JPG. Размеры должны быть от 1400x1400px и до 3000x3000px. Максимальный размер файла 5MB." - }, - "button": { - "remove": "Удалить" - }, - "label": { - "upload": "Загрузить новое изображение…" - }, - "loader": { - "uploading": "Загружается файл…" - }, - "header": { - "failure": "Ваше вложение не может быть сохранено" - } - }, - "ExpandableDiv": { - "button": { - "less": "Показать меньше", - "more": "Показать больше" - } + "warning": { + "unsupported": "Этот вид объекта пока не поддерживается" } }, - "playlists": { - "Card": { - "meta": { - "tracks": "{ n } трек | { n } трека" - } + "SetInstanceModal": { + "button": { + "cancel": "Отмена", + "submit": "Отправить" }, - "PlaylistModal": { - "warning": { - "duplicate": "{ 0 } уже в списке воспроизведения { 1 }." - }, - "button": { - "addDuplicate": "Всё равно добавить", - "addToPlaylist": "Добавить в этот список воспроизведения", - "addTrack": "Добавить трек", - "cancel": "Отмена", - "edit": "Редактировать" - }, - "header": { - "addToPlaylist": "Добавить в список воспроизведения", - "available": "Доступные списки воспроизведения", - "manage": "Управлять списками воспроизведения", - "noResults": "Нет результатов под этот фильтр", - "addFailure": "Нам не удалось добавить трек в список воспроизведения" - }, - "table": { - "edit": { - "header": { - "edit": "Редактировать", - "lastModification": "Последнее изменение", - "name": "Имя", - "tracks": "Треки" - } - } - }, - "placeholder": { - "filterPlaylist": "Введите название списка воспроизведения" - }, - "label": { - "filter": "Фильтр" - }, - "empty": { - "noPlaylists": "Списки воспроизведения пока не были созданы" - } + "header": { + "chooseInstance": "Выберите свой узел", + "failure": "Невозможно соединиться с указанным URL", + "suggestions": "Предложенные изменения" }, - "Editor": { - "button": { - "addDuplicate": "Всё равно добавить", - "clear": "Очистить список воспроизведения", - "copy": "Копировать треки из текущей очереди в список воспроизведения", - "insertFromQueue": "Вставить из очереди ({ n } трек) | Вставить из очереди ({ n } трека)" - }, - "error": { - "sync": "При сохранении Ваших изменений произошла ошибка" - }, - "message": { - "sync": "Изменения синхронизированы с сервером" - }, - "modal": { - "clearPlaylist": { - "header": "Вы хотите очистить список воспроизведения \"{ playlist }\"?", - "content": { - "warning": "Это необратимо удалит все треки из этого списка воспроизведения." - } - } - }, - "help": { - "reorder": "Перетаскивайте строки, чтобы упорядочить треки в списке воспроизведения" - }, - "header": { - "editor": "Редактор списков воспроизведения" - }, - "warning": { - "duplicate": "Некоторые треки из очереди уже находятся в этом списке воспроизведения:" - }, - "loading": { - "sync": "Синхронизируем изменения с сервером…" - } + "help": { + "notFunkwhaleServer": "Заданный адрес не является сервером Funkwhale", + "selectPod": "Чтобы продолжить, пожалуйста выберите узел Funkwhale, к которому Вы соединяетесь. Введите сам адрес или выберите один из предложенных вариантов.", + "serverDown": "Сервер может быть недоступен" }, - "TrackPlaylistIcon": { - "button": { - "add": "Добавить в список воспроизведения…" - } + "label": { + "url": "URL узла" }, - "Form": { - "header": { - "createPlaylist": "Создать новый список воспроизведения", - "createSuccess": "Список воспроизведения создан", - "updateSuccess": "Список воспроизведения обновлён", - "createFailure": "Список воспроизведения не может быть создан" - }, - "button": { - "create": "Создать список воспроизведения", - "update": "Обновить список воспроизведения" - }, - "placeholder": { - "name": "Мой замечательный список воспроизведения" - }, - "label": { - "name": "Название списка воспроизведения", - "visibility": "Видимость списка воспроизведения" - } - }, - "Widget": { - "button": { - "create": "Создать список воспроизведения", - "more": "Показать больше" - }, - "placeholder": { - "noPlaylists": "Списки воспроизведения пока не были созданы" - } + "message": { + "currentConnection": "Сейчас вы подключены к { 0 }. Если вы продолжите, вы будете отключены от вашего текущего узла и все ваши локальные данные будут удалены.", + "newUrl": "Вы используете узел Funkwhale на { url }" } }, - "notifications": { - "NotificationRow": { - "message": { - "libraryAcceptFollow": "{ username } принял Вашу подписку на библиотеку \"{ library }\"", - "libraryFollow": "{ username } подписался на Вашу библиотеку \"{ library }\"", - "libraryPendingFollow": "{ username } хочет подписаться на Вашу библиотеку \"{ library }\"" + "ShortcutsModal": { + "button": { + "close": "Закрыть" + }, + "header": { + "modal": "Горячие клавиши" + }, + "shortcut": { + "audio": { + "clearQueue": "Очистить очередь", + "decreaseVolume": "Уменьшить громкость", + "expandQueue": "Раскрыть очередь/проигрыватель", + "increaseVolume": "Увеличить громкость", + "label": "Горячие клавиши плеера", + "playNext": "Проиграть следующий трек", + "playPause": "Проиграть/приостановить трек", + "playPrevious": "Проиграть предыдущий трек", + "seekBack30": "Перемотать назад на 30сек", + "seekBack5": "Перемотать назад на 5сек", + "seekForward30": "Перемотать вперёд на 30сек", + "seekForward5": "Перемотать вперёд на 5сек", + "shuffleQueue": "Перемешать очередь", + "toggleFavorite": "Добавить/убрать из избранного", + "toggleLoop": "Включить цикличное проигрывание очереди", + "toggleMute": "Вкл/откл. звук" }, - "button": { - "approve": "Одобрить", - "markRead": "Отметить как прочитанное", - "markUnread": "Отметить как непрочитанное", - "reject": "Отклонить" + "general": { + "focus": "Перейти в панель поиска", + "label": "Общие горячие клавиши", + "show": "Показать доступные горячие клавиши", + "unfocus": "Выйти из панели поиска" } } }, "Sidebar": { + "header": { + "administration": "Администрирование", + "explore": "Посмотреть", + "library": "Моя библиотека", + "main": "Навигация", + "more": "Ещё" + }, + "label": { + "add": "Добавить содержимое", + "administration": "Администрирование", + "edits": "Правки, ожидающие одобрения", + "follows": "Запросы на подписку", + "language": "Язык", + "main": "Главное меню", + "play": "Проиграть этот трек", + "reports": "Отчёты, ожидающие рассмотрения", + "theme": "Тема" + }, "link": { "about": "Об этом узле", "albums": "Альбомы", @@ -1809,44 +322,1985 @@ "radios": "Радио", "search": "Поиск", "settings": "Настройки", + "switchInstance": "Сменить узел", "users": "Пользователи" - }, - "label": { - "add": "Добавить содержимое", - "administration": "Администрирование", - "language": "Язык", - "main": "Главное меню", - "follows": "Запросы на подписку", - "edits": "Правки, ожидающие одобрения", - "play": "Проиграть этот трек", - "theme": "Тема" - }, - "header": { - "administration": "Администрирование", - "explore": "Посмотреть", - "main": "Навигация", - "more": "Ещё", - "library": "Моя библиотека" } }, - "manage": { - "library": { - "UploadsTable": { + "admin": { + "SettingsGroup": { + "button": { + "save": "Сохранить" + }, + "header": { + "error": "Ошибка во время сохранения настроек.", + "image": "Текущее изображение" + }, + "message": { + "success": "Настройки успешно обновлены." + } + }, + "SignupFormBuilder": { + "button": { + "add": "Добавить новое поле", + "edit": "Редактировать форму", + "preview": "Предпросмотр" + }, + "help": { + "additionalFields": "Дополнительные поля для отображения в форме. Показываются только в том случае, если включено ручное одобрение регистраций.", + "helpText": "Дополнительный текст для отображения в начале формы регистрации." + }, + "label": { + "additionalField": "Дополнительное поле", + "additionalFields": "Дополнительные поля", + "delete": "Удалить", + "helpText": "Текст помощи", + "moveDown": "Вниз", + "moveUp": "Вверх" + }, + "table": { + "additionalFields": { + "header": { + "actions": "Действия", + "label": "Поле", + "required": "Обязательно", + "type": "Тип поля" + }, + "required": { + "false": "Нет", + "true": "Да" + }, + "type": { + "long": "Длинный текст", + "short": "Краткий текст" + } + } + } + } + }, + "audio": { + "ChannelCard": { + "meta": { + "episodes": "{ n } эпизод | { n } эпизода", + "tracks": "{ n } трек | { n } трека" + }, + "title": "Обновлено { date }" + }, + "ChannelEntries": { + "help": { + "subscribe": "Вам может потребоваться подписаться на этот канал, чтобы увидеть его содержимое." + } + }, + "ChannelForm": { + "header": { + "error": "Ошибка при сохранении канала." + }, + "help": { + "discography": "Публикуйте музыку, которую вы делаете, в виде удобной дискографии из альбомов и синглов.", + "podcast": "Загружайте ваши эпизоды и держите вашу аудиторию в курсе.", + "podcastFields": "Used for the itunes:email and itunes:поле имени требуется некоторыми платформами, например Spotify и iTunes.", + "username": "Используется в URL и для подписки на этот канал в Федерации. Вы не сможете изменить это позже." + }, + "label": { + "category": "Категория", + "description": "Описание", + "discography": "Дискография", + "email": "Адрес почты владельца", + "image": "Изображение канала", + "language": "Язык", + "name": "Имя", + "owner": "Имя владельца", + "podcast": "Подкасты", + "subcategory": "Подкатегория", + "tags": "Теги", + "username": "Имя в Fediverse" + }, + "legend": { + "purpose": "Для чего этот канал будет использоваться?" + }, + "loader": { + "loading": "Загружается" + }, + "placeholder": { + "name": "Крутое имя для канала", + "username": "крутоеназваниеканала" + } + }, + "ChannelSerieCard": { + "meta": { + "episodes": "{ n } эпизод | { n } эпизода" + } + }, + "ChannelSeries": { + "button": { + "showMore": "Показать больше" + }, + "help": { + "subscribe": "Вам может потребоваться подписаться на этот канал, чтобы увидеть его содержимое." + } + }, + "ChannelsWidget": { + "button": { + "showMore": "Показать больше" + } + }, + "EmbedWizard": { + "button": { + "copy": "Копировать" + }, + "header": { + "preview": "Предпросмотр" + }, + "help": { + "anonymous": "Пожалуйста, свяжитесь с администратором и попросите изменить соответствующие настройки.", + "embed": "Скопируйте и вставьте этот код в HTML Вашего сайта", + "width": "Оставьте пустым для динамического виджета" + }, + "label": { + "embed": "Внедрить код", + "height": "Высота виджета", + "width": "Ширина виджета" + }, + "message": { + "copy": "Текст скопирован в буфер обмена!" + }, + "warning": { + "anonymous": "Общий доступ не будет работать, так как данный узел не разрешает анонимным пользователям доступ к содержимому." + } + }, + "LibraryFollowButton": { + "button": { + "cancel": "Отменить запрос на подписку", + "follow": "Подписаться", + "unfollow": "Отписаться" + } + }, + "PlayButton": { + "button": { + "addToPlaylist": "Добавить в список воспроизведения", + "addToQueue": "Добавить в очередь", + "discretePlay": "Проиграть", + "episodeDetails": "Подробности", + "hideArtist": "Скрыть контент этого исполнителя", + "playAlbum": "Проиграть альбом", + "playArtist": "Проиграть исполнителя", + "playNext": "Проиграть следующий", + "playNow": "Играть сейчас", + "playPlaylist": "Проиграть список воспроизведения", + "playTrack": "Проиграть трек", + "playTracks": "Проиграть треки", + "report": "Пожаловаться…", + "startRadio": "Играть похожие треки", + "trackDetails": "Подробности" + }, + "title": { + "more": "Ещё…", + "unavailable": "Этот трек недоступен ни в одной из библиотек, к которым у Вас есть доступ" + } + }, + "Player": { + "header": { + "player": "Плеер и управление" + }, + "label": { + "addArtistContentFilter": "Скрыть контент этого исполнителя…", + "audioPlayer": "Плеер", + "clearQueue": "Очистить Вашу очередь", + "expandQueue": "Раскрыть", + "loopingDisabled": "Повтор отключен. Нажмите чтобы включить проигрывание трека по кругу.", + "loopingSingle": "Режим повтора трека. Нажмите, чтобы включить проигрывание всего списка по кругу.", + "loopingWholeQueue": "Повтор всего списка включён. Нажмите, чтобы выключить повтор воспроизведения.", + "mute": "Выключить звук", + "nextTrack": "Следующий трек", + "pause": "Пауза", + "play": "Проиграть", + "previousTrack": "Предыдущий трек", + "shuffleQueue": "Перемешать очередь", + "unmute": "Включить звук" + }, + "meta": { + "position": "({ index } из { length })", + "unknownAlbum": "Неизвестный альбом", + "unknownArtist": "Неизвестный исполнитель" + } + }, + "PlayerControls": { + "labels": { + "next": "Следующий трек", + "pause": "Пауза", + "play": "Воспроизвести", + "previous": "Предыдущий трек" + } + }, + "Search": { + "empty": { + "noAlbums": "Нет альбомов, подходящих Вашему запросу", + "noArtists": "Нет исполнителей по Вашему запросу" + }, + "header": { + "albums": "Альбомы", + "artists": "Исполнители", + "search": "Поискать музыку" + }, + "placeholder": { + "search": "Исполнитель, альбом, трек…" + } + }, + "SearchBar": { + "empty": { + "noResults": "К сожалению этот поиск не дал результатов" + }, + "header": { + "noResults": "Совпадений не найдено" + }, + "label": { + "album": "Альбом", + "artist": "Исполнитель", + "category": { + "federation": "Федерация", + "podcasts": "Подкасты" + }, + "search": "Поискать музыку", + "tag": "Тег", + "track": "Трек" + }, + "link": { + "fediverse": "Искать в Fediverse", + "more": "Ещё результаты", + "rss": "Подписаться на подкаст через RSS" + }, + "placeholder": { + "search": "Искать исполнителей, альбомы, треки…" + } + }, + "VolumeControl": { + "button": { + "mute": "Выключить звук", + "unmute": "Включить звук" + }, + "label": { + "slider": "Регулировка громкости" + } + }, + "album": { + "Card": { + "meta": { + "tracks": "{ n } трек | { n } трека" + } + }, + "Widget": { + "button": { + "more": "Показать больше" + } + } + }, + "artist": { + "Card": { + "meta": { + "episodes": "{ n } эпизод | { n } эпизода", + "tracks": "{ n } трек | { n } трека" + } + }, + "Widget": { + "button": { + "more": "Показать больше" + } + } + }, + "podcast": { + "MobileRow": { + "button": { + "actions": "Действия с треком" + } + }, + "Modal": { + "button": { + "addToFavorites": "Добавить в избранное", + "addToPlaylist": "Добавить в список воспроизведения", + "addToQueue": "Добавить в очередь", + "albumDetails": "Посмотреть альбом", + "artistDetails": "Посмотреть исполнителя", + "channelDetails": "Посмотреть канал", + "episodeDetails": "Подробности", + "playNext": "Проиграть следующий", + "playNow": "Играть сейчас", + "removeFromFavorites": "Удалить из избранного", + "seriesDetails": "Посмотреть серии", + "startRadio": "Запустить радио", + "trackDetails": "Подробности" + } + } + }, + "track": { + "MobileRow": { + "button": { + "actions": "Действия с треком" + } + }, + "Modal": { + "button": { + "addToFavorites": "Добавить в избранное", + "addToPlaylist": "Добавить в список воспроизведения", + "addToQueue": "Добавить в очередь", + "albumDetails": "Посмотреть альбом", + "artistDetails": "Посмотреть исполнителя", + "channelDetails": "Посмотреть канал", + "episodeDetails": "Подробности", + "playNext": "Проиграть следующий", + "playNow": "Играть сейчас", + "removeFromFavorites": "Удалить из избранного", + "seriesDetails": "Посмотреть серии", + "startRadio": "Запустить радио", + "trackDetails": "Подробности" + } + }, + "Table": { "table": { - "upload": { + "header": { + "album": "Альбом", + "artist": "Исполнитель", + "title": "Название" + } + } + }, + "Widget": { + "button": { + "more": "Показать больше" + }, + "empty": { + "noResults": "Ничего не найдено" + } + } + } + }, + "auth": { + "ApplicationEdit": { + "button": { + "regenerateToken": "Перегенерировать токен" + }, + "header": { + "appDetails": "Информация о приложении", + "appSecretWarning": "Сохраните копию этого токена в надёжном месте.", + "editApp": "Редактировать приложение" + }, + "help": { + "appDetails": "ID приложения и секрет являются важной информацией, к ним нужно относиться как к паролям. Не передавайте их никому." + }, + "label": { + "accessToken": "Токен доступа", + "appId": "ID приложения", + "appSecret": "Секрет приложения" + }, + "link": { + "settings": "Назад к настройкам" + }, + "message": { + "appSecretWarning": "Вы больше не сможете увидеть его, когда покинете эту страницу." + }, + "title": "Редактировать приложение" + }, + "ApplicationForm": { + "button": { + "create": "Создать приложение", + "update": "Обновить приложение" + }, + "header": { + "failure": "Мы не смогли сохранить Ваши изменения" + }, + "help": { + "redirectUri": "Используйте \"urn:ietf:wg:oauth:2.0:oob\" как URI перенаправления, если Ваше приложение не опубликовано в Интернет." + }, + "label": { + "name": "Имя", + "redirectUri": "URI перенаправления", + "scopes": { + "description": "Отметка родительских областей на \"чтение\" или \"запись\" подразумевает доступ ко всем соответствующим дочерним объектам.", + "label": "Область видимости", + "read": { + "description": "Доступ к данным пользователя только для чтения", + "label": "Чтение" + }, + "write": { + "description": "Доступ к данным пользователя только для записи", + "label": "Запись" + } + } + } + }, + "ApplicationNew": { + "link": { + "settings": "Назад к настройкам" + }, + "title": "Создать новое приложение" + }, + "Authorize": { + "button": { + "authorize": "Авторизовать { app }" + }, + "header": { + "access": "{ app } хочет получить доступ к Вашему аккаунту Funkwhale", + "allScopes": "Полный доступ", + "authorize": "Авторизовать стороннее приложение", + "authorizeFailure": "Ошибка при авторизации приложения", + "fetchFailure": "Ошибка при запросе данных приложения", + "readOnly": "Только чтение", + "writeOnly": "Только запись" + }, + "help": { + "copyCode": "Вам будет показан код для вставки в приложение", + "pasteCode": "Скопируйте и вставьте следующий код в приложение:", + "redirect": "Вы будете перенаправлены на { 0 }" + }, + "message": { + "unknownPermissions": "Приложение также запрашивает следующие неизвестные разрешения:" + }, + "title": "Разрешить приложение" + }, + "LoginForm": { + "button": { + "login": "Войти" + }, + "header": { + "loginFailure": "Вход не удался" + }, + "help": { + "approvalRequired": "Если вы недавно зарегистрировались, может понадобиться подождать, пока ваша учётная запись будет одобрена, либо придёт подтверждение по почте.", + "invalidCredentials": "Пожалуйста перепроверьте, что ваше имя пользователя и пароль верны и что вы подтвердили ваш адрес почты." + }, + "label": { + "password": "Пароль", + "username": "Имя пользователя или почта" + }, + "link": { + "createAccount": "Создать новый аккаунт", + "resetPassword": "Сбросить ваш пароль" + }, + "message": { + "redirect": "Вы будете перенаправлены на {domain} для аутентификации" + }, + "placeholder": { + "username": "Введите ваше имя пользователя или адрес электронной почты" + } + }, + "Logout": { + "button": { + "logout": "Да, выйти!" + }, + "header": { + "confirm": "Вы уверены, что хотите выйти?", + "unauthenticated": "Вы не вошли в систему" + }, + "link": { + "login": "Войти!" + }, + "message": { + "loggedIn": "Вы вошли как { username }" + }, + "title": "Выход" + }, + "Plugin": { + "button": { + "save": "Сохранить", + "scan": "Сканировать" + }, + "description": { + "library": "Библиотека, куда будут импортированы файлы." + }, + "header": { + "failure": "Ошибка во время сохранения плагина" + }, + "label": { + "library": "Библиотека", + "pluginEnabled": "Включено" + }, + "link": { + "documentation": "Документация" + } + }, + "Settings": { + "button": { + "delete": "Удалить", + "deleteAccount": "Удалить мой аккаунт…", + "deleteAccountConfirm": "Удалить мой аккаунт", + "disableSubsonic": "Отключить доступ", + "edit": "Редактировать", + "password": "Сменить пароль", + "refresh": "Обновить", + "remove": "Удалить", + "removeApp": "Удалить приложение", + "revoke": "Отозвать", + "revokeAccess": "Отозвать доступ", + "update": "Обновить", + "updateSettings": "Обновить настройки" + }, + "description": { + "authorizedApps": "Это список приложений, которые имеют доступ к данным Вашего аккаунта.", + "changeEmail": "Изменить адрес почты, связанный с вашим аккаунтом. Мы вышлем подтверждение на новый адрес.", + "changePassword": { + "paragraph1": "Изменение Вашего пароля также изменит Ваш пароль Subsonic API, если Вы запрашивали его.", + "paragraph2": "Вам потребуется обновить пароль на своих клиентах, которые используют его." + }, + "contentFilters": "Фильтры содержимого помогают Вам скрывать контент, который Вы не ходите видеть в этом сервисе.", + "deleteAccount": "Вы можете окончательно и бесповоротно удалить Ваш аккаунт и все связанные с ним данные, используя форму ниже. Потребуется дополнительное подтверждение.", + "plugins": "Используйте плагины для расширения возможностей Funkwhale.", + "yourApps": "Это список приложений, которые Вы создали." + }, + "header": { + "accountFailure": "Нам не удалось удалить Ваш аккаунт", + "accountSettings": "Настройки аккаунта", + "authorizedApps": "Авторизованные приложения", + "avatar": "Аватар", + "avatarFailure": "Ваш аватар не может быть сохранён", + "changeEmail": "Изменить Ваш адрес электронной почты", + "changePassword": "Сменить мой пароль", + "contentFilters": "Фильтры содержимого", + "deleteAccount": "Удалить мой аккаунт", + "emailFailure": "Мы не можем изменить ваш адрес почты", + "hiddenArtists": "Скрытые исполнители", + "noApps": "У Вас нет приложений, связанных с Вашей учётной записью.", + "noPersonalApps": "У вас пока нет настроенных приложений.", + "passwordFailure": "Ваш пароль не может быть изменён", + "plugins": "Плагины", + "settingsUpdated": "Настройки обновлены", + "updateFailure": "Настройки не могут быть обновлены", + "yourApps": "Ваши приложения" + }, + "help": { + "changePassword": "Пожалуйста, перепроверьте правильный ввод пароля", + "noApps": "Если Вы разрешите сторонним приложениям доступ к Вашим данным, эти приложения появятся здесь.", + "noPersonalApps": "Создайте его, чтобы интегрировать Funkwhale со сторонними приложениями." + }, + "label": { + "avatar": "Аватар", + "currentPassword": "Текущий пароль", + "newEmail": "Новый адрес почты", + "newPassword": "Новый пароль", + "password": "Пароль" + }, + "link": { + "managePlugins": "Управлять плагинами", + "newApp": "Создать новое приложение" + }, + "message": { + "confirmDelete": "Ваш запрос на удаление был отправлен, Ваш аккаунт и данные будут удалены в ближайшее время", + "currentEmail": "Ваш текущий почтовый адрес {email}" + }, + "modal": { + "changePassword": { + "content": { + "logout": "Вы будете отключены от этого сеанса и Вам нужно будет зайти заново", + "subsonic": "Ваш пароль Subsonic будет изменён на новый случайный, что приведёт к отключению всех устройств, которые использовали старый пароль Subsonic", + "warning": "Изменение Вашего пароля приведёт к следующим последствиям" + }, + "header": "Сменить Ваш пароль?" + }, + "deleteAccount": { + "content": { + "warning": "Это окончательно и бесповоротно удалит ваши данные с наших серверов. Вы немедленно выйдете из системы." + }, + "header": "Вы хотите удалить Ваш аккаунт?" + }, + "deleteApp": { + "content": { + "warning": "Это необратимо удалит приложение и все связанные с ним токены." + }, + "header": "Удалить приложение \"{ application }\"?" + }, + "revokeApp": { + "content": { + "warning": "Это предотвратит доступ приложения к сервису от вашего имени." + }, + "header": "Отозвать доступ для приложения \"{ application }\"?" + } + }, + "table": { + "artists": { + "header": { + "creationDate": "Дата создания", + "name": "Имя" + } + }, + "authorizedApps": { + "header": { + "application": "Приложение", + "permissions": "Разрешения" + } + }, + "yourApps": { + "header": { + "application": "Приложение", + "creationDate": "Дата создания", + "scopes": "Области" + } + } + }, + "title": "Настройки аккаунта", + "warning": { + "deleteAccount": "Ваш аккаунт будет удалён с наших серверов в течение нескольких минут. Мы сообщим об удалении и другим серверам, которые могут иметь частичные копии Ваших данных, чтобы они тоже произвели удаление. Обратите внимание, что некоторые из них могут быть недоступны или откажутся выполнить эту просьбу." + } + }, + "SignupForm": { + "button": { + "create": "Создать мой аккаунт" + }, + "header": { + "login": "Войти в Ваш аккаунт Funkwhale", + "signupFailure": "Ваша учётная запись не может быть создана." + }, + "label": { + "email": "Адрес электронной почты", + "invitation": "Код приглашения", + "password": "Пароль", + "username": "Имя пользователя" + }, + "message": { + "accountCreated": "Ваш аккаунт был успешно создан. Пожалуйста, проверьте свою электронную почту, прежде чем входить в него.", + "awaitingReview": "Ваш запрос на регистрацию успешно отправлен. Вы получите письмо, когда команда модераторов рассмотрит его.", + "registrationClosed": "Регистрация на этом узле закрыта, Вам понадобится код приглашения чтобы зарегистрироваться.", + "requiresReview": "Регистрация на этом узле открыта, но требует подтверждения модератором." + }, + "placeholder": { + "email": "Введите ваш адрес электронной почты", + "invitation": "Введите Ваш код приглашения (нечувствительно к регистру)", + "username": "Введите Ваше имя пользователя" + } + }, + "SubsonicTokenForm": { + "button": { + "confirmDisable": "Отключить доступ", + "confirmNewPassword": "Запросить пароль", + "disable": "Отключить доступ Subsonic", + "newPassword": "Запросить новый пароль" + }, + "description": { + "subsonic": { + "paragraph1": "Funkwhale совместим с другими музыкальными плеерами, которые поддерживают Subsonic API.", + "paragraph2": "Вы можете наслаждаться Вашим списком воспроизведения и музыкой в режиме оффлайн, например с Вашего смартфона или планшета.", + "paragraph3": "Получение доступа к Funkwhale из этих клиентов требует отдельного пароля, который может быть задан ниже." + } + }, + "header": { + "error": "Ошибка", + "subsonic": "Пароль Subsonic API" + }, + "label": { + "subsonicField": "Пароль Subsonic API" + }, + "link": { + "apps": "Узнайте как использовать Funkwhale из других приложений" + }, + "message": { + "accessDisabled": "Доступ отключен", + "passwordUpdated": "Пароль обновлён", + "unavailable": "Subsonic API недоступен на этом узле Funkwhale." + }, + "modal": { + "disableSubsonic": { + "content": { + "warning": "Это полностью отключит доступ к Subsonic API для этого аккаунта." + }, + "header": "Отключить доступ Subsonic API?" + }, + "newPassword": { + "content": { + "warning": "Это приведёт к отключению устройств которые используют текущий пароль." + }, + "header": "Запросить новый пароль Subsonic API?" + } + } + } + }, + "channels": { + "AlbumForm": { + "header": { + "error": "Ошибка во время создания" + }, + "label": { + "albumTitle": "Название" + } + }, + "AlbumModal": { + "button": { + "cancel": "Отмена", + "create": "Создать" + }, + "header": { + "newAlbum": "Новый альбом", + "newSeries": "Новая серия" + } + }, + "AlbumSelect": { + "label": { + "album": "Альбом", + "series": "Серии" + }, + "meta": { + "tracks": "{ n } трек | { n } трека" + }, + "option": { + "none": "Нет" + } + }, + "LicenseSelect": { + "label": { + "license": "Лицензия" + }, + "link": { + "license": "Об этой лицензии" + }, + "option": { + "none": "Нет" + } + }, + "SubscribeButton": { + "help": { + "auth": "Вам нужно войти, чтобы подписаться на этот канал" + }, + "title": { + "subscribe": "Подписаться", + "unsubscribe": "Отписаться" + } + }, + "UploadForm": { + "button": { + "edit": "Редактировать", + "ignore": "Игнорировать", + "remove": "Удалить", + "resume": "Продолжить", + "retry": "Повторить" + }, + "description": { + "extensions": "Поддерживаемые расширения: { extensions }" + }, + "header": { + "error": "Ошибка при публикации" + }, + "help": { + "license": "Добавьте информацию о лицензии к вашей закачке, чтобы слушатели были в курсе." + }, + "label": { + "channel": "Канал", + "openBrowser": "Просмотр…" + }, + "message": { + "dragAndDrop": "Перетащите файлы сюда, либо откройте форму для закачки ваших файлов", + "pending": "У вас остались закачки, которые ещё не опубликованы." + }, + "status": { + "errored": "Ошибочно", + "pending": "Ожидание", + "uploading": "Загружается" + }, + "warning": { + "quota": "У вас не осталось места, чтобы загрузить ваши файлы. Пожалуйста, свяжитесь с модераторами." + } + }, + "UploadMetadataForm": { + "label": { + "description": "Описание", + "image": "Картинка трека", + "position": "Позиция", + "tags": "Теги", + "title": "Название" + } + }, + "UploadModal": { + "button": { + "cancel": "Отмена", + "close": "Закрыть", + "finishLater": "Закончить позже", + "next": "Следующий шаг", + "previous": "Предыдущий шаг", + "publish": "Опубликовать", + "update": "Обновить" + }, + "header": { + "processing": "Обработка закачек", + "publish": "Опубликовать аудио", + "uploadDetails": "Данные о закачке", + "uploadFiles": "Файлы для загрузки" + }, + "meta": { + "files": "{ n } файл | { n } файла", + "quota": "Свободное место: {space}" + } + } + }, + "common": { + "ActionTable": { + "button": { + "allSelected": "Выбран { n } из { total } | Выбраны { n } из { total }", + "go": "Перейти", + "launch": "Запустить", + "refresh": "Обновить данные таблицы", + "select": "Выбрать", + "selectAll": "Выбрать всё", + "selectCurrentPage": "Выбрать только текущую страницу", + "selectElement": "Выделить { n } элемент | Выделить все { n } элемента", + "selected": "выбран { n } из { total } | выбраны { n } из { total }" + }, + "header": { + "error": "Ошибка во время применения действия" + }, + "label": { + "actions": "Действия", + "performAction": "Выполнить" + }, + "message": { + "needsRefresh": "Контент обновлён, нажмите \"Обновить\", чтобы увидеть его", + "success": "Действие { action } было успешно запущено на { n } элементе | Действие { action } было успешно запущено на { n } элементах" + }, + "modal": { + "performAction": { + "content": { + "warning": "Это может повлиять на многие элементы, пожалуйста перепроверьте что Вы действительно хотите этого." + }, + "header": "Вы хотите запустить { action } на { n } элементе? | Вы хотите запустить { action } на { n } элементах?" + } + } + }, + "AttachmentInput": { + "button": { + "remove": "Удалить" + }, + "header": { + "failure": "Ваше вложение не может быть сохранено" + }, + "help": { + "upload": "PNG или JPG. Размеры должны быть от 1400x1400px и до 3000x3000px. Максимальный размер файла 5MB." + }, + "label": { + "upload": "Загрузить новое изображение…" + }, + "loader": { + "uploading": "Загружается файл…" + } + }, + "CollapseLink": { + "button": { + "collapse": "Свернуть", + "expand": "Раскрыть" + } + }, + "ContentForm": { + "button": { + "preview": "Предпросмотр", + "write": "Запись" + }, + "empty": { + "noContent": "Нет предпросмотра" + }, + "help": { + "markdown": "Поддерживается разметка Markdown" + }, + "placeholder": { + "input": "Напишите здесь несколько слов…" + } + }, + "CopyInput": { + "button": { + "copy": "Копировать" + }, + "message": { + "success": "Текст скопирован в буфер обмена!" + } + }, + "DangerousButton": { + "button": { + "cancel": "Отмена", + "confirm": "Подтвердить" + }, + "header": { + "confirm": "Вы хотите подтвердить это действие?" + } + }, + "Duration": { + "meta": { + "hours": "{ hours } ч { minutes } мин", + "minutes": "{ minutes } мин" + } + }, + "EmptyState": { + "button": { + "refresh": "Обновить" + }, + "header": { + "noResults": "Ничего не найдено." + } + }, + "ExpandableDiv": { + "button": { + "less": "Показать меньше", + "more": "Показать больше" + } + }, + "InlineSearchBar": { + "button": { + "clear": "Очистить" + }, + "label": { + "search": "Поиск" + }, + "placeholder": { + "search": "Поиск…" + } + }, + "LoginModal": { + "description": { + "noAccess": "У вас нет доступа" + }, + "header": { + "unauthenticated": "Не аутентифицирован" + }, + "link": { + "login": "Войти", + "signup": "Регистрация" + } + }, + "RenderedDescription": { + "button": { + "cancel": "Отмена", + "edit": "Редактировать", + "less": "Показать меньше", + "more": "Показать больше", + "update": "Описание обновления" + }, + "empty": { + "noDescription": "Нет описания" + }, + "header": { + "failure": "Ошибка при обновлении описания" + } + }, + "UserLink": { + "link": { + "username": "{'@'}{username}" + } + }, + "UserMenu": { + "label": { + "language": "Язык", + "shortcuts": "Горячие клавиши", + "theme": "Тема" + }, + "link": { + "about": "Информация", + "chat": "Чат-комната", + "docs": "Документация", + "forum": "Форум", + "git": "Багтрекер", + "login": "Войти", + "logout": "Выход", + "notifications": "Уведомления", + "profile": "Профиль", + "settings": "Настройки", + "signup": "Регистрация", + "support": "Помощь" + } + }, + "UserModal": { + "button": { + "switchInstance": "Использовать другой узел" + }, + "header": { + "options": "Дополнительно" + }, + "label": { + "language": "Язык", + "shortcuts": "Горячие клавиши", + "theme": "Тема" + }, + "link": { + "about": "Информация", + "chat": "Чат-комната", + "docs": "Документация", + "forum": "Форум", + "git": "Багтрекер", + "login": "Войти", + "logout": "Выход", + "notifications": "Уведомления", + "profile": "Профиль", + "settings": "Настройки", + "signup": "Регистрация", + "support": "Помощь" + } + } + }, + "favorites": { + "List": { + "empty": { + "noFavorites": "Вы ещё не добавляли треки в избранное" + }, + "header": { + "favorites": "{ n } избранный | { n } избранных" + }, + "link": { + "library": "Просмотр библиотеки" + }, + "loader": { + "loading": "Загружаем Ваше избранное…" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Результатов на странице" + }, + "title": "Ваше избранное" + }, + "TrackFavoriteIcon": { + "button": { + "add": "Добавить в избранное", + "remove": "Удалить из избранного" + }, + "label": { + "inFavorites": "В избранном" + } + } + }, + "federation": { + "FetchButton": { + "button": { + "close": "Закрыть", + "reload": "Закрыть и обновить страницу" + }, + "description": { + "failure": "При попытке обновления данных произошла ошибка:", + "pending": "Запрос на обновление не был обработан вовремя нашим сервером. Он будет обработан позже.", + "skipped": "Удалённый сервер ответил, но ответ не поддерживается Funkwhale.", + "success": "Данные с удалённого сервера успешно обновлены." + }, + "header": { + "failure": "Ошибка при обновлении", + "pending": "Ожидание обновления", + "refresh": "Обновляем объект с удалённого сервера…", + "saveFailure": "Ошибка во время сохранения настроек", + "skipped": "Обновление было пропущено", + "success": "Обновление успешно" + }, + "loader": { + "awaitingResult": "Ждем результатов…", + "fetchRequest": "Запрашиваем данные…" + }, + "table": { + "error": { + "label": { + "detail": "Информация об ошибке", + "type": "Тип ошибки" + }, + "value": { + "connectionError": "Невозможно соединиться с удалённым сервером", + "httpError": "При соединении с удалённым сервером возникла ошибка HTTP", + "httpStatus": "Удалённый сервер ответил с HTTP { status }", + "invalidAttributesError": "Данные, принятые от удалённого сервера, содержали неправильные или отсутствующие атрибуты", + "invalidJsonError": "Удалённый сервер вернул неправильные JSON или JSON-LD данные", + "timeoutError": "Удалённый сервер не ответил достаточно быстро", + "unknownError": "Неизвестная ошибка" + } + } + } + }, + "LibraryWidget": { + "button": { + "showMore": "Показать больше" + }, + "empty": { + "noMatch": "Нет подходящей библиотеки." + } + } + }, + "forms": { + "PasswordInput": { + "button": { + "copy": "Копировать" + }, + "message": { + "copy": "Текст скопирован в буфер обмена!" + }, + "title": "Показать/скрыть пароль" + } + }, + "library": { + "AlbumBase": { + "link": { + "addDescription": "Добавить описание…" + }, + "meta": { + "episodes": "{ n } эпизод | { n } эпизода", + "tracks": "{ n } трек | { n } трека" + }, + "title": "Альбом" + }, + "AlbumDetail": { + "description": { + "libraries": "Альбом представлен в следующих библиотеках:" + }, + "header": { + "episodes": "Эпизоды", + "libraries": "Пользовательские библиотеки", + "tracks": "Треки" + }, + "meta": { + "volume": "Том { number }" + } + }, + "AlbumDropdown": { + "button": { + "cancel": "Отмена", + "delete": "Удалить", + "edit": "Редактировать", + "embed": "Внедрить", + "more": "Ещё…" + }, + "link": { + "discogs": "Искать на Discogs", + "django": "Посмотреть в админке Django", + "domain": "Посмотреть на { domain }", + "moderation": "Открыть в режиме модерации", + "musicbrainz": "Смотреть на MusicBrainz" + }, + "modal": { + "delete": { + "content": { + "warning": "Альбом будет удалён вместе со связанными с ним файлами и данными. Это действие нельзя отменить." + }, + "header": "Удалить этот альбом?" + }, + "embed": { + "header": "Внедрить этот альбом на Ваш сайт" + } + } + }, + "AlbumEdit": { + "header": { + "edit": "Редактировать этот альбом", + "suggest": "Предложите правку для этого альбома" + }, + "message": { + "remote": "Этот объект управляется другим сервером, Вы не можете редактировать его." + } + }, + "Albums": { + "button": { + "search": "Поиск" + }, + "empty": { + "noResults": "Нет результатов по этому запросу" + }, + "header": { + "browse": "Просмотр альбомов" + }, + "label": { + "search": "Поиск", + "tags": "Теги" + }, + "link": { + "addMusic": "Добавить музыку" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Результатов на странице" + }, + "placeholder": { + "search": "Введите название альбома…" + }, + "title": "Альбомы" + }, + "ArtistBase": { + "button": { + "cancel": "Отмена", + "edit": "Редактировать", + "embed": "Внедрить", + "more": "Ещё…", + "play": "Проиграть все альбомы" + }, + "link": { + "discogs": "Искать на Discogs", + "django": "Посмотреть в админке Django", + "domain": "Посмотреть на { domain }", + "moderation": "Открыть в режиме модерации", + "musicbrainz": "Смотреть на MusicBrainz", + "wikipedia": "Искать на Википедии" + }, + "meta": { + "albums": "{ n } альбомов | { n } альбомов", + "tracks": "{ n } трек из | { n } трека из" + }, + "modal": { + "embed": { + "header": "Внедрить произведения этого исполнителя на Ваш сайт" + } + }, + "title": "Исполнитель" + }, + "ArtistDetail": { + "button": { + "filter": "Удалить фильтр", + "more": "Загрузить ещё…" + }, + "description": { + "library": "Исполнитель представлен в следующих библиотеках:" + }, + "header": { + "album": "Альбомы этого исполнителя", + "library": "Пользовательские библиотеки", + "track": "Новые треки этого исполнителя" + }, + "link": { + "filter": "Просмотреть мои фильтры" + }, + "message": { + "filter": "Сейчас Вы скрываете содержимое, связанное с этим исполнителем." + } + }, + "ArtistEdit": { + "header": { + "edit": "Редактировать этого исполнителя", + "suggest": "Предложите правку для этого исполнителя" + }, + "message": { + "remote": "Этот объект управляется другим сервером, Вы не можете редактировать его." + } + }, + "Artists": { + "button": { + "search": "Поиск", + "upload": "Добавить музыку" + }, + "empty": { + "noResults": "Нет результатов по этому запросу" + }, + "header": { + "browse": "Просмотр исполнителей" + }, + "label": { + "excludeCompilation": "Исключить исполнителей с компиляциями", + "search": "Имя исполнителя", + "tags": "Теги" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Результатов на странице" + }, + "placeholder": { + "search": "Поиск…" + }, + "title": "Исполнители" + }, + "EditCard": { + "button": { + "approve": "Одобрить", + "delete": "Удалить", + "reject": "Отклонить" + }, + "header": { + "modification": "Изменение { id }" + }, + "link": { + "track": "Трек #{ id } - { name }" + }, + "modal": { + "content": { + "warning": "Предложенная правка будет удалена, это действие нельзя отменить." + }, + "delete": { + "header": "Удалить это предложение?" + } + }, + "status": { + "applied": "Одобрено и применено", + "approved": "Одобрено", + "pending": "Ожидание одобрения", + "rejected": "Отклонено" + }, + "table": { + "update": { + "header": { + "field": "Поле", + "newValue": "Новое значение", + "oldValue": "Старое значение" + }, + "notApplicable": "Н/Д" + } + } + }, + "EditForm": { + "button": { + "cancel": "Отмена", + "clear": "Очистить", + "new": "Отправить ещё одну правку", + "reset": "Сброс на начальное значение", + "showAll": "Показать все правки", + "showUnreviewed": "Ограничить неодобренные правки", + "submit": "Применить изменения", + "suggest": "Отправить предложение" + }, + "empty": { + "suggestEdit": "Предложите правку, используя форму ниже" + }, + "header": { + "failure": "Ошибка при отправке правки", + "recentEdits": "Недавние правки", + "success": "Ваша правка была успешно отправлена.", + "unreviewed": "Свежие правки в ожидании принятия" + }, + "label": { + "summary": "Сводка (необязательно)" + }, + "message": { + "noPermission": "Вы не имеете разрешений для редактирования этого объекта, но Вы можете предложить правки. После отправки правки будут рассмотрены перед применением." + }, + "notApplicable": "Н/Д", + "placeholder": { + "summary": "Краткая информация о Ваших правках." + } + }, + "FileUpload": { + "button": { + "cancel": "Отмена", + "retry": "Повторить неудачные закачки" + }, + "description": { + "import": "Статус импорта", + "previousImport": "Результаты прошлого импорта:" + }, + "empty": { + "noFiles": "0" + }, + "header": { + "failure": "Ошибка при отправке жалобы", + "local": "Импорт музыки из локального хранилища", + "server": "Статус импорта", + "status": "Статус импорта" + }, + "label": { + "extensions": "Поддерживаемые расширения: { extensions }", + "remainingSpace": "Свободное место", + "uploadWidget": "Нажмите чтобы выбрать файлы для загрузки или перетащите файлы или директории" + }, + "link": { + "picard": "Мы рекомендуем использовать Picard для этого.", + "processing": "Обработка", + "uploading": "Загружается" + }, + "message": { + "listener": "Эта страница запрашивает, хотите ли вы выйти - введенные вами данные могут быть не сохранены.", + "local": { + "copyright": "Вы не загружаете контент, защищенный авторскими правами, в публичные библиотеки, это может быть нарушением закона", + "format": "Закачиваемые вами файлы имеют формат OGG, Flac, MP3 или AIFF", + "message": "Вы собираетесь загрузить музыку в Вашу библиотеку. Перед тем как продолжить, убедитесь что:", + "tag": "Закачиваемые вами файлы имеют правильные теги." + } + }, + "table": { + "upload": { + "header": { + "actions": "Действия", + "filename": "Имя файла", + "size": "Размер", + "status": "Статус" + }, + "progress": "{percent}%", + "status": { + "pending": "Ожидает", + "uploaded": "Загружено", + "uploading": "Загружается…" + } + } + }, + "tooltip": { + "denied": "Загрузка отклонена, убедитесь, что файл не слишком большой и Вы не превысили квоту", + "extension": "Неправильный тип файла, убедитесь, что закачиваете аудио-файл. Поддерживаемые типы файлов: { extensions }", + "network": "При загрузке этого файла произошла сетевая ошибка", + "retry": "Повторить", + "size": "Невозможно загрузить файл, убедитесь что он не слишком большой", + "timeout": "Таймаут загрузки, попробуйте ещё раз" + } + }, + "FsBrowser": { + "button": { + "import": "Импорт" + } + }, + "FsLogs": { + "empty": { + "notStarted": "Импорт ещё на начался" + } + }, + "Home": { + "header": { + "newChannels": "Новые каналы", + "playlists": "Списки воспроизведения", + "recentlyAdded": "Недавно добавленные", + "recentlyFavorited": "Недавно добавленные в избранное", + "recentlyListened": "Недавно прослушанные" + }, + "title": "Библиотека" + }, + "ImportStatusModal": { + "button": { + "close": "Закрыть" + }, + "error": { + "importFailure": "Во время обработки закачки возникла ошибка. Дополнительная информация ниже.", + "invalidMetadata": { + "label": "Неправильные метаданные", + "message": "Метаданные файла неправильные или некоторые обязательные поля отсутствуют." + }, + "unknownError": { + "label": "Неизвестная ошибка", + "message": "Возникла неизвестная ошибка" + } + }, + "header": { + "importDetail": "Детали импорта" + }, + "link": { + "documentation": "Посмотрите нашу документацию по этой ошибке", + "support": "Открыть тему в поддержке (вставьте диагностическую информацию ниже в Ваше сообщение)" + }, + "message": { + "importDetail": "Закачка всё ещё в очереди и скоро будет обработана сервером.", + "importSuccess": "Закачка была успешно обработана сервером." + }, + "table": { + "error": { + "debug": "Диагностика", + "errorDetail": "Информация об ошибке", + "errorType": "Тип ошибки", + "help": "Помощь" + } + }, + "warning": { + "importSkipped": "Закачка была пропущена, так как похожая уже есть в одной из ваших библиотек." + } + }, + "Podcasts": { + "button": { + "cancel": "Отмена", + "channel": "Создать канал", + "feed": "Подписаться на канал", + "search": "Поиск", + "subscribe": "Подписаться" + }, + "empty": { + "noResults": "Нет результатов по этому запросу" + }, + "header": { + "browse": "Просмотр подкастов" + }, + "label": { + "search": "Название подкаста", + "tags": "Теги" + }, + "modal": { + "subscription": { + "header": "Подписка" + } + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Результатов на странице" + }, + "placeholder": { + "search": "Поиск…" + }, + "title": "Подкасты" + }, + "Radios": { + "button": { + "add": "Создать радио", + "create": "Создать Ваше собственное радио", + "search": "Поиск" + }, + "empty": { + "noResults": "Нет результатов по этому запросу" + }, + "header": { + "browse": "Просмотр радио", + "instance": "Радио узла", + "user": "Пользовательские радио" + }, + "label": { + "search": "Поиск" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Результатов на странице" + }, + "placeholder": { + "search": "Введите название радио…" + }, + "title": "Радио" + }, + "TagDetail": { + "header": { + "channels": "Каналы", + "tracks": "Треки" + }, + "link": { + "albums": "Альбомы", + "artists": "Исполнители", + "moderation": "Открыть в режиме модерации" + } + }, + "TagSelector": { + "placeholder": { + "search": "Поиск…" + } + }, + "TrackBase": { + "button": { + "cancel": "Отмена", + "delete": "Удалить", + "download": "Скачать", + "edit": "Редактировать", + "embed": "Внедрить", + "more": "Ещё…", + "play": "Проиграть" + }, + "link": { + "discogs": "Искать на Discogs", + "django": "Посмотреть в админке Django", + "domain": "Посмотреть на { domain }", + "moderation": "Открыть в режиме модерации", + "wikipedia": "Искать на Википедии" + }, + "modal": { + "delete": { + "content": { + "warning": "Трек будет удалён вместе со связанными с ним файлами и данными. Это действие нельзя отменить." + }, + "header": "Удалить этот трек?" + }, + "embed": { + "header": "Внедрить этот трек на Ваш сайт" + } + }, + "subtitle": { + "with-uploader": "Загружено {0} из {1}", + "without-uploader": "Загружено {0}" + }, + "title": "Трек" + }, + "TrackDetail": { + "description": { + "library": "Этот трек представлен в следующих библиотеках:" + }, + "header": { + "episode": "Подробности", + "library": "Связанные библиотеки", + "playlists": "Связанные списки воспроизведения", + "release": "О релизе", + "track": "Подробности" + }, + "link": { + "musicbrainz": "Смотреть на MusicBrainz" + }, + "notApplicable": "Н/Д", + "table": { + "release": { + "album": "Альбом", + "artist": "Исполнитель", + "copyright": "Копирайт", + "license": "Лицензия", + "series": "Серия", + "url": "URL", + "year": "Год" + }, + "track": { + "bitrate": { + "label": "Битрейт", + "value": "{bitrate}/с" + }, + "codec": "Кодек", + "downloads": "Загрузки", + "duration": "Длительность", + "size": "Размер" + } + } + }, + "TrackEdit": { + "header": { + "edit": "Редактировать этот трек", + "suggest": "Предложите правку для этого трека" + }, + "message": { + "remote": " Этот объект управляется другим сервером, Вы не можете редактировать его." + } + }, + "radios": { + "Builder": { + "button": { + "filter": "Добавить фильтр", + "save": "Сохранить" + }, + "description": { + "builder": "Вы можете использовать этот интерфейс чтобы создать собственное радио, которое будет проигрывать треки согласно Вашим критериям." + }, + "header": { + "builder": "Конструктор", + "created": "Радио создано", + "matches": "{ n } подходящий трек | { n } подходящих трека", + "updated": "Радио обновлено" + }, + "label": { + "description": "Описание", + "filter": "Добавить фильтры, чтобы настроить своё радио", + "name": "Название радио", + "public": "Публично отображать" + }, + "option": { + "filter": "Выберите фильтр" + }, + "placeholder": { + "description": "Моё замечательное описание", + "name": "Моё замечательное радио" + }, + "table": { + "filter": { "header": { - "accessedDate": "Время доступа", - "account": "Статус аккаунта", - "creationDate": "Дата создания", - "domain": "Домен", - "importStatus": "Статус импорта", - "library": "Библиотека", - "name": "Имя", - "size": "Размер", - "visibility": "Видимость" + "actions": "Действия", + "candidates": "Кандидаты", + "config": "Конфигурация", + "exclude": "Исключить", + "name": "Имя фильтра" } } }, + "title": "Конструктор радио" + }, + "Filter": { + "cancelButton": "Отмена", + "excludeLabel": "Исключить", + "matchingTracks": "0 треков подходящих по фильтру | {n} трек подходящий по фильтру | {n} треков подходящих по фильтру", + "matchingTracksModalHeader": "Треки, подходящие под фильтр", + "removeButton": "Удалить" + } + } + }, + "manage": { + "ChannelsTable": { + "label": { + "category": "Категория", + "search": "Поиск" + }, + "link": { + "local": "Местное", + "moderation": "Открыть в режиме модерации" + }, + "option": { + "all": "Все" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по домену, имени пользователя, аккаунту…" + }, + "table": { + "channel": { + "header": { + "account": "Статус аккаунта", + "albums": "Альбомы", + "creationDate": "Дата создания", + "domain": "Домен", + "name": "Имя", + "tracks": "Треки" + } + } + } + }, + "library": { + "AlbumsTable": { + "action": { + "delete": { + "label": "Удалить", + "warning": "Выбранные альбомы будут удалены вместе со связанными треками, закачками, избранным и историей прослушивания. Это действие нельзя отменить." + } + }, + "label": { + "search": "Поиск" + }, + "link": { + "local": "Местное", + "moderation": "Открыть в режиме модерации" + }, + "notApplicable": "Н/Д", + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по домену, названию, исполнителю, MusicBrainz ID…" + }, + "table": { + "album": { + "header": { + "artist": "Исполнитель", + "creationDate": "Дата создания", + "domain": "Домен", + "name": "Название", + "releaseDate": "Дата выпуска", + "tracks": "Треки" + } + } + } + }, + "ArtistsTable": { + "action": { + "delete": { + "label": "Удалить", + "warning": "Выбранный исполнитель будет удален вместе со связанными закачками, треками, альбомами, избранным и историей прослушивания. Это действие нельзя отменить." + } + }, + "label": { + "category": "Категория", + "search": "Поиск" + }, + "link": { + "local": "Местное" + }, + "option": { + "all": "Все" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по домену, имени, MusicBrainz ID…" + }, + "table": { + "artist": { + "header": { + "albums": "Альбомы", + "creationDate": "Дата создания", + "domain": "Домен", + "name": "Имя", + "tracks": "Треки" + } + } + } + }, + "EditsCardList": { + "label": { + "search": "Поиск", + "status": "Статус" + }, + "option": { + "all": "Все", + "approved": "Одобрено", + "pending": "Ожидание одобрения", + "rejected": "Отклонено" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по учетной записи, примечанию, домену…" + } + }, + "LibrariesTable": { + "action": { + "delete": { + "label": "Удалить", + "warning": "Выбранная библиотека будет удалена вместе со связанными закачками и подписками. Это действие нельзя отменить." + } + }, + "label": { + "search": "Поиск", + "visibility": "Видимость" + }, + "link": { + "local": "Местное" + }, + "option": { + "all": "Все" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по домену, исполнителю, имени, описанию…" + }, + "table": { + "library": { + "header": { + "account": "Статус аккаунта", + "creationDate": "Дата создания", + "domain": "Домен", + "followers": "Подписчики", + "name": "Имя", + "uploads": "Закачки", + "visibility": "Видимость" + } + } + } + }, + "TagsTable": { + "action": { + "delete": { + "label": "Удалить", + "warning": "Выбранный тег будет снят со всего связанного с ним содержимого (если оно есть) и удалён. Это действие нельзя отменить." + } + }, + "label": { + "search": "Поиск" + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по имени" + }, + "table": { + "tag": { + "header": { + "albums": "Альбомы", + "artists": "Исполнители", + "creationDate": "Дата создания", + "name": "Имя", + "tracks": "Треки" + } + } + } + }, + "TracksTable": { + "action": { + "delete": { + "label": "Удалить", + "warning": "Выбранные треки будут удалены вместе со связанными закачками, избранным и историей прослушивания. Это действие нельзя отменить." + } + }, + "label": { + "search": "Поиск" + }, + "link": { + "local": "Местное" + }, + "notApplicable": "Н/Д", + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по домену, названию, исполнителю, альбому, MusicBrainz ID…" + }, + "table": { + "track": { + "header": { + "album": "Альбом", + "artist": "Исполнитель", + "creationDate": "Дата создания", + "domain": "Домен", + "license": "Лицензия", + "title": "Название" + } + } + } + }, + "UploadsTable": { + "action": { + "delete": { + "label": "Удалить", + "warning": "Выбранная закачка будет удалена. Это действие нельзя отменить." + } + }, + "label": { + "search": "Поиск", + "status": "Статус", + "visibility": "Видимость" + }, + "link": { + "local": "Местное" + }, + "notApplicable": "Н/Д", "option": { "all": "Все", "failed": "Ошибки", @@ -1862,396 +2316,68 @@ }, "label": "Порядок" }, - "action": { - "delete": { - "label": "Удалить", - "warning": "Выбранная закачка будет удалена. Это действие нельзя отменить." - } - }, - "link": { - "local": "Местное" - }, - "notApplicable": "Н/Д", - "label": { - "search": "Поиск", - "status": "Статус", - "visibility": "Видимость" + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" }, "placeholder": { "search": "Искать по домену, исполнителю, имени, справке, источнику…" }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - } - }, - "LibrariesTable": { "table": { - "library": { + "upload": { "header": { + "accessedDate": "Время доступа", "account": "Статус аккаунта", "creationDate": "Дата создания", "domain": "Домен", - "followers": "Подписчики", + "importStatus": "Статус импорта", + "library": "Библиотека", "name": "Имя", - "uploads": "Закачки", + "size": "Размер", "visibility": "Видимость" } } - }, - "option": { - "all": "Все" - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "action": { - "delete": { - "label": "Удалить", - "warning": "Выбранная библиотека будет удалена вместе со связанными закачками и подписками. Это действие нельзя отменить." - } - }, - "link": { - "local": "Местное" - }, - "label": { - "search": "Поиск", - "visibility": "Видимость" - }, - "placeholder": { - "search": "Искать по домену, исполнителю, имени, описанию…" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - } - }, - "TracksTable": { - "table": { - "track": { - "header": { - "album": "Альбом", - "artist": "Исполнитель", - "creationDate": "Дата создания", - "domain": "Домен", - "license": "Лицензия", - "title": "Название" - } - } - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "action": { - "delete": { - "label": "Удалить", - "warning": "Выбранные треки будут удалены вместе со связанными закачками, избранным и историей прослушивания. Это действие нельзя отменить." - } - }, - "link": { - "local": "Местное" - }, - "notApplicable": "Н/Д", - "label": { - "search": "Поиск" - }, - "placeholder": { - "search": "Искать по домену, названию, исполнителю, альбому, MusicBrainz ID…" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - } - }, - "ArtistsTable": { - "table": { - "artist": { - "header": { - "albums": "Альбомы", - "creationDate": "Дата создания", - "domain": "Домен", - "name": "Имя", - "tracks": "Треки" - } - } - }, - "option": { - "all": "Все" - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "label": { - "category": "Категория", - "search": "Поиск" - }, - "action": { - "delete": { - "label": "Удалить", - "warning": "Выбранный исполнитель будет удален вместе со связанными закачками, треками, альбомами, избранным и историей прослушивания. Это действие нельзя отменить." - } - }, - "link": { - "local": "Местное" - }, - "placeholder": { - "search": "Искать по домену, имени, MusicBrainz ID…" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - } - }, - "TagsTable": { - "table": { - "tag": { - "header": { - "albums": "Альбомы", - "artists": "Исполнители", - "creationDate": "Дата создания", - "name": "Имя", - "tracks": "Треки" - } - } - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "action": { - "delete": { - "label": "Удалить", - "warning": "Выбранный тег будет снят со всего связанного с ним содержимого (если оно есть) и удалён. Это действие нельзя отменить." - } - }, - "label": { - "search": "Поиск" - }, - "placeholder": { - "search": "Искать по имени" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - } - }, - "EditsCardList": { - "option": { - "all": "Все", - "approved": "Одобрено", - "pending": "Ожидание одобрения", - "rejected": "Отклонено" - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "placeholder": { - "search": "Искать по учетной записи, примечанию, домену…" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - }, - "label": { - "status": "Статус" - } - }, - "AlbumsTable": { - "table": { - "album": { - "header": { - "artist": "Исполнитель", - "creationDate": "Дата создания", - "domain": "Домен", - "name": "Название", - "releaseDate": "Дата выпуска", - "tracks": "Треки" - } - } - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "action": { - "delete": { - "label": "Удалить", - "warning": "Выбранные альбомы будут удалены вместе со связанными треками, закачками, избранным и историей прослушивания. Это действие нельзя отменить." - } - }, - "link": { - "local": "Местное", - "moderation": "Открыть в режиме модерации" - }, - "notApplicable": "Н/Д", - "label": { - "search": "Поиск" - }, - "placeholder": { - "search": "Искать по домену, названию, исполнителю, MusicBrainz ID…" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" } } }, "moderation": { - "ReportCard": { - "table": { - "object": { - "account": "Статус аккаунта", - "domain": "Домен", - "local": "Местное", - "owner": "Владелец", - "type": "Тип" - }, - "status": { - "assignedTo": "Назначено на", - "internalNotes": "Внутренние заметки", - "resolutionDate": "Дата разрешения", - "resolved": "Решено", - "status": "Статус", - "unresolved": "Нерешённые" - }, - "report": { - "category": "Категория", - "creationDate": "Дата создания", - "submittedBy": "Отправлено от" + "AccountsTable": { + "action": { + "purge": { + "label": "Очистить" } }, - "header": { - "actions": "Действия", - "notes": "Внутренние заметки", - "message": "Сообщение", - "reportedObject": "Предмет жалобы" - }, - "button": { - "confirmDelete": "Удалить", - "delete": "Удалить объект по жалобе", - "resolve": "Разрешить", - "unresolve": "Открыть заново" - }, - "modal": { - "delete": { - "header": "Удалить объект, на который пожаловались?", - "content": { - "warning": "Это удалит объект, связанный с этой жалобой, и пометит саму жалобу как разрешённую. Это действие нельзя отменить." - } - } - }, - "notApplicable": "Н/Д", - "link": { - "moderation": "Открыть в режиме модерации", - "report": "Жалоба { id }", - "publicPage": "Посмотреть публичную страницу" - }, - "warning": { - "objectDeleted": "Объект, связанный с этой жалобой, был удалён." - } - }, - "UserRequestCard": { - "header": { - "actions": "Действия", - "notes": "Внутренние заметки", - "signup": "Сообщение" - }, - "button": { - "approve": "Одобрить", - "reject": "Отказать" - }, - "table": { - "status": { - "approved": "Одобрено", - "assignedTo": "Назначено на", - "internalNotes": "Внутренние заметки", - "pending": "Ожидает", - "refused": "Отказано", - "status": "Статус" - }, - "request": { - "creationDate": "Дата создания", - "submittedBy": "Отправлено от" - } - }, - "notApplicable": "Н/Д", - "link": { - "request": "Запрос { id }" - }, - "message": { - "signup": "Этот пользователь хочет зарегистрироваться на вашем узле." - } - }, - "InstancePolicyForm": { - "header": { - "addRule": "Добавить правило модерации", - "editRule": "Редактировать правило модерации", - "failure": "Ошибка во время создания правила" - }, "label": { - "blockAll": "Заблокировать всё", - "policyDisabled": "Отключено", - "policyEnabled": "Включено", - "silenceActivity": "Скрывать активность", - "silenceNotifications": "Скрывать уведомления", - "customizeRule": "Или настройте своё правило", - "policyReason": "Причина", - "rejectMedia": "Отклонить" + "search": "Поиск" }, - "tooltip": { - "blockAll": "Заблокировать всё от этого пользователя или домена. Это остановит любое взаимодействие с ним и удалит связанный контент (закачки, библиотеки, подписки и т.п.)", - "rejectMedia": "Не скачивать ничего (музыку, обложки, аватары…) от этого пользователя или домена. Это так же удалит существующий контент.", - "summary": "Объясните назначение этой политики. В зависимости от настроек вашего узла, это поможет вам вспомнить, зачем вы назначили её для этого аккаунта или домена, так же это может быть доступно публично, чтобы помочь пользователям понять действующие правила модерации.", - "silenceActivity": "Скрыть контент аккаунта или домена от всех, кроме подписчиков.", - "silenceNotifications": "Запретить аккаунту или домену присылать уведомления, за исключением подписчиков.", - "isActive": "Используйте эту настройку для временного включения/отключения политики без полного её удаления." + "link": { + "local": "Мой аккаунт" }, - "button": { - "cancel": "Отмена", - "create": "Создать", - "delete": "Удалить", - "confirm": "Удалить правило модерации", - "update": "Дата загрузки" + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" }, - "modal": { - "delete": { - "header": "Удалить это правило модерации?", - "content": { - "warning": "Это действие нельзя отменить." - } - } - } - }, - "NoteForm": { - "button": { - "add": "Добавить примечание" + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" }, "placeholder": { - "summary": "Опишите какие действия были предприняты, либо другие важные моменты…" + "search": "Искать по домену, имени пользователя, информации пользователя…" }, - "header": { - "failure": "Ошибка при отправке примечания" + "table": { + "account": { + "header": { + "domain": "Домен", + "firstSeen": "Впервые увиден", + "lastSeen": "Последний раз был виден", + "moderationRule": "Действуют правила модерации", + "name": "Имя", + "uploads": "Закачки" + }, + "moderationRule": "Да" + } } }, "DomainsTable": { @@ -2266,6 +2392,16 @@ "label": "Удалить из \"белого\" списка" } }, + "empty": { + "noPods": "Других серверов не найдено" + }, + "label": { + "inList": "Присутствует в \"белом\" списке", + "search": "Поиск" + }, + "link": { + "list": "Этот домен присутствует в Вашем \"белом\" списке" + }, "option": { "all": "Все", "no": "Нет", @@ -2279,76 +2415,32 @@ }, "label": "Порядок" }, - "table": { - "domain": { - "header": { - "firstSeen": "Впервые увиден", - "name": "Имя", - "receivedMessages": "Полученные сообщения", - "moderationRule": "Действуют правила модерации", - "users": "Пользователи" - }, - "moderationRule": "Да" - } - }, - "label": { - "inList": "Присутствует в \"белом\" списке", - "search": "Поиск" - }, - "empty": { - "noPods": "Других серверов не найдено" + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" }, "placeholder": { "search": "Искать по имени…" }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - }, - "link": { - "list": "Этот домен присутствует в Вашем \"белом\" списке" - } - }, - "AccountsTable": { - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, "table": { - "account": { + "domain": { "header": { - "domain": "Домен", "firstSeen": "Впервые увиден", - "lastSeen": "Последний раз был виден", - "name": "Имя", "moderationRule": "Действуют правила модерации", - "uploads": "Закачки" + "name": "Имя", + "receivedMessages": "Полученные сообщения", + "users": "Пользователи" }, "moderationRule": "Да" } - }, - "link": { - "local": "Мой аккаунт" - }, - "action": { - "purge": { - "label": "Очистить" - } - }, - "label": { - "search": "Поиск" - }, - "placeholder": { - "search": "Искать по домену, имени пользователя, информации пользователя…" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" } }, "InstancePolicyCard": { + "button": { + "edit": "Редактировать" + }, + "header": { + "rule": "Правило" + }, "label": { "blockAll": "Заблокировать всё", "muteActivity": "Скрывать активность", @@ -2356,15 +2448,49 @@ "reason": "Причина", "rejectMedia": "Отклонить" }, - "button": { - "edit": "Редактировать" - }, "status": { "enabled": "Включено", "paused": "Пауза" + } + }, + "InstancePolicyForm": { + "button": { + "cancel": "Отмена", + "confirm": "Удалить правило модерации", + "create": "Создать", + "delete": "Удалить", + "update": "Дата загрузки" }, "header": { - "rule": "Правило" + "addRule": "Добавить правило модерации", + "editRule": "Редактировать правило модерации", + "failure": "Ошибка во время создания правила" + }, + "label": { + "blockAll": "Заблокировать всё", + "customizeRule": "Или настройте своё правило", + "policyDisabled": "Отключено", + "policyEnabled": "Включено", + "policyReason": "Причина", + "rejectMedia": "Отклонить", + "silenceActivity": "Скрывать активность", + "silenceNotifications": "Скрывать уведомления" + }, + "modal": { + "delete": { + "content": { + "warning": "Это действие нельзя отменить" + }, + "header": "Удалить это правило модерации?" + } + }, + "tooltip": { + "blockAll": "Заблокировать всё от этого пользователя или домена. Это остановит любое взаимодействие с ним и удалит связанный контент (загрузки, библиотеки, подписки и т.п.)", + "isActive": "Используйте эту настройку для временного включения/отключения политики без полного её удаления.", + "rejectMedia": "Не скачивать ничего (музыку, обложки, аватары…) от этого пользователя или домена. Это так же удалит существующий контент.", + "silenceActivity": "Скрыть контент аккаунта или домена от всех, кроме подписчиков.", + "silenceNotifications": "Запретить аккаунту или домену присылать уведомления, за исключением подписчиков.", + "summary": "Объясните назначение этой политики. В зависимости от настроек вашего узла, это поможет вам вспомнить, зачем вы назначили её для этого аккаунта или домена, так же это может быть доступно публично, чтобы помочь пользователям понять действующие правила модерации." } }, "InstancePolicyModal": { @@ -2374,161 +2500,130 @@ }, "modal": { "manage": { - "header": "Изменить правила модерации для { obj }", "content": { "warning": "К этому объекту применяются особые правила модерации" - } + }, + "header": "Изменить правила модерации для { obj }" } } }, + "NoteForm": { + "button": { + "add": "Добавить примечание" + }, + "header": { + "failure": "Ошибка при отправке примечания" + }, + "placeholder": { + "summary": "Опишите какие действия были предприняты, либо другие важные моменты…" + } + }, "NotesThread": { "button": { "delete": "Удалить" }, "modal": { "delete": { - "header": "Удалить это примечание?", "content": { "warning": "Заметка будет удалена. Это действие нельзя отменить." - } - } - } - } - }, - "ChannelsTable": { - "table": { - "channel": { - "header": { - "account": "Статус аккаунта", - "albums": "Альбомы", - "creationDate": "Дата создания", - "domain": "Домен", - "name": "Имя", - "tracks": "Треки" + }, + "header": "Удалить это примечание?" } } }, - "option": { - "all": "Все" - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" + "ReportCard": { + "button": { + "confirmDelete": "Удалить", + "delete": "Удалить объект по жалобе", + "resolve": "Разрешить", + "unresolve": "Открыть заново" }, - "label": "Порядок" + "header": { + "actions": "Действия", + "message": "Сообщение", + "notes": "Внутренние заметки", + "reportedObject": "Предмет жалобы" + }, + "link": { + "moderation": "Открыть в режиме модерации", + "publicPage": "Посмотреть публичную страницу", + "report": "Жалоба { id }" + }, + "modal": { + "delete": { + "content": { + "warning": "Это удалит объект, связанный с этой жалобой, и пометит саму жалобу как разрешённую. Это действие нельзя отменить." + }, + "header": "Удалить объект, на который пожаловались?" + } + }, + "notApplicable": "Н/Д", + "table": { + "object": { + "account": "Статус аккаунта", + "domain": "Домен", + "local": "Местное", + "owner": "Владелец", + "type": "Тип" + }, + "report": { + "category": "Категория", + "creationDate": "Дата создания", + "submittedBy": "Отправлено от" + }, + "status": { + "assignedTo": "Назначено на", + "internalNotes": "Внутренние заметки", + "resolutionDate": "Дата разрешения", + "resolved": "Решено", + "status": "Статус", + "unresolved": "Нерешённые" + } + }, + "warning": { + "objectDeleted": "Объект, связанный с этой жалобой, был удалён." + } }, - "label": { - "category": "Категория", - "search": "Поиск" - }, - "link": { - "local": "Местное", - "moderation": "Открыть в режиме модерации" - }, - "placeholder": { - "search": "Искать по домену, имени пользователя, аккаунту…" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" + "UserRequestCard": { + "button": { + "approve": "Одобрить", + "reject": "Отказать" + }, + "header": { + "actions": "Действия", + "notes": "Внутренние заметки", + "signup": "Сообщение" + }, + "link": { + "request": "Запрос { id }" + }, + "message": { + "signup": "Этот пользователь хочет зарегистрироваться на вашем узле." + }, + "notApplicable": "Н/Д", + "table": { + "request": { + "creationDate": "Дата создания", + "submittedBy": "Отправлено от" + }, + "status": { + "approved": "Одобрено", + "assignedTo": "Назначено на", + "internalNotes": "Внутренние заметки", + "pending": "Ожидает", + "refused": "Отказано", + "resolutionDate": "Дата разрешения", + "status": "Статус" + } + } } }, "users": { - "UsersTable": { - "table": { - "user": { - "header": { - "accountStatus": "Статус аккаунта", - "email": "Электронная почта", - "lastActivity": "Последняя активность", - "permissions": "Разрешения", - "signup": "Регистрация", - "status": "Статус", - "username": "Имя пользователя" - }, - "accountStatus": { - "active": "Активен(на)", - "inactive": "Неактивен(на)" - }, - "status": { - "admin": "Администратор", - "regular": "Обычный пользователь", - "staff": "Член команды" - } - } - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "permission": { - "library": "Библиотека", - "moderation": "Модерация", - "settings": "Настройки" - }, - "notApplicable": "Н/Д", - "placeholder": { - "search": "Искать по имени пользователя, адресу электронной почты, имени…" - }, - "pagination": { - "results": "Найден один результат | Показаны результаты от { start } до { end } из { total }" - } - }, - "InvitationsTable": { - "option": { - "all": "Все", - "expired": "Истёк/использован", - "open": "Открыть" - }, - "table": { - "invitation": { - "header": { - "code": "Код", - "creationDate": "Дата создания", - "expirationDate": "Дата истечения", - "owner": "Владелец", - "status": "Статус" - } - } - }, - "action": { - "delete": "Удалить" - }, - "label": { - "expired": "Истёк", - "unused": "Не используется", - "search": "Поиск", - "status": "Статус", - "used": "Использовано" - }, - "ordering": { - "label": "Порядок" - }, - "placeholder": { - "search": "Искать по пользователю, адресу электронной почты, коду…" - }, - "pagination": { - "results": "Найден один результат | Показаны результаты от { start } до { end } из { total }" - } - }, "InvitationForm": { "button": { "clear": "Очистить", "new": "Получить приглашение" }, - "table": { - "invitation": { - "header": { - "code": "Код", - "link": "Поделиться ссылкой" - } - } - }, "header": { "failure": "Ошибка во время создания приглашения" }, @@ -2537,330 +2632,310 @@ }, "placeholder": { "invitation": "Оставьте пустым для случайного кода" - } - } - } - }, - "admin": { - "SignupFormBuilder": { - "table": { - "additionalFields": { - "header": { - "actions": "Действия", - "label": "Поле", - "type": "Тип поля", - "required": "Обязательно" - }, - "type": { - "long": "Длинный текст", - "short": "Краткий текст" - }, - "required": { - "false": "Нет", - "true": "Да" + }, + "table": { + "invitation": { + "header": { + "code": "Код", + "link": "Поделиться ссылкой" + } } } }, - "button": { - "add": "Добавить новое поле", - "edit": "Редактировать форму", - "preview": "Предпросмотр" + "InvitationsTable": { + "action": { + "delete": "Удалить" + }, + "label": { + "expired": "Истёк", + "search": "Поиск", + "status": "Статус", + "unused": "Не используется", + "used": "Использовано" + }, + "option": { + "all": "Все", + "expired": "Истёк/использован", + "open": "Открыть" + }, + "ordering": { + "label": "Порядок" + }, + "pagination": { + "results": "Найден один результат | Показаны результаты от { start } до { end } из { total }" + }, + "placeholder": { + "search": "Искать по пользователю, адресу электронной почты, коду…" + }, + "table": { + "invitation": { + "header": { + "code": "Код", + "creationDate": "Дата создания", + "expirationDate": "Дата истечения", + "owner": "Владелец", + "status": "Статус", + "user": "Пользователь" + } + } + } }, - "label": { - "additionalField": "Дополнительное поле", - "additionalFields": "Дополнительные поля", - "delete": "Удалить", - "helpText": "Текст помощи", - "moveDown": "Вниз", - "moveUp": "Вверх" - }, - "help": { - "additionalFields": "Дополнительные поля для отображения в форме. Показываются только в том случае, если включено ручное одобрение регистраций.", - "helpText": "Дополнительный текст для отображения в начале формы регистрации." - } - }, - "SettingsGroup": { - "header": { - "image": "Текущее изображение", - "error": "Ошибка во время сохранения настроек" - }, - "button": { - "save": "Сохранить" - }, - "message": { - "success": "Настройки успешно обновлены." + "UsersTable": { + "label": { + "search": "Поиск" + }, + "notApplicable": "Н/Д", + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Найден один результат | Показаны результаты от { start } до { end } из { total }" + }, + "permission": { + "library": "Библиотека", + "moderation": "Модерация", + "settings": "Настройки" + }, + "placeholder": { + "search": "Искать по имени пользователя, адресу электронной почты, имени…" + }, + "table": { + "user": { + "accountStatus": { + "active": "Активен(на)", + "inactive": "Неактивен(на)" + }, + "header": { + "accountStatus": "Статус аккаунта", + "email": "Электронная почта", + "lastActivity": "Последняя активность", + "permissions": "Разрешения", + "signup": "Регистрация", + "status": "Статус", + "username": "Имя пользователя" + }, + "status": { + "admin": "Администратор", + "regular": "Обычный пользователь", + "staff": "Член команды" + } + } + } } } }, "moderation": { - "ReportCategoryDropdown": { - "option": { - "all": "Все" + "FilterModal": { + "button": { + "cancel": "Отмена", + "hide": "Скрыть содержимое" }, + "header": { + "failure": "Ошибка во время создания фильтра", + "modal": "Вы хотите скрыть содержимое от исполнителя \"{ name }\"?" + }, + "help": { + "createFilter": "Вы можете управлять своими фильтрами в любой момент через настройки аккаунта." + }, + "message": { + "success": "Фильтр содержимого успешно добавлен" + }, + "warning": { + "createFilter": { + "listIntro": "Вы больше не увидите треков, альбомов и активности пользователей, связанной с этим исполнителем:", + "listItem1": "В избранном и истории прослушивания других пользователей", + "listItem2": "Из виджета \"Недавно добавленные\"", + "listItem3": "В списках исполнителей и альбомов", + "listItem4": "В рекомендованных радио" + } + } + }, + "ReportCategoryDropdown": { "label": { "category": "Категория" + }, + "option": { + "all": "Все" } }, "ReportModal": { + "button": { + "cancel": "Отмена", + "submit": "Отправить жалобу" + }, + "description": { + "email": "Мы воспользуемся этим адресом, если нам потребуется связаться с вами по вопросам, связанным с вашей жалобой.", + "forwardToDomain": "Переслать анонимизированную копию вашей жалобы на сервер, где хранится этот элемент.", + "message": "Укажите здесь дополнительную информацию для модератора, который займётся рассмотрением вашей жалобы.", + "modal": "С помощью этой формы вы можете отправить жалобу нашим модераторам" + }, + "error": { + "nodeinfoFetch": "Не могу получить информацию об Узле: {error}" + }, "header": { "disabled": "Анонимные жалобы отключены, пожалуйста войдите для отправки жалобы.", "modal": "Вы хотите пожаловаться на этот объект?", "submissionFailure": "Ошибка при отправке жалобы" }, - "button": { - "cancel": "Отмена", - "submit": "Отправить жалобу" - }, "label": { "email": "Электронная почта", "forwardToDomain": "Переслать на { domain}", "message": "Сообщение" }, - "description": { - "forwardToDomain": "Переслать анонимизированную копию вашей жалобы на сервер, где хранится этот элемент.", - "message": "Укажите здесь дополнительную информацию для модератора, который займётся рассмотрением вашей жалобы.", - "modal": "С помощью этой формы вы можете отправить жалобу нашим модераторам.", - "email": "Мы воспользуемся этим адресом, если нам потребуется связаться с вами по вопросам, связанным с вашей жалобой." - }, "message": { "submissionSuccess": "Ваша жалоба была успешно отправлена, спасибо" } - }, - "FilterModal": { + } + }, + "notifications": { + "NotificationRow": { "button": { - "cancel": "Отмена", - "hide": "Скрыть содержимое" + "approve": "Одобрить", + "markRead": "Отметить как прочитанное", + "markUnread": "Отметить как непрочитанное", + "reject": "Отклонить" }, "message": { - "success": "Фильтр содержимого успешно добавлен" - }, - "header": { - "modal": "Вы хотите скрыть содержимое от исполнителя \"{ name }\"?", - "failure": "Ошибка во время создания фильтра" - }, - "warning": { - "createFilter": { - "listItem2": "Из виджета \"Недавно добавленные\"", - "listItem3": "В списках исполнителей и альбомов", - "listItem1": "В избранном и истории прослушивания других пользователей", - "listItem4": "В рекомендованных радио", - "listIntro": "Вы больше не увидите треков, альбомов и активности пользователей, связанной с этим исполнителем:" - } - }, - "help": { - "createFilter": "Вы можете управлять своими фильтрами в любой момент через настройки аккаунта." + "libraryAcceptFollow": "{ username } принял Вашу подписку на библиотеку \"{ library }\"", + "libraryFollow": "{ username } подписался на Вашу библиотеку \"{ library }\"", + "libraryPendingFollow": "{ username } хочет подписаться на Вашу библиотеку \"{ library }\"", + "libraryReject": "Вы отменили запрос подписки на \"{library}\" от {username}" } } }, - "federation": { - "FetchButton": { - "description": { - "failure": "При попытке обновления данных произошла ошибка:", - "success": "Данные с удалённого сервера успешно обновлены.", - "pending": "Запрос на обновление не был обработан вовремя нашим сервером. Он будет обработан позже.", - "skipped": "Удалённый сервер ответил, но ответ не поддерживается Funkwhale." + "playlists": { + "Card": { + "meta": { + "tracks": "{ n } трек | { n } трека" + } + }, + "Editor": { + "button": { + "addDuplicate": "Всё равно добавить", + "clear": "Очистить список воспроизведения", + "copy": "Копировать треки из текущей очереди в список воспроизведения", + "insertFromQueue": "Вставить из очереди ({ n } трек) | Вставить из очереди ({ n } трека)" + }, + "error": { + "sync": "При сохранении Ваших изменений произошла ошибка" + }, + "header": { + "editor": "Редактор списков воспроизведения" + }, + "help": { + "reorder": "Перетаскивайте строки, чтобы упорядочить треки в списке воспроизведения" + }, + "loading": { + "sync": "Синхронизируем изменения с сервером…" + }, + "message": { + "sync": "Изменения синхронизированы с сервером" + }, + "modal": { + "clearPlaylist": { + "content": { + "warning": "Это необратимо удалит все треки из этого списка воспроизведения." + }, + "header": "Вы хотите очистить список воспроизведения \"{ playlist }\"?" + } + }, + "warning": { + "duplicate": "Некоторые треки из очереди уже находятся в этом списке воспроизведения:" + } + }, + "Form": { + "button": { + "create": "Создать список воспроизведения", + "update": "Обновить список воспроизведения" + }, + "header": { + "createFailure": "Список воспроизведения не может быть создан", + "createPlaylist": "Создать новый список воспроизведения", + "createSuccess": "Список воспроизведения создан", + "updateSuccess": "Список воспроизведения обновлён" + }, + "label": { + "name": "Название списка воспроизведения", + "visibility": "Видимость списка воспроизведения" + }, + "placeholder": { + "name": "Мой замечательный список воспроизведения" + } + }, + "PlaylistModal": { + "button": { + "addDuplicate": "Всё равно добавить", + "addToPlaylist": "Добавить в этот список воспроизведения", + "addTrack": "Добавить трек", + "cancel": "Отмена", + "edit": "Редактировать" + }, + "empty": { + "noPlaylists": "Списки воспроизведения пока не были созданы" + }, + "header": { + "addFailure": "Нам не удалось добавить трек в список воспроизведения", + "addToPlaylist": "Добавить в список воспроизведения", + "available": "Доступные списки воспроизведения", + "manage": "Управлять списками воспроизведения", + "noResults": "Нет результатов под этот фильтр", + "track": "{title}, от {artist}" + }, + "label": { + "filter": "Фильтр" + }, + "placeholder": { + "filterPlaylist": "Введите название списка воспроизведения" }, "table": { - "error": { - "value": { - "httpError": "При соединении с удалённым сервером возникла ошибка HTTP", - "invalidAttributesError": "Данные, принятые от удалённого сервера, содержали неправильные или отсутствующие атрибуты", - "connectionError": "Невозможно соединиться с удалённым сервером", - "httpStatus": "Удалённый сервер ответил с HTTP { status }", - "timeoutError": "Удалённый сервер не ответил достаточно быстро", - "invalidJsonError": "Удалённый сервер вернул неправильные JSON или JSON-LD данные", - "unknownError": "Неизвестная ошибка" - }, - "label": { - "detail": "Информация об ошибке", - "type": "Тип ошибки" + "edit": { + "header": { + "edit": "Редактировать", + "lastModification": "Последнее изменение", + "name": "Имя", + "tracks": "Треки" } } }, - "button": { - "close": "Закрыть", - "reload": "Закрыть и обновить страницу" - }, - "header": { - "saveFailure": "Ошибка во время сохранения настроек", - "failure": "Ошибка при обновлении", - "pending": "Ожидание обновления", - "success": "Обновление успешно", - "skipped": "Обновление было пропущено", - "refresh": "Обновляем объект с удалённого сервера…" - }, - "loader": { - "fetchRequest": "Запрашиваем данные…", - "awaitingResult": "Ждем результатов…" + "warning": { + "duplicate": "{ 0 } уже в списке воспроизведения { 1 }." } }, - "LibraryWidget": { - "empty": { - "noMatch": "Нет подходящей библиотеки." - }, + "TrackPlaylistIcon": { "button": { - "showMore": "Показать больше" - } - } - }, - "ShortcutsModal": { - "shortcut": { - "audio": { - "label": "Горячие клавиши плеера", - "clearQueue": "Очистить очередь", - "decreaseVolume": "Уменьшить громкость", - "expandQueue": "Раскрыть очередь/проигрыватель", - "increaseVolume": "Увеличить громкость", - "playPause": "Проиграть/приостановить трек", - "playNext": "Проиграть следующий трек", - "playPrevious": "Проиграть предыдущий трек", - "seekBack30": "Перемотать назад на 30сек", - "seekBack5": "Перемотать назад на 5сек", - "seekForward30": "Перемотать вперёд на 30сек", - "seekForward5": "Перемотать вперёд на 5сек", - "shuffleQueue": "Перемешать очередь", - "toggleFavorite": "Добавить/убрать из избранного", - "toggleMute": "Вкл/откл. звук", - "toggleLoop": "Включить цикличное проигрывание очереди" - }, - "general": { - "focus": "Перейти в панель поиска", - "label": "Общие горячие клавиши", - "show": "Показать доступные горячие клавиши", - "unfocus": "Выйти из панели поиска" + "add": "Добавить в список воспроизведения…" } }, - "button": { - "close": "Закрыть" - }, - "header": { - "modal": "Горячие клавиши" - } - }, - "SetInstanceModal": { - "button": { - "cancel": "Отмена", - "submit": "Отправить" - }, - "header": { - "chooseInstance": "Выберите свой узел", - "failure": "Невозможно соединиться с указанным URL", - "suggestions": "Предложенные изменения" - }, - "label": { - "url": "URL узла" - }, - "help": { - "notFunkwhaleServer": "Заданный адрес не является сервером Funkwhale", - "serverDown": "Сервер может быть недоступен", - "selectPod": "Чтобы продолжить, пожалуйста выберите узел Funkwhale, к которому Вы соединяетесь. Введите сам адрес или выберите один из предложенных вариантов." - }, - "message": { - "newUrl": "Вы используете узел Funkwhale на { url }" - } - }, - "Queue": { - "button": { - "clear": "Очистить", - "close": "Закрыть", - "stopRadio": "Остановить радио" - }, - "label": { - "duration": "Длительность", - "addArtistContentFilter": "Скрыть контент этого исполнителя…", - "next": "Следующий трек", - "pause": "Пауза", - "play": "Проиграть", - "previous": "Предыдущий трек", - "queue": "Очередь", - "remove": "Удалить", - "restart": "Перезапуск трека" - }, - "message": { - "radio": "Новые треки будут добавлены сюда автоматически.", - "automaticPlay": "Следующий трек запустится автоматически через несколько секунд…" - }, - "header": { - "failure": "Трек не может быть загружен", - "radio": "У Вас проигрывается радио" - }, - "meta": { - "queuePosition": "({ index } из { length })" - }, - "warning": { - "connectivity": "У Вас могут быть проблемы со связью." - } - }, - "forms": { - "PasswordInput": { + "Widget": { "button": { - "copy": "Копировать" + "create": "Создать список воспроизведения", + "more": "Показать больше" }, - "title": "Показать/скрыть пароль", - "message": { - "copy": "Текст скопирован в буфер обмена!" + "placeholder": { + "noPlaylists": "Списки воспроизведения пока не были созданы" } } }, "radios": { + "Button": { + "startArtistsRadio": "Запустить радио исполнителя", + "startPlaylistsRadio": "Запустить радио по плейлистам", + "startRadio": "Запустить радио", + "startTagsRadio": "Запустить радио по тегам", + "stopArtistsRadio": "Остановить радио исполнителя", + "stopPlaylistsRadio": "Остановить радио по плейлистам", + "stopRadio": "Остановить радио", + "stopTagsRadio": "Остановить радио по тегам" + }, "Card": { "button": { "edit": "Редактировать" } - }, - "Button": { - "startRadio": "Запустить радио", - "stopRadio": "Остановить радио" - } - }, - "RemoteSearchForm": { - "header": { - "fetchFailed": "Ошибка при запросе объекта" - }, - "button": { - "fediverse": "Федивёрс", - "rss": "RSS", - "search": "Поиск" - }, - "label": { - "fediverse": { - "fieldLabel": "Объект Fediverse", - "title": "Подписаться на подкаст размещенный в Fediverse" - }, - "rss": { - "fieldPlaceholder": "https://website.example.com/rss.xml", - "fieldLabel": "Расположение канала", - "title": "Подписаться на подкаст через RSS" - } - }, - "warning": { - "unsupported": "Этот вид объекта пока не поддерживается" - }, - "error": { - "fetchFailed": "Этот объект не может быть получен" - }, - "description": { - "fediverse": "Используйте эту форму, чтобы подписаться на канал, размещённый где-то в другом месте Федиверса.", - "rss": "Используйте эту форму, чтобы подписаться на RSS-ленту по её ссылке." - } - }, - "PageNotFound": { - "link": { - "home": "Перейти на домашнюю страницу" - }, - "title": "Страница не найдена", - "header": { - "pageNotFound": "Страница не найдена!" - }, - "message": { - "pageNotFound": "Извините, страницы, которую вы запрашивали, не существует:" - } - }, - "vui": { - "Pagination": { - "next": "Следующая страница", - "label": "Страницы", - "previous": "Предыдущая страница" } }, "tags": { @@ -2869,590 +2944,328 @@ "more": "Показать ещё один тег | Показать ещё { n } тега" } } + }, + "vui": { + "Pagination": { + "label": "Страницы", + "next": "Следующая страница", + "previous": "Предыдущая страница" + } + } + }, + "composables": { + "audio": { + "usePlayOptions": { + "addToQueueMessage": "{ n } трек добавлен в вашу очередь | { n } трека добавлено в вашу очередь" + } + }, + "locale": { + "useSharedLabels": { + "fields": { + "contentCategory": { + "choices": { + "music": "Музыка", + "other": "Другое", + "podcast": "Подкаст" + }, + "label": "Категория содержимого" + }, + "importStatus": { + "choices": { + "draft": { + "help": "Трек загружен, но ещё не поставлен в очередь на обработку", + "label": "Черновик" + }, + "errored": { + "help": "Произошла ошибка во время обработки этого трека, убедитесь что у него корректные теги", + "label": "Ошибочно" + }, + "finished": { + "help": "Импортировано", + "label": "Завершено" + }, + "pending": { + "help": "Трек загружен, но ещё не обработан сервером", + "label": "Ожидает" + }, + "skipped": { + "help": "Трек уже находится в одной из Ваших библиотек", + "label": "Пропущено" + } + }, + "label": "Нажмите, чтобы посмотреть больше информации об импорте этой закачки" + }, + "privacyLevel": { + "choices": { + "instance": "Все на этом узле", + "private": "Никто кроме меня", + "public": "Все на всех узлах" + }, + "help": "Определить уровень видимости Вашей активности", + "label": "Видимость активности", + "shortChoices": { + "instance": "Узел", + "private": "Личное", + "public": "Все" + } + }, + "reportType": { + "choices": { + "illegalContent": "Незаконное содержимое", + "invalidMetadata": "Неправильные метаданные", + "offensiveContent": "Оскорбительное содержание", + "other": "Другое", + "takedownRequest": "Запрос на удаление" + }, + "label": "Категория" + }, + "summary": { + "label": "Биография" + } + }, + "filters": { + "accessedDate": "Дата доступа", + "albumTitle": "Название альбома", + "appliedDate": "Дата обращения", + "artistName": "Имя исполнителя", + "bitrate": "Битрейт", + "creationDate": "Дата создания", + "dateJoined": "Дата регистрации", + "domain": "Домен", + "duration": "Длительность", + "expirationDate": "Дата истечения", + "firstSeen": "Дата первого появления", + "followers": "Подписчики", + "handledDate": "Дата обработки", + "itemsCount": "Элементы", + "lastActivity": "Последняя активность", + "lastSeen": "Дата последнего появления", + "modificationDate": "Дата изменения", + "name": "Имя", + "receivedMessages": "Полученные сообщения", + "releaseDate": "Дата выпуска", + "size": "Размер", + "trackTitle": "Название трека", + "uploads": "Загрузки", + "username": "Имя пользователя", + "users": "Пользователи" + }, + "scopes": { + "edits": { + "description": "Доступ к правкам", + "label": "Правки" + }, + "favorites": { + "description": "Доступ к избранному", + "label": "Избранное" + }, + "filters": { + "description": "Доступ к фильтрам содержимого", + "label": "Фильтры содержимого" + }, + "follows": { + "description": "Доступ к подпискам", + "label": "Подписки" + }, + "libraries": { + "description": "Доступ к аудио файлам, библиотекам, исполнителям, альбомам и трекам", + "label": "Библиотеки и закачки" + }, + "listenings": { + "description": "Доступ к истории прослушивания", + "label": "Прослушивания" + }, + "notifications": { + "description": "Доступ к уведомлениям", + "label": "Уведомления" + }, + "playlists": { + "description": "Доступ к спискам воспроизведения", + "label": "Списки воспроизведения" + }, + "profile": { + "description": "Доступ к электронной почте, имени пользователя и информации профиля", + "label": "Профиль" + }, + "radios": { + "description": "Доступ к радио", + "label": "Радио" + }, + "reports": { + "description": "Доступ к сообщениям для модераторов", + "label": "Жалобы" + }, + "security": { + "description": "Доступ к настройкам безопасности, таким как пароль и авторизация", + "label": "Безопасность" + } + } + } + }, + "moderation": { + "useEditConfigs": { + "album": { + "releaseDate": "Дата выпуска", + "title": "Название" + }, + "artist": { + "name": "Имя" + }, + "cover": { + "label": "Обложка" + }, + "description": { + "label": "Описание" + }, + "tags": { + "label": "Теги" + }, + "track": { + "copyright": "Копирайт", + "license": "Лицензия", + "position": "Позиция", + "title": "Название" + } + }, + "useReport": { + "account": { + "label": "Пожаловаться на {'@'}{username}", + "typeLabel": "Статус аккаунта" + }, + "album": { + "label": "Пожаловаться на этот альбом…", + "typeLabel": "Альбом" + }, + "artist": { + "label": "Пожаловаться на этого исполнителя…", + "typeLabel": "Исполнитель", + "unknownLabel": "Неизвестный исполнитель" + }, + "channel": { + "label": "Пожаловаться на этот канал…", + "typeLabel": "Канал" + }, + "library": { + "label": "Пожаловаться на эту библиотеку…", + "typeLabel": "Библиотека" + }, + "playlist": { + "label": "Пожаловаться на этот список воспроизведения…", + "typeLabel": "Список воспроизведения" + }, + "track": { + "label": "Пожаловаться на этот трек…", + "typeLabel": "Трек" + } + }, + "useReportConfigs": { + "account": { + "label": "Статус аккаунта", + "summary": "Биография" + }, + "album": { + "label": "Альбом", + "releaseDate": "Дата выпуска", + "title": "Название" + }, + "artist": { + "label": "Исполнитель" + }, + "channel": { + "label": "Канал" + }, + "creationDate": { + "label": "Дата создания" + }, + "library": { + "description": "Описание", + "label": "Библиотека" + }, + "musicbrainzId": { + "label": "Смотреть на MusicBrainz" + }, + "name": { + "label": "Имя" + }, + "playlist": { + "label": "Список воспроизведения" + }, + "tags": { + "label": "Теги" + }, + "track": { + "copyright": "Копирайт", + "label": "Трек", + "license": "Лицензия", + "position": "Позиция", + "title": "Название" + }, + "visibility": { + "label": "Видимость" + } + } + }, + "useErrorHandler": { + "errorReportMessage": "Помогите нам понять, почему это произошло, пожалуйста прикрепите детальное описание того, что вы делали, что вызвало ошибку.", + "errorReportTitle": "Произошла непредвиденная ошибка.", + "leaveFeedback": "Оставить отзыв", + "unexpectedError": "Произошла непредвиденная ошибка." + }, + "useThemeList": { + "browserDefault": "По умолчанию", + "darkTheme": "Темная", + "lightTheme": "Светлая" + } + }, + "init": { + "axios": { + "rateLimitDelay": "Вы отправили слишком много запросов и попали под временное ограничение, пожалуйста, попробуйте снова через { delay }", + "rateLimitLater": "Вы отправили слишком много запросов и попали под ограничение, пожалуйста, попробуйте позже" + }, + "sentry": { + "allow": "Разрешить", + "deny": "Отклонить", + "funkwhaleInstance": "Официальный узел Glitchtip Funkwhale", + "message": "Стек трассировки будет передан { 0 } чтобы помочь нам понять, как и когда произошла ошибка.", + "title": "Для улучшения качества нашего сервиса, мы бы хотели собирать информацию об ошибках во время вашей сессии." + }, + "serviceWorker": { + "actions": { + "later": "Позже", + "update": "Обновить" + }, + "newAppVersion": "Доступна новая версия этого приложения." } }, "views": { - "channels": { - "DetailBase": { - "meta": { - "episodes": "{ n } эпизод | { n } эпизода", - "listenings": "{ n } прослушивание | { n } прослушивания", - "subscribers": "{ n } подписчик | { n } подписчика", - "tracks": "{ n } трек | { n } трека" - }, - "link": { - "channelEpisodes": "Все Эпизоды", - "mirrored": "Зеркало с { domain }", - "moderation": "Открыть в режиме модерации", - "channelOverview": "Обзор", - "channelTracks": "Треки", - "domainView": "Посмотреть на { domain }" - }, - "header": { - "artistChannel": "Канал исполнителя", - "podcastChannel": "Канал подкастов" - }, - "button": { - "cancel": "Отмена", - "confirm": "Удалить", - "delete": "Удалить…", - "edit": "Редактировать…", - "embed": "Внедрить", - "play": "Проиграть", - "updateChannel": "Обновить канал", - "upload": "Загрузить" - }, - "title": "Канал", - "modal": { - "subscribe": { - "rss": { - "content": { - "help": "Скопируйте и вставьте эту ссылку в ваше приложение для подкастов:" - }, - "header": "Подписаться через RSS" - }, - "fediverse": { - "content": { - "help": "Если вы используете Mastodon или другие приложения Федиверса, вы можете подписаться на этот аккаунт:" - }, - "header": "Подписаться в Fediverse" - }, - "funkwhale": { - "header": "Подписаться на Funkwhale" - }, - "header": "Подписаться на этот канал" - }, - "delete": { - "header": "Удалить этот канал?", - "content": { - "warning": "Канал будет удалён вместе со связанными с ним файлами и данными. Это действие нельзя отменить." - } - }, - "embed": { - "header": "Внедрить произведения этого исполнителя на Ваш сайт" - } - } - }, - "DetailOverview": { - "link": { - "addAlbum": "Добавить новый", - "erroredUploads": "Посмотреть закачки с ошибками", - "skippedUploads": "Посмотреть пропущенные закачки" - }, - "header": { - "albums": "Альбомы", - "latestEpisodes": "Свежие эпизоды", - "latestTracks": "Последние треки", - "series": "Серии", - "uploadsFailure": "Некоторые закачки не получилось опубликовать", - "uploadsProcessing": "Закачки обрабатываются", - "uploadsSuccess": "Закачки успешно опубликованы" - }, - "meta": { - "progress": "Обработанные закачки:" - }, - "message": { - "processing": "Ваши закачки обрабатываются Funkwhale и будут доступны очень скоро." - } - }, - "SubscriptionsList": { - "link": { - "addNew": "Добавить новый" - }, - "button": { - "cancel": "Отмена", - "subscribe": "Подписаться" - }, - "placeholder": { - "search": "Фильтр по имени…" - }, - "title": "Подписки каналов", - "modal": { - "subscription": { - "header": "Подписка" - } - } - } - }, - "content": { - "libraries": { - "Card": { - "meta": { - "tracks": "{ n } трек | { n } трека" - }, - "link": { - "details": "Информация о библиотеке" - }, - "label": { - "size": "Суммарный размер файлов в этой библиотеке" - }, - "button": { - "upload": "Загрузить" - } - }, - "Quota": { - "label": { - "currentUsage": "{ current } использовано из доступных { max }", - "errored": "Ошибочные файлы", - "pending": "Ожидающие файлы", - "skipped": "Пропущенные файлы" - }, - "header": { - "currentUsage": "Текущее использование" - }, - "loading": { - "currentUsage": "Загружаем данные об использовании…" - }, - "button": { - "purge": "Очистить" - }, - "modal": { - "purgeErrored": { - "header": "Очистить ошибочные файлы?", - "content": { - "description": "Это удалит треки которые были загружены но ещё не обработаны. Файлы будут полностью удалены и свободное место увеличится." - } - }, - "purgePending": { - "header": "Очистить ожидающие файлы?", - "content": { - "description": "Это удалит треки которые были загружены но ещё не обработаны. Файлы будут полностью удалены, увеличив доступную квоту." - } - }, - "purgeSkipped": { - "header": "Очистить пропущенные файлы?", - "content": { - "description": "Это удалит треки которые были загружены, но пропущены при импорте. Файлы будут полностью удалены и свободное место увеличится." - } - } - }, - "link": { - "viewFiles": "Просмотреть файлы" - } - }, - "FilesTable": { - "table": { - "file": { - "header": { - "album": "Альбом", - "artist": "Исполнитель", - "duration": "Длительность", - "importStatus": "Статус импорта", - "size": "Размер", - "title": "Название", - "uploadDate": "Дата загрузки" - } - } - }, - "option": { - "status": { - "all": "Все", - "draft": "Черновик", - "failed": "Ошибки", - "finished": "Завершено", - "pending": "Ожидает", - "skipped": "Пропущено" - } - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "action": { - "delete": "Удалить", - "restartImport": "Перезапустить импорт" - }, - "label": { - "importStatus": "Статус импорта", - "search": "Поиск" - }, - "notApplicable": "Н/Д", - "empty": { - "noTracks": "В эту библиотеку ещё не добавлены треки" - }, - "placeholder": { - "search": "Искать по названию, исполнителю, альбому…" - }, - "button": { - "showStatus": "Показать информацию о статусе закачки этого трека" - }, - "pagination": { - "results": "Показаны результаты { start }-{ end } из { total }" - } - }, - "Home": { - "link": { - "createLibrary": "Создать новую библиотеку" - }, - "loading": { - "libraries": "Загружаем Библиотеки…" - }, - "empty": { - "noLibrary": "Похоже у Вас ещё нет ни одной библиотеки, самое время создать её." - }, - "header": { - "libraries": "Мои библиотеки" - } - }, - "Form": { - "button": { - "create": "Создать библиотеку", - "delete": "Удалить", - "confirm": "Удалить библиотеку", - "update": "Обновить библиотеку" - }, - "modal": { - "delete": { - "header": "Удалить эту библиотеку?", - "content": { - "warning": "Библиотека и все треки в ней будут удалены. Это действие необратимо." - } - } - }, - "label": { - "description": "Описание", - "name": "Имя", - "visibility": "Видимость" - }, - "header": { - "failure": "Ошибка" - }, - "description": { - "library": "Библиотеки помогают организовывать Ваши музыкальные коллекции и делиться ими. Вы можете загружать Вашу музыку на Funkwhale и делиться ею с Вашими друзьями и семьёй.", - "visibility": "Вы сможете делиться Вашей библиотекой с другими людьми независимо от её видимости." - }, - "message": { - "libraryCreated": "Библиотека создана", - "libraryDeleted": "Библиотека удалена", - "libraryUpdated": "Библиотека обновлена" - }, - "placeholder": { - "name": "Моя замечательная библиотека", - "description": "Эта библиотека содержит мою личную коллекцию музыки, надеюсь она Вам понравится." - } - } - }, - "remote": { - "Card": { - "meta": { - "tracks": "{ n } трек | { n } трека", - "failedTracks": "Ошибочные треки:", - "lastUpdate": "Последнее обновление:" - }, - "modal": { - "unfollow": { - "content": { - "warning": "Отписавшись от этой библиотеки, Вы потеряете доступ к её содержимому." - }, - "header": "Отписаться от этой библиотеки?" - } - }, - "button": { - "cancel": "Отменить запрос на подписку", - "follow": "Подписаться", - "pending": "Подписка требует подтверждения", - "unfollow": "Отписаться" - }, - "link": { - "scanDetails": "Подробности", - "scan": "Сканировать сейчас" - }, - "label": { - "scanFailure": "Ошибка во время сканирования", - "scanPending": "Ожидание сканирования", - "scanSuccess": "Просканировано", - "scanPartialSuccess": "Просканировано с ошибками", - "scanProgress": "Сканирование… ({ progress }%)", - "sharingLink": "Поделиться ссылкой" - }, - "message": { - "scanLaunched": "Сканирование запущено", - "scanSkipped": "Сканирование пропущено (предыдущее сканирование было совсем недавно)" - }, - "tooltip": { - "private": "Это личная библиотека и для доступа к ней необходимо получить разрешение владельца", - "public": "Это публичная библиотека и у Вас есть свободный доступ к её содержимому" - } - }, - "ScanForm": { - "header": { - "failure": "Ошибка во время загрузки удалённой библиотеки" - }, - "placeholder": { - "url": "Введите URL библиотеки" - }, - "label": { - "search": "Искать в удалённой библиотеке" - }, - "button": { - "submit": "Искать" - } - }, - "Home": { - "header": { - "knownLibraries": "Известные библиотеки", - "remoteLibraries": "Удалённые библиотеки" - }, - "loading": { - "remoteLibraries": "Загружаем удалённые библиотеки…" - }, - "button": { - "refresh": "Обновить" - }, - "description": { - "remoteLibraries": "Удалёнными библиотеками владеют другие пользователи в сети. Вы можете получить к ним доступ если они публичны или Вам предоставлен доступ." - } - } - }, - "Home": { - "title": "Добавить или управлять содержимым", - "description": { - "follow": "Вы можете подписаться на библиотеки других пользователей чтобы получать доступ к новой музыке. На публичные библиотеки можно подписаться сразу, в то время как подписка на приватную библиотеку требует подтверждения владельца.", - "channel": { - "1": "Если вы музыкант или подкастер, то каналы созданы для вас!", - "2": "Делитесь вашим творчеством и получайте подписчиков с Funkwhale, Fediverse или из любых приложений для подкастов." - }, - "upload": "Загрузите свою личную музыкальную библиотеку в Funkwhale, чтобы наслаждаться ей откуда угодно и делиться ей с друзьями и семьей." - }, - "header": { - "follow": "Подписаться на удалённые библиотеки", - "channel": "Публикуйте ваше творчество в канале", - "upload": "Загрузить сторонний контент в библиотеку" - }, - "button": { - "start": "Начать" - }, - "help": { - "uploadQuota": "Этот узел предоставляет до {quota} дискового пространства каждому пользователю." - } - }, - "Base": { - "title": "Добавить содержимое", - "link": { - "libraries": "Библиотеки", - "tracks": "Треки" - }, - "menu": { - "secondary": "Дополнительное меню" - } - } - }, - "library": { - "LibraryBase": { - "meta": { - "tracks": "{ n } трек | { n } трека" - }, - "link": { - "albums": "Альбомы", - "artists": "Исполнители", - "moderation": "Открыть в режиме модерации", - "owner": "Владелец { username }", - "tracks": "Треки", - "domain": "Посмотреть на { domain }" - }, - "button": { - "edit": "Редактировать", - "upload": "Загрузить" - }, - "title": "Библиотека", - "label": { - "private": "Личное", - "public": "Публично", - "instance": "Ограничено", - "sharingLink": "Поделиться ссылкой" - }, - "description": { - "sharingLink": "Поделитесь этой ссылкой с другими пользователями чтобы они могли запросить доступ к вашей библиотеке, вставив её в поле поиска на своём узле." - }, - "tooltip": { - "private": "Это личная библиотека и для доступа к ней необходимо получить разрешение владельца", - "public": "Это публичная библиотека и у Вас есть свободный доступ к её содержимому", - "instance": "Эта библиотека открыта только пользователям этого узла" - } - }, - "Edit": { - "button": { - "accept": "Принять", - "reject": "Отклонить" - }, - "table": { - "action": { - "status": { - "accepted": "Подтверждено", - "pending": "Ожидает подтверждения", - "rejected": "Отклонено" - }, - "header": { - "action": "Действие", - "date": "Дата", - "status": "Статус", - "user": "Пользователь" - } - } - }, - "header": { - "followers": "Подписчики", - "libraryContents": "Содержимое библиотеки" - }, - "loading": { - "followers": "Загружаем подписчиков…" - }, - "empty": { - "noFollowers": "Никто не подписан на эту библиотеку" - } - }, - "DetailAlbums": { - "empty": { - "upload": "Эта библиотека пуста, загрузите что-нибудь в неё!", - "follow": "Вам может потребоваться подписаться на эту библиотеку, чтобы увидеть её содержимое." - } - }, - "DetailOverview": { - "empty": { - "upload": "Эта библиотека пуста, загрузите что-нибудь в неё!", - "follow": "Вам может потребоваться подписаться на эту библиотеку, чтобы увидеть её содержимое." - } - }, - "DetailTracks": { - "empty": { - "upload": "Эта библиотека пуста, загрузите что-нибудь в неё!", - "follow": "Вам может потребоваться подписаться на эту библиотеку, чтобы увидеть её содержимое." - } - } - }, - "auth": { - "ProfileBase": { - "title": "Профиль { username }", - "link": { - "activity": "Активность", - "moderation": "Открыть в режиме модерации", - "overview": "Обзор", - "domainView": "Посмотреть на { domain }" - }, - "label": { - "self": "Это Вы!" - } - }, - "PasswordReset": { - "label": { - "email": "Электронная почта" - }, - "button": { - "requestReset": "Сбросить пароль" - }, - "link": { - "back": "Назад ко входу" - }, - "placeholder": { - "email": "Введите адрес электронной почты, связанный с Вашим аккаунтом" - }, - "header": { - "failure": "Ошибка во время запроса сброса пароля", - "reset": "Сбросить ваш пароль" - }, - "title": "Сбросить ваш пароль", - "help": { - "form": "Используйте эту форму чтобы запросить сброс пароля. Мы вышлем письмо на указанный адрес с инструкциями по сбросу вашего пароля." - } - }, - "ProfileOverview": { - "link": { - "addNew": "Добавить новый" - }, - "modal": { - "createChannel": { - "artist": { - "header": "Канал исполнителя" - }, - "header": "Создать канал", - "podcast": { - "header": "Канал подкастов" - } - } - }, - "button": { - "cancel": "Отмена", - "createChannel": "Создать канал", - "next": "Следующий шаг", - "previous": "Предыдущий шаг" - }, - "header": { - "channels": "Каналы", - "sharedLibraries": "Этот пользователь поделился следующими библиотеками", - "libraries": "Пользовательские библиотеки" - } - }, - "PasswordResetConfirm": { - "link": { - "back": "Назад ко входу", - "login": "Перейти ко входу" - }, - "title": "Сменить Ваш пароль", - "header": { - "failure": "Ошибка во время изменения Вашего пароля", - "success": "Пароль успешно обновлён" - }, - "message": { - "requestSent": "Если указанный на предыдущем шаге адрес электронной почты правильный и привязан к пользовательскому аккаунту, то вы должны получить письмо с инструкциями по сбросу в течение нескольких минут.", - "success": "Ваш пароль был успешно обновлён." - }, - "label": { - "newPassword": "Новый пароль" - }, - "button": { - "update": "Обновите Ваш пароль" - } - }, - "EmailConfirm": { - "title": "Подтвердить Ваш адрес электронной почты", - "label": { - "confirmationCode": "Код подтверждения" - }, - "header": { - "failure": "Не удалось подтвердить Ваш адрес электронной почты", - "success": "Адрес электронной почты подтверждён" - }, - "link": { - "login": "Перейти ко входу", - "back": "Назад ко входу" - }, - "message": { - "success": "Теперь Вы можете пользоваться сервисом без ограничений." - } - }, - "Signup": { - "header": { - "createAccount": "Создать аккаунт Funkwhale" - }, - "title": "Регистрация" - }, - "Login": { - "title": "Вход", - "header": { - "login": "Войти в Ваш аккаунт Funkwhale" - } - }, - "Callback": { - "header": { - "loggingIn": "Входим…" - } - }, - "Plugins": { - "title": "Управлять плагинами" - }, - "ProfileActivity": { - "header": { - "playlists": "Списки воспроизведения", - "recentlyFavorited": "Недавно добавленные в избранное", - "recentlyListened": "Недавно прослушанные" - } - } - }, "Notifications": { + "button": { + "read": "Отметить все как прочитанные", + "submit": "Ясно!" + }, + "empty": { + "notifications": "Нет уведомлений" + }, + "header": { + "funkwhaleSupport": "Вам нравится Funkwhale?", + "instanceSupport": "Поддержать этот узел Funkwhale", + "messages": "Ваши сообщения", + "notifications": "Ваши уведомления" + }, + "label": { + "reminder": "Напомнить мне через:", + "showRead": "Показывать прочитанные уведомления" + }, + "link": { + "donate": "Поддержать", + "help": "Другие способы помочь" + }, + "loading": { + "notifications": "Загружаем уведомления…" + }, + "message": { + "funkwhaleSupport": "Мы заметили, Вы уже давно с нами. Если Funkwhale Вам полезен, Вы можете помочь нам сделать его ещё лучше!" + }, "option": { "delay": { "30": "30 дней", @@ -3461,584 +3274,63 @@ "never": "Никогда" } }, - "link": { - "help": "Другие способы помочь", - "donate": "Поддержать" + "title": "Уведомления" + }, + "Search": { + "button": { + "submit": "Отправить поисковый запрос" }, "header": { - "funkwhaleSupport": "Вам нравится Funkwhale?", - "instanceSupport": "Поддержать этот узел Funkwhale", - "messages": "Ваши сообщения", - "notifications": "Ваши уведомления" + "remote": "Найти удалённый объект", + "rss": "Подписаться на подкаст через RSS", + "search": "Поиск" }, - "button": { - "submit": "Ясно!", - "read": "Отметить все как прочитанные" - }, - "loading": { - "notifications": "Загружаем уведомления…" - }, - "empty": { - "notifications": "Нет уведомлений." - }, - "title": "Уведомления", "label": { - "reminder": "Напомнить мне через:", - "showRead": "Показывать прочитанные уведомления" - }, - "message": { - "funkwhaleSupport": "Мы заметили, Вы уже давно с нами. Если Funkwhale Вам полезен, Вы можете помочь нам сделать его ещё лучше!" + "albums": "Альбомы", + "artists": "Исполнители", + "playlists": "Списки воспроизведения", + "podcasts": "Подкасты", + "radios": "Радио", + "series": "Серии", + "tags": "Теги", + "tracks": "Треки" } }, "admin": { - "moderation": { - "AccountsDetail": { - "table": { - "accountData": { - "username": "Имя пользователя", - "loginStatus": { - "disabled": "Отключено", - "enabled": "Включено", - "label": "Статус аккаунта" - }, - "displayName": "Видимое имя", - "email": "Адрес электронной почты", - "lastActivity": "Последняя активность", - "lastChecked": "Последнее обновление", - "permissions": "Разрешения", - "signupDate": "Дата регистрации", - "userType": "Тип" - }, - "audioContent": { - "cachedSize": "Размер в кэше", - "megabyte": "МБ", - "totalSize": "Общий размер", - "uploadQuota": "Квота загрузки" - }, - "activity": { - "emittedFollows": "Исходящие подписки на библиотеки", - "emittedMessages": "Исходящие сообщения", - "firstSeen": "Впервые увиден", - "receivedFollows": "Полученные подписки на библиотеку" - } - }, - "header": { - "accountData": "Данные аккаунта", - "activity": "Активность", - "audioContent": "Музыкальный контент", - "localAccount": "Мой аккаунт", - "activePolicy": "К этому домену применяются особые правила модерации", - "noPolicy": "У Вас нет установленных правил для этого аккаунта." - }, - "button": { - "addPolicy": "Добавить политику модерации" - }, - "link": { - "albums": "Альбомы", - "artists": "Исполнители", - "channels": "Каналы", - "domain": "Домен", - "libraries": "Библиотеки", - "linkedReports": "Связанные жалобы", - "openProfile": "Открыть профиль", - "remoteProfile": "Открыть удалённый профиль", - "requests": "Запросы", - "tracks": "Треки", - "uploads": "Закачки", - "django": "Посмотреть в админке Django" - }, - "tooltip": { - "uploadQuota": "Выберите как много содержимого пользователь может загрузить. Оставьте пустым, чтобы использовать значение по умолчанию для данного узла." - }, - "option": { - "permission": { - "library": "Библиотека", - "moderation": "Модерация", - "settings": "Настройки" - } - }, - "description": { - "policy": "Политики модерации позволяют Вам управлять тем, как Ваш узел взаимодействует с определённым доменом или аккаунтом." - }, - "notApplicable": "Н/Д", - "warning": { - "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" - } - }, - "Base": { - "link": { - "accounts": "Аккаунты", - "domains": "Домены", - "reports": "Жалобы", - "userRequests": "Запросы пользователя" - }, - "title": "Модерация", - "menu": { - "secondary": "Дополнительное меню" - } - }, - "DomainsDetail": { - "header": { - "activity": "Активность", - "audioContent": "Музыкальный контент", - "instanceData": "Данные узла", - "activePolicy": "К этому домену применяются особые правила модерации", - "noPolicy": "У Вас нет установленных правил для этого домена." - }, - "button": { - "addPolicy": "Добавить политику модерации", - "addToAllowList": "Добавить в \"белый\" список", - "refreshNodeInfo": "Обновить информацию узла", - "removeFromAllowList": "Удалить из \"белого\" списка" - }, - "link": { - "albums": "Альбомы", - "artists": "Исполнители", - "channels": "Каналы", - "knownAccounts": "Известные аккаунты", - "libraries": "Библиотеки", - "website": "Официальный веб-сайт", - "tracks": "Треки", - "uploads": "Закачки", - "django": "Посмотреть в админке Django" - }, - "table": { - "audioContent": { - "cachedSize": "Размер в кэше", - "totalSize": "Общий размер" - }, - "activity": { - "emittedFollows": "Исходящие подписки на библиотеки", - "emittedMessages": "Исходящие сообщения", - "firstSeen": "Впервые увиден", - "receivedFollows": "Полученные подписки на библиотеку" - }, - "instanceData": { - "nodeInfoStatus": { - "value": "Ошибка при запросе данных узла", - "label": "Статус" - }, - "inAllowList": { - "label": "Присутствует в \"белом\" списке", - "false": "Нет", - "true": "Да" - }, - "lastChecked": "Последнее обновление", - "domainName": "Имя", - "software": { - "label": "Программное обеспечение" - }, - "totalUsers": "Всего пользователей" - } - }, - "description": { - "policy": "Политики модерации позволяют Вам управлять тем, как Ваш узел взаимодействует с определённым доменом или аккаунтом." - }, - "notApplicable": "Н/Д", - "warning": { - "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" - } - }, - "DomainsList": { - "button": { - "add": "Добавить" - }, - "label": { - "addDomain": "Добавить домен", - "addToAllowList": "Добавить в \"белый\" список" - }, - "title": "Домены", - "header": { - "domains": "Домены", - "failure": "Ошибка во время создания домена" - } - }, - "ReportsList": { - "option": { - "status": { - "all": "Все", - "resolved": "Решено", - "unresolved": "Нерешённые" - } - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "title": "Жалобы", - "header": { - "reports": "Жалобы" - }, - "label": { - "search": "Поиск", - "status": "Статус" - }, - "placeholder": { - "search": "Искать по учетной записи, примечанию, домену…" - } - }, - "RequestsList": { - "option": { - "status": { - "all": "Все", - "approved": "Одобрено", - "pending": "Ожидает", - "refused": "Отказано" - } - }, - "ordering": { - "direction": { - "ascending": "По возрастанию", - "descending": "По убыванию", - "label": "Порядок" - }, - "label": "Порядок" - }, - "label": { - "search": "Поиск", - "status": "Статус" - }, - "placeholder": { - "search": "Искать по имени…" - }, - "title": "Запросы пользователя", - "header": { - "userRequests": "Запросы пользователя" - } - } - }, - "library": { - "UploadDetail": { - "table": { - "activity": { - "accessedDate": "Время доступа", - "firstSeen": "Впервые увиден" - }, - "audioContent": { - "bitrate": { - "label": "Битрейт" - }, - "cachedSize": "Размер в кэше", - "duration": "Длительность", - "size": "Размер", - "track": "Трек" - }, - "upload": { - "name": "Имя" - } - }, - "link": { - "account": "Статус аккаунта", - "domain": "Домен", - "importStatus": "Статус импорта", - "library": "Библиотека", - "remoteProfile": "Открыть удалённый профиль", - "type": "Тип", - "django": "Посмотреть в админке Django", - "visibility": "Видимость" - }, - "header": { - "activity": "Активность", - "audioContent": "Музыкальный контент", - "local": "Местное", - "uploadData": "Дата загрузки" - }, - "button": { - "delete": "Удалить", - "download": "Скачать" - }, - "modal": { - "delete": { - "header": "Удалить эту закачку?", - "content": { - "warning": "Закачка будет удалена. Это действие нельзя отменить." - } - } - }, - "notApplicable": "Н/Д" - }, - "LibraryDetail": { - "link": { - "account": "Статус аккаунта", - "albums": "Альбомы", - "artists": "Исполнители", - "domain": "Домен", - "reports": "Связанные жалобы", - "remoteProfile": "Открыть удалённый профиль", - "tracks": "Треки", - "uploads": "Закачки", - "django": "Посмотреть в админке Django", - "visibility": "Видимость" - }, - "header": { - "activity": "Активность", - "audioContent": "Музыкальный контент", - "libraryData": "Данные библиотеки", - "local": "Местное" - }, - "table": { - "audioContent": { - "cachedSize": "Размер в кэше", - "totalSize": "Общий размер" - }, - "library": { - "description": "Описание", - "name": "Имя" - }, - "activity": { - "firstSeen": "Впервые увиден", - "followers": "Подписчики" - } - }, - "button": { - "delete": "Удалить" - }, - "modal": { - "delete": { - "header": "Удалить эту библиотеку?", - "content": { - "warning": "Библиотека будет удалена вместе со связанными с ней закачками и подписками. Это действие нельзя отменить." - } - } - }, - "warning": { - "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" - } - }, - "AlbumDetail": { - "header": { - "activity": "Активность", - "albumData": "Данные альбома", - "audioContent": "Музыкальный контент", - "local": "Местное" - }, - "link": { - "artist": "Исполнитель", - "domain": "Домен", - "edits": "Правки", - "libraries": "Библиотеки", - "reports": "Связанные жалобы", - "localProfile": "Открыть локальный профиль", - "musicbrainz": "Смотреть на MusicBrainz", - "remoteProfile": "Открыть удалённый профиль", - "tracks": "Треки", - "uploads": "Закачки", - "django": "Посмотреть в админке Django" - }, - "table": { - "audioContent": { - "cachedSize": "Размер в кэше", - "totalSize": "Общий размер" - }, - "album": { - "description": "Описание", - "title": "Название" - }, - "activity": { - "favorited": "Избранные треки", - "firstSeen": "Впервые увиден", - "listenings": "Прослушивания", - "playlists": "Списки воспроизведения" - } - }, - "button": { - "delete": "Удалить", - "edit": "Редактировать", - "remoteRefresh": "Обновить с удалённого сервера" - }, - "modal": { - "delete": { - "header": "Удалить этот альбом?", - "content": { - "warning": "Альбом будет удалён вместе со связанными с ним закачками, треками, избранным и историей прослушивания. Это действие нельзя отменить." - } - } - }, - "warning": { - "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" - } - }, - "ArtistDetail": { - "header": { - "activity": "Активность", - "artistData": "Данные исполнителя", - "audioContent": "Музыкальный контент", - "local": "Местное" - }, - "link": { - "albums": "Альбомы", - "category": "Категория", - "domain": "Домен", - "edits": "Правки", - "libraries": "Библиотеки", - "reports": "Связанные жалобы", - "localProfile": "Открыть локальный профиль", - "musicbrainz": "Смотреть на MusicBrainz", - "remoteProfile": "Открыть удалённый профиль", - "tracks": "Треки", - "uploads": "Закачки", - "django": "Посмотреть в админке Django" - }, - "table": { - "audioContent": { - "cachedSize": "Размер в кэше", - "totalSize": "Общий размер" - }, - "artist": { - "description": "Описание", - "name": "Имя" - }, - "activity": { - "favorited": "Избранные треки", - "firstSeen": "Впервые увиден", - "listenings": "Прослушивания", - "playlists": "Списки воспроизведения" - } - }, - "button": { - "delete": "Удалить", - "edit": "Редактировать", - "remoteRefresh": "Обновить с удалённого сервера" - }, - "modal": { - "delete": { - "header": "Удалить этого исполнителя?", - "content": { - "warning": "Исполнитель будет удалён вместе со связанными с ним закачками, треками, альбомами, избранным и историей прослушивания. Это действие нельзя отменить." - } - } - }, - "warning": { - "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" - } - }, - "TagDetail": { - "header": { - "activity": "Активность", - "audioContent": "Музыкальный контент", - "tagData": "Теги" - }, - "link": { - "albums": "Альбомы", - "artists": "Исполнители", - "localProfile": "Открыть локальный профиль", - "tracks": "Треки", - "django": "Посмотреть в админке Django" - }, - "button": { - "delete": "Удалить" - }, - "modal": { - "delete": { - "header": "Удалить этот тег?", - "content": { - "warning": "Тег будет отвязан от всех существующих объектов и удалён. Это действие нельзя отменить." - } - } - }, - "table": { - "activity": { - "firstSeen": "Впервые увиден" - }, - "tag": { - "name": "Имя" - } - } - }, - "TrackDetail": { - "header": { - "activity": "Активность", - "local": "Местное", - "trackData": "Данные трека" - }, - "link": { - "album": "Альбом", - "albumArtist": "Исполнитель альбома", - "artist": "Исполнитель", - "domain": "Домен", - "edits": "Правки", - "libraries": "Библиотеки", - "reports": "Связанные жалобы", - "localProfile": "Открыть локальный профиль", - "musicbrainz": "Смотреть на MusicBrainz", - "remoteProfile": "Открыть удалённый профиль", - "uploads": "Закачки", - "django": "Посмотреть в админке Django" - }, - "table": { - "trackData": { - "cachedSize": "Размер в кэше", - "totalSize": "Общий размер" - }, - "track": { - "copyright": "Копирайт", - "description": "Описание", - "discNumber": "Номер диска", - "license": "Лицензия", - "position": "Позиция", - "title": "Название" - }, - "activity": { - "favorited": "Избранные треки", - "firstSeen": "Впервые увиден", - "listenings": "Прослушивания", - "playlists": "Списки воспроизведения" - } - }, - "button": { - "delete": "Удалить", - "edit": "Редактировать", - "remoteRefresh": "Обновить с удалённого сервера" - }, - "modal": { - "delete": { - "header": "Удалить этот трек?", - "content": { - "warning": "Трек будет удалён вместе со связанными закачками, избранным и историей прослушивания. Это действие нельзя отменить." - } - } - }, - "warning": { - "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" - } - }, - "Base": { - "link": { - "albums": "Альбомы", - "artists": "Исполнители", - "channels": "Каналы", - "edits": "Правки", - "libraries": "Библиотеки", - "tags": "Теги", - "tracks": "Треки", - "uploads": "Закачки" - }, - "title": "Управление библиотекой", - "menu": { - "secondary": "Дополнительное меню" - } - }, - "EditsList": { - "title": "Правки", - "header": { - "edits": "Правки библиотеки" - } - } - }, "ChannelDetail": { + "button": { + "delete": "Удалить", + "openRemote": "Открыть удалённый профиль", + "refresh": "Обновить с удалённого сервера" + }, + "header": { + "activity": "Активность", + "audioContent": "Музыкальный контент", + "channelData": "Данные канала" + }, + "label": { + "local": "Местное" + }, + "link": { + "django": "Посмотреть в админке Django", + "localProfile": "Открыть локальный профиль" + }, + "modal": { + "delete": { + "content": { + "warning": "Канал будет удалён вместе со связанными с ним закачками, треками и альбомами. Это действие нельзя отменить." + }, + "header": "Удалить этот канал?" + } + }, "table": { - "channelData": { - "account": "Статус аккаунта", - "category": "Категория", - "description": "Описание", - "domain": "Домен", - "name": "Имя", - "rss": "RSS поток", - "url": "URL" + "activity": { + "edits": "Правки", + "favorited": "Избранные треки", + "firstSeen": "Впервые увиден", + "linkedReports": "Связанные жалобы", + "listenings": "Прослушивания", + "playlists": "Списки воспроизведения" }, "audioContent": { "albums": "Альбомы", @@ -4047,40 +3339,16 @@ "tracks": "Треки", "uploads": "Закачки" }, - "activity": { - "edits": "Правки", - "favorited": "Избранные треки", - "firstSeen": "Впервые увиден", - "linkedReports": "Связанные жалобы", - "listenings": "Прослушивания", - "playlists": "Списки воспроизведения" + "channelData": { + "account": "Статус аккаунта", + "category": "Категория", + "description": "Описание", + "domain": "Домен", + "name": "Имя", + "rss": "RSS поток", + "url": "URL" } }, - "header": { - "activity": "Активность", - "audioContent": "Музыкальный контент", - "channelData": "Данные канала" - }, - "button": { - "delete": "Удалить", - "openRemote": "Открыть удалённый профиль", - "refresh": "Обновить с удалённого сервера" - }, - "modal": { - "delete": { - "header": "Удалить этот канал?", - "content": { - "warning": "Канал будет удалён вместе со связанными с ним закачками, треками и альбомами. Это действие нельзя отменить." - } - } - }, - "label": { - "local": "Местное" - }, - "link": { - "localProfile": "Открыть локальный профиль", - "django": "Посмотреть в админке Django" - }, "warning": { "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" } @@ -4104,53 +3372,1205 @@ "channels": "Каналы", "federation": "Федерация", "instanceInfo": "Информация об узле", - "settings": "Настройки узла", "moderation": "Модерация", "music": "Музыка", "playlists": "Списки воспроизведения", "sections": "Разделы", "security": "Безопасность", + "settings": "Настройки узла", "signups": "Регистрации", "stats": "Статистика", "subsonic": "Subsonic", "ui": "Интерфейс пользователя" } }, + "library": { + "AlbumDetail": { + "button": { + "delete": "Удалить", + "edit": "Редактировать", + "remoteRefresh": "Обновить с удалённого сервера" + }, + "header": { + "activity": "Активность", + "albumData": "Данные альбома", + "audioContent": "Музыкальный контент", + "local": "Местное" + }, + "link": { + "artist": "Исполнитель", + "django": "Посмотреть в админке Django", + "domain": "Домен", + "edits": "Правки", + "libraries": "Библиотеки", + "localProfile": "Открыть локальный профиль", + "musicbrainz": "Смотреть на MusicBrainz", + "remoteProfile": "Открыть удалённый профиль", + "reports": "Связанные жалобы", + "tracks": "Треки", + "uploads": "Закачки" + }, + "modal": { + "delete": { + "content": { + "warning": "Альбом будет удалён вместе со связанными с ним закачками, треками, избранным и историей прослушивания. Это действие нельзя отменить." + }, + "header": "Удалить этот альбом?" + } + }, + "table": { + "activity": { + "favorited": "Избранные треки", + "firstSeen": "Впервые увиден", + "listenings": "Прослушивания", + "playlists": "Списки воспроизведения" + }, + "album": { + "description": "Описание", + "title": "Название" + }, + "audioContent": { + "cachedSize": "Размер в кэше", + "totalSize": "Общий размер" + } + }, + "warning": { + "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" + } + }, + "ArtistDetail": { + "button": { + "delete": "Удалить", + "edit": "Редактировать", + "remoteRefresh": "Обновить с удалённого сервера" + }, + "header": { + "activity": "Активность", + "artistData": "Данные исполнителя", + "audioContent": "Музыкальный контент", + "local": "Местное" + }, + "link": { + "albums": "Альбомы", + "category": "Категория", + "django": "Посмотреть в админке Django", + "domain": "Домен", + "edits": "Правки", + "libraries": "Библиотеки", + "localProfile": "Открыть локальный профиль", + "musicbrainz": "Смотреть на MusicBrainz", + "remoteProfile": "Открыть удалённый профиль", + "reports": "Связанные жалобы", + "tracks": "Треки", + "uploads": "Закачки" + }, + "modal": { + "delete": { + "content": { + "warning": "Исполнитель будет удалён вместе со связанными с ним закачками, треками, альбомами, избранным и историей прослушивания. Это действие нельзя отменить." + }, + "header": "Удалить этого исполнителя?" + } + }, + "table": { + "activity": { + "favorited": "Избранные треки", + "firstSeen": "Впервые увиден", + "listenings": "Прослушивания", + "playlists": "Списки воспроизведения" + }, + "artist": { + "description": "Описание", + "name": "Имя" + }, + "audioContent": { + "cachedSize": "Размер в кэше", + "totalSize": "Общий размер" + } + }, + "warning": { + "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" + } + }, + "Base": { + "link": { + "albums": "Альбомы", + "artists": "Исполнители", + "channels": "Каналы", + "edits": "Правки", + "libraries": "Библиотеки", + "tags": "Теги", + "tracks": "Треки", + "uploads": "Закачки" + }, + "menu": { + "secondary": "Дополнительное меню" + }, + "title": "Управление библиотекой" + }, + "EditsList": { + "header": { + "edits": "Правки библиотеки" + }, + "title": "Правки" + }, + "LibraryDetail": { + "button": { + "delete": "Удалить" + }, + "header": { + "activity": "Активность", + "audioContent": "Музыкальный контент", + "libraryData": "Данные библиотеки", + "local": "Местное" + }, + "link": { + "account": "Статус аккаунта", + "albums": "Альбомы", + "artists": "Исполнители", + "django": "Посмотреть в админке Django", + "domain": "Домен", + "remoteProfile": "Открыть удалённый профиль", + "reports": "Связанные жалобы", + "tracks": "Треки", + "uploads": "Закачки", + "visibility": "Видимость" + }, + "modal": { + "delete": { + "content": { + "warning": "Библиотека будет удалена вместе со связанными с ней закачками и подписками. Это действие нельзя отменить." + }, + "header": "Удалить эту библиотеку?" + } + }, + "table": { + "activity": { + "firstSeen": "Впервые увиден", + "followers": "Подписчики" + }, + "audioContent": { + "cachedSize": "Размер в кэше", + "totalSize": "Общий размер" + }, + "library": { + "description": "Описание", + "name": "Имя" + } + }, + "warning": { + "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" + } + }, + "TagDetail": { + "button": { + "delete": "Удалить" + }, + "header": { + "activity": "Активность", + "audioContent": "Музыкальный контент", + "tagData": "Теги" + }, + "link": { + "albums": "Альбомы", + "artists": "Исполнители", + "django": "Посмотреть в админке Django", + "localProfile": "Открыть локальный профиль", + "tracks": "Треки" + }, + "modal": { + "delete": { + "content": { + "warning": "Тег будет отвязан от всех существующих объектов и удалён. Это действие нельзя отменить." + }, + "header": "Удалить этот тег?" + } + }, + "table": { + "activity": { + "firstSeen": "Впервые увиден" + }, + "tag": { + "name": "Имя" + } + } + }, + "TrackDetail": { + "button": { + "delete": "Удалить", + "edit": "Редактировать", + "remoteRefresh": "Обновить с удалённого сервера" + }, + "header": { + "activity": "Активность", + "local": "Местное", + "trackData": "Данные трека" + }, + "link": { + "album": "Альбом", + "albumArtist": "Исполнитель альбома", + "artist": "Исполнитель", + "django": "Посмотреть в админке Django", + "domain": "Домен", + "edits": "Правки", + "libraries": "Библиотеки", + "localProfile": "Открыть локальный профиль", + "musicbrainz": "Смотреть на MusicBrainz", + "remoteProfile": "Открыть удалённый профиль", + "reports": "Связанные жалобы", + "uploads": "Закачки" + }, + "modal": { + "delete": { + "content": { + "warning": "Трек будет удалён вместе со связанными закачками, избранным и историей прослушивания. Это действие нельзя отменить." + }, + "header": "Удалить этот трек?" + } + }, + "table": { + "activity": { + "favorited": "Избранные треки", + "firstSeen": "Впервые увиден", + "listenings": "Прослушивания", + "playlists": "Списки воспроизведения" + }, + "track": { + "copyright": "Копирайт", + "description": "Описание", + "discNumber": "Номер диска", + "license": "Лицензия", + "position": "Позиция", + "title": "Название" + }, + "trackData": { + "cachedSize": "Размер в кэше", + "totalSize": "Общий размер" + } + }, + "warning": { + "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" + } + }, + "UploadDetail": { + "button": { + "delete": "Удалить", + "download": "Скачать" + }, + "header": { + "activity": "Активность", + "audioContent": "Музыкальный контент", + "local": "Местное", + "uploadData": "Дата загрузки" + }, + "link": { + "account": "Статус аккаунта", + "django": "Посмотреть в админке Django", + "domain": "Домен", + "importStatus": "Статус импорта", + "library": "Библиотека", + "remoteProfile": "Открыть удалённый профиль", + "type": "Тип", + "visibility": "Видимость" + }, + "modal": { + "delete": { + "content": { + "warning": "Закачка будет удалена. Это действие нельзя отменить." + }, + "header": "Удалить эту закачку?" + } + }, + "notApplicable": "Н/Д", + "table": { + "activity": { + "accessedDate": "Время доступа", + "firstSeen": "Впервые увиден" + }, + "audioContent": { + "bitrate": { + "label": "Битрейт", + "value": "{bitrate}/с" + }, + "cachedSize": "Размер в кэше", + "duration": "Длительность", + "size": "Размер", + "track": "Трек" + }, + "upload": { + "name": "Имя" + } + } + } + }, + "moderation": { + "AccountsDetail": { + "button": { + "addPolicy": "Добавить политику модерации" + }, + "description": { + "policy": "Политики модерации позволяют Вам управлять тем, как Ваш узел взаимодействует с определённым доменом или аккаунтом" + }, + "header": { + "accountData": "Данные аккаунта", + "activePolicy": "К этому домену применяются особые правила модерации", + "activity": "Активность", + "audioContent": "Музыкальный контент", + "localAccount": "Мой аккаунт", + "noPolicy": "У Вас нет установленных правил для этого аккаунта." + }, + "link": { + "albums": "Альбомы", + "artists": "Исполнители", + "channels": "Каналы", + "django": "Посмотреть в админке Django", + "domain": "Домен", + "libraries": "Библиотеки", + "linkedReports": "Связанные жалобы", + "openProfile": "Открыть профиль", + "remoteProfile": "Открыть удалённый профиль", + "requests": "Запросы", + "tracks": "Треки", + "uploads": "Закачки" + }, + "notApplicable": "Н/Д", + "option": { + "permission": { + "library": "Библиотека", + "moderation": "Модерация", + "settings": "Настройки" + } + }, + "table": { + "accountData": { + "displayName": "Видимое имя", + "email": "Адрес электронной почты", + "lastActivity": "Последняя активность", + "lastChecked": "Последнее обновление", + "loginStatus": { + "disabled": "Отключено", + "enabled": "Включено", + "label": "Статус аккаунта" + }, + "permissions": "Разрешения", + "signupDate": "Дата регистрации", + "userType": "Тип", + "username": "Имя пользователя" + }, + "activity": { + "emittedFollows": "Исходящие подписки на библиотеки", + "emittedMessages": "Исходящие сообщения", + "firstSeen": "Впервые увиден", + "receivedFollows": "Полученные подписки на библиотеку" + }, + "audioContent": { + "cachedSize": "Размер в кэше", + "megabyte": "МБ", + "totalSize": "Общий размер", + "uploadQuota": "Квота загрузки" + } + }, + "tooltip": { + "uploadQuota": "Выберите как много содержимого пользователь может загрузить. Оставьте пустым, чтобы использовать значение по умолчанию для данного узла." + }, + "warning": { + "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" + } + }, + "Base": { + "link": { + "accounts": "Аккаунты", + "domains": "Домены", + "reports": "Жалобы", + "userRequests": "Запросы пользователя" + }, + "menu": { + "secondary": "Дополнительное меню" + }, + "title": "Модерация" + }, + "DomainsDetail": { + "button": { + "addPolicy": "Добавить политику модерации", + "addToAllowList": "Добавить в \"белый\" список", + "refreshNodeInfo": "Обновить информацию узла", + "removeFromAllowList": "Удалить из \"белого\" списка" + }, + "description": { + "policy": "Политики модерации позволяют Вам управлять тем, как Ваш узел взаимодействует с определённым доменом или аккаунтом" + }, + "header": { + "activePolicy": "К этому домену применяются особые правила модерации", + "activity": "Активность", + "audioContent": "Музыкальный контент", + "instanceData": "Данные узла", + "noPolicy": "У Вас нет установленных правил для этого домена." + }, + "link": { + "albums": "Альбомы", + "artists": "Исполнители", + "channels": "Каналы", + "django": "Посмотреть в админке Django", + "knownAccounts": "Известные аккаунты", + "libraries": "Библиотеки", + "tracks": "Треки", + "uploads": "Закачки", + "website": "Официальный веб-сайт" + }, + "notApplicable": "Н/Д", + "table": { + "activity": { + "emittedFollows": "Исходящие подписки на библиотеки", + "emittedMessages": "Исходящие сообщения", + "firstSeen": "Впервые увиден", + "receivedFollows": "Полученные подписки на библиотеку" + }, + "audioContent": { + "cachedSize": "Размер в кэше", + "totalSize": "Общий размер" + }, + "instanceData": { + "domainName": "Имя", + "inAllowList": { + "false": "Нет", + "label": "Присутствует в \"белом\" списке", + "true": "Да" + }, + "lastChecked": "Последнее обновление", + "nodeInfoStatus": { + "label": "Статус", + "value": "Ошибка при запросе данных узла" + }, + "software": { + "label": "Программное обеспечение", + "value": "{name} ({version})" + }, + "totalUsers": "Всего пользователей" + } + }, + "warning": { + "stats": "Статистика считается по известной активности и содержимому Вашего узла и не отражает всю активность для этого объекта" + } + }, + "DomainsList": { + "button": { + "add": "Добавить" + }, + "header": { + "domains": "Домены", + "failure": "Ошибка во время создания домена" + }, + "label": { + "addDomain": "Добавить домен", + "addToAllowList": "Добавить в \"белый\" список" + }, + "title": "Домены" + }, + "ReportsList": { + "header": { + "reports": "Жалобы" + }, + "label": { + "search": "Поиск", + "status": "Статус" + }, + "option": { + "status": { + "all": "Все", + "resolved": "Решено", + "unresolved": "Нерешённые" + } + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "placeholder": { + "search": "Искать по учетной записи, примечанию, домену…" + }, + "title": "Жалобы" + }, + "RequestsList": { + "header": { + "userRequests": "Запросы пользователя" + }, + "label": { + "search": "Поиск", + "status": "Статус" + }, + "option": { + "status": { + "all": "Все", + "approved": "Одобрено", + "pending": "Ожидает", + "refused": "Отказано" + } + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "placeholder": { + "search": "Искать по имени пользователя" + }, + "title": "Запросы пользователя" + } + }, "users": { "Base": { "link": { "invitations": "Приглашения", "users": "Пользователи" }, - "title": "Управлять пользователями", "menu": { "secondary": "Дополнительное меню" + }, + "title": "Управлять пользователями" + } + } + }, + "auth": { + "Callback": { + "header": { + "loggingIn": "Входим…" + } + }, + "EmailConfirm": { + "header": { + "failure": "Не удалось подтвердить Ваш адрес электронной почты", + "success": "Адрес электронной почты подтверждён" + }, + "label": { + "confirmationCode": "Код подтверждения" + }, + "link": { + "back": "Назад ко входу", + "login": "Перейти ко входу" + }, + "message": { + "success": "Теперь Вы можете пользоваться сервисом без ограничений" + }, + "title": "Подтвердить Ваш адрес электронной почты" + }, + "Login": { + "header": { + "login": "Войти в Ваш аккаунт Funkwhale" + }, + "title": "Вход" + }, + "PasswordReset": { + "button": { + "requestReset": "Сбросить пароль" + }, + "header": { + "failure": "Ошибка во время запроса сброса пароля", + "reset": "Сбросить ваш пароль" + }, + "help": { + "form": "Используйте эту форму чтобы запросить сброс пароля. Мы вышлем письмо на указанный адрес с инструкциями по сбросу вашего пароля." + }, + "label": { + "email": "Электронная почта" + }, + "link": { + "back": "Назад ко входу" + }, + "placeholder": { + "email": "Введите адрес электронной почты, связанный с Вашим аккаунтом" + }, + "title": "Сбросить ваш пароль" + }, + "PasswordResetConfirm": { + "button": { + "update": "Обновите Ваш пароль" + }, + "header": { + "failure": "Ошибка во время изменения Вашего пароля", + "success": "Пароль успешно обновлён" + }, + "label": { + "newPassword": "Новый пароль" + }, + "link": { + "back": "Назад ко входу", + "login": "Перейти ко входу" + }, + "message": { + "requestSent": "Если указанный на предыдущем шаге адрес электронной почты правильный и привязан к пользовательскому аккаунту, то вы должны получить письмо с инструкциями по сбросу в течение нескольких минут.", + "success": "Ваш пароль был успешно обновлён." + }, + "title": "Сменить Ваш пароль" + }, + "Plugins": { + "title": "Управлять плагинами" + }, + "ProfileActivity": { + "header": { + "playlists": "Списки воспроизведения", + "recentlyFavorited": "Недавно добавленные в избранное", + "recentlyListened": "Недавно прослушанные" + } + }, + "ProfileBase": { + "label": { + "self": "Это Вы!" + }, + "link": { + "activity": "Активность", + "domainView": "Посмотреть на { domain }", + "moderation": "Открыть в режиме модерации", + "overview": "Обзор" + }, + "title": "Профиль { username }" + }, + "ProfileOverview": { + "button": { + "cancel": "Отмена", + "createChannel": "Создать канал", + "next": "Следующий шаг", + "previous": "Предыдущий шаг" + }, + "header": { + "channels": "Каналы", + "libraries": "Пользовательские библиотеки", + "sharedLibraries": "Этот пользователь поделился следующими библиотеками" + }, + "link": { + "addNew": "Добавить новый" + }, + "modal": { + "createChannel": { + "artist": { + "header": "Канал исполнителя" + }, + "header": "Создать канал", + "podcast": { + "header": "Канал подкастов" + } + } + } + }, + "Signup": { + "header": { + "createAccount": "Создать аккаунт Funkwhale" + }, + "title": "Регистрация" + } + }, + "channels": { + "DetailBase": { + "button": { + "cancel": "Отмена", + "confirm": "Удалить", + "delete": "Удалить…", + "edit": "Редактировать…", + "embed": "Внедрить", + "play": "Проиграть", + "updateChannel": "Обновить канал", + "upload": "Загрузить" + }, + "header": { + "artistChannel": "Канал исполнителя", + "podcastChannel": "Канал подкастов" + }, + "link": { + "channelEpisodes": "Все Эпизоды", + "channelOverview": "Обзор", + "channelTracks": "Треки", + "domainView": "Посмотреть на { domain }", + "mirrored": "Зеркало с { domain }", + "moderation": "Открыть в режиме модерации" + }, + "meta": { + "episodes": "{ n } эпизод | { n } эпизода", + "listenings": "{ n } прослушивание | { n } прослушивания", + "subscribers": "{ n } подписчик | { n } подписчика", + "tracks": "{ n } трек | { n } трека" + }, + "modal": { + "delete": { + "content": { + "warning": "Канал будет удалён вместе со связанными с ним файлами и данными. Это действие нельзя отменить." + }, + "header": "Удалить этот канал?" + }, + "embed": { + "header": "Внедрить произведения этого исполнителя на Ваш сайт" + }, + "subscribe": { + "fediverse": { + "content": { + "help": "Если вы используете Mastodon или другие приложения Федиверса, вы можете подписаться на этот аккаунт:" + }, + "header": "Подписаться в Fediverse" + }, + "funkwhale": { + "header": "Подписаться на Funkwhale" + }, + "header": "Подписаться на этот канал", + "rss": { + "content": { + "help": "Скопируйте и вставьте эту ссылку в ваше приложение для подкастов:" + }, + "header": "Подписаться через RSS" + } + } + }, + "title": "Канал" + }, + "DetailOverview": { + "header": { + "albums": "Альбомы", + "latestEpisodes": "Свежие эпизоды", + "latestTracks": "Последние треки", + "series": "Серии", + "uploadsFailure": "Некоторые закачки не получилось опубликовать", + "uploadsProcessing": "Закачки обрабатываются", + "uploadsSuccess": "Закачки успешно опубликованы" + }, + "link": { + "addAlbum": "Добавить новый", + "erroredUploads": "Посмотреть закачки с ошибками", + "skippedUploads": "Посмотреть пропущенные закачки" + }, + "message": { + "processing": "Ваши закачки обрабатываются Funkwhale и будут доступны очень скоро." + }, + "meta": { + "progress": "Обработанные загрузки: {finished}/{total}" + } + }, + "SubscriptionsList": { + "button": { + "cancel": "Отмена", + "subscribe": "Подписаться" + }, + "link": { + "addNew": "Добавить новый" + }, + "modal": { + "subscription": { + "header": "Подписка" + } + }, + "placeholder": { + "search": "Фильтр по имени…" + }, + "title": "Подписки каналов" + } + }, + "content": { + "Base": { + "link": { + "libraries": "Библиотеки", + "tracks": "Треки" + }, + "menu": { + "secondary": "Дополнительное меню" + }, + "title": "Добавить содержимое" + }, + "Home": { + "button": { + "start": "Начать" + }, + "description": { + "channel": { + "1": "Если вы музыкант или подкастер, то каналы созданы для вас!", + "2": "Делитесь вашим творчеством и получайте подписчиков с Funkwhale, Fediverse или из любых приложений для подкастов." + }, + "follow": "Вы можете подписаться на библиотеки других пользователей чтобы получать доступ к новой музыке. На публичные библиотеки можно подписаться сразу, в то время как подписка на приватную библиотеку требует подтверждения владельца.", + "upload": "Загрузите свою личную музыкальную библиотеку в Funkwhale, чтобы наслаждаться ей откуда угодно и делиться ей с друзьями и семьей." + }, + "header": { + "channel": "Публикуйте ваше творчество в канале", + "follow": "Подписаться на удалённые библиотеки", + "upload": "Загрузить сторонний контент в библиотеку" + }, + "help": { + "uploadQuota": "Этот узел предоставляет до {quota} дискового пространства каждому пользователю." + }, + "title": "Добавить или управлять содержимым" + }, + "libraries": { + "Card": { + "button": { + "upload": "Загрузить" + }, + "label": { + "size": "Суммарный размер файлов в этой библиотеке" + }, + "link": { + "details": "Информация о библиотеке" + }, + "meta": { + "tracks": "{ n } трек | { n } трека" + } + }, + "FilesTable": { + "action": { + "delete": "Удалить", + "restartImport": "Перезапустить импорт" + }, + "button": { + "showStatus": "Показать информацию о статусе закачки этого трека" + }, + "empty": { + "noTracks": "В эту библиотеку ещё не добавлены треки" + }, + "label": { + "importStatus": "Статус импорта", + "search": "Поиск" + }, + "notApplicable": "Н/Д", + "option": { + "status": { + "all": "Все", + "draft": "Черновик", + "failed": "Ошибки", + "finished": "Завершено", + "pending": "Ожидает", + "skipped": "Пропущено" + } + }, + "ordering": { + "direction": { + "ascending": "По возрастанию", + "descending": "По убыванию", + "label": "Порядок" + }, + "label": "Порядок" + }, + "pagination": { + "results": "Показаны результаты { start }-{ end } из { total }" + }, + "placeholder": { + "search": "Искать по названию, исполнителю, альбому…" + }, + "table": { + "file": { + "header": { + "album": "Альбом", + "artist": "Исполнитель", + "duration": "Длительность", + "importStatus": "Статус импорта", + "size": "Размер", + "title": "Название", + "uploadDate": "Дата загрузки" + } + } + } + }, + "Form": { + "button": { + "confirm": "Удалить библиотеку", + "create": "Создать библиотеку", + "delete": "Удалить", + "update": "Обновить библиотеку" + }, + "description": { + "library": "Библиотеки помогают организовывать Ваши музыкальные коллекции и делиться ими. Вы можете загружать Вашу музыку на Funkwhale и делиться ею с Вашими друзьями и семьёй.", + "visibility": "Вы сможете делиться Вашей библиотекой с другими людьми независимо от её видимости." + }, + "header": { + "failure": "Ошибка" + }, + "label": { + "description": "Описание", + "name": "Имя", + "visibility": "Видимость" + }, + "message": { + "libraryCreated": "Библиотека создана", + "libraryDeleted": "Библиотека удалена", + "libraryUpdated": "Библиотека обновлена" + }, + "modal": { + "delete": { + "content": { + "warning": "Библиотека и все треки в ней будут удалены. Это действие необратимо." + }, + "header": "Удалить эту библиотеку?" + } + }, + "placeholder": { + "description": "Эта библиотека содержит мою личную коллекцию музыки, надеюсь она Вам понравится.", + "name": "Моя замечательная библиотека" + } + }, + "Home": { + "empty": { + "noLibrary": "Похоже у Вас ещё нет ни одной библиотеки, самое время создать её." + }, + "header": { + "libraries": "Мои библиотеки" + }, + "link": { + "createLibrary": "Создать новую библиотеку" + }, + "loading": { + "libraries": "Загружаем Библиотеки…" + } + }, + "Quota": { + "button": { + "purge": "Очистить" + }, + "header": { + "currentUsage": "Текущее использование" + }, + "label": { + "currentUsage": "{ current } использовано из доступных { max }", + "errored": "Ошибочные файлы", + "pending": "Ожидающие файлы", + "percentUsed": "{progress}%", + "skipped": "Пропущенные файлы" + }, + "link": { + "viewFiles": "Просмотреть файлы" + }, + "loading": { + "currentUsage": "Загружаем данные об использовании…" + }, + "modal": { + "purgeErrored": { + "content": { + "description": "Это удалит треки которые были загружены но ещё не обработаны. Файлы будут полностью удалены и свободное место увеличится." + }, + "header": "Очистить ошибочные файлы?" + }, + "purgePending": { + "content": { + "description": "Это удалит треки которые были загружены но ещё не обработаны. Файлы будут полностью удалены, увеличив доступную квоту." + }, + "header": "Очистить ожидающие файлы?" + }, + "purgeSkipped": { + "content": { + "description": "Это удалит треки которые были загружены, но пропущены при импорте. Файлы будут полностью удалены и свободное место увеличится." + }, + "header": "Очистить пропущенные файлы?" + } + } + } + }, + "remote": { + "Card": { + "button": { + "cancel": "Отменить запрос на подписку", + "follow": "Подписаться", + "pending": "Подписка требует подтверждения", + "unfollow": "Отписаться" + }, + "error": { + "follow": "Не удается подписаться на удаленную библиотеку: {error}", + "unfollow": "Не удается отписаться от удаленной библиотеки: {error}" + }, + "label": { + "scanFailure": "Ошибка во время сканирования", + "scanPartialSuccess": "Просканировано с ошибками", + "scanPending": "Ожидание сканирования", + "scanProgress": "Сканирование… ({ progress }%)", + "scanSuccess": "Просканировано", + "sharingLink": "Поделиться ссылкой" + }, + "link": { + "scan": "Сканировать сейчас ", + "scanDetails": "Подробности" + }, + "message": { + "scanLaunched": "Сканирование запущено", + "scanSkipped": "Сканирование пропущено (предыдущее сканирование было совсем недавно)" + }, + "meta": { + "failedTracks": "Ошибки в треках: {tracks}", + "lastUpdate": "Последнее обновление: ", + "tracks": "{ n } трек | { n } трека" + }, + "modal": { + "unfollow": { + "content": { + "warning": "Отписавшись от этой библиотеки, Вы потеряете доступ к её содержимому." + }, + "header": "Отписаться от этой библиотеки?" + } + }, + "tooltip": { + "private": "Это личная библиотека и для доступа к ней необходимо получить разрешение владельца", + "public": "Это публичная библиотека и у Вас есть свободный доступ к её содержимому" + } + }, + "Home": { + "button": { + "refresh": "Обновить" + }, + "description": { + "remoteLibraries": "Удалёнными библиотеками владеют другие пользователи в сети. Вы можете получить к ним доступ если они публичны или Вам предоставлен доступ." + }, + "header": { + "knownLibraries": "Известные библиотеки", + "remoteLibraries": "Удалённые библиотеки" + }, + "loading": { + "remoteLibraries": "Загружаем удалённые библиотеки…" + } + }, + "ScanForm": { + "button": { + "submit": "Искать" + }, + "header": { + "failure": "Ошибка во время загрузки удалённой библиотеки" + }, + "label": { + "search": "Искать в удалённой библиотеке" + }, + "placeholder": { + "url": "Введите URL библиотеки" } } } }, - "Search": { - "label": { - "albums": "Альбомы", - "artists": "Исполнители", - "playlists": "Списки воспроизведения", - "podcasts": "Подкасты", - "radios": "Радио", - "series": "Серии", - "tags": "Теги", - "tracks": "Треки" + "library": { + "DetailAlbums": { + "empty": { + "follow": "Вам может потребоваться подписаться на эту библиотеку, чтобы увидеть её содержимое.", + "upload": "Эта библиотека пуста, загрузите что-нибудь в неё!" + } }, - "header": { - "search": "Поиск", - "remote": "Найти удалённый объект", - "rss": "Подписаться на подкаст через RSS" + "DetailOverview": { + "empty": { + "follow": "Вам может потребоваться подписаться на эту библиотеку, чтобы увидеть её содержимое.", + "upload": "Эта библиотека пуста, загрузите что-нибудь в неё!" + } }, - "button": { - "submit": "Отправить поисковый запрос" + "DetailTracks": { + "empty": { + "follow": "Вам может потребоваться подписаться на эту библиотеку, чтобы увидеть её содержимое.", + "upload": "Эта библиотека пуста, загрузите что-нибудь в неё!" + } + }, + "Edit": { + "button": { + "accept": "Принять", + "reject": "Отклонить" + }, + "empty": { + "noFollowers": "Никто не подписан на эту библиотеку" + }, + "header": { + "followers": "Подписчики", + "libraryContents": "Содержимое библиотеки" + }, + "loading": { + "followers": "Загружаем подписчиков…" + }, + "table": { + "action": { + "header": { + "action": "Действие", + "date": "Дата", + "status": "Статус", + "user": "Пользователь" + }, + "status": { + "accepted": "Подтверждено", + "pending": "Ожидает подтверждения", + "rejected": "Отклонено" + } + } + } + }, + "LibraryBase": { + "button": { + "edit": "Редактировать", + "upload": "Загрузить" + }, + "description": { + "sharingLink": "Поделитесь этой ссылкой с другими пользователями чтобы они могли запросить доступ к вашей библиотеке, вставив её в поле поиска на своём узле." + }, + "label": { + "instance": "Ограничено", + "private": "Личное", + "public": "Публично", + "sharingLink": "Поделиться ссылкой" + }, + "link": { + "albums": "Альбомы", + "artists": "Исполнители", + "domain": "Посмотреть на { domain }", + "moderation": "Открыть в режиме модерации", + "owner": "Владелец { username }", + "tracks": "Треки" + }, + "meta": { + "tracks": "{ n } трек | { n } трека" + }, + "title": "Библиотека", + "tooltip": { + "instance": "Эта библиотека открыта только пользователям этого узла", + "private": "Это личная библиотека и для доступа к ней необходимо получить разрешение владельца", + "public": "Это публичная библиотека и у Вас есть свободный доступ к её содержимому" + } } }, "playlists": { + "Detail": { + "button": { + "cancel": "Отмена", + "confirm": "Удалить список воспроизведения", + "delete": "Удалить", + "edit": "Редактировать", + "embed": "Внедрить", + "playAll": "Проиграть всё", + "stopEdit": "Прекратить редактирование" + }, + "empty": { + "noTracks": "В этом списке пока нет треков" + }, + "header": { + "tracks": "Треки" + }, + "meta": { + "tracks": "Список воспроизведения содержит { n } трек от { username } | Список воспроизведения содержит { n } трека от { username }" + }, + "modal": { + "delete": { + "content": { + "warning": "Это необратимо удалит список воспроизведения." + }, + "header": "Вы хотите удалить список воспроизведения \"{ playlist }\"?" + }, + "embed": { + "header": "Внедрить этот альбом на Ваш сайт" + } + }, + "title": "Список воспроизведения" + }, "List": { + "button": { + "create": "Создать список воспроизведения", + "manage": "Управлять Вашими списками воспроизведения", + "search": "Поиск" + }, + "empty": { + "noResults": "Нет результатов по этому запросу" + }, + "header": { + "browse": "Просмотр списков воспроизведения", + "playlists": "Списки воспроизведения" + }, + "label": { + "search": "Поиск" + }, "ordering": { "direction": { "ascending": "По возрастанию", @@ -4159,58 +4579,11 @@ }, "label": "Порядок" }, - "header": { - "browse": "Просмотр списков воспроизведения", - "playlists": "Списки воспроизведения" - }, - "button": { - "create": "Создать список воспроизведения", - "manage": "Управлять Вашими списками воспроизведения", - "search": "Поиск" - }, - "placeholder": { - "search": "Введите название списка воспроизведения…" - }, - "empty": { - "noResults": "Нет результатов по этому запросу" - }, "pagination": { "results": "Результатов на странице" }, - "label": { - "search": "Поиск" - } - }, - "Detail": { - "button": { - "cancel": "Отмена", - "delete": "Удалить", - "confirm": "Удалить список воспроизведения", - "edit": "Редактировать", - "embed": "Внедрить", - "playAll": "Проиграть всё", - "stopEdit": "Прекратить редактирование" - }, - "modal": { - "delete": { - "header": "Вы хотите удалить список воспроизведения \"{ playlist }\"?", - "content": { - "warning": "Это необратимо удалит список воспроизведения." - } - }, - "embed": { - "header": "Внедрить этот альбом на Ваш сайт" - } - }, - "title": "Список воспроизведения", - "meta": { - "tracks": "Список воспроизведения содержит { n } трек от { username } | Список воспроизведения содержит { n } трека от { username }" - }, - "empty": { - "noTracks": "В этом списке пока нет треков" - }, - "header": { - "tracks": "Треки" + "placeholder": { + "search": "Введите название списка воспроизведения…" } } }, @@ -4218,289 +4591,26 @@ "Detail": { "button": { "confirm": "Удалить радио", + "delete": "Удалить", "edit": "Редактировать…" }, - "modal": { - "delete": { - "header": "Вы хотите удалить радио \"{ radio }\"?", - "content": { - "warning": "Это радио будет необратимо удалено." - } - } - }, "empty": { "noTracks": "У этого радио пока нет добавленных треков" }, - "title": "Радио", "header": { + "radio": "Радио содержит {tracks} треки от ", "tracks": "Треки" - } - } - } - }, - "composables": { - "audio": { - "usePlayOptions": { - "addToQueueMessage": "{ n } трек добавлен в вашу очередь | { n } трека добавлено в вашу очередь" - } - }, - "locale": { - "useSharedLabels": { - "scopes": { - "libraries": { - "description": "Доступ к аудио файлам, библиотекам, исполнителям, альбомам и трекам", - "label": "Библиотеки и закачки" - }, - "filters": { - "description": "Доступ к фильтрам содержимого", - "label": "Фильтры содержимого" - }, - "profile": { - "description": "Доступ к электронной почте, имени пользователя и информации профиля", - "label": "Профиль" - }, - "edits": { - "description": "Доступ к правкам", - "label": "Правки" - }, - "follows": { - "description": "Доступ к подпискам", - "label": "Подписки" - }, - "listenings": { - "description": "Доступ к истории прослушивания", - "label": "Прослушивания" - }, - "reports": { - "description": "Доступ к сообщениям для модераторов", - "label": "Жалобы" - }, - "notifications": { - "description": "Доступ к уведомлениям", - "label": "Уведомления" - }, - "playlists": { - "description": "Доступ к спискам воспроизведения", - "label": "Списки воспроизведения" - }, - "radios": { - "description": "Доступ к радио", - "label": "Радио" - }, - "security": { - "description": "Доступ к настройкам безопасности, таким как пароль и авторизация", - "label": "Безопасность" - }, - "favorites": { - "label": "Избранное" - } }, - "filters": { - "accessedDate": "Время доступа", - "albumTitle": "Название альбома", - "artistName": "Имя исполнителя", - "bitrate": "Битрейт", - "creationDate": "Дата создания", - "domain": "Домен", - "duration": "Длительность", - "expirationDate": "Дата истечения", - "firstSeen": "Дата первого появления", - "followers": "Подписчики", - "itemsCount": "элементы", - "lastActivity": "Последняя активность", - "lastSeen": "Дата последнего появления", - "modificationDate": "Дата изменения", - "name": "Имя", - "receivedMessages": "Полученные сообщения", - "releaseDate": "Дата выпуска", - "dateJoined": "Дата регистрации", - "size": "Размер", - "trackTitle": "Название трека", - "uploads": "Закачки", - "username": "Имя пользователя", - "users": "Пользователи" - }, - "fields": { - "privacyLevel": { - "label": "Видимость активности", - "help": "Определить уровень видимости Вашей активности", - "shortChoices": { - "public": "Все", - "instance": "Узел", - "private": "Личное" + "modal": { + "delete": { + "content": { + "warning": "Это радио будет необратимо удалено." }, - "choices": { - "instance": "Все на этом узле", - "public": "Все на всех узлах", - "private": "Никто кроме меня" - } - }, - "summary": { - "label": "Биография" - }, - "reportType": { - "label": "Категория", - "choices": { - "illegalContent": "Незаконное содержимое", - "invalidMetadata": "Неправильные метаданные", - "offensiveContent": "Оскорбительное содержание", - "other": "Другое", - "takedownRequest": "Запрос на удаление" - } - }, - "importStatus": { - "label": "Нажмите, чтобы посмотреть больше информации об импорте этой закачки", - "choices": { - "draft": { - "label": "Черновик", - "help": "Трек загружен, но ещё не поставлен в очередь на обработку" - }, - "errored": { - "label": "Ошибочно", - "help": "Произошла ошибка во время обработки этого трека, убедитесь что у него корректные теги" - }, - "finished": { - "label": "Завершено", - "help": "Импортировано" - }, - "pending": { - "label": "Ожидает", - "help": "Трек загружен, но ещё не обработан сервером" - }, - "skipped": { - "label": "Пропущено", - "help": "Трек уже находится в одной из Ваших библиотек" - } - } - }, - "contentCategory": { - "label": "Категория содержимого", - "choices": { - "music": "Музыка", - "other": "Другое", - "podcast": "Подкаст" - } + "header": "Вы хотите удалить радио \"{ radio }\"?" } - } + }, + "title": "Радио" } - }, - "moderation": { - "useReport": { - "account": { - "typeLabel": "Статус аккаунта" - }, - "album": { - "typeLabel": "Альбом", - "label": "Пожаловаться на этот альбом…" - }, - "artist": { - "typeLabel": "Исполнитель", - "label": "Пожаловаться на этого исполнителя…" - }, - "channel": { - "typeLabel": "Канал", - "label": "Пожаловаться на этот канал…" - }, - "library": { - "typeLabel": "Библиотека", - "label": "Пожаловаться на эту библиотеку…" - }, - "playlist": { - "typeLabel": "Список воспроизведения", - "label": "Пожаловаться на этот список воспроизведения…" - }, - "track": { - "label": "Пожаловаться на этот трек…", - "typeLabel": "Трек" - } - }, - "useReportConfigs": { - "account": { - "label": "Статус аккаунта", - "summary": "Биография" - }, - "album": { - "label": "Альбом", - "releaseDate": "Дата выпуска", - "title": "Название" - }, - "artist": { - "label": "Исполнитель" - }, - "channel": { - "label": "Канал" - }, - "track": { - "copyright": "Копирайт", - "license": "Лицензия", - "position": "Позиция", - "title": "Название", - "label": "Трек" - }, - "creationDate": { - "label": "Дата создания" - }, - "library": { - "description": "Описание", - "label": "Библиотека" - }, - "musicbrainzId": { - "label": "Смотреть на MusicBrainz" - }, - "name": { - "label": "Имя" - }, - "playlist": { - "label": "Список воспроизведения" - }, - "tags": { - "label": "Теги" - }, - "visibility": { - "label": "Видимость" - } - }, - "useEditConfigs": { - "track": { - "copyright": "Копирайт", - "license": "Лицензия", - "position": "Позиция", - "title": "Название" - }, - "cover": { - "label": "Обложка" - }, - "description": { - "label": "Описание" - }, - "artist": { - "name": "Имя" - }, - "album": { - "releaseDate": "Дата выпуска", - "title": "Название" - }, - "tags": { - "label": "Теги" - } - } - }, - "useThemeList": { - "darkTheme": "Темная", - "lightTheme": "Светлая" - } - }, - "init": { - "serviceWorker": { - "newAppVersion": "Доступна новая версия этого приложения.", - "actions": { - "later": "Позже", - "update": "Обновить" - } - }, - "axios": { - "rateLimitDelay": "Вы отправили слишком много запросов и попали под временное ограничение, пожалуйста, попробуйте снова через { delay }", - "rateLimitLater": "Вы отправили слишком много запросов и попали под ограничение, пожалуйста, попробуйте позже" } } } diff --git a/front/src/style/components/_queue.scss b/front/src/style/components/_queue.scss index 9a72defab..69197f8a5 100644 --- a/front/src/style/components/_queue.scss +++ b/front/src/style/components/_queue.scss @@ -1,4 +1,3 @@ - .queue-controls { @include media(" .button { position: fixed; diff --git a/front/src/views/playlists/List.vue b/front/src/views/playlists/List.vue index 1705a74ae..feba0aeb9 100644 --- a/front/src/views/playlists/List.vue +++ b/front/src/views/playlists/List.vue @@ -130,7 +130,7 @@ const paginateOptions = computed(() => sortedUniq([12, 25, 50, paginateBy.value] @@ -209,7 +209,7 @@ const paginateOptions = computed(() => sortedUniq([12, 25, 50, paginateBy.value]