diff --git a/.env.dev b/.env.dev index 5b6865600..d4833ab01 100644 --- a/.env.dev +++ b/.env.dev @@ -7,7 +7,7 @@ C_FORCE_ROOT=true FUNKWHALE_HOSTNAME=localhost FUNKWHALE_PROTOCOL=http PYTHONDONTWRITEBYTECODE=true -WEBPACK_DEVSERVER_PORT=8080 +VUE_PORT=8080 MUSIC_DIRECTORY_PATH=/music BROWSABLE_API_ENABLED=True FORWARDED_PROTO=http diff --git a/.gitignore b/.gitignore index d5870db7e..398338166 100644 --- a/.gitignore +++ b/.gitignore @@ -72,16 +72,17 @@ api/media api/staticfiles api/static api/.pytest_cache - +api/celerybeat-* # Front +oldfront/node_modules/ front/static/translations front/node_modules/ front/dist/ front/npm-debug.log* front/yarn-debug.log* front/yarn-error.log* -front/test/unit/coverage -front/test/e2e/reports +front/tests/unit/coverage +front/tests/e2e/reports front/selenium-debug.log docs/_build diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 57e258e93..4ddde5b79 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -156,7 +156,6 @@ test_api: tags: - docker - test_front: stage: test image: node:9 @@ -166,7 +165,7 @@ test_front: - branches script: - yarn install - - yarn run unit + - yarn test:unit cache: key: "funkwhale__front_dependencies" paths: @@ -179,7 +178,6 @@ test_front: tags: - docker - build_front: stage: build image: node:9 @@ -192,8 +190,8 @@ build_front: - yarn run i18n-compile # this is to ensure we don't have any errors in the output, # cf https://code.eliotberriot.com/funkwhale/funkwhale/issues/169 - - yarn run build | tee /dev/stderr | (! grep -i 'ERROR in') - - chmod -R 750 dist + - yarn build | tee /dev/stderr | (! grep -i 'ERROR in') + - chmod -R 755 dist cache: key: "funkwhale__front_dependencies" paths: @@ -210,7 +208,6 @@ build_front: tags: - docker - pages: stage: test image: python:3.6 diff --git a/CHANGELOG b/CHANGELOG index e5c811fc8..9ef9fd667 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,7 +10,82 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog. .. towncrier -0.16 (unreleased) +0.16.1 (2018-08-19) +------------------- + +Upgrade instructions are available at +https://docs.funkwhale.audio/upgrading.html + +Features: + +- Make funkwhale themable by loading external stylesheets (#456) + +Enhancements: + +- Add link to admin on "Staff member" button (#202) +- Can now add a description to radios and better radio cards (#331) +- Display track duration in track tables (#461) +- More permissive default permissions for front-end files (#388) +- Simpler configuration and toolchain for the front-end using vue-cli (!375) +- Use Howler to manage audio instead of our own dirty/untested code (#392) + + +Bugfixes: + +- Fix alignment issue on top bar in Admin tabs (#395) +- Fix Apache2 permission issue preventing `/media` folder from being served + correctly (#389) +- Fix loading on browse page lists causing them to go down, and dimming over + the top bar (#468) +- Fixed (again): administration section not showing up in sidebar after login + (#245) +- Fixed audio mimetype not showing up on track detail and list (#459) +- Fixed broken audio playback on Chrome and invisible volume control (#390) +- Fixed broken federation import on big imports due to missing transaction + logic (#397) +- Fixed crash on artist pages when no cover is available (#457) +- Fixed favorited status of tracks not appearing in interface (#398) +- Fixed invitation code not prefilled in form when accessing invitation link + (#476) +- Fixed typos in scheduled tasks configuration (#487) +- Removed release date error in case of empty date (#478) +- Removed white on white artist button on hover, on Album page (#393) +- Smarter date parsing during import by replacing arrow with pendulum (#376) +- Display public playlists properly for anonymous users (#488) + + +i18n: + +- Added portuguese, spanish and german translations + + +Custom themes for Funkwhale +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you ever wanted to give a custom look and feel to your instance, this is now possible. + +Check https://docs.funkwhale.audio/configuration.html#theming if you want to know more! + + +Fix Apache2 configuration file for media block [Manual action required] +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The permission scope on the current Apache2 configuration file is too narrow, preventing thumbnails from being served. + +On Apache2 setups, you have to replace the following line:: + + + +with:: + + + +You can now restart your server:: + + sudo systemctl restart apache2 + + +0.16 (2018-07-22) ----------------- Upgrade instructions are available at @@ -232,7 +307,7 @@ In the end, the ``volumes`` directives of your containers should look like that: Removed Cacheops dependency ---------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^ We removed one of our dependency named django-cacheops. It was unly used in a few places, and not playing nice with other dependencies. diff --git a/CONTRIBUTING b/CONTRIBUTING.rst similarity index 98% rename from CONTRIBUTING rename to CONTRIBUTING.rst index 18d877b66..86832841d 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING.rst @@ -23,7 +23,7 @@ As the front-end can work with any Funkwhale server, you can work with the front and make it talk with an existing instance (like the demo one, or you own instance, if you have one). If even that is too much for you, you can also make your changes without any development environment, -and open a merge request. We will be able to to review your work easily by spawning automatically a +and open a merge request. We will be able to review your work easily by spawning automatically a live version of your changes, thanks to Gitlab Review apps. Setup front-end only development environment @@ -43,7 +43,7 @@ Setup front-end only development environment 4. Launch the development server:: # this will serve the front-end on http://localhost:8000 - WEBPACK_DEVSERVER_PORT=8000 yarn dev + VUE_PORT=8000 yarn serve 5. Make the front-end talk with an existing server (like https://demo.funkwhale.audio), by clicking on the corresponding link in the footer @@ -264,7 +264,7 @@ When working on federation with traefik, ensure you have this in your ``env``:: # This will ensure we don't bind any port on the host, and thus enable # multiple instances of funkwhale to be spawned concurrently. - WEBPACK_DEVSERVER_PORT_BINDING= + VUE_PORT_BINDING= # This disable certificate verification EXTERNAL_REQUESTS_VERIFY_SSL=false # this ensure you don't have incorrect urls pointing to http resources @@ -466,12 +466,12 @@ Running tests To run the front-end test suite, use the following command:: - docker-compose -f dev.yml run --rm front yarn run unit + docker-compose -f dev.yml run --rm front yarn test:unit We also support a "watch and test" mode were we continually relaunch tests when changes are recorded on the file system:: - docker-compose -f dev.yml run --rm front yarn run unit-watch + docker-compose -f dev.yml run --rm front yarn test:unit -w The latter is especially useful when you are debugging failing tests. diff --git a/README.rst b/README.rst index d882a35c8..093a4773c 100644 --- a/README.rst +++ b/README.rst @@ -26,7 +26,7 @@ Contribute ---------- Contribution guidelines as well as development installation instructions -are outlined in `CONTRIBUTING `_. +are outlined in `CONTRIBUTING `_. Translate ^^^^^^^^^ diff --git a/api/config/settings/common.py b/api/config/settings/common.py index 013c7ae43..114157978 100644 --- a/api/config/settings/common.py +++ b/api/config/settings/common.py @@ -344,9 +344,9 @@ CELERY_BROKER_URL = env( # Your common stuff: Below this line define 3rd party library settings CELERY_TASK_DEFAULT_RATE_LIMIT = 1 CELERY_TASK_TIME_LIMIT = 300 -CELERYBEAT_SCHEDULE = { +CELERY_BEAT_SCHEDULE = { "federation.clean_music_cache": { - "task": "funkwhale_api.federation.tasks.clean_music_cache", + "task": "federation.clean_music_cache", "schedule": crontab(hour="*/2"), "options": {"expires": 60 * 2}, } diff --git a/api/funkwhale_api/__init__.py b/api/funkwhale_api/__init__.py index 7c2275033..4b0303cdc 100644 --- a/api/funkwhale_api/__init__.py +++ b/api/funkwhale_api/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -__version__ = "0.16" +__version__ = "0.16.1" __version_info__ = tuple( [ int(num) if num.isdigit() else num diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py index fc694c598..304253aa0 100644 --- a/api/funkwhale_api/federation/serializers.py +++ b/api/funkwhale_api/federation/serializers.py @@ -796,6 +796,8 @@ class LibraryTrackActionSerializer(common_serializers.ActionSerializer): jobs.append(job) music_models.ImportJob.objects.bulk_create(jobs) - music_tasks.import_batch_run.delay(import_batch_id=batch.pk) + funkwhale_utils.on_commit( + music_tasks.import_batch_run.delay, import_batch_id=batch.pk + ) return {"batch": {"id": batch.pk}} diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py index d2534f6b2..9aa08820a 100644 --- a/api/funkwhale_api/music/metadata.py +++ b/api/funkwhale_api/music/metadata.py @@ -1,5 +1,6 @@ -import arrow +import datetime import mutagen +import pendulum from django import forms NODEFAULT = object() @@ -101,6 +102,11 @@ class FirstUUIDField(forms.UUIDField): return super().to_python(value) +def get_date(value): + parsed = pendulum.parse(str(value)) + return datetime.date(parsed.year, parsed.month, parsed.day) + + VALIDATION = { "musicbrainz_artistid": FirstUUIDField(), "musicbrainz_albumid": FirstUUIDField(), @@ -118,7 +124,7 @@ CONF = { "title": {}, "artist": {}, "album": {}, - "date": {"field": "date", "to_application": lambda v: arrow.get(v).date()}, + "date": {"field": "date", "to_application": get_date}, "musicbrainz_albumid": {}, "musicbrainz_artistid": {}, "musicbrainz_recordingid": {"field": "musicbrainz_trackid"}, @@ -134,7 +140,7 @@ CONF = { "title": {}, "artist": {}, "album": {}, - "date": {"field": "date", "to_application": lambda v: arrow.get(v).date()}, + "date": {"field": "date", "to_application": get_date}, "musicbrainz_albumid": {"field": "MusicBrainz Album Id"}, "musicbrainz_artistid": {"field": "MusicBrainz Artist Id"}, "musicbrainz_recordingid": {"field": "MusicBrainz Track Id"}, @@ -148,10 +154,7 @@ CONF = { "title": {"field": "TIT2"}, "artist": {"field": "TPE1"}, "album": {"field": "TALB"}, - "date": { - "field": "TDRC", - "to_application": lambda v: arrow.get(str(v)).date(), - }, + "date": {"field": "TDRC", "to_application": get_date}, "musicbrainz_albumid": {"field": "MusicBrainz Album Id"}, "musicbrainz_artistid": {"field": "MusicBrainz Artist Id"}, "musicbrainz_recordingid": { @@ -172,10 +175,7 @@ CONF = { "title": {}, "artist": {}, "album": {}, - "date": { - "field": "date", - "to_application": lambda v: arrow.get(str(v)).date(), - }, + "date": {"field": "date", "to_application": get_date}, "musicbrainz_albumid": {}, "musicbrainz_artistid": {}, "musicbrainz_recordingid": {"field": "musicbrainz_trackid"}, diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py index c8dd61313..8e1577ea6 100644 --- a/api/funkwhale_api/music/models.py +++ b/api/funkwhale_api/music/models.py @@ -1,11 +1,10 @@ -import datetime import os import shutil import tempfile import uuid -import arrow import markdown +import pendulum from django.conf import settings from django.core.files import File from django.core.files.base import ContentFile @@ -125,9 +124,7 @@ def import_artist(v): def parse_date(v): - if len(v) == 4: - return datetime.date(int(v), 1, 1) - d = arrow.get(v).date() + d = pendulum.parse(v).date() return d @@ -147,7 +144,7 @@ class AlbumQuerySet(models.QuerySet): class Album(APIModelMixin): title = models.CharField(max_length=255) artist = models.ForeignKey(Artist, related_name="albums", on_delete=models.CASCADE) - release_date = models.DateField(null=True) + release_date = models.DateField(null=True, blank=True) release_group_id = models.UUIDField(null=True, blank=True) cover = VersatileImageField( upload_to="albums/covers/%Y/%m/%d", null=True, blank=True diff --git a/api/requirements/base.txt b/api/requirements/base.txt index e4a85d99f..bb441ac38 100644 --- a/api/requirements/base.txt +++ b/api/requirements/base.txt @@ -35,7 +35,7 @@ djangorestframework>=3.7,<3.8 djangorestframework-jwt>=1.11,<1.12 oauth2client<4 google-api-python-client>=1.6,<1.7 -arrow>=0.12,<0.13 +pendulum>=2,<3 persisting-theory>=0.2,<0.3 django-versatileimagefield>=1.9,<1.10 django-filter>=1.1,<1.2 diff --git a/api/tests/federation/test_actors.py b/api/tests/federation/test_actors.py index 736ec8bf2..1244533de 100644 --- a/api/tests/federation/test_actors.py +++ b/api/tests/federation/test_actors.py @@ -1,4 +1,4 @@ -import arrow +import pendulum import pytest from django.urls import reverse from django.utils import timezone @@ -455,7 +455,7 @@ def test_library_actor_handle_create_audio(mocker, factories): assert lt.title == a["metadata"]["recording"]["title"] assert lt.artist_name == a["metadata"]["artist"]["name"] assert lt.album_title == a["metadata"]["release"]["title"] - assert lt.published_date == arrow.get(a["published"]) + assert lt.published_date == pendulum.parse(a["published"]) def test_library_actor_handle_create_audio_autoimport(mocker, factories): @@ -494,7 +494,7 @@ def test_library_actor_handle_create_audio_autoimport(mocker, factories): assert lt.title == a["metadata"]["recording"]["title"] assert lt.artist_name == a["metadata"]["artist"]["name"] assert lt.album_title == a["metadata"]["release"]["title"] - assert lt.published_date == arrow.get(a["published"]) + assert lt.published_date == pendulum.parse(a["published"]) batch = music_models.ImportBatch.objects.latest("id") diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py index 6b14656ba..b42c843ee 100644 --- a/api/tests/federation/test_serializers.py +++ b/api/tests/federation/test_serializers.py @@ -1,4 +1,4 @@ -import arrow +import pendulum import pytest from django.core.paginator import Paginator @@ -492,7 +492,7 @@ def test_activity_pub_audio_serializer_to_library_track(factories): assert lt.title == audio["metadata"]["recording"]["title"] assert lt.artist_name == audio["metadata"]["artist"]["name"] assert lt.album_title == audio["metadata"]["release"]["title"] - assert lt.published_date == arrow.get(audio["published"]) + assert lt.published_date == pendulum.parse(audio["published"]) def test_activity_pub_audio_serializer_to_library_track_no_duplicate(factories): diff --git a/api/tests/federation/test_views.py b/api/tests/federation/test_views.py index 3a67a9f2a..4f1f471d8 100644 --- a/api/tests/federation/test_views.py +++ b/api/tests/federation/test_views.py @@ -12,6 +12,7 @@ from funkwhale_api.federation import ( views, webfinger, ) +from funkwhale_api.music import tasks as music_tasks @pytest.mark.parametrize( @@ -398,7 +399,7 @@ def test_library_track_action_import(factories, superuser_api_client, mocker): lt2 = factories["federation.LibraryTrack"](library=lt1.library) lt3 = factories["federation.LibraryTrack"]() factories["federation.LibraryTrack"](library=lt3.library) - mocked_run = mocker.patch("funkwhale_api.music.tasks.import_batch_run.delay") + mocked_run = mocker.patch("funkwhale_api.common.utils.on_commit") payload = { "objects": "all", @@ -416,7 +417,9 @@ def test_library_track_action_import(factories, superuser_api_client, mocker): assert batch.jobs.count() == 2 for i, job in enumerate(batch.jobs.all()): assert job.library_track == imported_lts[i] - mocked_run.assert_called_once_with(import_batch_id=batch.pk) + mocked_run.assert_called_once_with( + music_tasks.import_batch_run.delay, import_batch_id=batch.pk + ) def test_local_actor_detail(factories, api_client): diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py index fbdf5b81f..1dfe927a0 100644 --- a/api/tests/music/test_metadata.py +++ b/api/tests/music/test_metadata.py @@ -122,3 +122,11 @@ def test_mbid_clean_keeps_only_first(field_name): result = field.to_python("/".join([u1, u2])) assert str(result) == u1 + + +@pytest.mark.parametrize( + "raw,expected", + [("2017", datetime.date(2017, 1, 1)), ("2017-12-31", datetime.date(2017, 12, 31))], +) +def test_date_parsing(raw, expected): + assert metadata.get_date(raw) == expected diff --git a/deploy/apache.conf b/deploy/apache.conf index b74e04b33..e3a570db0 100644 --- a/deploy/apache.conf +++ b/deploy/apache.conf @@ -111,7 +111,7 @@ Define MUSIC_DIRECTORY_PATH /srv/funkwhale/data/music Require all granted - + Options FollowSymLinks AllowOverride None Require all granted diff --git a/dev.yml b/dev.yml index 5dccfeca3..1d9cbba20 100644 --- a/dev.yml +++ b/dev.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: front: @@ -8,22 +8,22 @@ services: - .env environment: - "HOST=0.0.0.0" - - "WEBPACK_DEVSERVER_PORT=${WEBPACK_DEVSERVER_PORT-8080}" + - "VUE_PORT=${VUE_PORT-8080}" ports: - - "${WEBPACK_DEVSERVER_PORT_BINDING-8080:}${WEBPACK_DEVSERVER_PORT-8080}" + - "${VUE_PORT_BINDING-8080:}${VUE_PORT-8080}" volumes: - - './front:/app' - - '/app/node_modules' - - './po:/po' + - "./front:/app" + - "/app/node_modules" + - "./po:/po" networks: - federation - internal labels: traefik.backend: "${COMPOSE_PROJECT_NAME-node1}" traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME-node1}.funkwhale.test,${NODE_IP-127.0.0.1}" - traefik.enable: 'true' - traefik.federation.protocol: 'http' - traefik.federation.port: "${WEBPACK_DEVSERVER_PORT-8080}" + traefik.enable: "true" + traefik.federation.protocol: "http" + traefik.federation.port: "${VUE_PORT-8080}" postgres: env_file: @@ -53,9 +53,9 @@ services: context: ./api dockerfile: docker/Dockerfile.test links: - - postgres - - redis - command: celery -A funkwhale_api.taskapp worker -l debug + - postgres + - redis + command: celery -A funkwhale_api.taskapp worker -l debug -B environment: - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}" - "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test" @@ -98,7 +98,7 @@ services: - .env image: nginx environment: - - "WEBPACK_DEVSERVER_PORT=${WEBPACK_DEVSERVER_PORT-8080}" + - "VUE_PORT=${VUE_PORT-8080}" - "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME- }" - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}" links: @@ -120,20 +120,20 @@ services: volumes: - ".:/app/" ports: - - '35730:35730' - - '8001:8001' + - "35730:35730" + - "8001:8001" api-docs: image: swaggerapi/swagger-ui environment: - "API_URL=/swagger.yml" ports: - - '8002:8080' + - "8002:8080" volumes: - "./docs/swagger.yml:/usr/share/nginx/html/swagger.yml" networks: - internal: + ? internal federation: external: name: federation diff --git a/docker/nginx/entrypoint.sh b/docker/nginx/entrypoint.sh index ea6a3322d..9914a7aae 100755 --- a/docker/nginx/entrypoint.sh +++ b/docker/nginx/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/bash -eux -FORWARDED_PORT="$WEBPACK_DEVSERVER_PORT" +FORWARDED_PORT="$VUE_PORT" COMPOSE_PROJECT_NAME="${COMPOSE_PROJECT_NAME// /}" if [ -n "$COMPOSE_PROJECT_NAME" ]; then echo diff --git a/docs/configuration.rst b/docs/configuration.rst index 3e7b5aa25..687447697 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -158,3 +158,79 @@ permissions are: There is no dedicated interface to manage users permissions, but superusers can login on the Django's admin at ``/api/admin/`` and grant permissions to users at ``/api/admin/users/user/``. + +Theming +------- + +Funkwhale supports custom themes, which are great if you want to personnalize the +look and feel of your instance. Theming is achieved by declaring +additionnal stylesheets you want to load in the front-end. + +Customize the settings +^^^^^^^^^^^^^^^^^^^^^^ + +In order to know what stylesheets to load, the front-end requests the following +url: ``https://your.instance/settings.json``. On typical deployments, this url +returns a 404 error, which is simply ignored. + +However, if you return the appropriate payload on this url, you can make the magic +work. We will store the necessary files in the ``/srv/funkwhale/custom`` directory: + +.. code-block:: shell + + cd /srv/funkwhale/ + mkdir custom + cat < custom/settings.json + { + "additionalStylesheets": ["/custom/custom.css"] + } + EOF + cat < custom/custom.css + body { + background-color: red; + } + EOF + +By executing the previous commands, you will end up with two files in your ``/srv/funkwhale/custom`` +directory: + +- ``settings.json`` will tell the front-end what stylesheets you want to load (``/custom/custom.css`` in this example) +- ``custom.css`` will hold your custom CSS + +The last step to make this work is to ensure both files are served by the reverse proxy. + +On nginx, add the following snippet to your vhost config:: + + location /settings.json { + alias /srv/funkwhale/custom/settings.json; + } + location /custom { + alias /srv/funkwhale/custom; + } + +On apache, use the following one:: + + Alias /settings.json /srv/funkwhale/custom/settings.json + Alias /custom /srv/funkwhale/custom + + + Options FollowSymLinks + AllowOverride None + Require all granted + + +Once done, reload your reverse proxy, refresh Funkwhale in your web browser, and you should see +a red background. + +.. note:: + + You can reference external urls as well in ``settings.json``, simply use + the full urls. Be especially careful with external urls as they may affect your users + privacy. + +.. warning:: + + Loading additional stylesheets and CSS rules can affect the performance and + usability of your instance. If you encounter issues with the interfaces and use + custom stylesheets, try to disable those to ensure the issue is not caused + by your customizations. diff --git a/docs/contributing.rst b/docs/contributing.rst index 0e5a08ecf..e582053ea 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -1 +1 @@ -.. include:: ../CONTRIBUTING +.. include:: ../CONTRIBUTING.rst diff --git a/front/.babelrc b/front/.babelrc deleted file mode 100644 index 13f0e4716..000000000 --- a/front/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "presets": [ - ["env", { "modules": false }], - "stage-2" - ], - "plugins": ["transform-runtime"], - "comments": false, - "env": { - "test": { - "presets": ["env", "stage-2"], - "plugins": [ "istanbul" ] - } - } -} diff --git a/front/.eslintignore b/front/.eslintignore deleted file mode 100644 index 34af3774f..000000000 --- a/front/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/front/.eslintrc.js b/front/.eslintrc.js deleted file mode 100644 index 67c085d60..000000000 --- a/front/.eslintrc.js +++ /dev/null @@ -1,27 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 - } -} diff --git a/front/.gitignore b/front/.gitignore new file mode 100644 index 000000000..185e66319 --- /dev/null +++ b/front/.gitignore @@ -0,0 +1,21 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/front/.postcssrc.js b/front/.postcssrc.js deleted file mode 100644 index ea9a5ab87..000000000 --- a/front/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserlist" field in package.json - "autoprefixer": {} - } -} diff --git a/front/Dockerfile b/front/Dockerfile index 69771c326..43c968012 100644 --- a/front/Dockerfile +++ b/front/Dockerfile @@ -5,9 +5,9 @@ RUN curl -L -o /usr/local/bin/jq https://github.com/stedolan/jq/releases/downloa EXPOSE 8080 WORKDIR /app/ -ADD package.json . +ADD package.json yarn.lock ./ RUN yarn install COPY . . -CMD ["npm", "run", "dev"] +CMD ["yarn", "serve"] diff --git a/front/babel.config.js b/front/babel.config.js new file mode 100644 index 000000000..ba179669a --- /dev/null +++ b/front/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/app' + ] +} diff --git a/front/build/build.js b/front/build/build.js deleted file mode 100644 index 6b8add100..000000000 --- a/front/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')() - -process.env.NODE_ENV = 'production' - -var ora = require('ora') -var rm = require('rimraf') -var path = require('path') -var chalk = require('chalk') -var webpack = require('webpack') -var config = require('../config') -var webpackConfig = require('./webpack.prod.conf') - -var spinner = ora('building for production...') -spinner.start() - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err - webpack(webpackConfig, function (err, stats) { - spinner.stop() - if (err) throw err - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n') - - console.log(chalk.cyan(' Build complete.\n')) - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )) - }) -}) diff --git a/front/build/check-versions.js b/front/build/check-versions.js deleted file mode 100644 index 100f3a0fe..000000000 --- a/front/build/check-versions.js +++ /dev/null @@ -1,48 +0,0 @@ -var chalk = require('chalk') -var semver = require('semver') -var packageConfig = require('../package.json') -var shell = require('shelljs') -function exec (cmd) { - return require('child_process').execSync(cmd).toString().trim() -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -] - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }) -} - -module.exports = function () { - var warnings = [] - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i] - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ) - } - } - - if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i] - console.log(' ' + warning) - } - console.log() - process.exit(1) - } -} diff --git a/front/build/dev-client.js b/front/build/dev-client.js deleted file mode 100644 index 18aa1e219..000000000 --- a/front/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill') -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload() - } -}) diff --git a/front/build/dev-server.js b/front/build/dev-server.js deleted file mode 100644 index 634a6d41e..000000000 --- a/front/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')() - -var config = require('../config') -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) -} - -var opn = require('opn') -var path = require('path') -var express = require('express') -var webpack = require('webpack') -var proxyMiddleware = require('http-proxy-middleware') -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf') - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port -var host = process.env.HOST || config.dev.host -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable - -var app = express() -var compiler = webpack(webpackConfig) - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}) - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: () => {} -}) -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }) - cb() - }) -}) - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context] - if (typeof options === 'string') { - options = { target: options } - } - app.use(proxyMiddleware(options.filter || context, options)) -}) - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()) - -// serve webpack bundle output -app.use(devMiddleware) - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware) - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) -app.use(staticPath, express.static('./static')) - -var uri = 'http://' + host + ':' + port - -var _resolve -var readyPromise = new Promise(resolve => { - _resolve = resolve -}) - -console.log('> Starting dev server...') -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n') - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri) - } - _resolve() -}) - -var server = app.listen(port, host) - -module.exports = { - ready: readyPromise, - close: () => { - server.close() - } -} diff --git a/front/build/utils.js b/front/build/utils.js deleted file mode 100644 index b1d54b4d6..000000000 --- a/front/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path') -var config = require('../config') -var ExtractTextPlugin = require('extract-text-webpack-plugin') - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory - return path.posix.join(assetsSubDirectory, _path) -} - -exports.cssLoaders = function (options) { - options = options || {} - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - } - - // generate loader string to be used with extract text plugin - function generateLoaders (loader, loaderOptions) { - var loaders = [cssLoader] - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }) - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }) - } else { - return ['vue-style-loader'].concat(loaders) - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - } -} - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = [] - var loaders = exports.cssLoaders(options) - for (var extension in loaders) { - var loader = loaders[extension] - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }) - } - return output -} diff --git a/front/build/vue-loader.conf.js b/front/build/vue-loader.conf.js deleted file mode 100644 index 7aee79bae..000000000 --- a/front/build/vue-loader.conf.js +++ /dev/null @@ -1,12 +0,0 @@ -var utils = require('./utils') -var config = require('../config') -var isProduction = process.env.NODE_ENV === 'production' - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }) -} diff --git a/front/build/webpack.base.conf.js b/front/build/webpack.base.conf.js deleted file mode 100644 index f47b326bf..000000000 --- a/front/build/webpack.base.conf.js +++ /dev/null @@ -1,67 +0,0 @@ -var path = require('path') -var utils = require('./utils') -var config = require('../config') -var vueLoaderConfig = require('./vue-loader.conf') - -function resolve (dir) { - return path.join(__dirname, '..', dir) -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -} diff --git a/front/build/webpack.dev.conf.js b/front/build/webpack.dev.conf.js deleted file mode 100644 index 5470402d0..000000000 --- a/front/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -var merge = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) -}) - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}) diff --git a/front/build/webpack.prod.conf.js b/front/build/webpack.prod.conf.js deleted file mode 100644 index 99713cc42..000000000 --- a/front/build/webpack.prod.conf.js +++ /dev/null @@ -1,124 +0,0 @@ -var path = require('path') -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -var merge = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var CopyWebpackPlugin = require('copy-webpack-plugin') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var ExtractTextPlugin = require('extract-text-webpack-plugin') -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ) - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}) - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin') - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ) -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin - webpackConfig.plugins.push(new BundleAnalyzerPlugin()) -} - -module.exports = webpackConfig diff --git a/front/build/webpack.test.conf.js b/front/build/webpack.test.conf.js deleted file mode 100644 index d6c8c8dd3..000000000 --- a/front/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils') -var webpack = require('webpack') -var merge = require('webpack-merge') -var baseConfig = require('./webpack.base.conf') - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}) - -// no need for app entry during tests -delete webpackConfig.entry - -module.exports = webpackConfig diff --git a/front/config/dev.env.js b/front/config/dev.env.js deleted file mode 100644 index efead7c84..000000000 --- a/front/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge') -var prodEnv = require('./prod.env') - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}) diff --git a/front/config/index.js b/front/config/index.js deleted file mode 100644 index d10f35e91..000000000 --- a/front/config/index.js +++ /dev/null @@ -1,65 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path') - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: false, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: parseInt(process.env.WEBPACK_DEVSERVER_PORT), - host: '127.0.0.1', - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: { - '**': { - target: 'http://nginx:6001', - changeOrigin: true, - ws: true, - filter: function (pathname, req) { - let proxified = ['rest', '.well-known', 'staticfiles', 'media', 'federation', 'api'] - let matches = proxified.filter(e => { - return pathname.match(`^/${e}`) - }) - return matches.length > 0 - } - }, - // '/.well-known': { - // target: 'http://nginx:6001', - // changeOrigin: true - // }, - // '/media': { - // target: 'http://nginx:6001', - // changeOrigin: true, - // }, - // '/staticfiles': { - // target: 'http://nginx:6001', - // changeOrigin: true, - // }, - - }, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -} diff --git a/front/config/prod.env.js b/front/config/prod.env.js deleted file mode 100644 index 40cf48973..000000000 --- a/front/config/prod.env.js +++ /dev/null @@ -1,5 +0,0 @@ -let url = process.env.INSTANCE_URL || '/' -module.exports = { - NODE_ENV: '"production"', - INSTANCE_URL: `"${url}"` -} diff --git a/front/config/test.env.js b/front/config/test.env.js deleted file mode 100644 index 89f90deb2..000000000 --- a/front/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge') -var devEnv = require('./dev.env') - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}) diff --git a/front/index.html b/front/index.html deleted file mode 100644 index da815d619..000000000 --- a/front/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Funkwhale - - - - -
- - - diff --git a/front/locales/ar/LC_MESSAGES/app.po b/front/locales/ar/LC_MESSAGES/app.po index b027ab1ee..20ec26881 100644 --- a/front/locales/ar/LC_MESSAGES/app.po +++ b/front/locales/ar/LC_MESSAGES/app.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Arabic (FunkWhale)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-22 15:50+0000\n" +"PO-Revision-Date: 2018-07-24 19:50+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Arabic \n" @@ -81,19 +81,19 @@ msgstr[5] "%{ count } مَقاطِع" #: front/src/components/common/Duration.vue:2 msgid "%{ hours } h %{ minutes } min" -msgstr "" +msgstr "%{ hours } سا %{ minutes } د" #: front/src/components/common/Duration.vue:5 msgid "%{ minutes } min" -msgstr "" +msgstr "%{ minutes } د" #: front/src/components/activity/Like.vue:7 msgid "%{ user } favorited a track" -msgstr "" +msgstr "أُعجِب %{ user } بمقطع" #: front/src/components/activity/Listen.vue:7 msgid "%{ user } listened to a track" -msgstr "" +msgstr "قام %{ user } بالاستماع إلى مَقطَع" #: front/src/components/auth/Profile.vue:49 msgid "%{ username }'s profile" @@ -131,9 +131,8 @@ msgstr[4] "%{ count } مَقاطِع" msgstr[5] "%{ count } مَقاطِع" #: front/src/components/About.vue:5 -#, fuzzy msgid "About %{ instance }" -msgstr "عن مثيل الخادوم هذا" +msgstr "عن %{ instance }" #: front/src/App.vue:54 msgid "About Funkwhale" @@ -146,11 +145,11 @@ msgstr "عن مثيل الخادوم هذا" #: front/src/components/manage/library/RequestsTable.vue:28 #: front/src/components/manage/library/RequestsTable.vue:62 msgid "Accepted" -msgstr "" +msgstr "تم قبوله" #: front/src/components/auth/SubsonicTokenForm.vue:111 msgid "Access disabled" -msgstr "" +msgstr "عُطّل النفاذ" #: front/src/components/Home.vue:109 msgid "Access your music from a clean interface that focus on what really matters" @@ -502,7 +501,7 @@ msgstr "" #: front/src/components/auth/Settings.vue:98 msgid "Changing your password will have the following consequences" -msgstr "" +msgstr "سوف ينجرّ ما يلي عند تعديل كلمتك السرية" #: front/src/App.vue:4 msgid "Choose your instance" @@ -615,9 +614,8 @@ msgid "Creation date" msgstr "تاريخ الإنشاء" #: front/src/components/auth/Settings.vue:54 -#, fuzzy msgid "Current avatar" -msgstr "المَقطَع الحالي" +msgstr "الصورة الرمزية الحالية" #: front/src/components/playlists/PlaylistModal.vue:8 msgid "Current track" @@ -701,9 +699,8 @@ msgid "Do you want to delete the playlist \"%{ playlist }\"?" msgstr "متأكّد مِن أنك تريد حذف قائمة المَقاطِع الموسيقية \"%{ playlist }\" ؟" #: front/src/views/radios/Detail.vue:26 -#, fuzzy msgid "Do you want to delete the radio \"%{ radio }\"?" -msgstr "أتريد حقا حذف إذاعة \"{{ radio }}\" ؟" +msgstr "أتريد حقا حذف إذاعة \"%{ radio }\" ؟" #: front/src/components/common/ActionTable.vue:29 msgid "Do you want to launch %{ action } on %{ count } element?" @@ -908,7 +905,7 @@ msgstr "الفديرالية" #: front/src/views/federation/LibraryDetail.vue:3 msgid "File mirroring" -msgstr "" +msgstr "النسخ المتماثل للملفات" #: front/src/components/library/import/FileUpload.vue:43 msgid "File name" @@ -1037,7 +1034,7 @@ msgstr "جلب البيانات الوصفية ذات الصّلة" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "ساعدنا على ترجمة فانك وايل" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1192,9 +1189,8 @@ msgid "Instance information" msgstr "معلومات عن مثيل الخادوم" #: front/src/components/library/Radios.vue:9 -#, fuzzy msgid "Instance radios" -msgstr "معلومات عن مثيل الخادوم" +msgstr "إذاعات مثيل الخادوم" #: front/src/views/admin/Settings.vue:75 msgid "Instance settings" @@ -1395,6 +1391,13 @@ msgid "" " \n" " project, which you can think about as the Wikipedia of music." msgstr "" +"البيانات الوصفية هي الم البيانات المتعلقة بالموسيقى التي تريد استيرادها. و " +"هي تحتوي على معلومات عن الفنانين و الألبومات و المَقاطِع الموسيقية. و بغرض " +"إنشاء مكتبة بها جودة، يُستحسن جلب البيانات مِن \n" +" \n" +" MusicBrainz\n" +" \n" +" مشروع بمثابة ويكيبيديا للموسيقى." #: front/src/components/Sidebar.vue:48 #: src/components/library/import/Main.vue:18 @@ -1498,6 +1501,8 @@ msgstr "الكلمة السرية الجديدة" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." msgstr "" +"حينما تتم عملية إرسال كافة ملفاتك، إضغط على الزر التالي للتحقق مِن حالة " +"الإستيراد." #: front/src/components/federation/LibraryCard.vue:21 #: front/src/components/manage/users/InvitationsTable.vue:20 @@ -1683,6 +1688,8 @@ msgstr "الرجاء التأكّد مِن صحة اسم المستخدِم و #: front/src/components/auth/Settings.vue:46 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." msgstr "" +"نسق PNG أو GIF أو JPG. الحجم الأقصى 2 ميغابيت. سيتم تغيير حجمها إلى 400×400 " +"بكسل." #: front/src/components/library/import/Main.vue:26 msgid "Previous step" @@ -1722,18 +1729,16 @@ msgid "Radio Builder" msgstr "مُنشِئ الإذاعات و الراديو" #: front/src/components/library/radios/Builder.vue:15 -#, fuzzy msgid "Radio created" -msgstr "إسم الإذاعة" +msgstr "تم إنشاء الإذاعة" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" msgstr "إسم الإذاعة" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "إسم الإذاعة" +msgstr "تم تحديث الإذاعة" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 @@ -1746,12 +1751,11 @@ msgstr "أحدث الأنشطة على مثيل الخادوم هذا" #: front/src/components/library/Home.vue:24 msgid "Recently added" -msgstr "" +msgstr "تمت إضافتها مؤخرا" #: front/src/components/library/Home.vue:11 -#, fuzzy msgid "Recently favorited" -msgstr "في المفضلة" +msgstr "تمت إضافتها إلى المفضلة حديثا" #: front/src/components/library/Home.vue:6 msgid "Recently listened" @@ -1787,9 +1791,8 @@ msgid "Remove" msgstr "حذف" #: front/src/components/auth/Settings.vue:58 -#, fuzzy msgid "Remove avatar" -msgstr "حذف" +msgstr "حذف الصورة الرمزية" #: front/src/components/favorites/TrackFavoriteIcon.vue:19 msgid "Remove from favorites" @@ -2257,9 +2260,8 @@ msgid "Tracks available in this library" msgstr "المَقاطِع المتوفّرة في هذه المكتبة" #: front/src/components/library/Artist.vue:54 -#, fuzzy msgid "Tracks by this artist" -msgstr "مِن ألبومات هذا الفنان" +msgstr "مَقاطِع لهذا الفنان" #: front/src/components/instance/Stats.vue:25 msgid "Tracks favorited" @@ -2275,7 +2277,7 @@ msgstr "" #: front/src/components/manage/library/FilesTable.vue:41 msgid "Type" -msgstr "" +msgstr "النوع" #: front/src/components/About.vue:15 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." @@ -2294,9 +2296,8 @@ msgid "Unmute" msgstr "إلغاء الكتم" #: front/src/components/auth/Settings.vue:50 -#, fuzzy msgid "Update avatar" -msgstr "تحديث قائمة المَقاطِع الموسيقية" +msgstr "تحديث الصورة الرمزية" #: front/src/components/playlists/Form.vue:33 msgid "Update playlist" @@ -2317,7 +2318,7 @@ msgstr "أرسل" #: front/src/components/auth/Settings.vue:45 msgid "Upload a new avatar" -msgstr "" +msgstr "إرسال صورة رمزية جديدة" #: front/src/components/library/import/Main.vue:7 msgid "Uploaded files or external source" @@ -2349,7 +2350,7 @@ msgstr "" #: front/src/components/manage/users/InvitationsTable.vue:49 msgid "Used" -msgstr "" +msgstr "مُستخدَم" #: front/src/components/manage/library/RequestsTable.vue:47 msgid "User" @@ -2360,9 +2361,8 @@ msgid "User activity" msgstr "نشاط المستخدِم" #: front/src/components/library/Radios.vue:20 -#, fuzzy msgid "User radios" -msgstr "المستخدِمون" +msgstr "إذاعات المستخدِمين" #: front/src/components/auth/Signup.vue:19 #: front/src/components/manage/users/UsersTable.vue:37 @@ -2394,24 +2394,23 @@ msgstr "إطّلع عليه على ميوزيك براينز" #: front/src/components/playlists/PlaylistModal.vue:20 msgid "We cannot add the track to a playlist" -msgstr "" +msgstr "لا يمكننا إضافة المَقطَع إلى قائمة التشغيل" #: front/src/components/playlists/Form.vue:14 msgid "We cannot create the playlist" -msgstr "" +msgstr "لا يمكننا إنشاء قائمة التشغيل" #: front/src/components/auth/Signup.vue:13 msgid "We cannot create your account" -msgstr "" +msgstr "لا يمكننا إنشاء حسابك" #: front/src/components/auth/Login.vue:7 msgid "We cannot log you in" -msgstr "" +msgstr "تعذر علينا تسجيل دخولك" #: front/src/components/auth/Settings.vue:38 -#, fuzzy msgid "We cannot save your avatar" -msgstr "تعذّر علينا حفظ إعداداتك" +msgstr "تعذّر علينا حفظ صورتك الرمزية" #: front/src/components/auth/Settings.vue:14 msgid "We cannot save your settings" @@ -2431,7 +2430,7 @@ msgstr "نعتقد أنّ الاستماع إلى الموسيقى ينبغي أ #: front/src/components/PageNotFound.vue:10 msgid "We're sorry, the page you asked for does not exist:" -msgstr "" +msgstr "المعذرة، إنّ الصفحة التي قمت بطلبها غير موجودة :" #: front/src/components/requests/Form.vue:21 msgid "We've received your request, you'll get some groove soon ;)" @@ -2463,15 +2462,15 @@ msgstr "نعم" #: front/src/components/auth/Logout.vue:8 msgid "Yes, log me out!" -msgstr "" +msgstr "نعم، أؤكد الخروج !" #: front/src/components/auth/Logout.vue:7 msgid "You are currently logged in as %{ username }" -msgstr "" +msgstr "أنت متّصل حاليا بصفة %{ username }" #: front/src/components/library/import/Main.vue:111 msgid "You can also skip this step and enter metadata manually." -msgstr "" +msgstr "يمكنك طبعًا تخطي هذه الخطوة و إدخال البيانات الوصفية يدويًا." #: front/src/components/Home.vue:136 msgid "You can invite friends and family to your instance so they can enjoy your music" @@ -2487,7 +2486,7 @@ msgstr "" #: front/src/components/Sidebar.vue:156 msgid "You have a radio playing" -msgstr "" +msgstr "إنك تستمع إلى إذاعة" #: front/src/App.vue:6 msgid "You need to select an instance in order to continue" diff --git a/front/locales/de/LC_MESSAGES/app.po b/front/locales/de/LC_MESSAGES/app.po new file mode 100644 index 000000000..56926040c --- /dev/null +++ b/front/locales/de/LC_MESSAGES/app.po @@ -0,0 +1,2511 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the front package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: front 1.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-22 14:12+0200\n" +"PO-Revision-Date: 2018-07-27 15:49+0000\n" +"Last-Translator: jovuit \n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 2.20\n" + +#: front/src/components/playlists/PlaylistModal.vue:9 +msgid "\"%{ title }\", by %{ artist }" +msgstr "\"%{ title }\", von %{ artist }" + +#: front/src/components/Sidebar.vue:24 +msgid "(%{ index } of %{ length })" +msgstr "(%{ index } von %{ length })" + +#: front/src/components/Sidebar.vue:22 +msgid "(empty)" +msgstr "(leer)" + +#: front/src/components/common/ActionTable.vue:43 +#: front/src/components/common/ActionTable.vue:51 +msgid "%{ count } on %{ total } selected" +msgid_plural "%{ count } on %{ total } selected" +msgstr[0] "%{ count } von %{ total } ausgewählt" +msgstr[1] "%{ count } von %{ total } ausgewählt" + +#: front/src/components/Sidebar.vue:116 src/views/federation/LibraryDetail.vue:87 +msgid "%{ count } track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count } Track" +msgstr[1] "%{ count } Tracks" + +#: front/src/components/library/Artist.vue:13 +msgid "%{ count } track in %{ albumsCount } albums" +msgid_plural "%{ count } tracks in %{ albumsCount } albums" +msgstr[0] "%{ count } Track in %{ albumsCount } Alben" +msgstr[1] "%{ count } Tracks in %{ albumsCount } Alben" + +#: front/src/components/library/radios/Builder.vue:76 +msgid "%{ count } track matching combined filters" +msgid_plural "%{ count } tracks matching combined filters" +msgstr[0] "%{ count } Track trifft die ausgewählten Filter" +msgstr[1] "%{ count } Tracks treffen die ausgewählten Filter" + +#: front/src/components/playlists/Card.vue:18 +msgid "%{ count} track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count} Track" +msgstr[1] "%{ count} Tracks" + +#: front/src/components/common/Duration.vue:2 +msgid "%{ hours } h %{ minutes } min" +msgstr "%{ hours } h %{ minutes } min" + +#: front/src/components/common/Duration.vue:5 +msgid "%{ minutes } min" +msgstr "%{ minutes } min" + +#: front/src/components/activity/Like.vue:7 +msgid "%{ user } favorited a track" +msgstr "%{ user } hat einen Track zu seinen Favoriten hinzugefügt" + +#: front/src/components/activity/Listen.vue:7 +msgid "%{ user } listened to a track" +msgstr "%{ user } hat einen Track angehört" + +#: front/src/components/auth/Profile.vue:49 +msgid "%{ username }'s profile" +msgstr "Profil von %{ username }" + +#: front/src/components/audio/artist/Card.vue:41 +msgid "1 album" +msgid_plural "%{ count } albums" +msgstr[0] "1 Album" +msgstr[1] "%{ count } Alben" + +#: front/src/components/favorites/List.vue:10 +msgid "1 favorite" +msgid_plural "%{ count } favorites" +msgstr[0] "1 Favorit" +msgstr[1] "%{ count } Favoriten" + +#: front/src/components/audio/album/Card.vue:54 +#: front/src/components/federation/LibraryCard.vue:25 +msgid "1 track" +msgid_plural "%{ count } tracks" +msgstr[0] "1 Track" +msgstr[1] "%{ count } Tracks" + +#: front/src/components/About.vue:5 +msgid "About %{ instance }" +msgstr "Über %{ instance }" + +#: front/src/App.vue:54 +msgid "About Funkwhale" +msgstr "Über Funkwhale" + +#: front/src/App.vue:32 src/components/About.vue:8 src/components/About.vue:55 +msgid "About this instance" +msgstr "Über diese Instanz" + +#: front/src/components/manage/library/RequestsTable.vue:28 +#: front/src/components/manage/library/RequestsTable.vue:62 +msgid "Accepted" +msgstr "Bestätigt" + +#: front/src/components/auth/SubsonicTokenForm.vue:111 +msgid "Access disabled" +msgstr "Zugriff ausgeschaltet" + +#: front/src/components/Home.vue:109 +#, fuzzy +msgid "Access your music from a clean interface that focus on what really matters" +msgstr "" +"Greife deiner Musik zu durch eine klare Oberfläche, die auf das Wichtigste " +"fokusiert" + +#: front/src/views/admin/users/UsersDetail.vue:54 +msgid "Account active" +msgstr "Konto aktiv" + +#: front/src/components/auth/Settings.vue:5 +msgid "Account settings" +msgstr "Kontoeinstellungen" + +#: front/src/components/auth/Settings.vue:257 +msgid "Account Settings" +msgstr "Kontoeinstellungen" + +#: front/src/components/manage/users/UsersTable.vue:39 +msgid "Account status" +msgstr "Kontostatus" + +#: front/src/views/auth/PasswordReset.vue:14 +msgid "Account's email" +msgstr "Konto's Email" + +#: front/src/components/common/ActionTable.vue:82 +msgid "Action %{ action } was launched successfully on %{ count } element" +msgid_plural "Action %{ action } was launched successfully on %{ count } elements" +msgstr[0] "" +"Die Aktion %{ action } wurde erfolgreich auf %{ count } Element gestartet" +msgstr[1] "" +"Die Aktion %{ action } wurde erfolgreich auf %{ count } Elemente gestartet" + +#: front/src/components/common/ActionTable.vue:8 +#: front/src/components/federation/LibraryFollowTable.vue:24 +#: front/src/components/library/radios/Builder.vue:60 +#: front/src/components/manage/library/RequestsTable.vue:54 +msgid "Actions" +msgstr "Aktionen" + +#: front/src/components/manage/users/UsersTable.vue:53 +msgid "Active" +msgstr "Aktiv" + +#: front/src/components/Sidebar.vue:60 +msgid "Activity" +msgstr "Aktivität" + +#: front/src/components/federation/LibraryFollowTable.vue:21 +msgid "Actor" +msgstr "Aktor" + +#: front/src/views/federation/LibraryList.vue:8 +msgid "Add a new library" +msgstr "Eine neue Mediathek einfügen" + +#: front/src/components/library/radios/Builder.vue:46 +msgid "Add filter" +msgstr "Filter einfügen" + +#: front/src/components/library/radios/Builder.vue:36 +msgid "Add filters to customize your radio" +msgstr "Filter einfügen um deine Radio zu personalisieren" + +#: front/src/components/audio/PlayButton.vue:53 +msgid "Add to current queue" +msgstr "Zur Wiedergabeliste hinzufügen" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:4 +#: front/src/components/favorites/TrackFavoriteIcon.vue:21 +msgid "Add to favorites" +msgstr "Zu den Favoriten hinzufügen" + +#: front/src/components/playlists/TrackPlaylistIcon.vue:6 +#: front/src/components/playlists/TrackPlaylistIcon.vue:32 +msgid "Add to playlist..." +msgstr "Zu einer Playlist hinzufügen..." + +#: front/src/components/audio/PlayButton.vue:14 +msgid "Add to queue" +msgstr "Zur Wiedergabeliste hinzufügen" + +#: front/src/components/playlists/PlaylistModal.vue:116 +msgid "Add to this playlist" +msgstr "Zu dieser Playlist hinzufügen" + +#: front/src/components/playlists/PlaylistModal.vue:54 +msgid "Add track" +msgstr "Track hinzufügen" + +#: front/src/components/manage/users/UsersTable.vue:69 +msgid "Admin" +msgstr "Admin" + +#: front/src/components/Sidebar.vue:64 +msgid "Administration" +msgstr "Verwaltung" + +#: front/src/components/audio/SearchBar.vue:26 src/components/audio/track/Table.vue:8 +#: front/src/components/federation/LibraryTrackTable.vue:49 +#: front/src/components/library/Album.vue:91 +#: front/src/components/manage/library/FilesTable.vue:39 +#: front/src/components/metadata/Search.vue:134 +msgid "Album" +msgstr "Album" + +#: front/src/components/library/import/ReleaseImport.vue:3 +msgid "Album %{ title } (%{ count } track) by %{ artist }" +msgid_plural "Album %{ title } (%{ count } tracks) by %{ artist }" +msgstr[0] "Album %{ title } (%{ count } Track) von %{ artist }" +msgstr[1] "Album %{ title } (%{ count } Tracks) von %{ artist }" + +#: front/src/components/library/Album.vue:12 +msgid "Album containing %{ count } track, by %{ artist }" +msgid_plural "Album containing %{ count } tracks, by %{ artist }" +msgstr[0] "Album mit %{ count } Track, von %{ artist }" +msgstr[1] "Album mit %{ count } Tracks, von %{ artist }" + +#: front/src/components/library/Track.vue:20 +msgid "Album page" +msgstr "Albumseite" + +#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48 +#: front/src/components/manage/library/RequestsTable.vue:50 +#: front/src/components/requests/Form.vue:9 +msgid "Albums" +msgstr "Alben" + +#: front/src/components/library/Artist.vue:44 +msgid "Albums by this artist" +msgstr "Alben von diesem Künstler oder Künstlerin" + +#: front/src/components/manage/library/RequestsTable.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:19 +msgid "All" +msgstr "Alles" + +#: front/src/components/playlists/Editor.vue:13 +msgid "An error occured while saving your changes" +msgstr "Ein Fehler ist während der Speicherung deiner Veränderungen aufgetreten" + +#: front/src/components/auth/Login.vue:10 +msgid "An unknown error happend, this can mean the server is down or cannot be reached" +msgstr "" +"Ein unbenkannter Fehler ist aufgetreten, d.h. der Server ist ausgescahltet " +"oder kann nicht erreicht werden" + +#: front/src/components/federation/LibraryTrackTable.vue:11 +#: front/src/components/library/import/BatchDetail.vue:68 +#: front/src/components/library/import/BatchList.vue:13 +#: front/src/components/library/import/BatchList.vue:22 +msgid "Any" +msgstr "Alle" + +#: front/src/components/library/import/BatchList.vue:24 +msgid "API" +msgstr "API" + +#: front/src/components/federation/LibraryFollowTable.vue:68 +#: front/src/components/federation/LibraryFollowTable.vue:78 +msgid "Approve" +msgstr "Zustimmen" + +#: front/src/components/federation/LibraryFollowTable.vue:70 +msgid "Approve access?" +msgstr "Zugriff genehmigen?" + +#: front/src/components/federation/LibraryFollowTable.vue:38 +msgid "Approved" +msgstr "Genehmigt" + +#: front/src/components/auth/Logout.vue:5 +msgid "Are you sure you want to log out?" +msgstr "Möchtest du dich wirklich ausloggen?" + +#: front/src/components/audio/SearchBar.vue:25 src/components/audio/track/Table.vue:7 +#: front/src/components/federation/LibraryTrackTable.vue:48 +#: front/src/components/library/Artist.vue:119 +#: front/src/components/manage/library/FilesTable.vue:38 +#: front/src/components/manage/library/RequestsTable.vue:49 +#: front/src/components/metadata/Search.vue:130 +msgid "Artist" +msgstr "Künstler oder Künstlerin" + +#: front/src/components/requests/Form.vue:5 +msgid "Artist name" +msgstr "Künstlername" + +#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23 +msgid "Artist page" +msgstr "Künstlerseite" + +#: front/src/components/audio/Search.vue:65 +msgid "Artist, album, track..." +msgstr "Künstler oder Künstlerin, Album, Track..." + +#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42 +#: front/src/components/library/Artists.vue:119 src/components/library/Library.vue:7 +msgid "Artists" +msgstr "Künstler und Künstlerinnen" + +#: front/src/components/favorites/List.vue:33 +#: front/src/components/federation/LibraryTrackTable.vue:28 +#: front/src/components/library/Artists.vue:25 src/components/library/Radios.vue:44 +#: front/src/components/manage/library/FilesTable.vue:19 +#: front/src/components/manage/library/RequestsTable.vue:19 +#: front/src/components/manage/users/UsersTable.vue:19 +#: front/src/views/federation/LibraryList.vue:28 src/views/playlists/List.vue:27 +msgid "Ascending" +msgstr "Zunehmend" + +#: front/src/views/auth/PasswordReset.vue:27 +msgid "Ask for a password reset" +msgstr "Eine Kennwortzurücksetzung beantragen" + +#: front/src/views/federation/LibraryDetail.vue:56 +msgid "Auto importing" +msgstr "Automatischer Import" + +#: front/src/components/playlists/PlaylistModal.vue:26 +msgid "Available playlists" +msgstr "Verfügbare Playlists" + +#: front/src/components/auth/Settings.vue:34 +msgid "Avatar" +msgstr "Avatar" + +#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24 +#: front/src/views/auth/PasswordResetConfirm.vue:18 +msgid "Back to login" +msgstr "Zurück zur Anmeldung" + +#: front/src/views/federation/LibraryFollowersList.vue:5 +msgid "Be careful when accepting follow requests, as it means the follower will have access to your entire library." +msgstr "" +"Vorsicht beim Akzeptieren von Folgen-Anfragen: Deine Follower und " +"Followerinnen haben Zugriff auf deine gesamte Mediathek." + +#: front/src/components/library/Track.vue:80 +#: front/src/components/manage/library/FilesTable.vue:42 +msgid "Bitrate" +msgstr "Bitrate" + +#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4 +msgid "Browse" +msgstr "Browsen" + +#: front/src/components/Sidebar.vue:50 +msgid "Browse library" +msgstr "Die Mediathek durchsuchen" + +#: front/src/components/library/Artists.vue:4 +msgid "Browsing artists" +msgstr "Künstler und Künstlerinnen durchsuchen" + +#: front/src/views/federation/LibraryTrackList.vue:3 +msgid "Browsing federated tracks" +msgstr "Föderierte Tracks durchsuchen" + +#: front/src/views/federation/LibraryFollowersList.vue:3 +msgid "Browsing followers" +msgstr "Follower und Followerinnen durchsuchen" + +#: front/src/views/federation/LibraryList.vue:3 +msgid "Browsing libraries" +msgstr "Mediatheke durchsuchen" + +#: front/src/views/playlists/List.vue:3 +msgid "Browsing playlists" +msgstr "Playlists durchsuchen" + +#: front/src/components/library/Radios.vue:4 +msgid "Browsing radios" +msgstr "Radios durchsuchen" + +#: front/src/components/library/radios/Builder.vue:5 +msgid "Builder" +msgstr "Editor" + +#: front/src/components/audio/album/Card.vue:13 +msgid "By %{ artist }" +msgstr "Von %{ artist }" + +#: front/src/components/federation/LibraryFollowTable.vue:57 +msgid "By confirming, %{ username } will be denied access to your library." +msgstr "" +"Beim Bestätigen wird %{ username } der Zugriff zu deiner Mediathek abgelehnt." + +#: front/src/components/federation/LibraryFollowTable.vue:73 +msgid "By confirming, %{ username } will be granted access to your library." +msgstr "" +"Beim Bestätigen wird %{ username } der Zugriff zu deiner Mediathek " +"zugelassen." + +#: front/src/components/audio/track/Table.vue:43 +#: front/src/components/common/DangerousButton.vue:17 +#: front/src/components/library/radios/Filter.vue:53 +#: front/src/components/playlists/PlaylistModal.vue:63 +msgid "Cancel" +msgstr "Absagen" + +#: front/src/components/library/radios/Builder.vue:59 +msgid "Candidates" +msgstr "Kandidaten" + +#: front/src/components/auth/Settings.vue:76 +msgid "Cannot change your password" +msgstr "Das Kennwort kann nicht geändert werden" + +#: front/src/App.vue:66 +msgid "Change language" +msgstr "Sprache ändern" + +#: front/src/components/auth/Settings.vue:67 +msgid "Change my password" +msgstr "Mein Kennwort wechseln" + +#: front/src/components/auth/Settings.vue:95 +msgid "Change password" +msgstr "Kennwortwechsel" + +#: front/src/views/auth/PasswordResetConfirm.vue:4 +#: front/src/views/auth/PasswordResetConfirm.vue:62 +msgid "Change your password" +msgstr "Kennwortwechsel" + +#: front/src/components/auth/Settings.vue:96 +msgid "Change your password?" +msgstr "Dein Kennwort wechseln?" + +#: front/src/components/playlists/Editor.vue:21 +msgid "Changes synced with server" +msgstr "Änderungen synchronisiert" + +#: front/src/components/auth/Settings.vue:70 +msgid "Changing your password will also change your Subsonic API password if you have requested one." +msgstr "" +"Mit Änderung deines Kennworts wird das Kennwort für die Subsonic-API " +"zurückgesetzt, sofern du eins erstellt hast." + +#: front/src/components/auth/Settings.vue:98 +msgid "Changing your password will have the following consequences" +msgstr "Dein Kennwort wechseln hat die folgenden Auswirkungen" + +#: front/src/App.vue:4 +msgid "Choose your instance" +msgstr "Wähle deine Instanz aus" + +#: front/src/components/Home.vue:64 +msgid "Clean library" +msgstr "Eine hochwertige Mediathek" + +#: front/src/components/manage/users/InvitationForm.vue:37 +msgid "Clear" +msgstr "Löschen" + +#: front/src/components/playlists/Editor.vue:40 +#: front/src/components/playlists/Editor.vue:45 +msgid "Clear playlist" +msgstr "Playlist entleeren" + +#: front/src/components/audio/Player.vue:270 +msgid "Clear your queue" +msgstr "Wiedergabeliste entleeren" + +#: front/src/components/library/import/BatchList.vue:23 +msgid "CLI" +msgstr "CLI" + +#: front/src/components/Home.vue:44 +msgid "Click once, listen for hours using built-in radios" +msgstr "Einmal clicken, und Musik studenlang dank der Radios anhören" + +#: front/src/components/manage/library/RequestsTable.vue:30 +#: front/src/components/manage/library/RequestsTable.vue:64 +msgid "Closed" +msgstr "Geschlossen" + +#: front/src/components/manage/users/InvitationForm.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:42 +msgid "Code" +msgstr "Kode" + +#: front/src/components/audio/album/Card.vue:43 +#: front/src/components/audio/artist/Card.vue:33 +#: front/src/components/discussion/Comment.vue:20 +msgid "Collapse" +msgstr "Minimieren" + +#: front/src/components/manage/library/RequestsTable.vue:51 +#: front/src/components/requests/Form.vue:14 +msgid "Comment" +msgstr "Kommentar" + +#: front/src/components/library/radios/Builder.vue:58 +msgid "Config" +msgstr "Einstellung" + +#: front/src/components/common/DangerousButton.vue:21 +msgid "Confirm" +msgstr "Bestätigen" + +#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20 +#: front/src/views/auth/EmailConfirm.vue:51 +msgid "Confirm your email" +msgstr "Deine Emailadresse bestätigen" + +#: front/src/views/auth/EmailConfirm.vue:13 +msgid "Confirmation code" +msgstr "Bestätigungskode" + +#: front/src/components/playlists/Editor.vue:163 +msgid "Copy tracks from current queue to playlist" +msgstr "Die Wiedergabeliste zur Playlist hinzufügen" + +#: front/src/components/Home.vue:88 +#, fuzzy +msgid "Covers, lyrics, our goal is to have them all ;)" +msgstr "Songtexte, Album-Covers, wir möchten alles haben ;)" + +#: front/src/components/auth/Signup.vue:4 +msgid "Create a funkwhale account" +msgstr "Sich anmelden" + +#: front/src/components/playlists/Form.vue:2 +msgid "Create a new playlist" +msgstr "Eine neue Playlist erstellen" + +#: front/src/components/auth/Login.vue:17 +msgid "Create an account" +msgstr "Konto erstellen" + +#: front/src/components/manage/library/RequestsTable.vue:88 +#: front/src/components/requests/Card.vue:25 +msgid "Create import" +msgstr "Import erstellen" + +#: front/src/components/auth/Signup.vue:51 +msgid "Create my account" +msgstr "Mich anmelden" + +#: front/src/components/playlists/Form.vue:34 +msgid "Create playlist" +msgstr "Eine Playlist erstellen" + +#: front/src/components/library/Radios.vue:23 +msgid "Create your own radio" +msgstr "Dein eigenes Radio erstellen" + +#: front/src/components/federation/LibraryFollowTable.vue:22 +#: front/src/components/manage/library/RequestsTable.vue:52 +#: front/src/components/manage/users/InvitationsTable.vue:40 +msgid "Creation date" +msgstr "Erstelldatum" + +#: front/src/components/auth/Settings.vue:54 +msgid "Current avatar" +msgstr "Aktuelles Avatar" + +#: front/src/components/playlists/PlaylistModal.vue:8 +msgid "Current track" +msgstr "Aktueller Track" + +#: front/src/components/manage/library/FilesTable.vue:189 +#: front/src/components/manage/library/RequestsTable.vue:195 +#: front/src/components/manage/users/InvitationsTable.vue:166 +#: front/src/views/playlists/Detail.vue:33 +msgid "Delete" +msgstr "Löschen" + +#: front/src/views/playlists/Detail.vue:38 +msgid "Delete playlist" +msgstr "Playlist löschen" + +#: front/src/views/radios/Detail.vue:28 +msgid "Delete radio" +msgstr "Radio löschen" + +#: front/src/components/federation/LibraryFollowTable.vue:52 +#: front/src/components/federation/LibraryFollowTable.vue:63 +msgid "Deny" +msgstr "Ablehnen" + +#: front/src/components/federation/LibraryFollowTable.vue:54 +msgid "Deny access?" +msgstr "Zugriff ablehnen?" + +#: front/src/components/favorites/List.vue:34 +#: front/src/components/federation/LibraryTrackTable.vue:29 +#: front/src/components/library/Artists.vue:26 src/components/library/Radios.vue:47 +#: front/src/components/manage/library/FilesTable.vue:20 +#: front/src/components/manage/library/RequestsTable.vue:20 +#: front/src/components/manage/users/UsersTable.vue:20 +#: front/src/views/federation/LibraryList.vue:29 src/views/playlists/List.vue:28 +msgid "Descending" +msgstr "Absteigend" + +#: front/src/components/federation/LibraryCard.vue:50 +msgid "Detail" +msgstr "Detail" + +#: front/src/views/admin/users/UsersDetail.vue:146 +msgid "Determine if the user account is active or not. Inactive users cannot login or use the service." +msgstr "" +"Bestimmt, ob das Konto aktiv ist oder nicht. Inaktive Konten können sich " +"weder einloggen noch den Service nutzen." + +#: front/src/components/auth/Settings.vue:104 +#: front/src/components/auth/SubsonicTokenForm.vue:52 +msgid "Disable access" +msgstr "Zugriff ausschalten" + +#: front/src/components/auth/SubsonicTokenForm.vue:49 +msgid "Disable Subsonic access" +msgstr "Subsonic-Zugriff ausschalten" + +#: front/src/components/auth/SubsonicTokenForm.vue:50 +msgid "Disable Subsonic API access?" +msgstr "Subsonic-API-Zugriff ausschalten?" + +#: front/src/components/auth/SubsonicTokenForm.vue:14 +msgid "Discover how to use Funkwhale from other apps" +msgstr "Entdecke, wie du Funkwhale von anderen Apps benutzen kannst" + +#: front/src/components/library/radios/Builder.vue:26 +msgid "Display publicly" +msgstr "Öffentlich zeigen" + +#: front/src/components/playlists/Editor.vue:42 +msgid "Do you want to clear the playlist \"%{ playlist }\"?" +msgstr "Möchtest du die Playlist \"%{ playlist }\" wirklich leeren?" + +#: front/src/components/common/DangerousButton.vue:7 +msgid "Do you want to confirm this action?" +msgstr "Aktion bestätigen?" + +#: front/src/views/playlists/Detail.vue:35 +msgid "Do you want to delete the playlist \"%{ playlist }\"?" +msgstr "Möchtest du die Playlist \"%{ playlist } löschen?" + +#: front/src/views/radios/Detail.vue:26 +msgid "Do you want to delete the radio \"%{ radio }\"?" +msgstr "Möchtest du das Radio \"%{ radio }\" löschen?" + +#: front/src/components/common/ActionTable.vue:29 +msgid "Do you want to launch %{ action } on %{ count } element?" +msgid_plural "Do you want to launch %{ action } on %{ count } elements?" +msgstr[0] "Möchtest du %{ action } auf %{ count } Element ausführen?" +msgstr[1] "Möchtest du %{ action } auf %{ count } Elemente ausführen?" + +#: front/src/components/Sidebar.vue:113 +msgid "Do you want to restore your previous queue?" +msgstr "Möchtest du die Wiedergabelliste zurückerstellen?" + +#: front/src/App.vue:38 +msgid "Documentation" +msgstr "Dokumentation" + +#: front/src/components/audio/track/Table.vue:24 src/components/library/Track.vue:48 +msgid "Download" +msgstr "Herunterladen" + +#: front/src/components/audio/track/Table.vue:27 +msgid "Download tracks" +msgstr "Tracks herunterladen" + +#: front/src/components/playlists/Editor.vue:49 +msgid "Drag and drop rows to reorder tracks in the playlist" +msgstr "Um die Playlist umzuordnen, klicke und schiebe die Tracks hin und her" + +#: front/src/components/library/Track.vue:58 +#: front/src/components/manage/library/FilesTable.vue:43 +msgid "Duration" +msgstr "Dauer" + +#: front/src/components/Home.vue:96 +msgid "Easy to use" +msgstr "Leicht zu bedienen" + +#: front/src/components/About.vue:21 +msgid "Edit instance info" +msgstr "Die Infos dieser Instanz bearbeiten" + +#: front/src/components/radios/Card.vue:20 src/views/playlists/Detail.vue:30 +msgid "Edit..." +msgstr "Bearbeiten..." + +#: front/src/components/auth/Signup.vue:29 +#: front/src/components/manage/users/UsersTable.vue:38 +msgid "Email" +msgstr "E-Mail-Adresse" + +#: front/src/views/admin/users/UsersDetail.vue:29 +msgid "Email address" +msgstr "E-Mail-Adresse" + +#: front/src/views/auth/EmailConfirm.vue:23 +msgid "Email confirmed" +msgstr "E-Mail-Adresse bestätigt" + +#: front/src/views/playlists/Detail.vue:29 +msgid "End edition" +msgstr "Bearbeitung abschließen" + +#: front/src/components/library/import/FileUpload.vue:4 +msgid "Ensure your music files are properly tagged before uploading them." +msgstr "" +"Stelle sicher, dass deine Dateien angemessen verschlagwortet sind bevor du " +"sie hochlädst." + +#: front/src/components/library/Radios.vue:140 +msgid "Enter a radio name..." +msgstr "Name des Radios eingeben..." + +#: front/src/components/library/Artists.vue:118 +msgid "Enter an artist name..." +msgstr "Künstlername eingeben..." + +#: front/src/views/federation/LibraryList.vue:122 +msgid "Enter an library domain name..." +msgstr "Domainname eingeben..." + +#: front/src/views/playlists/List.vue:104 +msgid "Enter an playlist name..." +msgstr "Playlistname eingeben..." + +#: front/src/components/auth/Signup.vue:98 +msgid "Enter your email" +msgstr "E-Mail-Adresse eingeben" + +#: front/src/components/auth/Signup.vue:96 +msgid "Enter your invitation code (case insensitive)" +msgstr "" +"Gib deinen Einladungskode ein (Groß- und Kleinschreibung wird nicht " +"berücksichtigt)" + +#: front/src/components/metadata/Search.vue:114 +msgid "Enter your search query..." +msgstr "Suche eingeben..." + +#: front/src/components/auth/Signup.vue:97 +msgid "Enter your username" +msgstr "Benutzername eingeben" + +#: front/src/components/auth/Login.vue:77 +msgid "Enter your username or email" +msgstr "Benutzername oder E-Mail-Adresse eingeben" + +#: front/src/components/auth/SubsonicTokenForm.vue:20 +msgid "Error" +msgstr "Fehler" + +#: front/src/views/admin/Settings.vue:87 +msgid "Error reporting" +msgstr "Fehlerbericht" + +#: front/src/components/common/ActionTable.vue:75 +msgid "Error while applying action" +msgstr "Fehler bei der Ausführung der Aktion" + +#: front/src/views/auth/PasswordReset.vue:7 +msgid "Error while asking for a password reset" +msgstr "Fehler während der Zurücksetzung des Passworts" + +#: front/src/views/auth/PasswordResetConfirm.vue:7 +msgid "Error while changing your password" +msgstr "Fehler bei der Veränderung deines Passworts" + +#: front/src/views/auth/EmailConfirm.vue:7 +msgid "Error while confirming your email" +msgstr "Fehler bei der Bestätigung deiner E-Mail-Adresse" + +#: front/src/components/manage/users/InvitationForm.vue:4 +msgid "Error while creating invitation" +msgstr "Fehler bei der Erstellung der Einladung" + +#: front/src/components/admin/SettingsGroup.vue:5 +msgid "Error while saving settings" +msgstr "Fehler bei der Speicherung der Einstellungen" + +#: front/src/components/federation/LibraryForm.vue:10 +msgid "Error while scanning library" +msgstr "Fehler beim Scannen der Mediathek" + +#: front/src/components/library/import/BatchDetail.vue:41 +#: front/src/components/library/import/BatchDetail.vue:70 +#: front/src/components/library/import/BatchList.vue:15 +msgid "Errored" +msgstr "Ein Fehler ist aufgetreten" + +#: front/src/components/playlists/Form.vue:89 +msgid "Everyone" +msgstr "Alle" + +#: front/src/components/playlists/Form.vue:85 +msgid "Everyone on this instance" +msgstr "Alle auf dieser Instanz" + +#: front/src/components/library/radios/Builder.vue:57 +msgid "Exclude" +msgstr "Ausschließen" + +#: front/src/components/discussion/Comment.vue:14 +msgid "Expand" +msgstr "Öffnen" + +#: front/src/components/manage/users/InvitationsTable.vue:41 +msgid "Expiration date" +msgstr "Ablaufdatum" + +#: front/src/components/manage/users/InvitationsTable.vue:50 +msgid "Expired" +msgstr "Abgelaufen" + +#: front/src/components/manage/users/InvitationsTable.vue:21 +msgid "Expired/used" +msgstr "Abgelaufen bzw. benutzt" + +#: front/src/components/library/import/Main.vue:65 +msgid "External source. Supported backends" +msgstr "Externe Quelle. Unterstützte Systeme" + +#: front/src/components/Sidebar.vue:51 +msgid "Favorites" +msgstr "Favoriten" + +#: front/src/components/federation/LibraryForm.vue:3 +msgid "Federate with a new instance" +msgstr "Mit einer neuen Instanz föderieren" + +#: front/src/views/federation/LibraryTrackList.vue:21 +msgid "Federated tracks" +msgstr "Föderierte Tracks" + +#: front/src/components/Sidebar.vue:87 src/components/library/import/BatchList.vue:25 +#: front/src/components/manage/users/UsersTable.vue:180 +#: front/src/views/admin/Settings.vue:84 src/views/admin/users/UsersDetail.vue:161 +#: front/src/views/federation/Base.vue:35 src/views/federation/LibraryDetail.vue:40 +msgid "Federation" +msgstr "Föderation" + +#: front/src/views/federation/LibraryDetail.vue:3 +msgid "File mirroring" +msgstr "Dateispiegelung" + +#: front/src/components/library/import/FileUpload.vue:43 +msgid "File name" +msgstr "Dateiname" + +#: front/src/components/library/import/Main.vue:76 +msgid "File upload" +msgstr "Datei hochladen" + +#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21 +msgid "Files" +msgstr "Dateien" + +#: front/src/components/library/import/ArtistImport.vue:7 +msgid "Filter album types" +msgstr "nach Albumtyp filtern" + +#: front/src/components/library/radios/Builder.vue:56 +msgid "Filter name" +msgstr "Filtername" + +#: front/src/components/library/import/Main.vue:52 +msgid "Finish import" +msgstr "Import beenden" + +#: front/src/components/library/import/BatchDetail.vue:54 +msgid "Finished" +msgstr "Beendet" + +#: front/src/components/library/import/Main.vue:59 +msgid "First, choose where you want to import the music from" +msgstr "Bitte zuerst auswählen, woher die Musik importiert werden muss" + +#: front/src/components/federation/LibraryCard.vue:44 +msgid "Follow" +msgstr "Folgen" + +#: front/src/components/federation/LibraryCard.vue:36 +msgid "Follow request pending approval" +msgstr "Ausstehende Folgen-Anfrage" + +#: front/src/views/federation/LibraryDetail.vue:21 +msgid "Follow status" +msgstr "Folgenstatus" + +#: front/src/views/federation/Base.vue:13 +#: front/src/views/federation/LibraryFollowersList.vue:24 +msgid "Followers" +msgstr "Follower·innen" + +#: front/src/components/federation/LibraryCard.vue:18 +msgid "Followers only" +msgstr "Nur Follower und Followerinnen" + +#: front/src/components/federation/LibraryCard.vue:15 +#: front/src/views/federation/LibraryDetail.vue:29 +msgid "Following" +msgstr "Abonniert" + +#: front/src/components/activity/Like.vue:12 src/components/activity/Listen.vue:12 +msgid "from %{ album } by %{ artist }" +msgstr "aus %{ album } von %{ artist }" + +#: front/src/components/library/Track.vue:13 +msgid "From album %{ album } by %{ artist }" +msgstr "Aus dem Album %{ album } von %{ artist }" + +#: front/src/App.vue:56 +msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" +msgstr "" +"Funkwhale ist ein kostenloses und Open-Source Projekt und wird von " +"ehrenamtlichen entwickelt. Hilf uns mit Fehler berichten, " +"Verbesserungsvorschlägen und teile das Projekt mit deinen Freunden!" + +#: front/src/components/auth/SubsonicTokenForm.vue:7 +msgid "Funkwhale is compatible with other music players that support the Subsonic API." +msgstr "" +"Funkwhale ist kompatibel mit anderen Mediaplayer, die die Subsonic-API " +"unterstützen." + +#: front/src/components/Home.vue:98 +msgid "Funkwhale is dead simple to use." +msgstr "Funkwhale ist sehr einfach zu benutzen." + +#: front/src/components/Home.vue:39 +msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." +msgstr "" +"Funkwhale hat es leicht gemacht, deine Lieblingsmusik anzuhören und neue " +"Künstler und Künstlerinnen zu entdecken." + +#: front/src/components/Home.vue:119 +msgid "Funkwhale is free and gives you control on your music." +msgstr "" +"Funkwhale ist kostenlos und ermöglicht eine komplett Steuerung deiner Musik." + +#: front/src/components/Home.vue:66 +msgid "Funkwhale takes care of handling your music" +msgstr "Funkwhale kümmert sich um deine Musik" + +#: front/src/components/manage/users/InvitationForm.vue:16 +msgid "Get a new invitation" +msgstr "Eine neue Einladung bekommen" + +#: front/src/components/Home.vue:13 +msgid "Get me to the library" +msgstr "Bring mich zur Mediathek" + +#: front/src/components/Home.vue:77 +msgid "" +"Get quality metadata about your music thanks to\n" +" \n" +" MusicBrainz\n" +" " +msgstr "" +"Dank MusicBrainz " +"kannst du deine Musik mit hochwertigen Metadaten verschlagworten" + +#: front/src/components/common/ActionTable.vue:21 +#: front/src/components/common/ActionTable.vue:27 +msgid "Go" +msgstr "Los!" + +#: front/src/components/PageNotFound.vue:14 +msgid "Go to home page" +msgstr "Zurück zur Startseite" + +#: front/src/components/library/import/Main.vue:13 +msgid "Grab corresponding metadata" +msgstr "Entsprechende Metadaten aufrufen" + +#: front/src/App.vue:74 +msgid "Help us translate Funkwhale" +msgstr "Hilf uns Funkwhale zu übersetzen" + +#: front/src/components/library/Home.vue:65 +msgid "Home" +msgstr "Start" + +#: front/src/components/instance/Stats.vue:36 +msgid "Hours of music" +msgstr "Musik stundenlang" + +#: front/src/components/auth/SubsonicTokenForm.vue:11 +msgid "However, accessing Funkwhale from those clients require a separate password you can set below." +msgstr "" +"Der Zugriff zu Funkwhale von anderen Softwares benötigt jedoch ein " +"zusätzliches Passwort. Du kannst dieses Passwort hier einstellen." + +#: front/src/components/library/import/BatchList.vue:34 +msgid "ID" +msgstr "ID" + +#: front/src/views/auth/PasswordResetConfirm.vue:24 +msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." +msgstr "" +"Wenn die angegebene Emailadresse einem Benutzerkonto gebunden ist, wirst du " +"in Kürzen eine Email mit den Zurücksetzungsanleitungen bekommen." + +#: front/src/components/federation/LibraryTrackTable.vue:196 +#: front/src/components/library/Library.vue:17 +msgid "Import" +msgstr "Import" + +#: front/src/components/federation/LibraryTrackTable.vue:57 +msgid "Import #%{ id } launched" +msgstr "Import #%{ id } gestartet" + +#: front/src/components/library/import/Main.vue:38 +msgid "Import %{ count } track" +msgid_plural "Import %{ count } tracks" +msgstr[0] "Import %{ count } Track" +msgstr[1] "Import %{ count } Tracks" + +#: front/src/components/library/import/BatchDetail.vue:10 +msgid "Import batch" +msgstr "Importstapel" + +#: front/src/components/library/import/BatchDetail.vue:185 +msgid "Import Batch #%{ id }" +msgstr "Importstapel #%{ id }" + +#: front/src/components/library/Library.vue:20 +msgid "Import batches" +msgstr "Importstapel" + +#: front/src/components/library/import/BatchList.vue:117 +msgid "Import Batches" +msgstr "Importstapel" + +#: front/src/components/manage/library/FilesTable.vue:40 +#: front/src/components/manage/library/RequestsTable.vue:53 +msgid "Import date" +msgstr "Importsdatum" + +#: front/src/components/library/import/FileUpload.vue:38 +msgid "Import detail page" +msgstr "Importdetails" + +#: front/src/components/Sidebar.vue:81 +msgid "Import music" +msgstr "Musik importieren" + +#: front/src/components/library/import/Main.vue:267 +msgid "Import Music" +msgstr "Musik importieren" + +#: front/src/components/Home.vue:71 +msgid "Import music from various platforms, such as YouTube or SoundCloud" +msgstr "Importiere Musik aus mehreren Plattformen, wie YouTube oder Soundcloud" + +#: front/src/components/federation/LibraryTrackTable.vue:14 +#: front/src/components/federation/LibraryTrackTable.vue:66 +msgid "Import pending" +msgstr "Ausstehend" + +#: front/src/views/admin/library/Base.vue:9 +#: front/src/views/admin/library/RequestsList.vue:3 +#: front/src/views/admin/library/RequestsList.vue:21 +msgid "Import requests" +msgstr "Importanfrage" + +#: front/src/components/library/import/BatchList.vue:20 +#: front/src/components/library/import/Main.vue:6 +msgid "Import source" +msgstr "Importquelle" + +#: front/src/components/federation/LibraryTrackTable.vue:9 +msgid "Import status" +msgstr "Importstatus" + +#: front/src/components/library/import/ReleaseImport.vue:14 +msgid "Import this release" +msgstr "Dieses Album importieren" + +#: front/src/components/library/import/TrackImport.vue:11 +msgid "Import this track" +msgstr "Dieser Track importieren" + +#: front/src/components/federation/LibraryTrackTable.vue:12 +#: front/src/components/manage/library/RequestsTable.vue:29 +#: front/src/components/manage/library/RequestsTable.vue:61 +msgid "Imported" +msgstr "Importiert" + +#: front/src/components/library/import/TrackImport.vue:44 +msgid "Imported URL" +msgstr "Importierte URL" + +#: front/src/views/admin/Settings.vue:82 +msgid "Imports" +msgstr "Imports" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:3 +msgid "In favorites" +msgstr "In den Favoriten" + +#: front/src/components/federation/LibraryTrackTable.vue:65 +msgid "In library" +msgstr "In der Mediathek" + +#: front/src/components/manage/users/UsersTable.vue:54 +msgid "Inactive" +msgstr "Inaktiv" + +#: front/src/components/library/import/Main.vue:96 +msgid "Input a MusicBrainz ID manually:" +msgstr "MusicBrainz-ID per Hand eingeben:" + +#: front/src/views/auth/PasswordReset.vue:53 +msgid "Input the email address binded to your account" +msgstr "Die Emailadresse deines Kontos eingeben" + +#: front/src/components/playlists/Editor.vue:31 +msgid "Insert from queue (%{ count } track)" +msgid_plural "Insert from queue (%{ count } tracks)" +msgstr[0] "Aus der Wiedergabeliste hinzufügen (%{ count } Track)" +msgstr[1] "Aus der Wiedergabeliste hinzufügen (%{ count } Tracks)" + +#: front/src/views/admin/Settings.vue:80 +msgid "Instance information" +msgstr "Infos über diese Instanz" + +#: front/src/components/library/Radios.vue:9 +msgid "Instance radios" +msgstr "Radios der Instanz" + +#: front/src/views/admin/Settings.vue:75 +msgid "Instance settings" +msgstr "Instanzeinstellungen" + +#: front/src/views/instance/Timeline.vue:57 +msgid "Instance Timeline" +msgstr "Aktivität der Instanz" + +#: front/src/components/auth/Signup.vue:42 +#: front/src/components/manage/users/InvitationForm.vue:11 +msgid "Invitation code" +msgstr "Einladungskode" + +#: front/src/components/auth/Signup.vue:43 +msgid "Invitation code (optional)" +msgstr "Einladungskode (ggf.)" + +#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3 +#: front/src/views/admin/users/InvitationsList.vue:24 +msgid "Invitations" +msgstr "Einladungen" + +#: front/src/App.vue:43 +msgid "Issue tracker" +msgstr "Bugtracker" + +#: front/src/components/library/import/BatchDetail.vue:80 +msgid "Job ID" +msgstr "Aufgaben-ID" + +#: front/src/components/library/import/BatchList.vue:36 +msgid "Jobs" +msgstr "Aufgaben" + +#: front/src/components/Home.vue:50 +msgid "Keep a track of your favorite songs" +msgstr "Behalte einen Überblick auf deine Lieblingsmusik" + +#: front/src/components/audio/track/Table.vue:33 +msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." +msgstr "" +"Halte deinen PRIVATE_TOKEN geheim, denn es gibt Zugriff zu deinem Konto." + +#: front/src/components/manage/users/UsersTable.vue:41 +#: front/src/views/admin/users/UsersDetail.vue:45 +msgid "Last activity" +msgstr "Letzte Aktivität" + +#: front/src/views/federation/LibraryDetail.vue:101 +msgid "Last fetched" +msgstr "Letzter Abruf" + +#: front/src/components/playlists/PlaylistModal.vue:32 +msgid "Last modification" +msgstr "Letzte Bearbeitung" + +#: front/src/components/common/ActionTable.vue:39 +msgid "Launch" +msgstr "Starten" + +#: front/src/components/library/import/BatchDetail.vue:18 +#: front/src/components/library/import/BatchList.vue:35 +msgid "Launch date" +msgstr "Startdatum" + +#: front/src/components/federation/LibraryForm.vue:31 +msgid "Launch scan" +msgstr "Scan starten" + +#: front/src/components/Home.vue:10 +msgid "Learn more about this instance" +msgstr "Mehr über diese Instanz erfahren" + +#: front/src/components/manage/users/InvitationForm.vue:58 +msgid "Leave empty for a random code" +msgstr "Leerlassen für einen beliebigen Kode" + +#: front/src/components/requests/Form.vue:10 +msgid "Leave this field empty if you're requesting the whole discography." +msgstr "Lasse dieses Feld leer, wenn du die ganze Diskografie anfragst." + +#: front/src/views/federation/Base.vue:5 src/views/federation/LibraryList.vue:123 +msgid "Libraries" +msgstr "Mediatheke" + +#: front/src/components/Sidebar.vue:70 +#: front/src/components/federation/LibraryTrackTable.vue:51 +#: front/src/components/instance/Stats.vue:30 +#: front/src/components/manage/users/UsersTable.vue:176 +#: front/src/views/admin/users/UsersDetail.vue:157 +#: front/src/views/federation/LibraryDetail.vue:194 +msgid "Library" +msgstr "Mediathek" + +#: front/src/views/admin/library/FilesList.vue:3 +msgid "Library files" +msgstr "Datei der Mediathek" + +#: front/src/components/federation/LibraryForm.vue:20 +msgid "Library name" +msgstr "Mediatheksname" + +#: front/src/views/federation/LibraryDetail.vue:84 +msgid "Library size" +msgstr "Mediatheksgröße" + +#: front/src/components/federation/LibraryForm.vue:96 +msgid "library@demo.funkwhale.audio" +msgstr "library@demo.funkwhale.audio" + +#: front/src/App.vue:29 +msgid "Links" +msgstr "Links" + +#: front/src/views/instance/Timeline.vue:4 +msgid "Loading timeline..." +msgstr "Laden der Timeline..." + +#: front/src/components/favorites/List.vue:5 +msgid "Loading your favorites..." +msgstr "Laden deiner Favoriten..." + +#: front/src/components/auth/Login.vue:78 +msgid "Log In" +msgstr "Einloggen" + +#: front/src/components/auth/Login.vue:4 +msgid "Log in to your Funkwhale account" +msgstr "Logge dich zu deinem Funkwhale-Konto ein" + +#: front/src/components/auth/Logout.vue:20 +msgid "Log Out" +msgstr "Ausloggen" + +#: front/src/components/Sidebar.vue:38 +msgid "Logged in as %{ username }" +msgstr "Als %{ username } angemeldet" + +#: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 +msgid "Login" +msgstr "Einloggen" + +#: front/src/components/Sidebar.vue:43 +msgid "Logout" +msgstr "Ausloggen" + +#: front/src/components/audio/Player.vue:266 +msgid "Looping disabled. Click to switch to single-track looping." +msgstr "" +"Wiederholung deaktiviert. Schalte die Wiederholung des aktuellen Tracks beim " +"Klicken." + +#: front/src/components/audio/Player.vue:267 +msgid "Looping on a single track. Click to switch to whole queue looping." +msgstr "" +"Wiederholung des aktuellen Tracks. Wiederhole die ganze Wiedergabeliste beim " +"Klicken." + +#: front/src/components/audio/Player.vue:268 +msgid "Looping on whole queue. Click to disable looping." +msgstr "" +"Wiederholung auf die ganze Wiedergabeliste. Deaktiviere die Wiederholung " +"beim Klicken." + +#: front/src/components/library/Track.vue:94 +msgid "Lyrics" +msgstr "Liedtext" + +#: front/src/views/admin/library/Base.vue:25 +msgid "Manage library" +msgstr "Mediathek verwalten" + +#: front/src/components/playlists/PlaylistModal.vue:3 +msgid "Manage playlists" +msgstr "Playlists verwalten" + +#: front/src/views/admin/users/Base.vue:20 +msgid "Manage users" +msgstr "Benutzer verwalten" + +#: front/src/views/playlists/List.vue:8 +msgid "Manage your playlists" +msgstr "Verwalte deine Playlists" + +#: front/src/components/manage/library/RequestsTable.vue:197 +msgid "Mark as closed" +msgstr "Geschlossen markieren" + +#: front/src/components/manage/library/RequestsTable.vue:196 +msgid "Mark as imported" +msgstr "Als importiert markieren" + +#: front/src/components/library/import/Main.vue:12 +msgid "Metadata" +msgstr "Metadaten" + +#: front/src/components/library/import/Main.vue:115 +msgid "" +"Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n" +" \n" +" MusicBrainz\n" +" \n" +" project, which you can think about as the Wikipedia of music." +msgstr "" +"Alle Infos über Alben, Tracks, Künstler und Künstlerinnen sind in den " +"Metadaten gespeichert. Hochwertige Metadaten können auf MusicBrainz geholt werden. " +"Das Projekt wird oft als Wikipedia für die Musik bezeichnet." + +#: front/src/components/Sidebar.vue:48 src/components/library/import/Main.vue:18 +msgid "Music" +msgstr "Musik" + +#: front/src/components/library/import/Main.vue:147 +msgid "Music request" +msgstr "Musikanfrage" + +#: front/src/components/audio/Player.vue:265 +msgid "Mute" +msgstr "Stummschalten" + +#: front/src/components/Sidebar.vue:34 +msgid "My account" +msgstr "Mein Konto" + +#: front/src/components/playlists/Form.vue:74 +msgid "My awesome playlist" +msgstr "Meine super Playlist" + +#: front/src/components/library/radios/Builder.vue:227 +msgid "My awesome radio" +msgstr "Mein super Radio" + +#: front/src/components/library/Track.vue:64 src/components/library/Track.vue:75 +#: front/src/components/library/Track.vue:86 +#: front/src/components/manage/library/FilesTable.vue:63 +#: front/src/components/manage/library/FilesTable.vue:69 +#: front/src/components/manage/library/FilesTable.vue:75 +#: front/src/components/manage/library/FilesTable.vue:81 +#: front/src/components/manage/library/RequestsTable.vue:71 +#: front/src/components/manage/library/RequestsTable.vue:75 +#: front/src/components/manage/library/RequestsTable.vue:82 +#: front/src/components/manage/users/UsersTable.vue:61 +#: front/src/views/admin/users/UsersDetail.vue:49 +msgid "N/A" +msgstr "k.A." + +#: front/src/components/playlists/PlaylistModal.vue:31 +#: front/src/views/admin/users/UsersDetail.vue:21 +msgid "Name" +msgstr "Name" + +#: front/src/components/auth/Settings.vue:88 +#: front/src/views/auth/PasswordResetConfirm.vue:14 +msgid "New password" +msgstr "Neues Kennwort" + +#: front/src/components/Sidebar.vue:158 +msgid "New tracks will be appended here automatically." +msgstr "Neue Tracks werden hier automatisch hinzugefügt." + +#: front/src/components/library/import/Main.vue:29 +msgid "Next step" +msgstr "Nächster Schritt" + +#: front/src/components/audio/Player.vue:263 +msgid "Next track" +msgstr "Nächster Track" + +#: front/src/components/Sidebar.vue:125 +msgid "No" +msgstr "Nein" + +#: front/src/components/Home.vue:103 +msgid "No add-ons, no plugins : you only need a web library" +msgstr "" +"Keine Add-Ons, keine Plugins: du brauchst nur eine Mediathek auf dem Internet" + +#: front/src/components/library/Track.vue:102 +msgid "No lyrics available for this track." +msgstr "Kein verfügbarer Songtext für diesen Track." + +#: front/src/components/playlists/Form.vue:81 +msgid "Nobody except me" +msgstr "Niemand außer mir" + +#: front/src/views/federation/LibraryDetail.vue:32 +msgid "Not following" +msgstr "Nicht abonniert" + +#: front/src/components/federation/LibraryTrackTable.vue:13 +#: front/src/components/federation/LibraryTrackTable.vue:67 +msgid "Not imported" +msgstr "Nicht importiert" + +#: front/src/components/manage/users/InvitationsTable.vue:51 +msgid "Not used" +msgstr "Nicht verwendet" + +#: front/src/App.vue:37 +msgid "Official website" +msgstr "Offizielle Webseite" + +#: front/src/components/auth/Settings.vue:83 +msgid "Old password" +msgstr "Altes Kennwort" + +#: front/src/components/library/import/FileUpload.vue:36 +msgid "Once all your files are uploaded, simply click the following button to check the import status." +msgstr "" +"Nachdem alle Dateien hochgeladen sind, einfach auf dem folgenden Taste " +"clicken um das Status des Imports nachzuprüfen." + +#: front/src/components/federation/LibraryCard.vue:21 +#: front/src/components/manage/users/InvitationsTable.vue:20 +msgid "Open" +msgstr "Frei" + +#: front/src/App.vue:63 +msgid "Options" +msgstr "Optionen" + +#: front/src/components/library/import/Main.vue:93 +msgid "Or" +msgstr "Oder" + +#: front/src/components/favorites/List.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:18 +#: front/src/components/library/Artists.vue:15 src/components/library/Radios.vue:33 +#: front/src/components/manage/library/FilesTable.vue:9 +#: front/src/components/manage/library/RequestsTable.vue:9 +#: front/src/components/manage/users/InvitationsTable.vue:9 +#: front/src/components/manage/users/UsersTable.vue:9 +#: front/src/views/federation/LibraryList.vue:18 src/views/playlists/List.vue:17 +msgid "Ordering" +msgstr "" + +#: front/src/components/favorites/List.vue:31 +#: front/src/components/federation/LibraryTrackTable.vue:26 +#: front/src/components/library/Artists.vue:23 src/components/library/Radios.vue:41 +#: front/src/components/manage/library/FilesTable.vue:17 +#: front/src/components/manage/library/RequestsTable.vue:17 +#: front/src/components/manage/users/UsersTable.vue:17 +#: front/src/views/federation/LibraryList.vue:26 src/views/playlists/List.vue:25 +msgid "Ordering direction" +msgstr "Reihenfolge" + +#: front/src/components/manage/users/InvitationsTable.vue:38 +msgid "Owner" +msgstr "Besitzer" + +#: front/src/components/PageNotFound.vue:33 +msgid "Page Not Found" +msgstr "Seite nicht gefunden" + +#: front/src/components/PageNotFound.vue:7 +msgid "Page not found!" +msgstr "Seite nicht gefunden!" + +#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 +msgid "Password" +msgstr "Kennwort" + +#: front/src/components/auth/SubsonicTokenForm.vue:95 +msgid "Password updated" +msgstr "Kennwort aktualisiert" + +#: front/src/views/auth/PasswordResetConfirm.vue:28 +msgid "Password updated successfully" +msgstr "Kennwort erfolgreich aktualisiert" + +#: front/src/components/audio/Player.vue:262 +msgid "Pause track" +msgstr "Track pausen" + +#: front/src/components/federation/LibraryFollowTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:33 +#: front/src/components/library/import/BatchDetail.vue:69 +#: front/src/components/library/import/BatchList.vue:14 +#: front/src/components/library/import/FileUpload.vue:59 +#: front/src/components/manage/library/RequestsTable.vue:27 +#: front/src/components/manage/library/RequestsTable.vue:63 +msgid "Pending" +msgstr "Ausstehend" + +#: front/src/components/federation/LibraryFollowTable.vue:11 +#: front/src/views/federation/LibraryDetail.vue:26 +msgid "Pending approval" +msgstr "Warte auf Bestätigung" + +#: front/src/components/Sidebar.vue:217 +msgid "Pending follow requests" +msgstr "Ausstehende Follow-Anfrage" + +#: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 +msgid "Pending import requests" +msgstr "Ausstehende Importanfragen" + +#: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 +msgid "Pending requests" +msgstr "Ausstehende Anfragen" + +#: front/src/components/manage/users/UsersTable.vue:42 +#: front/src/views/admin/users/UsersDetail.vue:68 +msgid "Permissions" +msgstr "Berechtigungen" + +#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30 +msgid "Play" +msgstr "Abspielen" + +#: front/src/components/audio/album/Card.vue:50 +#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28 +#: front/src/views/playlists/Detail.vue:23 +msgid "Play all" +msgstr "Alles abspielen" + +#: front/src/components/library/Artist.vue:26 +msgid "Play all albums" +msgstr "Alle Alben abspielen" + +#: front/src/components/audio/PlayButton.vue:58 +msgid "Play immediatly" +msgstr "Jetzt abspielen" + +#: front/src/components/audio/PlayButton.vue:15 +msgid "Play next" +msgstr "Danach abspielen" + +#: front/src/components/audio/PlayButton.vue:16 +msgid "Play now" +msgstr "Jetzt abspielen" + +#: front/src/components/audio/Player.vue:261 +msgid "Play track" +msgstr "Abspielen" + +#: front/src/views/playlists/Detail.vue:90 +msgid "Playlist" +msgstr "Playlist" + +#: front/src/views/playlists/Detail.vue:12 +msgid "Playlist containing %{ count } track, by %{ username }" +msgid_plural "Playlist containing %{ count } tracks, by %{ username }" +msgstr[0] "Playlist mit %{ count } Track, von %{ username }" +msgstr[1] "Playlist mit %{ count } Tracks, von %{ username }" + +#: front/src/components/playlists/Form.vue:9 +msgid "Playlist created" +msgstr "Playlist erstellt" + +#: front/src/components/playlists/Editor.vue:4 +msgid "Playlist editor" +msgstr "Playlisteditor" + +#: front/src/components/playlists/Form.vue:21 +msgid "Playlist name" +msgstr "Playlistname" + +#: front/src/components/playlists/Form.vue:6 +msgid "Playlist updated" +msgstr "Playlist aktualisiert" + +#: front/src/components/playlists/Form.vue:25 +msgid "Playlist visibility" +msgstr "Sichtbarkeit der Playlist" + +#: front/src/components/Sidebar.vue:56 src/components/library/Home.vue:16 +#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83 +#: front/src/views/playlists/List.vue:103 +msgid "Playlists" +msgstr "Playlists" + +#: front/src/components/Home.vue:56 +msgid "Playlists? We got them" +msgstr "Playlists? Haben wir auch!" + +#: front/src/components/auth/Settings.vue:79 +msgid "Please double-check your password is correct" +msgstr "Bitte prüfen, dass dein Kennwort richtig ist" + +#: front/src/components/auth/Login.vue:9 +msgid "Please double-check your username/password couple is correct" +msgstr "" +"Bitte prüfe, dass dein Benutzername und dein Kennwort miteinander stimmen" + +#: front/src/components/auth/Settings.vue:46 +msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." +msgstr "" +"PNG, GIF oder JPG. Max. 2 Mb. Das Bild wird ggf. auf 400x400 px verkleinert." + +#: front/src/components/library/import/Main.vue:26 +msgid "Previous step" +msgstr "Vorheriger Schritt" + +#: front/src/components/audio/Player.vue:260 +msgid "Previous track" +msgstr "Vorheriger Track" + +#: front/src/views/auth/EmailConfirm.vue:26 +#: front/src/views/auth/PasswordResetConfirm.vue:31 +msgid "Proceed to login" +msgstr "Jetzt einloggen" + +#: front/src/components/federation/LibraryTrackTable.vue:50 +msgid "Published date" +msgstr "Ausgabedatum" + +#: front/src/components/library/import/ArtistImport.vue:17 +msgid "Query template" +msgstr "Abfragevorlage" + +#: front/src/components/Sidebar.vue:20 +msgid "Queue" +msgstr "Wiedergabeliste" + +#: front/src/components/audio/Player.vue:203 +msgid "Queue shuffled!" +msgstr "Wiedergabeliste gemischt!" + +#: front/src/views/radios/Detail.vue:80 +msgid "Radio" +msgstr "Radio" + +#: front/src/components/library/radios/Builder.vue:226 +msgid "Radio Builder" +msgstr "Radioeditor" + +#: front/src/components/library/radios/Builder.vue:15 +msgid "Radio created" +msgstr "Radio erstellt" + +#: front/src/components/library/radios/Builder.vue:21 +msgid "Radio name" +msgstr "Radioname" + +#: front/src/components/library/radios/Builder.vue:12 +msgid "Radio updated" +msgstr "Radio aktualisiert" + +#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:141 +msgid "Radios" +msgstr "Radios" + +#: front/src/views/instance/Timeline.vue:7 +msgid "Recent activity on this instance" +msgstr "Kürzliche Aktivität auf dieser Instanz" + +#: front/src/components/library/Home.vue:24 +msgid "Recently added" +msgstr "Neulich eingefügt" + +#: front/src/components/library/Home.vue:11 +msgid "Recently favorited" +msgstr "Neulich zu den Favoriten hinzugefügt" + +#: front/src/components/library/Home.vue:6 +msgid "Recently listened" +msgstr "Neulich angehört" + +#: front/src/components/library/import/BatchDetail.vue:81 +msgid "Recording MusicBrainz ID" +msgstr "MusicBrainz-ID des Tracks" + +#: front/src/views/admin/users/UsersDetail.vue:84 +#: front/src/views/federation/LibraryDetail.vue:122 +msgid "Refresh" +msgstr "Aktualisieren" + +#: front/src/components/federation/LibraryFollowTable.vue:42 +msgid "Refused" +msgstr "Abgelehnt" + +#: front/src/components/auth/Profile.vue:12 +msgid "Registered since %{ date }" +msgstr "Angemeldet seit %{ date }" + +#: front/src/components/auth/Signup.vue:9 +msgid "Registration are closed on this instance, you will need an invitation code to signup." +msgstr "" +"Die Anmeldung auf dieser Instanz sind geschlossen, du brauchst einen " +"Einladungskode, wenn du dich anmelden möchtest." + +#: front/src/components/manage/users/UsersTable.vue:71 +msgid "regular user" +msgstr "Standardnutzende" + +#: front/src/components/library/radios/Filter.vue:59 +msgid "Remove" +msgstr "Löschen" + +#: front/src/components/auth/Settings.vue:58 +msgid "Remove avatar" +msgstr "Avatar löschen" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:19 +msgid "Remove from favorites" +msgstr "Aus den Favoriten entfernen" + +#: front/src/components/auth/SubsonicTokenForm.vue:34 +#: front/src/components/auth/SubsonicTokenForm.vue:37 +msgid "Request a new password" +msgstr "Ein neues Passwort beantragen" + +#: front/src/components/auth/SubsonicTokenForm.vue:35 +msgid "Request a new Subsonic API password?" +msgstr "Ein neues Subsonic-API-Kennwort beantragen?" + +#: front/src/components/auth/SubsonicTokenForm.vue:43 +msgid "Request a password" +msgstr "Kennwort beantragen" + +#: front/src/App.vue:35 +msgid "Request music" +msgstr "Musik anfragen" + +#: front/src/views/library/MusicRequest.vue:4 src/views/library/MusicRequest.vue:21 +msgid "Request some music" +msgstr "Musik anfragen" + +#: front/src/components/requests/Form.vue:20 +msgid "Request submitted!" +msgstr "Anfrage geschickt!" + +#: front/src/components/library/import/BatchDetail.vue:49 +msgid "Rerun errored jobs" +msgstr "Fehlgeschlagene Aufgaben erneut ausführen" + +#: front/src/components/library/import/BatchDetail.vue:187 +msgid "Rerun job" +msgstr "Aufgaben erneut ausführen" + +#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4 +#: front/src/views/auth/PasswordReset.vue:52 +msgid "Reset your password" +msgstr "Kennwort zurücksetzen" + +#: front/src/components/library/import/TrackImport.vue:31 +msgid "Result %{ current }/%{ total }" +msgstr "Ergebnis %{ current }/%{ total }" + +#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30 +#: front/src/components/library/Radios.vue:52 src/views/federation/LibraryList.vue:33 +#: front/src/views/playlists/List.vue:32 +msgid "Results per page" +msgstr "Ergebnisse pro Seite" + +#: front/src/components/admin/SettingsGroup.vue:63 +#: front/src/components/library/radios/Builder.vue:29 +msgid "Save" +msgstr "Speichern" + +#: front/src/views/federation/LibraryDetail.vue:112 +msgid "Scan triggered!" +msgstr "Scan gestartet!" + +#: front/src/components/federation/LibraryTrackTable.vue:5 +#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29 +#: front/src/components/library/import/BatchDetail.vue:62 +#: front/src/components/library/import/BatchList.vue:7 +#: front/src/components/manage/library/FilesTable.vue:5 +#: front/src/components/manage/library/RequestsTable.vue:5 +#: front/src/components/manage/users/InvitationsTable.vue:5 +#: front/src/components/manage/users/UsersTable.vue:5 +#: front/src/views/federation/LibraryList.vue:14 src/views/playlists/List.vue:13 +msgid "Search" +msgstr "Suchen" + +#: front/src/components/library/import/Main.vue:85 +msgid "Search an entity you want to import:" +msgstr "Suche die zuimportierende Entität:" + +#: front/src/components/manage/library/RequestsTable.vue:180 +msgid "Search by artist, username, comment..." +msgstr "Künstler, Künstlerin, Benutzername oder Komment suchen..." + +#: front/src/components/library/import/BatchDetail.vue:188 +msgid "Search by source..." +msgstr "Quelle suchen..." + +#: front/src/components/library/import/BatchList.vue:116 +msgid "Search by submitter, source..." +msgstr "Benutzer, Benutzerin oder Quelle suchen..." + +#: front/src/components/federation/LibraryTrackTable.vue:182 +#: front/src/components/manage/library/FilesTable.vue:175 +msgid "Search by title, artist, domain..." +msgstr "Titel, Künstler, Künstlerin oder Domain suchen..." + +#: front/src/components/federation/LibraryFollowTable.vue:140 +msgid "Search by username, domain..." +msgstr "Benutzername oder Domain suchen..." + +#: front/src/components/manage/users/InvitationsTable.vue:152 +msgid "Search by username, email, code..." +msgstr "Benutzername, E-Mail-Adresse oder Kode suchen..." + +#: front/src/components/manage/users/UsersTable.vue:162 +msgid "Search by username, email, name..." +msgstr "Benutzername, E-Mail-Adresse oder Name suchen..." + +#: front/src/components/audio/SearchBar.vue:20 +msgid "Search for artists, albums, tracks..." +msgstr "Künstler, Künstlerinnen, Alben oder Tracks suchen..." + +#: front/src/components/audio/Search.vue:2 +msgid "Search for some music" +msgstr "Musik suchen" + +#: front/src/components/library/Track.vue:105 +msgid "Search on lyrics.wikia.com" +msgstr "Auf lyrics.wikia.com suchen" + +#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31 +#: front/src/components/library/Track.vue:40 +msgid "Search on Wikipedia" +msgstr "Auf Wikipedia suchen" + +#: front/src/components/library/import/TrackImport.vue:42 +msgid "Search query" +msgstr "Suche" + +#: front/src/views/admin/Settings.vue:15 +msgid "Sections" +msgstr "Abschnitte" + +#: front/src/components/library/radios/Builder.vue:41 +msgid "Select a filter" +msgstr "Filter auswählen" + +#: front/src/components/common/ActionTable.vue:61 +msgid "Select all %{ total } elements" +msgid_plural "Select all %{ total } elements" +msgstr[0] "1 Element auswählen" +msgstr[1] "Alle %{ total } Elemente auswählen" + +#: front/src/components/library/import/FileUpload.vue:22 +msgid "Select files to upload..." +msgstr "Hochzuladende Dateien auswählen..." + +#: front/src/components/common/ActionTable.vue:69 +msgid "Select only current page" +msgstr "Nur die aktuelle Seite auswählen" + +#: front/src/components/library/import/Main.vue:19 +msgid "Select relevant sources or files for import" +msgstr "Zuhochladende Dateien oder Quellen auswählen" + +#: front/src/components/federation/LibraryCard.vue:43 +msgid "Send a follow request" +msgstr "Folgen-Anfrage schicken" + +#: front/src/components/Sidebar.vue:97 src/components/manage/users/UsersTable.vue:184 +#: front/src/views/admin/users/UsersDetail.vue:165 +msgid "Settings" +msgstr "Einstellungen" + +#: front/src/components/auth/Settings.vue:10 +msgid "Settings updated" +msgstr "Einstellungen aktualisiert" + +#: front/src/components/admin/SettingsGroup.vue:11 +msgid "Settings updated successfully." +msgstr "Einstellungen erfolgreich aktualisiert." + +#: front/src/components/auth/Profile.vue:24 +msgid "Settings..." +msgstr "Einstellungen..." + +#: front/src/components/manage/users/InvitationForm.vue:27 +msgid "Share link" +msgstr "Link zum Teilen" + +#: front/src/components/audio/artist/Card.vue:30 +msgid "Show 1 more album" +msgid_plural "Show %{ count } more albums" +msgstr[0] "1 Album mehr zeigen" +msgstr[1] "%{ count } Alben mehr zeigen" + +#: front/src/components/audio/album/Card.vue:40 +msgid "Show 1 more track" +msgid_plural "Show %{ count } more tracks" +msgstr[0] "1 Track mehr zeigen" +msgstr[1] "%{ count } Tracks mehr zeigen" + +#: front/src/components/forms/PasswordInput.vue:25 +msgid "Show/hide password" +msgstr "Passwort verstecken bzw. zeigen" + +#: front/src/components/federation/LibraryFollowTable.vue:97 +#: front/src/components/federation/LibraryTrackTable.vue:98 +#: front/src/components/library/import/BatchDetail.vue:128 +#: front/src/components/library/import/BatchList.vue:73 +#: front/src/components/manage/library/FilesTable.vue:97 +#: front/src/components/manage/library/RequestsTable.vue:104 +#: front/src/components/manage/users/InvitationsTable.vue:76 +#: front/src/components/manage/users/UsersTable.vue:87 +msgid "Showing results %{ start }-%{ end } on %{ total }" +msgstr "Ergebnisse %{ start } bis %{ end } von %{ total }" + +#: front/src/components/audio/Player.vue:269 +msgid "Shuffle your queue" +msgstr "Wiedergabeliste mischen" + +#: front/src/components/auth/Signup.vue:95 +msgid "Sign Up" +msgstr "Anmeldung" + +#: front/src/components/manage/users/UsersTable.vue:40 +#: front/src/views/admin/users/UsersDetail.vue:37 +msgid "Sign-up" +msgstr "Anmeldung" + +#: front/src/components/audio/track/Table.vue:31 +msgid "Simply copy paste the snippet below into a terminal to launch the download." +msgstr "" +"Kopiere einfach den folgenden Text in einem Terminal um das Herunterladen zu " +"starten." + +#: front/src/components/library/Track.vue:69 +#: front/src/components/library/import/FileUpload.vue:44 +#: front/src/components/manage/library/FilesTable.vue:44 +msgid "Size" +msgstr "Größe" + +#: front/src/components/library/import/BatchDetail.vue:37 +#: front/src/components/library/import/BatchDetail.vue:72 +msgid "Skipped" +msgstr "Ausgelassen" + +#: front/src/components/requests/Form.vue:3 +msgid "Something's missing in the library? Let us know what you would like to listen!" +msgstr "Dir fehlt etwas in der Mediathek? Sage uns was du anhören möchtest!" + +#: front/src/components/audio/Search.vue:25 +msgid "Sorry, we did not found any album matching your query" +msgstr "Sorry, wir haben keine passende Alben für deine Suche gefunden" + +#: front/src/components/audio/Search.vue:16 +msgid "Sorry, we did not found any artist matching your query" +msgstr "" +"Entschuldigung, wir haben keine passenden Künstler oder Künstlerinnen für " +"deine Suche gefunden" + +#: front/src/components/library/import/BatchDetail.vue:82 +#: front/src/components/library/import/BatchList.vue:38 +#: front/src/components/library/import/TrackImport.vue:17 +msgid "Source" +msgstr "Quelle" + +#: front/src/App.vue:41 +msgid "Source code" +msgstr "Quellcode" + +#: front/src/App.vue:40 +msgid "Source code (%{version})" +msgstr "Quelcode (%{ version })" + +#: front/src/components/auth/Profile.vue:20 +#: front/src/components/manage/users/UsersTable.vue:70 +msgid "Staff member" +msgstr "Teammember" + +#: front/src/components/radios/Button.vue:4 +msgid "Start" +msgstr "Starten" + +#: front/src/components/library/import/FileUpload.vue:28 +msgid "Start Upload" +msgstr "Hochladen starten" + +#: front/src/views/admin/Settings.vue:86 +msgid "Statistics" +msgstr "Statistik" + +#: front/src/components/federation/LibraryFollowTable.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:66 +#: front/src/components/library/import/BatchDetail.vue:83 +#: front/src/components/library/import/BatchList.vue:11 +#: front/src/components/library/import/BatchList.vue:37 +#: front/src/components/library/import/FileUpload.vue:45 +#: front/src/components/manage/library/RequestsTable.vue:24 +#: front/src/components/manage/library/RequestsTable.vue:48 +#: front/src/components/manage/users/InvitationsTable.vue:17 +#: front/src/components/manage/users/InvitationsTable.vue:39 +#: front/src/components/manage/users/UsersTable.vue:43 +msgid "Status" +msgstr "Status" + +#: front/src/components/radios/Button.vue:3 +msgid "Stop" +msgstr "Abbrechen" + +#: front/src/components/Sidebar.vue:159 +msgid "Stop radio" +msgstr "Radio stoppen" + +#: front/src/components/library/import/FileUpload.vue:32 +msgid "Stop Upload" +msgstr "Hochladen abbrechen" + +#: front/src/App.vue:9 src/components/requests/Form.vue:17 +msgid "Submit" +msgstr "Abschicken" + +#: front/src/components/requests/Form.vue:22 +msgid "Submit another request" +msgstr "Erneut anfragen" + +#: front/src/components/library/import/BatchDetail.vue:26 +#: front/src/components/library/import/BatchList.vue:39 +msgid "Submitted by" +msgstr "Vorgeschlagen von" + +#: front/src/views/admin/Settings.vue:85 +msgid "Subsonic" +msgstr "Subsonic" + +#: front/src/components/auth/SubsonicTokenForm.vue:2 +msgid "Subsonic API password" +msgstr "Subsonic-API-Kennwort" + +#: front/src/components/library/import/BatchDetail.vue:71 +#: front/src/components/library/import/BatchList.vue:16 +#: front/src/components/library/import/FileUpload.vue:56 +msgid "Success" +msgstr "Erfolg" + +#: front/src/App.vue:11 +msgid "Suggested choices" +msgstr "Empfehlungen" + +#: front/src/components/playlists/Editor.vue:9 +msgid "Syncing changes to server..." +msgstr "Synchronisierung der Änderungen auf dem Server..." + +#: front/src/components/Home.vue:26 +msgid "That's simple: we loved Grooveshark and we want to build something even better." +msgstr "" +"So einfach ist es: wir liebten Grooveshark, doch wollen wir noch besser " +"machen." + +#: front/src/components/requests/Form.vue:73 +msgid "The Beatles, Mickael Jackson…" +msgstr "Die Beatles, Michael Jackson…" + +#: front/src/App.vue:59 +msgid "The funkwhale logo was kindly designed and provided by Francis Gading." +msgstr "Das Funkwhale-Logo wurde mit Lieb von Francis Gading erbracht." + +#: front/src/components/Home.vue:124 +msgid "The plaform is free and open-source, you can install it and modify it without worries" +msgstr "" +"Die Plattform ist kostenlos und Open-Source, du kannst sie herunterladen, " +"installieren und anpassen ohne Sorge" + +#: front/src/components/auth/SubsonicTokenForm.vue:4 +msgid "The Subsonic API is not available on this Funkwhale instance." +msgstr "Die Subsonic-API ist auf dieser Instanz nicht verfügbar." + +#: front/src/components/requests/Form.vue:74 +msgid "The White Album, Thriller…" +msgstr "Das Weiße Album, Thriller…" + +#: front/src/components/audio/track/Table.vue:30 +msgid "There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks." +msgstr "" +"Zur zeit ist es nicht möglich, mehrere Tracks aus Funkwhale als Zip Archiv " +"herunterzuladen. Dennoch kannst du Tracks mit Hilfe von Kommandozeilen (z.B. " +"cURL) leicht herunterladen." + +#: front/src/components/library/import/Main.vue:149 +msgid "This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled." +msgstr "" +"Dieser Import wird mit der folgenden Anfrage verknüpft. Nachdem der Import " +"fertig ist, wird die Anfrage als erfüllt markiert." + +#: front/src/views/federation/LibraryDetail.vue:195 +msgid "This indicate if the remote library granted you access" +msgstr "Dies weist darauf hin, ob die Fernmediathek dir den Zugriff gewährt hat" + +#: front/src/components/auth/Profile.vue:16 +msgid "This is you!" +msgstr "Das bist du!" + +#: front/src/components/common/ActionTable.vue:37 +msgid "This may affect a lot of elements, please double check this is really what you want." +msgstr "" +"Durch diese Aktion können mehrere Elemente betroffen werden, prüfe bitte " +"nach, das du es wirklich willst." + +#: front/src/components/audio/PlayButton.vue:61 +msgid "This track is not imported and cannot be played" +msgstr "Dieser Track wurde nicht importiert und kann nicht abgespielt werden" + +#: front/src/views/playlists/Detail.vue:37 +msgid "This will completely delete this playlist and cannot be undone." +msgstr "" +"Die Playlist wird dauerhaft gelöscht und kann nicht zurückerstellt werden." + +#: front/src/views/radios/Detail.vue:27 +msgid "This will completely delete this radio and cannot be undone." +msgstr "Das Radio wird dauerhaft gelöscht und kann nicht zurückerstellt werden." + +#: front/src/components/auth/SubsonicTokenForm.vue:51 +msgid "This will completely disable access to the Subsonic API using from account." +msgstr "Der Zugriff zur Subsonic-API von diesem Konto wird deaktiviert." + +#: front/src/App.vue:137 +msgid "This will erase your local data and disconnect you, do you want to continue?" +msgstr "" +"Deine lokalen Daten werden gelöscht, und du wirst abgemeldet. Möchtest du " +"fortfahren?" + +#: front/src/components/auth/SubsonicTokenForm.vue:36 +msgid "This will log you out from existing devices that use the current password." +msgstr "" +"Du wirst von den bestehenden Geräten abgemeldet, die dieses Passwort nutzen." + +#: front/src/components/playlists/Editor.vue:44 +msgid "This will remove all tracks from this playlist and cannot be undone." +msgstr "" +"Alle Tracks dieses Playlists werden dauerhauft gelöscht und können nicht " +"zurückerstellt werden." + +#: front/src/components/audio/track/Table.vue:6 +#: front/src/components/federation/LibraryTrackTable.vue:47 +#: front/src/components/manage/library/FilesTable.vue:37 +msgid "Title" +msgstr "Titel" + +#: front/src/components/audio/SearchBar.vue:27 src/components/library/Track.vue:174 +#: front/src/components/library/import/BatchDetail.vue:84 +#: front/src/components/metadata/Search.vue:138 +msgid "Track" +msgstr "Track" + +#: front/src/components/library/Track.vue:53 +msgid "Track information" +msgstr "Trackinformation" + +#: front/src/components/library/radios/Filter.vue:44 +msgid "Track matching filter" +msgstr "" + +#: front/src/components/instance/Stats.vue:54 +msgid "tracks" +msgstr "Tracks" + +#: front/src/components/library/Album.vue:43 +#: front/src/components/playlists/PlaylistModal.vue:33 +#: front/src/views/federation/Base.vue:8 src/views/playlists/Detail.vue:50 +#: front/src/views/radios/Detail.vue:34 +msgid "Tracks" +msgstr "Tracks" + +#: front/src/views/federation/LibraryDetail.vue:125 +msgid "Tracks available in this library" +msgstr "Verfügbare Tracks in dieser Mediathek" + +#: front/src/components/library/Artist.vue:54 +msgid "Tracks by this artist" +msgstr "Tracks von diesem Künstler oder Künstlerin" + +#: front/src/components/instance/Stats.vue:25 +msgid "Tracks favorited" +msgstr "Tracks in den Favoriten" + +#: front/src/components/instance/Stats.vue:19 +msgid "tracks listened" +msgstr "Angehörte Tracks" + +#: front/src/views/federation/LibraryDetail.vue:109 +msgid "Trigger scan" +msgstr "Scan auslösen" + +#: front/src/components/manage/library/FilesTable.vue:41 +msgid "Type" +msgstr "Typ" + +#: front/src/components/About.vue:15 +msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." +msgstr "" +"Leider wurde diese Seite von den Verwaltern dieser Instanz noch nicht " +"ausgefüllt." + +#: front/src/views/federation/LibraryDetail.vue:95 +msgid "Unknown" +msgstr "Unbekannt" + +#: front/src/components/Home.vue:37 +msgid "Unlimited music" +msgstr "Unbegrenzte Musik" + +#: front/src/components/audio/Player.vue:264 +msgid "Unmute" +msgstr "Stummschaltung aufheben" + +#: front/src/components/auth/Settings.vue:50 +msgid "Update avatar" +msgstr "Avatar aktualisieren" + +#: front/src/components/playlists/Form.vue:33 +msgid "Update playlist" +msgstr "Playlist aktualisiert" + +#: front/src/components/auth/Settings.vue:27 +msgid "Update settings" +msgstr "Einstellungen aktualisieren" + +#: front/src/views/auth/PasswordResetConfirm.vue:21 +msgid "Update your password" +msgstr "Dein Kennwort aktualisieren" + +#: front/src/components/manage/users/UsersTable.vue:172 +#: front/src/views/admin/users/UsersDetail.vue:153 +msgid "Upload" +msgstr "Hochladen" + +#: front/src/components/auth/Settings.vue:45 +msgid "Upload a new avatar" +msgstr "Neues Avatar hochladen" + +#: front/src/components/library/import/Main.vue:7 +msgid "Uploaded files or external source" +msgstr "Hochgeladene Dateien oder externe Quelle" + +#: front/src/components/library/import/FileUpload.vue:57 +msgid "Uploading..." +msgstr "Hochladen..." + +#: front/src/App.vue:45 +msgid "Use another instance" +msgstr "Eine andere Instanz benutzen" + +#: front/src/components/requests/Form.vue:75 +msgid "Use this comment box to add details to your request if needed" +msgstr "" +"Nutze dieses Feld um weitere Informationen über deine Anfrage beizufügen" + +#: front/src/views/federation/LibraryDetail.vue:196 +msgid "Use this flag to enable/disable federation with this library" +msgstr "" +"Mit dieser Einstellung kannst du die Föderation an dieser Mediathek " +"umschalten" + +#: front/src/views/auth/PasswordReset.vue:12 +msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password." +msgstr "" +"Mit diesem Formular kannst du ein neues Kennwort beantragen. Wir schicken " +"dir eine E-Mail an die angegebene Adresse mit den Anleitungen." + +#: front/src/components/federation/LibraryForm.vue:6 +msgid "Use this form to scan an instance and setup federation." +msgstr "Scanne eine Instanz und föderiere damit." + +#: front/src/components/manage/users/InvitationsTable.vue:49 +msgid "Used" +msgstr "Verwendet" + +#: front/src/components/manage/library/RequestsTable.vue:47 +msgid "User" +msgstr "Nutzende" + +#: front/src/components/instance/Stats.vue:5 +msgid "User activity" +msgstr "Aktivität der Nutzende" + +#: front/src/components/library/Radios.vue:20 +msgid "User radios" +msgstr "Radios der Nutzende" + +#: front/src/components/auth/Signup.vue:19 +#: front/src/components/manage/users/UsersTable.vue:37 +msgid "Username" +msgstr "Benutzername" + +#: front/src/components/auth/Login.vue:15 +msgid "Username or email" +msgstr "Benutzername oder E-Mail-Adresse" + +#: front/src/components/instance/Stats.vue:13 +msgid "users" +msgstr "Nutzende" + +#: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 +#: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 +#: front/src/views/admin/users/UsersList.vue:21 +msgid "Users" +msgstr "Nutzende" + +#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35 +#: front/src/components/library/Track.vue:44 +#: front/src/components/library/import/ArtistImport.vue:131 +#: front/src/components/metadata/ArtistCard.vue:49 +#: front/src/components/metadata/ReleaseCard.vue:53 +msgid "View on MusicBrainz" +msgstr "Auf MusicBrainz ansehen" + +#: front/src/components/playlists/PlaylistModal.vue:20 +msgid "We cannot add the track to a playlist" +msgstr "Dieser Track kann nicht zu einer Playlist hinzugefügt werden" + +#: front/src/components/playlists/Form.vue:14 +msgid "We cannot create the playlist" +msgstr "Die Playlist kann nicht erstellt werden" + +#: front/src/components/auth/Signup.vue:13 +msgid "We cannot create your account" +msgstr "Dein Konto kann nicht erstellt werden" + +#: front/src/components/auth/Login.vue:7 +msgid "We cannot log you in" +msgstr "Wir können dich nicht einloggen" + +#: front/src/components/auth/Settings.vue:38 +msgid "We cannot save your avatar" +msgstr "Dein Avatar kann nicht gespeichert werden" + +#: front/src/components/auth/Settings.vue:14 +msgid "We cannot save your settings" +msgstr "Deine Einstellungen können nicht gespeichert werden" + +#: front/src/components/Home.vue:130 +msgid "We do not track you or bother you with ads" +msgstr "Weder verfolgen wir dich noch stören wir dich mit Werbung" + +#: front/src/components/library/import/FileUpload.vue:5 +msgid "We recommend using Picard for that purpose." +msgstr "Zu diesem Zweck wird Picard empfohlen." + +#: front/src/components/Home.vue:7 +msgid "We think listening to music should be simple." +msgstr "Weil Musik hören sollte leicht sein." + +#: front/src/components/PageNotFound.vue:10 +msgid "We're sorry, the page you asked for does not exist:" +msgstr "Entschuldigung, die aufgerufene Seite existiert nicht:" + +#: front/src/components/requests/Form.vue:21 +msgid "We've received your request, you'll get some groove soon ;)" +msgstr "Deine Anfrage wurde empfangen, du wirst bald von uns was hören ;)" + +#: front/src/components/Home.vue:152 +msgid "Welcome" +msgstr "Willkommen" + +#: front/src/components/Home.vue:5 +msgid "Welcome on Funkwhale" +msgstr "Willkommen auf Funkwhale" + +#: front/src/components/library/import/Main.vue:114 +msgid "What is metadata?" +msgstr "Was sind Metadaten?" + +#: front/src/views/federation/LibraryDetail.vue:197 +msgid "When enabled, auto importing will automatically import new tracks published in this library" +msgstr "" +"Wenn angeschaltet, neue veröffentliche Tracks in dieser Bibliothek werden " +"automatisch importiert" + +#: front/src/components/Home.vue:24 +msgid "Why funkwhale?" +msgstr "Warum Funkwhale?" + +#: front/src/components/Sidebar.vue:124 +msgid "Yes" +msgstr "Ja" + +#: front/src/components/auth/Logout.vue:8 +msgid "Yes, log me out!" +msgstr "Ja, logge mich aus!" + +#: front/src/components/auth/Logout.vue:7 +msgid "You are currently logged in as %{ username }" +msgstr "Du bist als %{ username } angemeldet" + +#: front/src/components/library/import/Main.vue:111 +msgid "You can also skip this step and enter metadata manually." +msgstr "" +"Du kannst auch diesen Schritt überspringen und die Metadaten per Hand " +"eingeben." + +#: front/src/components/Home.vue:136 +msgid "You can invite friends and family to your instance so they can enjoy your music" +msgstr "" +"Du kannst Freunde und Familie auf deiner Instanz einladen, sodass sie deine " +"Musik genießen können" + +#: front/src/components/library/radios/Builder.vue:7 +msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria." +msgstr "" +"Dank dieser Schnittstelle kannst du dein eigenes Radio aufbauen, das die " +"entsprechenden Tracks abspielt." + +#: front/src/components/auth/SubsonicTokenForm.vue:8 +msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance." +msgstr "" +"Damit kannst du deine Playlists und Musik offline genießen, zum Beispiel auf " +"deinem Smartphone bzw. Tablett." + +#: front/src/components/Sidebar.vue:156 +msgid "You have a radio playing" +msgstr "Du hörst gerade ein Radio an" + +#: front/src/App.vue:6 +msgid "You need to select an instance in order to continue" +msgstr "Zum Fortfahren wähle bitte eine Instanz aus" + +#: front/src/components/auth/Settings.vue:100 +msgid "You will be logged out from this session and have to log in with the new one" +msgstr "" +"Du wirst von dieser Sitzung ausgeloggt und du musst dich mit deinem neuen " +"Kennwort einloggen" + +#: front/src/components/auth/Settings.vue:71 +msgid "You will have to update your password on your clients that use this password." +msgstr "" +"Du musst das Passwort auf deine verbundenen Geräte anpassen, die dieses " +"Passwort verwenden." + +#: front/src/components/library/import/Main.vue:103 +msgid "You will import:" +msgstr "Du wirst importieren:" + +#: front/src/views/auth/EmailConfirm.vue:24 +msgid "Your email address was confirmed, you can now use the service without limitations." +msgstr "" +"Deine E-Mail-Adresse wurde bestätigt, jetzt kannst du den Service unbegrenzt " +"nutzen." + +#: front/src/components/favorites/List.vue:109 +msgid "Your Favorites" +msgstr "Deine Favoriten" + +#: front/src/components/Home.vue:117 +msgid "Your music, your way" +msgstr "Deine Musik, deine Weise" + +#: front/src/views/auth/PasswordResetConfirm.vue:29 +msgid "Your password has been updated successfully." +msgstr "Dein Kennwort wurde erfolgreich aktualisiert." + +#: front/src/components/auth/Settings.vue:101 +msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password" +msgstr "" +"Dein Subsonic-Kennwort wird mit einem neuen beliebigen Kennwort ersetzt, und " +"du wirst auf allen aktuellen verbundenen Geräten ausgeloggt, die das alte " +"Kennwort nutzen" + +#: front/src/components/audio/PlayButton.vue:156 +msgid "%{ count } track was added to your queue" +msgid_plural "%{ count } tracks were added to your queue" +msgstr[0] "1 Track wurde zur Wiedergabeliste hinzugefügt" +msgstr[1] "%{ count } Tracks wurden zur Wiedergabeliste hinzugefügt" diff --git a/front/locales/eo/LC_MESSAGES/app.po b/front/locales/eo/LC_MESSAGES/app.po index d4fc38a86..0d6e688fb 100644 --- a/front/locales/eo/LC_MESSAGES/app.po +++ b/front/locales/eo/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-22 15:50+0000\n" +"PO-Revision-Date: 2018-07-24 19:50+0000\n" "Last-Translator: Baptiste Gelez \n" "Language-Team: none\n" "Language: eo\n" @@ -34,8 +34,8 @@ msgstr "(malplena)" #: front/src/components/common/ActionTable.vue:51 msgid "%{ count } on %{ total } selected" msgid_plural "%{ count } on %{ total } selected" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Unu el %{total} estas selekta" +msgstr[1] "%{count} el %{total} estas selektaj" #: front/src/components/Sidebar.vue:116 #: src/views/federation/LibraryDetail.vue:87 @@ -739,11 +739,11 @@ msgstr "Tajpu nomon de artisto…" #: front/src/views/federation/LibraryList.vue:122 msgid "Enter an library domain name..." -msgstr "" +msgstr "Tajpu domajna nomo de instance…" #: front/src/views/playlists/List.vue:104 msgid "Enter an playlist name..." -msgstr "" +msgstr "Tajpu ludlistan nomon…" #: front/src/components/auth/Signup.vue:98 msgid "Enter your email" @@ -884,86 +884,91 @@ msgstr "Filtri albumtipoj" #: front/src/components/library/radios/Builder.vue:56 msgid "Filter name" -msgstr "" +msgstr "Filtri nomon" #: front/src/components/library/import/Main.vue:52 msgid "Finish import" -msgstr "" +msgstr "Fini importadon" #: front/src/components/library/import/BatchDetail.vue:54 msgid "Finished" -msgstr "" +msgstr "Finanto" #: front/src/components/library/import/Main.vue:59 msgid "First, choose where you want to import the music from" -msgstr "" +msgstr "Unue, elekti ejo el vi volas importi muzikon" #: front/src/components/federation/LibraryCard.vue:44 msgid "Follow" -msgstr "" +msgstr "Sekvi" #: front/src/components/federation/LibraryCard.vue:36 msgid "Follow request pending approval" -msgstr "" +msgstr "Peto da sekvado atendis konsenton" #: front/src/views/federation/LibraryDetail.vue:21 msgid "Follow status" -msgstr "" +msgstr "Sekva statuso" #: front/src/views/federation/Base.vue:13 #: front/src/views/federation/LibraryFollowersList.vue:24 msgid "Followers" -msgstr "" +msgstr "Sekvantoj" #: front/src/components/federation/LibraryCard.vue:18 msgid "Followers only" -msgstr "" +msgstr "Nur sekvantoj" #: front/src/components/federation/LibraryCard.vue:15 #: front/src/views/federation/LibraryDetail.vue:29 msgid "Following" -msgstr "" +msgstr "Sekvata" #: front/src/components/activity/Like.vue:12 #: src/components/activity/Listen.vue:12 msgid "from %{ album } by %{ artist }" -msgstr "" +msgstr "el %{album} je %{artist}" #: front/src/components/library/Track.vue:13 msgid "From album %{ album } by %{ artist }" -msgstr "" +msgstr "El %{album} albumo je %{artist}" #: front/src/App.vue:56 msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" msgstr "" +"Funkwhale estas senpaga kaj kun libera fontkodo projekto, ke viglas dankon " +"al vonlontuloj. Vi povas helpi nin plibonigi tiun kun cimosignaladoj, " +"trajtosugestoj kaj diskonigado de la projekto al viaj amikoj!" #: front/src/components/auth/SubsonicTokenForm.vue:7 msgid "Funkwhale is compatible with other music players that support the Subsonic API." -msgstr "" +msgstr "Funkwhale funkcias kun aliaj muzikludiloj ke apogas la Subsonic API." #: front/src/components/Home.vue:98 msgid "Funkwhale is dead simple to use." -msgstr "" +msgstr "Uzi Funkwhale facilegas." #: front/src/components/Home.vue:39 msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." msgstr "" +"Funkwhale estas dizajna tiel ke estas facile aŭskulti muzikon vi ŝatas, aŭ " +"malkovri novajn artistojn." #: front/src/components/Home.vue:119 msgid "Funkwhale is free and gives you control on your music." -msgstr "" +msgstr "Funkwhale estas senpaga kaj lasis vin estri vian muzikon." #: front/src/components/Home.vue:66 msgid "Funkwhale takes care of handling your music" -msgstr "" +msgstr "Funkwhale atentas manipuli vian muzikon" #: front/src/components/manage/users/InvitationForm.vue:16 msgid "Get a new invitation" -msgstr "" +msgstr "Akiri novan inviton" #: front/src/components/Home.vue:13 msgid "Get me to the library" -msgstr "" +msgstr "Iru al la muzikejo" #: front/src/components/Home.vue:77 msgid "" @@ -972,19 +977,21 @@ msgid "" " MusicBrainz\n" " " msgstr "" +"Akiri bonegaj metadatumoj pri vian muzikon kun MusicBrainz" #: front/src/components/common/ActionTable.vue:21 #: front/src/components/common/ActionTable.vue:27 msgid "Go" -msgstr "" +msgstr "Komenci" #: front/src/components/PageNotFound.vue:14 msgid "Go to home page" -msgstr "" +msgstr "Iru hejme" #: front/src/components/library/import/Main.vue:13 msgid "Grab corresponding metadata" -msgstr "" +msgstr "Kolekti la koncernajn metadatumojn" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" @@ -992,237 +999,241 @@ msgstr "" #: front/src/components/library/Home.vue:65 msgid "Home" -msgstr "" +msgstr "Hejmo" #: front/src/components/instance/Stats.vue:36 msgid "Hours of music" -msgstr "" +msgstr "Muzikhoroj" #: front/src/components/auth/SubsonicTokenForm.vue:11 msgid "However, accessing Funkwhale from those clients require a separate password you can set below." msgstr "" +"Tamen, atingi Funkwhale el tiuj aplikaĵo bezonas alian pasvorton ke vi povas " +"difini malsupre." #: front/src/components/library/import/BatchList.vue:34 msgid "ID" -msgstr "" +msgstr "ID" #: front/src/views/auth/PasswordResetConfirm.vue:24 msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." msgstr "" +"Se la retadreso provizanta dum la antaŭa etapo korektas kaj bindas al " +"uzantkonto, vi baldaŭ ricevus retmesaĝon kun renuligadaj instrukcioj." #: front/src/components/federation/LibraryTrackTable.vue:196 #: front/src/components/library/Library.vue:17 msgid "Import" -msgstr "" +msgstr "Importi" #: front/src/components/federation/LibraryTrackTable.vue:57 msgid "Import #%{ id } launched" -msgstr "" +msgstr "Importado #%{id} komencis" #: front/src/components/library/import/Main.vue:38 msgid "Import %{ count } track" msgid_plural "Import %{ count } tracks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Importi unu kanto" +msgstr[1] "Importi %{count} kantoj" #: front/src/components/library/import/BatchDetail.vue:10 msgid "Import batch" -msgstr "" +msgstr "Importaro" #: front/src/components/library/import/BatchDetail.vue:185 msgid "Import Batch #%{ id }" -msgstr "" +msgstr "Importaro #%{id}" #: front/src/components/library/Library.vue:20 msgid "Import batches" -msgstr "" +msgstr "Importaroj" #: front/src/components/library/import/BatchList.vue:117 msgid "Import Batches" -msgstr "" +msgstr "Importaroj" #: front/src/components/manage/library/FilesTable.vue:40 #: front/src/components/manage/library/RequestsTable.vue:53 msgid "Import date" -msgstr "" +msgstr "Importdato" #: front/src/components/library/import/FileUpload.vue:38 msgid "Import detail page" -msgstr "" +msgstr "Importado detalpaĝo" #: front/src/components/Sidebar.vue:81 msgid "Import music" -msgstr "" +msgstr "Importi muzikon" #: front/src/components/library/import/Main.vue:267 msgid "Import Music" -msgstr "" +msgstr "Importi muzikon" #: front/src/components/Home.vue:71 msgid "Import music from various platforms, such as YouTube or SoundCloud" -msgstr "" +msgstr "Importi muzikon el multe da servicoj, kiel YouTube aŭ SoundCloud" #: front/src/components/federation/LibraryTrackTable.vue:14 #: front/src/components/federation/LibraryTrackTable.vue:66 msgid "Import pending" -msgstr "" +msgstr "Importado atendas" #: front/src/views/admin/library/Base.vue:9 #: front/src/views/admin/library/RequestsList.vue:3 #: front/src/views/admin/library/RequestsList.vue:21 msgid "Import requests" -msgstr "" +msgstr "Importpetoj" #: front/src/components/library/import/BatchList.vue:20 #: front/src/components/library/import/Main.vue:6 msgid "Import source" -msgstr "" +msgstr "Importfonto" #: front/src/components/federation/LibraryTrackTable.vue:9 msgid "Import status" -msgstr "" +msgstr "Importstato" #: front/src/components/library/import/ReleaseImport.vue:14 msgid "Import this release" -msgstr "" +msgstr "Importi tiun albumon" #: front/src/components/library/import/TrackImport.vue:11 msgid "Import this track" -msgstr "" +msgstr "Importi tiun kanton" #: front/src/components/federation/LibraryTrackTable.vue:12 #: front/src/components/manage/library/RequestsTable.vue:29 #: front/src/components/manage/library/RequestsTable.vue:61 msgid "Imported" -msgstr "" +msgstr "Importata" #: front/src/components/library/import/TrackImport.vue:44 msgid "Imported URL" -msgstr "" +msgstr "Importanta URL" #: front/src/views/admin/Settings.vue:82 msgid "Imports" -msgstr "" +msgstr "Importadoj" #: front/src/components/favorites/TrackFavoriteIcon.vue:3 msgid "In favorites" -msgstr "" +msgstr "En stelumoj" #: front/src/components/federation/LibraryTrackTable.vue:65 msgid "In library" -msgstr "" +msgstr "En muzikejo" #: front/src/components/manage/users/UsersTable.vue:54 msgid "Inactive" -msgstr "" +msgstr "Malaktiva" #: front/src/components/library/import/Main.vue:96 msgid "Input a MusicBrainz ID manually:" -msgstr "" +msgstr "Tajpu MusicBrainz ID mane:" #: front/src/views/auth/PasswordReset.vue:53 msgid "Input the email address binded to your account" -msgstr "" +msgstr "Tajpu la retadreson bindanta al via konto" #: front/src/components/playlists/Editor.vue:31 msgid "Insert from queue (%{ count } track)" msgid_plural "Insert from queue (%{ count } tracks)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Internigi el atendovico (unu kanto)" +msgstr[1] "Internigi el atendovico (%{count} kantoj)" #: front/src/views/admin/Settings.vue:80 msgid "Instance information" -msgstr "" +msgstr "Instanca informo" #: front/src/components/library/Radios.vue:9 msgid "Instance radios" -msgstr "" +msgstr "Instancaj radioj" #: front/src/views/admin/Settings.vue:75 msgid "Instance settings" -msgstr "" +msgstr "Instancaj preferoj" #: front/src/views/instance/Timeline.vue:57 msgid "Instance Timeline" -msgstr "" +msgstr "Instanca tempolino" #: front/src/components/auth/Signup.vue:42 #: front/src/components/manage/users/InvitationForm.vue:11 msgid "Invitation code" -msgstr "" +msgstr "Invita kodo" #: front/src/components/auth/Signup.vue:43 msgid "Invitation code (optional)" -msgstr "" +msgstr "Invita kodo (nedeviga)" #: front/src/views/admin/users/Base.vue:8 #: src/views/admin/users/InvitationsList.vue:3 #: front/src/views/admin/users/InvitationsList.vue:24 msgid "Invitations" -msgstr "" +msgstr "Invitoj" #: front/src/App.vue:43 msgid "Issue tracker" -msgstr "" +msgstr "Cimspuradilo" #: front/src/components/library/import/BatchDetail.vue:80 msgid "Job ID" -msgstr "" +msgstr "Labora ID" #: front/src/components/library/import/BatchList.vue:36 msgid "Jobs" -msgstr "" +msgstr "Laboroj" #: front/src/components/Home.vue:50 msgid "Keep a track of your favorite songs" -msgstr "" +msgstr "Konservi postsignojn de viaj preferitaj kantoj" #: front/src/components/audio/track/Table.vue:33 msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." -msgstr "" +msgstr "Konservu vian PRIVATE_TOKEN sekreta, ĉar ĝi atingeblas vian konton." #: front/src/components/manage/users/UsersTable.vue:41 #: front/src/views/admin/users/UsersDetail.vue:45 msgid "Last activity" -msgstr "" +msgstr "Lasta akto" #: front/src/views/federation/LibraryDetail.vue:101 msgid "Last fetched" -msgstr "" +msgstr "Lasta kolektado" #: front/src/components/playlists/PlaylistModal.vue:32 msgid "Last modification" -msgstr "" +msgstr "Lasta redakto" #: front/src/components/common/ActionTable.vue:39 msgid "Launch" -msgstr "" +msgstr "Lanĉi" #: front/src/components/library/import/BatchDetail.vue:18 #: front/src/components/library/import/BatchList.vue:35 msgid "Launch date" -msgstr "" +msgstr "Lanĉa dato" #: front/src/components/federation/LibraryForm.vue:31 msgid "Launch scan" -msgstr "" +msgstr "Lanĉi skanon" #: front/src/components/Home.vue:10 msgid "Learn more about this instance" -msgstr "" +msgstr "Lerni pli pri tiu instanco" #: front/src/components/manage/users/InvitationForm.vue:58 msgid "Leave empty for a random code" -msgstr "" +msgstr "Lasu malplena por hazarda kodo" #: front/src/components/requests/Form.vue:10 msgid "Leave this field empty if you're requesting the whole discography." -msgstr "" +msgstr "Lasu malplena se vi volas la tutan albumaron." #: front/src/views/federation/Base.vue:5 #: src/views/federation/LibraryList.vue:123 msgid "Libraries" -msgstr "" +msgstr "Muzikejoj" #: front/src/components/Sidebar.vue:70 #: front/src/components/federation/LibraryTrackTable.vue:51 @@ -1231,103 +1242,104 @@ msgstr "" #: front/src/views/admin/users/UsersDetail.vue:157 #: front/src/views/federation/LibraryDetail.vue:194 msgid "Library" -msgstr "" +msgstr "Muzikejo" #: front/src/views/admin/library/FilesList.vue:3 msgid "Library files" -msgstr "" +msgstr "Muzikejaj dosieroj" #: front/src/components/federation/LibraryForm.vue:20 msgid "Library name" -msgstr "" +msgstr "Nomo de muzikejo" #: front/src/views/federation/LibraryDetail.vue:84 msgid "Library size" -msgstr "" +msgstr "Muzikejgrando" #: front/src/components/federation/LibraryForm.vue:96 msgid "library@demo.funkwhale.audio" -msgstr "" +msgstr "library@demo.funkwhale.audio" #: front/src/App.vue:29 msgid "Links" -msgstr "" +msgstr "Ligiloj" #: front/src/views/instance/Timeline.vue:4 msgid "Loading timeline..." -msgstr "" +msgstr "Tempolino ŝarĝas…" #: front/src/components/favorites/List.vue:5 +#, fuzzy msgid "Loading your favorites..." -msgstr "" +msgstr "Ŝarĝantas stelumojn" #: front/src/components/auth/Login.vue:78 msgid "Log In" -msgstr "" +msgstr "Ensaluti" #: front/src/components/auth/Login.vue:4 msgid "Log in to your Funkwhale account" -msgstr "" +msgstr "Ensaluti en via Funkwhale konto" #: front/src/components/auth/Logout.vue:20 msgid "Log Out" -msgstr "" +msgstr "Elsaluti" #: front/src/components/Sidebar.vue:38 msgid "Logged in as %{ username }" -msgstr "" +msgstr "Elsuta je %{username}" #: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 msgid "Login" -msgstr "" +msgstr "Ensaluti" #: front/src/components/Sidebar.vue:43 msgid "Logout" -msgstr "" +msgstr "Elsaluti" #: front/src/components/audio/Player.vue:266 msgid "Looping disabled. Click to switch to single-track looping." -msgstr "" +msgstr "Ripeto malaktivas. Alklaki por aktivi ripetado de la aktuala kanto." #: front/src/components/audio/Player.vue:267 msgid "Looping on a single track. Click to switch to whole queue looping." -msgstr "" +msgstr "Ripetas unu kanton. Alklaki por aktivi ripetado de la tutan atendovico." #: front/src/components/audio/Player.vue:268 msgid "Looping on whole queue. Click to disable looping." -msgstr "" +msgstr "Ripetas la tutan atendovicon. Alklaki por malaktivi ripeto." #: front/src/components/library/Track.vue:94 msgid "Lyrics" -msgstr "" +msgstr "Teksto" #: front/src/views/admin/library/Base.vue:25 msgid "Manage library" -msgstr "" +msgstr "Manipuli muzikejon" #: front/src/components/playlists/PlaylistModal.vue:3 msgid "Manage playlists" -msgstr "" +msgstr "Manipuli ludlistojn" #: front/src/views/admin/users/Base.vue:20 msgid "Manage users" -msgstr "" +msgstr "Manipuli uzantojn" #: front/src/views/playlists/List.vue:8 msgid "Manage your playlists" -msgstr "" +msgstr "Manipuli viajn ludlistojn" #: front/src/components/manage/library/RequestsTable.vue:197 msgid "Mark as closed" -msgstr "" +msgstr "Marki fermata" #: front/src/components/manage/library/RequestsTable.vue:196 msgid "Mark as imported" -msgstr "" +msgstr "Marki importata" #: front/src/components/library/import/Main.vue:12 msgid "Metadata" -msgstr "" +msgstr "Metadatumoj" #: front/src/components/library/import/Main.vue:115 msgid "" @@ -1337,31 +1349,36 @@ msgid "" " \n" " project, which you can think about as the Wikipedia of music." msgstr "" +"Metadatumoj estas datumoj rilatanta al muziko vi volas importi. Ĝi enhavas " +"ĉiu informo pri artistoj, albumoj kaj kantoj. Por havi bonega muzikejo, " +"estas rekomendata kolekti datumojn el la MusicBrainz projekto, ke similas al Vikipedio sed por " +"muziko." #: front/src/components/Sidebar.vue:48 #: src/components/library/import/Main.vue:18 msgid "Music" -msgstr "" +msgstr "Muziko" #: front/src/components/library/import/Main.vue:147 msgid "Music request" -msgstr "" +msgstr "Muzikpeto" #: front/src/components/audio/Player.vue:265 msgid "Mute" -msgstr "" +msgstr "Silentigi" #: front/src/components/Sidebar.vue:34 msgid "My account" -msgstr "" +msgstr "Mia konto" #: front/src/components/playlists/Form.vue:74 msgid "My awesome playlist" -msgstr "" +msgstr "Mia mojosa ludlisto" #: front/src/components/library/radios/Builder.vue:227 msgid "My awesome radio" -msgstr "" +msgstr "Mia mojosa radio" #: front/src/components/library/Track.vue:64 #: src/components/library/Track.vue:75 @@ -1376,83 +1393,85 @@ msgstr "" #: front/src/components/manage/users/UsersTable.vue:61 #: front/src/views/admin/users/UsersDetail.vue:49 msgid "N/A" -msgstr "" +msgstr "ND" #: front/src/components/playlists/PlaylistModal.vue:31 #: front/src/views/admin/users/UsersDetail.vue:21 msgid "Name" -msgstr "" +msgstr "Nomo" #: front/src/components/auth/Settings.vue:88 #: front/src/views/auth/PasswordResetConfirm.vue:14 msgid "New password" -msgstr "" +msgstr "Nova pasvorto" #: front/src/components/Sidebar.vue:158 msgid "New tracks will be appended here automatically." -msgstr "" +msgstr "Novaj kantoj estos aldonataj ĉi-tie aŭtomate." #: front/src/components/library/import/Main.vue:29 msgid "Next step" -msgstr "" +msgstr "Baldaŭa etapo" #: front/src/components/audio/Player.vue:263 msgid "Next track" -msgstr "" +msgstr "Baldaŭa kanto" #: front/src/components/Sidebar.vue:125 msgid "No" -msgstr "" +msgstr "Ne" #: front/src/components/Home.vue:103 msgid "No add-ons, no plugins : you only need a web library" -msgstr "" +msgstr "Nek aldonaĵoj, nek kromprogramoj: vi nur bezonas retmuzikejo" #: front/src/components/library/Track.vue:102 msgid "No lyrics available for this track." -msgstr "" +msgstr "Nenio teksto disponeblas por tiu kanto." #: front/src/components/playlists/Form.vue:81 msgid "Nobody except me" -msgstr "" +msgstr "Neniu krom mi" #: front/src/views/federation/LibraryDetail.vue:32 msgid "Not following" -msgstr "" +msgstr "Ne sekvas" #: front/src/components/federation/LibraryTrackTable.vue:13 #: front/src/components/federation/LibraryTrackTable.vue:67 msgid "Not imported" -msgstr "" +msgstr "Ne importintas" #: front/src/components/manage/users/InvitationsTable.vue:51 msgid "Not used" -msgstr "" +msgstr "Ne uzantata" #: front/src/App.vue:37 msgid "Official website" -msgstr "" +msgstr "Oficiala retejo" #: front/src/components/auth/Settings.vue:83 msgid "Old password" -msgstr "" +msgstr "Malnova pasvorto" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." msgstr "" +"Kiam viaj dosieroj estas tute elŝutinta, ĵus alklaki tiu butono por vidi la " +"staton de la importo." #: front/src/components/federation/LibraryCard.vue:21 #: front/src/components/manage/users/InvitationsTable.vue:20 msgid "Open" -msgstr "" +msgstr "Malferma" #: front/src/App.vue:63 msgid "Options" -msgstr "" +msgstr "Preferoj" #: front/src/components/library/import/Main.vue:93 msgid "Or" -msgstr "" +msgstr "Aŭ" #: front/src/components/favorites/List.vue:23 #: front/src/components/federation/LibraryTrackTable.vue:18 @@ -1465,7 +1484,7 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:18 #: src/views/playlists/List.vue:17 msgid "Ordering" -msgstr "" +msgstr "Ordo" #: front/src/components/favorites/List.vue:31 #: front/src/components/federation/LibraryTrackTable.vue:26 @@ -1477,35 +1496,35 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:26 #: src/views/playlists/List.vue:25 msgid "Ordering direction" -msgstr "" +msgstr "Orda direkto" #: front/src/components/manage/users/InvitationsTable.vue:38 msgid "Owner" -msgstr "" +msgstr "Proprietulo" #: front/src/components/PageNotFound.vue:33 msgid "Page Not Found" -msgstr "" +msgstr "Ne eblas trovi tiun paĝon" #: front/src/components/PageNotFound.vue:7 msgid "Page not found!" -msgstr "" +msgstr "Maltrovitas paĝon!" #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 msgid "Password" -msgstr "" +msgstr "Pasvorto" #: front/src/components/auth/SubsonicTokenForm.vue:95 msgid "Password updated" -msgstr "" +msgstr "Pasvorto aktuliginta" #: front/src/views/auth/PasswordResetConfirm.vue:28 msgid "Password updated successfully" -msgstr "" +msgstr "Pasvorto sukcese aktualiginta" #: front/src/components/audio/Player.vue:262 msgid "Pause track" -msgstr "" +msgstr "Paŭzi kanton" #: front/src/components/federation/LibraryFollowTable.vue:46 #: front/src/components/library/import/BatchDetail.vue:33 @@ -1515,86 +1534,86 @@ msgstr "" #: front/src/components/manage/library/RequestsTable.vue:27 #: front/src/components/manage/library/RequestsTable.vue:63 msgid "Pending" -msgstr "" +msgstr "Atendas" #: front/src/components/federation/LibraryFollowTable.vue:11 #: front/src/views/federation/LibraryDetail.vue:26 msgid "Pending approval" -msgstr "" +msgstr "Atendas aprobon" #: front/src/components/Sidebar.vue:217 msgid "Pending follow requests" -msgstr "" +msgstr "Atendantaj petoj da sekvado" #: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 msgid "Pending import requests" -msgstr "" +msgstr "Atendantaj importpetoj" #: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 msgid "Pending requests" -msgstr "" +msgstr "Atendantaj petoj" #: front/src/components/manage/users/UsersTable.vue:42 #: front/src/views/admin/users/UsersDetail.vue:68 msgid "Permissions" -msgstr "" +msgstr "Rajtoj" #: front/src/components/audio/PlayButton.vue:9 #: src/components/library/Track.vue:30 msgid "Play" -msgstr "" +msgstr "Ludi" #: front/src/components/audio/album/Card.vue:50 #: front/src/components/audio/artist/Card.vue:44 #: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23 msgid "Play all" -msgstr "" +msgstr "Ludi ĉiu" #: front/src/components/library/Artist.vue:26 msgid "Play all albums" -msgstr "" +msgstr "Ludi ĉiuj albumoj" #: front/src/components/audio/PlayButton.vue:58 msgid "Play immediatly" -msgstr "" +msgstr "Ludi tuj" #: front/src/components/audio/PlayButton.vue:15 msgid "Play next" -msgstr "" +msgstr "Ludi baldaŭe" #: front/src/components/audio/PlayButton.vue:16 msgid "Play now" -msgstr "" +msgstr "Ludi tuj" #: front/src/components/audio/Player.vue:261 msgid "Play track" -msgstr "" +msgstr "Ludi kanton" #: front/src/views/playlists/Detail.vue:90 msgid "Playlist" -msgstr "" +msgstr "Ludlisto" #: front/src/views/playlists/Detail.vue:12 msgid "Playlist containing %{ count } track, by %{ username }" msgid_plural "Playlist containing %{ count } tracks, by %{ username }" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Ludisto enhavanta unu kanto, je %{username}" +msgstr[1] "Ludisto enhavanta %{count} kantoj, je %{username}" #: front/src/components/playlists/Form.vue:9 msgid "Playlist created" -msgstr "" +msgstr "Ludlisto kreiintas" #: front/src/components/playlists/Editor.vue:4 msgid "Playlist editor" -msgstr "" +msgstr "Ludlista redaktilo" #: front/src/components/playlists/Form.vue:21 msgid "Playlist name" -msgstr "" +msgstr "Nomo de la ludlisto" #: front/src/components/playlists/Form.vue:6 msgid "Playlist updated" -msgstr "" +msgstr "Ludlisto aktualigintas" #: front/src/components/playlists/Form.vue:25 msgid "Playlist visibility" diff --git a/front/locales/es/LC_MESSAGES/app.po b/front/locales/es/LC_MESSAGES/app.po new file mode 100644 index 000000000..8608d2074 --- /dev/null +++ b/front/locales/es/LC_MESSAGES/app.po @@ -0,0 +1,2505 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the front package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: front 1.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-22 14:12+0200\n" +"PO-Revision-Date: 2018-07-24 19:50+0000\n" +"Last-Translator: anonymous \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 2.20\n" + +#: front/src/components/playlists/PlaylistModal.vue:9 +msgid "\"%{ title }\", by %{ artist }" +msgstr "\"%{ title }\", de %{ artist }" + +#: front/src/components/Sidebar.vue:24 +msgid "(%{ index } of %{ length })" +msgstr "(%{ index } de %{ length })" + +#: front/src/components/Sidebar.vue:22 +msgid "(empty)" +msgstr "(vacío)" + +#: front/src/components/common/ActionTable.vue:43 +#: front/src/components/common/ActionTable.vue:51 +msgid "%{ count } on %{ total } selected" +msgid_plural "%{ count } on %{ total } selected" +msgstr[0] "%{ count } de %{ total } elemento seleccionado" +msgstr[1] "%{ count } de %{ total } elementos seleccionados" + +#: front/src/components/Sidebar.vue:116 src/views/federation/LibraryDetail.vue:87 +msgid "%{ count } track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count } canción" +msgstr[1] "%{ count } canciones" + +#: front/src/components/library/Artist.vue:13 +msgid "%{ count } track in %{ albumsCount } albums" +msgid_plural "%{ count } tracks in %{ albumsCount } albums" +msgstr[0] "%{ count } canción en %{ albumsCount } álbumes" +msgstr[1] "%{ count } canciones en %{ albumsCount } álbumes" + +#: front/src/components/library/radios/Builder.vue:76 +msgid "%{ count } track matching combined filters" +msgid_plural "%{ count } tracks matching combined filters" +msgstr[0] "%{ count } canción coincidiendo con filtros combinados" +msgstr[1] "%{ count } canciones coincidiendo con filtros combinados" + +#: front/src/components/playlists/Card.vue:18 +msgid "%{ count} track" +msgid_plural "%{ count } tracks" +msgstr[0] "%{ count} canción" +msgstr[1] "%{ count } canciones" + +#: front/src/components/common/Duration.vue:2 +msgid "%{ hours } h %{ minutes } min" +msgstr "%{ hours } h %{ minutes } min" + +#: front/src/components/common/Duration.vue:5 +msgid "%{ minutes } min" +msgstr "%{ minutes } min" + +#: front/src/components/activity/Like.vue:7 +msgid "%{ user } favorited a track" +msgstr "%{ user } añadió una canción a sus favoritos" + +#: front/src/components/activity/Listen.vue:7 +msgid "%{ user } listened to a track" +msgstr "%{ user } escuchó una canción" + +#: front/src/components/auth/Profile.vue:49 +msgid "%{ username }'s profile" +msgstr "Perfil de %{ username }" + +#: front/src/components/audio/artist/Card.vue:41 +msgid "1 album" +msgid_plural "%{ count } albums" +msgstr[0] "1 álbum" +msgstr[1] "%{ count } álbumes" + +#: front/src/components/favorites/List.vue:10 +msgid "1 favorite" +msgid_plural "%{ count } favorites" +msgstr[0] "1 favorito" +msgstr[1] "%{ count } favoritos" + +#: front/src/components/audio/album/Card.vue:54 +#: front/src/components/federation/LibraryCard.vue:25 +msgid "1 track" +msgid_plural "%{ count } tracks" +msgstr[0] "1 canción" +msgstr[1] "%{ count } canciones" + +#: front/src/components/About.vue:5 +msgid "About %{ instance }" +msgstr "Sobre %{ instance }" + +#: front/src/App.vue:54 +msgid "About Funkwhale" +msgstr "Acerca de Funkwhale" + +#: front/src/App.vue:32 src/components/About.vue:8 src/components/About.vue:55 +msgid "About this instance" +msgstr "Acerca de esta instancia" + +#: front/src/components/manage/library/RequestsTable.vue:28 +#: front/src/components/manage/library/RequestsTable.vue:62 +msgid "Accepted" +msgstr "Aceptado" + +#: front/src/components/auth/SubsonicTokenForm.vue:111 +msgid "Access disabled" +msgstr "Acceso deshabilitado" + +#: front/src/components/Home.vue:109 +msgid "Access your music from a clean interface that focus on what really matters" +msgstr "" +"Accede a tu música con una interfaz limpia y concéntrate en lo que realmente " +"importa" + +#: front/src/views/admin/users/UsersDetail.vue:54 +msgid "Account active" +msgstr "Cuenta activa" + +#: front/src/components/auth/Settings.vue:5 +msgid "Account settings" +msgstr "Configuración de cuenta" + +#: front/src/components/auth/Settings.vue:257 +msgid "Account Settings" +msgstr "Configuración de Cuenta" + +#: front/src/components/manage/users/UsersTable.vue:39 +msgid "Account status" +msgstr "Estado de cuenta" + +#: front/src/views/auth/PasswordReset.vue:14 +msgid "Account's email" +msgstr "Correo electrónico de la cuenta" + +#: front/src/components/common/ActionTable.vue:82 +msgid "Action %{ action } was launched successfully on %{ count } element" +msgid_plural "Action %{ action } was launched successfully on %{ count } elements" +msgstr[0] "Acción %{ action } fue iniciado exitosamente en %{ count } elemento" +msgstr[1] "Acción %{ action } fue iniciado exitosamente en %{ count } elementos" + +#: front/src/components/common/ActionTable.vue:8 +#: front/src/components/federation/LibraryFollowTable.vue:24 +#: front/src/components/library/radios/Builder.vue:60 +#: front/src/components/manage/library/RequestsTable.vue:54 +msgid "Actions" +msgstr "Acciones" + +#: front/src/components/manage/users/UsersTable.vue:53 +msgid "Active" +msgstr "Activo" + +#: front/src/components/Sidebar.vue:60 +msgid "Activity" +msgstr "Actividad" + +#: front/src/components/federation/LibraryFollowTable.vue:21 +msgid "Actor" +msgstr "Actor" + +#: front/src/views/federation/LibraryList.vue:8 +msgid "Add a new library" +msgstr "Añadir una nueva biblioteca" + +#: front/src/components/library/radios/Builder.vue:46 +msgid "Add filter" +msgstr "Añadir filtro" + +#: front/src/components/library/radios/Builder.vue:36 +msgid "Add filters to customize your radio" +msgstr "Añade filtros para personalizar tu radio" + +#: front/src/components/audio/PlayButton.vue:53 +msgid "Add to current queue" +msgstr "Añadir a cola de reproducción actual" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:4 +#: front/src/components/favorites/TrackFavoriteIcon.vue:21 +msgid "Add to favorites" +msgstr "Añadir a favoritos" + +#: front/src/components/playlists/TrackPlaylistIcon.vue:6 +#: front/src/components/playlists/TrackPlaylistIcon.vue:32 +msgid "Add to playlist..." +msgstr "Añadir a lista de reproducción..." + +#: front/src/components/audio/PlayButton.vue:14 +msgid "Add to queue" +msgstr "Añadir a la cola de reproducción" + +#: front/src/components/playlists/PlaylistModal.vue:116 +msgid "Add to this playlist" +msgstr "Añadir a esta lista de reproducción" + +#: front/src/components/playlists/PlaylistModal.vue:54 +msgid "Add track" +msgstr "Añadir canción" + +#: front/src/components/manage/users/UsersTable.vue:69 +msgid "Admin" +msgstr "Admin" + +#: front/src/components/Sidebar.vue:64 +msgid "Administration" +msgstr "Administración" + +#: front/src/components/audio/SearchBar.vue:26 src/components/audio/track/Table.vue:8 +#: front/src/components/federation/LibraryTrackTable.vue:49 +#: front/src/components/library/Album.vue:91 +#: front/src/components/manage/library/FilesTable.vue:39 +#: front/src/components/metadata/Search.vue:134 +msgid "Album" +msgstr "Álbum" + +#: front/src/components/library/import/ReleaseImport.vue:3 +msgid "Album %{ title } (%{ count } track) by %{ artist }" +msgid_plural "Album %{ title } (%{ count } tracks) by %{ artist }" +msgstr[0] "Álbum %{ title } (%{ count } track) de %{ artist }" +msgstr[1] "Álbum %{ title } (%{ count } tracks) de %{ artist }" + +#: front/src/components/library/Album.vue:12 +msgid "Album containing %{ count } track, by %{ artist }" +msgid_plural "Album containing %{ count } tracks, by %{ artist }" +msgstr[0] "Álbum que contiene %{ count } canción, de %{ artist }" +msgstr[1] "Álbum que contiene %{ count } canciones, de %{ artist }" + +#: front/src/components/library/Track.vue:20 +msgid "Album page" +msgstr "Página del álbum" + +#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48 +#: front/src/components/manage/library/RequestsTable.vue:50 +#: front/src/components/requests/Form.vue:9 +msgid "Albums" +msgstr "Álbumes" + +#: front/src/components/library/Artist.vue:44 +msgid "Albums by this artist" +msgstr "Álbumes de este artista" + +#: front/src/components/manage/library/RequestsTable.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:19 +msgid "All" +msgstr "Todo" + +#: front/src/components/playlists/Editor.vue:13 +msgid "An error occured while saving your changes" +msgstr "Ha ocurrido un error al guardar los cambios" + +#: front/src/components/auth/Login.vue:10 +msgid "An unknown error happend, this can mean the server is down or cannot be reached" +msgstr "" +"Ha ocurrido un error desconocido, esto puede significar que el servidor está " +"fuera de servicio o no se puede conectar" + +#: front/src/components/federation/LibraryTrackTable.vue:11 +#: front/src/components/library/import/BatchDetail.vue:68 +#: front/src/components/library/import/BatchList.vue:13 +#: front/src/components/library/import/BatchList.vue:22 +msgid "Any" +msgstr "Cualquiera" + +#: front/src/components/library/import/BatchList.vue:24 +msgid "API" +msgstr "API" + +#: front/src/components/federation/LibraryFollowTable.vue:68 +#: front/src/components/federation/LibraryFollowTable.vue:78 +msgid "Approve" +msgstr "Aprobar" + +#: front/src/components/federation/LibraryFollowTable.vue:70 +msgid "Approve access?" +msgstr "¿Aprobar el acceso?" + +#: front/src/components/federation/LibraryFollowTable.vue:38 +msgid "Approved" +msgstr "Aprobado" + +#: front/src/components/auth/Logout.vue:5 +msgid "Are you sure you want to log out?" +msgstr "" + +#: front/src/components/audio/SearchBar.vue:25 src/components/audio/track/Table.vue:7 +#: front/src/components/federation/LibraryTrackTable.vue:48 +#: front/src/components/library/Artist.vue:119 +#: front/src/components/manage/library/FilesTable.vue:38 +#: front/src/components/manage/library/RequestsTable.vue:49 +#: front/src/components/metadata/Search.vue:130 +msgid "Artist" +msgstr "Artista" + +#: front/src/components/requests/Form.vue:5 +msgid "Artist name" +msgstr "Nombre del artista" + +#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23 +msgid "Artist page" +msgstr "Página del artista" + +#: front/src/components/audio/Search.vue:65 +msgid "Artist, album, track..." +msgstr "Artista, álbum, canción..." + +#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42 +#: front/src/components/library/Artists.vue:119 src/components/library/Library.vue:7 +msgid "Artists" +msgstr "Artistas" + +#: front/src/components/favorites/List.vue:33 +#: front/src/components/federation/LibraryTrackTable.vue:28 +#: front/src/components/library/Artists.vue:25 src/components/library/Radios.vue:44 +#: front/src/components/manage/library/FilesTable.vue:19 +#: front/src/components/manage/library/RequestsTable.vue:19 +#: front/src/components/manage/users/UsersTable.vue:19 +#: front/src/views/federation/LibraryList.vue:28 src/views/playlists/List.vue:27 +msgid "Ascending" +msgstr "Ascendente" + +#: front/src/views/auth/PasswordReset.vue:27 +msgid "Ask for a password reset" +msgstr "Restablecer contraseña" + +#: front/src/views/federation/LibraryDetail.vue:56 +msgid "Auto importing" +msgstr "Autoimportación" + +#: front/src/components/playlists/PlaylistModal.vue:26 +msgid "Available playlists" +msgstr "Listas de reproducción disponibles" + +#: front/src/components/auth/Settings.vue:34 +msgid "Avatar" +msgstr "Avatar" + +#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24 +#: front/src/views/auth/PasswordResetConfirm.vue:18 +msgid "Back to login" +msgstr "Volver a la página de conección" + +#: front/src/views/federation/LibraryFollowersList.vue:5 +msgid "Be careful when accepting follow requests, as it means the follower will have access to your entire library." +msgstr "" +"Ten cuidado al aceptar solicitudes de seguimiento, porque significa que tu " +"seguidorx podrá acceder a tu biblioteca completa." + +#: front/src/components/library/Track.vue:80 +#: front/src/components/manage/library/FilesTable.vue:42 +msgid "Bitrate" +msgstr "Bitrate" + +#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4 +msgid "Browse" +msgstr "Explorar" + +#: front/src/components/Sidebar.vue:50 +msgid "Browse library" +msgstr "Explorar biblioteca" + +#: front/src/components/library/Artists.vue:4 +msgid "Browsing artists" +msgstr "Explorando artistas" + +#: front/src/views/federation/LibraryTrackList.vue:3 +msgid "Browsing federated tracks" +msgstr "Explorando canciones federadas" + +#: front/src/views/federation/LibraryFollowersList.vue:3 +msgid "Browsing followers" +msgstr "Explorando seguidorxs" + +#: front/src/views/federation/LibraryList.vue:3 +msgid "Browsing libraries" +msgstr "Explorando bibliotecas" + +#: front/src/views/playlists/List.vue:3 +msgid "Browsing playlists" +msgstr "Explorando listas de reproducción" + +#: front/src/components/library/Radios.vue:4 +msgid "Browsing radios" +msgstr "Explorando radios" + +#: front/src/components/library/radios/Builder.vue:5 +msgid "Builder" +msgstr "Editor" + +#: front/src/components/audio/album/Card.vue:13 +msgid "By %{ artist }" +msgstr "De %{ artist }" + +#: front/src/components/federation/LibraryFollowTable.vue:57 +msgid "By confirming, %{ username } will be denied access to your library." +msgstr "Si confirmas, %{ username } no podrá acceder a tu biblioteca." + +#: front/src/components/federation/LibraryFollowTable.vue:73 +msgid "By confirming, %{ username } will be granted access to your library." +msgstr "Si confirmas, %{ username } podrá acceder a tu biblioteca." + +#: front/src/components/audio/track/Table.vue:43 +#: front/src/components/common/DangerousButton.vue:17 +#: front/src/components/library/radios/Filter.vue:53 +#: front/src/components/playlists/PlaylistModal.vue:63 +msgid "Cancel" +msgstr "Cancelar" + +#: front/src/components/library/radios/Builder.vue:59 +msgid "Candidates" +msgstr "" + +#: front/src/components/auth/Settings.vue:76 +msgid "Cannot change your password" +msgstr "No se puede cambiar la contraseña" + +#: front/src/App.vue:66 +msgid "Change language" +msgstr "Cambiar idioma" + +#: front/src/components/auth/Settings.vue:67 +msgid "Change my password" +msgstr "Cambiar mi contraseña" + +#: front/src/components/auth/Settings.vue:95 +msgid "Change password" +msgstr "Cambiar contraseña" + +#: front/src/views/auth/PasswordResetConfirm.vue:4 +#: front/src/views/auth/PasswordResetConfirm.vue:62 +msgid "Change your password" +msgstr "Cambiar tu contraseña" + +#: front/src/components/auth/Settings.vue:96 +msgid "Change your password?" +msgstr "¿Cambiar tu contraseña?" + +#: front/src/components/playlists/Editor.vue:21 +msgid "Changes synced with server" +msgstr "Cambios sincronizados con el servidor" + +#: front/src/components/auth/Settings.vue:70 +msgid "Changing your password will also change your Subsonic API password if you have requested one." +msgstr "" +"Cambiar tu contraseña también cambiará tu contraseña Subsonic API si pediste " +"una." + +#: front/src/components/auth/Settings.vue:98 +msgid "Changing your password will have the following consequences" +msgstr "Cambiar tu contraseña tendrá las siguientes consecuencias" + +#: front/src/App.vue:4 +msgid "Choose your instance" +msgstr "Escoge tu instancia" + +#: front/src/components/Home.vue:64 +msgid "Clean library" +msgstr "Una biblioteca impecable" + +#: front/src/components/manage/users/InvitationForm.vue:37 +msgid "Clear" +msgstr "" + +#: front/src/components/playlists/Editor.vue:40 +#: front/src/components/playlists/Editor.vue:45 +msgid "Clear playlist" +msgstr "Vaciar lista de reproducción" + +#: front/src/components/audio/Player.vue:270 +msgid "Clear your queue" +msgstr "Vaciar cola de reproducción" + +#: front/src/components/library/import/BatchList.vue:23 +msgid "CLI" +msgstr "CLI" + +#: front/src/components/Home.vue:44 +msgid "Click once, listen for hours using built-in radios" +msgstr "" +"Pulsa una sola vez y escucha durante horas, gracias a las radios integradas" + +#: front/src/components/manage/library/RequestsTable.vue:30 +#: front/src/components/manage/library/RequestsTable.vue:64 +msgid "Closed" +msgstr "" + +#: front/src/components/manage/users/InvitationForm.vue:26 +#: front/src/components/manage/users/InvitationsTable.vue:42 +msgid "Code" +msgstr "Código" + +#: front/src/components/audio/album/Card.vue:43 +#: front/src/components/audio/artist/Card.vue:33 +#: front/src/components/discussion/Comment.vue:20 +msgid "Collapse" +msgstr "Reducir" + +#: front/src/components/manage/library/RequestsTable.vue:51 +#: front/src/components/requests/Form.vue:14 +msgid "Comment" +msgstr "" + +#: front/src/components/library/radios/Builder.vue:58 +msgid "Config" +msgstr "Configurar" + +#: front/src/components/common/DangerousButton.vue:21 +msgid "Confirm" +msgstr "Confirmar" + +#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20 +#: front/src/views/auth/EmailConfirm.vue:51 +msgid "Confirm your email" +msgstr "Confirma tu correo electrónico" + +#: front/src/views/auth/EmailConfirm.vue:13 +msgid "Confirmation code" +msgstr "Código de confirmación" + +#: front/src/components/playlists/Editor.vue:163 +msgid "Copy tracks from current queue to playlist" +msgstr "Copiar canciones de cola de reproducción actual a lista de reproducción" + +#: front/src/components/Home.vue:88 +msgid "Covers, lyrics, our goal is to have them all ;)" +msgstr "Covers, letras, queremos conseguirlo todo ;)" + +#: front/src/components/auth/Signup.vue:4 +msgid "Create a funkwhale account" +msgstr "Crear una cuenta de funkwhale" + +#: front/src/components/playlists/Form.vue:2 +msgid "Create a new playlist" +msgstr "Crear una nueva lista de reproducción" + +#: front/src/components/auth/Login.vue:17 +msgid "Create an account" +msgstr "Crear una cuenta" + +#: front/src/components/manage/library/RequestsTable.vue:88 +#: front/src/components/requests/Card.vue:25 +msgid "Create import" +msgstr "Crear importación" + +#: front/src/components/auth/Signup.vue:51 +msgid "Create my account" +msgstr "Crear mi cuenta" + +#: front/src/components/playlists/Form.vue:34 +msgid "Create playlist" +msgstr "Crear una lista de reproducción" + +#: front/src/components/library/Radios.vue:23 +msgid "Create your own radio" +msgstr "Crear tu propia radio" + +#: front/src/components/federation/LibraryFollowTable.vue:22 +#: front/src/components/manage/library/RequestsTable.vue:52 +#: front/src/components/manage/users/InvitationsTable.vue:40 +msgid "Creation date" +msgstr "Fecha de creación" + +#: front/src/components/auth/Settings.vue:54 +msgid "Current avatar" +msgstr "Avatar actual" + +#: front/src/components/playlists/PlaylistModal.vue:8 +msgid "Current track" +msgstr "Canción actual" + +#: front/src/components/manage/library/FilesTable.vue:189 +#: front/src/components/manage/library/RequestsTable.vue:195 +#: front/src/components/manage/users/InvitationsTable.vue:166 +#: front/src/views/playlists/Detail.vue:33 +msgid "Delete" +msgstr "Borrar" + +#: front/src/views/playlists/Detail.vue:38 +msgid "Delete playlist" +msgstr "Borrar lista de reproducción" + +#: front/src/views/radios/Detail.vue:28 +msgid "Delete radio" +msgstr "Borrar radio" + +#: front/src/components/federation/LibraryFollowTable.vue:52 +#: front/src/components/federation/LibraryFollowTable.vue:63 +msgid "Deny" +msgstr "Rechazar" + +#: front/src/components/federation/LibraryFollowTable.vue:54 +msgid "Deny access?" +msgstr "¿Rechazar el acceso?" + +#: front/src/components/favorites/List.vue:34 +#: front/src/components/federation/LibraryTrackTable.vue:29 +#: front/src/components/library/Artists.vue:26 src/components/library/Radios.vue:47 +#: front/src/components/manage/library/FilesTable.vue:20 +#: front/src/components/manage/library/RequestsTable.vue:20 +#: front/src/components/manage/users/UsersTable.vue:20 +#: front/src/views/federation/LibraryList.vue:29 src/views/playlists/List.vue:28 +msgid "Descending" +msgstr "Descendente" + +#: front/src/components/federation/LibraryCard.vue:50 +msgid "Detail" +msgstr "Detalle" + +#: front/src/views/admin/users/UsersDetail.vue:146 +msgid "Determine if the user account is active or not. Inactive users cannot login or use the service." +msgstr "" +"Determina si la cuenta de usuario es activa o no. Los usuarios inactivos no " +"pueden conectarse ni usar el servicio." + +#: front/src/components/auth/Settings.vue:104 +#: front/src/components/auth/SubsonicTokenForm.vue:52 +msgid "Disable access" +msgstr "Desactivar el acceso" + +#: front/src/components/auth/SubsonicTokenForm.vue:49 +msgid "Disable Subsonic access" +msgstr "Desactivar el acceso Subsonic" + +#: front/src/components/auth/SubsonicTokenForm.vue:50 +msgid "Disable Subsonic API access?" +msgstr "¿Desactivar el acceso de API Subsonic?" + +#: front/src/components/auth/SubsonicTokenForm.vue:14 +msgid "Discover how to use Funkwhale from other apps" +msgstr "Descubrir cómo utilizar Funkwhale desde otras aplicaciones" + +#: front/src/components/library/radios/Builder.vue:26 +msgid "Display publicly" +msgstr "Mostrar públicamente" + +#: front/src/components/playlists/Editor.vue:42 +msgid "Do you want to clear the playlist \"%{ playlist }\"?" +msgstr "¿Quieres vaciar la lista de reproducción \"%{ playlist }\"?" + +#: front/src/components/common/DangerousButton.vue:7 +msgid "Do you want to confirm this action?" +msgstr "¿Quieres confirmar esta acción?" + +#: front/src/views/playlists/Detail.vue:35 +msgid "Do you want to delete the playlist \"%{ playlist }\"?" +msgstr "¿Quieres borrar la lista de reproducción \"%{ playlist }\"?" + +#: front/src/views/radios/Detail.vue:26 +msgid "Do you want to delete the radio \"%{ radio }\"?" +msgstr "¿Quieres borrar la radio \"%{ radio }\"?" + +#: front/src/components/common/ActionTable.vue:29 +msgid "Do you want to launch %{ action } on %{ count } element?" +msgid_plural "Do you want to launch %{ action } on %{ count } elements?" +msgstr[0] "¿Quieres realizar la acción %{ action } en %{ count } elemento?" +msgstr[1] "¿Quieres realizar la acción %{ action } en %{ count } elementos?" + +#: front/src/components/Sidebar.vue:113 +msgid "Do you want to restore your previous queue?" +msgstr "¿Quieres restaurar tu cola de reproducción anterior?" + +#: front/src/App.vue:38 +msgid "Documentation" +msgstr "Documentación" + +#: front/src/components/audio/track/Table.vue:24 src/components/library/Track.vue:48 +msgid "Download" +msgstr "Descargar" + +#: front/src/components/audio/track/Table.vue:27 +msgid "Download tracks" +msgstr "Descargar canciones" + +#: front/src/components/playlists/Editor.vue:49 +msgid "Drag and drop rows to reorder tracks in the playlist" +msgstr "" +"Arrastra y suelta las filas para reordenar canciones en la lista de " +"reproducción" + +#: front/src/components/library/Track.vue:58 +#: front/src/components/manage/library/FilesTable.vue:43 +msgid "Duration" +msgstr "Duración" + +#: front/src/components/Home.vue:96 +msgid "Easy to use" +msgstr "Fácil de usar" + +#: front/src/components/About.vue:21 +msgid "Edit instance info" +msgstr "Editar la información de esta instancia" + +#: front/src/components/radios/Card.vue:20 src/views/playlists/Detail.vue:30 +msgid "Edit..." +msgstr "Editar..." + +#: front/src/components/auth/Signup.vue:29 +#: front/src/components/manage/users/UsersTable.vue:38 +msgid "Email" +msgstr "Correo electrónico" + +#: front/src/views/admin/users/UsersDetail.vue:29 +msgid "Email address" +msgstr "Dirección de correo electrónico" + +#: front/src/views/auth/EmailConfirm.vue:23 +msgid "Email confirmed" +msgstr "Correo electrónico confirmado" + +#: front/src/views/playlists/Detail.vue:29 +msgid "End edition" +msgstr "Terminar la edición" + +#: front/src/components/library/import/FileUpload.vue:4 +msgid "Ensure your music files are properly tagged before uploading them." +msgstr "" +"Asegúrate de que tus archivos de música estén bien etiquetados antes de " +"subirlos." + +#: front/src/components/library/Radios.vue:140 +msgid "Enter a radio name..." +msgstr "Introducir un nombre de radio..." + +#: front/src/components/library/Artists.vue:118 +msgid "Enter an artist name..." +msgstr "Introducir un nombre de artista..." + +#: front/src/views/federation/LibraryList.vue:122 +msgid "Enter an library domain name..." +msgstr "Introducir un nombre de dominio de biblioteca..." + +#: front/src/views/playlists/List.vue:104 +msgid "Enter an playlist name..." +msgstr "Introducir un nombre de lista de reproducción..." + +#: front/src/components/auth/Signup.vue:98 +msgid "Enter your email" +msgstr "Introducir tu correo electrónico" + +#: front/src/components/auth/Signup.vue:96 +msgid "Enter your invitation code (case insensitive)" +msgstr "" +"Introducir tu código de invitación (no distingue mayúsculas de minúsculas)" + +#: front/src/components/metadata/Search.vue:114 +msgid "Enter your search query..." +msgstr "Introducir tu búsqueda..." + +#: front/src/components/auth/Signup.vue:97 +msgid "Enter your username" +msgstr "Introducir tu nombre de usuario" + +#: front/src/components/auth/Login.vue:77 +msgid "Enter your username or email" +msgstr "Introducir tu nombre de usuario o correo electrónico" + +#: front/src/components/auth/SubsonicTokenForm.vue:20 +msgid "Error" +msgstr "Error" + +#: front/src/views/admin/Settings.vue:87 +msgid "Error reporting" +msgstr "Informes de error" + +#: front/src/components/common/ActionTable.vue:75 +msgid "Error while applying action" +msgstr "Error al aplicar la acción" + +#: front/src/views/auth/PasswordReset.vue:7 +msgid "Error while asking for a password reset" +msgstr "Error al pedir restablecimiento de contraseña" + +#: front/src/views/auth/PasswordResetConfirm.vue:7 +msgid "Error while changing your password" +msgstr "Error al cambiar tu contraseña" + +#: front/src/views/auth/EmailConfirm.vue:7 +msgid "Error while confirming your email" +msgstr "Error al confirmar tu correo electrónico" + +#: front/src/components/manage/users/InvitationForm.vue:4 +msgid "Error while creating invitation" +msgstr "Error al crear la invitación" + +#: front/src/components/admin/SettingsGroup.vue:5 +msgid "Error while saving settings" +msgstr "Error al guardar los cambios" + +#: front/src/components/federation/LibraryForm.vue:10 +msgid "Error while scanning library" +msgstr "Error al escanear la biblioteca" + +#: front/src/components/library/import/BatchDetail.vue:41 +#: front/src/components/library/import/BatchDetail.vue:70 +#: front/src/components/library/import/BatchList.vue:15 +msgid "Errored" +msgstr "En error" + +#: front/src/components/playlists/Form.vue:89 +msgid "Everyone" +msgstr "Todo el mundo" + +#: front/src/components/playlists/Form.vue:85 +msgid "Everyone on this instance" +msgstr "Todo el mundo en esta instancia" + +#: front/src/components/library/radios/Builder.vue:57 +msgid "Exclude" +msgstr "Excluir" + +#: front/src/components/discussion/Comment.vue:14 +msgid "Expand" +msgstr "Expandir" + +#: front/src/components/manage/users/InvitationsTable.vue:41 +msgid "Expiration date" +msgstr "Fecha de caducidad" + +#: front/src/components/manage/users/InvitationsTable.vue:50 +msgid "Expired" +msgstr "Caducada" + +#: front/src/components/manage/users/InvitationsTable.vue:21 +msgid "Expired/used" +msgstr "Caducada/usada" + +#: front/src/components/library/import/Main.vue:65 +msgid "External source. Supported backends" +msgstr "Fuente externa. Back-ends soportados" + +#: front/src/components/Sidebar.vue:51 +msgid "Favorites" +msgstr "Favoritos" + +#: front/src/components/federation/LibraryForm.vue:3 +msgid "Federate with a new instance" +msgstr "Federar con una nueva instancia" + +#: front/src/views/federation/LibraryTrackList.vue:21 +msgid "Federated tracks" +msgstr "Canciones federadas" + +#: front/src/components/Sidebar.vue:87 src/components/library/import/BatchList.vue:25 +#: front/src/components/manage/users/UsersTable.vue:180 +#: front/src/views/admin/Settings.vue:84 src/views/admin/users/UsersDetail.vue:161 +#: front/src/views/federation/Base.vue:35 src/views/federation/LibraryDetail.vue:40 +msgid "Federation" +msgstr "Federación" + +#: front/src/views/federation/LibraryDetail.vue:3 +msgid "File mirroring" +msgstr "Replicación de archivos" + +#: front/src/components/library/import/FileUpload.vue:43 +msgid "File name" +msgstr "Nombre del archivo" + +#: front/src/components/library/import/Main.vue:76 +msgid "File upload" +msgstr "Subida de archivo" + +#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21 +msgid "Files" +msgstr "Archivos" + +#: front/src/components/library/import/ArtistImport.vue:7 +msgid "Filter album types" +msgstr "Filtrar tipos de álbum" + +#: front/src/components/library/radios/Builder.vue:56 +msgid "Filter name" +msgstr "Nombre del filtro" + +#: front/src/components/library/import/Main.vue:52 +msgid "Finish import" +msgstr "Terminar importación" + +#: front/src/components/library/import/BatchDetail.vue:54 +msgid "Finished" +msgstr "Terminado" + +#: front/src/components/library/import/Main.vue:59 +msgid "First, choose where you want to import the music from" +msgstr "Para empezar, elige la fuente de importación de la música" + +#: front/src/components/federation/LibraryCard.vue:44 +msgid "Follow" +msgstr "Seguir" + +#: front/src/components/federation/LibraryCard.vue:36 +msgid "Follow request pending approval" +msgstr "Solicitud de seguimiento pendiente de aprobación" + +#: front/src/views/federation/LibraryDetail.vue:21 +msgid "Follow status" +msgstr "Estado de seguimiento" + +#: front/src/views/federation/Base.vue:13 +#: front/src/views/federation/LibraryFollowersList.vue:24 +msgid "Followers" +msgstr "Seguidores" + +#: front/src/components/federation/LibraryCard.vue:18 +msgid "Followers only" +msgstr "Solo seguidorxs" + +#: front/src/components/federation/LibraryCard.vue:15 +#: front/src/views/federation/LibraryDetail.vue:29 +msgid "Following" +msgstr "Siguiendo" + +#: front/src/components/activity/Like.vue:12 src/components/activity/Listen.vue:12 +msgid "from %{ album } by %{ artist }" +msgstr "del álbum %{ album } de %{ artist }" + +#: front/src/components/library/Track.vue:13 +msgid "From album %{ album } by %{ artist }" +msgstr "Del álbum %{ album } de %{ artist }" + +#: front/src/App.vue:56 +msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" +msgstr "" +"Funkwhale es un proyecto gratuito de código fuente libre, gestionado por " +"voluntarixs. Puedes ayudarnos a mejorar el servicio informando de errores, " +"sugiriendo mejoras y compartiendo el proyecto con tus amigxs!" + +#: front/src/components/auth/SubsonicTokenForm.vue:7 +msgid "Funkwhale is compatible with other music players that support the Subsonic API." +msgstr "" +"Funkwhale es compatible con otros reproductores de música que soportan la " +"API Subsonic." + +#: front/src/components/Home.vue:98 +msgid "Funkwhale is dead simple to use." +msgstr "Funkwhale es facilísimo de usar." + +#: front/src/components/Home.vue:39 +msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." +msgstr "" +"Funkwhale está diseñado para que sea fácil escuchar la música que te gusta, " +"o descubrir nuevos artistas." + +#: front/src/components/Home.vue:119 +msgid "Funkwhale is free and gives you control on your music." +msgstr "Funkwhale es gratis y te da el control de tu música." + +#: front/src/components/Home.vue:66 +msgid "Funkwhale takes care of handling your music" +msgstr "Funkwhale te ayuda a gestionar tu música" + +#: front/src/components/manage/users/InvitationForm.vue:16 +msgid "Get a new invitation" +msgstr "Obtener una nueva invitación" + +#: front/src/components/Home.vue:13 +msgid "Get me to the library" +msgstr "Llévame a la biblioteca" + +#: front/src/components/Home.vue:77 +msgid "" +"Get quality metadata about your music thanks to\n" +" \n" +" MusicBrainz\n" +" " +msgstr "" + +#: front/src/components/common/ActionTable.vue:21 +#: front/src/components/common/ActionTable.vue:27 +msgid "Go" +msgstr "Ir" + +#: front/src/components/PageNotFound.vue:14 +msgid "Go to home page" +msgstr "Ir a la página principal" + +#: front/src/components/library/import/Main.vue:13 +msgid "Grab corresponding metadata" +msgstr "Captar metadatos correspondientes" + +#: front/src/App.vue:74 +msgid "Help us translate Funkwhale" +msgstr "Ayúdanos a traducir Funkwhale" + +#: front/src/components/library/Home.vue:65 +msgid "Home" +msgstr "Inicio" + +#: front/src/components/instance/Stats.vue:36 +msgid "Hours of music" +msgstr "Horas de música" + +#: front/src/components/auth/SubsonicTokenForm.vue:11 +msgid "However, accessing Funkwhale from those clients require a separate password you can set below." +msgstr "" +"Sin embargo, acceder a Funkwhale desde estos clientes requiere una " +"contraseña distinta que podrás configurar a continuación." + +#: front/src/components/library/import/BatchList.vue:34 +msgid "ID" +msgstr "ID" + +#: front/src/views/auth/PasswordResetConfirm.vue:24 +msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." +msgstr "" +"Si la dirección de correo electrónico proporcionada en el paso anterior es " +"válida y asociada a una cuenta de usuarix, deberías recibir un correo " +"electrónico con las instrucciones de restablecimiento dentro de unos minutos." + +#: front/src/components/federation/LibraryTrackTable.vue:196 +#: front/src/components/library/Library.vue:17 +msgid "Import" +msgstr "Importación" + +#: front/src/components/federation/LibraryTrackTable.vue:57 +msgid "Import #%{ id } launched" +msgstr "Importación #%{ id } iniciada" + +#: front/src/components/library/import/Main.vue:38 +msgid "Import %{ count } track" +msgid_plural "Import %{ count } tracks" +msgstr[0] "Importar %{ count } canción" +msgstr[1] "Importar %{ count } canciones" + +#: front/src/components/library/import/BatchDetail.vue:10 +msgid "Import batch" +msgstr "Lote de importación" + +#: front/src/components/library/import/BatchDetail.vue:185 +msgid "Import Batch #%{ id }" +msgstr "Lote de importación #%{ id }" + +#: front/src/components/library/Library.vue:20 +msgid "Import batches" +msgstr "Lotes de importación" + +#: front/src/components/library/import/BatchList.vue:117 +msgid "Import Batches" +msgstr "Lotes de importación" + +#: front/src/components/manage/library/FilesTable.vue:40 +#: front/src/components/manage/library/RequestsTable.vue:53 +msgid "Import date" +msgstr "Fecha de importación" + +#: front/src/components/library/import/FileUpload.vue:38 +msgid "Import detail page" +msgstr "Página de detalles de importación" + +#: front/src/components/Sidebar.vue:81 +msgid "Import music" +msgstr "Importar música" + +#: front/src/components/library/import/Main.vue:267 +msgid "Import Music" +msgstr "Importar música" + +#: front/src/components/Home.vue:71 +msgid "Import music from various platforms, such as YouTube or SoundCloud" +msgstr "Importa música desde otras plataformas, como YouTube o SoundCloud" + +#: front/src/components/federation/LibraryTrackTable.vue:14 +#: front/src/components/federation/LibraryTrackTable.vue:66 +msgid "Import pending" +msgstr "Importación pendiente" + +#: front/src/views/admin/library/Base.vue:9 +#: front/src/views/admin/library/RequestsList.vue:3 +#: front/src/views/admin/library/RequestsList.vue:21 +msgid "Import requests" +msgstr "Solicitudes de importación" + +#: front/src/components/library/import/BatchList.vue:20 +#: front/src/components/library/import/Main.vue:6 +msgid "Import source" +msgstr "Fuente de la importación" + +#: front/src/components/federation/LibraryTrackTable.vue:9 +msgid "Import status" +msgstr "Estado de la importación" + +#: front/src/components/library/import/ReleaseImport.vue:14 +msgid "Import this release" +msgstr "Importar este álbum" + +#: front/src/components/library/import/TrackImport.vue:11 +msgid "Import this track" +msgstr "Importar esta canción" + +#: front/src/components/federation/LibraryTrackTable.vue:12 +#: front/src/components/manage/library/RequestsTable.vue:29 +#: front/src/components/manage/library/RequestsTable.vue:61 +msgid "Imported" +msgstr "Importado" + +#: front/src/components/library/import/TrackImport.vue:44 +msgid "Imported URL" +msgstr "URL importada" + +#: front/src/views/admin/Settings.vue:82 +msgid "Imports" +msgstr "Importaciones" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:3 +msgid "In favorites" +msgstr "En favoritos" + +#: front/src/components/federation/LibraryTrackTable.vue:65 +msgid "In library" +msgstr "En biblioteca" + +#: front/src/components/manage/users/UsersTable.vue:54 +msgid "Inactive" +msgstr "Inactivo" + +#: front/src/components/library/import/Main.vue:96 +msgid "Input a MusicBrainz ID manually:" +msgstr "Introducir ID MusicBrainz de forma manual:" + +#: front/src/views/auth/PasswordReset.vue:53 +msgid "Input the email address binded to your account" +msgstr "Introducir la dirección de correo electrónico asociada a tu cuenta" + +#: front/src/components/playlists/Editor.vue:31 +msgid "Insert from queue (%{ count } track)" +msgid_plural "Insert from queue (%{ count } tracks)" +msgstr[0] "" +msgstr[1] "" + +#: front/src/views/admin/Settings.vue:80 +msgid "Instance information" +msgstr "Información de esta instancia" + +#: front/src/components/library/Radios.vue:9 +msgid "Instance radios" +msgstr "Radios de la instancia" + +#: front/src/views/admin/Settings.vue:75 +msgid "Instance settings" +msgstr "Ajustes de la instancia" + +#: front/src/views/instance/Timeline.vue:57 +msgid "Instance Timeline" +msgstr "Linea de tiempo de la instancia" + +#: front/src/components/auth/Signup.vue:42 +#: front/src/components/manage/users/InvitationForm.vue:11 +msgid "Invitation code" +msgstr "Código de invitación" + +#: front/src/components/auth/Signup.vue:43 +msgid "Invitation code (optional)" +msgstr "Código de invitación (opcional)" + +#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3 +#: front/src/views/admin/users/InvitationsList.vue:24 +msgid "Invitations" +msgstr "Invitaciones" + +#: front/src/App.vue:43 +msgid "Issue tracker" +msgstr "Sistema de seguimiento de incidentes" + +#: front/src/components/library/import/BatchDetail.vue:80 +msgid "Job ID" +msgstr "ID de la tarea" + +#: front/src/components/library/import/BatchList.vue:36 +msgid "Jobs" +msgstr "Tareas" + +#: front/src/components/Home.vue:50 +msgid "Keep a track of your favorite songs" +msgstr "Apunta tus canciones favoritas" + +#: front/src/components/audio/track/Table.vue:33 +msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." +msgstr "" +"Mantén tu PRIVATE_TOKEN en secreto ya que permite el acceso a tu cuenta." + +#: front/src/components/manage/users/UsersTable.vue:41 +#: front/src/views/admin/users/UsersDetail.vue:45 +msgid "Last activity" +msgstr "Última actividad" + +#: front/src/views/federation/LibraryDetail.vue:101 +msgid "Last fetched" +msgstr "Última recuperación" + +#: front/src/components/playlists/PlaylistModal.vue:32 +msgid "Last modification" +msgstr "Última modificación" + +#: front/src/components/common/ActionTable.vue:39 +msgid "Launch" +msgstr "Iniciar" + +#: front/src/components/library/import/BatchDetail.vue:18 +#: front/src/components/library/import/BatchList.vue:35 +msgid "Launch date" +msgstr "Fecha de inicio" + +#: front/src/components/federation/LibraryForm.vue:31 +msgid "Launch scan" +msgstr "Iniciar escaneado" + +#: front/src/components/Home.vue:10 +msgid "Learn more about this instance" +msgstr "Aprender más acerca de esta instancia" + +#: front/src/components/manage/users/InvitationForm.vue:58 +msgid "Leave empty for a random code" +msgstr "Dejar en blanco para un código aleatorio" + +#: front/src/components/requests/Form.vue:10 +msgid "Leave this field empty if you're requesting the whole discography." +msgstr "Deja este campo en blanco si estás pidiendo la discografía completa." + +#: front/src/views/federation/Base.vue:5 src/views/federation/LibraryList.vue:123 +msgid "Libraries" +msgstr "Bibliotecas" + +#: front/src/components/Sidebar.vue:70 +#: front/src/components/federation/LibraryTrackTable.vue:51 +#: front/src/components/instance/Stats.vue:30 +#: front/src/components/manage/users/UsersTable.vue:176 +#: front/src/views/admin/users/UsersDetail.vue:157 +#: front/src/views/federation/LibraryDetail.vue:194 +msgid "Library" +msgstr "Biblioteca" + +#: front/src/views/admin/library/FilesList.vue:3 +msgid "Library files" +msgstr "Archivos de biblioteca" + +#: front/src/components/federation/LibraryForm.vue:20 +msgid "Library name" +msgstr "Nombre de biblioteca" + +#: front/src/views/federation/LibraryDetail.vue:84 +msgid "Library size" +msgstr "Tamaño de biblioteca" + +#: front/src/components/federation/LibraryForm.vue:96 +msgid "library@demo.funkwhale.audio" +msgstr "library@demo.funkwhale.audio" + +#: front/src/App.vue:29 +msgid "Links" +msgstr "Enlaces" + +#: front/src/views/instance/Timeline.vue:4 +msgid "Loading timeline..." +msgstr "Cargando linea de tiempo…" + +#: front/src/components/favorites/List.vue:5 +msgid "Loading your favorites..." +msgstr "Cargando tus favoritos…" + +#: front/src/components/auth/Login.vue:78 +msgid "Log In" +msgstr "Iniciar sesión" + +#: front/src/components/auth/Login.vue:4 +msgid "Log in to your Funkwhale account" +msgstr "Iniciar sesión con tu cuenta de Funkwhale" + +#: front/src/components/auth/Logout.vue:20 +msgid "Log Out" +msgstr "Cerrar sesión" + +#: front/src/components/Sidebar.vue:38 +msgid "Logged in as %{ username }" +msgstr "Sesión iniciada como %{ username }" + +#: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 +msgid "Login" +msgstr "Iniciar sesión" + +#: front/src/components/Sidebar.vue:43 +msgid "Logout" +msgstr "Cerrar sesión" + +#: front/src/components/audio/Player.vue:266 +msgid "Looping disabled. Click to switch to single-track looping." +msgstr "" +"Bucle deshabilitado. Pulsa para cambiar a reproducción en bucle de la " +"canción actual." + +#: front/src/components/audio/Player.vue:267 +msgid "Looping on a single track. Click to switch to whole queue looping." +msgstr "" +"Bucle de la canción actual. Pulsa para cambiar a la reproducción en bucle de " +"la cola de reproducción entera." + +#: front/src/components/audio/Player.vue:268 +msgid "Looping on whole queue. Click to disable looping." +msgstr "" +"Bucle de la cola de reproducción entera. Pulsa para desactivar la " +"reproducción en bucle." + +#: front/src/components/library/Track.vue:94 +msgid "Lyrics" +msgstr "Letras" + +#: front/src/views/admin/library/Base.vue:25 +msgid "Manage library" +msgstr "Gestionar biblioteca" + +#: front/src/components/playlists/PlaylistModal.vue:3 +msgid "Manage playlists" +msgstr "Gestionar listas de reproducción" + +#: front/src/views/admin/users/Base.vue:20 +msgid "Manage users" +msgstr "Gestionar usuarixs" + +#: front/src/views/playlists/List.vue:8 +msgid "Manage your playlists" +msgstr "Gestionar tus listas de reproducción" + +#: front/src/components/manage/library/RequestsTable.vue:197 +msgid "Mark as closed" +msgstr "Marcar como cerrado" + +#: front/src/components/manage/library/RequestsTable.vue:196 +msgid "Mark as imported" +msgstr "Marcar como importado" + +#: front/src/components/library/import/Main.vue:12 +msgid "Metadata" +msgstr "Metadatos" + +#: front/src/components/library/import/Main.vue:115 +msgid "" +"Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n" +" \n" +" MusicBrainz\n" +" \n" +" project, which you can think about as the Wikipedia of music." +msgstr "" +"Los metadatos son los datos relacionados a la música que quieres importar. " +"Incluyen toda la información de los artistas, álbumes y canciones. Para " +"conseguir una biblioteca de calidad, es recomendado usar los metadatos del " +"proyecto \n" +" \n" +" MusicBrainz\n" +" \n" +" , una base de datos parecida a Wikipedia, pero para la música." + +#: front/src/components/Sidebar.vue:48 src/components/library/import/Main.vue:18 +msgid "Music" +msgstr "Música" + +#: front/src/components/library/import/Main.vue:147 +msgid "Music request" +msgstr "Solicitud de música" + +#: front/src/components/audio/Player.vue:265 +msgid "Mute" +msgstr "Silencio" + +#: front/src/components/Sidebar.vue:34 +msgid "My account" +msgstr "Mi cuenta" + +#: front/src/components/playlists/Form.vue:74 +msgid "My awesome playlist" +msgstr "Mi lista de reproducción molona" + +#: front/src/components/library/radios/Builder.vue:227 +msgid "My awesome radio" +msgstr "Mi radio molona" + +#: front/src/components/library/Track.vue:64 src/components/library/Track.vue:75 +#: front/src/components/library/Track.vue:86 +#: front/src/components/manage/library/FilesTable.vue:63 +#: front/src/components/manage/library/FilesTable.vue:69 +#: front/src/components/manage/library/FilesTable.vue:75 +#: front/src/components/manage/library/FilesTable.vue:81 +#: front/src/components/manage/library/RequestsTable.vue:71 +#: front/src/components/manage/library/RequestsTable.vue:75 +#: front/src/components/manage/library/RequestsTable.vue:82 +#: front/src/components/manage/users/UsersTable.vue:61 +#: front/src/views/admin/users/UsersDetail.vue:49 +msgid "N/A" +msgstr "N/A" + +#: front/src/components/playlists/PlaylistModal.vue:31 +#: front/src/views/admin/users/UsersDetail.vue:21 +msgid "Name" +msgstr "Nombre" + +#: front/src/components/auth/Settings.vue:88 +#: front/src/views/auth/PasswordResetConfirm.vue:14 +msgid "New password" +msgstr "Nueva contraseña" + +#: front/src/components/Sidebar.vue:158 +msgid "New tracks will be appended here automatically." +msgstr "Las nuevas canciones se agregarán aquí de forma automática." + +#: front/src/components/library/import/Main.vue:29 +msgid "Next step" +msgstr "Próximo paso" + +#: front/src/components/audio/Player.vue:263 +msgid "Next track" +msgstr "Próxima canción" + +#: front/src/components/Sidebar.vue:125 +msgid "No" +msgstr "No" + +#: front/src/components/Home.vue:103 +msgid "No add-ons, no plugins : you only need a web library" +msgstr "Sin complementos, sin extensiones : basta con una biblioteca en la web" + +#: front/src/components/library/Track.vue:102 +msgid "No lyrics available for this track." +msgstr "No hay letra disponible para esta canción." + +#: front/src/components/playlists/Form.vue:81 +msgid "Nobody except me" +msgstr "Solo yo" + +#: front/src/views/federation/LibraryDetail.vue:32 +msgid "Not following" +msgstr "No siguiendo" + +#: front/src/components/federation/LibraryTrackTable.vue:13 +#: front/src/components/federation/LibraryTrackTable.vue:67 +msgid "Not imported" +msgstr "No importado" + +#: front/src/components/manage/users/InvitationsTable.vue:51 +msgid "Not used" +msgstr "No usado" + +#: front/src/App.vue:37 +msgid "Official website" +msgstr "Página oficial" + +#: front/src/components/auth/Settings.vue:83 +msgid "Old password" +msgstr "Antigua contraseña" + +#: front/src/components/library/import/FileUpload.vue:36 +msgid "Once all your files are uploaded, simply click the following button to check the import status." +msgstr "" +"Una vez que todos tus archivos estén subidos, pulsa el siguiente botón para " +"comprobar el estado de la importación." + +#: front/src/components/federation/LibraryCard.vue:21 +#: front/src/components/manage/users/InvitationsTable.vue:20 +msgid "Open" +msgstr "Abierta" + +#: front/src/App.vue:63 +msgid "Options" +msgstr "Opciones" + +#: front/src/components/library/import/Main.vue:93 +msgid "Or" +msgstr "O" + +#: front/src/components/favorites/List.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:18 +#: front/src/components/library/Artists.vue:15 src/components/library/Radios.vue:33 +#: front/src/components/manage/library/FilesTable.vue:9 +#: front/src/components/manage/library/RequestsTable.vue:9 +#: front/src/components/manage/users/InvitationsTable.vue:9 +#: front/src/components/manage/users/UsersTable.vue:9 +#: front/src/views/federation/LibraryList.vue:18 src/views/playlists/List.vue:17 +msgid "Ordering" +msgstr "Orden" + +#: front/src/components/favorites/List.vue:31 +#: front/src/components/federation/LibraryTrackTable.vue:26 +#: front/src/components/library/Artists.vue:23 src/components/library/Radios.vue:41 +#: front/src/components/manage/library/FilesTable.vue:17 +#: front/src/components/manage/library/RequestsTable.vue:17 +#: front/src/components/manage/users/UsersTable.vue:17 +#: front/src/views/federation/LibraryList.vue:26 src/views/playlists/List.vue:25 +msgid "Ordering direction" +msgstr "Dirección del orden" + +#: front/src/components/manage/users/InvitationsTable.vue:38 +msgid "Owner" +msgstr "Propietario" + +#: front/src/components/PageNotFound.vue:33 +msgid "Page Not Found" +msgstr "Página no encontrada" + +#: front/src/components/PageNotFound.vue:7 +msgid "Page not found!" +msgstr "¡Página no encontrada!" + +#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 +msgid "Password" +msgstr "Contraseña" + +#: front/src/components/auth/SubsonicTokenForm.vue:95 +msgid "Password updated" +msgstr "Contraseña actualizada" + +#: front/src/views/auth/PasswordResetConfirm.vue:28 +msgid "Password updated successfully" +msgstr "Contraseña actualizada con éxito" + +#: front/src/components/audio/Player.vue:262 +msgid "Pause track" +msgstr "Pausar la canción" + +#: front/src/components/federation/LibraryFollowTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:33 +#: front/src/components/library/import/BatchDetail.vue:69 +#: front/src/components/library/import/BatchList.vue:14 +#: front/src/components/library/import/FileUpload.vue:59 +#: front/src/components/manage/library/RequestsTable.vue:27 +#: front/src/components/manage/library/RequestsTable.vue:63 +msgid "Pending" +msgstr "En espera" + +#: front/src/components/federation/LibraryFollowTable.vue:11 +#: front/src/views/federation/LibraryDetail.vue:26 +msgid "Pending approval" +msgstr "Aprobación pendiente" + +#: front/src/components/Sidebar.vue:217 +msgid "Pending follow requests" +msgstr "Solicitudes de seguimiento pendientes" + +#: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 +msgid "Pending import requests" +msgstr "Solicitudes de importación pendientes" + +#: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 +msgid "Pending requests" +msgstr "Solicitudes pendientes" + +#: front/src/components/manage/users/UsersTable.vue:42 +#: front/src/views/admin/users/UsersDetail.vue:68 +msgid "Permissions" +msgstr "Permisos" + +#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30 +msgid "Play" +msgstr "Reproducir" + +#: front/src/components/audio/album/Card.vue:50 +#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28 +#: front/src/views/playlists/Detail.vue:23 +msgid "Play all" +msgstr "Reproducir todo" + +#: front/src/components/library/Artist.vue:26 +msgid "Play all albums" +msgstr "Reproducir todos los álbumes" + +#: front/src/components/audio/PlayButton.vue:58 +msgid "Play immediatly" +msgstr "Reproducir inmediatamente" + +#: front/src/components/audio/PlayButton.vue:15 +msgid "Play next" +msgstr "Reproducir siguiente" + +#: front/src/components/audio/PlayButton.vue:16 +msgid "Play now" +msgstr "Reproducir ahora" + +#: front/src/components/audio/Player.vue:261 +msgid "Play track" +msgstr "Reproducir canción" + +#: front/src/views/playlists/Detail.vue:90 +msgid "Playlist" +msgstr "Lista de reproducción" + +#: front/src/views/playlists/Detail.vue:12 +msgid "Playlist containing %{ count } track, by %{ username }" +msgid_plural "Playlist containing %{ count } tracks, by %{ username }" +msgstr[0] "Lista de reproducción con %{ count } canción, de %{ username }" +msgstr[1] "Lista de reproducción con %{ count } canciones, de %{ username }" + +#: front/src/components/playlists/Form.vue:9 +msgid "Playlist created" +msgstr "Lista de reproducción creada" + +#: front/src/components/playlists/Editor.vue:4 +msgid "Playlist editor" +msgstr "Editor de listas de reproducción" + +#: front/src/components/playlists/Form.vue:21 +msgid "Playlist name" +msgstr "Nombre de lista de reproducción" + +#: front/src/components/playlists/Form.vue:6 +msgid "Playlist updated" +msgstr "Lista de reproducción actualizada" + +#: front/src/components/playlists/Form.vue:25 +msgid "Playlist visibility" +msgstr "Visibilidad de lista de reproducción" + +#: front/src/components/Sidebar.vue:56 src/components/library/Home.vue:16 +#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83 +#: front/src/views/playlists/List.vue:103 +msgid "Playlists" +msgstr "Listas de reproducción" + +#: front/src/components/Home.vue:56 +msgid "Playlists? We got them" +msgstr "¿Listas de reproducción? Las tenemos" + +#: front/src/components/auth/Settings.vue:79 +msgid "Please double-check your password is correct" +msgstr "Por favor, comprueba que tu contraseña es correcta" + +#: front/src/components/auth/Login.vue:9 +msgid "Please double-check your username/password couple is correct" +msgstr "" +"Por favor, comprueba que tu nombre de usuarix y contraseña son correctos" + +#: front/src/components/auth/Settings.vue:46 +msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." +msgstr "PNG, GIF o JPG. Máximo de 2MB. La imagen será reducida a 400x400px." + +#: front/src/components/library/import/Main.vue:26 +msgid "Previous step" +msgstr "Paso anterior" + +#: front/src/components/audio/Player.vue:260 +msgid "Previous track" +msgstr "Canción anterior" + +#: front/src/views/auth/EmailConfirm.vue:26 +#: front/src/views/auth/PasswordResetConfirm.vue:31 +msgid "Proceed to login" +msgstr "Proceder a inicio de sesión" + +#: front/src/components/federation/LibraryTrackTable.vue:50 +msgid "Published date" +msgstr "Fecha de publicación" + +#: front/src/components/library/import/ArtistImport.vue:17 +msgid "Query template" +msgstr "Plantilla de consulta" + +#: front/src/components/Sidebar.vue:20 +msgid "Queue" +msgstr "Cola de reproducción" + +#: front/src/components/audio/Player.vue:203 +msgid "Queue shuffled!" +msgstr "¡Cola de reproducción mezclada!" + +#: front/src/views/radios/Detail.vue:80 +msgid "Radio" +msgstr "Radio" + +#: front/src/components/library/radios/Builder.vue:226 +msgid "Radio Builder" +msgstr "Editor de radio" + +#: front/src/components/library/radios/Builder.vue:15 +msgid "Radio created" +msgstr "Radio creada" + +#: front/src/components/library/radios/Builder.vue:21 +msgid "Radio name" +msgstr "Nombre de la radio" + +#: front/src/components/library/radios/Builder.vue:12 +msgid "Radio updated" +msgstr "Radio actualizada" + +#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:141 +msgid "Radios" +msgstr "Radios" + +#: front/src/views/instance/Timeline.vue:7 +msgid "Recent activity on this instance" +msgstr "Actividad reciente en esta instancia" + +#: front/src/components/library/Home.vue:24 +msgid "Recently added" +msgstr "Añadidos recientemente" + +#: front/src/components/library/Home.vue:11 +msgid "Recently favorited" +msgstr "Añadidos a favoritos recientemente" + +#: front/src/components/library/Home.vue:6 +msgid "Recently listened" +msgstr "Escuchados recientemente" + +#: front/src/components/library/import/BatchDetail.vue:81 +msgid "Recording MusicBrainz ID" +msgstr "" + +#: front/src/views/admin/users/UsersDetail.vue:84 +#: front/src/views/federation/LibraryDetail.vue:122 +msgid "Refresh" +msgstr "Recargar" + +#: front/src/components/federation/LibraryFollowTable.vue:42 +msgid "Refused" +msgstr "Rechazado" + +#: front/src/components/auth/Profile.vue:12 +msgid "Registered since %{ date }" +msgstr "Inscritx desde %{ date }" + +#: front/src/components/auth/Signup.vue:9 +msgid "Registration are closed on this instance, you will need an invitation code to signup." +msgstr "" +"La inscripción a esta instancia está cerrada, necesitarás un código de " +"invitación para inscribirte." + +#: front/src/components/manage/users/UsersTable.vue:71 +msgid "regular user" +msgstr "Usuarix estándar" + +#: front/src/components/library/radios/Filter.vue:59 +msgid "Remove" +msgstr "Quitar" + +#: front/src/components/auth/Settings.vue:58 +msgid "Remove avatar" +msgstr "Quitar avatar" + +#: front/src/components/favorites/TrackFavoriteIcon.vue:19 +msgid "Remove from favorites" +msgstr "Quitar de favoritos" + +#: front/src/components/auth/SubsonicTokenForm.vue:34 +#: front/src/components/auth/SubsonicTokenForm.vue:37 +msgid "Request a new password" +msgstr "Solicitar una nueva contraseña" + +#: front/src/components/auth/SubsonicTokenForm.vue:35 +msgid "Request a new Subsonic API password?" +msgstr "¿Solicitar una nueva contraseña de la API Subsonic?" + +#: front/src/components/auth/SubsonicTokenForm.vue:43 +msgid "Request a password" +msgstr "Solicitar una contraseña" + +#: front/src/App.vue:35 +msgid "Request music" +msgstr "Solicitar música" + +#: front/src/views/library/MusicRequest.vue:4 src/views/library/MusicRequest.vue:21 +msgid "Request some music" +msgstr "Solicitar música" + +#: front/src/components/requests/Form.vue:20 +msgid "Request submitted!" +msgstr "¡Solicitud enviada!" + +#: front/src/components/library/import/BatchDetail.vue:49 +msgid "Rerun errored jobs" +msgstr "Reiniciar las tareas con errores" + +#: front/src/components/library/import/BatchDetail.vue:187 +msgid "Rerun job" +msgstr "Reiniciar tarea" + +#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4 +#: front/src/views/auth/PasswordReset.vue:52 +msgid "Reset your password" +msgstr "Restablecer tu contraseña" + +#: front/src/components/library/import/TrackImport.vue:31 +msgid "Result %{ current }/%{ total }" +msgstr "Resultado %{ current }/%{ total }" + +#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30 +#: front/src/components/library/Radios.vue:52 src/views/federation/LibraryList.vue:33 +#: front/src/views/playlists/List.vue:32 +msgid "Results per page" +msgstr "Resultados por página" + +#: front/src/components/admin/SettingsGroup.vue:63 +#: front/src/components/library/radios/Builder.vue:29 +msgid "Save" +msgstr "Guardar" + +#: front/src/views/federation/LibraryDetail.vue:112 +msgid "Scan triggered!" +msgstr "Escaneo iniciado!" + +#: front/src/components/federation/LibraryTrackTable.vue:5 +#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29 +#: front/src/components/library/import/BatchDetail.vue:62 +#: front/src/components/library/import/BatchList.vue:7 +#: front/src/components/manage/library/FilesTable.vue:5 +#: front/src/components/manage/library/RequestsTable.vue:5 +#: front/src/components/manage/users/InvitationsTable.vue:5 +#: front/src/components/manage/users/UsersTable.vue:5 +#: front/src/views/federation/LibraryList.vue:14 src/views/playlists/List.vue:13 +msgid "Search" +msgstr "Buscar" + +#: front/src/components/library/import/Main.vue:85 +msgid "Search an entity you want to import:" +msgstr "Buscar una entidad que te gustaría importar:" + +#: front/src/components/manage/library/RequestsTable.vue:180 +msgid "Search by artist, username, comment..." +msgstr "Buscar por artista, nombre de usuarix, comentario…" + +#: front/src/components/library/import/BatchDetail.vue:188 +msgid "Search by source..." +msgstr "Buscar por fuente…" + +#: front/src/components/library/import/BatchList.vue:116 +msgid "Search by submitter, source..." +msgstr "Buscar por remitente, fuente…" + +#: front/src/components/federation/LibraryTrackTable.vue:182 +#: front/src/components/manage/library/FilesTable.vue:175 +msgid "Search by title, artist, domain..." +msgstr "Buscar por título, artista, dominio…" + +#: front/src/components/federation/LibraryFollowTable.vue:140 +msgid "Search by username, domain..." +msgstr "Buscar por nombre de usuarix, dominio…" + +#: front/src/components/manage/users/InvitationsTable.vue:152 +msgid "Search by username, email, code..." +msgstr "Buscar por nombre de usuarix, dirección de correo electrónico, código…" + +#: front/src/components/manage/users/UsersTable.vue:162 +msgid "Search by username, email, name..." +msgstr "Buscar por nombre de usuarix, dirrección de correo electrónico, nombre…" + +#: front/src/components/audio/SearchBar.vue:20 +msgid "Search for artists, albums, tracks..." +msgstr "Buscar artistas, álbumes, canciones…" + +#: front/src/components/audio/Search.vue:2 +msgid "Search for some music" +msgstr "Buscar música" + +#: front/src/components/library/Track.vue:105 +msgid "Search on lyrics.wikia.com" +msgstr "Buscar en lyrics.wikia.com" + +#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31 +#: front/src/components/library/Track.vue:40 +msgid "Search on Wikipedia" +msgstr "Buscar en Wikipedia" + +#: front/src/components/library/import/TrackImport.vue:42 +msgid "Search query" +msgstr "Búsqueda" + +#: front/src/views/admin/Settings.vue:15 +msgid "Sections" +msgstr "Secciones" + +#: front/src/components/library/radios/Builder.vue:41 +msgid "Select a filter" +msgstr "Seleccionar un filtro" + +#: front/src/components/common/ActionTable.vue:61 +msgid "Select all %{ total } elements" +msgid_plural "Select all %{ total } elements" +msgstr[0] "Seleccionar %{ total } elemento" +msgstr[1] "Seleccionar los %{ total } elementos" + +#: front/src/components/library/import/FileUpload.vue:22 +msgid "Select files to upload..." +msgstr "Seleccionar archivos para subir…" + +#: front/src/components/common/ActionTable.vue:69 +msgid "Select only current page" +msgstr "Seleccionar solo la página actual" + +#: front/src/components/library/import/Main.vue:19 +msgid "Select relevant sources or files for import" +msgstr "Seleccionar las fuentes o archivos para importar" + +#: front/src/components/federation/LibraryCard.vue:43 +msgid "Send a follow request" +msgstr "Enviar una solicitud de seguimiento" + +#: front/src/components/Sidebar.vue:97 src/components/manage/users/UsersTable.vue:184 +#: front/src/views/admin/users/UsersDetail.vue:165 +msgid "Settings" +msgstr "Ajustes" + +#: front/src/components/auth/Settings.vue:10 +msgid "Settings updated" +msgstr "Ajustes actualizados" + +#: front/src/components/admin/SettingsGroup.vue:11 +msgid "Settings updated successfully." +msgstr "Ajustes actualizados con éxito." + +#: front/src/components/auth/Profile.vue:24 +msgid "Settings..." +msgstr "Ajustes…" + +#: front/src/components/manage/users/InvitationForm.vue:27 +msgid "Share link" +msgstr "Compartir enlace" + +#: front/src/components/audio/artist/Card.vue:30 +msgid "Show 1 more album" +msgid_plural "Show %{ count } more albums" +msgstr[0] "Mostrar 1 álbum adicional" +msgstr[1] "Mostrar %{ count } álbumes adicionales" + +#: front/src/components/audio/album/Card.vue:40 +msgid "Show 1 more track" +msgid_plural "Show %{ count } more tracks" +msgstr[0] "Mostrar 1 canción adicional" +msgstr[1] "Mostrar %{ count } canciones adicionales" + +#: front/src/components/forms/PasswordInput.vue:25 +msgid "Show/hide password" +msgstr "Mostrar/ocultar contraseña" + +#: front/src/components/federation/LibraryFollowTable.vue:97 +#: front/src/components/federation/LibraryTrackTable.vue:98 +#: front/src/components/library/import/BatchDetail.vue:128 +#: front/src/components/library/import/BatchList.vue:73 +#: front/src/components/manage/library/FilesTable.vue:97 +#: front/src/components/manage/library/RequestsTable.vue:104 +#: front/src/components/manage/users/InvitationsTable.vue:76 +#: front/src/components/manage/users/UsersTable.vue:87 +msgid "Showing results %{ start }-%{ end } on %{ total }" +msgstr "Mostrando resultados %{ start }-%{ end } de %{ total }" + +#: front/src/components/audio/Player.vue:269 +msgid "Shuffle your queue" +msgstr "Mezclar tu cola de reproducción" + +#: front/src/components/auth/Signup.vue:95 +msgid "Sign Up" +msgstr "Inscripción" + +#: front/src/components/manage/users/UsersTable.vue:40 +#: front/src/views/admin/users/UsersDetail.vue:37 +msgid "Sign-up" +msgstr "Inscripción" + +#: front/src/components/audio/track/Table.vue:31 +msgid "Simply copy paste the snippet below into a terminal to launch the download." +msgstr "Copia y pega el texto de abajo en un terminal para iniciar la descarga." + +#: front/src/components/library/Track.vue:69 +#: front/src/components/library/import/FileUpload.vue:44 +#: front/src/components/manage/library/FilesTable.vue:44 +msgid "Size" +msgstr "Tamaño" + +#: front/src/components/library/import/BatchDetail.vue:37 +#: front/src/components/library/import/BatchDetail.vue:72 +msgid "Skipped" +msgstr "Omitido" + +#: front/src/components/requests/Form.vue:3 +msgid "Something's missing in the library? Let us know what you would like to listen!" +msgstr "¿Falta algo en la biblioteca? Dinos lo que te gustaría escuchar!" + +#: front/src/components/audio/Search.vue:25 +msgid "Sorry, we did not found any album matching your query" +msgstr "" +"Lo sentimos, no hemos encontrado ningún álbum que corresponda con tu búsqueda" + +#: front/src/components/audio/Search.vue:16 +msgid "Sorry, we did not found any artist matching your query" +msgstr "" +"Lo sentimos, no hemos encontrado ningún artista que corresponda con tu " +"búsqueda" + +#: front/src/components/library/import/BatchDetail.vue:82 +#: front/src/components/library/import/BatchList.vue:38 +#: front/src/components/library/import/TrackImport.vue:17 +msgid "Source" +msgstr "Fuente" + +#: front/src/App.vue:41 +msgid "Source code" +msgstr "Código fuente" + +#: front/src/App.vue:40 +msgid "Source code (%{version})" +msgstr "Código fuente (%{version})" + +#: front/src/components/auth/Profile.vue:20 +#: front/src/components/manage/users/UsersTable.vue:70 +msgid "Staff member" +msgstr "Miembro del equipo" + +#: front/src/components/radios/Button.vue:4 +msgid "Start" +msgstr "Iniciar" + +#: front/src/components/library/import/FileUpload.vue:28 +msgid "Start Upload" +msgstr "Iniciar subida" + +#: front/src/views/admin/Settings.vue:86 +msgid "Statistics" +msgstr "Estadísticas" + +#: front/src/components/federation/LibraryFollowTable.vue:23 +#: front/src/components/federation/LibraryTrackTable.vue:46 +#: front/src/components/library/import/BatchDetail.vue:66 +#: front/src/components/library/import/BatchDetail.vue:83 +#: front/src/components/library/import/BatchList.vue:11 +#: front/src/components/library/import/BatchList.vue:37 +#: front/src/components/library/import/FileUpload.vue:45 +#: front/src/components/manage/library/RequestsTable.vue:24 +#: front/src/components/manage/library/RequestsTable.vue:48 +#: front/src/components/manage/users/InvitationsTable.vue:17 +#: front/src/components/manage/users/InvitationsTable.vue:39 +#: front/src/components/manage/users/UsersTable.vue:43 +msgid "Status" +msgstr "Estado" + +#: front/src/components/radios/Button.vue:3 +msgid "Stop" +msgstr "Parar" + +#: front/src/components/Sidebar.vue:159 +msgid "Stop radio" +msgstr "Parar radio" + +#: front/src/components/library/import/FileUpload.vue:32 +msgid "Stop Upload" +msgstr "Parar subida" + +#: front/src/App.vue:9 src/components/requests/Form.vue:17 +msgid "Submit" +msgstr "Enviar" + +#: front/src/components/requests/Form.vue:22 +msgid "Submit another request" +msgstr "Enviar otra solicitud" + +#: front/src/components/library/import/BatchDetail.vue:26 +#: front/src/components/library/import/BatchList.vue:39 +msgid "Submitted by" +msgstr "Presentado por" + +#: front/src/views/admin/Settings.vue:85 +msgid "Subsonic" +msgstr "Subsonic" + +#: front/src/components/auth/SubsonicTokenForm.vue:2 +msgid "Subsonic API password" +msgstr "Contraseña de la API Subsonic" + +#: front/src/components/library/import/BatchDetail.vue:71 +#: front/src/components/library/import/BatchList.vue:16 +#: front/src/components/library/import/FileUpload.vue:56 +msgid "Success" +msgstr "Éxito" + +#: front/src/App.vue:11 +msgid "Suggested choices" +msgstr "Sugerencias" + +#: front/src/components/playlists/Editor.vue:9 +msgid "Syncing changes to server..." +msgstr "Sincronizando los cambios con el servidor…" + +#: front/src/components/Home.vue:26 +msgid "That's simple: we loved Grooveshark and we want to build something even better." +msgstr "" +"Así de simple: nos encantó Grooveshark y quisimos hacer algo incluso mejor." + +#: front/src/components/requests/Form.vue:73 +msgid "The Beatles, Mickael Jackson…" +msgstr "Los Beatles, Michael Jackson…" + +#: front/src/App.vue:59 +msgid "The funkwhale logo was kindly designed and provided by Francis Gading." +msgstr "" +"El logotipo de funkwhale fue generosamente diseñado y suplido por Francis " +"Gading." + +#: front/src/components/Home.vue:124 +msgid "The plaform is free and open-source, you can install it and modify it without worries" +msgstr "" +"La plataforma es gratuita y de código fuente libre, puedes instalarla y " +"modificarla sin restricciones" + +#: front/src/components/auth/SubsonicTokenForm.vue:4 +msgid "The Subsonic API is not available on this Funkwhale instance." +msgstr "La API Subsonic no está disponible en esta instancia de Funkwhale." + +#: front/src/components/requests/Form.vue:74 +msgid "The White Album, Thriller…" +msgstr "El Álbum Blanco, Thriller…" + +#: front/src/components/audio/track/Table.vue:30 +msgid "There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks." +msgstr "" +"Actualmente no existe una forma de descargar múltiples canciones " +"directamente de funkwhale en un archivo ZIP. Pero, puedes usar herramientas " +"de linea de comando como cURL para descargar una lista de canciones " +"fácilmente." + +#: front/src/components/library/import/Main.vue:149 +msgid "This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled." +msgstr "" +"Esta importación se asociará con la solicitud de música de abajo. Después de " +"terminar la importación, la solicitud será marcada como completada." + +#: front/src/views/federation/LibraryDetail.vue:195 +msgid "This indicate if the remote library granted you access" +msgstr "Esto indica si la biblioteca te ha concedido el acceso" + +#: front/src/components/auth/Profile.vue:16 +msgid "This is you!" +msgstr "¡Eres tú!" + +#: front/src/components/common/ActionTable.vue:37 +msgid "This may affect a lot of elements, please double check this is really what you want." +msgstr "" +"Esto puede afectar a muchos elementos, por favor comprueba si esto es " +"realmente lo que quieres." + +#: front/src/components/audio/PlayButton.vue:61 +msgid "This track is not imported and cannot be played" +msgstr "Esta canción no está importada y no puede ser reproducida" + +#: front/src/views/playlists/Detail.vue:37 +msgid "This will completely delete this playlist and cannot be undone." +msgstr "" +"Esto borrará por completo esta lista de reproducción y no se podrá deshacer." + +#: front/src/views/radios/Detail.vue:27 +msgid "This will completely delete this radio and cannot be undone." +msgstr "Esto borrará por completo esta radio y no se podrá deshacer." + +#: front/src/components/auth/SubsonicTokenForm.vue:51 +msgid "This will completely disable access to the Subsonic API using from account." +msgstr "" +"Esto desactivará por completo el acceso a la API Subsonic desde esta cuenta." + +#: front/src/App.vue:137 +msgid "This will erase your local data and disconnect you, do you want to continue?" +msgstr "Esto borrará tus datos locales y te desconectará, ¿quieres continuar?" + +#: front/src/components/auth/SubsonicTokenForm.vue:36 +msgid "This will log you out from existing devices that use the current password." +msgstr "" +"Esto cerrará tus sesiones en todos los dispositivos que usan esa contraseña." + +#: front/src/components/playlists/Editor.vue:44 +msgid "This will remove all tracks from this playlist and cannot be undone." +msgstr "" +"Esto borrará todas las canciones de esta lista de reproducción y no se podrá " +"deshacer." + +#: front/src/components/audio/track/Table.vue:6 +#: front/src/components/federation/LibraryTrackTable.vue:47 +#: front/src/components/manage/library/FilesTable.vue:37 +msgid "Title" +msgstr "Título" + +#: front/src/components/audio/SearchBar.vue:27 src/components/library/Track.vue:174 +#: front/src/components/library/import/BatchDetail.vue:84 +#: front/src/components/metadata/Search.vue:138 +msgid "Track" +msgstr "Canción" + +#: front/src/components/library/Track.vue:53 +msgid "Track information" +msgstr "Información de la canción" + +#: front/src/components/library/radios/Filter.vue:44 +msgid "Track matching filter" +msgstr "Canción correspondiente al filtro" + +#: front/src/components/instance/Stats.vue:54 +msgid "tracks" +msgstr "Canciones" + +#: front/src/components/library/Album.vue:43 +#: front/src/components/playlists/PlaylistModal.vue:33 +#: front/src/views/federation/Base.vue:8 src/views/playlists/Detail.vue:50 +#: front/src/views/radios/Detail.vue:34 +msgid "Tracks" +msgstr "Canciones" + +#: front/src/views/federation/LibraryDetail.vue:125 +msgid "Tracks available in this library" +msgstr "Canciones disponibles en esta biblioteca" + +#: front/src/components/library/Artist.vue:54 +msgid "Tracks by this artist" +msgstr "Canciones de este artista" + +#: front/src/components/instance/Stats.vue:25 +msgid "Tracks favorited" +msgstr "Canciones en favoritos" + +#: front/src/components/instance/Stats.vue:19 +msgid "tracks listened" +msgstr "Canciones escuchadas" + +#: front/src/views/federation/LibraryDetail.vue:109 +msgid "Trigger scan" +msgstr "Iniciar escaneo" + +#: front/src/components/manage/library/FilesTable.vue:41 +msgid "Type" +msgstr "Tipo" + +#: front/src/components/About.vue:15 +msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." +msgstr "" +"Desafortunadamente, lxs propietarixs de esta instancia aún no han tomado el " +"tiempo para completar esta página." + +#: front/src/views/federation/LibraryDetail.vue:95 +msgid "Unknown" +msgstr "Desconocido" + +#: front/src/components/Home.vue:37 +msgid "Unlimited music" +msgstr "Música ilimitada" + +#: front/src/components/audio/Player.vue:264 +msgid "Unmute" +msgstr "Activar sonido" + +#: front/src/components/auth/Settings.vue:50 +msgid "Update avatar" +msgstr "Actualizar avatar" + +#: front/src/components/playlists/Form.vue:33 +msgid "Update playlist" +msgstr "Actualizar lista de reproducción" + +#: front/src/components/auth/Settings.vue:27 +msgid "Update settings" +msgstr "Actualizar ajustes" + +#: front/src/views/auth/PasswordResetConfirm.vue:21 +msgid "Update your password" +msgstr "Actualizar tu contraseña" + +#: front/src/components/manage/users/UsersTable.vue:172 +#: front/src/views/admin/users/UsersDetail.vue:153 +msgid "Upload" +msgstr "Subir" + +#: front/src/components/auth/Settings.vue:45 +msgid "Upload a new avatar" +msgstr "Subir un nuevo avatar" + +#: front/src/components/library/import/Main.vue:7 +msgid "Uploaded files or external source" +msgstr "Archivos subidos o fuente externa" + +#: front/src/components/library/import/FileUpload.vue:57 +msgid "Uploading..." +msgstr "Subiendo…" + +#: front/src/App.vue:45 +msgid "Use another instance" +msgstr "Usar otra instancia" + +#: front/src/components/requests/Form.vue:75 +msgid "Use this comment box to add details to your request if needed" +msgstr "" +"Usa este campo de comentarios para añadir detalles a tu solicitud si hace " +"falta" + +#: front/src/views/federation/LibraryDetail.vue:196 +msgid "Use this flag to enable/disable federation with this library" +msgstr "" +"Usa este ajuste para activar/desactivar la federación con esta biblioteca" + +#: front/src/views/auth/PasswordReset.vue:12 +msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password." +msgstr "" +"Usa este formulario para solicitar un restablecimiento de contraseña. Te " +"mandaremos un correo electrónico a la dirección proporcionada con " +"instrucciones para restablecer tu contraseña." + +#: front/src/components/federation/LibraryForm.vue:6 +msgid "Use this form to scan an instance and setup federation." +msgstr "" +"Usa esta formulario para escanear una instancia y establecer la federación." + +#: front/src/components/manage/users/InvitationsTable.vue:49 +msgid "Used" +msgstr "Usado" + +#: front/src/components/manage/library/RequestsTable.vue:47 +msgid "User" +msgstr "Usuarix" + +#: front/src/components/instance/Stats.vue:5 +msgid "User activity" +msgstr "Actividad de usuarix" + +#: front/src/components/library/Radios.vue:20 +msgid "User radios" +msgstr "Radios de usuarixs" + +#: front/src/components/auth/Signup.vue:19 +#: front/src/components/manage/users/UsersTable.vue:37 +msgid "Username" +msgstr "Nombre de usuarix" + +#: front/src/components/auth/Login.vue:15 +msgid "Username or email" +msgstr "Nombre de usuarix o correo electónico" + +#: front/src/components/instance/Stats.vue:13 +msgid "users" +msgstr "usuarix" + +#: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 +#: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 +#: front/src/views/admin/users/UsersList.vue:21 +msgid "Users" +msgstr "Usuarix" + +#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35 +#: front/src/components/library/Track.vue:44 +#: front/src/components/library/import/ArtistImport.vue:131 +#: front/src/components/metadata/ArtistCard.vue:49 +#: front/src/components/metadata/ReleaseCard.vue:53 +msgid "View on MusicBrainz" +msgstr "Ver en MusicBrainz" + +#: front/src/components/playlists/PlaylistModal.vue:20 +msgid "We cannot add the track to a playlist" +msgstr "No podemos añadir la canción a una lista de reproducción" + +#: front/src/components/playlists/Form.vue:14 +msgid "We cannot create the playlist" +msgstr "No podemos crear la lista de reproducción" + +#: front/src/components/auth/Signup.vue:13 +msgid "We cannot create your account" +msgstr "No podemos crear tu cuenta" + +#: front/src/components/auth/Login.vue:7 +msgid "We cannot log you in" +msgstr "No se puede iniciar la sesión" + +#: front/src/components/auth/Settings.vue:38 +msgid "We cannot save your avatar" +msgstr "No podemos guardar tu avatar" + +#: front/src/components/auth/Settings.vue:14 +msgid "We cannot save your settings" +msgstr "No podemos guardar tus ajustes" + +#: front/src/components/Home.vue:130 +msgid "We do not track you or bother you with ads" +msgstr "No te rastreamos y no te molestamos con anuncios" + +#: front/src/components/library/import/FileUpload.vue:5 +msgid "We recommend using Picard for that purpose." +msgstr "Recomendamos usar Picard para eso." + +#: front/src/components/Home.vue:7 +msgid "We think listening to music should be simple." +msgstr "Pensamos que debe ser simple escuchar música." + +#: front/src/components/PageNotFound.vue:10 +msgid "We're sorry, the page you asked for does not exist:" +msgstr "Lo sentimos, la página solicitada no existe:" + +#: front/src/components/requests/Form.vue:21 +msgid "We've received your request, you'll get some groove soon ;)" +msgstr "Hemos recibido tu solicitud, pronto tendrás algo sabroso ;)" + +#: front/src/components/Home.vue:152 +msgid "Welcome" +msgstr "Bienvenidx" + +#: front/src/components/Home.vue:5 +msgid "Welcome on Funkwhale" +msgstr "Bienvenidx a Funkwhale" + +#: front/src/components/library/import/Main.vue:114 +msgid "What is metadata?" +msgstr "¿Qué son los metadatos?" + +#: front/src/views/federation/LibraryDetail.vue:197 +msgid "When enabled, auto importing will automatically import new tracks published in this library" +msgstr "" +"Cuando activas este ajuste, las nuevas canciones publicadas en esta " +"biblioteca se importarán de forma automática" + +#: front/src/components/Home.vue:24 +msgid "Why funkwhale?" +msgstr "¿Por qué funkwhale?" + +#: front/src/components/Sidebar.vue:124 +msgid "Yes" +msgstr "Sí" + +#: front/src/components/auth/Logout.vue:8 +msgid "Yes, log me out!" +msgstr "Sí, cierra mi sesión!" + +#: front/src/components/auth/Logout.vue:7 +msgid "You are currently logged in as %{ username }" +msgstr "Tienes iniciada actualmente sesión como %{ username }" + +#: front/src/components/library/import/Main.vue:111 +msgid "You can also skip this step and enter metadata manually." +msgstr "También puedes omitir este paso e introducir los metadatos manualmente." + +#: front/src/components/Home.vue:136 +msgid "You can invite friends and family to your instance so they can enjoy your music" +msgstr "" +"Puedes invitar a tus amigxs y tu familia a tu instancia para que ellxs " +"puedan disfrutar de tu música" + +#: front/src/components/library/radios/Builder.vue:7 +msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria." +msgstr "" +"Puedes usar esta interfaz para hacer tu propia radio personalizada, que " +"reproducirá canciones según tus criterios." + +#: front/src/components/auth/SubsonicTokenForm.vue:8 +msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance." +msgstr "" +"Puedes usarlos para disfrutar de tus listas de reproducción y tu música en " +"modo sin conexión, en tu smartphone o tu tablet, por ejemplo." + +#: front/src/components/Sidebar.vue:156 +msgid "You have a radio playing" +msgstr "Estás escuchando una radio" + +#: front/src/App.vue:6 +msgid "You need to select an instance in order to continue" +msgstr "Tienes que seleccionar una instancia para poder continuar" + +#: front/src/components/auth/Settings.vue:100 +msgid "You will be logged out from this session and have to log in with the new one" +msgstr "" +"Se cerrará esta sesión y tendrás que reiniciar sesión con la nueva contraseña" + +#: front/src/components/auth/Settings.vue:71 +msgid "You will have to update your password on your clients that use this password." +msgstr "" +"Tendrás que actualizar tu contraseña en los clientes que usan esta " +"contraseña." + +#: front/src/components/library/import/Main.vue:103 +msgid "You will import:" +msgstr "Vas a importar:" + +#: front/src/views/auth/EmailConfirm.vue:24 +msgid "Your email address was confirmed, you can now use the service without limitations." +msgstr "" +"Tu dirección de correo electrónico ha sido confirmada, ahora puedes usar el " +"servicio sin limitaciones." + +#: front/src/components/favorites/List.vue:109 +msgid "Your Favorites" +msgstr "Tus favoritos" + +#: front/src/components/Home.vue:117 +msgid "Your music, your way" +msgstr "Tu música, a tu manera" + +#: front/src/views/auth/PasswordResetConfirm.vue:29 +msgid "Your password has been updated successfully." +msgstr "Tu contraseña ha sido cambiada con éxito." + +#: front/src/components/auth/Settings.vue:101 +msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password" +msgstr "" +"Tu contraseña Subsonic se cambiará a una nueva contraseña aleatoria, " +"cerrando tus sesiones en los dispositivos que usaban la antigua contraseña " +"Subsonic" + +#: front/src/components/audio/PlayButton.vue:156 +msgid "%{ count } track was added to your queue" +msgid_plural "%{ count } tracks were added to your queue" +msgstr[0] "%{ count } canción ha sido añadida a tu cola de reproducción" +msgstr[1] "%{ count } canciones han sido añadidas a tu cola de reproducción" diff --git a/front/locales/fr_FR/LC_MESSAGES/app.po b/front/locales/fr_FR/LC_MESSAGES/app.po index 8c7377570..384131ca2 100644 --- a/front/locales/fr_FR/LC_MESSAGES/app.po +++ b/front/locales/fr_FR/LC_MESSAGES/app.po @@ -3,9 +3,10 @@ msgstr "" "Project-Id-Version: French (Funkwhale)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-21 21:30+0000\n" -"Last-Translator: Baptiste Gelez \n" -"Language-Team: French \n" +"PO-Revision-Date: 2018-07-30 16:28+0000\n" +"Last-Translator: Eliot Berriot \n" +"Language-Team: French \n" "Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -98,7 +99,7 @@ msgstr[1] "%{ count } pistes" #: front/src/components/About.vue:5 msgid "About %{ instance }" -msgstr "À propos de cette instance" +msgstr "À propos de %{instance}" #: front/src/App.vue:54 msgid "About Funkwhale" @@ -155,9 +156,8 @@ msgid "Actions" msgstr "Actions" #: front/src/components/manage/users/UsersTable.vue:53 -#, fuzzy msgid "Active" -msgstr "Activité" +msgstr "Actif" #: front/src/components/Sidebar.vue:60 msgid "Activity" @@ -260,7 +260,9 @@ msgstr "Une erreur s'est produite pendant l'enregistrement de vos modifications" #: front/src/components/auth/Login.vue:10 msgid "An unknown error happend, this can mean the server is down or cannot be reached" -msgstr "Une erreur inconnue a été rencontrée, ce qui peut signifier que le serveur est en panne ou n’a pas pu être atteint" +msgstr "" +"Une erreur inconnue s'est produite, cela pourrait signifier que le serveur " +"ne peut pas être accedé" #: front/src/components/federation/LibraryTrackTable.vue:11 #: front/src/components/library/import/BatchDetail.vue:68 @@ -985,7 +987,7 @@ msgstr "Récupérer les métadonnées correspondantes" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "Aidez nous à traduire Funkwhale" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1111,7 +1113,7 @@ msgstr "Dans la bibliothèque" #: front/src/components/manage/users/UsersTable.vue:54 msgid "Inactive" -msgstr "Actif" +msgstr "Inactif" #: front/src/components/library/import/Main.vue:96 msgid "Input a MusicBrainz ID manually:" @@ -1436,7 +1438,7 @@ msgstr "Site officiel" #: front/src/components/auth/Settings.vue:83 msgid "Old password" -msgstr "Ancien mot de passe" +msgstr "Vieux mot de passe" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." @@ -1621,7 +1623,7 @@ msgstr "Merci de vérifier que votre nom d'utilisateur et mot de passe sont corr #: front/src/components/auth/Settings.vue:46 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." -msgstr "PNG, GIF ou JPG. 2Mb au plus. L'image sera réduite à 400×400 pixels." +msgstr "PNG, GIF ou JPG. 2Mo au plus. L'image sera réduite à 400×400 pixels." #: front/src/components/library/import/Main.vue:26 msgid "Previous step" @@ -1661,18 +1663,16 @@ msgid "Radio Builder" msgstr "Éditeur de radio" #: front/src/components/library/radios/Builder.vue:15 -#, fuzzy msgid "Radio created" -msgstr "Nom de la radio" +msgstr "Radio créée" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" msgstr "Nom de la radio" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "Nom de la radio" +msgstr "Radio à jour" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 @@ -1689,7 +1689,7 @@ msgstr "Ajoutés récemment" #: front/src/components/library/Home.vue:11 msgid "Recently favorited" -msgstr "Ajoutées à vos favoris récemment" +msgstr "Récemment ajouté aux favoris" #: front/src/components/library/Home.vue:6 msgid "Recently listened" @@ -2297,7 +2297,7 @@ msgstr "Nom d'utilisateur ou email" #: front/src/components/instance/Stats.vue:13 msgid "users" -msgstr "tilisateur·ice·s" +msgstr "utilisateur·rice·s" #: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 #: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 @@ -2352,7 +2352,7 @@ msgstr "Nous pensons que l'accès à la musique devrait être simple." #: front/src/components/PageNotFound.vue:10 msgid "We're sorry, the page you asked for does not exist:" -msgstr "Désolé, la page demandée n’existe pas :" +msgstr "Désolé, la page demandée n’existe pas :" #: front/src/components/requests/Form.vue:21 msgid "We've received your request, you'll get some groove soon ;)" @@ -2368,7 +2368,7 @@ msgstr "Bienvenue sur Funkwhale" #: front/src/components/library/import/Main.vue:114 msgid "What is metadata?" -msgstr "Qu'est-ce que les métadonnées ?" +msgstr "Qu'est-ce que les métadonnées ?" #: front/src/views/federation/LibraryDetail.vue:197 msgid "When enabled, auto importing will automatically import new tracks published in this library" diff --git a/front/locales/it/LC_MESSAGES/app.po b/front/locales/it/LC_MESSAGES/app.po index 4e37fb1cd..566e1d6ac 100644 --- a/front/locales/it/LC_MESSAGES/app.po +++ b/front/locales/it/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-19 10:49+0000\n" +"PO-Revision-Date: 2018-08-06 12:12+0000\n" "Last-Translator: Sylke Vicious \n" "Language-Team: none\n" "Language: it\n" @@ -64,11 +64,11 @@ msgstr[1] "%{ count} tracce" #: front/src/components/common/Duration.vue:2 msgid "%{ hours } h %{ minutes } min" -msgstr "" +msgstr "%{ hours } o %{ minutes } min" #: front/src/components/common/Duration.vue:5 msgid "%{ minutes } min" -msgstr "" +msgstr "%{ minutes } min" #: front/src/components/activity/Like.vue:7 msgid "%{ user } favorited a track" @@ -102,9 +102,8 @@ msgstr[0] "1 traccia" msgstr[1] "%{ count } tracce" #: front/src/components/About.vue:5 -#, fuzzy msgid "About %{ instance }" -msgstr "A proposito di questa istanza" +msgstr "A proposito di %{ instance }" #: front/src/App.vue:54 msgid "About Funkwhale" @@ -161,9 +160,8 @@ msgid "Actions" msgstr "Azioni" #: front/src/components/manage/users/UsersTable.vue:53 -#, fuzzy msgid "Active" -msgstr "Attività" +msgstr "Attivo" #: front/src/components/Sidebar.vue:60 msgid "Activity" @@ -171,7 +169,7 @@ msgstr "Attività" #: front/src/components/federation/LibraryFollowTable.vue:21 msgid "Actor" -msgstr "" +msgstr "Attore" #: front/src/views/federation/LibraryList.vue:8 msgid "Add a new library" @@ -267,6 +265,8 @@ msgstr "C'è stato un errore durante il salvataggio delle tue modifiche" #: front/src/components/auth/Login.vue:10 msgid "An unknown error happend, this can mean the server is down or cannot be reached" msgstr "" +"Si è verificato un errore sconosciuto, questo significa che il server è " +"offline o non può essere raggiunto" #: front/src/components/federation/LibraryTrackTable.vue:11 #: front/src/components/library/import/BatchDetail.vue:68 @@ -352,7 +352,7 @@ msgstr "Playlist disponibili" #: front/src/components/auth/Settings.vue:34 msgid "Avatar" -msgstr "" +msgstr "Avatar" #: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24 #: front/src/views/auth/PasswordResetConfirm.vue:18 @@ -433,7 +433,7 @@ msgstr "Non puoi cambiare la tua password" #: front/src/App.vue:66 msgid "Change language" -msgstr "" +msgstr "Cambia lingua" #: front/src/components/auth/Settings.vue:67 msgid "Change my password" @@ -575,9 +575,8 @@ msgid "Creation date" msgstr "Data di creazione" #: front/src/components/auth/Settings.vue:54 -#, fuzzy msgid "Current avatar" -msgstr "Traccia corrente" +msgstr "Avatar attuale" #: front/src/components/playlists/PlaylistModal.vue:8 msgid "Current track" @@ -624,9 +623,10 @@ msgid "Detail" msgstr "Dettaglio" #: front/src/views/admin/users/UsersDetail.vue:146 -#, fuzzy msgid "Determine if the user account is active or not. Inactive users cannot login or use the service." -msgstr "Determina se un account utente è attivo o meno. Gli utenti inattivi non possono accedere o utilizzare il servizio." +msgstr "" +"Determina se un account utente è attivo o meno. Gli utenti inattivi non " +"possono accedere o utilizzare il servizio." #: front/src/components/auth/Settings.vue:104 #: front/src/components/auth/SubsonicTokenForm.vue:52 @@ -662,15 +662,14 @@ msgid "Do you want to delete the playlist \"%{ playlist }\"?" msgstr "Vuoi eliminare la playlist \"%{ playlist }\"?" #: front/src/views/radios/Detail.vue:26 -#, fuzzy msgid "Do you want to delete the radio \"%{ radio }\"?" -msgstr "Vuoi eliminare la radio \"{{ radio }}\"?" +msgstr "Vuoi eliminare la radio \"%{ radio }\"?" #: front/src/components/common/ActionTable.vue:29 msgid "Do you want to launch %{ action } on %{ count } element?" msgid_plural "Do you want to launch %{ action } on %{ count } elements?" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Vuoi eseguire %{ action } su %{ count } elemento?" +msgstr[1] "Vuoi eseguire %{ action } su %{ count } elementi?" #: front/src/components/Sidebar.vue:113 msgid "Do you want to restore your previous queue?" @@ -686,9 +685,8 @@ msgid "Download" msgstr "Scarica" #: front/src/components/audio/track/Table.vue:27 -#, fuzzy msgid "Download tracks" -msgstr "Scarica" +msgstr "Scarica tracce" #: front/src/components/playlists/Editor.vue:49 msgid "Drag and drop rows to reorder tracks in the playlist" @@ -726,7 +724,7 @@ msgstr "Email confermata" #: front/src/views/playlists/Detail.vue:29 msgid "End edition" -msgstr "" +msgstr "Fine modifica" #: front/src/components/library/import/FileUpload.vue:4 msgid "Ensure your music files are properly tagged before uploading them." @@ -808,7 +806,7 @@ msgstr "Errore durante la scansione della libreria" #: front/src/components/library/import/BatchDetail.vue:70 #: front/src/components/library/import/BatchList.vue:15 msgid "Errored" -msgstr "" +msgstr "Si è verificato un errore" #: front/src/components/playlists/Form.vue:89 msgid "Everyone" @@ -891,7 +889,7 @@ msgstr "Filtra nome" #: front/src/components/library/import/Main.vue:52 msgid "Finish import" -msgstr "" +msgstr "Termina importazione" #: front/src/components/library/import/BatchDetail.vue:54 msgid "Finished" @@ -925,7 +923,7 @@ msgstr "Solo chi segue" #: front/src/components/federation/LibraryCard.vue:15 #: front/src/views/federation/LibraryDetail.vue:29 msgid "Following" -msgstr "" +msgstr "Seguendo" #: front/src/components/activity/Like.vue:12 #: src/components/activity/Listen.vue:12 @@ -939,10 +937,15 @@ msgstr "Dall'album %{ album } di %{ artist }" #: front/src/App.vue:56 msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!" msgstr "" +"Funkwhale è un progetto libero e open-source portato avanti da volontari. " +"Puoi aiutarci a migliorare la piattaforma segnalando problemi, suggerendo " +"miglioramenti e condividendo il progetto con i tuoi amici!" #: front/src/components/auth/SubsonicTokenForm.vue:7 msgid "Funkwhale is compatible with other music players that support the Subsonic API." msgstr "" +"Funkwhale è compatibile con altri lettori musicali che supportano le " +"Subsonic API." #: front/src/components/Home.vue:98 msgid "Funkwhale is dead simple to use." @@ -951,14 +954,16 @@ msgstr "Funkwhale è semplicissimo da usare." #: front/src/components/Home.vue:39 msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists." msgstr "" +"Funkwhale è progettato per permetterti di ascoltare facilmente la musica che " +"ti piace, o per farti scoprire nuovi artisti." #: front/src/components/Home.vue:119 msgid "Funkwhale is free and gives you control on your music." -msgstr "" +msgstr "Funkwhale è gratuito e ti da il controllo sulla tua musica." #: front/src/components/Home.vue:66 msgid "Funkwhale takes care of handling your music" -msgstr "" +msgstr "Funkwhale si preoccupa di gestire la tua musica" #: front/src/components/manage/users/InvitationForm.vue:16 msgid "Get a new invitation" @@ -975,6 +980,10 @@ msgid "" " MusicBrainz\n" " " msgstr "" +"Ottieni metadati di qualità sulla tua musica grazie a\n" +" \n" +" MusicBrainz\n" +" " #: front/src/components/common/ActionTable.vue:21 #: front/src/components/common/ActionTable.vue:27 @@ -987,11 +996,11 @@ msgstr "Vai alla pagina iniziale" #: front/src/components/library/import/Main.vue:13 msgid "Grab corresponding metadata" -msgstr "" +msgstr "Ottieni metadata corrispondenti" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "Aiutaci a tradurre Funkwhale" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1004,229 +1013,234 @@ msgstr "Ore di musica" #: front/src/components/auth/SubsonicTokenForm.vue:11 msgid "However, accessing Funkwhale from those clients require a separate password you can set below." msgstr "" +"Comunque, accedere a Funkwhale da quei client richiede un'altra password che " +"puoi impostare qui sotto." #: front/src/components/library/import/BatchList.vue:34 msgid "ID" -msgstr "" +msgstr "ID" #: front/src/views/auth/PasswordResetConfirm.vue:24 msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes." msgstr "" +"Se l'indirizzo email fornito nel passo precedente è valido e legato ad un " +"account utente, dovresti ricevere un'email con le istruzioni per il reset " +"nel prossimo paio di minuti." #: front/src/components/federation/LibraryTrackTable.vue:196 #: front/src/components/library/Library.vue:17 msgid "Import" -msgstr "" +msgstr "Importa" #: front/src/components/federation/LibraryTrackTable.vue:57 msgid "Import #%{ id } launched" -msgstr "" +msgstr "Importazione #%{ id } lanciata" #: front/src/components/library/import/Main.vue:38 msgid "Import %{ count } track" msgid_plural "Import %{ count } tracks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Importa %{ count } traccia" +msgstr[1] "Importa %{ count } tracce" #: front/src/components/library/import/BatchDetail.vue:10 msgid "Import batch" -msgstr "" +msgstr "Importa batch" #: front/src/components/library/import/BatchDetail.vue:185 msgid "Import Batch #%{ id }" -msgstr "" +msgstr "Importa Batch #%{ id }" #: front/src/components/library/Library.vue:20 msgid "Import batches" -msgstr "" +msgstr "Importa più batch" #: front/src/components/library/import/BatchList.vue:117 msgid "Import Batches" -msgstr "" +msgstr "Importa Batch" #: front/src/components/manage/library/FilesTable.vue:40 #: front/src/components/manage/library/RequestsTable.vue:53 msgid "Import date" -msgstr "" +msgstr "Importa data" #: front/src/components/library/import/FileUpload.vue:38 msgid "Import detail page" -msgstr "" +msgstr "Pagina dei dettagli di importazione" #: front/src/components/Sidebar.vue:81 msgid "Import music" -msgstr "" +msgstr "Importa musica" #: front/src/components/library/import/Main.vue:267 msgid "Import Music" -msgstr "" +msgstr "Importa Musica" #: front/src/components/Home.vue:71 msgid "Import music from various platforms, such as YouTube or SoundCloud" -msgstr "" +msgstr "Importa musica da varie piattaforme, come YouTube o SoundCloud" #: front/src/components/federation/LibraryTrackTable.vue:14 #: front/src/components/federation/LibraryTrackTable.vue:66 msgid "Import pending" -msgstr "" +msgstr "Importazioni in attesa" #: front/src/views/admin/library/Base.vue:9 #: front/src/views/admin/library/RequestsList.vue:3 #: front/src/views/admin/library/RequestsList.vue:21 msgid "Import requests" -msgstr "" +msgstr "Importazioni richieste" #: front/src/components/library/import/BatchList.vue:20 #: front/src/components/library/import/Main.vue:6 msgid "Import source" -msgstr "" +msgstr "Importa sorgente" #: front/src/components/federation/LibraryTrackTable.vue:9 msgid "Import status" -msgstr "" +msgstr "Stato dell'importazione" #: front/src/components/library/import/ReleaseImport.vue:14 msgid "Import this release" -msgstr "" +msgstr "Importa questa versione" #: front/src/components/library/import/TrackImport.vue:11 msgid "Import this track" -msgstr "" +msgstr "Importa questa traccia" #: front/src/components/federation/LibraryTrackTable.vue:12 #: front/src/components/manage/library/RequestsTable.vue:29 #: front/src/components/manage/library/RequestsTable.vue:61 msgid "Imported" -msgstr "" +msgstr "Importato" #: front/src/components/library/import/TrackImport.vue:44 msgid "Imported URL" -msgstr "" +msgstr "URL importato" #: front/src/views/admin/Settings.vue:82 msgid "Imports" -msgstr "" +msgstr "Importazioni" #: front/src/components/favorites/TrackFavoriteIcon.vue:3 msgid "In favorites" -msgstr "" +msgstr "Nei preferiti" #: front/src/components/federation/LibraryTrackTable.vue:65 msgid "In library" -msgstr "" +msgstr "In libreria" #: front/src/components/manage/users/UsersTable.vue:54 msgid "Inactive" -msgstr "" +msgstr "Inattivo" #: front/src/components/library/import/Main.vue:96 msgid "Input a MusicBrainz ID manually:" -msgstr "" +msgstr "Inserisci un ID MusicBrainz manualmente:" #: front/src/views/auth/PasswordReset.vue:53 msgid "Input the email address binded to your account" -msgstr "" +msgstr "Inserisci l'indirizzo email associato al tuo account" #: front/src/components/playlists/Editor.vue:31 msgid "Insert from queue (%{ count } track)" msgid_plural "Insert from queue (%{ count } tracks)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Inserita dalla coda (%{ count } traccia)" +msgstr[1] "Inserite dalla coda (%{ count } tracce)" #: front/src/views/admin/Settings.vue:80 msgid "Instance information" -msgstr "" +msgstr "Informazioni sull'istanza" #: front/src/components/library/Radios.vue:9 -#, fuzzy msgid "Instance radios" -msgstr "Modifica le info dell'istanza" +msgstr "Radio dell'istanza" #: front/src/views/admin/Settings.vue:75 msgid "Instance settings" -msgstr "" +msgstr "Impostazioni dell'istanza" #: front/src/views/instance/Timeline.vue:57 msgid "Instance Timeline" -msgstr "" +msgstr "Timeline dell'Istanza" #: front/src/components/auth/Signup.vue:42 #: front/src/components/manage/users/InvitationForm.vue:11 msgid "Invitation code" -msgstr "" +msgstr "Codice di invito" #: front/src/components/auth/Signup.vue:43 msgid "Invitation code (optional)" -msgstr "" +msgstr "Codice d'invito (opzionale)" #: front/src/views/admin/users/Base.vue:8 #: src/views/admin/users/InvitationsList.vue:3 #: front/src/views/admin/users/InvitationsList.vue:24 msgid "Invitations" -msgstr "" +msgstr "Inviti" #: front/src/App.vue:43 msgid "Issue tracker" -msgstr "" +msgstr "Elenco problemi" #: front/src/components/library/import/BatchDetail.vue:80 msgid "Job ID" -msgstr "" +msgstr "ID Lavoro" #: front/src/components/library/import/BatchList.vue:36 msgid "Jobs" -msgstr "" +msgstr "Lavori" #: front/src/components/Home.vue:50 msgid "Keep a track of your favorite songs" -msgstr "" +msgstr "Tieni d'occhio le tue tracce preferite" #: front/src/components/audio/track/Table.vue:33 msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account." msgstr "" +"Tieni i tuoi PRIVATE_TOKEN segreti visto che danno accesso al tuo account." #: front/src/components/manage/users/UsersTable.vue:41 #: front/src/views/admin/users/UsersDetail.vue:45 msgid "Last activity" -msgstr "" +msgstr "Ultime attività" #: front/src/views/federation/LibraryDetail.vue:101 msgid "Last fetched" -msgstr "" +msgstr "Ultime recuperate" #: front/src/components/playlists/PlaylistModal.vue:32 msgid "Last modification" -msgstr "" +msgstr "Ultima modifica" #: front/src/components/common/ActionTable.vue:39 msgid "Launch" -msgstr "" +msgstr "Inizia" #: front/src/components/library/import/BatchDetail.vue:18 #: front/src/components/library/import/BatchList.vue:35 msgid "Launch date" -msgstr "" +msgstr "Data d'inizio" #: front/src/components/federation/LibraryForm.vue:31 msgid "Launch scan" -msgstr "" +msgstr "Inizia scansione" #: front/src/components/Home.vue:10 msgid "Learn more about this instance" -msgstr "" +msgstr "Scopri di più su questa istanza" #: front/src/components/manage/users/InvitationForm.vue:58 msgid "Leave empty for a random code" -msgstr "" +msgstr "Lascia vuoto per un codice casuale" #: front/src/components/requests/Form.vue:10 msgid "Leave this field empty if you're requesting the whole discography." -msgstr "" +msgstr "Lascia questo campo vuoto se vuoi richiedere la discografia completa." #: front/src/views/federation/Base.vue:5 #: src/views/federation/LibraryList.vue:123 msgid "Libraries" -msgstr "" +msgstr "Librerie" #: front/src/components/Sidebar.vue:70 #: front/src/components/federation/LibraryTrackTable.vue:51 @@ -1235,103 +1249,105 @@ msgstr "" #: front/src/views/admin/users/UsersDetail.vue:157 #: front/src/views/federation/LibraryDetail.vue:194 msgid "Library" -msgstr "" +msgstr "Libreria" #: front/src/views/admin/library/FilesList.vue:3 msgid "Library files" -msgstr "" +msgstr "File della libreria" #: front/src/components/federation/LibraryForm.vue:20 msgid "Library name" -msgstr "" +msgstr "Nome della libreria" #: front/src/views/federation/LibraryDetail.vue:84 msgid "Library size" -msgstr "" +msgstr "Dimensione della libreria" #: front/src/components/federation/LibraryForm.vue:96 msgid "library@demo.funkwhale.audio" -msgstr "" +msgstr "library@demo.funkwhale.audio" #: front/src/App.vue:29 msgid "Links" -msgstr "" +msgstr "Collegamenti" #: front/src/views/instance/Timeline.vue:4 msgid "Loading timeline..." -msgstr "" +msgstr "Caricando la timeline..." #: front/src/components/favorites/List.vue:5 msgid "Loading your favorites..." -msgstr "" +msgstr "Caricando i tuoi preferiti..." #: front/src/components/auth/Login.vue:78 msgid "Log In" -msgstr "" +msgstr "Accedi" #: front/src/components/auth/Login.vue:4 msgid "Log in to your Funkwhale account" -msgstr "" +msgstr "Accedi al tuo account Funkwhale" #: front/src/components/auth/Logout.vue:20 msgid "Log Out" -msgstr "" +msgstr "Disconnetti" #: front/src/components/Sidebar.vue:38 msgid "Logged in as %{ username }" -msgstr "" +msgstr "Accesso effettuato come %{ username }" #: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41 msgid "Login" -msgstr "" +msgstr "Accedi" #: front/src/components/Sidebar.vue:43 msgid "Logout" -msgstr "" +msgstr "Disconnettiti" #: front/src/components/audio/Player.vue:266 msgid "Looping disabled. Click to switch to single-track looping." msgstr "" +"Ripetizione disattivata. Clicca per attivare la ripetizione della singola " +"traccia." #: front/src/components/audio/Player.vue:267 msgid "Looping on a single track. Click to switch to whole queue looping." -msgstr "" +msgstr "Ripeti una singola traccia. Clicca per ripetere l'intera coda." #: front/src/components/audio/Player.vue:268 msgid "Looping on whole queue. Click to disable looping." -msgstr "" +msgstr "Ripete l'intera coda. Clicca per disattivare la ripetizione." #: front/src/components/library/Track.vue:94 msgid "Lyrics" -msgstr "" +msgstr "Testi" #: front/src/views/admin/library/Base.vue:25 msgid "Manage library" -msgstr "" +msgstr "Gestisci libreria" #: front/src/components/playlists/PlaylistModal.vue:3 msgid "Manage playlists" -msgstr "" +msgstr "Gestisci playlist" #: front/src/views/admin/users/Base.vue:20 msgid "Manage users" -msgstr "" +msgstr "Gestisci utenti" #: front/src/views/playlists/List.vue:8 msgid "Manage your playlists" -msgstr "" +msgstr "Gestisci le tue playlist" #: front/src/components/manage/library/RequestsTable.vue:197 msgid "Mark as closed" -msgstr "" +msgstr "Segna come chiuso" #: front/src/components/manage/library/RequestsTable.vue:196 msgid "Mark as imported" -msgstr "" +msgstr "Segna come importato" #: front/src/components/library/import/Main.vue:12 msgid "Metadata" -msgstr "" +msgstr "Metadati" #: front/src/components/library/import/Main.vue:115 msgid "" @@ -1341,31 +1357,39 @@ msgid "" " \n" " project, which you can think about as the Wikipedia of music." msgstr "" +"I metadata sono i dati relativi alla musica che vuoi importare. Questo " +"include tutte le informazioni su artisti, album e tracce. Per far si che tu " +"abbia una libreria di alta qualità, è consigliato ottenere i dati dal " +"progetto \n" +" \n" +" MusicBrainz\n" +" \n" +" che praticamente è la Wikipedia della musica." #: front/src/components/Sidebar.vue:48 #: src/components/library/import/Main.vue:18 msgid "Music" -msgstr "" +msgstr "Musica" #: front/src/components/library/import/Main.vue:147 msgid "Music request" -msgstr "" +msgstr "Richiesta di musica" #: front/src/components/audio/Player.vue:265 msgid "Mute" -msgstr "" +msgstr "Muto" #: front/src/components/Sidebar.vue:34 msgid "My account" -msgstr "" +msgstr "Mio account" #: front/src/components/playlists/Form.vue:74 msgid "My awesome playlist" -msgstr "" +msgstr "La mia eccezionale playlist" #: front/src/components/library/radios/Builder.vue:227 msgid "My awesome radio" -msgstr "" +msgstr "La mia eccezionale radio" #: front/src/components/library/Track.vue:64 #: src/components/library/Track.vue:75 @@ -1380,84 +1404,85 @@ msgstr "" #: front/src/components/manage/users/UsersTable.vue:61 #: front/src/views/admin/users/UsersDetail.vue:49 msgid "N/A" -msgstr "" +msgstr "N/D" #: front/src/components/playlists/PlaylistModal.vue:31 #: front/src/views/admin/users/UsersDetail.vue:21 msgid "Name" -msgstr "" +msgstr "Nome" #: front/src/components/auth/Settings.vue:88 #: front/src/views/auth/PasswordResetConfirm.vue:14 msgid "New password" -msgstr "" +msgstr "Nuova password" #: front/src/components/Sidebar.vue:158 msgid "New tracks will be appended here automatically." -msgstr "" +msgstr "Le nuove tracce saranno allegate qui automaticamente." #: front/src/components/library/import/Main.vue:29 msgid "Next step" -msgstr "" +msgstr "Prossimo passo" #: front/src/components/audio/Player.vue:263 msgid "Next track" -msgstr "" +msgstr "Prossima traccia" #: front/src/components/Sidebar.vue:125 msgid "No" -msgstr "" +msgstr "No" #: front/src/components/Home.vue:103 msgid "No add-ons, no plugins : you only need a web library" -msgstr "" +msgstr "Nessun addon, nessun plugin: ti serve solo una libreria in rete" #: front/src/components/library/Track.vue:102 msgid "No lyrics available for this track." -msgstr "" +msgstr "Nessun testo disponibile per questa traccia." #: front/src/components/playlists/Form.vue:81 msgid "Nobody except me" -msgstr "" +msgstr "Nessuno tranne me" #: front/src/views/federation/LibraryDetail.vue:32 msgid "Not following" -msgstr "" +msgstr "Non seguito" #: front/src/components/federation/LibraryTrackTable.vue:13 #: front/src/components/federation/LibraryTrackTable.vue:67 msgid "Not imported" -msgstr "" +msgstr "Non importato" #: front/src/components/manage/users/InvitationsTable.vue:51 msgid "Not used" -msgstr "" +msgstr "Non utilizzato" #: front/src/App.vue:37 msgid "Official website" -msgstr "" +msgstr "Sito ufficiale" #: front/src/components/auth/Settings.vue:83 -#, fuzzy msgid "Old password" -msgstr "Cambia password" +msgstr "Vecchia password" #: front/src/components/library/import/FileUpload.vue:36 msgid "Once all your files are uploaded, simply click the following button to check the import status." msgstr "" +"Una volta che tutti i tuoi file sono caricati, clicca semplicemene il " +"pulsante seguente per controllare lo stato dell'importazione." #: front/src/components/federation/LibraryCard.vue:21 #: front/src/components/manage/users/InvitationsTable.vue:20 msgid "Open" -msgstr "" +msgstr "Aperto" #: front/src/App.vue:63 msgid "Options" -msgstr "" +msgstr "Opzioni" #: front/src/components/library/import/Main.vue:93 msgid "Or" -msgstr "" +msgstr "O" #: front/src/components/favorites/List.vue:23 #: front/src/components/federation/LibraryTrackTable.vue:18 @@ -1470,7 +1495,7 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:18 #: src/views/playlists/List.vue:17 msgid "Ordering" -msgstr "" +msgstr "Ordinamento" #: front/src/components/favorites/List.vue:31 #: front/src/components/federation/LibraryTrackTable.vue:26 @@ -1482,35 +1507,35 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:26 #: src/views/playlists/List.vue:25 msgid "Ordering direction" -msgstr "" +msgstr "Direzione di ordinamento" #: front/src/components/manage/users/InvitationsTable.vue:38 msgid "Owner" -msgstr "" +msgstr "Proprietario" #: front/src/components/PageNotFound.vue:33 msgid "Page Not Found" -msgstr "" +msgstr "Pagina Non Trovata" #: front/src/components/PageNotFound.vue:7 msgid "Page not found!" -msgstr "" +msgstr "Pagina non trovata!" #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38 msgid "Password" -msgstr "" +msgstr "Password" #: front/src/components/auth/SubsonicTokenForm.vue:95 msgid "Password updated" -msgstr "" +msgstr "Password aggiornata" #: front/src/views/auth/PasswordResetConfirm.vue:28 msgid "Password updated successfully" -msgstr "" +msgstr "Password aggiornata con successo" #: front/src/components/audio/Player.vue:262 msgid "Pause track" -msgstr "" +msgstr "Metti in pausa" #: front/src/components/federation/LibraryFollowTable.vue:46 #: front/src/components/library/import/BatchDetail.vue:33 @@ -1520,265 +1545,264 @@ msgstr "" #: front/src/components/manage/library/RequestsTable.vue:27 #: front/src/components/manage/library/RequestsTable.vue:63 msgid "Pending" -msgstr "" +msgstr "In sospeso" #: front/src/components/federation/LibraryFollowTable.vue:11 #: front/src/views/federation/LibraryDetail.vue:26 msgid "Pending approval" -msgstr "" +msgstr "Approvazione in sospeso" #: front/src/components/Sidebar.vue:217 msgid "Pending follow requests" -msgstr "" +msgstr "Richiesta di seguire in sospeso" #: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26 msgid "Pending import requests" -msgstr "" +msgstr "Richieste di importazione in sospeso" #: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36 msgid "Pending requests" -msgstr "" +msgstr "Richieste in sospeso" #: front/src/components/manage/users/UsersTable.vue:42 #: front/src/views/admin/users/UsersDetail.vue:68 msgid "Permissions" -msgstr "" +msgstr "Permessi" #: front/src/components/audio/PlayButton.vue:9 #: src/components/library/Track.vue:30 msgid "Play" -msgstr "" +msgstr "Riproduci" #: front/src/components/audio/album/Card.vue:50 #: front/src/components/audio/artist/Card.vue:44 #: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23 msgid "Play all" -msgstr "" +msgstr "Riproduci tutto" #: front/src/components/library/Artist.vue:26 msgid "Play all albums" -msgstr "" +msgstr "Riproduci tutti gli album" #: front/src/components/audio/PlayButton.vue:58 msgid "Play immediatly" -msgstr "" +msgstr "Riproduci immediatamente" #: front/src/components/audio/PlayButton.vue:15 msgid "Play next" -msgstr "" +msgstr "Riproduci la prossima" #: front/src/components/audio/PlayButton.vue:16 msgid "Play now" -msgstr "" +msgstr "Riproduci ora" #: front/src/components/audio/Player.vue:261 msgid "Play track" -msgstr "" +msgstr "Riproduci traccia" #: front/src/views/playlists/Detail.vue:90 msgid "Playlist" -msgstr "" +msgstr "Lista di riproduzione" #: front/src/views/playlists/Detail.vue:12 msgid "Playlist containing %{ count } track, by %{ username }" msgid_plural "Playlist containing %{ count } tracks, by %{ username }" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Lista di riproduzione contenente %{ count } traccia, di %{ username }" +msgstr[1] "Lista di riproduzione contenente %{ count } tracce, di %{ username }" #: front/src/components/playlists/Form.vue:9 msgid "Playlist created" -msgstr "" +msgstr "Lista di riproduzione creata" #: front/src/components/playlists/Editor.vue:4 msgid "Playlist editor" -msgstr "" +msgstr "Modifica lista di riproduzione" #: front/src/components/playlists/Form.vue:21 msgid "Playlist name" -msgstr "" +msgstr "Nome lista di riproduzione" #: front/src/components/playlists/Form.vue:6 msgid "Playlist updated" -msgstr "" +msgstr "Lista di riproduzione aggiornata" #: front/src/components/playlists/Form.vue:25 msgid "Playlist visibility" -msgstr "" +msgstr "Visibilità lista di riproduzione" #: front/src/components/Sidebar.vue:56 src/components/library/Home.vue:16 #: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83 #: front/src/views/playlists/List.vue:103 msgid "Playlists" -msgstr "" +msgstr "Liste di riproduzione" #: front/src/components/Home.vue:56 msgid "Playlists? We got them" -msgstr "" +msgstr "Liste di riproduzione? Ce le abbiamo" #: front/src/components/auth/Settings.vue:79 msgid "Please double-check your password is correct" -msgstr "" +msgstr "Per favore controlla se la tua password è corretta" #: front/src/components/auth/Login.vue:9 msgid "Please double-check your username/password couple is correct" -msgstr "" +msgstr "Per favore controlla se la combinazione nome utente/password è corretta" #: front/src/components/auth/Settings.vue:46 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px." -msgstr "" +msgstr "PNG, GIF or JPG. Massimo 2MB. Saranno scalate a 400x400px." #: front/src/components/library/import/Main.vue:26 msgid "Previous step" -msgstr "" +msgstr "Passo precedente" #: front/src/components/audio/Player.vue:260 msgid "Previous track" -msgstr "" +msgstr "Traccia precedente" #: front/src/views/auth/EmailConfirm.vue:26 #: front/src/views/auth/PasswordResetConfirm.vue:31 msgid "Proceed to login" -msgstr "" +msgstr "Procedi all'accesso" #: front/src/components/federation/LibraryTrackTable.vue:50 msgid "Published date" -msgstr "" +msgstr "Data di pubblicazione" #: front/src/components/library/import/ArtistImport.vue:17 msgid "Query template" -msgstr "" +msgstr "Modello di ricerca" #: front/src/components/Sidebar.vue:20 msgid "Queue" -msgstr "" +msgstr "Coda" #: front/src/components/audio/Player.vue:203 msgid "Queue shuffled!" -msgstr "" +msgstr "Coda mischiata!" #: front/src/views/radios/Detail.vue:80 msgid "Radio" -msgstr "" +msgstr "Radio" #: front/src/components/library/radios/Builder.vue:226 msgid "Radio Builder" -msgstr "" +msgstr "Creatore Radio" #: front/src/components/library/radios/Builder.vue:15 msgid "Radio created" -msgstr "" +msgstr "Radio creata" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" -msgstr "" +msgstr "Nome radio" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "Data di creazione" +msgstr "Radio aggiornata" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 msgid "Radios" -msgstr "" +msgstr "Radio" #: front/src/views/instance/Timeline.vue:7 msgid "Recent activity on this instance" -msgstr "" +msgstr "Attività recenti su questa istanza" #: front/src/components/library/Home.vue:24 msgid "Recently added" -msgstr "" +msgstr "Aggiunte recentemente" #: front/src/components/library/Home.vue:11 -#, fuzzy msgid "Recently favorited" -msgstr "1 mi piace" +msgstr "Preferiti recenti" #: front/src/components/library/Home.vue:6 msgid "Recently listened" -msgstr "" +msgstr "Ascoltate recentemente" #: front/src/components/library/import/BatchDetail.vue:81 msgid "Recording MusicBrainz ID" -msgstr "" +msgstr "Registrazione MusicBrainzID" #: front/src/views/admin/users/UsersDetail.vue:84 #: front/src/views/federation/LibraryDetail.vue:122 msgid "Refresh" -msgstr "" +msgstr "Aggiorna" #: front/src/components/federation/LibraryFollowTable.vue:42 msgid "Refused" -msgstr "" +msgstr "Rifiutato" #: front/src/components/auth/Profile.vue:12 msgid "Registered since %{ date }" -msgstr "" +msgstr "Registrato da %{ date }" #: front/src/components/auth/Signup.vue:9 msgid "Registration are closed on this instance, you will need an invitation code to signup." msgstr "" +"Le registrazioni sono chiuse su questa istanza, hai bisogno di un codice " +"d'invito per registrarti." #: front/src/components/manage/users/UsersTable.vue:71 msgid "regular user" -msgstr "" +msgstr "utente semplice" #: front/src/components/library/radios/Filter.vue:59 msgid "Remove" -msgstr "" +msgstr "Rimuovi" #: front/src/components/auth/Settings.vue:58 msgid "Remove avatar" -msgstr "" +msgstr "Rimuovi avatar" #: front/src/components/favorites/TrackFavoriteIcon.vue:19 msgid "Remove from favorites" -msgstr "" +msgstr "Rimuovi dai preferiti" #: front/src/components/auth/SubsonicTokenForm.vue:34 #: front/src/components/auth/SubsonicTokenForm.vue:37 msgid "Request a new password" -msgstr "" +msgstr "Richiedi una nuova password" #: front/src/components/auth/SubsonicTokenForm.vue:35 msgid "Request a new Subsonic API password?" -msgstr "" +msgstr "Richiedere una nuova password API Subsonic?" #: front/src/components/auth/SubsonicTokenForm.vue:43 msgid "Request a password" -msgstr "" +msgstr "Richiedi una password" #: front/src/App.vue:35 msgid "Request music" -msgstr "" +msgstr "Richiedi musica" #: front/src/views/library/MusicRequest.vue:4 #: src/views/library/MusicRequest.vue:21 -#, fuzzy msgid "Request some music" -msgstr "Ore di musica" +msgstr "Richiedi della musica" #: front/src/components/requests/Form.vue:20 msgid "Request submitted!" -msgstr "" +msgstr "Richiesta inviata!" #: front/src/components/library/import/BatchDetail.vue:49 msgid "Rerun errored jobs" -msgstr "" +msgstr "Riavvia attività con errori" #: front/src/components/library/import/BatchDetail.vue:187 msgid "Rerun job" -msgstr "" +msgstr "Riavvia attività" #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4 #: front/src/views/auth/PasswordReset.vue:52 msgid "Reset your password" -msgstr "" +msgstr "Resetta la tua password" #: front/src/components/library/import/TrackImport.vue:31 msgid "Result %{ current }/%{ total }" -msgstr "" +msgstr "Risultato %{ current }/%{ total }" #: front/src/components/favorites/List.vue:38 #: src/components/library/Artists.vue:30 @@ -1786,16 +1810,16 @@ msgstr "" #: src/views/federation/LibraryList.vue:33 #: front/src/views/playlists/List.vue:32 msgid "Results per page" -msgstr "" +msgstr "Risultati per pagina" #: front/src/components/admin/SettingsGroup.vue:63 #: front/src/components/library/radios/Builder.vue:29 msgid "Save" -msgstr "" +msgstr "Salva" #: front/src/views/federation/LibraryDetail.vue:112 msgid "Scan triggered!" -msgstr "" +msgstr "Scansione avviata!" #: front/src/components/federation/LibraryTrackTable.vue:5 #: front/src/components/library/Artists.vue:10 @@ -1809,130 +1833,130 @@ msgstr "" #: front/src/views/federation/LibraryList.vue:14 #: src/views/playlists/List.vue:13 msgid "Search" -msgstr "" +msgstr "Cerca" #: front/src/components/library/import/Main.vue:85 msgid "Search an entity you want to import:" -msgstr "" +msgstr "Cerca un elemento che vuoi importare:" #: front/src/components/manage/library/RequestsTable.vue:180 msgid "Search by artist, username, comment..." -msgstr "" +msgstr "Cerca per artista, nome utente, commento..." #: front/src/components/library/import/BatchDetail.vue:188 msgid "Search by source..." -msgstr "" +msgstr "Cerca per sorgente..." #: front/src/components/library/import/BatchList.vue:116 msgid "Search by submitter, source..." -msgstr "" +msgstr "Cerca per utente che ha caricato, sorgente..." #: front/src/components/federation/LibraryTrackTable.vue:182 #: front/src/components/manage/library/FilesTable.vue:175 msgid "Search by title, artist, domain..." -msgstr "" +msgstr "Cerca per titolo, artista, dominio..." #: front/src/components/federation/LibraryFollowTable.vue:140 msgid "Search by username, domain..." -msgstr "" +msgstr "Cerca per nome utente, dominio..." #: front/src/components/manage/users/InvitationsTable.vue:152 msgid "Search by username, email, code..." -msgstr "" +msgstr "Cerca per nome utente, email, codice..." #: front/src/components/manage/users/UsersTable.vue:162 msgid "Search by username, email, name..." -msgstr "" +msgstr "Cerca per nome utente, email, nome..." #: front/src/components/audio/SearchBar.vue:20 msgid "Search for artists, albums, tracks..." -msgstr "" +msgstr "Cerca per artisti, album, tracce..." #: front/src/components/audio/Search.vue:2 msgid "Search for some music" -msgstr "" +msgstr "Cerca un po' di musica" #: front/src/components/library/Track.vue:105 msgid "Search on lyrics.wikia.com" -msgstr "" +msgstr "Cerca su lyrics.wikia.com" #: front/src/components/library/Album.vue:33 #: src/components/library/Artist.vue:31 #: front/src/components/library/Track.vue:40 msgid "Search on Wikipedia" -msgstr "" +msgstr "Cerca su Wikipedia" #: front/src/components/library/import/TrackImport.vue:42 msgid "Search query" -msgstr "" +msgstr "Stringa di ricerca" #: front/src/views/admin/Settings.vue:15 msgid "Sections" -msgstr "" +msgstr "Sezioni" #: front/src/components/library/radios/Builder.vue:41 msgid "Select a filter" -msgstr "" +msgstr "Seleziona un filtro" #: front/src/components/common/ActionTable.vue:61 msgid "Select all %{ total } elements" msgid_plural "Select all %{ total } elements" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Seleziona tutti %{ total } elemento" +msgstr[1] "Seleziona tutti %{ total } elementi" #: front/src/components/library/import/FileUpload.vue:22 msgid "Select files to upload..." -msgstr "" +msgstr "Seleziona file da caricare..." #: front/src/components/common/ActionTable.vue:69 msgid "Select only current page" -msgstr "" +msgstr "Seleziona solo la pagina attuale" #: front/src/components/library/import/Main.vue:19 msgid "Select relevant sources or files for import" -msgstr "" +msgstr "Seleziona sorgenti adeguate o file da importare" #: front/src/components/federation/LibraryCard.vue:43 msgid "Send a follow request" -msgstr "" +msgstr "Invia una richiesta di seguire" #: front/src/components/Sidebar.vue:97 #: src/components/manage/users/UsersTable.vue:184 #: front/src/views/admin/users/UsersDetail.vue:165 msgid "Settings" -msgstr "" +msgstr "Impostazioni" #: front/src/components/auth/Settings.vue:10 msgid "Settings updated" -msgstr "" +msgstr "Impostazioni aggiornate" #: front/src/components/admin/SettingsGroup.vue:11 msgid "Settings updated successfully." -msgstr "" +msgstr "Impostazioni aggiornate con successo." #: front/src/components/auth/Profile.vue:24 msgid "Settings..." -msgstr "" +msgstr "Impostazioni..." #: front/src/components/manage/users/InvitationForm.vue:27 msgid "Share link" -msgstr "" +msgstr "Condividi collegamento" #: front/src/components/audio/artist/Card.vue:30 msgid "Show 1 more album" msgid_plural "Show %{ count } more albums" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mostra 1 altro album" +msgstr[1] "Mostra %{ count } altri album" #: front/src/components/audio/album/Card.vue:40 msgid "Show 1 more track" msgid_plural "Show %{ count } more tracks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Mostra 1 altra traccia" +msgstr[1] "Mostra %{ count } altre tracce" #: front/src/components/forms/PasswordInput.vue:25 msgid "Show/hide password" -msgstr "" +msgstr "Mostra/nascondi password" #: front/src/components/federation/LibraryFollowTable.vue:97 #: front/src/components/federation/LibraryTrackTable.vue:98 @@ -1943,78 +1967,83 @@ msgstr "" #: front/src/components/manage/users/InvitationsTable.vue:76 #: front/src/components/manage/users/UsersTable.vue:87 msgid "Showing results %{ start }-%{ end } on %{ total }" -msgstr "" +msgstr "Mostrando risultati %{ start }-%{ end } su %{ total }" #: front/src/components/audio/Player.vue:269 msgid "Shuffle your queue" -msgstr "" +msgstr "Mischia la tua coda" #: front/src/components/auth/Signup.vue:95 msgid "Sign Up" -msgstr "" +msgstr "Registrati" #: front/src/components/manage/users/UsersTable.vue:40 #: front/src/views/admin/users/UsersDetail.vue:37 msgid "Sign-up" -msgstr "" +msgstr "Registrati" #: front/src/components/audio/track/Table.vue:31 msgid "Simply copy paste the snippet below into a terminal to launch the download." msgstr "" +"Copia e incolla il codice sottostante in un terminale per iniziare lo " +"scaricamento." #: front/src/components/library/Track.vue:69 #: front/src/components/library/import/FileUpload.vue:44 #: front/src/components/manage/library/FilesTable.vue:44 msgid "Size" -msgstr "" +msgstr "Dimensione" #: front/src/components/library/import/BatchDetail.vue:37 #: front/src/components/library/import/BatchDetail.vue:72 msgid "Skipped" -msgstr "" +msgstr "Saltato" #: front/src/components/requests/Form.vue:3 msgid "Something's missing in the library? Let us know what you would like to listen!" -msgstr "" +msgstr "Manca qualcosa nella libreria? Facci sapere cosa vorresti ascoltare!" #: front/src/components/audio/Search.vue:25 msgid "Sorry, we did not found any album matching your query" msgstr "" +"Ci dispiace, non abbiamo trovato nessun album corrispondente alla tua ricerca" #: front/src/components/audio/Search.vue:16 msgid "Sorry, we did not found any artist matching your query" msgstr "" +"Ci dispiace, non abbiamo trovato nessun artista corrispondente alla tua " +"ricerca" #: front/src/components/library/import/BatchDetail.vue:82 #: front/src/components/library/import/BatchList.vue:38 #: front/src/components/library/import/TrackImport.vue:17 msgid "Source" -msgstr "" +msgstr "Sorgente" #: front/src/App.vue:41 msgid "Source code" -msgstr "" +msgstr "Codice sorgente" #: front/src/App.vue:40 msgid "Source code (%{version})" -msgstr "" +msgstr "Codice sorgente (%{version})" #: front/src/components/auth/Profile.vue:20 #: front/src/components/manage/users/UsersTable.vue:70 msgid "Staff member" -msgstr "" +msgstr "Membro dello staff" #: front/src/components/radios/Button.vue:4 msgid "Start" -msgstr "" +msgstr "Inizia" #: front/src/components/library/import/FileUpload.vue:28 msgid "Start Upload" -msgstr "" +msgstr "Inizia caricamento" #: front/src/views/admin/Settings.vue:86 msgid "Statistics" -msgstr "" +msgstr "Statistiche" #: front/src/components/federation/LibraryFollowTable.vue:23 #: front/src/components/federation/LibraryTrackTable.vue:46 @@ -2029,288 +2058,316 @@ msgstr "" #: front/src/components/manage/users/InvitationsTable.vue:39 #: front/src/components/manage/users/UsersTable.vue:43 msgid "Status" -msgstr "" +msgstr "Stato" #: front/src/components/radios/Button.vue:3 msgid "Stop" -msgstr "" +msgstr "Ferma" #: front/src/components/Sidebar.vue:159 msgid "Stop radio" -msgstr "" +msgstr "Ferma radio" #: front/src/components/library/import/FileUpload.vue:32 msgid "Stop Upload" -msgstr "" +msgstr "Ferma Caricamento" #: front/src/App.vue:9 src/components/requests/Form.vue:17 msgid "Submit" -msgstr "" +msgstr "Invia" #: front/src/components/requests/Form.vue:22 msgid "Submit another request" -msgstr "" +msgstr "Invia un'altra richiesta" #: front/src/components/library/import/BatchDetail.vue:26 #: front/src/components/library/import/BatchList.vue:39 msgid "Submitted by" -msgstr "" +msgstr "Inviato da" #: front/src/views/admin/Settings.vue:85 msgid "Subsonic" -msgstr "" +msgstr "Subsonic" #: front/src/components/auth/SubsonicTokenForm.vue:2 msgid "Subsonic API password" -msgstr "" +msgstr "Password API Subsonic" #: front/src/components/library/import/BatchDetail.vue:71 #: front/src/components/library/import/BatchList.vue:16 #: front/src/components/library/import/FileUpload.vue:56 msgid "Success" -msgstr "" +msgstr "Successo" #: front/src/App.vue:11 msgid "Suggested choices" -msgstr "" +msgstr "Scelte suggerite" #: front/src/components/playlists/Editor.vue:9 msgid "Syncing changes to server..." -msgstr "" +msgstr "Sincronizzando le modifiche con il server..." #: front/src/components/Home.vue:26 msgid "That's simple: we loved Grooveshark and we want to build something even better." msgstr "" +"È molto semplice: amavamo Grooveshark e volevamo creare qualcosa ancora più " +"bello." #: front/src/components/requests/Form.vue:73 msgid "The Beatles, Mickael Jackson…" -msgstr "" +msgstr "The Beatles, Michael Jackson…" #: front/src/App.vue:59 msgid "The funkwhale logo was kindly designed and provided by Francis Gading." msgstr "" +"Il logo di Funkwhale è stato gentilmente disegnato e concesso da Francis " +"Gading." #: front/src/components/Home.vue:124 msgid "The plaform is free and open-source, you can install it and modify it without worries" msgstr "" +"La piattaforma è libera e open source, puoi installarla e modificarla senza " +"problemi" #: front/src/components/auth/SubsonicTokenForm.vue:4 msgid "The Subsonic API is not available on this Funkwhale instance." -msgstr "" +msgstr "L'API Subsonic non è disponibile su questa istanza Funkwhale." #: front/src/components/requests/Form.vue:74 msgid "The White Album, Thriller…" -msgstr "" +msgstr "The White Album, Thriller…" #: front/src/components/audio/track/Table.vue:30 msgid "There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks." msgstr "" +"Attualmente non c'è modo di scaricare direttamente più tracce da Funkwhale " +"come archivio ZIP. Comunque, puoi usare uno strumento da terminale come cURL " +"per scaricare facilmente una lista di tracce." #: front/src/components/library/import/Main.vue:149 msgid "This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled." msgstr "" +"Questa importazione sarà associata alla richiesta di musica sottostante. Una " +"volta che l'importazione è finita, la richiesta verrà segnata come " +"completata." #: front/src/views/federation/LibraryDetail.vue:195 msgid "This indicate if the remote library granted you access" -msgstr "" +msgstr "Questo indica se la libreria remota ti ha concesso l'accesso" #: front/src/components/auth/Profile.vue:16 msgid "This is you!" -msgstr "" +msgstr "Questo sei tu!" #: front/src/components/common/ActionTable.vue:37 msgid "This may affect a lot of elements, please double check this is really what you want." msgstr "" +"Questo può coinvolgere molti elementi, per favore ricontrolla se è proprio " +"quello che vuoi." #: front/src/components/audio/PlayButton.vue:61 msgid "This track is not imported and cannot be played" -msgstr "" +msgstr "Questa traccia non è importata e non può essere riprodotta" #: front/src/views/playlists/Detail.vue:37 msgid "This will completely delete this playlist and cannot be undone." msgstr "" +"Questo cancellerà questa lista di riproduzione e non può essere annullato." #: front/src/views/radios/Detail.vue:27 msgid "This will completely delete this radio and cannot be undone." -msgstr "" +msgstr "Questo cancellerà questa radio e non può essere annullato." #: front/src/components/auth/SubsonicTokenForm.vue:51 msgid "This will completely disable access to the Subsonic API using from account." msgstr "" +"Questo disabiliterà completamente l'accesso alla API Subsonic dagli account." #: front/src/App.vue:137 msgid "This will erase your local data and disconnect you, do you want to continue?" msgstr "" +"Questo cancellerà i tuoi dati locali e ti disconnetterà, vuoi continuare?" #: front/src/components/auth/SubsonicTokenForm.vue:36 msgid "This will log you out from existing devices that use the current password." msgstr "" +"Questo ti disconnetterà dai dispositivi esistenti che utilizzano la password " +"attuale." #: front/src/components/playlists/Editor.vue:44 msgid "This will remove all tracks from this playlist and cannot be undone." msgstr "" +"Questo cancellerà tutte le tracce da questa lista di riproduzione e non può " +"essere annullato." #: front/src/components/audio/track/Table.vue:6 #: front/src/components/federation/LibraryTrackTable.vue:47 #: front/src/components/manage/library/FilesTable.vue:37 msgid "Title" -msgstr "" +msgstr "Titolo" #: front/src/components/audio/SearchBar.vue:27 #: src/components/library/Track.vue:174 #: front/src/components/library/import/BatchDetail.vue:84 #: front/src/components/metadata/Search.vue:138 msgid "Track" -msgstr "" +msgstr "Traccia" #: front/src/components/library/Track.vue:53 msgid "Track information" -msgstr "" +msgstr "Informazioni traccia" #: front/src/components/library/radios/Filter.vue:44 msgid "Track matching filter" -msgstr "" +msgstr "Filtro corrispondenze traccia" #: front/src/components/instance/Stats.vue:54 msgid "tracks" -msgstr "" +msgstr "tracce" #: front/src/components/library/Album.vue:43 #: front/src/components/playlists/PlaylistModal.vue:33 #: front/src/views/federation/Base.vue:8 src/views/playlists/Detail.vue:50 #: front/src/views/radios/Detail.vue:34 msgid "Tracks" -msgstr "" +msgstr "Tracce" #: front/src/views/federation/LibraryDetail.vue:125 msgid "Tracks available in this library" -msgstr "" +msgstr "Tracce disponibili in questa libreria" #: front/src/components/library/Artist.vue:54 -#, fuzzy msgid "Tracks by this artist" -msgstr "Albums di questo artista" +msgstr "Tracce di questo artista" #: front/src/components/instance/Stats.vue:25 msgid "Tracks favorited" -msgstr "" +msgstr "Tracce preferite" #: front/src/components/instance/Stats.vue:19 msgid "tracks listened" -msgstr "" +msgstr "tracce ascoltate" #: front/src/views/federation/LibraryDetail.vue:109 msgid "Trigger scan" -msgstr "" +msgstr "Inizia scansione" #: front/src/components/manage/library/FilesTable.vue:41 msgid "Type" -msgstr "" +msgstr "Tipo" #: front/src/components/About.vue:15 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page." msgstr "" +"Sfortunatamente i proprietari di questa istanza non hanno ancora avuto tempo " +"di completare questa pagina." #: front/src/views/federation/LibraryDetail.vue:95 msgid "Unknown" -msgstr "" +msgstr "Sconosciuto" #: front/src/components/Home.vue:37 msgid "Unlimited music" -msgstr "" +msgstr "Musica illimitata" #: front/src/components/audio/Player.vue:264 msgid "Unmute" -msgstr "" +msgstr "Non silenziare" #: front/src/components/auth/Settings.vue:50 msgid "Update avatar" -msgstr "" +msgstr "Aggiorna avatar" #: front/src/components/playlists/Form.vue:33 msgid "Update playlist" -msgstr "" +msgstr "Aggiorna lista di riproduzione" #: front/src/components/auth/Settings.vue:27 msgid "Update settings" -msgstr "" +msgstr "Aggiorna impostazioni" #: front/src/views/auth/PasswordResetConfirm.vue:21 msgid "Update your password" -msgstr "" +msgstr "Aggiorna la tua password" #: front/src/components/manage/users/UsersTable.vue:172 #: front/src/views/admin/users/UsersDetail.vue:153 msgid "Upload" -msgstr "" +msgstr "Carica" #: front/src/components/auth/Settings.vue:45 msgid "Upload a new avatar" -msgstr "" +msgstr "Carica un nuovo avatar" #: front/src/components/library/import/Main.vue:7 msgid "Uploaded files or external source" -msgstr "" +msgstr "File o sorgenti esterne caricati" #: front/src/components/library/import/FileUpload.vue:57 msgid "Uploading..." -msgstr "" +msgstr "Caricamento..." #: front/src/App.vue:45 msgid "Use another instance" -msgstr "" +msgstr "Usa un'altra istanza" #: front/src/components/requests/Form.vue:75 msgid "Use this comment box to add details to your request if needed" msgstr "" +"Usa questo riquadro di commento per aggiungere dettagli alla tua richiesta " +"se necessario" #: front/src/views/federation/LibraryDetail.vue:196 msgid "Use this flag to enable/disable federation with this library" msgstr "" +"Usa questa spunta per abilitare/disabilitare la federazione con questa " +"libreria" #: front/src/views/auth/PasswordReset.vue:12 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password." msgstr "" +"Usa questo modulo per richiedere un reset della password. Ti invieremo una " +"email all'indirizzo fornito con le istruzioni per resettare la tua password." #: front/src/components/federation/LibraryForm.vue:6 msgid "Use this form to scan an instance and setup federation." msgstr "" +"Usa questo modulo per scansionare un'istanza ed impostare la federazione." #: front/src/components/manage/users/InvitationsTable.vue:49 msgid "Used" -msgstr "" +msgstr "Usati" #: front/src/components/manage/library/RequestsTable.vue:47 msgid "User" -msgstr "" +msgstr "Utente" #: front/src/components/instance/Stats.vue:5 msgid "User activity" -msgstr "" +msgstr "Attività utente" #: front/src/components/library/Radios.vue:20 -#, fuzzy msgid "User radios" -msgstr "Sfogliando radio" +msgstr "Radio dell'utente" #: front/src/components/auth/Signup.vue:19 #: front/src/components/manage/users/UsersTable.vue:37 msgid "Username" -msgstr "" +msgstr "Nome utente" #: front/src/components/auth/Login.vue:15 msgid "Username or email" -msgstr "" +msgstr "Nome utente o email" #: front/src/components/instance/Stats.vue:13 msgid "users" -msgstr "" +msgstr "utenti" #: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 #: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 #: front/src/views/admin/users/UsersList.vue:21 msgid "Users" -msgstr "" +msgstr "Utenti" #: front/src/components/library/Album.vue:37 #: src/components/library/Artist.vue:35 @@ -2319,143 +2376,157 @@ msgstr "" #: front/src/components/metadata/ArtistCard.vue:49 #: front/src/components/metadata/ReleaseCard.vue:53 msgid "View on MusicBrainz" -msgstr "" +msgstr "Vedi su MusicBrainz" #: front/src/components/playlists/PlaylistModal.vue:20 msgid "We cannot add the track to a playlist" -msgstr "" +msgstr "Non possiamo aggiungere la traccia alla lista di riproduzione" #: front/src/components/playlists/Form.vue:14 msgid "We cannot create the playlist" -msgstr "" +msgstr "Non possiamo creare la lista di riproduzione" #: front/src/components/auth/Signup.vue:13 msgid "We cannot create your account" -msgstr "" +msgstr "Non possiamo creare il tuo account" #: front/src/components/auth/Login.vue:7 msgid "We cannot log you in" -msgstr "" +msgstr "Non riusciamo a farti accedere" #: front/src/components/auth/Settings.vue:38 -#, fuzzy msgid "We cannot save your avatar" -msgstr "Non puoi cambiare la tua password" +msgstr "Non possiamo salvare il tuo avatar" #: front/src/components/auth/Settings.vue:14 msgid "We cannot save your settings" -msgstr "" +msgstr "Non possiamo salvare le tue impostazioni" #: front/src/components/Home.vue:130 msgid "We do not track you or bother you with ads" -msgstr "" +msgstr "Noi non ti tracciamo o infastidiamo con pubblicità" #: front/src/components/library/import/FileUpload.vue:5 msgid "We recommend using Picard for that purpose." -msgstr "" +msgstr "Ti consigliamo di utilizzare Picard per quello scopo." #: front/src/components/Home.vue:7 msgid "We think listening to music should be simple." -msgstr "" +msgstr "Noi pensiamo che ascoltare musica debba essere semplice." #: front/src/components/PageNotFound.vue:10 msgid "We're sorry, the page you asked for does not exist:" -msgstr "" +msgstr "Ci dispiace, la pagina che hai richiesto non esiste:" #: front/src/components/requests/Form.vue:21 msgid "We've received your request, you'll get some groove soon ;)" -msgstr "" +msgstr "Abbiamo ricevuto la tua richiesta, presto avrai da divertirti ;)" #: front/src/components/Home.vue:152 msgid "Welcome" -msgstr "" +msgstr "Benvenuto" #: front/src/components/Home.vue:5 msgid "Welcome on Funkwhale" -msgstr "" +msgstr "Benvenuto su Funkwhale" #: front/src/components/library/import/Main.vue:114 msgid "What is metadata?" -msgstr "" +msgstr "Cosa vuol dire metadata?" #: front/src/views/federation/LibraryDetail.vue:197 msgid "When enabled, auto importing will automatically import new tracks published in this library" msgstr "" +"Quando abilitato, l'importazione automatica importerà autonomamente le nuove " +"tracce pubblicate in questa libreria" #: front/src/components/Home.vue:24 msgid "Why funkwhale?" -msgstr "" +msgstr "Perchè Funkwhale?" #: front/src/components/Sidebar.vue:124 msgid "Yes" -msgstr "" +msgstr "Si" #: front/src/components/auth/Logout.vue:8 msgid "Yes, log me out!" -msgstr "" +msgstr "Si, disconnettimi!" #: front/src/components/auth/Logout.vue:7 msgid "You are currently logged in as %{ username }" -msgstr "" +msgstr "Sei attualmente connesso come %{ username }" #: front/src/components/library/import/Main.vue:111 msgid "You can also skip this step and enter metadata manually." -msgstr "" +msgstr "Puoi anche saltare questo passaggio ed inserire manualmente i metadati." #: front/src/components/Home.vue:136 msgid "You can invite friends and family to your instance so they can enjoy your music" msgstr "" +"Puoi invitare amici e familiari sulla tua istanza così possono fruire della " +"tua musica" #: front/src/components/library/radios/Builder.vue:7 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria." msgstr "" +"Puoi usare questa interfaccia per creare la tua radio personalizzata, che " +"riprodurrà tracce in accordo con i tuoi criteri." #: front/src/components/auth/SubsonicTokenForm.vue:8 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance." msgstr "" +"Puoi usarli per godere delle tue liste di riproduzione e musica anche quando " +"non collegato, dal tuo cellulare o tablet, per esempio." #: front/src/components/Sidebar.vue:156 msgid "You have a radio playing" -msgstr "" +msgstr "Hai una radio in riproduzione" #: front/src/App.vue:6 msgid "You need to select an instance in order to continue" -msgstr "" +msgstr "Devi selezionare un'istanza per continuare" #: front/src/components/auth/Settings.vue:100 msgid "You will be logged out from this session and have to log in with the new one" -msgstr "" +msgstr "Sarai disconnesso da questa sessione e dovrai accedere con una nuova" #: front/src/components/auth/Settings.vue:71 msgid "You will have to update your password on your clients that use this password." msgstr "" +"Dovrai aggiornare la tua password sui tuoi dispositivi che utilizzano questa " +"password." #: front/src/components/library/import/Main.vue:103 msgid "You will import:" -msgstr "" +msgstr "Importerai:" #: front/src/views/auth/EmailConfirm.vue:24 msgid "Your email address was confirmed, you can now use the service without limitations." msgstr "" +"Il tuo indirizzo email è stato confermato, ora puoi usare il servizio senza " +"limitazioni." #: front/src/components/favorites/List.vue:109 msgid "Your Favorites" -msgstr "" +msgstr "I Tuoi Preferiti" #: front/src/components/Home.vue:117 msgid "Your music, your way" -msgstr "" +msgstr "La tua musica, il tuo modo di essere" #: front/src/views/auth/PasswordResetConfirm.vue:29 msgid "Your password has been updated successfully." -msgstr "" +msgstr "La tua password è stata aggiornata con successo." #: front/src/components/auth/Settings.vue:101 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password" msgstr "" +"La tua password Subsonic sarà cambiata con una nuova e casuale, e sarai " +"disconnesso dai dispositivi che utilizzano ancora la vecchia password " +"Subsonic" #: front/src/components/audio/PlayButton.vue:156 msgid "%{ count } track was added to your queue" msgid_plural "%{ count } tracks were added to your queue" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%{ count } traccia è stata aggiunta alla tua coda" +msgstr[1] "%{ count } tracce sono state aggiunte alla tua coda" diff --git a/front/locales/oc/LC_MESSAGES/app.po b/front/locales/oc/LC_MESSAGES/app.po index 095008a6c..de2764bfd 100644 --- a/front/locales/oc/LC_MESSAGES/app.po +++ b/front/locales/oc/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-22 20:29+0000\n" +"PO-Revision-Date: 2018-07-24 17:46+0000\n" "Last-Translator: Quentí \n" "Language-Team: none\n" "Language: oc\n" @@ -28,7 +28,7 @@ msgstr "(%{ index } sus %{ length })" #: front/src/components/Sidebar.vue:22 msgid "(empty)" -msgstr "(void)" +msgstr "(voida)" #: front/src/components/common/ActionTable.vue:43 #: front/src/components/common/ActionTable.vue:51 @@ -2364,7 +2364,7 @@ msgstr "Nom d’utilizaire o corrièl" #: front/src/components/instance/Stats.vue:13 msgid "users" -msgstr "utilizaire" +msgstr "utilizaires" #: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81 #: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3 diff --git a/front/locales/pl/LC_MESSAGES/app.po b/front/locales/pl/LC_MESSAGES/app.po index 7cf384b59..998f4e61e 100644 --- a/front/locales/pl/LC_MESSAGES/app.po +++ b/front/locales/pl/LC_MESSAGES/app.po @@ -8,14 +8,15 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-22 14:12+0200\n" -"PO-Revision-Date: 2018-07-20 19:03+0000\n" +"PO-Revision-Date: 2018-07-31 13:32+0000\n" "Last-Translator: Marcin Mikołajczak \n" "Language-Team: \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 2.20\n" #: front/src/components/playlists/PlaylistModal.vue:9 @@ -669,9 +670,8 @@ msgid "Do you want to delete the playlist \"%{ playlist }\"?" msgstr "Czy chcesz usunąć listę odtwarzania „%{ playlist }”?" #: front/src/views/radios/Detail.vue:26 -#, fuzzy msgid "Do you want to delete the radio \"%{ radio }\"?" -msgstr "Czy chcesz usunąć radio „{{ radio }}”?" +msgstr "Czy chcesz usunąć radio „%{ radio }”?" #: front/src/components/common/ActionTable.vue:29 msgid "Do you want to launch %{ action } on %{ count } element?" @@ -1002,7 +1002,7 @@ msgstr "Uzyskaj odpowiednie metadane" #: front/src/App.vue:74 msgid "Help us translate Funkwhale" -msgstr "" +msgstr "Pomóż nam tłumaczyć Funkwhale" #: front/src/components/library/Home.vue:65 msgid "Home" @@ -1682,18 +1682,16 @@ msgid "Radio Builder" msgstr "Tworzenie radia" #: front/src/components/library/radios/Builder.vue:15 -#, fuzzy msgid "Radio created" -msgstr "Nazwa radia" +msgstr "Utworzono radio" #: front/src/components/library/radios/Builder.vue:21 msgid "Radio name" msgstr "Nazwa radia" #: front/src/components/library/radios/Builder.vue:12 -#, fuzzy msgid "Radio updated" -msgstr "Nazwa radia" +msgstr "Zaktualizowano radio" #: front/src/components/library/Library.vue:10 #: src/components/library/Radios.vue:141 diff --git a/front/locales/sv/LC_MESSAGES/app.po b/front/locales/sv/LC_MESSAGES/app.po index 0fd43bceb..60bd0e9d2 100644 --- a/front/locales/sv/LC_MESSAGES/app.po +++ b/front/locales/sv/LC_MESSAGES/app.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: front 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-17 19:29+0200\n" -"PO-Revision-Date: 2018-07-21 21:30+0000\n" +"PO-Revision-Date: 2018-07-23 16:49+0000\n" "Last-Translator: Tim Stahel \n" "Language-Team: none\n" "Language: sv\n" @@ -459,11 +459,11 @@ msgstr "" #: front/src/components/auth/Settings.vue:98 msgid "Changing your password will have the following consequences" -msgstr "" +msgstr "Ändring av lösenord har följande konsekvenser" #: front/src/App.vue:4 msgid "Choose your instance" -msgstr "" +msgstr "Välj din instans" #: front/src/components/Home.vue:64 msgid "Clean library" diff --git a/front/package.json b/front/package.json index 9837479ba..9c8cba9fe 100644 --- a/front/package.json +++ b/front/package.json @@ -1,124 +1,92 @@ { "name": "front", - "version": "1.0.0", - "description": "Funkwhale front-end", - "author": "Eliot Berriot ", + "version": "0.1.0", "private": true, "scripts": { - "dev": "scripts/i18n-compile.sh && node build/dev-server.js", - "start": "scripts/i18n-compile.sh && node build/dev-server.js", - "build": "node build/build.js", + "serve": "scripts/i18n-compile.sh && vue-cli-service serve --port ${VUE_PORT:-8000} --host ${VUE_HOST:-0.0.0.0}", + "build": "scripts/i18n-compile.sh && vue-cli-service build", + "lint": "vue-cli-service lint", "i18n-extract": "scripts/i18n-extract.sh", "i18n-compile": "scripts/i18n-compile.sh", - "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", - "unit-watch": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js", - "e2e": "node test/e2e/runner.js", - "test": "npm run unit && npm run e2e", - "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs" + "test:unit": "vue-cli-service test:unit" }, "dependencies": { - "@panter/vue-i18next": "^0.9.1", - "axios": "^0.17.1", - "dateformat": "^2.0.0", + "axios": "^0.18.0", + "dateformat": "^3.0.3", "django-channels": "^1.1.6", - "js-logger": "^1.3.0", + "howler": "^2.0.14", + "js-logger": "^1.4.1", "jwt-decode": "^2.2.0", - "lodash": "^4.17.4", - "masonry-layout": "^4.2.1", - "moment": "^2.20.1", - "moxios": "^0.4.0", - "raven-js": "^3.22.3", - "semantic-ui-css": "^2.2.10", + "lodash": "^4.17.10", + "masonry-layout": "^4.2.2", + "moment": "^2.22.2", + "raven-js": "^3.26.4", + "semantic-ui-css": "^2.3.3", "showdown": "^1.8.6", - "vue": "^2.5.16", - "vue-gettext": "^2.0.31", - "vue-lazyload": "^1.1.4", - "vue-masonry": "^0.10.16", - "vue-router": "^2.3.1", - "vue-upload-component": "^2.7.4", - "vuedraggable": "^2.14.1", + "vue": "^2.5.17", + "vue-gettext": "^2.1.0", + "vue-lazyload": "^1.2.6", + "vue-masonry": "^0.11.5", + "vue-router": "^3.0.1", + "vue-upload-component": "^2.8.11", + "vuedraggable": "^2.16.0", "vuex": "^3.0.1", - "vuex-persistedstate": "^2.5.2", + "vuex-persistedstate": "^2.5.4", "vuex-router-sync": "^5.0.0" }, "devDependencies": { - "autoprefixer": "^6.7.2", - "babel-core": "^6.22.1", - "babel-eslint": "^7.1.1", - "babel-loader": "7", - "babel-plugin-istanbul": "^4.1.1", - "babel-plugin-transform-runtime": "^6.22.0", - "babel-preset-env": "^1.3.2", - "babel-preset-stage-2": "^6.22.0", - "babel-register": "^6.22.0", - "chai": "^3.5.0", - "chalk": "^1.1.3", - "chromedriver": "^2.27.2", - "connect-history-api-fallback": "^1.3.0", - "copy-webpack-plugin": "^4.0.1", - "cross-env": "^4.0.0", - "cross-spawn": "^5.0.1", - "css-loader": "^0.28.0", - "easygettext": "^2.5.0", - "es6-promise": "^4.2.2", - "eslint": "^3.19.0", - "eslint-config-standard": "^6.2.1", - "eslint-friendly-formatter": "^2.0.7", - "eslint-loader": "^1.7.1", - "eslint-plugin-html": "^2.0.0", - "eslint-plugin-promise": "^3.4.0", - "eslint-plugin-standard": "^2.0.1", - "eventsource-polyfill": "^0.9.6", - "express": "^4.14.1", - "extract-text-webpack-plugin": "^2.0.0", - "file-loader": "^0.11.1", - "friendly-errors-webpack-plugin": "^1.1.3", - "html-webpack-plugin": "^2.28.0", - "http-proxy-middleware": "^0.17.3", - "inject-loader": "^3.0.0", - "karma": "^1.4.1", - "karma-coverage": "^1.1.1", - "karma-mocha": "^1.3.0", - "karma-phantomjs-launcher": "^1.0.2", - "karma-phantomjs-shim": "^1.4.0", - "karma-sinon-chai": "^1.3.1", - "karma-sinon-stub-promise": "^1.0.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-spec-reporter": "0.0.30", - "karma-webpack": "^2.0.2", - "lolex": "^1.5.2", - "mocha": "^3.2.0", - "nightwatch": "^0.9.12", - "node-sass": "^4.5.3", - "opn": "^4.0.2", - "optimize-css-assets-webpack-plugin": "^1.3.0", - "ora": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "rimraf": "^2.6.0", - "sass-loader": "^6.0.5", - "selenium-server": "^3.0.1", - "semver": "^5.3.0", - "shelljs": "^0.7.6", - "sinon": "^2.1.0", - "sinon-chai": "^2.8.0", - "sinon-stub-promise": "^4.0.0", - "url-loader": "^0.5.8", - "vue-loader": "^12.1.0", - "vue-style-loader": "^3.0.1", - "vue-template-compiler": "^2.3.3", - "webpack": "3", - "webpack-bundle-analyzer": "^2.2.1", - "webpack-dev-middleware": "^1.10.0", - "webpack-hot-middleware": "^2.18.0", - "webpack-merge": "^4.1.0" + "@vue/cli-plugin-babel": "^3.0.0", + "@vue/cli-plugin-eslint": "^3.0.0", + "@vue/cli-plugin-unit-mocha": "^3.0.0", + "@vue/cli-service": "^3.0.0", + "@vue/test-utils": "^1.0.0-beta.20", + "chai": "^4.1.2", + "easygettext": "^2.6.3", + "eslint-plugin-html": "^4.0.5", + "mocha": "^5.2.0", + "moxios": "^0.4.0", + "node-sass": "^4.9.3", + "sass-loader": "^7.1.0", + "sinon": "^6.1.5", + "vue-template-compiler": "^2.5.17" }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" + "eslintConfig": { + "root": true, + "env": { + "browser": true, + "node": true + }, + "plugins": [ + "html" + ], + "rules": { + "no-console": 0, + "no-unused-vars": [ + 2, + { + "vars": "all", + "args": "none" + } + ] + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "babel-eslint" + } + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } }, "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" - ] + ], + "author": "Eliot Berriot ", + "description": "Funkwhale front-end" } diff --git a/front/public/custom.css b/front/public/custom.css new file mode 100644 index 000000000..a5bbb2cff --- /dev/null +++ b/front/public/custom.css @@ -0,0 +1 @@ +/* This is a custom CSS file that can be loaded thanks to settings.json */ diff --git a/front/src/assets/logo/favicon.png b/front/public/favicon.png similarity index 100% rename from front/src/assets/logo/favicon.png rename to front/public/favicon.png diff --git a/front/public/index.html b/front/public/index.html new file mode 100644 index 000000000..e6232290b --- /dev/null +++ b/front/public/index.html @@ -0,0 +1,20 @@ + + + + + + + + + Funkwhale + + + + +
+ + + + diff --git a/front/public/settings.json b/front/public/settings.json new file mode 100644 index 000000000..133fb5672 --- /dev/null +++ b/front/public/settings.json @@ -0,0 +1,3 @@ +{ + "additionalStylesheets": ["/custom.css"] +} diff --git a/front/src/App.vue b/front/src/App.vue index 58ed698aa..f80020e93 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -1,5 +1,7 @@