diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 84366c9f..77ec2d8a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -6,22 +6,23 @@ labels: needs triage assignees: '' --- + **Describe the bug** A clear and concise description of what the bug is. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..44537f5a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +blank_issues_enabled: false + +contact_links: + - name: Discord Community + url: https://discord.gg/7Dr9f9vNjJ + about: Please ask and answer questions here. diff --git a/CHANGELOG.md b/CHANGELOG.md index 940865d5..3c4ae09b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,49 @@ All notable changes to this project will be documented in this file. -## [v5.1.1] - Unreleased +## [Unreleased] +- **Feature**: Support showing full file path in sidebar ([#173](https://github.com/pulsejet/memories/issues/173)) +- **Feature**: View file in folder on clicking name in sidebar +- **Feature**: User can leave albums that are shared with them +- **Fix**: Support for transcoding MKV files. + +## [v5.4.1] - 2023-08-20 + +- Corrects a versioning error. This version is the same as v5.3.0 + +## [v5.3.0] - 2023-08-20 + +- **Feature**: Allow adding photos to multiple albums together ([#752](https://github.com/pulsejet/memories/pull/752)) +- **Feature**: Improved layout for albums list view +- **Feature**: Search bar for album picker when adding to album. +- **Feature**: Show albums of photo in metadata ([#752](https://github.com/pulsejet/memories/pull/752)) +- **Feature**: Show faces in photo in sidebar metadata +- **Feature**: Allow creation of new tags when editing metadata ([#487](https://github.com/pulsejet/memories/issues/487)) +- **Feature**: Allow disabling autoplay of live photo ([#591](https://github.com/pulsejet/memories/issues/591)) +- **Feature**: Improvements in admin interface +- **Feature**: A `.nomemories` file will now hide a folder from Memories without affecting other apps ([#777](https://github.com/pulsejet/memories/issues/777)) +- **Feature**: More crop options for image editor ([#546](https://github.com/pulsejet/memories/issues/546)) +- **Bugfix**: You can now configure the transpose strategy of the transcoder (required for QSV) + +## [v5.2.1] - 2023-07-03 + +- **Feature**: Allow moving unclustered faces to a cluster with Recognize (v4.2.0+) + +## [v5.2.0] - 2023-06-30 + +**Note:** You will need to run `occ memories:places-setup --recalculate` to re-index places (or reindex everything) + +- New project home page: https://memories.gallery +- New Discord community: https://discord.gg/7Dr9f9vNjJ +- Nextcloud 27 compatibility +- **Feature**: Hierarchical places view - **Feature**: Layout improvements especially for mobile. +- **Feature**: Allow downloading entire publicly shared albums. +- **Feature**: Basic preview generation configuration in admin interface. +- **Bugfix**: Prevent keeping original file on metadata edit. +- **Bugfix**: Use correct locale for time in metadata view. +- **Bugfix**: Allow editing metadata on large video files. ## [v5.1.0] - 2023-04-29 diff --git a/Makefile b/Makefile index 439e89ca..aebed03f 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,6 @@ build-js-production: patch-external: patch -p1 -N < patches/scroller-perf.patch || true patch -p1 -N < patches/scroller-sticky.patch || true - bash ./patches/filerobot-patch.sh watch-js: npm run watch diff --git a/README.md b/README.md index f860dce8..80a45501 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [![Discord](https://dcbadge.vercel.app/api/server/7Dr9f9vNjJ)](https://discord.gg/7Dr9f9vNjJ) [![Website](https://img.shields.io/website?down_color=red&down_message=offline&label=website&style=for-the-badge&up_color=brightgreen&up_message=online&url=https%3A%2F%2Fmemories.gallery)](https://memories.gallery) [![Demo](https://img.shields.io/website?down_color=red&down_message=offline&label=demo&style=for-the-badge&up_color=brightgreen&up_message=online&url=https%3A%2F%2Fdemo.memories.gallery)](https://demo.memories.gallery/apps/memories/) +[![Nextcloud Store](https://img.shields.io/badge/nextcloud_store-blue?style=for-the-badge)](https://apps.nextcloud.com/apps/memories) ![GitHub](https://img.shields.io/github/license/pulsejet/memories) [![e2e](https://github.com/pulsejet/memories/actions/workflows/e2e.yaml/badge.svg)](https://github.com/pulsejet/memories/actions/workflows/e2e.yaml) @@ -30,7 +31,7 @@ Memories is a _batteries-included_ photo management solution for Nextcloud with ## 🚀 Installation -1. Install the app from the Nextcloud app store. +1. Install the app from the Nextcloud [app store](https://apps.nextcloud.com/apps/memories). 1. Perform the recommended [configuration steps](https://memories.gallery/config/). 1. Run `php occ memories:index` to generate metadata indices for existing photos. 1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos. @@ -56,6 +57,7 @@ A shout out to the current and past financial backers of Memories! See the spons [](https://github.com/k1l1) [](https://github.com/ChickenTarm) [](https://github.com/ChildLearningClub) +[](https://github.com/mpanhans) ## 📝 Changelog diff --git a/appinfo/info.xml b/appinfo/info.xml index c779bf53..b9450f94 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -29,7 +29,7 @@ Memories is a *batteries-included* photo management solution for Nextcloud with 1. Run `php occ memories:index` to generate metadata indices for existing photos. 1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos. ]]> - 5.1.0 + 5.4.1 agpl Varun Patil Memories @@ -39,7 +39,7 @@ Memories is a *batteries-included* photo management solution for Nextcloud with https://github.com/pulsejet/memories https://raw.githubusercontent.com/pulsejet/memories/master/appinfo/screenshot.jpg - + OCA\Memories\Command\Index diff --git a/appinfo/routes.php b/appinfo/routes.php index 2fb4f551..0fbcb3c3 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -47,6 +47,7 @@ return [ // Public album share ['name' => 'PublicAlbum#showShare', 'url' => '/a/{token}', 'verb' => 'GET'], + ['name' => 'PublicAlbum#download', 'url' => '/a/{token}/download', 'verb' => 'GET'], // API Routes ['name' => 'Days#days', 'url' => '/api/days', 'verb' => 'GET'], diff --git a/docs/assets/app.svg b/docs/assets/app.svg new file mode 100644 index 00000000..fdc271dc --- /dev/null +++ b/docs/assets/app.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico new file mode 100644 index 00000000..728dd60a Binary files /dev/null and b/docs/assets/favicon.ico differ diff --git a/docs/config.md b/docs/config.md index 34701dfb..fde1f7c4 100644 --- a/docs/config.md +++ b/docs/config.md @@ -4,7 +4,12 @@ description: Steps to configure Memories for the best experience and performance # Configuration -Starting with v5.0.0, you can fully configure memories using the admin panel. With an admin account in Nextcloud, go to `Settings -> Memories`. Memories runs a background indexing job to extract EXIF metadata from photos and videos, as well as immediately on every upload. +!!! danger "Use the admin interface" + + Starting with v5.0.0, you can fully configure memories using the admin panel. With an admin account in Nextcloud, go to `Settings -> Memories`. + Using the admin interface for configuration is **strongly recommended** in most cases. + +Memories runs a background indexing job to extract EXIF metadata from photos and videos, as well as immediately on every upload. If you just installed memories and want to speed up indexing, run the following commands. For usage of the `occ` command line, refer [here](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) for more information. @@ -32,6 +37,8 @@ occ memories:index # index existing photo files (can run in parallel, # ^^^ <-- this is required ``` + If you are using Nextcloud AIO, see [this documentation](https://github.com/nextcloud/all-in-one#how-to-run-occ-commands). + ## Storage support The app can work with external storage for photos. Just set the mountpoint as the timeline directory. @@ -86,6 +93,8 @@ By default, previews upto `4096px` size are generated by Nextcloud. Each of the Note that Memories will, by default, load the full image upon zooming in. If you are okay with this, you may use a even smaller size like `1024px` to save more space as well as faster preview generation time. Non-JPEG files will be converted on the server when loading in full-res, which may lead to some server load. +On Nextcloud AIO, these options are set to the recommended values by default. + ```php 'preview_max_x' => 2048, 'preview_max_y' => 2048, diff --git a/docs/faq.md b/docs/faq.md index 49f3e3a4..98523910 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -54,7 +54,7 @@ UX and performance. The devil is in the details. **It's slow or doesn't work** -Make sure you follow the [configuration steps](../config). Unless you have hundreds of thousands of photos on a Raspberry Pi, Memories should be very fast. File an issue otherwise. +Make sure you follow the [troubleshooting steps](../troubleshooting/#performance). Unless you have hundreds of thousands of photos on a Raspberry Pi, Memories should be very fast. File an issue otherwise. **It says "nothing to show here" on startup?** @@ -64,24 +64,3 @@ the [configuration steps](../config) and be patient. **Will it run on my system?** In general, if you can run Nextcloud, you should be able to run Memories. File an issue if you run into problems. - -**How to completely remove Memories? Maybe to reinstall after errors?** - -Uninstall Memories from the app store, then run the following SQL on your database. - -```sql -DROP TABLE IF EXISTS oc_memories; -DROP TABLE IF EXISTS oc_memories_livephoto; -DROP TABLE IF EXISTS oc_memories_mapclusters; -DROP TABLE IF EXISTS oc_memories_places; -DROP TABLE IF EXISTS oc_memories_planet; -DROP TABLE IF EXISTS memories_planet_geometry; -DROP INDEX IF EXISTS memories_parent_mimetype ON oc_filecache; -DELETE FROM oc_migrations WHERE app='memories'; -``` - -On Postgres, the syntax for dropping the index is: - -```sql -DROP INDEX IF EXISTS memories_parent_mimetype; -``` diff --git a/docs/file-types.md b/docs/file-types.md index 889b1c98..e32efcfb 100644 --- a/docs/file-types.md +++ b/docs/file-types.md @@ -4,55 +4,52 @@ description: Steps to configure support for different image and video formats # File type support -Memories supports the file types supported by the Nextcloud previews app. If you add support for any one of the file types below, you must run `occ memories:index` to index these files. +!!! danger "Use the admin interface" + + It is **strongly recommended** that you use the Memories admin interface to configure file type support. This will ensure that your configuration is valid and that you do not accidentally disable support for any file types. + +Please note that if Imaginary is configured on your instance like on Nextcloud AIO, you do not need to follow this documentation any further; most file types should work out-of-the-box. + +Memories supports the file types supported by Nextcloud. File type support is determined in part by the values listed in the `enabledPreviewProviders` configuration parameter in your configuration file. If your `config.php` does not contain an `enabledPreviewProviders` array, this means you are using Nextcloud's defaults. Copy the array over from `config.sample.php` before adding any of the values below, or else you will effectively disable all of the defaults. + +If you add support for any one of the file types below, you must run `occ memories:index` to index these files. ## Common Formats ``` PNG (image/png) JPEG (image/jpeg) -PNG (image/png) GIF (image/gif) BMP (image/bmp) ``` -These are enabled by having the following in your `config.php`, +These are enabled by inclusion of the following values in `config.php`'s `enabledPreviewProviders` array: ```php -'enabledPreviewProviders' => -array ( - 'OC\\Preview\\Image', -), + 'OC\Preview\Image', ``` ## HEIC and TIFF -You must enable `HEIC` and `TIFF` in Nextcloud `config.php`, and install Imagemagick (included in the official Nextcloud docker image) - -In `config.php`, add, +These are enabled by inclusion of the following values in `config.php`'s `enabledPreviewProviders` array: ```php -'enabledPreviewProviders' => -array ( - 'OC\\Preview\\HEIC', - 'OC\\Preview\\TIFF', -), + 'OC\Preview\HEIC', + 'OC\Preview\TIFF', ``` +You must also install Imagemagick (included in the official Nextcloud docker image). + ## Videos -You need to install `ffmpeg` and add the video config to `config.php` +These are enabled by inclusion of the following value in `config.php`'s `enabledPreviewProviders` array: ```php -'enabledPreviewProviders' => -array ( - 'OC\\Preview\\Movie', - 'OC\\Preview\\MKV', - 'OC\\Preview\\MP4', - 'OC\\Preview\\AVI', -), + 'OC\Preview\Movie', ``` +You must also install `ffmpeg` and add the video config to `config.php`. + ## RAW images Install the [camera raw previews](https://github.com/ariselseng/camerarawpreviews) app from the Nextcloud app store. diff --git a/docs/hw-transcoding.md b/docs/hw-transcoding.md index bdff21d1..e9799d96 100644 --- a/docs/hw-transcoding.md +++ b/docs/hw-transcoding.md @@ -16,7 +16,7 @@ In the directory with the `docker-compose.yml` file, run, git clone https://github.com/pulsejet/go-vod ``` -If you are using docker compose, configure a service to start go-vod with the correct devices and filesystem structure. Otherwise, manually start the container with these parameters. +If you are using docker, configure a service to start go-vod with the correct devices and filesystem structure. Otherwise, manually start the container with these parameters. ```yaml # docker-compose.yml @@ -40,6 +40,10 @@ services: - ncdata:/var/www/html:ro ``` +Make sure to put the container and the container into the same network so that they can talk to each other! + +With Nextcloud AIO, you will need to put the container into the `nextcloud-aio` network. Also the datadir of AIO needs to be mounted at the same place like in its Netxcloud container into the go-vod container. Usually this would be `nextcloud_aio_nextcloud_data:/mnt/ncdata:ro` or `$NEXTCLOUD_DATADIR:/mnt/ncdata:ro`. + Finally, point Memories to the external go-vod instance. In the admin interface, set go-vod to external and configure the connect URL to `go-vod:47788`. Alternatively, add the following configuration to `config.php`: ```php @@ -71,6 +75,25 @@ apk update apk add --no-cache bash ffmpeg libva-utils libva-vdpau-driver libva-intel-driver intel-media-driver mesa-va-gallium ``` +In some cases, along with adding `www-data` to the appropriate groups, you may also need to set the permissions of the device manually: + +```bash +sudo chmod 666 /dev/dri/renderD128 +``` + +You can run a test using a sample video file to check if VA-API is working correctly for the `www-data` user: + +```bash +# download sample or or use any other video file +wget https://github.com/pulsejet/memories-assets/raw/main/sample.mp4 + +# check if VA-API is working +sudo -u www-data \ + ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi \ + -i 'sample.mp4' -vcodec h264_vaapi \ + output-www-data.mp4 +``` + ### Docker installations If you use Docker, you need to: @@ -86,11 +109,12 @@ If you use Docker, you need to: 1. Make sure the right drivers are installed. This can be done using a custom Dockerfile, for example ```Dockerfile - FROM nextcloud:25 + FROM nextcloud:latest RUN apt-get update && \ - apt-get install -y software-properties-common && \ - apt-add-repository -y non-free && \ + apt-get install -y lsb-release && \ + echo "deb http://ftp.debian.org/debian $(lsb_release -cs) non-free" >> \ + /etc/apt/sources.list.d/intel-graphics.list && \ apt-get update && \ apt-get install -y intel-media-va-driver-non-free ffmpeg && \ rm -rf /var/lib/apt/lists/* @@ -113,6 +137,9 @@ If you use Docker, you need to: 1. Check the output of `/tmp/go-vod/.log` if playback has issues +### Nextcloud AIO +See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud + ### linuxserver/nextcloud image You can add the following to the `docker-compose.yml` file to install the drivers: diff --git a/docs/install.md b/docs/install.md index d80095b1..680e6e47 100644 --- a/docs/install.md +++ b/docs/install.md @@ -11,8 +11,8 @@ This page describes how to install the latest version of Memories. Memories is an app for [Nextcloud](https://nextcloud.com/), so you need to install Nextcloud first. You can find the installation instructions [here](https://docs.nextcloud.com/server/latest/admin_manual/installation/). For the best experience, we recommend to use the latest stable version of Nextcloud and PHP. -For easy setup and maintenance, you can use the official Nextcloud Docker image, and add extra dependencies -using a custom Dockerfile. +For easy setup and maintenance, you can use the community Nextcloud Docker image, and add extra dependencies using a custom Dockerfile. +Another option is to use [Nextcloud AIO](https://github.com/nextcloud/all-in-one#how-to-use-this), in which case most dependencies are already installed. ## Requirements @@ -26,7 +26,7 @@ Before installing Memories, make sure that the following requirements are met: ## Installing Memories -Memories can be installed from the Nextcloud app store page. Alternatively, you can install it manually by following these steps: +Memories can be installed from the Nextcloud [app store](https://apps.nextcloud.com/apps/memories) page. Alternatively, you can install it manually by following these steps: 1. Download the latest release from the [releases page](https://github.com/pulsejet/memories/releases) 1. Extract the archive to the `apps` or `custom_apps` directory of your Nextcloud installation. diff --git a/docs/memories-vs-photos.md b/docs/memories-vs-photos.md index 76eaf0be..7a261507 100644 --- a/docs/memories-vs-photos.md +++ b/docs/memories-vs-photos.md @@ -23,4 +23,6 @@ Nextcloud comes bundled with an official "Photos" app. This page provides a brie ## Features in Photos missing in Memories -1. Photos supports uploading photos directly, Memories does not support this function. +1. Photos supports uploading photos directly, Memories does not ([issue](https://github.com/pulsejet/memories/issues/69)). +1. Photos supports drawing on photos, Memories does not ([issue](https://github.com/pulsejet/memories/issues/785)). +1. Photos shows which photos have been `Shared with you`. Memories does not ([issue](https://github.com/pulsejet/memories/issues/787)). diff --git a/docs/system-config.md b/docs/system-config.md index a2722a36..ec9e45d0 100644 --- a/docs/system-config.md +++ b/docs/system-config.md @@ -6,69 +6,6 @@ description: Documentation for config.php options that Memories uses This is a list of all options in `config.php` that memories uses -## General - ```php - '/var/www/html/apps/memories/exiftool-bin/exiftool-amd64-glibc', - -// Do not use packaged binaries of exiftool -// This requires perl to be available -'memories.exiftool_no_local' => false, - -// Makes the memories instance readonly -'memories.readonly' => false, - -// Type of reverse geocoding planet database -// -1 => Unconfigured -// 0 => Disable -// 1 => MySQL / MariaDB -// 2 => PostgreSQL -'memories.gis_type' => -1, -``` - -## Transcoding - -```php - false, - -// Hardware support for transcoding -'memories.vod.vaapi' => false, // Transcode with VA-API -'memories.vod.vaapi.low_power' => false, // Use low_power mode for VA-API - -'memories.vod.nvenc' => false, // Transcode with NVIDIA NVENC -'memories.vod.nvenc.temporal_aq' => false, -'memories.vod.nvenc.scale' => 'npp', // npp or cuda - -// Paths to ffmpeg and ffprobe binaries -'memories.vod.ffmpeg' => '/usr/bin/ffmpeg', -'memories.vod.ffprobe' => '/usr/bin/ffprobe', - -// Path to go-vod binary -'memories.vod.path' => '/var/www/html/apps/memories/exiftool-bin/go-vod-amd64', - -// Path to use for transcoded files (/tmp/go-vod/instanceid) -// Make sure this has plenty of space -'memories.vod.tempdir' => '/tmp/my-dir', - -// Bind address to use when starting the transcoding server -'memories.vod.bind' => '127.0.0.1:47788', - -// Address used to connect to the transcoding server -// If not specified, the bind address above will be used -'memories.vod.connect' => '127.0.0.1:47788', - -// Mark go-vod as external. If true, Memories will not attempt to -// start go-vod if it is not running already. -'memories.vod.external' => false, - -// Set the default video quality for a first time user -// 0 => Auto (default) -// -1 => Original (max quality with transcoding) -// -2 => Direct (disable transcoding) -// 1080 => 1080p (and so on) -'memories.video_default_quality' => '0', +--8<-- "lib/SystemConfigDefault.php" ``` diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md new file mode 100644 index 00000000..b01fc011 --- /dev/null +++ b/docs/troubleshooting.md @@ -0,0 +1,102 @@ +--- +description: Solutions to common problems +--- + +# Troubleshooting + +This page contains solutions to common problems. If you are facing any issues, please refer to this page before opening an issue. + +## Performance + +!!! tip "Nextcloud AIO" + + If you are using [AIO](https://github.com/nextcloud/all-in-one), these options should be configured by default. + +Memories is very fast, but its performance largely depends on how well the Nextcloud instance is tuned. + +- Make sure you are running the latest stable version of Nextcloud and Memories. +- Follow the steps in the [server tuning](https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html) documentation. +- Follow all configuration steps in the [configuration](../config) documentation. + + - Disable video transcoding if your server is not powerful enough. + - Reduce the maximum size of previews to be generated. + +- Make sure you are running HTTPS (very important). +- Enable HTTP/2 or HTTP/3 on your server. +- Enable and configure PHP Opcache and JIT. +- Enable and configure the APCu cache. +- Enable and configure Redis for transactional file locking. +- Enable gzip compression on your HTTP server for static assets (CSS/JS). + +## No photos are shown + +This means that Memories is unable to find any indexed photos in your Nextcloud instance. Make sure you have followed the [configuration steps](../config). Note that Memories indexes photos in the background, so it may take a while for the photos to show up. Ensure that Nextcloud's cron system is properly configured and running. + +## Issues with Docker + +Note: Using the community [Nextcloud Docker](https://hub.docker.com/_/nextcloud/) image or [AIO](https://github.com/nextcloud/all-in-one) are the recommended ways of running Memories. If you are using a different image, you may run into issues. Please file any bugs you find on GitHub. + +### OCC commands fail + +The most common reason for this is a missing interactive TTY. Make sure you run the commands with `-it`: + +```bash +docker exec -it my_nc_container php occ memories:index +# ^^^ <-- this is required +``` + +If you are using Nextcloud AIO, see [this documentation](https://github.com/nextcloud/all-in-one#how-to-run-occ-commands). + +!!! warning "OCCWeb" + + The OCCWeb app is deprecated, and will not work with Memories. You must use the `occ` command line. + +### Usage of tmpfs + +If you are using `tmpfs` (e.g. for the Recognize app), make sure the temp directory is set to executable. With Docker compose, your `docker-compose.yml` should look like this: + +```yaml +app: + ... + tmpfs: + - /tmp:exec +``` + +`tpmfs` is automatically configured when using Nextcloud AIO v7.0.0. + +## Reverse Geocoding (Places) + +You need to have a MySQL / MariaDB / Postgres database for reverse geocoding to work. SQLite is not supported. + +### Planet DB download fails + +If the planet DB download does not complete via the admin interface, you need to use the OCC command line, or increase the connection timeout values for your PHP/HTTP servers. + +```bash +occ memories:places-setup +``` + +### Error: Incorrect string value + +If you get this error, it is likely that your database is not using the `utf8mb4` character set. Since the reverse geocoding database contains characters in various languages, it is necessary to use `utf8mb4` to store them. To fix this, you need to convert your database to use `utf8mb4`. + +## Reset + +If you want to completely reset Memories (e.g. for database trouble), uninstall it from the app store, then run the following SQL on your database to clean up any data. + +```sql +DROP TABLE IF EXISTS oc_memories; +DROP TABLE IF EXISTS oc_memories_livephoto; +DROP TABLE IF EXISTS oc_memories_mapclusters; +DROP TABLE IF EXISTS oc_memories_places; +DROP TABLE IF EXISTS oc_memories_planet; +DROP TABLE IF EXISTS memories_planet_geometry; +DROP INDEX IF EXISTS memories_parent_mimetype ON oc_filecache; /* MySQL */ +DELETE FROM oc_migrations WHERE app='memories'; +``` + +On Postgres, the syntax for dropping the index is: + +```sql +DROP INDEX IF EXISTS memories_parent_mimetype; +``` diff --git a/img/app-dark.svg b/img/app-dark.svg index 4a4a7256..39a0baad 100644 --- a/img/app-dark.svg +++ b/img/app-dark.svg @@ -1,85 +1,19 @@ - + - - - - Camera - - - - - - + + + + + + - - - - - Camera - - - + + + + + + + + + diff --git a/img/app.svg b/img/app.svg index f496a47c..fdc271dc 100644 --- a/img/app.svg +++ b/img/app.svg @@ -1,85 +1,19 @@ - + - - - - Camera - - - - - - + + + + + + - - - - - Camera - - - + + + + + + + + + diff --git a/img/yourmemories.svg b/img/yourmemories.svg deleted file mode 100644 index bae5612e..00000000 --- a/img/yourmemories.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/l10n/af.js b/l10n/af.js index ce0bf42b..2a8a6214 100644 --- a/l10n/af.js +++ b/l10n/af.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Laai af", "Settings" : "Instellings", "Info" : "Inligting", "Folders" : "Vouers", @@ -12,14 +13,18 @@ OC.L10N.register( "Explore" : "Ontdek", "Cancel" : "Kanselleer", "Delete" : "Skrap", - "Download" : "Laai af", "Favorite" : "Gunsteling", "View in folder" : "Vertoon in gids", + "Continue" : "Gaan voort", + "Move" : "Skuif", "General" : "Algemeen", + "Viewer" : "Bekyker", + "Account" : "Rekening", "Close" : "Sluit", "Public link" : "Openbare skakel", "Back" : "Terug", "Save" : "Bewaar", + "Search" : "Soek", "Month" : "Maand", "Day" : "Dag", "Time" : "Tyd", @@ -30,7 +35,6 @@ OC.L10N.register( "Reset" : "Herstel", "Name" : "Naam", "Update" : "Werk by", - "Search" : "Soek", "Loading …" : "Laai …", "Remove" : "Verwyder", "Share link" : "Deel skakel", @@ -40,7 +44,6 @@ OC.L10N.register( "Share" : "Deel", "Previous" : "Vorige", "Next" : "Volgende", - "Continue" : "Gaan voort", "Original" : "Oorspronklik", "Custom" : "Eie", "Value" : "Waarde", diff --git a/l10n/af.json b/l10n/af.json index 74b0f90d..389b9736 100644 --- a/l10n/af.json +++ b/l10n/af.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Laai af", "Settings" : "Instellings", "Info" : "Inligting", "Folders" : "Vouers", @@ -10,14 +11,18 @@ "Explore" : "Ontdek", "Cancel" : "Kanselleer", "Delete" : "Skrap", - "Download" : "Laai af", "Favorite" : "Gunsteling", "View in folder" : "Vertoon in gids", + "Continue" : "Gaan voort", + "Move" : "Skuif", "General" : "Algemeen", + "Viewer" : "Bekyker", + "Account" : "Rekening", "Close" : "Sluit", "Public link" : "Openbare skakel", "Back" : "Terug", "Save" : "Bewaar", + "Search" : "Soek", "Month" : "Maand", "Day" : "Dag", "Time" : "Tyd", @@ -28,7 +33,6 @@ "Reset" : "Herstel", "Name" : "Naam", "Update" : "Werk by", - "Search" : "Soek", "Loading …" : "Laai …", "Remove" : "Verwyder", "Share link" : "Deel skakel", @@ -38,7 +42,6 @@ "Share" : "Deel", "Previous" : "Vorige", "Next" : "Volgende", - "Continue" : "Gaan voort", "Original" : "Oorspronklik", "Custom" : "Eie", "Value" : "Waarde", diff --git a/l10n/ar.js b/l10n/ar.js index 109e803e..a89298c1 100644 --- a/l10n/ar.js +++ b/l10n/ar.js @@ -1,63 +1,488 @@ OC.L10N.register( "memories", { + "Download" : "تنزيل", + "Memories" : "ذكريات Memories", + "Fast, modern and advanced photo management suite" : "حزمة إدارة صور سريعة وحديثة ومتقدمة", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# تطبيق Memories: تطبيق إدارة الصور بنكست كلود\n\nتطبيق Memories هو حل إدارة الصور * مع مجموعة عناصر مدمجة * بنكست كلود مع ميزات متقدمة تشمل:\n\n- ** 📸 التسلسل الزمني **: ترتيب الصور ومقاطع الفيديو حسب تاريخ الالتقاط ، وتحليلها بواسطة بيانات Exif.\n- ** ⏪ الرجوع للخلف**: انتقل إلى أي وقت في الماضي على الفور واسترجع ذكرياتك.\n- ** 🤖 الوسم بالذكاء الأصطناعي **: جمع الصور جماعية الأشخاص والأشياء، مدعومة من قبل [recognize] (https://github.com/nextcloud/recognize) و [facerecognition] (https://github.com/matiasdelellis/facerecognition ).\n- ** 🖼️ الألبومات **: أنشئ ألبومات لتجميع الصور ومقاطع الفيديو معًا. ثم شارك هذه الألبومات مع الآخرين.\n- ** 🫱🏻‍🫲🏻 المشاركة الخارجية **: شارك الصور ومقاطع الفيديو مع أشخاص خارج مثيل نكست كلود الخاص بك.\n- ** 📱 دعم الهاتف **: العمل من أي جهاز، من أي شكل وحجم من خلال تطبيق الويب.\n- ** ✏️ تحرير البيانات الوصفية **: تحرير التواريخ والبيانات الوصفية الأخرى على الصور بسرعة وبشكل مجمّع.\n- ** 📦 الأرشفة **: قم بتخزين الصور التي لا تريد أن تراها في تسلسلك الزمني في مجلد منفصل.\n- ** 📹 تحويل ترميز الفيديو **: تحويل مقاطع الفيديو واستخدام بروتوكول HLS لتحقيق أقصى أداء.\n- ** 🗺️ الخريطة **: اعرض صورك على الخريطة، مع تمييزها بترميز جغرافي عكسي دقيق.\n- ** 📦 الانتقال**: الانتقال بسهولة من Nextcloud Photos و Google Takeout.\n- ** ⚡️ الأداء **: قم بفعل كل هذا بسرعة كبيرة.\n\n## 🚀 التثبيت\n\n1. قم بتثبيت التطبيق من متجر تطبيقات نكست كلود(جرب نسخة تجريبية[هنا] (https://demo.memories.gallery/apps/memories/)).\n1. نفذ [خطوات التكوين] الموصى بها (https://memories.gallery/config/).\n1. قم بتشغيل \"php occ memories:index\" لإنشاء فهارس بيانات وصفية للصور الموجودة.\n1. افتح 📷 تطبيق Memories في نكست كلاود وقم بتعيين الدليل الذي يحتوي على صورك.", "Settings" : "الإعدادات", + "People (Recognize)" : "الأشخاص (التعرف)", + "People" : "الناس", + "People (Face Recognition)" : "الأشخاص (التعرف على الوجه)", "Info" : "معلومات", "Timeline" : "الجدول الزمني", "Folders" : "المجلدات", "Favorites" : "المفضلات", "Videos" : "فيديوهات", + "Albums" : "الألبومات", "Archive" : "الأرشيف", + "On this day" : "في هذا اليوم", + "Places" : "أماكن", + "Map" : "خريطة", "Tags" : "الوسوم", + "View all" : "عرض الكل", + "Recognize" : "التعرف على", + "Face Recognition" : "التعرُّف علي الوجوه", + "A better photos experience awaits you" : "تجربة صور أفضل في انتظارك", + "Choose the root folder of your timeline to begin" : "اختر مجلد جذر لبدء تسلسلك الزمني", + "Continue to Memories" : "تابع إلى Memories", + "Choose again" : "اختر مرة أخرى", + "Click here to start" : "اضغط هنا للبدأ", + "You can always change this later in settings" : "يمكنك دائمًا تغيير هذا لاحقًا من الإعدادات", + "If you just installed Memories, visit the admin panel first." : "إذا كنت علي وشك القيام بتثبيت تطبيق Memories، فقم بالرجوع إلي لوحة المسئول أولاً.", + "Choose the root of your timeline" : "إختَر الدليل الأساسي لتسلسلك الزمني ", + "The selected folder does not seem to be valid. Try again." : "يبدو أن المجلد المحدد غير صالح. حاول ثانية.", + "No photos were found in the selected folder." : "لم يتم إيجاد صور فى المجلد المختار.", + "This can happen because your media is still indexing." : "يمكن أن يحدث هذا لأن الوسائط الخاصة بك لا تزال قيد الفهرسة.", + "Visit the admin panel to make sure Memories is configured correctly." : "انتقل إلي لوحة المسئول للتأكد من ضبط وتهيئة الذكريات بشكل صحيح.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["تم العثور على {n} عناصر في {path}","تم العثور على {n} عنصر في {path}","تم العثور على {n} عناصر في {path}","تم العثور على {n} عناصر في {path}","تم العثور على {n} عناصر في {path}","تم العثور على {n} عناصر في {path}"], + "Metadata" : "البيانات الوصفية metadata", "Edit" : "تعديل", + "Failed to load metadata" : "تعذّر تحميل البيانات الوصفية", + "No coordinates" : "لا توجد إحداثيات", + "Click edit to set location" : "إضغط \"تحرير\" لتعيين الموقع", "Photos" : "الصور", + "Explore" : "استكشاف", "Cancel" : "إلغاء", "Delete" : "إزالة", - "Download" : "تنزيل", + "Remove from album" : "إزالة من الألبوم", "Favorite" : "المفضلة", + "Unarchive" : "غير مؤرشفة", + "Edit metadata" : "تحرير بيانات التعريف الوصفية", "View in folder" : "اعرض في المجلد", + "Move to folder" : "انتقل إلى المجلد", + "Add to album" : "إضِف إلى ألبوم", + "Move to person" : "نقل إلى فئة شخص", + "Remove from person" : "إزالة من شخصٍ", + "You are about to download a large number of files." : "أنت على وشك تنزيل عدد كبير من الملفات.", + "Continue" : "متابعة", + "You are about to delete a large number of files" : "أنت على وشك حذف عدد كبير من الملفات", + "Failed to delete files" : "فشل في حذف الملفات", + "Move" : "نقل", + "You are about to move a large number of files" : "أنت على وشك نقل عدد كبير من الملفات", + "You must enable \"Mark person in preview\" to use this feature" : "يجب عليك تمكين \"تمييز شخص في المعاينة\" لاستخدام هذه الميزة", + "Only user \"{user}\" can update this person" : "يمكن للمستخدم \"{user}\" فقط تحديث هذا الشخص", + "_{n} selected_::_{n} selected_" : ["تم تحديد {n}","تم تحديد {n}","تم تحديد {n}","تم تحديد {n}","تم تحديد {n}","تم تحديد {n}"], + "Memories Settings" : "إعدادات \"الذكريات\" Memories", "General" : "العامة", + "Timeline Path" : "مسار الخط الزمني timeline", + "Square grid mode" : "وضع المربع الشبكي ", + "Show past photos on top of timeline" : "أظهِِر الصِّوَر السابقة أعلى الخط الزمني", + "Viewer" : "العارض Viewer", + "Autoplay Live Photos" : "التشغيل التلقائي للصور الحيّة", + "Load full size image on zoom" : "تحميل الصورة بالحجم الكامل عند التكبير", + "Always load full size image (not recommended)" : "حمل الصورة بالحجم الكامل دائما (غير موصي به)", + "Show full file path in sidebar" : "أظهِر المسار الكامل للملف في الشريط الجانبي", + "Account" : "الحساب", + "Logged in as {user}" : "تسجيل الدخول بصفته {مستخدم}", + "Sign out" : "تسجيل الخروج", + "Device Folders" : "مجلدات الجهاز", + "Local folders to include in the timeline view" : "المجلدات المحلية التي يتم تضمينها في عرض الجدول الزمني", + "Folders Path" : "مسار المجلدات", + "Show hidden folders" : "أظهِر المجلدات المَخفِيّة", + "Sort folders oldest-first" : "رتّب المجلدات من الأقدم للأحدث", + "Sort albums oldest-first" : "رتِّب الألبومات من الأقدم إلى الأحدث", + "Choose Timeline Paths" : "اختر مسارات التسلسل الزمني", + "Choose the root for the folders view" : "إختَر الدليل الأساسي لعرض المجلدات", + "Are you sure you want to log out {user}?" : "هل أنت متأكد من أنك تريد تسجيل الخروج {user}؟", "Close" : "إغلاق", + "{photoCount} photos" : "{photoCount} صور", + "Failed to load some photos" : "تعذّر تحميل بعض الصِّور", + "Failed to update setting" : "تعذّر تحديث الإعدادات", + "Albums support is enabled through the Photos app." : "دعم الألبومات مُمَكَّنٌ عن طريق تطبيق الصور Photos app.", + "Albums are disabled because the Photos app is not available." : "الألبومات مُعطّلة بسبب أن تطبيق الصور غير موجود.", + "Recognize is installed and enabled for face recognition." : "تطبيق \"التعرُّف\" Recognize للتعرٌّف على الوجوه مُثبّت و مُمكّن .", + "Recognize is installed but not enabled for face recognition." : "تطبيق \"التعرُّف\" Recognize للتعرٌّف على الوجوه مُثبّت لكنه غير مُمكّن .", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "تطبيق \"التعرُّف\" Recognize للتعرٌّف على الوجوه غير مُثبّت. و بالتالي، فإن التعرُّف على الوجوه و وَسْم الأشياء غير مُتاح. ", + "Face Recognition is installed and enabled" : "تطبيق \"التعرُّف على الوجوه\" Face Recognition مُثبّت و مُمكّن", + "Preview generator is installed and enabled. Additional configuration may still be required." : "\"مُولِّد المعاينات Preview generator مُثبّت و مُمكّن. بعض الإعدادات الإضافية يمكن أن تكون لازمةً.", + "Preview generator is not installed and configured. This may make Memories very slow." : "\"مُولِّد المعاينات Preview generator غير مُثبّت و لا مُهيّأ. هذا قد يتسبب في تبطئة \"تطبيق الذكريات\" Mempries بشكل كبير.", + "Recommended Apps" : "تطبيقات مُوصىً بها", + "Path to packaged exiftool binary" : "مسار الحزمة الثنائية exiftool", + "You need perl only if the packaged exiftool binary does not work for some reason." : "أنت بحاجة فقط إلى لغة البرمجة perl إذا كانت حزمة exiftool الثنائية لا تعمل لسبب ما.", + "Use system perl (only if exiftool binary does not work)" : "استخدام نظام perl (فقط إذا لم تعمل حزمة exiftool الثنائية)", + "EXIF Extraction" : "استخراج EXIF", + "You can configure the enabled Nextcloud preview providers below." : "يمكنك ضبط مزودي معاينة نكست كلود الممكّنة أدناه.", + "If you are using Imaginary for preview generation, you can ignore this section." : "إذا كنت تستخدم تطبيق Imaginary لإنشاء المعاينة فيمكنك تجاهل هذا الجزء.", + "To enable RAW support, install the Camera RAW Previews app." : "لتمكين دعم تنسيق RAW، قم بتثبيت تطبيق Camera RAW Previews.", + "Documentation." : "التوثيق.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick متوفرة [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick غير متوفرة.", + "Image editing will not work correctly." : "تحرير الصور لن يعمل بشكل صحيح.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "توليد مُصغَّرات الصِّوَر thumbnails قد لا يعمل مع بعض التنسيقات مثل (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "سيتم إنشاء مُصَغَّرَات الصِّوَر لمقاطع الفيديو باستخدام هذا البُريْمِج.", + "Thumbnail generation may not work for videos." : "توليد مُصغَّرات الصِّوَر thumbnails قد لا يعمل لبعض مقاطع الفيديو.", + "The following MIME types are configured for preview generation." : "تم إعداد أنواع تنسيقات MIME التالية لإنشاء المعاينة.", + "Max preview size (trade-off between quality and storage requirements)." : "أقصى حجم للمعاينة (الأولوية النسبية بين متطلبات الجودة والتخزين).", + "Max memory for preview generation (MB)" : "الحد الأقصى للذاكرة لإنشاء المعاينة (ميغا بايت)", + "Max size of preview files (MB)" : "الحجم الأقصى لملفات المعاينة (ميغا بايت)", + "File Support" : "دعم الملف", + "Images (JPEG, PNG, GIF, BMP)" : "الصور (تسيق JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "تنسيق الصور HEIC (Imagick) ", + "TIFF (Imagick)" : "تنسيق ملف الصور TIFF ( Imagick) ", + "Videos (ffmpeg)" : "فيديوهات (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "شكراً لاختياركم منصة نكست كلاود و تطبيق الذكريات Memories لحفظ بياناتكم الثمينة. ", + "Memories is very feature rich and setting it up properly can take some time." : "تطبيق الذكريات Memories يحوي الكثير من الخصائص و قد يستغرق إعداده بالشكل الصحيح بعض الوقت.", + "If you just installed Memories, make sure you read the getting started guide:" : "إذا كنت قد قمت لتوِّك بتنصيب تطبيق الذكريات Memories فلا تنسَ أن تقرأ دليل بدء العمل getting started guide:", + "External Link" : "رابط خارجي", + "In case you run into any issues or bugs, you can get help through several channels." : "في حال صادفت أي إشكال أو خطأ، يمكنك الحصول على العون و الدعم عبر عدة قنوات.", + "Memories is a completely free and open source app under active development." : "تطبيق الذكريات Memories هو تطبيق مجاني و مفتوح المصدر بالكامل و هو تحت التطوير المستمر.", + "You can contribute in several ways. See the project page for more details:" : "يمكنك المساهمة بعدة طرق. طالع صفحة المشروع لمزيد التفاصيل:", + "Help & Support" : "عون و دعم", + "{n} media files have been indexed" : "تمّت فهرسة {n} ملفات وسائط", + "Automatic Indexing status: {status}" : "حالة الفهرسة التلقائية: {status}", + "Last index job was run {t} seconds ago." : "تمّ تشغيل آخر مهمة فهرسة منذ {t} ثواني.", + "It took {t} seconds to complete." : "استغرق الاكتمال {t} ثواني.", + "It is still running or was interrupted." : "لا يزال قيد التشغيل أو تمّت مقاطعته.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "يبدو أنه قد مرت أكثر من ساعة منذ تشغيل آخر وظيفة في الفهرس. تأكد من تكوين Nextcloud cron بشكل صحيح.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "الوِحدَة (OC_DEFAULT_MODULE) تدعم فقط التشفير من جانب الخادم، ولكن تمّ تمكين وحدة تشفير encryption module أخرى.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "يتم إنشاء فهارس EXIF والتحقق منها كمهمة دورية في الخلفية. كن حذرًا عند تحديد أي شيء بخلاف الفهرسة التلقائية. على سبيل المثال، قد يتسبب تعيين الفهرسة على مجلدات التسلسل الزمني فقط في حدوث تأخير في إتاحة الوسائط متاحة للمستخدمين نظرًا لأن المستخدم يقوم بتهيئة التسلسل الزمني فقط بعد دخوله.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "المجلدات التي تحوي ملفات باسم \".nomedia\" أو \".nomedia\" تستثنى دائماً من الفهرسة", + "Index all media automatically (recommended)" : "فهرسة جميع الوسائط تلقائيًا (موصى به)", + "Index per-user timeline folders (not recommended)" : "فهرسة مجلدات التسلسل الزمني لكل مستخدم (لا يوصي به)", + "Index a fixed relative path" : "فهرسة مسار نسبي ثابت", + "Disable background indexing" : "تعطيل تنفيذ الفهرسة فى الخلفية", + "Indexing path (relative, all users)" : "مسار الفهرسة (ذو صلة، جميع المستخدمين)", + "For advanced usage, perform a run of indexing by running:" : "للاستخدام المتقدم، قم بإجراء تشغيل الفهرسة عن طريق تشغيل:", + "Run index in parallel with 4 threads:" : "قم بتنفيذ الفهرسة بالتوازي على 4 نظمات threads:", + "Force re-indexing of all files:" : "فرض إعادة فهرسة جميع الملفات:", + "You can limit indexing by user and/or folder:" : "يمكنك تقييد الفهرسة حسب المستخدم و/أو المجلد:", + "Clear all existing index tables:" : "محو كافة جداول الفهرس الموجودة:", + "Media Indexing" : "فهرسة الوسائط", + "HTTPS is enabled" : "تمّ تمكين HTTPS", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "أنت تدخل إلى هذه الصفحة من خلال سياق غير آمن. لا تتوفر العديد من واجهات برمجة التطبيقات للمتصفح، مما سيجعل تطبيق Memories بطيئاً للغاية. قم بتمكين HTTPS على خادومك لتحسين الأداء.", + "HTTP/2 or HTTP/3 is enabled" : "تمّ تمكين HTTP/2 أو HTTP/3", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "يُوصَى بشدة باستخدام HTTP/2 أو HTTP/3 (تم اكتشاف {httpVer})", + "Performance" : "سرعة الأداء", "Unknown" : "غير معروف", + "Database is populated with {n} geometries." : "يتم ملء قاعدة البيانات بـ {n} أشكال الهندسية.", + "Geometry table has not been created." : "لم يتم إنشاء جدول الهندسة.", + "Looks like the planet data is incomplete." : "يبدو أن بيانات الكوكب غير كاملة.", + "Reverse geocoding has not been configured ({status})." : "لم يتم تكوين الترميز الجغرافي العكسي ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "يدعم تطبيق Memories الترميز الجغرافي العكسي في وضع عدم الاتصال باستخدام بيانات من تطبيق خرائط OpenStreetMaps على MySQL و Postgres", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "تحتاج إلى تنزيل بيانات الكوكب في قاعدة البيانات الخاصة بك. هذا موصى به للغاية حيث أنها منخفضة العبء ", + "If the button below does not work for importing the planet data, use the following command:" : "إذا كان الزر أدناه لا يعمل لاستيراد بيانات الكوكب، فاستخدم الأمر التالي:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "ملاحظة: يتم تخزين البيانات الهندسية في جدول memories_planet_geometry، بدون بادئة.", + "Download planet database" : "تنزيل قاعدة بيانات الكوكب planet database", + "Reverse Geocoding" : "الترميز الجغرافي العكسي", + "Geometry support was not detected in your database" : "لم يتم اكتشاف دعم الهندسة في قاعدة البيانات الخاصة بك", + "MySQL-like geometry support was detected " : "تم اكتشاف الدعم الهندسي MySQL-like", + "Postgres native geometry support was detected" : "تمّ اكتشاف نظام إدارة قواعد البيانات Postgres للدعم المحلي للهندسة ", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "قاعدة البيانات قد تم إعدادها بالفعل. هل أنت متأكد أنك تريد إعادة تنزيل بيانات الكوكب؟", + "You are about to download the planet database. This may take a while." : "أنت على وشك تنزيل قاعدة بيانات الكوكب. هذا قد يستغرق بعض الوقت.", + "This may also cause all photos to be re-indexed!" : "قد يتسبب هذا أيضًا في إعادة فهرسة جميع الصور!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "يوفر تحويل الترميز المباشر دفقًا متكيفًا لمقاطع الفيديو باستخدام بروتوكول HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "لاحظ أن هذا قد يكون بالغ الحدة علي وحدة المعالجة المركزية دون تسريع الأجهزة، ولن يتم استخدام تحويل الترميز للتخزين الخارجي.", + "Enable Transcoding" : "تمكين تحويل الترميز", + "ffmpeg path" : "مسار ffmpeg", + "ffprobe path" : "مسار ffprobe", + "Global default video quality (user may override)" : "جودة الفيديو العامة الافتراضية (يمكن للمستخدم تجاوزها)", + "Auto (adaptive transcode)" : "تلقائي (تحويل ترميز متكيف)", + "Original (transcode with max quality)" : "أصلي (تحويل الترميز بأقصى جودة)", + "Direct (original video file without transcode)" : "مباشر (ملف فيديو أصلي بدون تحويل الترميز)", + "Video Streaming" : "بث الفيديو ", + "You must first make sure the correct drivers are installed before configuring acceleration." : "يجب عليك التأكد أولاً من تثبيت برامج التشغيل الصحيحة قبل تهيئة التسريع.", + "Make sure you test hardware acceleration with various options after enabling." : "تأكد من اختبار تسريع الأجهزة بخيارات متنوعة بعد التمكين.", + "Do not enable multiple types of hardware acceleration simultaneously." : "لا تقم بتمكين أنواع متعددة من تسريع الأجهزة في وقت واحد.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "يمكن استخدام معالجات Intel التي تدعم مزامنة الفيديو السريعة (QSV) وكذلك بعض وحدات معالجة الرسوم AMD لتحويل الترميز باستخدام تسريع VA-API.", + "For more details on driver installation, check the documentation:" : "لمزيد من التفاصيل حول تثبيت برنامج التشغيل، راجع الوثائق:", + "Enable acceleration with VA-API" : "تمكين التسريع باستخدام VA-API", + "Enable low-power mode (QSV only)" : "تمكين وضع الطاقة المنخفضة ( QSV فقط)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "يمكن استخدام وحدات معالجة الرسوم من النوع NVIDIA لتحويل الترميز باستخدام مُرَمِّز NVENC مع برامج التشغيل المناسبة.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "بناء على إصدارات SDK و ffmpeg المثبتة، تحتاج إلى تحديد معداد لاستخدامه", + "No automated tests are available for NVIDIA acceleration." : "لا توجد اختبارات آلية متاحة لتسريع معالجات الرسوم NVIDIA.", + "Enable acceleration with NVENC" : "تمكين التسريع مع مرمز NVENC", + "Enable NVENC Temporal AQ" : "تمكين التكمية التكيفية المؤقتة لمرمز NVENC", + "NPP scaler" : "معداد NPP", + "CUDA scaler" : "معدّاد CUDA ", + "not recommended" : "لا يُوصى به", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "نظرًا لوجود خطأ في بعض برامج تشغيل الأجهزة، فقد تظهر مقاطع الفيديو في اتجاهات غير صحيحة عند البث. يمكن حلّ هذا المشكل في بعض الحالات عن طريق تدوير الفيديو على المُسرِّع accelerator.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "قم بتمكين الخيار التالي فقط إذا كانت لديك مقاطع فيديو تظهر في غير الاتجاه الصحيح أثناء التشغيل.", + "Enable streaming transpose workaround" : "تمكين حل تبديل البث streaming transpose.", + "HW Acceleration" : "التسريع العتادي HW Acceleration", + "VA-API device ({dev}) is readable" : "جهاز VA-API ({dev}) قابل للقراءة", + "VA-API device ({dev}) not found" : "لم يتم العثور علي جهاز VA-API ({dev})", + "VA-API device ({dev}) has incorrect permissions" : "جهاز VA-API ({dev}) لديه أذونات غير صحيحة", + "VA-API device status: {status}" : "حالة جهاز VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "يستخدم تطبيق Memories محول الترميز transcoder ـ go-vod. ويمكنك تشغيل محول الترميز go-vod خارجيًا (على سبيل المثال في حاوية دوكر Docker منفصلة لتسريع الأجهزة) أو استخدام محول الترميز المدمج. لاستخدام محول ترميز خارجي، قم بتمكين الخيار التالي واتبع التعليمات الواردة في الوثائق:", + "Enable external transcoder (go-vod)" : "تمكين محول الترميز الخارجي (go-vod)", + "Binary path (local only)" : "المسار الثنائي (محلي فقط)", + "Bind address (local only)" : "عنوان الاقتران/ الربط (محلي فقط)", + "Connection address (same as bind if local)" : "عنوان الاتصال (نفس عنوان الاقتران إذا كان محليّاً)", + "Transcoder" : "مُحوِّل Transcoder", + "Template" : "قالب", + "No items" : "لا يوجد أي عنصر", + "Shared by {user}" : "تمتّ مشاركتها من قِبَل {user}", + "_{n} item_::_{n} items_" : ["{n} عنصر","{n} عنصر","{n} عنصر","{n} عنصر","{n} عنصر","{n} عنصر"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها"], + "Add people or groups who can edit your album" : "إضِف الأشخاص أو المجموعات التي يحق لها تعديل ألبومك", + "Search for collaborators" : "البحث عن متعاونين", + "Search people or groups" : "البحث عن أشخاص أو مجموعات", + "Add {collaboratorLabel} to the collaborators list" : "أضِف {collaboratorLabel} إلى قائمة المتعاونين", + "No collaborators available" : "لا يوجد أي متعاونين", + "Remove {collaboratorLabel} from the collaborators list" : "حذف {collaboratorLabel} من قائمة المتعاونين", + "Copy the public link" : "إنسخ الرابط العمومي", + "Public link copied!" : "تم نسخ الرابط العام", "Copy public link" : "نسخ الرابط العام", + "Delete the public link" : "حذف الرابط العمومي", + "Share via public link" : "شارك عبر الرابط العمومي", + "Failed to fetch collaborators list." : "تعذّر جلب قائمة المتعاونين.", + "Public link" : "رابط عمومي", + "Failed to fetch album." : "تعذّر جلب الألبوم", + "Failed to update album." : "تعذّر تحديث الألبوم.", + "Create new album" : "إنشاء ألبوم جديد", + "Edit album details" : "تعديل تفاصيل الألبوم", + "New album" : "ألبوم جديد", + "Could not load the selected album" : "تعذر تحميل الألبوم المحدد", + "Remove Album" : "إزالة الألبوم", + "Are you sure you want to permanently remove album \"{name}\"?" : "هل أنت متأكد أنك تريد حذف الألبوم \"{name}\" نهائيًا؟", + "Failed to delete {name}." : "فشل في حذف {name}.", + "Name of the album" : "اسم الألبوم", + "Location of the album" : "موقع الألبوم", + "Go back to the previous view." : "عُد إلى العرض السابق.", "Back" : "العودة", + "Go to the add collaborators view." : "إذهب إلى عرض إضافة المتعاونين", + "Add collaborators" : "أضف المتعاونين", + "Back to the new album form." : "عُد إلى نموذج الألبوم الجديد.", "Save" : "Save", + "Create album" : "أنشِيء ألبوماً", + "Invalid album name; should not contain any slashes." : "اسم الألبوم غير صالح. يجب ألا يحتوي على أي خطوط مائلة.", + "Search" : "البحث", + "Create new album." : "إنشاء ألبوم جديد", + "Save changes" : "حفظ التعديلات", + "_Removed from {n} album_::_Removed from {n} albums_" : ["تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم"], + "Share Album" : "مشاركة الألبوم", + "Save collaborators for this album." : "حفظ المتعاونين لهذا الألبوم", + "shared by {owner}" : "تمّت مشاركته من قِبَل {owner}", + "_%n item_::_%n items_" : ["%n عناصر","%n عنصر","%n عناصر","%n عناصر","%n عناصر","%n عناصر"], + "Newest" : "الأحدث", + "Year" : "السنة", "Month" : "شهر", "Day" : "اليوم", "Time" : "إلى وقت", "Hour" : "الساعة", + "Minute" : "دقيقة", + "Oldest" : "الأقدم", + "Invalid Date" : "تاريخ غير صحيح", + "Newest date is older than oldest date" : "أحدث تاريخ هو أقدم من أقدم تاريخ", "Title" : "العنوان", "Description" : "الوصف", "Label" : "تسمية", + "Camera Make" : "طراز الكاميرا", + "Camera Model" : "موديل الكاميرا", + "Lens Model" : "موديل العدسة", "Copyright" : "حقوق التأليف", + "Empty" : "فارغ", + "Unchanged" : "دون تغيير", "Reset" : "إعادة الضبط", + "Remove location" : "إزالة الموقع", + "Search location / landmark" : "البحث عن مواقع / معالم", + "Failed to search for location with Nominatim." : "فشل البحث عن الموقع باستخدام تطبيق الخرائط Nominatim.", + "Date / Time" : "التاريخ / الوقت", + "Collaborative Tags" : "وسوم تشاركية", + "EXIF Fields" : "حقول EXIF", + "Geolocation" : "الموقع الجغرافي", + "Failed to load metadata for {n} photos." : "تعذّر تحميل البيانات الوصفية لـ {n} صور.", + "{n} photos cannot be edited (permissions error)." : "{n} صور لا يمكن تحريرها (حطأ في الأذونات).", + "Remove person" : "حذف شخص", + "Are you sure you want to remove {name}?" : "هل أنت متأكد أنك تريد إزالة {name}؟", + "Only user \"{user}\" can delete this person" : "يمكن للمستخدم \"{user}\" فقط حذف هذا الشخص", + "Rename person" : "تغيير اسم شخص", "Name" : "الاسم", "Update" : "تحديث", - "Search" : "البحث", + "Failed to rename {oldName} to {name}." : "فشل في تغيير تسمية {oldName} إلى {name}.", "Loading …" : "جاري التحميل …", + "Enter name of the new face" : "أدخل اسم الوجه الجديد", + "Failed to create face" : "فشل في إنشاء الوجه", + "Merge {name} with person" : "إدمِج {name} في شخصٍ", + "Merge faces" : "دمج الوجوه", + "Merge {name} with {newName}?" : "دمج {name} مع {newName}؟", + "unnamed person" : "شخصٌ لم بُعطَ اسمه", + "Too many failures, aborting" : "إخفاقات كثيرة، سيتم الخروج", + "Error while moving {basename}" : "خطأٌ أثناء نقل {basename}", + "Failed to move {name}." : "فشل في نقل {name}.", + "Move selected photos to person" : "نقُل الصور المحددة إلى فئة شخص", + "Move the selected photos to {target}?" : "نقل الصور المحددة إلى {target}؟", + "An error occurred while moving photos from {name}." : "حدث خطأ أثناء نقل الصور من {name}.", + "Choose a folder" : "اختر مجلدًا", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["تم نقل {n} عناصر إلى المجلد","تم نقل {n} عنصر إلى المجلد","تم نقل {n} عناصر إلى المجلد","تم نقل {n} عناصر إلى المجلد","تم نقل {n} عناصر إلى المجلد","تم نقل {n} عناصر إلى المجلد"], "Remove" : "حذف", + "Add Path" : "إضافة مسار", + "Add a root to your timeline" : "أضف دليل أساسي إلى تسلسلك الزمني", + "Link Sharing" : "مشاركة الرابط", + "You cannot share the root folder" : "لا يمكنك مشاركة مجلد الدليل الأساسي", + "Public link shares are available to people outside Nextcloud." : "المشاركات عبر الرابط العام متاحة للأشخاص من خارج نكست كلاود", + "You may create or update permissions on public links using the sidebar." : "يمكنك إنشاء و تحديث أذونات الروابط العامة باستخدام الشريط الجانبي.", + "Click a link to copy to clipboard." : "أنقُر علي الرابط لنسخه إلى الحافظة.", "Share link" : "مشاركة الرابط", + "Create Link" : "أنشِيءْ رابطاً", "Refresh" : "إنعاش", "Password protected" : "محمي بكلمة السر", + "Expires" : "تنتهي صلاحيته فى", + "Editable" : "قابل للتعديل", "Read only" : "القراءة فقط", + "Link copied to clipboard" : "تمّ نسخ الرابط إلى الحافظة", + "Share File" : "مشاركة ملف", + "Reduced Size" : "حجم مصغر", + "Share a lower resolution image preview" : "مشاركة معاينة صورة منخفضة التباين", + "High Resolution" : "تباينٌ عالٍ", + "Share the video as a high quality MOV" : "شارك الفيديو بتنسيق MOV عالي الجودة", + "Share the image as a high quality JPEG" : "شارك الصورة بتنسيق JPEG عالي الجودة", + "Original File" : "الملف الأصلي", + "Share the original image / video file" : "شارك ملف الصورة أو الفيديو الأصلي", + "Public Link" : "رابط عام", + "Share an external Nextcloud link" : "شارك رابط نكست كلاود خارجي", + "Failed to download file" : "تعذّر تنزيل الملف", + "Cannot share this type of data" : "لا يمكن مشاركة هذا النوع من البيانات", "Sort by date" : "Order by date", "Sort by name" : "Order by name", + "Share album" : "مشاركة الألبوم", + "Download album" : "تنزيل الألبوم", + "Nothing to show here" : "لا يوجد شيء لِيُعرَض هُنا", + "Unassigned faces" : "أوجه غير معينة", + "Merge with different person" : "الدمج مع شخص آخر", + "Mark person in preview" : "وضع علامة على الشخص في المعاينة", + "Unnamed person" : "شخص لم يذكر اسمه", + "Folder View" : "عرض المجلد", + "Timeline View" : "عرض التسلسل الزمني", + "Share folder" : "مشاركة مُجلّد", + "Move left" : "نقُل لجهة اليسار", + "Move right" : "نقل لجهة اليمين", + "Image saved successfully" : "تم حفظ الصورة بنجاح", + "Error saving image" : "خطأ في حفظ الصور", + "Unsaved changes" : "تغييرات لم يتم حفظها", + "Drop changes" : "إسقاط التغييرات", "Share" : "مشاركة", + "Play Live Photo" : "تشغيل صور Live Photo", + "Download Video" : "تنزيل الفيديو", + "Slideshow" : "عرض الشرائح", "Previous" : "السابق", "Next" : "التالي", - "Continue" : "متابعة", + "Editing is currently disabled for Live Photos" : "التحرير معطل حاليّاً بالنسبة لصور Live Photos", + "Are you sure you want to delete?" : "هل أنت متأكد أنك تريد الحذف؟", + "Failed to delete photo" : "فشل في حذف الصورة", + "{name} binary exists and is executable." : "الملف الثنائي {name} موجود وقابل للتنفيذ.", + "{name} binary not found." : "{name} الملف الثنائي غير موجود.", + "{name} binary is not executable." : "الملف الثنائي {name} غير قابل للتنفيذ.", + "{name} failed test: {info}." : "فشل اختبار {name}: {info}.", + "{name} binary exists and is usable ({info})." : "الملف الثنائي {name} موجود وقابل للاستخدام ({info}).", + "{name} binary status: {status}." : "{name} حالة الملف الثنائي: {status}.", + "Save as" : "حفظ كـ", + "All changes will be lost." : "ستفقد كل التغييرات.", + "Are you sure you want to continue?" : "هل أنت متأكد أنك ترغب بالاستمرار؟", "Undo" : "تراجع", "Redo" : "إعادة", + "Show original image" : "أعرُض الصور الأصلية", + "Zoom in" : "تكبير", + "Zoom out" : "تصغير", + "Toggle zoom menu" : "تبديل قائمة التكبير و التصغير", + "Adjust" : "إضبِط", + "Fine-tune" : "مُناغمة file-tune", + "Filters" : "فلاتر", + "Watermark" : "علامة مائية", + "Draw" : "إرسم", + "Resize" : "غيّر الحجم", + "Invalid image." : "صورة غير صالحة.", + "Error while uploading the image." : "خطأ أثناء رفع الصورة.", + "are not images" : "ليست صوراً", + "is not an image" : "ليست صورةً", + "to be uploaded" : "ليتم تحميلها", + "Crop" : "قَصْقِصْ", "Original" : "أصلي", "Custom" : "مخصّص", + "Square" : "مُربّع", + "Landscape" : "وضع أُفُقي", + "Portrait" : "وضع رأسي", + "Ellipse" : "بيضاوي", + "Classic TV" : "تلفاز كلاسيكي", + "CinemaScope" : "إنفساح شاشة السينما CinemaScope", + "Arrow" : "سهم", + "Blur" : "تضبيب Blur", + "Brightness" : "سطوع Brightness", + "Contrast" : "تباين Contrast", + "Un-flip X" : "لا انعكاس سيني Un-flip X", + "Flip X" : "إنعكاس سيني Flip X", + "Un-flip Y" : "إنعكاس صادي Flip Y", + "Flip Y" : "لا انعكاس صادي Un-flip Y", + "HSV" : "HSV", + "Hue" : "تدرُّج لوني Hue", + "Saturation" : "تشبُّع saturation", "Value" : "القيمة", + "Image" : "صورة", + "Importing …" : "إستيراد ...", + "+ Add image" : "+ أضِف صورةً", "Line" : "خط", + "Pen" : "قلم", + "Polygon" : "مُضلّع", + "Sides" : "الجوانب", + "Rectangle" : "مستطيل", + "Corner Radius" : "نصف قطر الزاوية Corner Radius", + "Width in pixels" : "العرض بالبكسل", + "Height in pixels" : "الارتفاع بالبكسل", + "Toggle ratio lock" : "تبديل قُفْل النِّسبَة ratio lock", + "Reset to original image size" : "إرجاع الصورة لحجمها الأصلي", + "Rotate" : "تدوير", "Text" : "نص", + "Text spacing" : "تباعد النص", + "Text alignment" : "محاذاة النص", + "Font family" : "عائلة الخطوط", "Size" : "الحجم", + "Letter spacing" : "تباعد الحروف", + "Line height" : "إرتفاع السطر", + "Warmth" : "الشِّدَّة warmth", + "+ Add watermark" : "+ أضِف العلامة المائية", + "Choose watermark type" : "إختر نوع العلامة المائية", + "Upload watermark" : "رفع علامة مائية", + "Add as text" : "أضِف كنصٍّ", + "Padding" : "الحشو padding", + "Shadow" : "تظليل shadow", + "Horizontal" : "أفُقِي", + "Vertical" : "رأسِي", + "Opacity" : "التعتيم opacity", "Position" : "الموقع", + "Stroke" : "شطب stroke", + "Save image as" : "حفظ الصورة باسم", + "Extension" : "الامتداد", "Name is required." : "حقل الاسم مطلوب", "Quality" : "الجودة", + "Saved image size (width x height)" : "حجم الصورة المحفوظة (العرض × الارتفاع)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "لاحظ أن مساحة الاقتصاص crop المحددة أقل من الحجم المطبق مما قد يتسبب في انخفاض الجودة", + "Actual size (100%)" : "الحجم الفعلي (100%)", + "Fit size" : "حجم ملائم fit size", + "Transcoding failed, check Nextcloud logs." : "فشل في تحويل الترميز Transcoding. راجع سجل الحركات log في نكست كلاود.", "Direct" : "مباشر", - "Auto" : "تلقائي" + "Auto" : "تلقائي", + "Shared Folder" : "مجلد تم مشاركته", + "Shared Album" : "ألبوم تم مشاركته", + "Failed to remove {filename}." : "تعذّر حذف الملف {filename}.", + "Failed to create {albumName}." : "تعذّر إنشاء {albumName}.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "تعذّر تغيير تسمية {currentAlbumName} إلى {newAlbumName}.", + "General Failure" : "إخفاقٌ عامٌّ", + "Error: {msg}" : "خطأ: {msg}", + "Failed to delete {fileName}." : "تعذّر حذف {fileName}.", + "Failed to move files." : "فشل نقل الملفات.", + "Could not move {fileName}, target exists." : "تعذر نقل {fileName}، الهدف موجود.", + "Failed to move {fileName}." : "فشل نقل {fileName}.", + "Failed to download files" : "فشل تحميل الملفات", + "Failed to favorite files." : "فشل في وضع ملفات في المفضلة", + "Failed to favorite some files." : "فشل في وضع بعض الملفات بالمفضلة.", + "Failed to favorite {fileName}." : "فشل في وضع {fileName} في المفضلة.", + "No content-location header found" : "لم يتم العثور على ترويسة موقع المحتوى", + "Failed to create tag {name}: {error}" : "تعذّر إنشاء الوسم {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "تم تحديث الذكريات إلى {الإصدار}. قم بالتحديث للحصول على الإصدار الجديد.", + "Upload some photos and make sure the timeline path is configured" : "رفع بعض الصور والتأكد من تهيئة مسار التسلسل الزمني", + "Mark photos as favorite to find them easily" : "ضع علامة مفضلة على الصور للعثور عليها بسهولة", + "Memories from past years will appear here" : "سوف تظهر هنا الذكريات من السنوات الماضية", + "You will find your friends soon. Please be patient" : "سوف تجد أصدقاءك قريباً. يرجي الانتظار", + "Face Recognition is disabled. Enable in settings to find your friends" : "تم تعطيل التعرُّف على الوجوه. قم بتمكينه من الإعدادات حتي تستطيع العثور على أصدقائك", + "Your videos will appear here" : "فيديوهاتك ستظهر هنا", + "No photos in this album yet" : "لا يوجد صِوَرَ في هذا الألبوم حتي الآن", + "Create an album to get started" : "إنشاء ألبوم للبدء", + "Archive photos you don't want to see in your timeline" : "أرشفة الصور التي لا ترغب في رؤيتها على تسلسلك الزمني", + "Tag photos to find them easily" : "وسم الصور للعثور عليها بسهولة", + "Recognize is still working on your photos" : "لا يزال تطبيق التعرف Recognize يعمل على صورك", + "Places you have been to will appear here" : "سوف تظهر الأماكن التي قمت بزيارتها هنا", + "Yes" : "نعم", + "No" : "لا" }, "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/l10n/ar.json b/l10n/ar.json index 15bad3d5..e0fbdc31 100644 --- a/l10n/ar.json +++ b/l10n/ar.json @@ -1,61 +1,486 @@ { "translations": { + "Download" : "تنزيل", + "Memories" : "ذكريات Memories", + "Fast, modern and advanced photo management suite" : "حزمة إدارة صور سريعة وحديثة ومتقدمة", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# تطبيق Memories: تطبيق إدارة الصور بنكست كلود\n\nتطبيق Memories هو حل إدارة الصور * مع مجموعة عناصر مدمجة * بنكست كلود مع ميزات متقدمة تشمل:\n\n- ** 📸 التسلسل الزمني **: ترتيب الصور ومقاطع الفيديو حسب تاريخ الالتقاط ، وتحليلها بواسطة بيانات Exif.\n- ** ⏪ الرجوع للخلف**: انتقل إلى أي وقت في الماضي على الفور واسترجع ذكرياتك.\n- ** 🤖 الوسم بالذكاء الأصطناعي **: جمع الصور جماعية الأشخاص والأشياء، مدعومة من قبل [recognize] (https://github.com/nextcloud/recognize) و [facerecognition] (https://github.com/matiasdelellis/facerecognition ).\n- ** 🖼️ الألبومات **: أنشئ ألبومات لتجميع الصور ومقاطع الفيديو معًا. ثم شارك هذه الألبومات مع الآخرين.\n- ** 🫱🏻‍🫲🏻 المشاركة الخارجية **: شارك الصور ومقاطع الفيديو مع أشخاص خارج مثيل نكست كلود الخاص بك.\n- ** 📱 دعم الهاتف **: العمل من أي جهاز، من أي شكل وحجم من خلال تطبيق الويب.\n- ** ✏️ تحرير البيانات الوصفية **: تحرير التواريخ والبيانات الوصفية الأخرى على الصور بسرعة وبشكل مجمّع.\n- ** 📦 الأرشفة **: قم بتخزين الصور التي لا تريد أن تراها في تسلسلك الزمني في مجلد منفصل.\n- ** 📹 تحويل ترميز الفيديو **: تحويل مقاطع الفيديو واستخدام بروتوكول HLS لتحقيق أقصى أداء.\n- ** 🗺️ الخريطة **: اعرض صورك على الخريطة، مع تمييزها بترميز جغرافي عكسي دقيق.\n- ** 📦 الانتقال**: الانتقال بسهولة من Nextcloud Photos و Google Takeout.\n- ** ⚡️ الأداء **: قم بفعل كل هذا بسرعة كبيرة.\n\n## 🚀 التثبيت\n\n1. قم بتثبيت التطبيق من متجر تطبيقات نكست كلود(جرب نسخة تجريبية[هنا] (https://demo.memories.gallery/apps/memories/)).\n1. نفذ [خطوات التكوين] الموصى بها (https://memories.gallery/config/).\n1. قم بتشغيل \"php occ memories:index\" لإنشاء فهارس بيانات وصفية للصور الموجودة.\n1. افتح 📷 تطبيق Memories في نكست كلاود وقم بتعيين الدليل الذي يحتوي على صورك.", "Settings" : "الإعدادات", + "People (Recognize)" : "الأشخاص (التعرف)", + "People" : "الناس", + "People (Face Recognition)" : "الأشخاص (التعرف على الوجه)", "Info" : "معلومات", "Timeline" : "الجدول الزمني", "Folders" : "المجلدات", "Favorites" : "المفضلات", "Videos" : "فيديوهات", + "Albums" : "الألبومات", "Archive" : "الأرشيف", + "On this day" : "في هذا اليوم", + "Places" : "أماكن", + "Map" : "خريطة", "Tags" : "الوسوم", + "View all" : "عرض الكل", + "Recognize" : "التعرف على", + "Face Recognition" : "التعرُّف علي الوجوه", + "A better photos experience awaits you" : "تجربة صور أفضل في انتظارك", + "Choose the root folder of your timeline to begin" : "اختر مجلد جذر لبدء تسلسلك الزمني", + "Continue to Memories" : "تابع إلى Memories", + "Choose again" : "اختر مرة أخرى", + "Click here to start" : "اضغط هنا للبدأ", + "You can always change this later in settings" : "يمكنك دائمًا تغيير هذا لاحقًا من الإعدادات", + "If you just installed Memories, visit the admin panel first." : "إذا كنت علي وشك القيام بتثبيت تطبيق Memories، فقم بالرجوع إلي لوحة المسئول أولاً.", + "Choose the root of your timeline" : "إختَر الدليل الأساسي لتسلسلك الزمني ", + "The selected folder does not seem to be valid. Try again." : "يبدو أن المجلد المحدد غير صالح. حاول ثانية.", + "No photos were found in the selected folder." : "لم يتم إيجاد صور فى المجلد المختار.", + "This can happen because your media is still indexing." : "يمكن أن يحدث هذا لأن الوسائط الخاصة بك لا تزال قيد الفهرسة.", + "Visit the admin panel to make sure Memories is configured correctly." : "انتقل إلي لوحة المسئول للتأكد من ضبط وتهيئة الذكريات بشكل صحيح.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["تم العثور على {n} عناصر في {path}","تم العثور على {n} عنصر في {path}","تم العثور على {n} عناصر في {path}","تم العثور على {n} عناصر في {path}","تم العثور على {n} عناصر في {path}","تم العثور على {n} عناصر في {path}"], + "Metadata" : "البيانات الوصفية metadata", "Edit" : "تعديل", + "Failed to load metadata" : "تعذّر تحميل البيانات الوصفية", + "No coordinates" : "لا توجد إحداثيات", + "Click edit to set location" : "إضغط \"تحرير\" لتعيين الموقع", "Photos" : "الصور", + "Explore" : "استكشاف", "Cancel" : "إلغاء", "Delete" : "إزالة", - "Download" : "تنزيل", + "Remove from album" : "إزالة من الألبوم", "Favorite" : "المفضلة", + "Unarchive" : "غير مؤرشفة", + "Edit metadata" : "تحرير بيانات التعريف الوصفية", "View in folder" : "اعرض في المجلد", + "Move to folder" : "انتقل إلى المجلد", + "Add to album" : "إضِف إلى ألبوم", + "Move to person" : "نقل إلى فئة شخص", + "Remove from person" : "إزالة من شخصٍ", + "You are about to download a large number of files." : "أنت على وشك تنزيل عدد كبير من الملفات.", + "Continue" : "متابعة", + "You are about to delete a large number of files" : "أنت على وشك حذف عدد كبير من الملفات", + "Failed to delete files" : "فشل في حذف الملفات", + "Move" : "نقل", + "You are about to move a large number of files" : "أنت على وشك نقل عدد كبير من الملفات", + "You must enable \"Mark person in preview\" to use this feature" : "يجب عليك تمكين \"تمييز شخص في المعاينة\" لاستخدام هذه الميزة", + "Only user \"{user}\" can update this person" : "يمكن للمستخدم \"{user}\" فقط تحديث هذا الشخص", + "_{n} selected_::_{n} selected_" : ["تم تحديد {n}","تم تحديد {n}","تم تحديد {n}","تم تحديد {n}","تم تحديد {n}","تم تحديد {n}"], + "Memories Settings" : "إعدادات \"الذكريات\" Memories", "General" : "العامة", + "Timeline Path" : "مسار الخط الزمني timeline", + "Square grid mode" : "وضع المربع الشبكي ", + "Show past photos on top of timeline" : "أظهِِر الصِّوَر السابقة أعلى الخط الزمني", + "Viewer" : "العارض Viewer", + "Autoplay Live Photos" : "التشغيل التلقائي للصور الحيّة", + "Load full size image on zoom" : "تحميل الصورة بالحجم الكامل عند التكبير", + "Always load full size image (not recommended)" : "حمل الصورة بالحجم الكامل دائما (غير موصي به)", + "Show full file path in sidebar" : "أظهِر المسار الكامل للملف في الشريط الجانبي", + "Account" : "الحساب", + "Logged in as {user}" : "تسجيل الدخول بصفته {مستخدم}", + "Sign out" : "تسجيل الخروج", + "Device Folders" : "مجلدات الجهاز", + "Local folders to include in the timeline view" : "المجلدات المحلية التي يتم تضمينها في عرض الجدول الزمني", + "Folders Path" : "مسار المجلدات", + "Show hidden folders" : "أظهِر المجلدات المَخفِيّة", + "Sort folders oldest-first" : "رتّب المجلدات من الأقدم للأحدث", + "Sort albums oldest-first" : "رتِّب الألبومات من الأقدم إلى الأحدث", + "Choose Timeline Paths" : "اختر مسارات التسلسل الزمني", + "Choose the root for the folders view" : "إختَر الدليل الأساسي لعرض المجلدات", + "Are you sure you want to log out {user}?" : "هل أنت متأكد من أنك تريد تسجيل الخروج {user}؟", "Close" : "إغلاق", + "{photoCount} photos" : "{photoCount} صور", + "Failed to load some photos" : "تعذّر تحميل بعض الصِّور", + "Failed to update setting" : "تعذّر تحديث الإعدادات", + "Albums support is enabled through the Photos app." : "دعم الألبومات مُمَكَّنٌ عن طريق تطبيق الصور Photos app.", + "Albums are disabled because the Photos app is not available." : "الألبومات مُعطّلة بسبب أن تطبيق الصور غير موجود.", + "Recognize is installed and enabled for face recognition." : "تطبيق \"التعرُّف\" Recognize للتعرٌّف على الوجوه مُثبّت و مُمكّن .", + "Recognize is installed but not enabled for face recognition." : "تطبيق \"التعرُّف\" Recognize للتعرٌّف على الوجوه مُثبّت لكنه غير مُمكّن .", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "تطبيق \"التعرُّف\" Recognize للتعرٌّف على الوجوه غير مُثبّت. و بالتالي، فإن التعرُّف على الوجوه و وَسْم الأشياء غير مُتاح. ", + "Face Recognition is installed and enabled" : "تطبيق \"التعرُّف على الوجوه\" Face Recognition مُثبّت و مُمكّن", + "Preview generator is installed and enabled. Additional configuration may still be required." : "\"مُولِّد المعاينات Preview generator مُثبّت و مُمكّن. بعض الإعدادات الإضافية يمكن أن تكون لازمةً.", + "Preview generator is not installed and configured. This may make Memories very slow." : "\"مُولِّد المعاينات Preview generator غير مُثبّت و لا مُهيّأ. هذا قد يتسبب في تبطئة \"تطبيق الذكريات\" Mempries بشكل كبير.", + "Recommended Apps" : "تطبيقات مُوصىً بها", + "Path to packaged exiftool binary" : "مسار الحزمة الثنائية exiftool", + "You need perl only if the packaged exiftool binary does not work for some reason." : "أنت بحاجة فقط إلى لغة البرمجة perl إذا كانت حزمة exiftool الثنائية لا تعمل لسبب ما.", + "Use system perl (only if exiftool binary does not work)" : "استخدام نظام perl (فقط إذا لم تعمل حزمة exiftool الثنائية)", + "EXIF Extraction" : "استخراج EXIF", + "You can configure the enabled Nextcloud preview providers below." : "يمكنك ضبط مزودي معاينة نكست كلود الممكّنة أدناه.", + "If you are using Imaginary for preview generation, you can ignore this section." : "إذا كنت تستخدم تطبيق Imaginary لإنشاء المعاينة فيمكنك تجاهل هذا الجزء.", + "To enable RAW support, install the Camera RAW Previews app." : "لتمكين دعم تنسيق RAW، قم بتثبيت تطبيق Camera RAW Previews.", + "Documentation." : "التوثيق.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick متوفرة [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick غير متوفرة.", + "Image editing will not work correctly." : "تحرير الصور لن يعمل بشكل صحيح.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "توليد مُصغَّرات الصِّوَر thumbnails قد لا يعمل مع بعض التنسيقات مثل (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "سيتم إنشاء مُصَغَّرَات الصِّوَر لمقاطع الفيديو باستخدام هذا البُريْمِج.", + "Thumbnail generation may not work for videos." : "توليد مُصغَّرات الصِّوَر thumbnails قد لا يعمل لبعض مقاطع الفيديو.", + "The following MIME types are configured for preview generation." : "تم إعداد أنواع تنسيقات MIME التالية لإنشاء المعاينة.", + "Max preview size (trade-off between quality and storage requirements)." : "أقصى حجم للمعاينة (الأولوية النسبية بين متطلبات الجودة والتخزين).", + "Max memory for preview generation (MB)" : "الحد الأقصى للذاكرة لإنشاء المعاينة (ميغا بايت)", + "Max size of preview files (MB)" : "الحجم الأقصى لملفات المعاينة (ميغا بايت)", + "File Support" : "دعم الملف", + "Images (JPEG, PNG, GIF, BMP)" : "الصور (تسيق JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "تنسيق الصور HEIC (Imagick) ", + "TIFF (Imagick)" : "تنسيق ملف الصور TIFF ( Imagick) ", + "Videos (ffmpeg)" : "فيديوهات (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "شكراً لاختياركم منصة نكست كلاود و تطبيق الذكريات Memories لحفظ بياناتكم الثمينة. ", + "Memories is very feature rich and setting it up properly can take some time." : "تطبيق الذكريات Memories يحوي الكثير من الخصائص و قد يستغرق إعداده بالشكل الصحيح بعض الوقت.", + "If you just installed Memories, make sure you read the getting started guide:" : "إذا كنت قد قمت لتوِّك بتنصيب تطبيق الذكريات Memories فلا تنسَ أن تقرأ دليل بدء العمل getting started guide:", + "External Link" : "رابط خارجي", + "In case you run into any issues or bugs, you can get help through several channels." : "في حال صادفت أي إشكال أو خطأ، يمكنك الحصول على العون و الدعم عبر عدة قنوات.", + "Memories is a completely free and open source app under active development." : "تطبيق الذكريات Memories هو تطبيق مجاني و مفتوح المصدر بالكامل و هو تحت التطوير المستمر.", + "You can contribute in several ways. See the project page for more details:" : "يمكنك المساهمة بعدة طرق. طالع صفحة المشروع لمزيد التفاصيل:", + "Help & Support" : "عون و دعم", + "{n} media files have been indexed" : "تمّت فهرسة {n} ملفات وسائط", + "Automatic Indexing status: {status}" : "حالة الفهرسة التلقائية: {status}", + "Last index job was run {t} seconds ago." : "تمّ تشغيل آخر مهمة فهرسة منذ {t} ثواني.", + "It took {t} seconds to complete." : "استغرق الاكتمال {t} ثواني.", + "It is still running or was interrupted." : "لا يزال قيد التشغيل أو تمّت مقاطعته.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "يبدو أنه قد مرت أكثر من ساعة منذ تشغيل آخر وظيفة في الفهرس. تأكد من تكوين Nextcloud cron بشكل صحيح.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "الوِحدَة (OC_DEFAULT_MODULE) تدعم فقط التشفير من جانب الخادم، ولكن تمّ تمكين وحدة تشفير encryption module أخرى.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "يتم إنشاء فهارس EXIF والتحقق منها كمهمة دورية في الخلفية. كن حذرًا عند تحديد أي شيء بخلاف الفهرسة التلقائية. على سبيل المثال، قد يتسبب تعيين الفهرسة على مجلدات التسلسل الزمني فقط في حدوث تأخير في إتاحة الوسائط متاحة للمستخدمين نظرًا لأن المستخدم يقوم بتهيئة التسلسل الزمني فقط بعد دخوله.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "المجلدات التي تحوي ملفات باسم \".nomedia\" أو \".nomedia\" تستثنى دائماً من الفهرسة", + "Index all media automatically (recommended)" : "فهرسة جميع الوسائط تلقائيًا (موصى به)", + "Index per-user timeline folders (not recommended)" : "فهرسة مجلدات التسلسل الزمني لكل مستخدم (لا يوصي به)", + "Index a fixed relative path" : "فهرسة مسار نسبي ثابت", + "Disable background indexing" : "تعطيل تنفيذ الفهرسة فى الخلفية", + "Indexing path (relative, all users)" : "مسار الفهرسة (ذو صلة، جميع المستخدمين)", + "For advanced usage, perform a run of indexing by running:" : "للاستخدام المتقدم، قم بإجراء تشغيل الفهرسة عن طريق تشغيل:", + "Run index in parallel with 4 threads:" : "قم بتنفيذ الفهرسة بالتوازي على 4 نظمات threads:", + "Force re-indexing of all files:" : "فرض إعادة فهرسة جميع الملفات:", + "You can limit indexing by user and/or folder:" : "يمكنك تقييد الفهرسة حسب المستخدم و/أو المجلد:", + "Clear all existing index tables:" : "محو كافة جداول الفهرس الموجودة:", + "Media Indexing" : "فهرسة الوسائط", + "HTTPS is enabled" : "تمّ تمكين HTTPS", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "أنت تدخل إلى هذه الصفحة من خلال سياق غير آمن. لا تتوفر العديد من واجهات برمجة التطبيقات للمتصفح، مما سيجعل تطبيق Memories بطيئاً للغاية. قم بتمكين HTTPS على خادومك لتحسين الأداء.", + "HTTP/2 or HTTP/3 is enabled" : "تمّ تمكين HTTP/2 أو HTTP/3", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "يُوصَى بشدة باستخدام HTTP/2 أو HTTP/3 (تم اكتشاف {httpVer})", + "Performance" : "سرعة الأداء", "Unknown" : "غير معروف", + "Database is populated with {n} geometries." : "يتم ملء قاعدة البيانات بـ {n} أشكال الهندسية.", + "Geometry table has not been created." : "لم يتم إنشاء جدول الهندسة.", + "Looks like the planet data is incomplete." : "يبدو أن بيانات الكوكب غير كاملة.", + "Reverse geocoding has not been configured ({status})." : "لم يتم تكوين الترميز الجغرافي العكسي ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "يدعم تطبيق Memories الترميز الجغرافي العكسي في وضع عدم الاتصال باستخدام بيانات من تطبيق خرائط OpenStreetMaps على MySQL و Postgres", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "تحتاج إلى تنزيل بيانات الكوكب في قاعدة البيانات الخاصة بك. هذا موصى به للغاية حيث أنها منخفضة العبء ", + "If the button below does not work for importing the planet data, use the following command:" : "إذا كان الزر أدناه لا يعمل لاستيراد بيانات الكوكب، فاستخدم الأمر التالي:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "ملاحظة: يتم تخزين البيانات الهندسية في جدول memories_planet_geometry، بدون بادئة.", + "Download planet database" : "تنزيل قاعدة بيانات الكوكب planet database", + "Reverse Geocoding" : "الترميز الجغرافي العكسي", + "Geometry support was not detected in your database" : "لم يتم اكتشاف دعم الهندسة في قاعدة البيانات الخاصة بك", + "MySQL-like geometry support was detected " : "تم اكتشاف الدعم الهندسي MySQL-like", + "Postgres native geometry support was detected" : "تمّ اكتشاف نظام إدارة قواعد البيانات Postgres للدعم المحلي للهندسة ", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "قاعدة البيانات قد تم إعدادها بالفعل. هل أنت متأكد أنك تريد إعادة تنزيل بيانات الكوكب؟", + "You are about to download the planet database. This may take a while." : "أنت على وشك تنزيل قاعدة بيانات الكوكب. هذا قد يستغرق بعض الوقت.", + "This may also cause all photos to be re-indexed!" : "قد يتسبب هذا أيضًا في إعادة فهرسة جميع الصور!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "يوفر تحويل الترميز المباشر دفقًا متكيفًا لمقاطع الفيديو باستخدام بروتوكول HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "لاحظ أن هذا قد يكون بالغ الحدة علي وحدة المعالجة المركزية دون تسريع الأجهزة، ولن يتم استخدام تحويل الترميز للتخزين الخارجي.", + "Enable Transcoding" : "تمكين تحويل الترميز", + "ffmpeg path" : "مسار ffmpeg", + "ffprobe path" : "مسار ffprobe", + "Global default video quality (user may override)" : "جودة الفيديو العامة الافتراضية (يمكن للمستخدم تجاوزها)", + "Auto (adaptive transcode)" : "تلقائي (تحويل ترميز متكيف)", + "Original (transcode with max quality)" : "أصلي (تحويل الترميز بأقصى جودة)", + "Direct (original video file without transcode)" : "مباشر (ملف فيديو أصلي بدون تحويل الترميز)", + "Video Streaming" : "بث الفيديو ", + "You must first make sure the correct drivers are installed before configuring acceleration." : "يجب عليك التأكد أولاً من تثبيت برامج التشغيل الصحيحة قبل تهيئة التسريع.", + "Make sure you test hardware acceleration with various options after enabling." : "تأكد من اختبار تسريع الأجهزة بخيارات متنوعة بعد التمكين.", + "Do not enable multiple types of hardware acceleration simultaneously." : "لا تقم بتمكين أنواع متعددة من تسريع الأجهزة في وقت واحد.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "يمكن استخدام معالجات Intel التي تدعم مزامنة الفيديو السريعة (QSV) وكذلك بعض وحدات معالجة الرسوم AMD لتحويل الترميز باستخدام تسريع VA-API.", + "For more details on driver installation, check the documentation:" : "لمزيد من التفاصيل حول تثبيت برنامج التشغيل، راجع الوثائق:", + "Enable acceleration with VA-API" : "تمكين التسريع باستخدام VA-API", + "Enable low-power mode (QSV only)" : "تمكين وضع الطاقة المنخفضة ( QSV فقط)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "يمكن استخدام وحدات معالجة الرسوم من النوع NVIDIA لتحويل الترميز باستخدام مُرَمِّز NVENC مع برامج التشغيل المناسبة.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "بناء على إصدارات SDK و ffmpeg المثبتة، تحتاج إلى تحديد معداد لاستخدامه", + "No automated tests are available for NVIDIA acceleration." : "لا توجد اختبارات آلية متاحة لتسريع معالجات الرسوم NVIDIA.", + "Enable acceleration with NVENC" : "تمكين التسريع مع مرمز NVENC", + "Enable NVENC Temporal AQ" : "تمكين التكمية التكيفية المؤقتة لمرمز NVENC", + "NPP scaler" : "معداد NPP", + "CUDA scaler" : "معدّاد CUDA ", + "not recommended" : "لا يُوصى به", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "نظرًا لوجود خطأ في بعض برامج تشغيل الأجهزة، فقد تظهر مقاطع الفيديو في اتجاهات غير صحيحة عند البث. يمكن حلّ هذا المشكل في بعض الحالات عن طريق تدوير الفيديو على المُسرِّع accelerator.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "قم بتمكين الخيار التالي فقط إذا كانت لديك مقاطع فيديو تظهر في غير الاتجاه الصحيح أثناء التشغيل.", + "Enable streaming transpose workaround" : "تمكين حل تبديل البث streaming transpose.", + "HW Acceleration" : "التسريع العتادي HW Acceleration", + "VA-API device ({dev}) is readable" : "جهاز VA-API ({dev}) قابل للقراءة", + "VA-API device ({dev}) not found" : "لم يتم العثور علي جهاز VA-API ({dev})", + "VA-API device ({dev}) has incorrect permissions" : "جهاز VA-API ({dev}) لديه أذونات غير صحيحة", + "VA-API device status: {status}" : "حالة جهاز VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "يستخدم تطبيق Memories محول الترميز transcoder ـ go-vod. ويمكنك تشغيل محول الترميز go-vod خارجيًا (على سبيل المثال في حاوية دوكر Docker منفصلة لتسريع الأجهزة) أو استخدام محول الترميز المدمج. لاستخدام محول ترميز خارجي، قم بتمكين الخيار التالي واتبع التعليمات الواردة في الوثائق:", + "Enable external transcoder (go-vod)" : "تمكين محول الترميز الخارجي (go-vod)", + "Binary path (local only)" : "المسار الثنائي (محلي فقط)", + "Bind address (local only)" : "عنوان الاقتران/ الربط (محلي فقط)", + "Connection address (same as bind if local)" : "عنوان الاتصال (نفس عنوان الاقتران إذا كان محليّاً)", + "Transcoder" : "مُحوِّل Transcoder", + "Template" : "قالب", + "No items" : "لا يوجد أي عنصر", + "Shared by {user}" : "تمتّ مشاركتها من قِبَل {user}", + "_{n} item_::_{n} items_" : ["{n} عنصر","{n} عنصر","{n} عنصر","{n} عنصر","{n} عنصر","{n} عنصر"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها","{n} صورة تمّ تعديلها"], + "Add people or groups who can edit your album" : "إضِف الأشخاص أو المجموعات التي يحق لها تعديل ألبومك", + "Search for collaborators" : "البحث عن متعاونين", + "Search people or groups" : "البحث عن أشخاص أو مجموعات", + "Add {collaboratorLabel} to the collaborators list" : "أضِف {collaboratorLabel} إلى قائمة المتعاونين", + "No collaborators available" : "لا يوجد أي متعاونين", + "Remove {collaboratorLabel} from the collaborators list" : "حذف {collaboratorLabel} من قائمة المتعاونين", + "Copy the public link" : "إنسخ الرابط العمومي", + "Public link copied!" : "تم نسخ الرابط العام", "Copy public link" : "نسخ الرابط العام", + "Delete the public link" : "حذف الرابط العمومي", + "Share via public link" : "شارك عبر الرابط العمومي", + "Failed to fetch collaborators list." : "تعذّر جلب قائمة المتعاونين.", + "Public link" : "رابط عمومي", + "Failed to fetch album." : "تعذّر جلب الألبوم", + "Failed to update album." : "تعذّر تحديث الألبوم.", + "Create new album" : "إنشاء ألبوم جديد", + "Edit album details" : "تعديل تفاصيل الألبوم", + "New album" : "ألبوم جديد", + "Could not load the selected album" : "تعذر تحميل الألبوم المحدد", + "Remove Album" : "إزالة الألبوم", + "Are you sure you want to permanently remove album \"{name}\"?" : "هل أنت متأكد أنك تريد حذف الألبوم \"{name}\" نهائيًا؟", + "Failed to delete {name}." : "فشل في حذف {name}.", + "Name of the album" : "اسم الألبوم", + "Location of the album" : "موقع الألبوم", + "Go back to the previous view." : "عُد إلى العرض السابق.", "Back" : "العودة", + "Go to the add collaborators view." : "إذهب إلى عرض إضافة المتعاونين", + "Add collaborators" : "أضف المتعاونين", + "Back to the new album form." : "عُد إلى نموذج الألبوم الجديد.", "Save" : "Save", + "Create album" : "أنشِيء ألبوماً", + "Invalid album name; should not contain any slashes." : "اسم الألبوم غير صالح. يجب ألا يحتوي على أي خطوط مائلة.", + "Search" : "البحث", + "Create new album." : "إنشاء ألبوم جديد", + "Save changes" : "حفظ التعديلات", + "_Removed from {n} album_::_Removed from {n} albums_" : ["تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم","تمّ حذفها من {n} ألبوم"], + "Share Album" : "مشاركة الألبوم", + "Save collaborators for this album." : "حفظ المتعاونين لهذا الألبوم", + "shared by {owner}" : "تمّت مشاركته من قِبَل {owner}", + "_%n item_::_%n items_" : ["%n عناصر","%n عنصر","%n عناصر","%n عناصر","%n عناصر","%n عناصر"], + "Newest" : "الأحدث", + "Year" : "السنة", "Month" : "شهر", "Day" : "اليوم", "Time" : "إلى وقت", "Hour" : "الساعة", + "Minute" : "دقيقة", + "Oldest" : "الأقدم", + "Invalid Date" : "تاريخ غير صحيح", + "Newest date is older than oldest date" : "أحدث تاريخ هو أقدم من أقدم تاريخ", "Title" : "العنوان", "Description" : "الوصف", "Label" : "تسمية", + "Camera Make" : "طراز الكاميرا", + "Camera Model" : "موديل الكاميرا", + "Lens Model" : "موديل العدسة", "Copyright" : "حقوق التأليف", + "Empty" : "فارغ", + "Unchanged" : "دون تغيير", "Reset" : "إعادة الضبط", + "Remove location" : "إزالة الموقع", + "Search location / landmark" : "البحث عن مواقع / معالم", + "Failed to search for location with Nominatim." : "فشل البحث عن الموقع باستخدام تطبيق الخرائط Nominatim.", + "Date / Time" : "التاريخ / الوقت", + "Collaborative Tags" : "وسوم تشاركية", + "EXIF Fields" : "حقول EXIF", + "Geolocation" : "الموقع الجغرافي", + "Failed to load metadata for {n} photos." : "تعذّر تحميل البيانات الوصفية لـ {n} صور.", + "{n} photos cannot be edited (permissions error)." : "{n} صور لا يمكن تحريرها (حطأ في الأذونات).", + "Remove person" : "حذف شخص", + "Are you sure you want to remove {name}?" : "هل أنت متأكد أنك تريد إزالة {name}؟", + "Only user \"{user}\" can delete this person" : "يمكن للمستخدم \"{user}\" فقط حذف هذا الشخص", + "Rename person" : "تغيير اسم شخص", "Name" : "الاسم", "Update" : "تحديث", - "Search" : "البحث", + "Failed to rename {oldName} to {name}." : "فشل في تغيير تسمية {oldName} إلى {name}.", "Loading …" : "جاري التحميل …", + "Enter name of the new face" : "أدخل اسم الوجه الجديد", + "Failed to create face" : "فشل في إنشاء الوجه", + "Merge {name} with person" : "إدمِج {name} في شخصٍ", + "Merge faces" : "دمج الوجوه", + "Merge {name} with {newName}?" : "دمج {name} مع {newName}؟", + "unnamed person" : "شخصٌ لم بُعطَ اسمه", + "Too many failures, aborting" : "إخفاقات كثيرة، سيتم الخروج", + "Error while moving {basename}" : "خطأٌ أثناء نقل {basename}", + "Failed to move {name}." : "فشل في نقل {name}.", + "Move selected photos to person" : "نقُل الصور المحددة إلى فئة شخص", + "Move the selected photos to {target}?" : "نقل الصور المحددة إلى {target}؟", + "An error occurred while moving photos from {name}." : "حدث خطأ أثناء نقل الصور من {name}.", + "Choose a folder" : "اختر مجلدًا", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["تم نقل {n} عناصر إلى المجلد","تم نقل {n} عنصر إلى المجلد","تم نقل {n} عناصر إلى المجلد","تم نقل {n} عناصر إلى المجلد","تم نقل {n} عناصر إلى المجلد","تم نقل {n} عناصر إلى المجلد"], "Remove" : "حذف", + "Add Path" : "إضافة مسار", + "Add a root to your timeline" : "أضف دليل أساسي إلى تسلسلك الزمني", + "Link Sharing" : "مشاركة الرابط", + "You cannot share the root folder" : "لا يمكنك مشاركة مجلد الدليل الأساسي", + "Public link shares are available to people outside Nextcloud." : "المشاركات عبر الرابط العام متاحة للأشخاص من خارج نكست كلاود", + "You may create or update permissions on public links using the sidebar." : "يمكنك إنشاء و تحديث أذونات الروابط العامة باستخدام الشريط الجانبي.", + "Click a link to copy to clipboard." : "أنقُر علي الرابط لنسخه إلى الحافظة.", "Share link" : "مشاركة الرابط", + "Create Link" : "أنشِيءْ رابطاً", "Refresh" : "إنعاش", "Password protected" : "محمي بكلمة السر", + "Expires" : "تنتهي صلاحيته فى", + "Editable" : "قابل للتعديل", "Read only" : "القراءة فقط", + "Link copied to clipboard" : "تمّ نسخ الرابط إلى الحافظة", + "Share File" : "مشاركة ملف", + "Reduced Size" : "حجم مصغر", + "Share a lower resolution image preview" : "مشاركة معاينة صورة منخفضة التباين", + "High Resolution" : "تباينٌ عالٍ", + "Share the video as a high quality MOV" : "شارك الفيديو بتنسيق MOV عالي الجودة", + "Share the image as a high quality JPEG" : "شارك الصورة بتنسيق JPEG عالي الجودة", + "Original File" : "الملف الأصلي", + "Share the original image / video file" : "شارك ملف الصورة أو الفيديو الأصلي", + "Public Link" : "رابط عام", + "Share an external Nextcloud link" : "شارك رابط نكست كلاود خارجي", + "Failed to download file" : "تعذّر تنزيل الملف", + "Cannot share this type of data" : "لا يمكن مشاركة هذا النوع من البيانات", "Sort by date" : "Order by date", "Sort by name" : "Order by name", + "Share album" : "مشاركة الألبوم", + "Download album" : "تنزيل الألبوم", + "Nothing to show here" : "لا يوجد شيء لِيُعرَض هُنا", + "Unassigned faces" : "أوجه غير معينة", + "Merge with different person" : "الدمج مع شخص آخر", + "Mark person in preview" : "وضع علامة على الشخص في المعاينة", + "Unnamed person" : "شخص لم يذكر اسمه", + "Folder View" : "عرض المجلد", + "Timeline View" : "عرض التسلسل الزمني", + "Share folder" : "مشاركة مُجلّد", + "Move left" : "نقُل لجهة اليسار", + "Move right" : "نقل لجهة اليمين", + "Image saved successfully" : "تم حفظ الصورة بنجاح", + "Error saving image" : "خطأ في حفظ الصور", + "Unsaved changes" : "تغييرات لم يتم حفظها", + "Drop changes" : "إسقاط التغييرات", "Share" : "مشاركة", + "Play Live Photo" : "تشغيل صور Live Photo", + "Download Video" : "تنزيل الفيديو", + "Slideshow" : "عرض الشرائح", "Previous" : "السابق", "Next" : "التالي", - "Continue" : "متابعة", + "Editing is currently disabled for Live Photos" : "التحرير معطل حاليّاً بالنسبة لصور Live Photos", + "Are you sure you want to delete?" : "هل أنت متأكد أنك تريد الحذف؟", + "Failed to delete photo" : "فشل في حذف الصورة", + "{name} binary exists and is executable." : "الملف الثنائي {name} موجود وقابل للتنفيذ.", + "{name} binary not found." : "{name} الملف الثنائي غير موجود.", + "{name} binary is not executable." : "الملف الثنائي {name} غير قابل للتنفيذ.", + "{name} failed test: {info}." : "فشل اختبار {name}: {info}.", + "{name} binary exists and is usable ({info})." : "الملف الثنائي {name} موجود وقابل للاستخدام ({info}).", + "{name} binary status: {status}." : "{name} حالة الملف الثنائي: {status}.", + "Save as" : "حفظ كـ", + "All changes will be lost." : "ستفقد كل التغييرات.", + "Are you sure you want to continue?" : "هل أنت متأكد أنك ترغب بالاستمرار؟", "Undo" : "تراجع", "Redo" : "إعادة", + "Show original image" : "أعرُض الصور الأصلية", + "Zoom in" : "تكبير", + "Zoom out" : "تصغير", + "Toggle zoom menu" : "تبديل قائمة التكبير و التصغير", + "Adjust" : "إضبِط", + "Fine-tune" : "مُناغمة file-tune", + "Filters" : "فلاتر", + "Watermark" : "علامة مائية", + "Draw" : "إرسم", + "Resize" : "غيّر الحجم", + "Invalid image." : "صورة غير صالحة.", + "Error while uploading the image." : "خطأ أثناء رفع الصورة.", + "are not images" : "ليست صوراً", + "is not an image" : "ليست صورةً", + "to be uploaded" : "ليتم تحميلها", + "Crop" : "قَصْقِصْ", "Original" : "أصلي", "Custom" : "مخصّص", + "Square" : "مُربّع", + "Landscape" : "وضع أُفُقي", + "Portrait" : "وضع رأسي", + "Ellipse" : "بيضاوي", + "Classic TV" : "تلفاز كلاسيكي", + "CinemaScope" : "إنفساح شاشة السينما CinemaScope", + "Arrow" : "سهم", + "Blur" : "تضبيب Blur", + "Brightness" : "سطوع Brightness", + "Contrast" : "تباين Contrast", + "Un-flip X" : "لا انعكاس سيني Un-flip X", + "Flip X" : "إنعكاس سيني Flip X", + "Un-flip Y" : "إنعكاس صادي Flip Y", + "Flip Y" : "لا انعكاس صادي Un-flip Y", + "HSV" : "HSV", + "Hue" : "تدرُّج لوني Hue", + "Saturation" : "تشبُّع saturation", "Value" : "القيمة", + "Image" : "صورة", + "Importing …" : "إستيراد ...", + "+ Add image" : "+ أضِف صورةً", "Line" : "خط", + "Pen" : "قلم", + "Polygon" : "مُضلّع", + "Sides" : "الجوانب", + "Rectangle" : "مستطيل", + "Corner Radius" : "نصف قطر الزاوية Corner Radius", + "Width in pixels" : "العرض بالبكسل", + "Height in pixels" : "الارتفاع بالبكسل", + "Toggle ratio lock" : "تبديل قُفْل النِّسبَة ratio lock", + "Reset to original image size" : "إرجاع الصورة لحجمها الأصلي", + "Rotate" : "تدوير", "Text" : "نص", + "Text spacing" : "تباعد النص", + "Text alignment" : "محاذاة النص", + "Font family" : "عائلة الخطوط", "Size" : "الحجم", + "Letter spacing" : "تباعد الحروف", + "Line height" : "إرتفاع السطر", + "Warmth" : "الشِّدَّة warmth", + "+ Add watermark" : "+ أضِف العلامة المائية", + "Choose watermark type" : "إختر نوع العلامة المائية", + "Upload watermark" : "رفع علامة مائية", + "Add as text" : "أضِف كنصٍّ", + "Padding" : "الحشو padding", + "Shadow" : "تظليل shadow", + "Horizontal" : "أفُقِي", + "Vertical" : "رأسِي", + "Opacity" : "التعتيم opacity", "Position" : "الموقع", + "Stroke" : "شطب stroke", + "Save image as" : "حفظ الصورة باسم", + "Extension" : "الامتداد", "Name is required." : "حقل الاسم مطلوب", "Quality" : "الجودة", + "Saved image size (width x height)" : "حجم الصورة المحفوظة (العرض × الارتفاع)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "لاحظ أن مساحة الاقتصاص crop المحددة أقل من الحجم المطبق مما قد يتسبب في انخفاض الجودة", + "Actual size (100%)" : "الحجم الفعلي (100%)", + "Fit size" : "حجم ملائم fit size", + "Transcoding failed, check Nextcloud logs." : "فشل في تحويل الترميز Transcoding. راجع سجل الحركات log في نكست كلاود.", "Direct" : "مباشر", - "Auto" : "تلقائي" + "Auto" : "تلقائي", + "Shared Folder" : "مجلد تم مشاركته", + "Shared Album" : "ألبوم تم مشاركته", + "Failed to remove {filename}." : "تعذّر حذف الملف {filename}.", + "Failed to create {albumName}." : "تعذّر إنشاء {albumName}.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "تعذّر تغيير تسمية {currentAlbumName} إلى {newAlbumName}.", + "General Failure" : "إخفاقٌ عامٌّ", + "Error: {msg}" : "خطأ: {msg}", + "Failed to delete {fileName}." : "تعذّر حذف {fileName}.", + "Failed to move files." : "فشل نقل الملفات.", + "Could not move {fileName}, target exists." : "تعذر نقل {fileName}، الهدف موجود.", + "Failed to move {fileName}." : "فشل نقل {fileName}.", + "Failed to download files" : "فشل تحميل الملفات", + "Failed to favorite files." : "فشل في وضع ملفات في المفضلة", + "Failed to favorite some files." : "فشل في وضع بعض الملفات بالمفضلة.", + "Failed to favorite {fileName}." : "فشل في وضع {fileName} في المفضلة.", + "No content-location header found" : "لم يتم العثور على ترويسة موقع المحتوى", + "Failed to create tag {name}: {error}" : "تعذّر إنشاء الوسم {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "تم تحديث الذكريات إلى {الإصدار}. قم بالتحديث للحصول على الإصدار الجديد.", + "Upload some photos and make sure the timeline path is configured" : "رفع بعض الصور والتأكد من تهيئة مسار التسلسل الزمني", + "Mark photos as favorite to find them easily" : "ضع علامة مفضلة على الصور للعثور عليها بسهولة", + "Memories from past years will appear here" : "سوف تظهر هنا الذكريات من السنوات الماضية", + "You will find your friends soon. Please be patient" : "سوف تجد أصدقاءك قريباً. يرجي الانتظار", + "Face Recognition is disabled. Enable in settings to find your friends" : "تم تعطيل التعرُّف على الوجوه. قم بتمكينه من الإعدادات حتي تستطيع العثور على أصدقائك", + "Your videos will appear here" : "فيديوهاتك ستظهر هنا", + "No photos in this album yet" : "لا يوجد صِوَرَ في هذا الألبوم حتي الآن", + "Create an album to get started" : "إنشاء ألبوم للبدء", + "Archive photos you don't want to see in your timeline" : "أرشفة الصور التي لا ترغب في رؤيتها على تسلسلك الزمني", + "Tag photos to find them easily" : "وسم الصور للعثور عليها بسهولة", + "Recognize is still working on your photos" : "لا يزال تطبيق التعرف Recognize يعمل على صورك", + "Places you have been to will appear here" : "سوف تظهر الأماكن التي قمت بزيارتها هنا", + "Yes" : "نعم", + "No" : "لا" },"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" } \ No newline at end of file diff --git a/l10n/ast.js b/l10n/ast.js new file mode 100644 index 00000000..a2f7b68c --- /dev/null +++ b/l10n/ast.js @@ -0,0 +1,36 @@ +OC.L10N.register( + "memories", + { + "Download" : "Baxar", + "Settings" : "Configuración", + "Info" : "Información", + "Folders" : "Carpetes", + "Albums" : "Álbumes", + "Tags" : "Etiquetes", + "Metadata" : "Metadatos", + "Photos" : "Semeyes", + "Delete" : "Desaniciar", + "Move" : "Mover", + "External Link" : "Enllaz esternu", + "Template" : "Plantía", + "Public link" : "Enllaz públicu", + "Year" : "Añu", + "Hour" : "Hora", + "Minute" : "Minutu", + "Description" : "Descripción", + "Date / Time" : "Data / Hora", + "EXIF Fields" : "Campos d'EXIF", + "Name" : "Nome", + "Loading …" : "Cargando…", + "High Resolution" : "Resolución alta", + "Original File" : "FIcheru orixinal", + "Public Link" : "Enllaz públicu", + "Value" : "Valor", + "Size" : "Tamañu", + "Position" : "Posición", + "Extension" : "Estensión", + "Name is required." : "El nome ye obligatoriu", + "Yes" : "Sí", + "No" : "Non" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/l10n/ast.json b/l10n/ast.json new file mode 100644 index 00000000..792cc3d9 --- /dev/null +++ b/l10n/ast.json @@ -0,0 +1,34 @@ +{ "translations": { + "Download" : "Baxar", + "Settings" : "Configuración", + "Info" : "Información", + "Folders" : "Carpetes", + "Albums" : "Álbumes", + "Tags" : "Etiquetes", + "Metadata" : "Metadatos", + "Photos" : "Semeyes", + "Delete" : "Desaniciar", + "Move" : "Mover", + "External Link" : "Enllaz esternu", + "Template" : "Plantía", + "Public link" : "Enllaz públicu", + "Year" : "Añu", + "Hour" : "Hora", + "Minute" : "Minutu", + "Description" : "Descripción", + "Date / Time" : "Data / Hora", + "EXIF Fields" : "Campos d'EXIF", + "Name" : "Nome", + "Loading …" : "Cargando…", + "High Resolution" : "Resolución alta", + "Original File" : "FIcheru orixinal", + "Public Link" : "Enllaz públicu", + "Value" : "Valor", + "Size" : "Tamañu", + "Position" : "Posición", + "Extension" : "Estensión", + "Name is required." : "El nome ye obligatoriu", + "Yes" : "Sí", + "No" : "Non" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/l10n/az.js b/l10n/az.js index 0b49b7b4..be35f500 100644 --- a/l10n/az.js +++ b/l10n/az.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Yüklə", "Settings" : "Quraşdırmalar", "Info" : "Info", "Favorites" : "Sevimlilər", @@ -9,11 +10,13 @@ OC.L10N.register( "Edit" : "Dəyişiklik et", "Cancel" : "Dayandır", "Delete" : "Sil", - "Download" : "Yüklə", "Favorite" : "İstəkli", + "Move" : "Move", "General" : "Ümumi", "Close" : "Bağla", "Save" : "Saxla", + "Search" : "Axtarış", + "Save changes" : "Dəyişiklikləri yaddaşa ver", "Month" : "Ay", "Day" : "Gün", "Time" : "Vaxt", @@ -22,15 +25,17 @@ OC.L10N.register( "Reset" : "Sıfırla", "Name" : "Ad", "Update" : "Yenilənmə", - "Search" : "Axtarış", "Remove" : "Sil", "Share link" : "Linki yayımla", "Refresh" : "Yenilə", + "Read only" : "Oxumaq üçün", "Sort by date" : "Order by date", "Sort by name" : "Order by name", "Share" : "Paylaş", "Previous" : "Əvvələ", "Next" : "Növbəti", - "Size" : "Həcm" + "Size" : "Həcm", + "Yes" : "Bəli", + "No" : "Xeyir" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/az.json b/l10n/az.json index 8c6ac190..d1f8c949 100644 --- a/l10n/az.json +++ b/l10n/az.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Yüklə", "Settings" : "Quraşdırmalar", "Info" : "Info", "Favorites" : "Sevimlilər", @@ -7,11 +8,13 @@ "Edit" : "Dəyişiklik et", "Cancel" : "Dayandır", "Delete" : "Sil", - "Download" : "Yüklə", "Favorite" : "İstəkli", + "Move" : "Move", "General" : "Ümumi", "Close" : "Bağla", "Save" : "Saxla", + "Search" : "Axtarış", + "Save changes" : "Dəyişiklikləri yaddaşa ver", "Month" : "Ay", "Day" : "Gün", "Time" : "Vaxt", @@ -20,15 +23,17 @@ "Reset" : "Sıfırla", "Name" : "Ad", "Update" : "Yenilənmə", - "Search" : "Axtarış", "Remove" : "Sil", "Share link" : "Linki yayımla", "Refresh" : "Yenilə", + "Read only" : "Oxumaq üçün", "Sort by date" : "Order by date", "Sort by name" : "Order by name", "Share" : "Paylaş", "Previous" : "Əvvələ", "Next" : "Növbəti", - "Size" : "Həcm" + "Size" : "Həcm", + "Yes" : "Bəli", + "No" : "Xeyir" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/bg.js b/l10n/bg.js index c07f6308..597c284e 100644 --- a/l10n/bg.js +++ b/l10n/bg.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Изтегляне", "Memories" : "Спомени", "Fast, modern and advanced photo management suite" : "Бърз, модерен и усъвършенстван пакет за управление на снимки", "Settings" : "Настройки", @@ -21,7 +22,6 @@ OC.L10N.register( "Recognize" : "Разпознаване", "A better photos experience awaits you" : "Очаква ви по-добро изживяване при управлението на снимки", "Choose the root folder of your timeline to begin" : "Изберете основната папка на вашата времева линия /хронология/, за да започнете", - "If you just installed Memories, run:" : "Ако току-що сте инсталирали приложението Спомени, стартирайте:", "Continue to Memories" : "Продължете към Спомени", "Choose again" : "Изберете отново", "Click here to start" : "Кликнете тук, за да започнете", @@ -29,16 +29,14 @@ OC.L10N.register( "Choose the root of your timeline" : "Изберете основата /началото/ на вашата времева линия ", "The selected folder does not seem to be valid. Try again." : "Избраната папка изглежда не е валидна. Опитайте отново.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Намерени са {n} елементa в {path}","Намерени са {n} елемента в {path}"], + "Metadata" : "Метаданни", "Edit" : "Редактиране", - "No title" : "Без заглавие", - "No description" : "Без описание", "No coordinates" : "Няма координати", "Click edit to set location" : "Кликване върху редактиране, за задаване на местоположение", "Explore" : "Проучи", "Cancel" : "Отказ", "Delete" : "Изтриване", "Remove from album" : "Премахване от албума", - "Download" : "Изтегляне", "Favorite" : "Любими", "Unarchive" : "Разархивиране", "Edit metadata" : "Редактиране на метаданни", @@ -47,9 +45,8 @@ OC.L10N.register( "Add to album" : "Добавяне към албум", "Move to person" : "Преместване към лице", "Remove from person" : "Премахване от лице", - "You are about to download a large number of files. Are you sure?" : "Предстои ви да изтеглите голям брой файлове. Сигурни ли сте?", - "You are about to delete a large number of files. Are you sure?" : "Предстои ви да изтриете голям брой файлове. Сигурни ли сте?", - "You are about to touch a large number of files. Are you sure?" : "Вие сте на път да засегнете голям брой файлове. Сигурни ли сте?", + "Continue" : "Продължаване", + "Move" : "Преместване", "You must enable \"Mark person in preview\" to use this feature" : "За да използвате тази функция, трябва да активирате \"Маркиране на лице в предварителен преглед\".", "Only user \"{user}\" can update this person" : "Само потребителят \"{user}\" може да актуализира това лице", "_{n} selected_::_{n} selected_" : ["{n} избрани","{n} избрани"], @@ -58,8 +55,10 @@ OC.L10N.register( "Timeline Path" : "Път на времева линия/хронология/", "Square grid mode" : "Режим на квадратна мрежа", "Show past photos on top of timeline" : "Показване на последните снимки в горната част на времевата линия", + "Viewer" : "Визуализатор", "Load full size image on zoom" : "Зареждане на изображение в пълен размер при увеличаване на мащаба", "Always load full size image (not recommended)" : "Винаги да се зарежда изображение в пълен размер (не се препоръчва)", + "Account" : "Профил", "Folders Path" : "Път на папките", "Show hidden folders" : "Показване на скрити папки", "Sort folders oldest-first" : "Сортиране на папки, първо най-старите", @@ -70,11 +69,11 @@ OC.L10N.register( "{photoCount} photos" : "{photoCount} снимки", "Failed to load some photos" : "Неуспешно зареждане на някои снимки", "Failed to update setting" : "Неуспешно актуализиране на настройка", - "EXIF Extraction" : "Извличане на EXIF", "Path to packaged exiftool binary" : "Път до пакетираният двоичен файл на exiftool", "You need perl only if the packaged exiftool binary does not work for some reason." : "Нуждаете се от perl скрипт, само ако пакетираният двоичен файл exiftool не работи по някаква причина.", "Use system perl (only if exiftool binary does not work)" : "Използване на системен скрипт perl (само ако двоичният файл exiftool не работи)", - "Media Indexing" : "Индексиране на медии", + "EXIF Extraction" : "Извличане на EXIF", + "External Link" : "Външна връзка", "{n} media files have been indexed" : "Индексирани са {n} медийни файлове", "Automatic Indexing status: {status}" : "Състояние на автоматично индексиране: {status}", "Last index job was run {t} seconds ago." : "Последното задание за индексиране е изпълнено преди {t} секунди.", @@ -82,7 +81,6 @@ OC.L10N.register( "It is still running or was interrupted." : "Все още се изпълнява или е прекъснато.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Поддържа се криптиране само от страна на сървъра (OC_DEFAULT_MODULE), но е активиран друг модул за криптиране.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF индексите се изграждат и проверяват в периодична фонова задача. Бъдете внимателни, когато избирате нещо различно от автоматично индексиране. Например задаването на индексиране само на папки от времевата линия може да доведе до забавяне, преди медията да стане достъпна за потребителите, тъй като потребителят конфигурира времевата линия само след влизане в системата.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Папките с файл \".nomedia\" винаги се изключват от индексиране.", "Index all media automatically (recommended)" : "Автоматично индексиране на всички медии (препоръчително)", "Index per-user timeline folders (not recommended)" : "Индексиране на папки от времевата линия за всеки отделен потребител (не е препоръчително)", "Index a fixed relative path" : "Индексиране на фиксиран относителен път", @@ -93,15 +91,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "Принудително повторно индексиране на всички файлове:", "You can limit indexing by user and/or folder:" : "Можете да ограничите индексирането по потребител и/или папка:", "Clear all existing index tables:" : "Изчистване на всички съществуващи индексни таблици:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Следните MIME типове са конфигурирани правилно за генериране на предварителен преглед. Допълнителна документация:", - "External Link" : "Външна връзка", - "Performance" : "Производителност", + "Media Indexing" : "Индексиране на медии", "HTTPS is enabled" : "HTTPS е активиран", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Осъществявате достъп до тази страница в незащитен контекст. Няколко API на браузъра не са налични, което ще направи приложението Memories много бавно. Активирайте HTTPS на вашия сървър за подобряване на производителността.", "HTTP/2 or HTTP/3 is enabled" : "Активиран е HTTP/2 или HTTP/3", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Силно се препоръчва HTTP/2 или HTTP/3, (открит е {httpVer})", + "Performance" : "Производителност", "Unknown" : "Неизвестен", - "Reverse Geocoding" : "Обратно геокодиране", "Database is populated with {n} geometries." : "Базата данни е попълнена с {n} геометрии.", "Geometry table has not been created." : "Не е създадена таблица с геометрии.", "Looks like the planet data is incomplete." : "Изглежда, че планетарните данни не са пълни.", @@ -111,13 +107,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "Ако долният бутон за импортиране на планетарни данни не работи, използвайте следната команда:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Забележка: геометричните данни се съхраняват в таблицата memories_planet_geometry без префикс.", "Download planet database" : "Изтегляне на планетарна база данни", + "Reverse Geocoding" : "Обратно геокодиране", "Geometry support was not detected in your database" : "Поддръжката на геометрия не е открита във вашата база данни", "MySQL-like geometry support was detected " : "Открита е поддръжка на геометрия, подобна на MySQL ", "Postgres native geometry support was detected" : "Открита е поддръжка на геометрия, базирана на Postgres", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Изглежда, че базата данни вече е настроена. Сигурни ли сте, че искате да изтеглите отново планетарните данни?", "You are about to download the planet database. This may take a while." : "На път сте да изтеглите базата данни на планетата. Това може да отнеме известно време.", "This may also cause all photos to be re-indexed!" : "Това може да доведе и до повторно индексиране на всички снимки!", - "Video Streaming" : "Поточно предаване на видео", "Live transcoding provides for adaptive streaming of videos using HLS." : "Транскодирането в реално време осигурява адаптивно поточно предаване на видеоклипове с помощта на HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Имайте предвид, че това може да бъде много интензивно за процесор без хардуерно ускорение и транскодирането няма да се използва за външно хранилище.", "Enable Transcoding" : "Активиране на транскодирането", @@ -127,14 +123,13 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Автоматично (адаптивно транскодиране)", "Original (transcode with max quality)" : "Оригинално (транскодиране с максимално качество)", "Direct (original video file without transcode)" : "Директно (оригинален видеофайл без транскодиране)", - "Hardware Acceleration" : "Хардуерно ускорение", + "Video Streaming" : "Поточно предаване на видео", "You must first make sure the correct drivers are installed before configuring acceleration." : "Преди да конфигурирате ускорението, първо трябва да се уверите, че са инсталирани правилните драйвери.", "Make sure you test hardware acceleration with various options after enabling." : "Уверете се, че сте тествали хардуерното ускорение с различни опции, след като го активирате.", "Do not enable multiple types of hardware acceleration simultaneously." : "Не активирайте едновременно няколко вида хардуерно ускорение.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Процесорите на Intel, поддържащи QuickSync Video (QSV), както и някои графични процесори на AMD, могат да се използват за транскодиране с помощта на VA-API ускорение.", "For more details on driver installation, check the documentation:" : "За повече подробности относно инсталирането на драйвери, проверете в документацията:", "Enable acceleration with VA-API" : "Активиране на ускорението с VA-API", - "Enable low-power mode (QSV)" : "Активиране на режим с ниска консумация на енергия (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Графичните процесори NVIDIA могат да се използват за транскодиране чрез използване на енкодера NVENC с подходящите драйвери.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "В зависимост от версиите на инсталираните SDK и ffmpeg, трябва да посочите скалера, който да се използва", "No automated tests are available for NVIDIA acceleration." : "Не са налични автоматични тестове за ускорение на NVIDIA.", @@ -146,13 +141,14 @@ OC.L10N.register( "VA-API device ({dev}) not found" : "Устройството VA-API ({dev}) не е намерено", "VA-API device ({dev}) has incorrect permissions" : "Устройството VA-API ({dev}) има неправилни права", "VA-API device status: {status}" : "Статус на устройството VA-AP: {status}", - "Transcoder configuration" : "Конфигурация на транскодер", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Приложението Memories използва go-vod транскодер. Можете да стартирате go-vod външно (напр. в отделен Docker контейнер за хардуерно ускорение) или да използвате вградения транскодер. За да използвате външен транскодер, активирайте следната опция и следвайте инструкциите в документацията:", "Enable external transcoder (go-vod)" : "Активиране на външен транскодер (go-vod)", "Binary path (local only)" : "Бинарен път (само локален)", "Bind address (local only)" : "Обвързващ адрес (само локален)", "Connection address (same as bind if local)" : "Адрес на връзката (същият като адреса на обвързване ако е локален)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} елементa са добавени в албума","{n} елементa са добавени в албума"], + "Template" : "Шаблон", + "No items" : "Без/няма елементи", + "Shared by {user}" : "Споделен от {user}", "Add people or groups who can edit your album" : "Добавяне на хора или групи, които могат да редактират вашият албум", "Search for collaborators" : "Търсене на сътрудници", "Search people or groups" : "Търсене на хора или групи", @@ -174,7 +170,6 @@ OC.L10N.register( "Could not load the selected album" : "Неуспешно зареждане на избрания албум", "Remove Album" : "Премахване на албум", "Are you sure you want to permanently remove album \"{name}\"?" : "Сигурни ли сте, че искате окончателно премахване на албум \"{name}\"?", - "Only user \"{user}\" can delete this album" : "Само потребителят \"{user}\" може да изтрие този албум", "Failed to delete {name}." : "Неуспешно изтриване на {name}.", "Name of the album" : "Име на албума", "Location of the album" : "Местоположение на албума", @@ -186,12 +181,11 @@ OC.L10N.register( "Save" : "Запиши", "Create album" : "Създаване на албум", "Invalid album name; should not contain any slashes." : "Невалидно име на албум; не трябва да съдържа наклонени черти.", - "Add selection to album {albumName}" : "Добавяне на селекция към албум {ablumName}", - "Create a new album." : "Създаване на нов албум.", - "_%n item_::_%n items_" : ["%nелементи ","%n елементи"], - "_Share with %n user_::_Share with %n users_" : ["Споделяне с %n потребители","Споделяне с %n потребители"], + "Search" : "Търсене", + "Save changes" : "Запиши промените", "Share Album" : "Споделяне на Албум", "Save collaborators for this album." : "Запис на сътрудници за този албум.", + "_%n item_::_%n items_" : ["%nелементи ","%n елементи"], "Newest" : "Най-новият", "Year" : "Година", "Month" : "Месец", @@ -228,10 +222,8 @@ OC.L10N.register( "Name" : "Име", "Update" : "Обновяване", "Failed to rename {oldName} to {name}." : "Неуспешно преименуване от {oldName} на {name}.", - "Search" : "Търсене", "Loading …" : "Зареждане …", "Merge {name} with person" : "Обединяване на {name} с лице", - "Are you sure you want to merge {name} with {newName}?" : "Сигурни ли сте, че искате да обедините {name} с {newName}?", "Too many failures, aborting" : "Твърде много грешки от общ характер, прекъсване", "Error while moving {basename}" : "Грешка при преместване на {basename}", "Failed to move {name}." : "Неуспешно преместване на {name}.", @@ -270,7 +262,6 @@ OC.L10N.register( "Sort by name" : "Сортирай по име", "Share album" : "Споделяне на албум", "Download album" : "Изтегляне на албум", - "Delete album" : "Изтриване на албум", "Nothing to show here" : "Тук няма нищо за показване", "Merge with different person" : "Обединяване с различно лице", "Mark person in preview" : "Маркиране на лице в предварителен преглед", @@ -285,7 +276,6 @@ OC.L10N.register( "Drop changes" : "Игнориране на промените", "Share" : "Споделяне", "Play Live Photo" : "Възпроизвеждане на Live Photo/жива снимка/", - "Sidebar" : "Странична лента", "Download Video" : "Изтегляне на видео", "Slideshow" : "Слайдшоу", "Previous" : "Предишно", @@ -301,7 +291,6 @@ OC.L10N.register( "Save as" : "Запиши като", "All changes will be lost." : "Всички промени ще бъдат загубени.", "Are you sure you want to continue?" : "Сигурни ли сте, че искате да продължите?", - "Continue" : "Продължаване", "Undo" : "Отмяна", "Redo" : "Повторение", "Show original image" : "Показване на оригиналното изображение", @@ -410,6 +399,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Поставете етикет на снимките, за да ги намирате лесно", "Recognize is still working on your photos" : "Разпознаването все още работи по снимките ви", "Places you have been to will appear here" : "Местата, на които сте били, ще се появят тук", - "Your Timeline" : "Вашата времева линия" + "Yes" : "Да", + "No" : "Не" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/bg.json b/l10n/bg.json index dfa29213..def65192 100644 --- a/l10n/bg.json +++ b/l10n/bg.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Изтегляне", "Memories" : "Спомени", "Fast, modern and advanced photo management suite" : "Бърз, модерен и усъвършенстван пакет за управление на снимки", "Settings" : "Настройки", @@ -19,7 +20,6 @@ "Recognize" : "Разпознаване", "A better photos experience awaits you" : "Очаква ви по-добро изживяване при управлението на снимки", "Choose the root folder of your timeline to begin" : "Изберете основната папка на вашата времева линия /хронология/, за да започнете", - "If you just installed Memories, run:" : "Ако току-що сте инсталирали приложението Спомени, стартирайте:", "Continue to Memories" : "Продължете към Спомени", "Choose again" : "Изберете отново", "Click here to start" : "Кликнете тук, за да започнете", @@ -27,16 +27,14 @@ "Choose the root of your timeline" : "Изберете основата /началото/ на вашата времева линия ", "The selected folder does not seem to be valid. Try again." : "Избраната папка изглежда не е валидна. Опитайте отново.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Намерени са {n} елементa в {path}","Намерени са {n} елемента в {path}"], + "Metadata" : "Метаданни", "Edit" : "Редактиране", - "No title" : "Без заглавие", - "No description" : "Без описание", "No coordinates" : "Няма координати", "Click edit to set location" : "Кликване върху редактиране, за задаване на местоположение", "Explore" : "Проучи", "Cancel" : "Отказ", "Delete" : "Изтриване", "Remove from album" : "Премахване от албума", - "Download" : "Изтегляне", "Favorite" : "Любими", "Unarchive" : "Разархивиране", "Edit metadata" : "Редактиране на метаданни", @@ -45,9 +43,8 @@ "Add to album" : "Добавяне към албум", "Move to person" : "Преместване към лице", "Remove from person" : "Премахване от лице", - "You are about to download a large number of files. Are you sure?" : "Предстои ви да изтеглите голям брой файлове. Сигурни ли сте?", - "You are about to delete a large number of files. Are you sure?" : "Предстои ви да изтриете голям брой файлове. Сигурни ли сте?", - "You are about to touch a large number of files. Are you sure?" : "Вие сте на път да засегнете голям брой файлове. Сигурни ли сте?", + "Continue" : "Продължаване", + "Move" : "Преместване", "You must enable \"Mark person in preview\" to use this feature" : "За да използвате тази функция, трябва да активирате \"Маркиране на лице в предварителен преглед\".", "Only user \"{user}\" can update this person" : "Само потребителят \"{user}\" може да актуализира това лице", "_{n} selected_::_{n} selected_" : ["{n} избрани","{n} избрани"], @@ -56,8 +53,10 @@ "Timeline Path" : "Път на времева линия/хронология/", "Square grid mode" : "Режим на квадратна мрежа", "Show past photos on top of timeline" : "Показване на последните снимки в горната част на времевата линия", + "Viewer" : "Визуализатор", "Load full size image on zoom" : "Зареждане на изображение в пълен размер при увеличаване на мащаба", "Always load full size image (not recommended)" : "Винаги да се зарежда изображение в пълен размер (не се препоръчва)", + "Account" : "Профил", "Folders Path" : "Път на папките", "Show hidden folders" : "Показване на скрити папки", "Sort folders oldest-first" : "Сортиране на папки, първо най-старите", @@ -68,11 +67,11 @@ "{photoCount} photos" : "{photoCount} снимки", "Failed to load some photos" : "Неуспешно зареждане на някои снимки", "Failed to update setting" : "Неуспешно актуализиране на настройка", - "EXIF Extraction" : "Извличане на EXIF", "Path to packaged exiftool binary" : "Път до пакетираният двоичен файл на exiftool", "You need perl only if the packaged exiftool binary does not work for some reason." : "Нуждаете се от perl скрипт, само ако пакетираният двоичен файл exiftool не работи по някаква причина.", "Use system perl (only if exiftool binary does not work)" : "Използване на системен скрипт perl (само ако двоичният файл exiftool не работи)", - "Media Indexing" : "Индексиране на медии", + "EXIF Extraction" : "Извличане на EXIF", + "External Link" : "Външна връзка", "{n} media files have been indexed" : "Индексирани са {n} медийни файлове", "Automatic Indexing status: {status}" : "Състояние на автоматично индексиране: {status}", "Last index job was run {t} seconds ago." : "Последното задание за индексиране е изпълнено преди {t} секунди.", @@ -80,7 +79,6 @@ "It is still running or was interrupted." : "Все още се изпълнява или е прекъснато.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Поддържа се криптиране само от страна на сървъра (OC_DEFAULT_MODULE), но е активиран друг модул за криптиране.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF индексите се изграждат и проверяват в периодична фонова задача. Бъдете внимателни, когато избирате нещо различно от автоматично индексиране. Например задаването на индексиране само на папки от времевата линия може да доведе до забавяне, преди медията да стане достъпна за потребителите, тъй като потребителят конфигурира времевата линия само след влизане в системата.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Папките с файл \".nomedia\" винаги се изключват от индексиране.", "Index all media automatically (recommended)" : "Автоматично индексиране на всички медии (препоръчително)", "Index per-user timeline folders (not recommended)" : "Индексиране на папки от времевата линия за всеки отделен потребител (не е препоръчително)", "Index a fixed relative path" : "Индексиране на фиксиран относителен път", @@ -91,15 +89,13 @@ "Force re-indexing of all files:" : "Принудително повторно индексиране на всички файлове:", "You can limit indexing by user and/or folder:" : "Можете да ограничите индексирането по потребител и/или папка:", "Clear all existing index tables:" : "Изчистване на всички съществуващи индексни таблици:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Следните MIME типове са конфигурирани правилно за генериране на предварителен преглед. Допълнителна документация:", - "External Link" : "Външна връзка", - "Performance" : "Производителност", + "Media Indexing" : "Индексиране на медии", "HTTPS is enabled" : "HTTPS е активиран", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Осъществявате достъп до тази страница в незащитен контекст. Няколко API на браузъра не са налични, което ще направи приложението Memories много бавно. Активирайте HTTPS на вашия сървър за подобряване на производителността.", "HTTP/2 or HTTP/3 is enabled" : "Активиран е HTTP/2 или HTTP/3", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Силно се препоръчва HTTP/2 или HTTP/3, (открит е {httpVer})", + "Performance" : "Производителност", "Unknown" : "Неизвестен", - "Reverse Geocoding" : "Обратно геокодиране", "Database is populated with {n} geometries." : "Базата данни е попълнена с {n} геометрии.", "Geometry table has not been created." : "Не е създадена таблица с геометрии.", "Looks like the planet data is incomplete." : "Изглежда, че планетарните данни не са пълни.", @@ -109,13 +105,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "Ако долният бутон за импортиране на планетарни данни не работи, използвайте следната команда:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Забележка: геометричните данни се съхраняват в таблицата memories_planet_geometry без префикс.", "Download planet database" : "Изтегляне на планетарна база данни", + "Reverse Geocoding" : "Обратно геокодиране", "Geometry support was not detected in your database" : "Поддръжката на геометрия не е открита във вашата база данни", "MySQL-like geometry support was detected " : "Открита е поддръжка на геометрия, подобна на MySQL ", "Postgres native geometry support was detected" : "Открита е поддръжка на геометрия, базирана на Postgres", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Изглежда, че базата данни вече е настроена. Сигурни ли сте, че искате да изтеглите отново планетарните данни?", "You are about to download the planet database. This may take a while." : "На път сте да изтеглите базата данни на планетата. Това може да отнеме известно време.", "This may also cause all photos to be re-indexed!" : "Това може да доведе и до повторно индексиране на всички снимки!", - "Video Streaming" : "Поточно предаване на видео", "Live transcoding provides for adaptive streaming of videos using HLS." : "Транскодирането в реално време осигурява адаптивно поточно предаване на видеоклипове с помощта на HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Имайте предвид, че това може да бъде много интензивно за процесор без хардуерно ускорение и транскодирането няма да се използва за външно хранилище.", "Enable Transcoding" : "Активиране на транскодирането", @@ -125,14 +121,13 @@ "Auto (adaptive transcode)" : "Автоматично (адаптивно транскодиране)", "Original (transcode with max quality)" : "Оригинално (транскодиране с максимално качество)", "Direct (original video file without transcode)" : "Директно (оригинален видеофайл без транскодиране)", - "Hardware Acceleration" : "Хардуерно ускорение", + "Video Streaming" : "Поточно предаване на видео", "You must first make sure the correct drivers are installed before configuring acceleration." : "Преди да конфигурирате ускорението, първо трябва да се уверите, че са инсталирани правилните драйвери.", "Make sure you test hardware acceleration with various options after enabling." : "Уверете се, че сте тествали хардуерното ускорение с различни опции, след като го активирате.", "Do not enable multiple types of hardware acceleration simultaneously." : "Не активирайте едновременно няколко вида хардуерно ускорение.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Процесорите на Intel, поддържащи QuickSync Video (QSV), както и някои графични процесори на AMD, могат да се използват за транскодиране с помощта на VA-API ускорение.", "For more details on driver installation, check the documentation:" : "За повече подробности относно инсталирането на драйвери, проверете в документацията:", "Enable acceleration with VA-API" : "Активиране на ускорението с VA-API", - "Enable low-power mode (QSV)" : "Активиране на режим с ниска консумация на енергия (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Графичните процесори NVIDIA могат да се използват за транскодиране чрез използване на енкодера NVENC с подходящите драйвери.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "В зависимост от версиите на инсталираните SDK и ffmpeg, трябва да посочите скалера, който да се използва", "No automated tests are available for NVIDIA acceleration." : "Не са налични автоматични тестове за ускорение на NVIDIA.", @@ -144,13 +139,14 @@ "VA-API device ({dev}) not found" : "Устройството VA-API ({dev}) не е намерено", "VA-API device ({dev}) has incorrect permissions" : "Устройството VA-API ({dev}) има неправилни права", "VA-API device status: {status}" : "Статус на устройството VA-AP: {status}", - "Transcoder configuration" : "Конфигурация на транскодер", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Приложението Memories използва go-vod транскодер. Можете да стартирате go-vod външно (напр. в отделен Docker контейнер за хардуерно ускорение) или да използвате вградения транскодер. За да използвате външен транскодер, активирайте следната опция и следвайте инструкциите в документацията:", "Enable external transcoder (go-vod)" : "Активиране на външен транскодер (go-vod)", "Binary path (local only)" : "Бинарен път (само локален)", "Bind address (local only)" : "Обвързващ адрес (само локален)", "Connection address (same as bind if local)" : "Адрес на връзката (същият като адреса на обвързване ако е локален)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} елементa са добавени в албума","{n} елементa са добавени в албума"], + "Template" : "Шаблон", + "No items" : "Без/няма елементи", + "Shared by {user}" : "Споделен от {user}", "Add people or groups who can edit your album" : "Добавяне на хора или групи, които могат да редактират вашият албум", "Search for collaborators" : "Търсене на сътрудници", "Search people or groups" : "Търсене на хора или групи", @@ -172,7 +168,6 @@ "Could not load the selected album" : "Неуспешно зареждане на избрания албум", "Remove Album" : "Премахване на албум", "Are you sure you want to permanently remove album \"{name}\"?" : "Сигурни ли сте, че искате окончателно премахване на албум \"{name}\"?", - "Only user \"{user}\" can delete this album" : "Само потребителят \"{user}\" може да изтрие този албум", "Failed to delete {name}." : "Неуспешно изтриване на {name}.", "Name of the album" : "Име на албума", "Location of the album" : "Местоположение на албума", @@ -184,12 +179,11 @@ "Save" : "Запиши", "Create album" : "Създаване на албум", "Invalid album name; should not contain any slashes." : "Невалидно име на албум; не трябва да съдържа наклонени черти.", - "Add selection to album {albumName}" : "Добавяне на селекция към албум {ablumName}", - "Create a new album." : "Създаване на нов албум.", - "_%n item_::_%n items_" : ["%nелементи ","%n елементи"], - "_Share with %n user_::_Share with %n users_" : ["Споделяне с %n потребители","Споделяне с %n потребители"], + "Search" : "Търсене", + "Save changes" : "Запиши промените", "Share Album" : "Споделяне на Албум", "Save collaborators for this album." : "Запис на сътрудници за този албум.", + "_%n item_::_%n items_" : ["%nелементи ","%n елементи"], "Newest" : "Най-новият", "Year" : "Година", "Month" : "Месец", @@ -226,10 +220,8 @@ "Name" : "Име", "Update" : "Обновяване", "Failed to rename {oldName} to {name}." : "Неуспешно преименуване от {oldName} на {name}.", - "Search" : "Търсене", "Loading …" : "Зареждане …", "Merge {name} with person" : "Обединяване на {name} с лице", - "Are you sure you want to merge {name} with {newName}?" : "Сигурни ли сте, че искате да обедините {name} с {newName}?", "Too many failures, aborting" : "Твърде много грешки от общ характер, прекъсване", "Error while moving {basename}" : "Грешка при преместване на {basename}", "Failed to move {name}." : "Неуспешно преместване на {name}.", @@ -268,7 +260,6 @@ "Sort by name" : "Сортирай по име", "Share album" : "Споделяне на албум", "Download album" : "Изтегляне на албум", - "Delete album" : "Изтриване на албум", "Nothing to show here" : "Тук няма нищо за показване", "Merge with different person" : "Обединяване с различно лице", "Mark person in preview" : "Маркиране на лице в предварителен преглед", @@ -283,7 +274,6 @@ "Drop changes" : "Игнориране на промените", "Share" : "Споделяне", "Play Live Photo" : "Възпроизвеждане на Live Photo/жива снимка/", - "Sidebar" : "Странична лента", "Download Video" : "Изтегляне на видео", "Slideshow" : "Слайдшоу", "Previous" : "Предишно", @@ -299,7 +289,6 @@ "Save as" : "Запиши като", "All changes will be lost." : "Всички промени ще бъдат загубени.", "Are you sure you want to continue?" : "Сигурни ли сте, че искате да продължите?", - "Continue" : "Продължаване", "Undo" : "Отмяна", "Redo" : "Повторение", "Show original image" : "Показване на оригиналното изображение", @@ -408,6 +397,7 @@ "Tag photos to find them easily" : "Поставете етикет на снимките, за да ги намирате лесно", "Recognize is still working on your photos" : "Разпознаването все още работи по снимките ви", "Places you have been to will appear here" : "Местата, на които сте били, ще се появят тук", - "Your Timeline" : "Вашата времева линия" + "Yes" : "Да", + "No" : "Не" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/bn_BD.js b/l10n/bn_BD.js index 088a88ac..06b28d64 100644 --- a/l10n/bn_BD.js +++ b/l10n/bn_BD.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "ডাউনলোড", "Settings" : "সেটিংস", "Info" : "Info", "Favorites" : "প্রিয়জন", @@ -8,13 +9,15 @@ OC.L10N.register( "Edit" : "সম্পাদনা", "Cancel" : "বাতির", "Delete" : "মুছে", - "Download" : "ডাউনলোড", "Favorite" : "প্রিয়জন", + "Continue" : "চালিয়ে যাও", + "Move" : "Move", "General" : "সাধারণ", "Close" : "বন্ধ", "Unknown" : "অজানা", "Back" : "পেছনে যাও", "Save" : "সংরক্ষণ", + "Search" : "Search", "Month" : "মাস", "Day" : "দিবস", "Time" : "সময়", @@ -24,7 +27,6 @@ OC.L10N.register( "Reset" : "পূণঃনির্ধানণ", "Name" : "নাম", "Update" : "পরিবর্ধন", - "Search" : "Search", "Remove" : "অপসারণ", "Share link" : "লিংক ভাগাভাগি করেন", "Refresh" : "নবোদ্যম", @@ -34,7 +36,8 @@ OC.L10N.register( "Share" : "ভাগাভাগি কর", "Previous" : "পূর্ববর্তী", "Next" : "পরবর্তী", - "Continue" : "চালিয়ে যাও", - "Size" : "আকার" + "Size" : "আকার", + "Yes" : "হ্যাঁ", + "No" : "না" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/bn_BD.json b/l10n/bn_BD.json index 829b0317..4cd3266f 100644 --- a/l10n/bn_BD.json +++ b/l10n/bn_BD.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "ডাউনলোড", "Settings" : "সেটিংস", "Info" : "Info", "Favorites" : "প্রিয়জন", @@ -6,13 +7,15 @@ "Edit" : "সম্পাদনা", "Cancel" : "বাতির", "Delete" : "মুছে", - "Download" : "ডাউনলোড", "Favorite" : "প্রিয়জন", + "Continue" : "চালিয়ে যাও", + "Move" : "Move", "General" : "সাধারণ", "Close" : "বন্ধ", "Unknown" : "অজানা", "Back" : "পেছনে যাও", "Save" : "সংরক্ষণ", + "Search" : "Search", "Month" : "মাস", "Day" : "দিবস", "Time" : "সময়", @@ -22,7 +25,6 @@ "Reset" : "পূণঃনির্ধানণ", "Name" : "নাম", "Update" : "পরিবর্ধন", - "Search" : "Search", "Remove" : "অপসারণ", "Share link" : "লিংক ভাগাভাগি করেন", "Refresh" : "নবোদ্যম", @@ -32,7 +34,8 @@ "Share" : "ভাগাভাগি কর", "Previous" : "পূর্ববর্তী", "Next" : "পরবর্তী", - "Continue" : "চালিয়ে যাও", - "Size" : "আকার" + "Size" : "আকার", + "Yes" : "হ্যাঁ", + "No" : "না" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/br.js b/l10n/br.js index e60927bb..30a8aacc 100644 --- a/l10n/br.js +++ b/l10n/br.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Pellgargañ", "Settings" : "Arventennoù", "Info" : "Titouroù", "Favorites" : "Pennrolloù", @@ -10,16 +11,21 @@ OC.L10N.register( "Photos" : "Fotoioù", "Cancel" : "Arrest", "Delete" : "Lemel", - "Download" : "Pellgargañ", "Favorite" : "Pennrollañ", "View in folder" : "Diskwel en teuliad", + "Continue" : "Kendec'hel", + "Move" : "Diplasañ", "General" : "Hollek", + "Viewer" : "Gweller", + "Account" : "Kont", "Close" : "Seriñ", "Unknown" : "Dianv", "Copy public link" : "Eilañ al liamm foran", "Public link" : "Liamm publik", "Back" : "Distro", "Save" : "Enrollañ", + "Search" : "Klask", + "Save changes" : "Enrollañ ar cheñchamantoù", "Month" : "Miz", "Day" : "Deiz", "Title" : "Titl", @@ -27,7 +33,6 @@ OC.L10N.register( "Label" : "Tiketenn", "Name" : "Anv", "Update" : "Hizivaat", - "Search" : "Klask", "Loading …" : "O Kargañ ...", "Remove" : "Lemel", "Share link" : "Lodañ al liamm", @@ -36,8 +41,8 @@ OC.L10N.register( "Unsaved changes" : "Kemmoù n'int ket bet enrollet", "Share" : "Rannan", "Next" : "Da heul", - "Continue" : "Kendec'hel", "Original" : "Orin", - "Size" : "Ment" + "Size" : "Ment", + "No" : "Nann" }, "nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"); diff --git a/l10n/br.json b/l10n/br.json index a94c9bef..359e5ab1 100644 --- a/l10n/br.json +++ b/l10n/br.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Pellgargañ", "Settings" : "Arventennoù", "Info" : "Titouroù", "Favorites" : "Pennrolloù", @@ -8,16 +9,21 @@ "Photos" : "Fotoioù", "Cancel" : "Arrest", "Delete" : "Lemel", - "Download" : "Pellgargañ", "Favorite" : "Pennrollañ", "View in folder" : "Diskwel en teuliad", + "Continue" : "Kendec'hel", + "Move" : "Diplasañ", "General" : "Hollek", + "Viewer" : "Gweller", + "Account" : "Kont", "Close" : "Seriñ", "Unknown" : "Dianv", "Copy public link" : "Eilañ al liamm foran", "Public link" : "Liamm publik", "Back" : "Distro", "Save" : "Enrollañ", + "Search" : "Klask", + "Save changes" : "Enrollañ ar cheñchamantoù", "Month" : "Miz", "Day" : "Deiz", "Title" : "Titl", @@ -25,7 +31,6 @@ "Label" : "Tiketenn", "Name" : "Anv", "Update" : "Hizivaat", - "Search" : "Klask", "Loading …" : "O Kargañ ...", "Remove" : "Lemel", "Share link" : "Lodañ al liamm", @@ -34,8 +39,8 @@ "Unsaved changes" : "Kemmoù n'int ket bet enrollet", "Share" : "Rannan", "Next" : "Da heul", - "Continue" : "Kendec'hel", "Original" : "Orin", - "Size" : "Ment" + "Size" : "Ment", + "No" : "Nann" },"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);" } \ No newline at end of file diff --git a/l10n/bs.js b/l10n/bs.js index 531ea881..b17b8d5b 100644 --- a/l10n/bs.js +++ b/l10n/bs.js @@ -1,24 +1,26 @@ OC.L10N.register( "memories", { + "Download" : "Preuzmi", "Settings" : "Podešavanje", "Info" : "Info", "Favorites" : "Favoriti", "Edit" : "Izmjeni", "Cancel" : "Otkaži", "Delete" : "Obriši", - "Download" : "Preuzmi", "Favorite" : "Favorit", + "Continue" : "Nastavi", + "Move" : "Move", "Close" : "Zatvori", "Unknown" : "Nepoznato", "Save" : "Spremi", + "Search" : "Search", "Month" : "Mjesec", "Day" : "Dan", "Title" : "Naslov", "Description" : "Opis", "Name" : "Ime", "Update" : "Ažuriraj", - "Search" : "Search", "Share link" : "Podijelite vezu", "Password protected" : "Zaštićeno lozinkom", "Sort by date" : "Order by date", @@ -26,7 +28,8 @@ OC.L10N.register( "Share" : "Podjeli", "Previous" : "Prethodno", "Next" : "Sljedeće", - "Continue" : "Nastavi", - "Size" : "Veličina" + "Size" : "Veličina", + "Yes" : "Da", + "No" : "Ne" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/l10n/bs.json b/l10n/bs.json index c4284c63..29d77e82 100644 --- a/l10n/bs.json +++ b/l10n/bs.json @@ -1,22 +1,24 @@ { "translations": { + "Download" : "Preuzmi", "Settings" : "Podešavanje", "Info" : "Info", "Favorites" : "Favoriti", "Edit" : "Izmjeni", "Cancel" : "Otkaži", "Delete" : "Obriši", - "Download" : "Preuzmi", "Favorite" : "Favorit", + "Continue" : "Nastavi", + "Move" : "Move", "Close" : "Zatvori", "Unknown" : "Nepoznato", "Save" : "Spremi", + "Search" : "Search", "Month" : "Mjesec", "Day" : "Dan", "Title" : "Naslov", "Description" : "Opis", "Name" : "Ime", "Update" : "Ažuriraj", - "Search" : "Search", "Share link" : "Podijelite vezu", "Password protected" : "Zaštićeno lozinkom", "Sort by date" : "Order by date", @@ -24,7 +26,8 @@ "Share" : "Podjeli", "Previous" : "Prethodno", "Next" : "Sljedeće", - "Continue" : "Nastavi", - "Size" : "Veličina" + "Size" : "Veličina", + "Yes" : "Da", + "No" : "Ne" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" } \ No newline at end of file diff --git a/l10n/ca.js b/l10n/ca.js index 5371967d..f7b922ac 100644 --- a/l10n/ca.js +++ b/l10n/ca.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Baixa", "Settings" : "Paràmetres", "People" : "Gent", "Info" : "Informació", @@ -15,20 +16,27 @@ OC.L10N.register( "Map" : "Mapa", "Tags" : "Etiquetes", "Recognize" : "Reconeix", + "Metadata" : "Metadades", "Edit" : "Edita", "Photos" : "Fotografies", "Explore" : "Explora", "Cancel" : "Cancel·la", "Delete" : "Suprimeix", - "Download" : "Baixa", "Favorite" : "Preferit", "Unarchive" : "Desbloquejar", "View in folder" : "Visualitza-ho a la carpeta", "Add to album" : "Afegeix a l'àlbum", + "Continue" : "Continua", + "Move" : "Mou", "General" : "General", + "Viewer" : "Visor", + "Account" : "Compte", "Close" : "Tanca", "Performance" : "Rendiment", "Unknown" : "Desconegut", + "Template" : "Plantilla", + "No items" : "No hi ha cap element", + "Shared by {user}" : "Compartit per {user}", "Add people or groups who can edit your album" : "Afegeix persones o grups que puguin editar el teu àlbum", "Search for collaborators" : "Cerca de col·laboradors", "Search people or groups" : "Cerca persones o grups", @@ -56,9 +64,8 @@ OC.L10N.register( "Back to the new album form." : "Tornar al nou formulari de l'àlbum.", "Save" : "Desa", "Create album" : "Crea un àlbum", - "Add selection to album {albumName}" : "Afegeix una selecció a l'àlbum {albumName}", - "Create a new album." : "Crea un àlbum nou.", - "_Share with %n user_::_Share with %n users_" : ["Comparteix amb l'usuari %n","Comparteix amb %n usuaris"], + "Search" : "Cercar", + "Save changes" : "Guarda canvis", "Save collaborators for this album." : "Desa els col·laboradors per a aquest àlbum.", "Year" : "Any", "Month" : "Mes", @@ -72,11 +79,11 @@ OC.L10N.register( "Copyright" : "Copyright", "Empty" : "Buit", "Reset" : "Restableix", + "Collaborative Tags" : "Etiquetes col·laboratives", "Remove person" : "Esborra la persona", "Rename person" : "Reanomena la persona", "Name" : "Cognom", "Update" : "Actualitzar", - "Search" : "Cercar", "Loading …" : "Carregant …", "Remove" : "Elimina", "Share link" : "Comparteix l'enllaç", @@ -88,7 +95,7 @@ OC.L10N.register( "Link copied to clipboard" : "Enllaç copiat al porta-retalls", "Sort by date" : "Ordena per data", "Sort by name" : "Ordena per nom", - "Delete album" : "Suprimeix l'àlbum", + "Unassigned faces" : "Cares sense assignar", "Merge with different person" : "Fusiona amb una persona diferent", "Share folder" : "Comparteix la carpeta", "Error saving image" : "S'ha produït un error en desar la imatge", @@ -101,7 +108,6 @@ OC.L10N.register( "Save as" : "Anomena i desa", "All changes will be lost." : "Tots els canvis es perdran.", "Are you sure you want to continue?" : "Esteu segur que voleu continuar?", - "Continue" : "Continua", "Undo" : "Desfés", "Redo" : "Refer", "Show original image" : "Mostra la imatge original", diff --git a/l10n/ca.json b/l10n/ca.json index 5f9164f5..b6bb16ca 100644 --- a/l10n/ca.json +++ b/l10n/ca.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Baixa", "Settings" : "Paràmetres", "People" : "Gent", "Info" : "Informació", @@ -13,20 +14,27 @@ "Map" : "Mapa", "Tags" : "Etiquetes", "Recognize" : "Reconeix", + "Metadata" : "Metadades", "Edit" : "Edita", "Photos" : "Fotografies", "Explore" : "Explora", "Cancel" : "Cancel·la", "Delete" : "Suprimeix", - "Download" : "Baixa", "Favorite" : "Preferit", "Unarchive" : "Desbloquejar", "View in folder" : "Visualitza-ho a la carpeta", "Add to album" : "Afegeix a l'àlbum", + "Continue" : "Continua", + "Move" : "Mou", "General" : "General", + "Viewer" : "Visor", + "Account" : "Compte", "Close" : "Tanca", "Performance" : "Rendiment", "Unknown" : "Desconegut", + "Template" : "Plantilla", + "No items" : "No hi ha cap element", + "Shared by {user}" : "Compartit per {user}", "Add people or groups who can edit your album" : "Afegeix persones o grups que puguin editar el teu àlbum", "Search for collaborators" : "Cerca de col·laboradors", "Search people or groups" : "Cerca persones o grups", @@ -54,9 +62,8 @@ "Back to the new album form." : "Tornar al nou formulari de l'àlbum.", "Save" : "Desa", "Create album" : "Crea un àlbum", - "Add selection to album {albumName}" : "Afegeix una selecció a l'àlbum {albumName}", - "Create a new album." : "Crea un àlbum nou.", - "_Share with %n user_::_Share with %n users_" : ["Comparteix amb l'usuari %n","Comparteix amb %n usuaris"], + "Search" : "Cercar", + "Save changes" : "Guarda canvis", "Save collaborators for this album." : "Desa els col·laboradors per a aquest àlbum.", "Year" : "Any", "Month" : "Mes", @@ -70,11 +77,11 @@ "Copyright" : "Copyright", "Empty" : "Buit", "Reset" : "Restableix", + "Collaborative Tags" : "Etiquetes col·laboratives", "Remove person" : "Esborra la persona", "Rename person" : "Reanomena la persona", "Name" : "Cognom", "Update" : "Actualitzar", - "Search" : "Cercar", "Loading …" : "Carregant …", "Remove" : "Elimina", "Share link" : "Comparteix l'enllaç", @@ -86,7 +93,7 @@ "Link copied to clipboard" : "Enllaç copiat al porta-retalls", "Sort by date" : "Ordena per data", "Sort by name" : "Ordena per nom", - "Delete album" : "Suprimeix l'àlbum", + "Unassigned faces" : "Cares sense assignar", "Merge with different person" : "Fusiona amb una persona diferent", "Share folder" : "Comparteix la carpeta", "Error saving image" : "S'ha produït un error en desar la imatge", @@ -99,7 +106,6 @@ "Save as" : "Anomena i desa", "All changes will be lost." : "Tots els canvis es perdran.", "Are you sure you want to continue?" : "Esteu segur que voleu continuar?", - "Continue" : "Continua", "Undo" : "Desfés", "Redo" : "Refer", "Show original image" : "Mostra la imatge original", diff --git a/l10n/cs.js b/l10n/cs.js index bb88afaf..c335372d 100644 --- a/l10n/cs.js +++ b/l10n/cs.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Stáhnout", "Memories" : "Vzpomínky", "Fast, modern and advanced photo management suite" : "Rychlá, moderní sada pro správu fotek s pokročilými funkcemi", "Settings" : "Nastavení", @@ -23,17 +24,20 @@ OC.L10N.register( "Face Recognition" : "Rozpoznávání obličejů", "A better photos experience awaits you" : "Lepší zážitek z fotek na vás čeká", "Choose the root folder of your timeline to begin" : "Začněte zvolením kořenové složky vaší časové osy", - "If you just installed Memories, run:" : "Pokud jste Vzpomínky právě nainstalovali, spusťte:", "Continue to Memories" : "Pokračovat do Vzpomínek", "Choose again" : "Zvolit znovu", "Click here to start" : "Začněte kliknutím sem", "You can always change this later in settings" : "Toto je možné kdykoli později změnit v nastavení", + "If you just installed Memories, visit the admin panel first." : "Pokud jste Vzpomínky právě nainstalovali, navštivte nejprve panel pro správu", "Choose the root of your timeline" : "Zvolte kořen vaší časové osy", "The selected folder does not seem to be valid. Try again." : "Vybraná složka se nezdá být platná. Zkuste to znovu.", + "No photos were found in the selected folder." : "Ve vybraných složkách nebyly nalezeny žádné fotky.", + "This can happen because your media is still indexing." : "Toto se může stát protože teprve stále ještě probíhá vytváření rejstříku vašich médií.", + "Visit the admin panel to make sure Memories is configured correctly." : "Jděte na panel pro správu a ověřte, že jsou Vzpomínky správně nastavené.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Nalezena {n} položka v {path}","Nalezeny {n} položky v {path}","Nalezeno {n} položek v {path}","Nalezeny {n} položky v {path}"], + "Metadata" : "Metadata", "Edit" : "Upravit", - "No title" : "Bez nadpisu", - "No description" : "Bez popisu", + "Failed to load metadata" : "Metadata se nepodařilo načíst", "No coordinates" : "Žádné souřadnice", "Click edit to set location" : "Umístění upravíte kliknutím", "Photos" : "Fotky", @@ -41,7 +45,6 @@ OC.L10N.register( "Cancel" : "Storno", "Delete" : "Smazat", "Remove from album" : "Odebrat z alba", - "Download" : "Stáhnout", "Favorite" : "Přidat do oblíbených", "Unarchive" : "Zrušit archivování", "Edit metadata" : "Upravit metadata", @@ -50,9 +53,12 @@ OC.L10N.register( "Add to album" : "Přidat do alba", "Move to person" : "Přesunout pod osobu", "Remove from person" : "Odebrat z osoby", - "You are about to download a large number of files. Are you sure?" : "Chystáte se stahovat si velký počet souborů. Opravdu to chcete?", - "You are about to delete a large number of files. Are you sure?" : "Chystáte se smazat velké množství souborů. Opravdu to chcete?", - "You are about to touch a large number of files. Are you sure?" : "Chystáte se změnit velké množství souborů. Opravdu to chcete?", + "You are about to download a large number of files." : "Chystáte se stahovat si velký počet souborů", + "Continue" : "Pokračovat", + "You are about to delete a large number of files" : "Chystáte se smazat velké množství souborů", + "Failed to delete files" : "Nepodařilo se smazat soubory", + "Move" : "Přesunout", + "You are about to move a large number of files" : "Chystáte se přesunout velké množství souborů", "You must enable \"Mark person in preview\" to use this feature" : "Aby bylo možné používat tuto funkci, je třeba zapnout „Označovat osobu v náhledu", "Only user \"{user}\" can update this person" : "Tuto osobu může aktualizovat pouze uživatel „{user}“", "_{n} selected_::_{n} selected_" : ["{n} vybráno","{n} vybrány","{n} vybráno","{n} vybrány"], @@ -61,48 +67,105 @@ OC.L10N.register( "Timeline Path" : "Popis umístění časové osy", "Square grid mode" : "Režim se čtvercovou mřížkou", "Show past photos on top of timeline" : "Minulé fotky zobrazovat nad časovou osou", + "Viewer" : "Prohlížeč", + "Autoplay Live Photos" : "Automaticky přhrávat živé fotky", "Load full size image on zoom" : "Při přiblížení načíst obrázek v plné velikosti", "Always load full size image (not recommended)" : "Obrázek načítat v plné velikosti vždy (nedoporučeno)", + "Account" : "Účet", + "Logged in as {user}" : "Přihlášeni jako {user}", + "Sign out" : "Odhlásit se", + "Device Folders" : "Složky na zařízení", + "Local folders to include in the timeline view" : "Místní složky, které budou obsahovat zobrazení časové osy", "Folders Path" : "Popis umístění složek", "Show hidden folders" : "Zobrazit skryté složky", "Sort folders oldest-first" : "Seřadit složky od nejstarších", "Sort albums oldest-first" : "Seřadit alba od nejstarších", "Choose Timeline Paths" : "Zvolte trasy časovou osou", "Choose the root for the folders view" : "Zvolte kořen pro zobrazení složek", + "Are you sure you want to log out {user}?" : "Opravdu chcete {user} odhlásit?", "Close" : "Zavřít", "{photoCount} photos" : "{photoCount} fotek", "Failed to load some photos" : "Některé fotky se nepodařilo načíst", "Failed to update setting" : "Nastavení se nepodařilo zaktualizovat", - "EXIF Extraction" : "Získávání EXIF metadat", + "Albums support is enabled through the Photos app." : "Podpora pro alba je realizována prostřednictvím aplikace Fotky.", + "Albums are disabled because the Photos app is not available." : "Alba jsou vypnutá, protože není k dispozici aplikace Fotky.", + "Face Recognition is installed and enabled" : "Rozpoznávání obličejů je nainstalované a zapnuté", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Vytváření náhledů je nainstalované a zapnuté. I tak může být zapotřebí ještě dalšího nastavování.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Vytváření náhledů není nainstalované nebo nastavené. Kvůli tomu mohou být Vzpomínky velmi pomalé.", + "Recommended Apps" : "Doporučené aplikace", "Path to packaged exiftool binary" : "Popis umístění přibaleného spustitelného souboru s exiftool", - "Media Indexing" : "Vytváření rejstříku médií", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Perl je zapotřebí pouze pokud přibalený spustitelný soubor s exiftool z nějakého důvodu nefunguje.", + "Use system perl (only if exiftool binary does not work)" : "Použít perl ze systému (pouze pokud pustitelný soubor s exiftool nefunguje)", + "EXIF Extraction" : "Získávání EXIF metadat", + "You can configure the enabled Nextcloud preview providers below." : "Níže je možné nastavit zapnuté poskytovatele náhledů v Nextcloud.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Pokud pro vytváření náhledů používáte Imaginary, je možné tuto sekci ignorovat.", + "To enable RAW support, install the Camera RAW Previews app." : "Pokud chcete zapnout podporu pro formát RAW, nainstalujte aplikaci Náhledy RAW z fotoaparátu.", + "Documentation." : "Dokumentace.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick je k dispozici [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick není k dispozici.", + "Image editing will not work correctly." : "Upravování obrázků nebude fungovat správně.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Může se stát, že nebude fungovat vytváření náhledů pro některé formáty (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Pomocí tohoto spustitelného souboru budou vytvářeny náhledy videí.", + "Thumbnail generation may not work for videos." : "Může se stát, že nebude fungovat vytváření náhledů pro videa.", + "The following MIME types are configured for preview generation." : "Následující MIME typy jsou nastavené pro vytváření náhledů.", + "Max preview size (trade-off between quality and storage requirements)." : "Nejvyšší umožněná velikost náhledu (kompromis mezi kvalitou a požadavky na prostor na úložišti)", + "Max memory for preview generation (MB)" : "Pro vytváření náhledů využít z operační paměti nejvýše (MB)", + "Max size of preview files (MB)" : "Nejvyšší umožněná velikost souborů s náhledy (MB)", + "File Support" : "Podpora pro soubor", + "Images (JPEG, PNG, GIF, BMP)" : "Obrázky (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videa (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Děkujeme, že jste pro ukládání vašich vzácných dat zvolili Nextcloud a Vzpomínky!", + "Memories is very feature rich and setting it up properly can take some time." : "Vzpomínky je nabité funkcemi a tak správné nastavení může chvíli trvat.", + "If you just installed Memories, make sure you read the getting started guide:" : "Pokud jste vzpomínky právě nainstalovali, nezapomeňte si přečíst příručku Začínáme:", + "External Link" : "Externí odkaz", + "In case you run into any issues or bugs, you can get help through several channels." : "V případě, že narazíte na problémy či chyby, pomoc je možné získat prostřednictvím několika kanálů.", + "Memories is a completely free and open source app under active development." : "Vzpomínky jsou zcela bezplatnou a opensource aplikací, která je aktivně vyvíjena.", + "You can contribute in several ways. See the project page for more details:" : "Podílet se na vývoji je možné vícero způsoby. Podrobnosti jak naleznete na webu projektu:", + "Help & Support" : "Nápověda a podpora", "{n} media files have been indexed" : "{n} souborů s médii bylo zařazeno do rejstříku", + "Automatic Indexing status: {status}" : "Stav automatického vytváření rejstříku: {status}", + "Last index job was run {t} seconds ago." : "Nejnovější úloha vytváření rejstříku proběhla před {t} sekundami.", + "It took {t} seconds to complete." : "Dokončení trvalo {t} sekund.", + "It is still running or was interrupted." : "Pořád probíhá nebo bylo přerušeno.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Zdá se, že od minulé úlohy vytváření rejstříku uplynula více než hodina. Zajistěte, že jsou správně nastavené naplánované úlohy (cron) pro Nextcloud.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Je podporováno pouze šifrování na straně serveru (OC_DEFAULT_MODULE), ale navzdory tomu je zapnutý jiný šifrovací modul.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Rejstříky EXIF metadat jsou vytvářeny a kontrolovány v rámci pravidelné úlohy spouštěné na pozadí. Při vybírání čehokoli jiného než automatického vytváření rejstříků buďte opatrní. Například nastavení vytváření rejstříků pouze na složky s časovou osou může způsobovat prodlevy v dostupnosti médií ", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Složky obsahující soubor „.nomedia“ jsou z vytváření rejstříku vynechávány.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Složky obsahující soubor „.nomedia“ nebo „.nomemories“ jsou z vytváření rejstříku vynechávány.", "Index all media automatically (recommended)" : "Automaticky vytvářet rejstřík ze všech médií (doporučeno)", "Index per-user timeline folders (not recommended)" : "Vytvářet rejstřík ze složek, obsahujících časovou osu pro jednotlivé uživatele (nedoporučováno)", "Index a fixed relative path" : "Vytvářet rejstřík z pevně daného relativního popisu umístění", "Disable background indexing" : "Vypnout vytváření rejstříků na pozadí", "Indexing path (relative, all users)" : "Popis umístění rejstříku (relativní, všichni uživatelé)", "For advanced usage, perform a run of indexing by running:" : "Pro pokročilé použití, spuštění vytvoření rejstříku se provede spuštěním:", + "Run index in parallel with 4 threads:" : "Spustit vytváření rejstříku paralelně ve čtyřech vláknech:", "Force re-indexing of all files:" : "Vynutit znovuvytvoření rejstříku ze všech souborů:", "You can limit indexing by user and/or folder:" : "Je možné omezit vytváření rejstříků pro uživatele nebo složku:", "Clear all existing index tables:" : "Vyčistit veškeré existující tabulky rejstříků:", - "External Link" : "Externí odkaz", - "Performance" : "Výkonnost", + "Media Indexing" : "Vytváření rejstříku médií", "HTTPS is enabled" : "HTTPS je zapnuté", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "K této stránce přistupujete přes nezabezpečený kontext. V důsledku toho nejsou některá API rozhraní prohlížeče k dispozici, což Vzpomínky velmi zpomalí. Zlepšete výkon zapnutím HTTPS na tomto serveru.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 nebo HTTP/3 je zapnuté", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 nebo HTTP/3 je velmi doporučováno (zjištěno {httpVer})", + "Performance" : "Výkonnost", "Unknown" : "Neznámé", - "Reverse Geocoding" : "Obrácené geokódování", + "Database is populated with {n} geometries." : "Databáze je osazena {n} geometriemi.", + "Geometry table has not been created." : "Tabulka geometrie nebyla vytvořena.", + "Looks like the planet data is incomplete." : "Zdá se, že planetární data nejsou úplná.", + "Reverse geocoding has not been configured ({status})." : "Obrácené geokódování nebylo nastaveno ({status}).", "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories podporuje obrácené geokódování, přičemž k tomu nepoužívá služby na Internetu (soukromí). Je založeno na datech z OpenStreetMaps (ukládaných v MySQL či Postgres).", "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Je třeba stáhnout si geografická data do databáze. Je to velmi doporučováno a má nízkou režii.", + "If the button below does not work for importing the planet data, use the following command:" : "Pokud níže uvedené tlačítko pro naimportování planetárních dat nefunguje, použijte následující příkaz:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Pozn.: data o geometrii jsou uložena v tabulce memories_planet_geometry (bez předpony).", "Download planet database" : "Stáhnout si geografickou databázi", + "Reverse Geocoding" : "Obrácené geokódování", "Geometry support was not detected in your database" : "Podpora geometrie nebyla ve vámi využívané databázi zjištěna", "MySQL-like geometry support was detected " : "Podpora geometrie ve stylu MySQL nebyla zjistěna", "Postgres native geometry support was detected" : "Byla zjištěna podpora nativní Postgres geometrie", - "Video Streaming" : "Proudové vysílání videa", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Zdá se, že databáze už je nastavená. Opravdu si přejete planetární data znovu stáhnout?", + "You are about to download the planet database. This may take a while." : "Chystáte se stáhnout si planetární databázi. To může chvíli trvat.", + "This may also cause all photos to be re-indexed!" : "Toto také může způsobit, že bude znovu vytvořen rejstřík všech fotek!", "Live transcoding provides for adaptive streaming of videos using HLS." : "Živé překódovávání poskytuje adaptivní proudové vysílání videí pomocí HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Mějte na paměti, že nebude použito v případě externích úložiště. Dále také, pokud není k dispozici hardwarová akcelerace, toto může velmi silně vytěžovat procesor.", "Enable Transcoding" : "Zapnout překódovávání", @@ -112,13 +175,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Automatická (přizpůsobivé překódování)", "Original (transcode with max quality)" : "Originál (překódovat v nejvyšší možné kvalitě)", "Direct (original video file without transcode)" : "Přímé (původní video soubor bez překódování)", - "Hardware Acceleration" : "Hardwarová akcelerace", + "Video Streaming" : "Proudové vysílání videa", "You must first make sure the correct drivers are installed before configuring acceleration." : "Nejprve je třeba mít nainstalované správné ovladače a pak až nastavovat akceleraci.", "Make sure you test hardware acceleration with various options after enabling." : "Poté co ji zapnete, vyzkoušejte hardwarovou akceleraci pomocí různých voleb.", "Do not enable multiple types of hardware acceleration simultaneously." : "Nezapínejte vícero typů hardwarové akcelerace naráz.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "V případě procesorů Intel, podporujících QuickSync Video (QSV), stejně tak některých grafických čipů AMD, je pro překódovávání možné využít akceleraci přes rozhraní VA-API.", + "For more details on driver installation, check the documentation:" : "Podrobnosti ohledně instalace ovladače naleznete v dokumentaci:", "Enable acceleration with VA-API" : "Zapnout akceleraci pomocí VA-API", - "Enable low-power mode (QSV)" : "Zapnout režim nízké spotřeby (QSV)", + "Enable low-power mode (QSV only)" : "Zapnout režim nízké spotřeby (pouze QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Při použití příhodných ovladačů je pro překódovávání možné na grafických čipech NVIDIA využít NVENC enkodér.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Podle verze nainstalovaného SDK a nástroje ffmepg je třeba zadat které škálování použít", "No automated tests are available for NVIDIA acceleration." : "Pro akceleraci přes NVIDIA nejsou k dispozici automatizované testy.", @@ -126,16 +190,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "Zapnout NVENC Temporal AQ", "NPP scaler" : "NPP škálování", "CUDA scaler" : "CUDA škálování", + "not recommended" : "nedoporučeno", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Kvůli chybě v některých ovladačích hardware mohou být při přehrávání videa nesprávně otočená. V některých případech je možné toto vyřešit otočením videa na akcelerátoru.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Následující předvolby zapněte pouze v případě že jsou videa při přehrávání nesprávně otočená.", + "Enable streaming transpose workaround" : "Zapnout obejití problému transponování proudového vysílání", + "HW Acceleration" : "Hardwarová akcelerace", "VA-API device ({dev}) is readable" : "VA-API zařízení ({dev}) není přístupné pro čtení", "VA-API device ({dev}) not found" : "VA-API zařízení ({dev}) nenalezeno", "VA-API device ({dev}) has incorrect permissions" : "Na VA-API zařízení ({dev}) nejsou správně nastavená práva", "VA-API device status: {status}" : "Stav VA-API zařízení: {status}", - "Transcoder configuration" : "Natavení nástroje pro překódovávání", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Vzpomínky používají pro překódovávání nástroj go-vod. Ten je možné spouštět externě (např. ve zvlášť Docker containeru kvůli hardwarové akceleraci) nebo použít jeho vestavěnou podobu. Pokud chcete použít externí podobu, zapněte následující předvolby a postupujte podle pokynů v dokumentaci:", "Enable external transcoder (go-vod)" : "Zapnout externí nástroj pro překódování (go-vod)", "Binary path (local only)" : "Popis umístění spustitelného souboru (pouze lokální)", "Bind address (local only)" : "Adresa, na kterou navázat (pouze místní)", "Connection address (same as bind if local)" : "Adresa pro připojení (pokud lokální, stejná jako ta pro navázání na)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} položka přidána do alba","{n} položky přidány do alba","{n} položek přidáno do alba","{n} položky přidány do alba"], + "Transcoder" : "Nástroj pro překódovávání", + "Template" : "Šablona", + "No items" : "Žádné položky", + "Shared by {user}" : "Sdílí {user}", + "_{n} item_::_{n} items_" : ["{n} položka","{n} položky","{n} položek","{n} položky"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} fotka zaktualizována","{n} fotky zaktualizovány","{n} fotek zaktualizováno","{n} fotky zaktualizovány"], "Add people or groups who can edit your album" : "Přidejte uživatele či skupiny, kteří mohou album upravovat", "Search for collaborators" : "Vyhledat spolupracující", "Search people or groups" : "Hledat uživatele nebo skupiny", @@ -157,7 +231,6 @@ OC.L10N.register( "Could not load the selected album" : "Nedaří se načíst vybrané album", "Remove Album" : "Odebrat album", "Are you sure you want to permanently remove album \"{name}\"?" : "Opravdu chcete album „{name}“ nevratně odebrat?", - "Only user \"{user}\" can delete this album" : "Toto album může smazat pouze uživatel „{user}“", "Failed to delete {name}." : "Nepodařilo se smazat {name}.", "Name of the album" : "Název alba", "Location of the album" : "Umístění alba", @@ -169,12 +242,14 @@ OC.L10N.register( "Save" : "Uložit", "Create album" : "Vytvořit album", "Invalid album name; should not contain any slashes." : "Neplatný název alba: nemůže obsahovat lomítka.", - "Add selection to album {albumName}" : "Přidat výběr do alba {albumName}", - "Create a new album." : "Vytvořit nové album.", - "_%n item_::_%n items_" : ["%n položka","%n položky","%n položek","%n položky"], - "_Share with %n user_::_Share with %n users_" : ["Nasdílet %n uživateli","Nasdílet %n uživatelům","Nasdílet %n uživatelům","Nasdílet %n uživatelům"], + "Search" : "Hledat", + "Create new album." : "Vytvořit nové album", + "Save changes" : "Uložit změny", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Odebráno z {n} alba","Odebráno ze {n} alb","Odebráno z {n} alb","Odebráno ze {n} alb"], "Share Album" : "Nasdílet album", "Save collaborators for this album." : "Uložit spolupracující pro toto album.", + "shared by {owner}" : "nasdíleno uživatelem {owner}", + "_%n item_::_%n items_" : ["%n položka","%n položky","%n položek","%n položky"], "Newest" : "Nejnovější", "Year" : "Rok", "Month" : "Měsíc", @@ -211,15 +286,19 @@ OC.L10N.register( "Name" : "Název", "Update" : "Aktualizovat", "Failed to rename {oldName} to {name}." : "Nepodařilo se přejmenovat {oldName} na {name}.", - "Search" : "Hledat", "Loading …" : "Načítání…", "Enter name of the new face" : "Zadejte název nové tváře", + "Failed to create face" : "Nepodařilo se vytvořit obličej", "Merge {name} with person" : "Sloučit {name} s osobou", - "Are you sure you want to merge {name} with {newName}?" : "Opravdu chcete sloučit {name} s {newName}?", + "Merge faces" : "Sloučit obličeje", + "Merge {name} with {newName}?" : "Sloučit {name} s {newName}?", + "unnamed person" : "bezejmenná osoba", "Too many failures, aborting" : "Příliš mnoho nezdarů – přerušuje se", "Error while moving {basename}" : "Chyba při přesouvání {basename}", "Failed to move {name}." : "Nepodařilo se přesunout {name}.", "Move selected photos to person" : "Přesunout označené fotky k osobě", + "Move the selected photos to {target}?" : "Přesunout označené fotky k {target}?", + "An error occurred while moving photos from {name}." : "Došlo k chybě při přesouvání fotek z {name}.", "Choose a folder" : "Zvolit složku", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} položka přesunuto do složky","{n} položky přesunuty do složky","{n} položek přesunuto do složky","{n} položky přesunuty do složky"], "Remove" : "Odebrat", @@ -254,10 +333,11 @@ OC.L10N.register( "Sort by name" : "Seřadit podle názvu", "Share album" : "Nasdílet album", "Download album" : "Stáhnout si album", - "Delete album" : "Smazat album", "Nothing to show here" : "Není co zde zobrazit", + "Unassigned faces" : "Nepřiřazené obličeje", "Merge with different person" : "Sloučit s jinou osobou", "Mark person in preview" : "Označovat osobu v náhledu", + "Unnamed person" : "Bezejmenná osoba", "Folder View" : "Zobrazení se složkami", "Timeline View" : "Zobrazení s časovou osou", "Share folder" : "Nasdílet složku", @@ -269,17 +349,22 @@ OC.L10N.register( "Drop changes" : "Zahodit změny", "Share" : "Sdílet", "Play Live Photo" : "Přehrát živé video", - "Sidebar" : "Postranní panel", "Download Video" : "Stáhnout si video", "Slideshow" : "Promítání", "Previous" : "Předchozí", "Next" : "Další", "Editing is currently disabled for Live Photos" : "Pro živé fotky je upravování v tuto chvíli vypnuté", "Are you sure you want to delete?" : "Opravdu chcete smazat?", + "Failed to delete photo" : "Nepodařilo se smazat fotku", + "{name} binary exists and is executable." : "spustitelný soubor {name} existuje a má práva nastavená pro spouštění.", + "{name} binary not found." : "{name} spustitelný soubor nenalezen.", + "{name} binary is not executable." : "spustitelný soubor {name} nemá práva nastavená pro spouštění.", + "{name} failed test: {info}." : "{name} nezdařilý test: {info}.", + "{name} binary exists and is usable ({info})." : "spustitelný soubor {name} existuje a je použitelný ({info}).", + "{name} binary status: {status}." : "stav spustitelného souboru {name}: {status}.", "Save as" : "Uložit jako", "All changes will be lost." : "Veškeré změny budou ztraceny.", "Are you sure you want to continue?" : "Opravdu chcete pokračovat?", - "Continue" : "Pokračovat", "Undo" : "Vrátit zpět", "Redo" : "Zopakovat", "Show original image" : "Zobrazit původní obrázek", @@ -364,6 +449,7 @@ OC.L10N.register( "Auto" : "Automaticky", "Shared Folder" : "Sdílená složka", "Shared Album" : "Sdílené album", + "Failed to remove {filename}." : "{filename} se nepodařilo odebrat.", "Failed to create {albumName}." : "Nepodařilo se vytvořit {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Nepodařilo přejmenovat {currentAlbumName} to {newAlbumName}.", "General Failure" : "Obecný nezdar", @@ -376,6 +462,9 @@ OC.L10N.register( "Failed to favorite files." : "Nepodařilo se přidat soubory mezi oblíbené.", "Failed to favorite some files." : "Některé soubory se nepodařilo označit jako oblíbené", "Failed to favorite {fileName}." : "Nepodařilo se přidat {fileName} do oblíbených.", + "No content-location header found" : "Nenalezena žádná hlavička content-location (umístění obsahu)", + "Failed to create tag {name}: {error}" : "Nepodařilo se vytvořit štítek {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Vzpomínky byly zaktualizovány na {version}. Načtěte stránku znovu, aby se změna projevila.", "Upload some photos and make sure the timeline path is configured" : "Nahrajte nějaké fotky a ověřte, že je nastavený popis umístění časové osy", "Mark photos as favorite to find them easily" : "Abyste je snadno našli, označujte fotky jako oblíbené", "Memories from past years will appear here" : "Vzpomínky z minulých let se zobrazí zde", @@ -388,6 +477,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Abyste je snadno našli, opatřujte fotky štítky", "Recognize is still working on your photos" : "Stále ještě probíhá rozpoznávání vašich fotek", "Places you have been to will appear here" : "Objeví se zde místa, na kterých jste byli", - "Your Timeline" : "Vaše časová osa" + "Yes" : "Ano", + "No" : "Ne" }, "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); diff --git a/l10n/cs.json b/l10n/cs.json index a615c207..5bce6c5c 100644 --- a/l10n/cs.json +++ b/l10n/cs.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Stáhnout", "Memories" : "Vzpomínky", "Fast, modern and advanced photo management suite" : "Rychlá, moderní sada pro správu fotek s pokročilými funkcemi", "Settings" : "Nastavení", @@ -21,17 +22,20 @@ "Face Recognition" : "Rozpoznávání obličejů", "A better photos experience awaits you" : "Lepší zážitek z fotek na vás čeká", "Choose the root folder of your timeline to begin" : "Začněte zvolením kořenové složky vaší časové osy", - "If you just installed Memories, run:" : "Pokud jste Vzpomínky právě nainstalovali, spusťte:", "Continue to Memories" : "Pokračovat do Vzpomínek", "Choose again" : "Zvolit znovu", "Click here to start" : "Začněte kliknutím sem", "You can always change this later in settings" : "Toto je možné kdykoli později změnit v nastavení", + "If you just installed Memories, visit the admin panel first." : "Pokud jste Vzpomínky právě nainstalovali, navštivte nejprve panel pro správu", "Choose the root of your timeline" : "Zvolte kořen vaší časové osy", "The selected folder does not seem to be valid. Try again." : "Vybraná složka se nezdá být platná. Zkuste to znovu.", + "No photos were found in the selected folder." : "Ve vybraných složkách nebyly nalezeny žádné fotky.", + "This can happen because your media is still indexing." : "Toto se může stát protože teprve stále ještě probíhá vytváření rejstříku vašich médií.", + "Visit the admin panel to make sure Memories is configured correctly." : "Jděte na panel pro správu a ověřte, že jsou Vzpomínky správně nastavené.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Nalezena {n} položka v {path}","Nalezeny {n} položky v {path}","Nalezeno {n} položek v {path}","Nalezeny {n} položky v {path}"], + "Metadata" : "Metadata", "Edit" : "Upravit", - "No title" : "Bez nadpisu", - "No description" : "Bez popisu", + "Failed to load metadata" : "Metadata se nepodařilo načíst", "No coordinates" : "Žádné souřadnice", "Click edit to set location" : "Umístění upravíte kliknutím", "Photos" : "Fotky", @@ -39,7 +43,6 @@ "Cancel" : "Storno", "Delete" : "Smazat", "Remove from album" : "Odebrat z alba", - "Download" : "Stáhnout", "Favorite" : "Přidat do oblíbených", "Unarchive" : "Zrušit archivování", "Edit metadata" : "Upravit metadata", @@ -48,9 +51,12 @@ "Add to album" : "Přidat do alba", "Move to person" : "Přesunout pod osobu", "Remove from person" : "Odebrat z osoby", - "You are about to download a large number of files. Are you sure?" : "Chystáte se stahovat si velký počet souborů. Opravdu to chcete?", - "You are about to delete a large number of files. Are you sure?" : "Chystáte se smazat velké množství souborů. Opravdu to chcete?", - "You are about to touch a large number of files. Are you sure?" : "Chystáte se změnit velké množství souborů. Opravdu to chcete?", + "You are about to download a large number of files." : "Chystáte se stahovat si velký počet souborů", + "Continue" : "Pokračovat", + "You are about to delete a large number of files" : "Chystáte se smazat velké množství souborů", + "Failed to delete files" : "Nepodařilo se smazat soubory", + "Move" : "Přesunout", + "You are about to move a large number of files" : "Chystáte se přesunout velké množství souborů", "You must enable \"Mark person in preview\" to use this feature" : "Aby bylo možné používat tuto funkci, je třeba zapnout „Označovat osobu v náhledu", "Only user \"{user}\" can update this person" : "Tuto osobu může aktualizovat pouze uživatel „{user}“", "_{n} selected_::_{n} selected_" : ["{n} vybráno","{n} vybrány","{n} vybráno","{n} vybrány"], @@ -59,48 +65,105 @@ "Timeline Path" : "Popis umístění časové osy", "Square grid mode" : "Režim se čtvercovou mřížkou", "Show past photos on top of timeline" : "Minulé fotky zobrazovat nad časovou osou", + "Viewer" : "Prohlížeč", + "Autoplay Live Photos" : "Automaticky přhrávat živé fotky", "Load full size image on zoom" : "Při přiblížení načíst obrázek v plné velikosti", "Always load full size image (not recommended)" : "Obrázek načítat v plné velikosti vždy (nedoporučeno)", + "Account" : "Účet", + "Logged in as {user}" : "Přihlášeni jako {user}", + "Sign out" : "Odhlásit se", + "Device Folders" : "Složky na zařízení", + "Local folders to include in the timeline view" : "Místní složky, které budou obsahovat zobrazení časové osy", "Folders Path" : "Popis umístění složek", "Show hidden folders" : "Zobrazit skryté složky", "Sort folders oldest-first" : "Seřadit složky od nejstarších", "Sort albums oldest-first" : "Seřadit alba od nejstarších", "Choose Timeline Paths" : "Zvolte trasy časovou osou", "Choose the root for the folders view" : "Zvolte kořen pro zobrazení složek", + "Are you sure you want to log out {user}?" : "Opravdu chcete {user} odhlásit?", "Close" : "Zavřít", "{photoCount} photos" : "{photoCount} fotek", "Failed to load some photos" : "Některé fotky se nepodařilo načíst", "Failed to update setting" : "Nastavení se nepodařilo zaktualizovat", - "EXIF Extraction" : "Získávání EXIF metadat", + "Albums support is enabled through the Photos app." : "Podpora pro alba je realizována prostřednictvím aplikace Fotky.", + "Albums are disabled because the Photos app is not available." : "Alba jsou vypnutá, protože není k dispozici aplikace Fotky.", + "Face Recognition is installed and enabled" : "Rozpoznávání obličejů je nainstalované a zapnuté", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Vytváření náhledů je nainstalované a zapnuté. I tak může být zapotřebí ještě dalšího nastavování.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Vytváření náhledů není nainstalované nebo nastavené. Kvůli tomu mohou být Vzpomínky velmi pomalé.", + "Recommended Apps" : "Doporučené aplikace", "Path to packaged exiftool binary" : "Popis umístění přibaleného spustitelného souboru s exiftool", - "Media Indexing" : "Vytváření rejstříku médií", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Perl je zapotřebí pouze pokud přibalený spustitelný soubor s exiftool z nějakého důvodu nefunguje.", + "Use system perl (only if exiftool binary does not work)" : "Použít perl ze systému (pouze pokud pustitelný soubor s exiftool nefunguje)", + "EXIF Extraction" : "Získávání EXIF metadat", + "You can configure the enabled Nextcloud preview providers below." : "Níže je možné nastavit zapnuté poskytovatele náhledů v Nextcloud.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Pokud pro vytváření náhledů používáte Imaginary, je možné tuto sekci ignorovat.", + "To enable RAW support, install the Camera RAW Previews app." : "Pokud chcete zapnout podporu pro formát RAW, nainstalujte aplikaci Náhledy RAW z fotoaparátu.", + "Documentation." : "Dokumentace.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick je k dispozici [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick není k dispozici.", + "Image editing will not work correctly." : "Upravování obrázků nebude fungovat správně.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Může se stát, že nebude fungovat vytváření náhledů pro některé formáty (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Pomocí tohoto spustitelného souboru budou vytvářeny náhledy videí.", + "Thumbnail generation may not work for videos." : "Může se stát, že nebude fungovat vytváření náhledů pro videa.", + "The following MIME types are configured for preview generation." : "Následující MIME typy jsou nastavené pro vytváření náhledů.", + "Max preview size (trade-off between quality and storage requirements)." : "Nejvyšší umožněná velikost náhledu (kompromis mezi kvalitou a požadavky na prostor na úložišti)", + "Max memory for preview generation (MB)" : "Pro vytváření náhledů využít z operační paměti nejvýše (MB)", + "Max size of preview files (MB)" : "Nejvyšší umožněná velikost souborů s náhledy (MB)", + "File Support" : "Podpora pro soubor", + "Images (JPEG, PNG, GIF, BMP)" : "Obrázky (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videa (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Děkujeme, že jste pro ukládání vašich vzácných dat zvolili Nextcloud a Vzpomínky!", + "Memories is very feature rich and setting it up properly can take some time." : "Vzpomínky je nabité funkcemi a tak správné nastavení může chvíli trvat.", + "If you just installed Memories, make sure you read the getting started guide:" : "Pokud jste vzpomínky právě nainstalovali, nezapomeňte si přečíst příručku Začínáme:", + "External Link" : "Externí odkaz", + "In case you run into any issues or bugs, you can get help through several channels." : "V případě, že narazíte na problémy či chyby, pomoc je možné získat prostřednictvím několika kanálů.", + "Memories is a completely free and open source app under active development." : "Vzpomínky jsou zcela bezplatnou a opensource aplikací, která je aktivně vyvíjena.", + "You can contribute in several ways. See the project page for more details:" : "Podílet se na vývoji je možné vícero způsoby. Podrobnosti jak naleznete na webu projektu:", + "Help & Support" : "Nápověda a podpora", "{n} media files have been indexed" : "{n} souborů s médii bylo zařazeno do rejstříku", + "Automatic Indexing status: {status}" : "Stav automatického vytváření rejstříku: {status}", + "Last index job was run {t} seconds ago." : "Nejnovější úloha vytváření rejstříku proběhla před {t} sekundami.", + "It took {t} seconds to complete." : "Dokončení trvalo {t} sekund.", + "It is still running or was interrupted." : "Pořád probíhá nebo bylo přerušeno.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Zdá se, že od minulé úlohy vytváření rejstříku uplynula více než hodina. Zajistěte, že jsou správně nastavené naplánované úlohy (cron) pro Nextcloud.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Je podporováno pouze šifrování na straně serveru (OC_DEFAULT_MODULE), ale navzdory tomu je zapnutý jiný šifrovací modul.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Rejstříky EXIF metadat jsou vytvářeny a kontrolovány v rámci pravidelné úlohy spouštěné na pozadí. Při vybírání čehokoli jiného než automatického vytváření rejstříků buďte opatrní. Například nastavení vytváření rejstříků pouze na složky s časovou osou může způsobovat prodlevy v dostupnosti médií ", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Složky obsahující soubor „.nomedia“ jsou z vytváření rejstříku vynechávány.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Složky obsahující soubor „.nomedia“ nebo „.nomemories“ jsou z vytváření rejstříku vynechávány.", "Index all media automatically (recommended)" : "Automaticky vytvářet rejstřík ze všech médií (doporučeno)", "Index per-user timeline folders (not recommended)" : "Vytvářet rejstřík ze složek, obsahujících časovou osu pro jednotlivé uživatele (nedoporučováno)", "Index a fixed relative path" : "Vytvářet rejstřík z pevně daného relativního popisu umístění", "Disable background indexing" : "Vypnout vytváření rejstříků na pozadí", "Indexing path (relative, all users)" : "Popis umístění rejstříku (relativní, všichni uživatelé)", "For advanced usage, perform a run of indexing by running:" : "Pro pokročilé použití, spuštění vytvoření rejstříku se provede spuštěním:", + "Run index in parallel with 4 threads:" : "Spustit vytváření rejstříku paralelně ve čtyřech vláknech:", "Force re-indexing of all files:" : "Vynutit znovuvytvoření rejstříku ze všech souborů:", "You can limit indexing by user and/or folder:" : "Je možné omezit vytváření rejstříků pro uživatele nebo složku:", "Clear all existing index tables:" : "Vyčistit veškeré existující tabulky rejstříků:", - "External Link" : "Externí odkaz", - "Performance" : "Výkonnost", + "Media Indexing" : "Vytváření rejstříku médií", "HTTPS is enabled" : "HTTPS je zapnuté", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "K této stránce přistupujete přes nezabezpečený kontext. V důsledku toho nejsou některá API rozhraní prohlížeče k dispozici, což Vzpomínky velmi zpomalí. Zlepšete výkon zapnutím HTTPS na tomto serveru.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 nebo HTTP/3 je zapnuté", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 nebo HTTP/3 je velmi doporučováno (zjištěno {httpVer})", + "Performance" : "Výkonnost", "Unknown" : "Neznámé", - "Reverse Geocoding" : "Obrácené geokódování", + "Database is populated with {n} geometries." : "Databáze je osazena {n} geometriemi.", + "Geometry table has not been created." : "Tabulka geometrie nebyla vytvořena.", + "Looks like the planet data is incomplete." : "Zdá se, že planetární data nejsou úplná.", + "Reverse geocoding has not been configured ({status})." : "Obrácené geokódování nebylo nastaveno ({status}).", "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories podporuje obrácené geokódování, přičemž k tomu nepoužívá služby na Internetu (soukromí). Je založeno na datech z OpenStreetMaps (ukládaných v MySQL či Postgres).", "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Je třeba stáhnout si geografická data do databáze. Je to velmi doporučováno a má nízkou režii.", + "If the button below does not work for importing the planet data, use the following command:" : "Pokud níže uvedené tlačítko pro naimportování planetárních dat nefunguje, použijte následující příkaz:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Pozn.: data o geometrii jsou uložena v tabulce memories_planet_geometry (bez předpony).", "Download planet database" : "Stáhnout si geografickou databázi", + "Reverse Geocoding" : "Obrácené geokódování", "Geometry support was not detected in your database" : "Podpora geometrie nebyla ve vámi využívané databázi zjištěna", "MySQL-like geometry support was detected " : "Podpora geometrie ve stylu MySQL nebyla zjistěna", "Postgres native geometry support was detected" : "Byla zjištěna podpora nativní Postgres geometrie", - "Video Streaming" : "Proudové vysílání videa", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Zdá se, že databáze už je nastavená. Opravdu si přejete planetární data znovu stáhnout?", + "You are about to download the planet database. This may take a while." : "Chystáte se stáhnout si planetární databázi. To může chvíli trvat.", + "This may also cause all photos to be re-indexed!" : "Toto také může způsobit, že bude znovu vytvořen rejstřík všech fotek!", "Live transcoding provides for adaptive streaming of videos using HLS." : "Živé překódovávání poskytuje adaptivní proudové vysílání videí pomocí HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Mějte na paměti, že nebude použito v případě externích úložiště. Dále také, pokud není k dispozici hardwarová akcelerace, toto může velmi silně vytěžovat procesor.", "Enable Transcoding" : "Zapnout překódovávání", @@ -110,13 +173,14 @@ "Auto (adaptive transcode)" : "Automatická (přizpůsobivé překódování)", "Original (transcode with max quality)" : "Originál (překódovat v nejvyšší možné kvalitě)", "Direct (original video file without transcode)" : "Přímé (původní video soubor bez překódování)", - "Hardware Acceleration" : "Hardwarová akcelerace", + "Video Streaming" : "Proudové vysílání videa", "You must first make sure the correct drivers are installed before configuring acceleration." : "Nejprve je třeba mít nainstalované správné ovladače a pak až nastavovat akceleraci.", "Make sure you test hardware acceleration with various options after enabling." : "Poté co ji zapnete, vyzkoušejte hardwarovou akceleraci pomocí různých voleb.", "Do not enable multiple types of hardware acceleration simultaneously." : "Nezapínejte vícero typů hardwarové akcelerace naráz.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "V případě procesorů Intel, podporujících QuickSync Video (QSV), stejně tak některých grafických čipů AMD, je pro překódovávání možné využít akceleraci přes rozhraní VA-API.", + "For more details on driver installation, check the documentation:" : "Podrobnosti ohledně instalace ovladače naleznete v dokumentaci:", "Enable acceleration with VA-API" : "Zapnout akceleraci pomocí VA-API", - "Enable low-power mode (QSV)" : "Zapnout režim nízké spotřeby (QSV)", + "Enable low-power mode (QSV only)" : "Zapnout režim nízké spotřeby (pouze QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Při použití příhodných ovladačů je pro překódovávání možné na grafických čipech NVIDIA využít NVENC enkodér.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Podle verze nainstalovaného SDK a nástroje ffmepg je třeba zadat které škálování použít", "No automated tests are available for NVIDIA acceleration." : "Pro akceleraci přes NVIDIA nejsou k dispozici automatizované testy.", @@ -124,16 +188,26 @@ "Enable NVENC Temporal AQ" : "Zapnout NVENC Temporal AQ", "NPP scaler" : "NPP škálování", "CUDA scaler" : "CUDA škálování", + "not recommended" : "nedoporučeno", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Kvůli chybě v některých ovladačích hardware mohou být při přehrávání videa nesprávně otočená. V některých případech je možné toto vyřešit otočením videa na akcelerátoru.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Následující předvolby zapněte pouze v případě že jsou videa při přehrávání nesprávně otočená.", + "Enable streaming transpose workaround" : "Zapnout obejití problému transponování proudového vysílání", + "HW Acceleration" : "Hardwarová akcelerace", "VA-API device ({dev}) is readable" : "VA-API zařízení ({dev}) není přístupné pro čtení", "VA-API device ({dev}) not found" : "VA-API zařízení ({dev}) nenalezeno", "VA-API device ({dev}) has incorrect permissions" : "Na VA-API zařízení ({dev}) nejsou správně nastavená práva", "VA-API device status: {status}" : "Stav VA-API zařízení: {status}", - "Transcoder configuration" : "Natavení nástroje pro překódovávání", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Vzpomínky používají pro překódovávání nástroj go-vod. Ten je možné spouštět externě (např. ve zvlášť Docker containeru kvůli hardwarové akceleraci) nebo použít jeho vestavěnou podobu. Pokud chcete použít externí podobu, zapněte následující předvolby a postupujte podle pokynů v dokumentaci:", "Enable external transcoder (go-vod)" : "Zapnout externí nástroj pro překódování (go-vod)", "Binary path (local only)" : "Popis umístění spustitelného souboru (pouze lokální)", "Bind address (local only)" : "Adresa, na kterou navázat (pouze místní)", "Connection address (same as bind if local)" : "Adresa pro připojení (pokud lokální, stejná jako ta pro navázání na)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} položka přidána do alba","{n} položky přidány do alba","{n} položek přidáno do alba","{n} položky přidány do alba"], + "Transcoder" : "Nástroj pro překódovávání", + "Template" : "Šablona", + "No items" : "Žádné položky", + "Shared by {user}" : "Sdílí {user}", + "_{n} item_::_{n} items_" : ["{n} položka","{n} položky","{n} položek","{n} položky"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} fotka zaktualizována","{n} fotky zaktualizovány","{n} fotek zaktualizováno","{n} fotky zaktualizovány"], "Add people or groups who can edit your album" : "Přidejte uživatele či skupiny, kteří mohou album upravovat", "Search for collaborators" : "Vyhledat spolupracující", "Search people or groups" : "Hledat uživatele nebo skupiny", @@ -155,7 +229,6 @@ "Could not load the selected album" : "Nedaří se načíst vybrané album", "Remove Album" : "Odebrat album", "Are you sure you want to permanently remove album \"{name}\"?" : "Opravdu chcete album „{name}“ nevratně odebrat?", - "Only user \"{user}\" can delete this album" : "Toto album může smazat pouze uživatel „{user}“", "Failed to delete {name}." : "Nepodařilo se smazat {name}.", "Name of the album" : "Název alba", "Location of the album" : "Umístění alba", @@ -167,12 +240,14 @@ "Save" : "Uložit", "Create album" : "Vytvořit album", "Invalid album name; should not contain any slashes." : "Neplatný název alba: nemůže obsahovat lomítka.", - "Add selection to album {albumName}" : "Přidat výběr do alba {albumName}", - "Create a new album." : "Vytvořit nové album.", - "_%n item_::_%n items_" : ["%n položka","%n položky","%n položek","%n položky"], - "_Share with %n user_::_Share with %n users_" : ["Nasdílet %n uživateli","Nasdílet %n uživatelům","Nasdílet %n uživatelům","Nasdílet %n uživatelům"], + "Search" : "Hledat", + "Create new album." : "Vytvořit nové album", + "Save changes" : "Uložit změny", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Odebráno z {n} alba","Odebráno ze {n} alb","Odebráno z {n} alb","Odebráno ze {n} alb"], "Share Album" : "Nasdílet album", "Save collaborators for this album." : "Uložit spolupracující pro toto album.", + "shared by {owner}" : "nasdíleno uživatelem {owner}", + "_%n item_::_%n items_" : ["%n položka","%n položky","%n položek","%n položky"], "Newest" : "Nejnovější", "Year" : "Rok", "Month" : "Měsíc", @@ -209,15 +284,19 @@ "Name" : "Název", "Update" : "Aktualizovat", "Failed to rename {oldName} to {name}." : "Nepodařilo se přejmenovat {oldName} na {name}.", - "Search" : "Hledat", "Loading …" : "Načítání…", "Enter name of the new face" : "Zadejte název nové tváře", + "Failed to create face" : "Nepodařilo se vytvořit obličej", "Merge {name} with person" : "Sloučit {name} s osobou", - "Are you sure you want to merge {name} with {newName}?" : "Opravdu chcete sloučit {name} s {newName}?", + "Merge faces" : "Sloučit obličeje", + "Merge {name} with {newName}?" : "Sloučit {name} s {newName}?", + "unnamed person" : "bezejmenná osoba", "Too many failures, aborting" : "Příliš mnoho nezdarů – přerušuje se", "Error while moving {basename}" : "Chyba při přesouvání {basename}", "Failed to move {name}." : "Nepodařilo se přesunout {name}.", "Move selected photos to person" : "Přesunout označené fotky k osobě", + "Move the selected photos to {target}?" : "Přesunout označené fotky k {target}?", + "An error occurred while moving photos from {name}." : "Došlo k chybě při přesouvání fotek z {name}.", "Choose a folder" : "Zvolit složku", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} položka přesunuto do složky","{n} položky přesunuty do složky","{n} položek přesunuto do složky","{n} položky přesunuty do složky"], "Remove" : "Odebrat", @@ -252,10 +331,11 @@ "Sort by name" : "Seřadit podle názvu", "Share album" : "Nasdílet album", "Download album" : "Stáhnout si album", - "Delete album" : "Smazat album", "Nothing to show here" : "Není co zde zobrazit", + "Unassigned faces" : "Nepřiřazené obličeje", "Merge with different person" : "Sloučit s jinou osobou", "Mark person in preview" : "Označovat osobu v náhledu", + "Unnamed person" : "Bezejmenná osoba", "Folder View" : "Zobrazení se složkami", "Timeline View" : "Zobrazení s časovou osou", "Share folder" : "Nasdílet složku", @@ -267,17 +347,22 @@ "Drop changes" : "Zahodit změny", "Share" : "Sdílet", "Play Live Photo" : "Přehrát živé video", - "Sidebar" : "Postranní panel", "Download Video" : "Stáhnout si video", "Slideshow" : "Promítání", "Previous" : "Předchozí", "Next" : "Další", "Editing is currently disabled for Live Photos" : "Pro živé fotky je upravování v tuto chvíli vypnuté", "Are you sure you want to delete?" : "Opravdu chcete smazat?", + "Failed to delete photo" : "Nepodařilo se smazat fotku", + "{name} binary exists and is executable." : "spustitelný soubor {name} existuje a má práva nastavená pro spouštění.", + "{name} binary not found." : "{name} spustitelný soubor nenalezen.", + "{name} binary is not executable." : "spustitelný soubor {name} nemá práva nastavená pro spouštění.", + "{name} failed test: {info}." : "{name} nezdařilý test: {info}.", + "{name} binary exists and is usable ({info})." : "spustitelný soubor {name} existuje a je použitelný ({info}).", + "{name} binary status: {status}." : "stav spustitelného souboru {name}: {status}.", "Save as" : "Uložit jako", "All changes will be lost." : "Veškeré změny budou ztraceny.", "Are you sure you want to continue?" : "Opravdu chcete pokračovat?", - "Continue" : "Pokračovat", "Undo" : "Vrátit zpět", "Redo" : "Zopakovat", "Show original image" : "Zobrazit původní obrázek", @@ -362,6 +447,7 @@ "Auto" : "Automaticky", "Shared Folder" : "Sdílená složka", "Shared Album" : "Sdílené album", + "Failed to remove {filename}." : "{filename} se nepodařilo odebrat.", "Failed to create {albumName}." : "Nepodařilo se vytvořit {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Nepodařilo přejmenovat {currentAlbumName} to {newAlbumName}.", "General Failure" : "Obecný nezdar", @@ -374,6 +460,9 @@ "Failed to favorite files." : "Nepodařilo se přidat soubory mezi oblíbené.", "Failed to favorite some files." : "Některé soubory se nepodařilo označit jako oblíbené", "Failed to favorite {fileName}." : "Nepodařilo se přidat {fileName} do oblíbených.", + "No content-location header found" : "Nenalezena žádná hlavička content-location (umístění obsahu)", + "Failed to create tag {name}: {error}" : "Nepodařilo se vytvořit štítek {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Vzpomínky byly zaktualizovány na {version}. Načtěte stránku znovu, aby se změna projevila.", "Upload some photos and make sure the timeline path is configured" : "Nahrajte nějaké fotky a ověřte, že je nastavený popis umístění časové osy", "Mark photos as favorite to find them easily" : "Abyste je snadno našli, označujte fotky jako oblíbené", "Memories from past years will appear here" : "Vzpomínky z minulých let se zobrazí zde", @@ -386,6 +475,7 @@ "Tag photos to find them easily" : "Abyste je snadno našli, opatřujte fotky štítky", "Recognize is still working on your photos" : "Stále ještě probíhá rozpoznávání vašich fotek", "Places you have been to will appear here" : "Objeví se zde místa, na kterých jste byli", - "Your Timeline" : "Vaše časová osa" + "Yes" : "Ano", + "No" : "Ne" },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" } \ No newline at end of file diff --git a/l10n/cy_GB.js b/l10n/cy_GB.js index 9f5ca114..53c99017 100644 --- a/l10n/cy_GB.js +++ b/l10n/cy_GB.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Llwytho i lawr", "Settings" : "Gosodiadau", "Info" : "Info", "Favorites" : "Ffefrynnau", @@ -11,14 +12,16 @@ OC.L10N.register( "Photos" : "Lluniau", "Cancel" : "Diddymu", "Delete" : "Dileu", - "Download" : "Llwytho i lawr", "Favorite" : "Ffefryn", + "Move" : "Symud", "General" : "Cyffredinol", + "Account" : "Cyfrif", "Close" : "Cau", "Unknown" : "Anhysbys", "Copy public link" : "Copïo dolen gyhoeddus", "Back" : "Nôl", "Save" : "Cadw", + "Search" : "Chwilio", "Year" : "Blwyddyn", "Month" : "Mis", "Day" : "Diwrnod", @@ -27,7 +30,6 @@ OC.L10N.register( "Description" : "Disgrifiad", "Name" : "Enw", "Update" : "Diweddaru", - "Search" : "Chwilio", "Loading …" : "Yn llwytho …", "Remove" : "Gwaredu", "Share link" : "Rhannu dolen", @@ -41,6 +43,8 @@ OC.L10N.register( "Undo" : "Dadwneud", "Custom" : "Cyfaddas", "Size" : "Maint", - "Auto" : "Awto" + "Auto" : "Awto", + "Yes" : "Ie", + "No" : "Na" }, "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/l10n/cy_GB.json b/l10n/cy_GB.json index 610c4c25..873a3c92 100644 --- a/l10n/cy_GB.json +++ b/l10n/cy_GB.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Llwytho i lawr", "Settings" : "Gosodiadau", "Info" : "Info", "Favorites" : "Ffefrynnau", @@ -9,14 +10,16 @@ "Photos" : "Lluniau", "Cancel" : "Diddymu", "Delete" : "Dileu", - "Download" : "Llwytho i lawr", "Favorite" : "Ffefryn", + "Move" : "Symud", "General" : "Cyffredinol", + "Account" : "Cyfrif", "Close" : "Cau", "Unknown" : "Anhysbys", "Copy public link" : "Copïo dolen gyhoeddus", "Back" : "Nôl", "Save" : "Cadw", + "Search" : "Chwilio", "Year" : "Blwyddyn", "Month" : "Mis", "Day" : "Diwrnod", @@ -25,7 +28,6 @@ "Description" : "Disgrifiad", "Name" : "Enw", "Update" : "Diweddaru", - "Search" : "Chwilio", "Loading …" : "Yn llwytho …", "Remove" : "Gwaredu", "Share link" : "Rhannu dolen", @@ -39,6 +41,8 @@ "Undo" : "Dadwneud", "Custom" : "Cyfaddas", "Size" : "Maint", - "Auto" : "Awto" + "Auto" : "Awto", + "Yes" : "Ie", + "No" : "Na" },"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" } \ No newline at end of file diff --git a/l10n/da.js b/l10n/da.js index d636e054..d7c5ebec 100644 --- a/l10n/da.js +++ b/l10n/da.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Download", "Memories" : "Minder", "Settings" : "Indstillinger", "People" : "Personer", @@ -13,24 +14,29 @@ OC.L10N.register( "Archive" : "Arkivér", "On this day" : "På denne dag", "Tags" : "Mærker", + "Metadata" : "Metadata", "Edit" : "Redigér", "Photos" : "Billeder", "Explore" : "Udforsk", "Cancel" : "Annuller", "Delete" : "Slet", - "Download" : "Download", "Favorite" : "Favorit", "Unarchive" : "Annuller arkivering", "View in folder" : "Vis i mappe", - "You are about to download a large number of files. Are you sure?" : "Du er ved at downloade et stort antal filer. Er du sikker?", - "You are about to delete a large number of files. Are you sure?" : "Du er ved at slette et stort antal filer. Er du sikker?", + "Continue" : "Fortsæt", + "Move" : "Flyt", "General" : "Generelt", "Timeline Path" : "Tidslinjesti", + "Viewer" : "Fremviser", + "Account" : "Konto", "Show hidden folders" : "Vis skjulte mapper", "Close" : "Luk", "Failed to load some photos" : "Kunne ikke indlæse nogle billeder", "Performance" : "Ydelse", "Unknown" : "Ukendt", + "Template" : "Skabelon", + "No items" : "Ingen elementer", + "Shared by {user}" : "Delt af {user}", "Public link copied!" : "Offentlig link kopieret!", "Copy public link" : "Kopier offentligt link", "Public link" : "Offentligt link", @@ -45,7 +51,7 @@ OC.L10N.register( "Back to the new album form." : "Tilbage til den nye albumform.", "Save" : "Gem", "Create album" : "Opret album", - "Create a new album." : "Opret et nyt album.", + "Search" : "Søg", "Year" : "År", "Month" : "Måned", "Day" : "Dag", @@ -57,9 +63,9 @@ OC.L10N.register( "Copyright" : "Ophavsret", "Empty" : "Tom", "Reset" : "Nulstil", + "Collaborative Tags" : "Samarbejds Tags", "Name" : "Navn", "Update" : "Opdater", - "Search" : "Søg", "Loading …" : "Loading …", "Remove" : "Fjern", "Share link" : "Del dette link", @@ -76,7 +82,6 @@ OC.L10N.register( "Share" : "Del", "Previous" : "Tidligere", "Next" : "Næste", - "Continue" : "Fortsæt", "Undo" : "Fortryd", "Redo" : "Annullér fortryd", "Zoom in" : "Zoom ind", diff --git a/l10n/da.json b/l10n/da.json index 5f51b0cc..8fec1120 100644 --- a/l10n/da.json +++ b/l10n/da.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Download", "Memories" : "Minder", "Settings" : "Indstillinger", "People" : "Personer", @@ -11,24 +12,29 @@ "Archive" : "Arkivér", "On this day" : "På denne dag", "Tags" : "Mærker", + "Metadata" : "Metadata", "Edit" : "Redigér", "Photos" : "Billeder", "Explore" : "Udforsk", "Cancel" : "Annuller", "Delete" : "Slet", - "Download" : "Download", "Favorite" : "Favorit", "Unarchive" : "Annuller arkivering", "View in folder" : "Vis i mappe", - "You are about to download a large number of files. Are you sure?" : "Du er ved at downloade et stort antal filer. Er du sikker?", - "You are about to delete a large number of files. Are you sure?" : "Du er ved at slette et stort antal filer. Er du sikker?", + "Continue" : "Fortsæt", + "Move" : "Flyt", "General" : "Generelt", "Timeline Path" : "Tidslinjesti", + "Viewer" : "Fremviser", + "Account" : "Konto", "Show hidden folders" : "Vis skjulte mapper", "Close" : "Luk", "Failed to load some photos" : "Kunne ikke indlæse nogle billeder", "Performance" : "Ydelse", "Unknown" : "Ukendt", + "Template" : "Skabelon", + "No items" : "Ingen elementer", + "Shared by {user}" : "Delt af {user}", "Public link copied!" : "Offentlig link kopieret!", "Copy public link" : "Kopier offentligt link", "Public link" : "Offentligt link", @@ -43,7 +49,7 @@ "Back to the new album form." : "Tilbage til den nye albumform.", "Save" : "Gem", "Create album" : "Opret album", - "Create a new album." : "Opret et nyt album.", + "Search" : "Søg", "Year" : "År", "Month" : "Måned", "Day" : "Dag", @@ -55,9 +61,9 @@ "Copyright" : "Ophavsret", "Empty" : "Tom", "Reset" : "Nulstil", + "Collaborative Tags" : "Samarbejds Tags", "Name" : "Navn", "Update" : "Opdater", - "Search" : "Søg", "Loading …" : "Loading …", "Remove" : "Fjern", "Share link" : "Del dette link", @@ -74,7 +80,6 @@ "Share" : "Del", "Previous" : "Tidligere", "Next" : "Næste", - "Continue" : "Fortsæt", "Undo" : "Fortryd", "Redo" : "Annullér fortryd", "Zoom in" : "Zoom ind", diff --git a/l10n/de.js b/l10n/de.js index 43942ef9..312ca834 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Herunterladen", "Memories" : "Erinnerungen", "Fast, modern and advanced photo management suite" : "Schnelle, moderne und fortschrittliche Fotoverwaltungssuite", "Settings" : "Einstellungen", @@ -21,7 +22,6 @@ OC.L10N.register( "Recognize" : "Erkennen", "A better photos experience awaits you" : "Ein besseres Fotoerlebnis erwartet dich", "Choose the root folder of your timeline to begin" : "Wähle das Wurzelverzeichnis deiner Zeitleiste, um zu beginnen", - "If you just installed Memories, run:" : "Wenn du Memorys gerade installiert hast, führe Folgendes aus:", "Continue to Memories" : "Weiter zu Memories", "Choose again" : "Erneut auswählen", "Click here to start" : "Zum Starten hier klicken", @@ -29,9 +29,8 @@ OC.L10N.register( "Choose the root of your timeline" : "Wähle den Start deiner Zeitleiste aus", "The selected folder does not seem to be valid. Try again." : "Der ausgewählte Ordner scheint ungültig zu sein. Versuche es nochmal.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} Foto in {path} gefunden","{n} Fotos in {path} gefunden "], + "Metadata" : "Metadaten", "Edit" : "Bearbeiten", - "No title" : "Kein Titel", - "No description" : "Keine Beschreibung", "No coordinates" : "Keine Koordinaten", "Click edit to set location" : "Auf Bearbeiten klicken um den Ort festzulegen", "Photos" : "Fotos", @@ -39,7 +38,6 @@ OC.L10N.register( "Cancel" : "Abbrechen", "Delete" : "Löschen", "Remove from album" : "Aus dem Album entfernen", - "Download" : "Herunterladen", "Favorite" : "Favorisieren", "Unarchive" : "Dearchivieren", "Edit metadata" : "Metadaten bearbeiten", @@ -48,9 +46,8 @@ OC.L10N.register( "Add to album" : "Zum Album hinzufügen", "Move to person" : "Zu einer Person verschieben", "Remove from person" : "Von der Person entfernen", - "You are about to download a large number of files. Are you sure?" : "Du bist dabei, eine große Anzahl von Dateien herunterzuladen. Bist du dir sicher?", - "You are about to delete a large number of files. Are you sure?" : "Du bist dabei, eine große Anzahl von Dateien zu löschen. Bist du dir sicher?", - "You are about to touch a large number of files. Are you sure?" : "Du bist dabei, eine große Anzahl von Dateien zu ändern. Bist du dir sicher?", + "Continue" : "Fortsetzen", + "Move" : "Verschieben", "You must enable \"Mark person in preview\" to use this feature" : "Du musst „Person in Vorschau markieren“ aktivieren, um diese Funktion nutzen zu können", "Only user \"{user}\" can update this person" : "Nur der Benutzer \"{user}\" kann diese Person aktualisieren.", "_{n} selected_::_{n} selected_" : ["{n} ausgewählt","{n} ausgewählt"], @@ -59,8 +56,10 @@ OC.L10N.register( "Timeline Path" : "Pfad der Zeitleiste", "Square grid mode" : "Quadratischer Gittermodus", "Show past photos on top of timeline" : "Vergangene Fotos oben auf der Zeitleiste anzeigen", + "Viewer" : "Betrachter", "Load full size image on zoom" : "Bild in voller Größe beim Zoomen laden", "Always load full size image (not recommended)" : "Bild immer in voller Größe laden (nicht empfohlen)", + "Account" : "Konto", "Folders Path" : "Ordnerpfad", "Show hidden folders" : "Zeige versteckte Ordner", "Sort folders oldest-first" : "Ordner sortieren, älteste zuerst", @@ -71,19 +70,18 @@ OC.L10N.register( "{photoCount} photos" : "{photoCount} Fotos", "Failed to load some photos" : "Laden einiger Fotos fehlgeschlagen", "Failed to update setting" : "Die Einstellung konnte nicht aktualisiert werden", - "EXIF Extraction" : "EXIF-Extraktion", "Path to packaged exiftool binary" : "Pfad zur gepackten Exiftool-Binärdatei", "You need perl only if the packaged exiftool binary does not work for some reason." : "Du brauchst Perl nur, wenn die gepackte Exiftool-Binärdatei aus irgendeinem Grund nicht funktioniert.", "Use system perl (only if exiftool binary does not work)" : "System-Perl verwenden (nur wenn die Exiftool-Binärdatei nicht funktioniert)", - "Media Indexing" : "Medien-Indexierung", + "EXIF Extraction" : "EXIF-Extraktion", + "External Link" : "Externer Link", "{n} media files have been indexed" : "{n} Mediendateien wurden indexiert", "Automatic Indexing status: {status}" : "Automatischer Indizierungs-Status: {status}", - "Last index job was run {t} seconds ago." : "Die letzte Indizierungsaufgabe wurde vor {t}  Sekunden ausgeführt.", + "Last index job was run {t} seconds ago." : "Die letzte Indizierungsjob wurde vor {t}  Sekunden ausgeführt.", "It took {t} seconds to complete." : "Die Fertigstellung dauerte {t} Sekunden.", "It is still running or was interrupted." : "Läuft noch oder wurde unterbrochen.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Nur die serverseitige Verschlüsselung (OC_DEFAULT_MODULE) wird unterstützt, es ist jedoch ein anderes Verschlüsselungsmodul aktiviert.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Die EXIF-Indexe werden in regelmäßigen Abständen im Hintergrund erstellt und überprüft. Sei vorsichtig, wenn du etwas anderes als die automatische Indexierung auswählst. Wenn du z. B. die Indexierung auf Zeitleistenordner beschränkst, kann es zu Verzögerungen kommen, bevor die Medien für die Benutzer verfügbar sind, da der Benutzer die Zeitleiste erst nach der Anmeldung konfiguriert.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Ordner mit einer „.nomedia“-Datei sind immer von der Indizierung ausgeschlossen.", "Index all media automatically (recommended)" : "Alle Medien automatisch indexieren (empfohlen)", "Index per-user timeline folders (not recommended)" : "Indexierung von Zeitleistenordnern pro Benutzer (nicht empfohlen)", "Index a fixed relative path" : "Einen festen relativen Pfad indexieren", @@ -94,15 +92,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "Neuindizierung aller Dateien erzwingen:", "You can limit indexing by user and/or folder:" : "Du kannst die Indizierung nach Benutzer und/oder Ordner einschränken:", "Clear all existing index tables:" : "Alle vorhandenen Indextabellen löschen:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Die folgenden MIME-Typen sind für die Erstellung der Vorschau korrekt konfiguriert. Weitere Dokumentation:", - "External Link" : "Externer Link", - "Performance" : "Leistung", + "Media Indexing" : "Medien-Indexierung", "HTTPS is enabled" : "HTTPS ist aktiviert", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Du greifst über einen unsicheren Kontext auf diese Seite zu. Einige Browser-APIs sind nicht verfügbar, wodurch Erinnerungen (Memories) sehr langsam wird. Aktiviere HTTPS auf deinem Server, um die Leistung zu verbessern.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 oder HTTP/3 ist aktiviert", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 oder HTTP/3 wird dringend empfohlen ({httpVer} erkannt)", + "Performance" : "Leistung", "Unknown" : "Unbekannt", - "Reverse Geocoding" : "Umgekehrte Geokodierung", "Database is populated with {n} geometries." : "Die Datenbank ist mit {n} Geometrien gefüllt.", "Geometry table has not been created." : "Geometrietabelle wurde nicht erstellt.", "Looks like the planet data is incomplete." : "Die Planetendaten scheinen unvollständig zu sein.", @@ -112,13 +108,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "Wenn die Schaltfläche unten zum Importieren der Planetendaten nicht funktioniert, verwende den folgenden Befehl:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Hinweis: Die Geometriedaten werden ohne Präfix in der Tabelle memory_planet_geometry gespeichert.", "Download planet database" : "Planetendatenbank herunterladen", + "Reverse Geocoding" : "Umgekehrte Geokodierung", "Geometry support was not detected in your database" : "Geometrieunterstützung wurde in deiner Datenbank nicht erkannt", "MySQL-like geometry support was detected " : "MySQL-ähnliche Geometrieunterstützung wurde erkannt", "Postgres native geometry support was detected" : "Die native Postgres-Geometrieunterstützung wurde erkannt", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Die Datenbank scheint schon eingerichtet zu sein. Willst du wirklich die Planetendaten erneut herunterladen?", "You are about to download the planet database. This may take a while." : "Du bist dabei, die Planentendatenbank herunterzuladen. Dies kann etwas dauern.", "This may also cause all photos to be re-indexed!" : "Dies kann auch dazu führen, dass alle Fotos erneut indexiert werden!", - "Video Streaming" : "Video-Streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Live-Transcodierung ermöglicht adaptives Streaming von Videos mit HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Beachte, dass dies ohne Hardwarebeschleunigung sehr CPU-intensiv sein kann und die Transcodierung nicht für die externe Speicherung verwendet wird.", "Enable Transcoding" : "Transcodierung aktivieren", @@ -128,14 +124,13 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Automatisch (adaptive Transcodierung)", "Original (transcode with max quality)" : "Original (mit maximaler Qualität transcodieren)", "Direct (original video file without transcode)" : "Direkt (Originalvideodatei ohne Transcodierung)", - "Hardware Acceleration" : "Hardware-Beschleunigung", + "Video Streaming" : "Video-Streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "Du musst zunächst sicherstellen, dass die richtigen Treiber installiert sind, bevor du die Beschleunigung konfigurierst.", "Make sure you test hardware acceleration with various options after enabling." : "Stelle sicher, dass du die Hardwarebeschleunigung nach der Aktivierung mit verschiedenen Optionen testest.", "Do not enable multiple types of hardware acceleration simultaneously." : "Aktiviere nicht mehrere Arten der Hardwarebeschleunigung gleichzeitig.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel-Prozessoren, die QuickSync Video (QSV) unterstützen, sowie einige AMD-GPUs können für die Transcodierung mit VA-API-Beschleunigung verwendet werden.", "For more details on driver installation, check the documentation:" : "Weitere Einzelheiten zur Treiberinstallation findest du in der Dokumentation:", "Enable acceleration with VA-API" : "Beschleunigung mit VA-API aktivieren", - "Enable low-power mode (QSV)" : "Energiesparmodus (QSV) aktivieren", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA-GPUs können für die Transcodierung mit dem NVENC-Encoder mit den richtigen Treibern verwendet werden.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Abhängig von den Versionen des installierten SDK und ffmpeg musst du den zu verwendenden Scaler angeben", "No automated tests are available for NVIDIA acceleration." : "Für die NVIDIA-Beschleunigung sind keine automatisierten Tests verfügbar.", @@ -147,13 +142,14 @@ OC.L10N.register( "VA-API device ({dev}) not found" : "VA-API-Gerät ({dev}) nicht gefunden", "VA-API device ({dev}) has incorrect permissions" : "VA-API-Gerät ({dev}) hat falsche Berechtigungen", "VA-API device status: {status}" : "VA-API-Gerätestatus: {status}", - "Transcoder configuration" : "Transcoder-Konfiguration", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Erinnerungen (Memories) verwendet den Go-Vod-Transcoder. Du kannst go-vod extern ausführen (z. B. in einem separaten Docker-Container zur Hardwarebeschleunigung) oder den integrierten Transcoder verwenden. Um einen externen Transcoder zu verwenden, aktiviere die folgende Option und befolge die Anweisungen in der Dokumentation:", "Enable external transcoder (go-vod)" : "Externen Transcoder aktivieren (go-vod)", "Binary path (local only)" : "Binärer Pfad (nur lokal)", "Bind address (local only)" : "Bind-Adresse (nur lokal)", "Connection address (same as bind if local)" : "Verbindungsadresse (dasselbe wie bind, wenn lokal)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} Elment zum Album hinzugefügt","{n} Elmente zum Album hinzugefügt"], + "Template" : "Vorlage", + "No items" : "Keine Elemente", + "Shared by {user}" : "Geteilt von {user}", "Add people or groups who can edit your album" : "Personen oder Gruppen hinzufügen, die dein Album bearbeiten können", "Search for collaborators" : "Suche nach Mitbearbeitenden", "Search people or groups" : "Nach Benutzer oder Gruppen suchen", @@ -175,7 +171,6 @@ OC.L10N.register( "Could not load the selected album" : "Gewähltes Album konnte nicht geladen werden", "Remove Album" : "Album entfernen", "Are you sure you want to permanently remove album \"{name}\"?" : "Möchtest du das Album \"{name}\" wirklich endgültig entfernen?", - "Only user \"{user}\" can delete this album" : "Nur der Benutzer \"{user}\" can dieses Album löschen", "Failed to delete {name}." : "{name} konnte nicht gelöscht werden.", "Name of the album" : "Name des Albums", "Location of the album" : "Ort des Albums", @@ -187,12 +182,11 @@ OC.L10N.register( "Save" : "Speichern", "Create album" : "Album erstellen", "Invalid album name; should not contain any slashes." : "Ungültiger Albumname; darf keine Schrägstriche enthalten.", - "Add selection to album {albumName}" : "Auswahl zum Album {albumName} hinzufügen", - "Create a new album." : "Ein neues Album erstellen", - "_%n item_::_%n items_" : ["%n Element","%n Elemente"], - "_Share with %n user_::_Share with %n users_" : ["Mit %n Benutzer teilen","Mit %n Benutzern telken"], + "Search" : "Suchen", + "Save changes" : "Änderungen speichern", "Share Album" : "Album teilen", "Save collaborators for this album." : "Mitbearbeitende für dieses Album speichern.", + "_%n item_::_%n items_" : ["%n Element","%n Elemente"], "Newest" : "Neueste", "Year" : "Jahr", "Month" : "Monat", @@ -229,10 +223,8 @@ OC.L10N.register( "Name" : "Name", "Update" : "Aktualisieren", "Failed to rename {oldName} to {name}." : "{oldName} konnte nicht in {name} umbenannt werden.", - "Search" : "Suchen", "Loading …" : "Lade …", "Merge {name} with person" : "{name} mit Person zusammenführen", - "Are you sure you want to merge {name} with {newName}?" : "Bist du sicher, dass du {name} mit {newName} zusammenführen möchtest?", "Too many failures, aborting" : "Zu viele Fehler, Abbruch", "Error while moving {basename}" : "Fehler beim Verschieben von {basename}", "Failed to move {name}." : "{name} konnte nicht verschoben werden.", @@ -271,7 +263,6 @@ OC.L10N.register( "Sort by name" : "Nach Namen sortieren", "Share album" : "Album teilen", "Download album" : "Album herunterladen", - "Delete album" : "Album löschen", "Nothing to show here" : "Hier gibt es nichts anzuzeigen", "Merge with different person" : "Mit einer anderen Person zusammenführen", "Mark person in preview" : "Person in Vorschau markieren", @@ -286,7 +277,6 @@ OC.L10N.register( "Drop changes" : "Änderungen verwerfen", "Share" : "Teilen", "Play Live Photo" : "Live-Foto abspielen", - "Sidebar" : "Seitenleiste", "Download Video" : "Video herunterladen", "Slideshow" : "Diashow", "Previous" : "Vorherige", @@ -302,7 +292,6 @@ OC.L10N.register( "Save as" : "Speichern als", "All changes will be lost." : "Alle Änderungen gehen verloren.", "Are you sure you want to continue?" : "Bist du dir sicher, dass du fortsetzen möchtest?", - "Continue" : "Fortsetzen", "Undo" : "Rückgängig", "Redo" : "Wiederherstellen", "Show original image" : "Originalbild anzeigen", @@ -411,6 +400,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Markiere Fotos, um sie leicht zu finden", "Recognize is still working on your photos" : "Die Erkennung arbeitet noch an deinen Fotos", "Places you have been to will appear here" : "Orte, die du besucht hast, werden hier angezeigt", - "Your Timeline" : "Deine Zeitleiste" + "Yes" : "Ja", + "No" : "Nein" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/de.json b/l10n/de.json index 1a01187c..e87e1383 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Herunterladen", "Memories" : "Erinnerungen", "Fast, modern and advanced photo management suite" : "Schnelle, moderne und fortschrittliche Fotoverwaltungssuite", "Settings" : "Einstellungen", @@ -19,7 +20,6 @@ "Recognize" : "Erkennen", "A better photos experience awaits you" : "Ein besseres Fotoerlebnis erwartet dich", "Choose the root folder of your timeline to begin" : "Wähle das Wurzelverzeichnis deiner Zeitleiste, um zu beginnen", - "If you just installed Memories, run:" : "Wenn du Memorys gerade installiert hast, führe Folgendes aus:", "Continue to Memories" : "Weiter zu Memories", "Choose again" : "Erneut auswählen", "Click here to start" : "Zum Starten hier klicken", @@ -27,9 +27,8 @@ "Choose the root of your timeline" : "Wähle den Start deiner Zeitleiste aus", "The selected folder does not seem to be valid. Try again." : "Der ausgewählte Ordner scheint ungültig zu sein. Versuche es nochmal.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} Foto in {path} gefunden","{n} Fotos in {path} gefunden "], + "Metadata" : "Metadaten", "Edit" : "Bearbeiten", - "No title" : "Kein Titel", - "No description" : "Keine Beschreibung", "No coordinates" : "Keine Koordinaten", "Click edit to set location" : "Auf Bearbeiten klicken um den Ort festzulegen", "Photos" : "Fotos", @@ -37,7 +36,6 @@ "Cancel" : "Abbrechen", "Delete" : "Löschen", "Remove from album" : "Aus dem Album entfernen", - "Download" : "Herunterladen", "Favorite" : "Favorisieren", "Unarchive" : "Dearchivieren", "Edit metadata" : "Metadaten bearbeiten", @@ -46,9 +44,8 @@ "Add to album" : "Zum Album hinzufügen", "Move to person" : "Zu einer Person verschieben", "Remove from person" : "Von der Person entfernen", - "You are about to download a large number of files. Are you sure?" : "Du bist dabei, eine große Anzahl von Dateien herunterzuladen. Bist du dir sicher?", - "You are about to delete a large number of files. Are you sure?" : "Du bist dabei, eine große Anzahl von Dateien zu löschen. Bist du dir sicher?", - "You are about to touch a large number of files. Are you sure?" : "Du bist dabei, eine große Anzahl von Dateien zu ändern. Bist du dir sicher?", + "Continue" : "Fortsetzen", + "Move" : "Verschieben", "You must enable \"Mark person in preview\" to use this feature" : "Du musst „Person in Vorschau markieren“ aktivieren, um diese Funktion nutzen zu können", "Only user \"{user}\" can update this person" : "Nur der Benutzer \"{user}\" kann diese Person aktualisieren.", "_{n} selected_::_{n} selected_" : ["{n} ausgewählt","{n} ausgewählt"], @@ -57,8 +54,10 @@ "Timeline Path" : "Pfad der Zeitleiste", "Square grid mode" : "Quadratischer Gittermodus", "Show past photos on top of timeline" : "Vergangene Fotos oben auf der Zeitleiste anzeigen", + "Viewer" : "Betrachter", "Load full size image on zoom" : "Bild in voller Größe beim Zoomen laden", "Always load full size image (not recommended)" : "Bild immer in voller Größe laden (nicht empfohlen)", + "Account" : "Konto", "Folders Path" : "Ordnerpfad", "Show hidden folders" : "Zeige versteckte Ordner", "Sort folders oldest-first" : "Ordner sortieren, älteste zuerst", @@ -69,19 +68,18 @@ "{photoCount} photos" : "{photoCount} Fotos", "Failed to load some photos" : "Laden einiger Fotos fehlgeschlagen", "Failed to update setting" : "Die Einstellung konnte nicht aktualisiert werden", - "EXIF Extraction" : "EXIF-Extraktion", "Path to packaged exiftool binary" : "Pfad zur gepackten Exiftool-Binärdatei", "You need perl only if the packaged exiftool binary does not work for some reason." : "Du brauchst Perl nur, wenn die gepackte Exiftool-Binärdatei aus irgendeinem Grund nicht funktioniert.", "Use system perl (only if exiftool binary does not work)" : "System-Perl verwenden (nur wenn die Exiftool-Binärdatei nicht funktioniert)", - "Media Indexing" : "Medien-Indexierung", + "EXIF Extraction" : "EXIF-Extraktion", + "External Link" : "Externer Link", "{n} media files have been indexed" : "{n} Mediendateien wurden indexiert", "Automatic Indexing status: {status}" : "Automatischer Indizierungs-Status: {status}", - "Last index job was run {t} seconds ago." : "Die letzte Indizierungsaufgabe wurde vor {t}  Sekunden ausgeführt.", + "Last index job was run {t} seconds ago." : "Die letzte Indizierungsjob wurde vor {t}  Sekunden ausgeführt.", "It took {t} seconds to complete." : "Die Fertigstellung dauerte {t} Sekunden.", "It is still running or was interrupted." : "Läuft noch oder wurde unterbrochen.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Nur die serverseitige Verschlüsselung (OC_DEFAULT_MODULE) wird unterstützt, es ist jedoch ein anderes Verschlüsselungsmodul aktiviert.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Die EXIF-Indexe werden in regelmäßigen Abständen im Hintergrund erstellt und überprüft. Sei vorsichtig, wenn du etwas anderes als die automatische Indexierung auswählst. Wenn du z. B. die Indexierung auf Zeitleistenordner beschränkst, kann es zu Verzögerungen kommen, bevor die Medien für die Benutzer verfügbar sind, da der Benutzer die Zeitleiste erst nach der Anmeldung konfiguriert.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Ordner mit einer „.nomedia“-Datei sind immer von der Indizierung ausgeschlossen.", "Index all media automatically (recommended)" : "Alle Medien automatisch indexieren (empfohlen)", "Index per-user timeline folders (not recommended)" : "Indexierung von Zeitleistenordnern pro Benutzer (nicht empfohlen)", "Index a fixed relative path" : "Einen festen relativen Pfad indexieren", @@ -92,15 +90,13 @@ "Force re-indexing of all files:" : "Neuindizierung aller Dateien erzwingen:", "You can limit indexing by user and/or folder:" : "Du kannst die Indizierung nach Benutzer und/oder Ordner einschränken:", "Clear all existing index tables:" : "Alle vorhandenen Indextabellen löschen:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Die folgenden MIME-Typen sind für die Erstellung der Vorschau korrekt konfiguriert. Weitere Dokumentation:", - "External Link" : "Externer Link", - "Performance" : "Leistung", + "Media Indexing" : "Medien-Indexierung", "HTTPS is enabled" : "HTTPS ist aktiviert", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Du greifst über einen unsicheren Kontext auf diese Seite zu. Einige Browser-APIs sind nicht verfügbar, wodurch Erinnerungen (Memories) sehr langsam wird. Aktiviere HTTPS auf deinem Server, um die Leistung zu verbessern.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 oder HTTP/3 ist aktiviert", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 oder HTTP/3 wird dringend empfohlen ({httpVer} erkannt)", + "Performance" : "Leistung", "Unknown" : "Unbekannt", - "Reverse Geocoding" : "Umgekehrte Geokodierung", "Database is populated with {n} geometries." : "Die Datenbank ist mit {n} Geometrien gefüllt.", "Geometry table has not been created." : "Geometrietabelle wurde nicht erstellt.", "Looks like the planet data is incomplete." : "Die Planetendaten scheinen unvollständig zu sein.", @@ -110,13 +106,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "Wenn die Schaltfläche unten zum Importieren der Planetendaten nicht funktioniert, verwende den folgenden Befehl:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Hinweis: Die Geometriedaten werden ohne Präfix in der Tabelle memory_planet_geometry gespeichert.", "Download planet database" : "Planetendatenbank herunterladen", + "Reverse Geocoding" : "Umgekehrte Geokodierung", "Geometry support was not detected in your database" : "Geometrieunterstützung wurde in deiner Datenbank nicht erkannt", "MySQL-like geometry support was detected " : "MySQL-ähnliche Geometrieunterstützung wurde erkannt", "Postgres native geometry support was detected" : "Die native Postgres-Geometrieunterstützung wurde erkannt", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Die Datenbank scheint schon eingerichtet zu sein. Willst du wirklich die Planetendaten erneut herunterladen?", "You are about to download the planet database. This may take a while." : "Du bist dabei, die Planentendatenbank herunterzuladen. Dies kann etwas dauern.", "This may also cause all photos to be re-indexed!" : "Dies kann auch dazu führen, dass alle Fotos erneut indexiert werden!", - "Video Streaming" : "Video-Streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Live-Transcodierung ermöglicht adaptives Streaming von Videos mit HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Beachte, dass dies ohne Hardwarebeschleunigung sehr CPU-intensiv sein kann und die Transcodierung nicht für die externe Speicherung verwendet wird.", "Enable Transcoding" : "Transcodierung aktivieren", @@ -126,14 +122,13 @@ "Auto (adaptive transcode)" : "Automatisch (adaptive Transcodierung)", "Original (transcode with max quality)" : "Original (mit maximaler Qualität transcodieren)", "Direct (original video file without transcode)" : "Direkt (Originalvideodatei ohne Transcodierung)", - "Hardware Acceleration" : "Hardware-Beschleunigung", + "Video Streaming" : "Video-Streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "Du musst zunächst sicherstellen, dass die richtigen Treiber installiert sind, bevor du die Beschleunigung konfigurierst.", "Make sure you test hardware acceleration with various options after enabling." : "Stelle sicher, dass du die Hardwarebeschleunigung nach der Aktivierung mit verschiedenen Optionen testest.", "Do not enable multiple types of hardware acceleration simultaneously." : "Aktiviere nicht mehrere Arten der Hardwarebeschleunigung gleichzeitig.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel-Prozessoren, die QuickSync Video (QSV) unterstützen, sowie einige AMD-GPUs können für die Transcodierung mit VA-API-Beschleunigung verwendet werden.", "For more details on driver installation, check the documentation:" : "Weitere Einzelheiten zur Treiberinstallation findest du in der Dokumentation:", "Enable acceleration with VA-API" : "Beschleunigung mit VA-API aktivieren", - "Enable low-power mode (QSV)" : "Energiesparmodus (QSV) aktivieren", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA-GPUs können für die Transcodierung mit dem NVENC-Encoder mit den richtigen Treibern verwendet werden.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Abhängig von den Versionen des installierten SDK und ffmpeg musst du den zu verwendenden Scaler angeben", "No automated tests are available for NVIDIA acceleration." : "Für die NVIDIA-Beschleunigung sind keine automatisierten Tests verfügbar.", @@ -145,13 +140,14 @@ "VA-API device ({dev}) not found" : "VA-API-Gerät ({dev}) nicht gefunden", "VA-API device ({dev}) has incorrect permissions" : "VA-API-Gerät ({dev}) hat falsche Berechtigungen", "VA-API device status: {status}" : "VA-API-Gerätestatus: {status}", - "Transcoder configuration" : "Transcoder-Konfiguration", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Erinnerungen (Memories) verwendet den Go-Vod-Transcoder. Du kannst go-vod extern ausführen (z. B. in einem separaten Docker-Container zur Hardwarebeschleunigung) oder den integrierten Transcoder verwenden. Um einen externen Transcoder zu verwenden, aktiviere die folgende Option und befolge die Anweisungen in der Dokumentation:", "Enable external transcoder (go-vod)" : "Externen Transcoder aktivieren (go-vod)", "Binary path (local only)" : "Binärer Pfad (nur lokal)", "Bind address (local only)" : "Bind-Adresse (nur lokal)", "Connection address (same as bind if local)" : "Verbindungsadresse (dasselbe wie bind, wenn lokal)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} Elment zum Album hinzugefügt","{n} Elmente zum Album hinzugefügt"], + "Template" : "Vorlage", + "No items" : "Keine Elemente", + "Shared by {user}" : "Geteilt von {user}", "Add people or groups who can edit your album" : "Personen oder Gruppen hinzufügen, die dein Album bearbeiten können", "Search for collaborators" : "Suche nach Mitbearbeitenden", "Search people or groups" : "Nach Benutzer oder Gruppen suchen", @@ -173,7 +169,6 @@ "Could not load the selected album" : "Gewähltes Album konnte nicht geladen werden", "Remove Album" : "Album entfernen", "Are you sure you want to permanently remove album \"{name}\"?" : "Möchtest du das Album \"{name}\" wirklich endgültig entfernen?", - "Only user \"{user}\" can delete this album" : "Nur der Benutzer \"{user}\" can dieses Album löschen", "Failed to delete {name}." : "{name} konnte nicht gelöscht werden.", "Name of the album" : "Name des Albums", "Location of the album" : "Ort des Albums", @@ -185,12 +180,11 @@ "Save" : "Speichern", "Create album" : "Album erstellen", "Invalid album name; should not contain any slashes." : "Ungültiger Albumname; darf keine Schrägstriche enthalten.", - "Add selection to album {albumName}" : "Auswahl zum Album {albumName} hinzufügen", - "Create a new album." : "Ein neues Album erstellen", - "_%n item_::_%n items_" : ["%n Element","%n Elemente"], - "_Share with %n user_::_Share with %n users_" : ["Mit %n Benutzer teilen","Mit %n Benutzern telken"], + "Search" : "Suchen", + "Save changes" : "Änderungen speichern", "Share Album" : "Album teilen", "Save collaborators for this album." : "Mitbearbeitende für dieses Album speichern.", + "_%n item_::_%n items_" : ["%n Element","%n Elemente"], "Newest" : "Neueste", "Year" : "Jahr", "Month" : "Monat", @@ -227,10 +221,8 @@ "Name" : "Name", "Update" : "Aktualisieren", "Failed to rename {oldName} to {name}." : "{oldName} konnte nicht in {name} umbenannt werden.", - "Search" : "Suchen", "Loading …" : "Lade …", "Merge {name} with person" : "{name} mit Person zusammenführen", - "Are you sure you want to merge {name} with {newName}?" : "Bist du sicher, dass du {name} mit {newName} zusammenführen möchtest?", "Too many failures, aborting" : "Zu viele Fehler, Abbruch", "Error while moving {basename}" : "Fehler beim Verschieben von {basename}", "Failed to move {name}." : "{name} konnte nicht verschoben werden.", @@ -269,7 +261,6 @@ "Sort by name" : "Nach Namen sortieren", "Share album" : "Album teilen", "Download album" : "Album herunterladen", - "Delete album" : "Album löschen", "Nothing to show here" : "Hier gibt es nichts anzuzeigen", "Merge with different person" : "Mit einer anderen Person zusammenführen", "Mark person in preview" : "Person in Vorschau markieren", @@ -284,7 +275,6 @@ "Drop changes" : "Änderungen verwerfen", "Share" : "Teilen", "Play Live Photo" : "Live-Foto abspielen", - "Sidebar" : "Seitenleiste", "Download Video" : "Video herunterladen", "Slideshow" : "Diashow", "Previous" : "Vorherige", @@ -300,7 +290,6 @@ "Save as" : "Speichern als", "All changes will be lost." : "Alle Änderungen gehen verloren.", "Are you sure you want to continue?" : "Bist du dir sicher, dass du fortsetzen möchtest?", - "Continue" : "Fortsetzen", "Undo" : "Rückgängig", "Redo" : "Wiederherstellen", "Show original image" : "Originalbild anzeigen", @@ -409,6 +398,7 @@ "Tag photos to find them easily" : "Markiere Fotos, um sie leicht zu finden", "Recognize is still working on your photos" : "Die Erkennung arbeitet noch an deinen Fotos", "Places you have been to will appear here" : "Orte, die du besucht hast, werden hier angezeigt", - "Your Timeline" : "Deine Zeitleiste" + "Yes" : "Ja", + "No" : "Nein" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/de_DE.js b/l10n/de_DE.js index c930e9fb..9a105aa4 100644 --- a/l10n/de_DE.js +++ b/l10n/de_DE.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Herunterladen", "Memories" : "Erinnerungen", "Fast, modern and advanced photo management suite" : "Schnelle, moderne und fortschrittliche Fotoverwaltungssuite", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Erinnerungen: Fotoverwaltung für Nextcloud\n\nErinnerungen (Memories) ist eine Fotoverwaltungslösung *Batterien enthalten* für Nextcloud mit erweiterten Funktionen, darunter:\n\n- **📸 Timeline**: Fotos und Videos nach Aufnahmedatum sortieren, geparst aus Exif-Daten.\n- **⏪ Zurückspulen**: Springen Sie sofort zu einem beliebigen Zeitpunkt in der Vergangenheit und erleben Sie Ihre Erinnerungen erneut.\n- **🤖 KI-Tagging**: Gruppieren Sie Fotos nach Personen und Objekten, unterstützt von [recognize](https://github.com/nextcloud/recognize) und [facerecognition](https://github.com/matiasdelellis/facerecognition ).\n- **🖼️ Alben**: Erstellen Sie Alben, um Fotos und Videos zu gruppieren. Dann teilen Sie diese Alben mit anderen.\n- **🫱🏻‍🫲🏻 Externes Teilen**: Teilen Sie Fotos und Videos mit Personen außerhalb Ihrer Nextcloud-Instanz.\n- **📱 Mobiler Support**: Arbeiten Sie von jedem Gerät jeder Form und Größe über die Web-App.\n- **✏️ Metadaten bearbeiten**: Bearbeiten Sie Daten und andere Metadaten auf Fotos schnell und in großen Mengen.\n- **📦 Archiv**: Speichern Sie Fotos, die Sie nicht in Ihrer Chronik sehen möchten, in einem separaten Ordner.\n- **📹 Videotranskodierung**: Videos transkodieren und HLS für maximale Leistung verwenden.\n- **🗺️ Karte**: Zeigen Sie Ihre Fotos auf einer Karte an, die mit genauer umgekehrter Geokodierung versehen ist.\n- **📦 Migration**: Migrieren Sie einfach von Nextcloud Photos und Google Takeout.\n- **⚡️ Leistung**: Mach das alles sehr schnell.\n\n## 🚀 Installation\n\n1. Installieren Sie die App aus dem Nextcloud App Store (oder probieren Sie [hier] eine Demo aus (https://demo.memories.gallery/apps/memories/).\n1. Führen Sie die empfohlenen [Konfigurationsschritte] durch (https://demo.memories.gallery/apps/memories/).\n1. Führen Sie `php occ memorys:index` aus, um Metadaten-Indizes für vorhandene Fotos zu generieren.\n1. Öffnen Sie die App 📷 Erinnerungen in Nextcloud und legen Sie das Verzeichnis mit Ihren Fotos fest.", @@ -24,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "Gesichtserkennung", "A better photos experience awaits you" : "Ein besseres Fotoerlebnis erwartet Sie", "Choose the root folder of your timeline to begin" : "Wählen Sie den Quellordner Ihrer Zeitleiste um zu beginnen", - "If you just installed Memories, run:" : "Wenn Sie Memories gerade installiert haben, führen Sie Folgendes aus:", "Continue to Memories" : "Weiter zu Memories", "Choose again" : "Erneut auswählen", "Click here to start" : "Zum Starten hier klicken", "You can always change this later in settings" : "Sie können das auch noch später in den Einstellungen ändern", + "If you just installed Memories, visit the admin panel first." : "Wenn Sie Erinnerungen (Memories) gerade erst installiert haben, navigieren Sie bitte zunächst zum Administrationsmenü.", "Choose the root of your timeline" : "Start Ihrer Zeitleiste auswählen", "The selected folder does not seem to be valid. Try again." : "Der ausgewählte Ordner scheint ungültig zu sein. Versuchen Sie es nochmal.", + "No photos were found in the selected folder." : "Im gewählten Ordner wurden keine Fotos gefunden.", + "This can happen because your media is still indexing." : "Dies kann den Grund haben, dass Ihre Medien aktuell noch indexiert werden.", + "Visit the admin panel to make sure Memories is configured correctly." : "Navigieren Sie zum Administrationsmenü um zu überprüfen, ob Erinnerungen (Memories) korrekt eingerichtet ist.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} Foto gefunden in {path}","{n} Fotos gefunden in {path}"], + "Metadata" : "Metadaten", "Edit" : "Bearbeiten", - "No title" : "Kein Titel", - "No description" : "Keine Beschreibung", + "Failed to load metadata" : "Fehler beim Laden der Metadaten", "No coordinates" : "Keine Koordinaten", "Click edit to set location" : "Auf Bearbeiten klicken um den Ort festzulegen", "Photos" : "Fotos", @@ -42,7 +46,6 @@ OC.L10N.register( "Cancel" : "Abbrechen", "Delete" : "Löschen", "Remove from album" : "Aus dem Album entfernen", - "Download" : "Herunterladen", "Favorite" : "Favorisieren", "Unarchive" : "Dearchivieren", "Edit metadata" : "Metadaten bearbeiten", @@ -51,10 +54,12 @@ OC.L10N.register( "Add to album" : "Zum Album hinzufügen", "Move to person" : "Zu einer Person verschieben", "Remove from person" : "Von der Person entfernen", - "You are about to download a large number of files. Are you sure?" : "Sie sind dabei, eine große Anzahl an Dateien herunterzuladen. Sind Sie sich sicher?", - "You are about to delete a large number of files. Are you sure?" : "Sie sind dabei, eine große Anzahl an Dateien zu löschen. Sind Sie sich sicher?", + "You are about to download a large number of files." : "Sie sind dabei, eine große Anzahl an Dateien herunterzuladen.", + "Continue" : "Fortsetzen", + "You are about to delete a large number of files" : "Sie sind dabei, eine große Anzahl an Dateien zu löschen.", "Failed to delete files" : "Löschen von Dateien fehlgeschlagen", - "You are about to touch a large number of files. Are you sure?" : "Sie sind im Begriff, eine große Anzahl von Dateien zu ändern. Sind Sie sich sicher?", + "Move" : "Verschieben", + "You are about to move a large number of files" : "Sie sind dabei, eine große Anzahl an Dateien zu verschieben.", "You must enable \"Mark person in preview\" to use this feature" : "Sie müssen „Person in Vorschau markieren“ aktivieren, um diese Funktion nutzen zu können", "Only user \"{user}\" can update this person" : "Nur der Benutzer \"{user}\" kann diese Person aktualisieren", "_{n} selected_::_{n} selected_" : ["{n} ausgewählt","{n} ausgewählt"], @@ -63,50 +68,93 @@ OC.L10N.register( "Timeline Path" : "Pfad der Zeitleiste", "Square grid mode" : "Quadratischer Gittermodus", "Show past photos on top of timeline" : "Vergangene Fotos oben auf der Zeitleiste anzeigen", + "Viewer" : "Betrachter", + "Autoplay Live Photos" : "Live-Fotos automatisch abspielen", "Load full size image on zoom" : "Bild in voller Größe beim Zoomen laden", "Always load full size image (not recommended)" : "Bild immer in voller Größe laden (nicht empfohlen)", + "Show full file path in sidebar" : "Vollständigen Dateipfad in der Seitenleiste anzeigen", + "Account" : "Konto", + "Logged in as {user}" : "Angemeldet als {user}", + "Sign out" : "Abmelden", + "Device Folders" : "Geräteordner", + "Local folders to include in the timeline view" : "Lokale Ordner, die in die Zeitleisten-Ansicht einbezogen werden sollen", "Folders Path" : "Ordnerpfad", "Show hidden folders" : "Zeige versteckte Ordner", "Sort folders oldest-first" : "Ordner sortieren, älteste zuerst", "Sort albums oldest-first" : "Alben sortieren, älteste zuerst", "Choose Timeline Paths" : "Pfade der Zeitleiste auswählen", "Choose the root for the folders view" : "Wählen Sie das Stammverzeichnis für die Ordneransicht", + "Are you sure you want to log out {user}?" : "Möchten Sie wirklich {user} abmelden?", "Close" : "Schließen", "{photoCount} photos" : "{photoCount} Fotos", "Failed to load some photos" : "Laden einiger Fotos fehlgeschlagen", "Failed to update setting" : "Die Einstellung konnte nicht aktualisiert werden", - "EXIF Extraction" : "EXIF-Extraktion", + "Albums support is enabled through the Photos app." : "Die Albenunterstützung wurde über die Fotos-App aktiviert.", + "Albums are disabled because the Photos app is not available." : "Alben sind deaktiviert, da die Fotos-App nicht verfügbar ist.", + "Recognize is installed and enabled for face recognition." : "Recognize ist installiert und für die Gesichtserkennung aktiviert.", + "Recognize is installed but not enabled for face recognition." : "Recognize ist installiert, aber nicht für die Gesichtserkennung aktiviert.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Recognize ist nicht installiert. Gesichtserkennung und Objektkennzeichnung sind möglicherweise nicht verfügbar.", + "Face Recognition is installed and enabled" : "Gesichtserkennung ist installiert und aktiviert", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Der Vorschaugenerator ist installiert und aktiviert. Möglicherweise ist noch eine zusätzliche Konfiguration erforderlich.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Der Vorschaugenerator ist nicht installiert und konfiguriert. Dies kann dazu führen, dass Memories sehr langsam ist.", + "Recommended Apps" : "Empfohlene Apps", "Path to packaged exiftool binary" : "Pfad zur gepackten Exiftool-Binärdatei", "You need perl only if the packaged exiftool binary does not work for some reason." : "Sie brauchen Perl nur, wenn die gepackte Exiftool-Binärdatei aus irgendeinem Grund nicht funktioniert.", "Use system perl (only if exiftool binary does not work)" : "System-Perl verwenden (nur wenn die Exiftool-Binärdatei nicht funktioniert)", - "Media Indexing" : "Medien-Indexierung", + "EXIF Extraction" : "EXIF-Extraktion", + "You can configure the enabled Nextcloud preview providers below." : "Sie können die aktiven Nextcloud-Vorschauanbieter unten einrichten.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Wenn Sie Imaginary zur Vorschauerstellung verwenden, können Sie diesen Abschnitt überspringen.", + "To enable RAW support, install the Camera RAW Previews app." : "Um die RAW-Unterstützung zu aktivieren, installieren Sie die Camera RAW Vorschau-App.", + "Documentation." : "Dokumentation.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick ist Verfügbar [{version}].", + "PHP-Imagick is not available." : "PHP-Imagickist nicht verfügbar.", + "Image editing will not work correctly." : "Die Bildbearbeitung wird nicht korrekt funktionieren.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Bei einigen Formaten (HEIC, TIFF) funktioniert die Erstellung von Miniaturansichten möglicherweise nicht.", + "Thumbnails for videos will be generated with this binary." : "Mit dieser Binärdatei werden Miniaturansichten für Videos generiert.", + "Thumbnail generation may not work for videos." : "Die Erstellung von Miniaturansichten funktioniert möglicherweise nicht für Videos.", + "The following MIME types are configured for preview generation." : "Die folgenden MIME-Typen sind für die Erstellung der Vorschau eingerichtet.", + "Max preview size (trade-off between quality and storage requirements)." : "Maximale Vorschaugröße (Kompromiss zwischen Qualität und Speicherbedarf).", + "Max memory for preview generation (MB)" : "Maximaler Speicher für die Vorschauerstellung (MB)", + "Max size of preview files (MB)" : "Maximale Größe der Vorschaudateien (MB)", + "File Support" : "Dateiunterstützung", + "Images (JPEG, PNG, GIF, BMP)" : "Bilder (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Vielen Dank, dass Sie sich für Nextcloud und Memories zur Speicherung Ihrer wertvollen Daten entschieden haben!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories hat einen großen Funktionsumfang und die vollständige Einrichtung kann einige Zeit benötigen.", + "If you just installed Memories, make sure you read the getting started guide:" : "Wenn Sie Memories gerade installiert haben, lesen Sie unbedingt die Erste-Schritte-Anleitung:", + "External Link" : "Externer Link", + "In case you run into any issues or bugs, you can get help through several channels." : "Falls Sie auf Probleme oder Fehler stoßen, können Sie auf verschiedenen Wegen Hilfe erhalten.", + "Memories is a completely free and open source app under active development." : "Memories ist eine völlig kostenlose Open-Source-App, die sich derzeit in der aktiven Entwicklung befindet.", + "You can contribute in several ways. See the project page for more details:" : "Sie können auf verschiedene Weise Ihren Beitrag leisten. Weitere Details finden Sie auf der Projektseite:", + "Help & Support" : "Hilfe und Unterstützung", "{n} media files have been indexed" : "{n} Mediendateien wurden indexiert", - "Automatic Indexing status: {status}" : "Automatischer Indizierungsstatus: {status}", - "Last index job was run {t} seconds ago." : "Die letzte Indizierungsaufgabe wurde vor {t}  Sekunden ausgeführt.", + "Automatic Indexing status: {status}" : "Status automatische Indizierung: {status}", + "Last index job was run {t} seconds ago." : "Die letzte Indizierungsaufgabe wurde vor {t} Sekunden ausgeführt.", "It took {t} seconds to complete." : "Die Fertigstellung dauerte {t} Sekunden.", "It is still running or was interrupted." : "Läuft noch oder wurde unterbrochen.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Es scheint, dass seit der Ausführung des letzten Indexjobs mehr als eine Stunde vergangen ist. Stellen Sie sicher, dass Nextcloud-Cron richtig konfiguriert ist.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Nur die serverseitige Verschlüsselung (OC_DEFAULT_MODULE) wird unterstützt, es ist jedoch ein anderes Verschlüsselungsmodul aktiviert.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Die EXIF-Indexe werden in regelmäßigen Abständen im Hintergrund erstellt und überprüft. Seien Sie vorsichtig, wenn Sie etwas anderes als die automatische Indexierung auswählen. Wenn Sie z. B. die Indexierung auf Zeitleistenordner beschränken, kann es zu Verzögerungen kommen, bevor die Medien für die Benutzer verfügbar sind, da der Benutzer die Zeitleiste erst nach der Anmeldung konfiguriert.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Ordner mit einer „.nomedia“-Datei sind immer von der Indizierung ausgeschlossen.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Ordner mit einer „.nomedia“- oder einer „.nomemories“-Datei werden immer von der Indizierung ausgeschlossen.", "Index all media automatically (recommended)" : "Alle Medien automatisch indexieren (empfohlen)", "Index per-user timeline folders (not recommended)" : "Indexierung von Zeitleistenordnern pro Benutzer (nicht empfohlen)", "Index a fixed relative path" : "Einen festen relativen Pfad indexieren", "Disable background indexing" : "Hintergrundindizierung deaktivieren", "Indexing path (relative, all users)" : "Indexierungspfad (relativ, alle Benutzer)", - "For advanced usage, perform a run of indexing by running:" : "Zur Umfassenden Nutzung einen Indizierungslauf durchführen, indem Sie Folgendes ausführen:", + "For advanced usage, perform a run of indexing by running:" : "Zur umfassenden Nutzung einen Indizierungslauf durchführen, indem Sie Folgendes ausführen:", "Run index in parallel with 4 threads:" : "Indizierung parallel mit 4 Threads ausführen:", "Force re-indexing of all files:" : "Neuindizierung aller Dateien erzwingen:", "You can limit indexing by user and/or folder:" : "Sie können die Indizierung nach Benutzer und/oder Ordner einschränken:", "Clear all existing index tables:" : "Alle vorhandenen Indextabellen löschen:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Die folgenden MIME-Typen sind für die Erstellung der Vorschau korrekt konfiguriert. Weitere Dokumentation:", - "External Link" : "Externer Link", - "Performance" : "Leistung", + "Media Indexing" : "Medien-Indexierung", "HTTPS is enabled" : "HTTPS ist aktiviert", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Sie greifen über einen unsicheren Kontext auf diese Seite zu. Einige Browser-APIs sind nicht verfügbar, wodurch Erinnerungen (Memories) sehr langsam wird. Aktivieren Sie HTTPS auf Ihrem Server, um die Leistung zu verbessern.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 oder HTTP/3 ist aktiviert", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 oder HTTP/3 wird dringend empfohlen ({httpVer} erkannt)", + "Performance" : "Leistung", "Unknown" : "Unbekannt", - "Reverse Geocoding" : "Umgekehrte Geokodierung", "Database is populated with {n} geometries." : "Die Datenbank ist mit {n} Geometrien gefüllt.", "Geometry table has not been created." : "Geometrietabelle wurde nicht erstellt.", "Looks like the planet data is incomplete." : "Die Planetendaten scheinen unvollständig zu sein.", @@ -116,13 +164,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "Wenn die Schaltfläche unten zum Importieren der Planetendaten nicht funktioniert, verwenden Sie den folgenden Befehl:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Hinweis: Die Geometriedaten werden ohne Präfix in der Tabelle memory_planet_geometry gespeichert.", "Download planet database" : "Planetendatenbank herunterladen", + "Reverse Geocoding" : "Umgekehrte Geokodierung", "Geometry support was not detected in your database" : "Geometrieunterstützung wurde in Ihrer Datenbank nicht erkannt", "MySQL-like geometry support was detected " : "MySQL-ähnliche Geometrieunterstützung wurde erkannt", "Postgres native geometry support was detected" : "Die native Postgres-Geometrieunterstützung wurde erkannt", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Die Datenbank scheint schon eingerichtet zu sein. Wollen Sie die Planetendaten erneut herunterladen?", "You are about to download the planet database. This may take a while." : "Sie sind dabei, die Planentendatenbank herunterzuladen. Dies kann etwas dauern.", "This may also cause all photos to be re-indexed!" : "Dies kann auch dazu führen, dass alle Fotos erneut indexiert werden!", - "Video Streaming" : "Video-Streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Live-Transcodierung ermöglicht adaptives Streaming von Videos mit HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Beachten Sie, dass dies ohne Hardwarebeschleunigung sehr CPU-intensiv sein kann und die Transcodierung nicht für die externe Speicherung verwendet wird.", "Enable Transcoding" : "Transcodierung aktivieren", @@ -132,14 +180,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Automatisch (adaptive Transcodierung)", "Original (transcode with max quality)" : "Original (mit maximaler Qualität transcodieren)", "Direct (original video file without transcode)" : "Direkt (Originalvideodatei ohne Transcodierung)", - "Hardware Acceleration" : "Hardware-Beschleunigung", + "Video Streaming" : "Video-Streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "Sie müssen zunächst sicherstellen, dass die richtigen Treiber installiert sind, bevor Sie die Beschleunigung konfigurieren.", "Make sure you test hardware acceleration with various options after enabling." : "Stellen Sie sicher, dass Sie die Hardwarebeschleunigung nach der Aktivierung mit verschiedenen Optionen testen.", "Do not enable multiple types of hardware acceleration simultaneously." : "Aktivieren Sie nicht mehrere Arten der Hardwarebeschleunigung gleichzeitig.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel-Prozessoren, die QuickSync Video (QSV) unterstützen, sowie einige AMD-GPUs können für die Transcodierung mit VA-API-Beschleunigung verwendet werden.", "For more details on driver installation, check the documentation:" : "Weitere Einzelheiten zur Treiberinstallation finden Sie in der Dokumentation:", "Enable acceleration with VA-API" : "Beschleunigung mit VA-API aktivieren", - "Enable low-power mode (QSV)" : "Energiesparmodus (QSV) aktivieren", + "Enable low-power mode (QSV only)" : "Energiesparmodus aktivieren (nur QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA-GPUs können für die Transcodierung mit dem NVENC-Encoder mit den richtigen Treibern verwendet werden.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Abhängig von den Versionen des installierten SDK und ffmpeg müssen Sie den zu verwendenden Scaler angeben", "No automated tests are available for NVIDIA acceleration." : "Für die NVIDIA-Beschleunigung sind keine automatisierten Tests verfügbar.", @@ -147,17 +195,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "NVENC Temporal AQ aktivieren", "NPP scaler" : "NPP-Scaler", "CUDA scaler" : "CUDA-Scaler", + "not recommended" : "Nicht empfohlen", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Aufgrund eines Fehlers in einigen Hardwaretreibern werden Videos beim Streaming möglicherweise in der falschen Ausrichtung angezeigt. Dies kann in einigen Fällen durch Drehen des Videos in dem Beschleuniger behoben werden.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Aktivieren Sie die folgende Option nur, wenn bei der Wiedergabe falsch ausgerichtete Videos angezeigt werden.", + "Enable streaming transpose workaround" : "Aktivieren Sie die Problemumgehung für die Streaming-Transponierung", + "HW Acceleration" : "Hardwarebeschleunigung", "VA-API device ({dev}) is readable" : "VA-API-Gerät ({dev}) ist lesbar", "VA-API device ({dev}) not found" : "VA-API-Gerät ({dev}) nicht gefunden", "VA-API device ({dev}) has incorrect permissions" : "VA-API-Gerät ({dev}) hat falsche Berechtigungen", "VA-API device status: {status}" : "VA-API-Gerätestatus: {status}", - "Transcoder configuration" : "Transcoder-Konfiguration", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Erinnerungen (Memories) verwendet den Go-Vod-Transcoder. Sie können go-vod extern ausführen (z. B. in einem separaten Docker-Container zur Hardwarebeschleunigung) oder den integrierten Transcoder verwenden. Um einen externen Transcoder zu verwenden, aktivieren Sie die folgende Option und befolgen Sie die Anweisungen in der Dokumentation:", "Enable external transcoder (go-vod)" : "Externen Transcoder aktivieren (go-vod)", "Binary path (local only)" : "Binärer Pfad (nur lokal)", "Bind address (local only)" : "Bind-Adresse (nur lokal)", "Connection address (same as bind if local)" : "Verbindungsadresse (dasselbe wie bind, wenn lokal)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} Element zum Album hinzugefügt","{n} Elmente zum Album hinzugefügt"], + "Transcoder" : "Transkodierer", + "Template" : "Vorlage", + "No items" : "Keine Elemente", + "Shared by {user}" : "Geteilt von {user}", + "_{n} item_::_{n} items_" : ["{n} Element","{n} Elemente"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} Foto aktualisiert","{n} Fotos aktualisiert"], "Add people or groups who can edit your album" : "Personen oder Gruppen hinzufügen, die Ihr Album bearbeiten können", "Search for collaborators" : "Suche nach Mitbearbeitenden", "Search people or groups" : "Suchen nach Personen oder Gruppen", @@ -179,7 +236,6 @@ OC.L10N.register( "Could not load the selected album" : "Gewähltes Album konnte nicht geladen werden", "Remove Album" : "Album entfernen", "Are you sure you want to permanently remove album \"{name}\"?" : "Möchten Sie das Album \"{name}\" wirklich endgültig entfernen?", - "Only user \"{user}\" can delete this album" : "Nur der Benutzer \"{user}\" can dieses Album löschen", "Failed to delete {name}." : "Fehler beim Löschen von {name}.", "Name of the album" : "Name des Albums", "Location of the album" : "Ort des Albums", @@ -191,12 +247,14 @@ OC.L10N.register( "Save" : "Speichern", "Create album" : "Album erstellen", "Invalid album name; should not contain any slashes." : "Ungültiger Albumname; darf keine Schrägstriche enthalten.", - "Add selection to album {albumName}" : "Auswahl zum Album {albumName} hinzufügen", - "Create a new album." : "Ein neues Album erstellen.", - "_%n item_::_%n items_" : ["%n Element","%n Elemente"], - "_Share with %n user_::_Share with %n users_" : ["Mit %n Benutzer teilen","Mit %n Benutzern teilen"], + "Search" : "Suche", + "Create new album." : "Neues Album erstellen.", + "Save changes" : "Änderungen speichern", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Entfernt aus {n} Album","Entfernt aus {n} Alben"], "Share Album" : "Album teilen", "Save collaborators for this album." : "Mitbearbeitende für dieses Album speichern.", + "shared by {owner}" : "Geteilt von {owner}", + "_%n item_::_%n items_" : ["%n Element","%n Elemente"], "Newest" : "Neueste", "Year" : "Jahr", "Month" : "Monat", @@ -233,18 +291,19 @@ OC.L10N.register( "Name" : "Name", "Update" : "Aktualisieren", "Failed to rename {oldName} to {name}." : "Fehler beim Umbenennen von {oldName} in {name}.", - "Search" : "Suche", "Loading …" : "Lade …", "Enter name of the new face" : "Geben Sie den Namen des neuen Gesichts ein", "Failed to create face" : "Gesicht konnte nicht angelegt werden", "Merge {name} with person" : "{name} mit Person zusammenführen", - "Are you sure you want to merge {name} with {newName}?" : "Sind Sie sicher, dass Sie {name} mit {newName} zusammenführen möchten?", + "Merge faces" : "Gesichter vereinen", + "Merge {name} with {newName}?" : "{name} mit {newName} vereinen?", + "unnamed person" : "Unbenannte Person", "Too many failures, aborting" : "Zu viele Fehler, Abbruch", "Error while moving {basename}" : "Fehler beim Verschieben von {basename}", "Failed to move {name}." : "{name} konnte nicht verschoben werden.", "Move selected photos to person" : "Ausgewählte Fotos zu einer Person verschieben", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Möchten Sie die ausgewählten Fotos wirklich von {name} nach {target} verschieben?", - "An error occured while moving photos from {name}." : "Beim Verschieben der Fotos von {name} ist ein Fehler aufgetreten.", + "Move the selected photos to {target}?" : "Ausgewählte Fotos nach {target} verschieben?", + "An error occurred while moving photos from {name}." : "Beim Verschieben der Fotos von {name} ist ein Fehler aufgetreten.", "Choose a folder" : "Ordner auswählen", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} Element in den Ordner verschoben","{n} Elementen in den Ordner verschoben"], "Remove" : "Entfernen", @@ -279,10 +338,11 @@ OC.L10N.register( "Sort by name" : "Nach Namen sortieren", "Share album" : "Album teilen", "Download album" : "Album herunterladen", - "Delete album" : "Album löschen", "Nothing to show here" : "Hier gibt es nichts anzuzeigen", + "Unassigned faces" : "Nicht zugewiesene Gesichter", "Merge with different person" : "Mit einer anderen Person zusammenführen", "Mark person in preview" : "Person in Vorschau markieren", + "Unnamed person" : "Unbenannte Person", "Folder View" : "Ordneransicht", "Timeline View" : "Zeitleistenansicht", "Share folder" : "Ordner teilen", @@ -294,7 +354,6 @@ OC.L10N.register( "Drop changes" : "Änderungen verwerfen", "Share" : "Teilen", "Play Live Photo" : "Live-Foto abspielen", - "Sidebar" : "Seitenleiste", "Download Video" : "Video herunterladen", "Slideshow" : "Diashow", "Previous" : "Zurück", @@ -311,7 +370,6 @@ OC.L10N.register( "Save as" : "Speichern als", "All changes will be lost." : "Alle Änderungen gehen verloren.", "Are you sure you want to continue?" : "Sind Sie sich sicher, dass Sie fortsetzen wollen?", - "Continue" : "Fortsetzen", "Undo" : "Rückgängig", "Redo" : "Wiederherstellen", "Show original image" : "Originalbild anzeigen", @@ -396,6 +454,7 @@ OC.L10N.register( "Auto" : "Automatisch", "Shared Folder" : "Geteilter Ordner", "Shared Album" : "Geteiltes Album", + "Failed to remove {filename}." : "{filename} konnte nicht entfernt werden.", "Failed to create {albumName}." : "{albumName} konnte nicht erstellt werden.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} konnte nicht in {newAlbumName} umbenannt werden.", "General Failure" : "Allgemeiner Fehler", @@ -408,6 +467,9 @@ OC.L10N.register( "Failed to favorite files." : "Favorisieren von Dateien fehlgeschlagen.", "Failed to favorite some files." : "Einige Dateien konnten nicht zu den Favoriten hinzugefügt werden.", "Failed to favorite {fileName}." : "{fileName} konnte nicht zu den Favoriten hinzugefügt werden.", + "No content-location header found" : "Kein Content-Location-Header gefunden", + "Failed to create tag {name}: {error}" : "Fehler beim Erstellen des Schlagwortes {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Erinnerungen (Memories) wurden auf {version} aktualisiert. Neuladen, um die neue Version zu erhalten.", "Upload some photos and make sure the timeline path is configured" : "Laden Sie einige Fotos hoch und stellen Sie sicher, dass der Timeline-Pfad konfiguriert ist", "Mark photos as favorite to find them easily" : "Markieren Sie Fotos als Favoriten, um sie leicht zu finden", "Memories from past years will appear here" : "Erinnerungen aus vergangenen Jahren werden hier erscheinen", @@ -420,6 +482,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Markieren Sie Fotos, um sie leicht zu finden", "Recognize is still working on your photos" : "Die Erkennung arbeitet noch an Ihren Fotos", "Places you have been to will appear here" : "Orte, die Sie besucht haben, werden hier angezeigt", - "Your Timeline" : "Ihre Zeitleiste" + "Yes" : "Ja", + "No" : "Nein" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/de_DE.json b/l10n/de_DE.json index fb9782c2..05a9e116 100644 --- a/l10n/de_DE.json +++ b/l10n/de_DE.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Herunterladen", "Memories" : "Erinnerungen", "Fast, modern and advanced photo management suite" : "Schnelle, moderne und fortschrittliche Fotoverwaltungssuite", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Erinnerungen: Fotoverwaltung für Nextcloud\n\nErinnerungen (Memories) ist eine Fotoverwaltungslösung *Batterien enthalten* für Nextcloud mit erweiterten Funktionen, darunter:\n\n- **📸 Timeline**: Fotos und Videos nach Aufnahmedatum sortieren, geparst aus Exif-Daten.\n- **⏪ Zurückspulen**: Springen Sie sofort zu einem beliebigen Zeitpunkt in der Vergangenheit und erleben Sie Ihre Erinnerungen erneut.\n- **🤖 KI-Tagging**: Gruppieren Sie Fotos nach Personen und Objekten, unterstützt von [recognize](https://github.com/nextcloud/recognize) und [facerecognition](https://github.com/matiasdelellis/facerecognition ).\n- **🖼️ Alben**: Erstellen Sie Alben, um Fotos und Videos zu gruppieren. Dann teilen Sie diese Alben mit anderen.\n- **🫱🏻‍🫲🏻 Externes Teilen**: Teilen Sie Fotos und Videos mit Personen außerhalb Ihrer Nextcloud-Instanz.\n- **📱 Mobiler Support**: Arbeiten Sie von jedem Gerät jeder Form und Größe über die Web-App.\n- **✏️ Metadaten bearbeiten**: Bearbeiten Sie Daten und andere Metadaten auf Fotos schnell und in großen Mengen.\n- **📦 Archiv**: Speichern Sie Fotos, die Sie nicht in Ihrer Chronik sehen möchten, in einem separaten Ordner.\n- **📹 Videotranskodierung**: Videos transkodieren und HLS für maximale Leistung verwenden.\n- **🗺️ Karte**: Zeigen Sie Ihre Fotos auf einer Karte an, die mit genauer umgekehrter Geokodierung versehen ist.\n- **📦 Migration**: Migrieren Sie einfach von Nextcloud Photos und Google Takeout.\n- **⚡️ Leistung**: Mach das alles sehr schnell.\n\n## 🚀 Installation\n\n1. Installieren Sie die App aus dem Nextcloud App Store (oder probieren Sie [hier] eine Demo aus (https://demo.memories.gallery/apps/memories/).\n1. Führen Sie die empfohlenen [Konfigurationsschritte] durch (https://demo.memories.gallery/apps/memories/).\n1. Führen Sie `php occ memorys:index` aus, um Metadaten-Indizes für vorhandene Fotos zu generieren.\n1. Öffnen Sie die App 📷 Erinnerungen in Nextcloud und legen Sie das Verzeichnis mit Ihren Fotos fest.", @@ -22,17 +23,20 @@ "Face Recognition" : "Gesichtserkennung", "A better photos experience awaits you" : "Ein besseres Fotoerlebnis erwartet Sie", "Choose the root folder of your timeline to begin" : "Wählen Sie den Quellordner Ihrer Zeitleiste um zu beginnen", - "If you just installed Memories, run:" : "Wenn Sie Memories gerade installiert haben, führen Sie Folgendes aus:", "Continue to Memories" : "Weiter zu Memories", "Choose again" : "Erneut auswählen", "Click here to start" : "Zum Starten hier klicken", "You can always change this later in settings" : "Sie können das auch noch später in den Einstellungen ändern", + "If you just installed Memories, visit the admin panel first." : "Wenn Sie Erinnerungen (Memories) gerade erst installiert haben, navigieren Sie bitte zunächst zum Administrationsmenü.", "Choose the root of your timeline" : "Start Ihrer Zeitleiste auswählen", "The selected folder does not seem to be valid. Try again." : "Der ausgewählte Ordner scheint ungültig zu sein. Versuchen Sie es nochmal.", + "No photos were found in the selected folder." : "Im gewählten Ordner wurden keine Fotos gefunden.", + "This can happen because your media is still indexing." : "Dies kann den Grund haben, dass Ihre Medien aktuell noch indexiert werden.", + "Visit the admin panel to make sure Memories is configured correctly." : "Navigieren Sie zum Administrationsmenü um zu überprüfen, ob Erinnerungen (Memories) korrekt eingerichtet ist.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} Foto gefunden in {path}","{n} Fotos gefunden in {path}"], + "Metadata" : "Metadaten", "Edit" : "Bearbeiten", - "No title" : "Kein Titel", - "No description" : "Keine Beschreibung", + "Failed to load metadata" : "Fehler beim Laden der Metadaten", "No coordinates" : "Keine Koordinaten", "Click edit to set location" : "Auf Bearbeiten klicken um den Ort festzulegen", "Photos" : "Fotos", @@ -40,7 +44,6 @@ "Cancel" : "Abbrechen", "Delete" : "Löschen", "Remove from album" : "Aus dem Album entfernen", - "Download" : "Herunterladen", "Favorite" : "Favorisieren", "Unarchive" : "Dearchivieren", "Edit metadata" : "Metadaten bearbeiten", @@ -49,10 +52,12 @@ "Add to album" : "Zum Album hinzufügen", "Move to person" : "Zu einer Person verschieben", "Remove from person" : "Von der Person entfernen", - "You are about to download a large number of files. Are you sure?" : "Sie sind dabei, eine große Anzahl an Dateien herunterzuladen. Sind Sie sich sicher?", - "You are about to delete a large number of files. Are you sure?" : "Sie sind dabei, eine große Anzahl an Dateien zu löschen. Sind Sie sich sicher?", + "You are about to download a large number of files." : "Sie sind dabei, eine große Anzahl an Dateien herunterzuladen.", + "Continue" : "Fortsetzen", + "You are about to delete a large number of files" : "Sie sind dabei, eine große Anzahl an Dateien zu löschen.", "Failed to delete files" : "Löschen von Dateien fehlgeschlagen", - "You are about to touch a large number of files. Are you sure?" : "Sie sind im Begriff, eine große Anzahl von Dateien zu ändern. Sind Sie sich sicher?", + "Move" : "Verschieben", + "You are about to move a large number of files" : "Sie sind dabei, eine große Anzahl an Dateien zu verschieben.", "You must enable \"Mark person in preview\" to use this feature" : "Sie müssen „Person in Vorschau markieren“ aktivieren, um diese Funktion nutzen zu können", "Only user \"{user}\" can update this person" : "Nur der Benutzer \"{user}\" kann diese Person aktualisieren", "_{n} selected_::_{n} selected_" : ["{n} ausgewählt","{n} ausgewählt"], @@ -61,50 +66,93 @@ "Timeline Path" : "Pfad der Zeitleiste", "Square grid mode" : "Quadratischer Gittermodus", "Show past photos on top of timeline" : "Vergangene Fotos oben auf der Zeitleiste anzeigen", + "Viewer" : "Betrachter", + "Autoplay Live Photos" : "Live-Fotos automatisch abspielen", "Load full size image on zoom" : "Bild in voller Größe beim Zoomen laden", "Always load full size image (not recommended)" : "Bild immer in voller Größe laden (nicht empfohlen)", + "Show full file path in sidebar" : "Vollständigen Dateipfad in der Seitenleiste anzeigen", + "Account" : "Konto", + "Logged in as {user}" : "Angemeldet als {user}", + "Sign out" : "Abmelden", + "Device Folders" : "Geräteordner", + "Local folders to include in the timeline view" : "Lokale Ordner, die in die Zeitleisten-Ansicht einbezogen werden sollen", "Folders Path" : "Ordnerpfad", "Show hidden folders" : "Zeige versteckte Ordner", "Sort folders oldest-first" : "Ordner sortieren, älteste zuerst", "Sort albums oldest-first" : "Alben sortieren, älteste zuerst", "Choose Timeline Paths" : "Pfade der Zeitleiste auswählen", "Choose the root for the folders view" : "Wählen Sie das Stammverzeichnis für die Ordneransicht", + "Are you sure you want to log out {user}?" : "Möchten Sie wirklich {user} abmelden?", "Close" : "Schließen", "{photoCount} photos" : "{photoCount} Fotos", "Failed to load some photos" : "Laden einiger Fotos fehlgeschlagen", "Failed to update setting" : "Die Einstellung konnte nicht aktualisiert werden", - "EXIF Extraction" : "EXIF-Extraktion", + "Albums support is enabled through the Photos app." : "Die Albenunterstützung wurde über die Fotos-App aktiviert.", + "Albums are disabled because the Photos app is not available." : "Alben sind deaktiviert, da die Fotos-App nicht verfügbar ist.", + "Recognize is installed and enabled for face recognition." : "Recognize ist installiert und für die Gesichtserkennung aktiviert.", + "Recognize is installed but not enabled for face recognition." : "Recognize ist installiert, aber nicht für die Gesichtserkennung aktiviert.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Recognize ist nicht installiert. Gesichtserkennung und Objektkennzeichnung sind möglicherweise nicht verfügbar.", + "Face Recognition is installed and enabled" : "Gesichtserkennung ist installiert und aktiviert", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Der Vorschaugenerator ist installiert und aktiviert. Möglicherweise ist noch eine zusätzliche Konfiguration erforderlich.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Der Vorschaugenerator ist nicht installiert und konfiguriert. Dies kann dazu führen, dass Memories sehr langsam ist.", + "Recommended Apps" : "Empfohlene Apps", "Path to packaged exiftool binary" : "Pfad zur gepackten Exiftool-Binärdatei", "You need perl only if the packaged exiftool binary does not work for some reason." : "Sie brauchen Perl nur, wenn die gepackte Exiftool-Binärdatei aus irgendeinem Grund nicht funktioniert.", "Use system perl (only if exiftool binary does not work)" : "System-Perl verwenden (nur wenn die Exiftool-Binärdatei nicht funktioniert)", - "Media Indexing" : "Medien-Indexierung", + "EXIF Extraction" : "EXIF-Extraktion", + "You can configure the enabled Nextcloud preview providers below." : "Sie können die aktiven Nextcloud-Vorschauanbieter unten einrichten.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Wenn Sie Imaginary zur Vorschauerstellung verwenden, können Sie diesen Abschnitt überspringen.", + "To enable RAW support, install the Camera RAW Previews app." : "Um die RAW-Unterstützung zu aktivieren, installieren Sie die Camera RAW Vorschau-App.", + "Documentation." : "Dokumentation.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick ist Verfügbar [{version}].", + "PHP-Imagick is not available." : "PHP-Imagickist nicht verfügbar.", + "Image editing will not work correctly." : "Die Bildbearbeitung wird nicht korrekt funktionieren.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Bei einigen Formaten (HEIC, TIFF) funktioniert die Erstellung von Miniaturansichten möglicherweise nicht.", + "Thumbnails for videos will be generated with this binary." : "Mit dieser Binärdatei werden Miniaturansichten für Videos generiert.", + "Thumbnail generation may not work for videos." : "Die Erstellung von Miniaturansichten funktioniert möglicherweise nicht für Videos.", + "The following MIME types are configured for preview generation." : "Die folgenden MIME-Typen sind für die Erstellung der Vorschau eingerichtet.", + "Max preview size (trade-off between quality and storage requirements)." : "Maximale Vorschaugröße (Kompromiss zwischen Qualität und Speicherbedarf).", + "Max memory for preview generation (MB)" : "Maximaler Speicher für die Vorschauerstellung (MB)", + "Max size of preview files (MB)" : "Maximale Größe der Vorschaudateien (MB)", + "File Support" : "Dateiunterstützung", + "Images (JPEG, PNG, GIF, BMP)" : "Bilder (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Vielen Dank, dass Sie sich für Nextcloud und Memories zur Speicherung Ihrer wertvollen Daten entschieden haben!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories hat einen großen Funktionsumfang und die vollständige Einrichtung kann einige Zeit benötigen.", + "If you just installed Memories, make sure you read the getting started guide:" : "Wenn Sie Memories gerade installiert haben, lesen Sie unbedingt die Erste-Schritte-Anleitung:", + "External Link" : "Externer Link", + "In case you run into any issues or bugs, you can get help through several channels." : "Falls Sie auf Probleme oder Fehler stoßen, können Sie auf verschiedenen Wegen Hilfe erhalten.", + "Memories is a completely free and open source app under active development." : "Memories ist eine völlig kostenlose Open-Source-App, die sich derzeit in der aktiven Entwicklung befindet.", + "You can contribute in several ways. See the project page for more details:" : "Sie können auf verschiedene Weise Ihren Beitrag leisten. Weitere Details finden Sie auf der Projektseite:", + "Help & Support" : "Hilfe und Unterstützung", "{n} media files have been indexed" : "{n} Mediendateien wurden indexiert", - "Automatic Indexing status: {status}" : "Automatischer Indizierungsstatus: {status}", - "Last index job was run {t} seconds ago." : "Die letzte Indizierungsaufgabe wurde vor {t}  Sekunden ausgeführt.", + "Automatic Indexing status: {status}" : "Status automatische Indizierung: {status}", + "Last index job was run {t} seconds ago." : "Die letzte Indizierungsaufgabe wurde vor {t} Sekunden ausgeführt.", "It took {t} seconds to complete." : "Die Fertigstellung dauerte {t} Sekunden.", "It is still running or was interrupted." : "Läuft noch oder wurde unterbrochen.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Es scheint, dass seit der Ausführung des letzten Indexjobs mehr als eine Stunde vergangen ist. Stellen Sie sicher, dass Nextcloud-Cron richtig konfiguriert ist.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Nur die serverseitige Verschlüsselung (OC_DEFAULT_MODULE) wird unterstützt, es ist jedoch ein anderes Verschlüsselungsmodul aktiviert.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Die EXIF-Indexe werden in regelmäßigen Abständen im Hintergrund erstellt und überprüft. Seien Sie vorsichtig, wenn Sie etwas anderes als die automatische Indexierung auswählen. Wenn Sie z. B. die Indexierung auf Zeitleistenordner beschränken, kann es zu Verzögerungen kommen, bevor die Medien für die Benutzer verfügbar sind, da der Benutzer die Zeitleiste erst nach der Anmeldung konfiguriert.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Ordner mit einer „.nomedia“-Datei sind immer von der Indizierung ausgeschlossen.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Ordner mit einer „.nomedia“- oder einer „.nomemories“-Datei werden immer von der Indizierung ausgeschlossen.", "Index all media automatically (recommended)" : "Alle Medien automatisch indexieren (empfohlen)", "Index per-user timeline folders (not recommended)" : "Indexierung von Zeitleistenordnern pro Benutzer (nicht empfohlen)", "Index a fixed relative path" : "Einen festen relativen Pfad indexieren", "Disable background indexing" : "Hintergrundindizierung deaktivieren", "Indexing path (relative, all users)" : "Indexierungspfad (relativ, alle Benutzer)", - "For advanced usage, perform a run of indexing by running:" : "Zur Umfassenden Nutzung einen Indizierungslauf durchführen, indem Sie Folgendes ausführen:", + "For advanced usage, perform a run of indexing by running:" : "Zur umfassenden Nutzung einen Indizierungslauf durchführen, indem Sie Folgendes ausführen:", "Run index in parallel with 4 threads:" : "Indizierung parallel mit 4 Threads ausführen:", "Force re-indexing of all files:" : "Neuindizierung aller Dateien erzwingen:", "You can limit indexing by user and/or folder:" : "Sie können die Indizierung nach Benutzer und/oder Ordner einschränken:", "Clear all existing index tables:" : "Alle vorhandenen Indextabellen löschen:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Die folgenden MIME-Typen sind für die Erstellung der Vorschau korrekt konfiguriert. Weitere Dokumentation:", - "External Link" : "Externer Link", - "Performance" : "Leistung", + "Media Indexing" : "Medien-Indexierung", "HTTPS is enabled" : "HTTPS ist aktiviert", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Sie greifen über einen unsicheren Kontext auf diese Seite zu. Einige Browser-APIs sind nicht verfügbar, wodurch Erinnerungen (Memories) sehr langsam wird. Aktivieren Sie HTTPS auf Ihrem Server, um die Leistung zu verbessern.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 oder HTTP/3 ist aktiviert", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 oder HTTP/3 wird dringend empfohlen ({httpVer} erkannt)", + "Performance" : "Leistung", "Unknown" : "Unbekannt", - "Reverse Geocoding" : "Umgekehrte Geokodierung", "Database is populated with {n} geometries." : "Die Datenbank ist mit {n} Geometrien gefüllt.", "Geometry table has not been created." : "Geometrietabelle wurde nicht erstellt.", "Looks like the planet data is incomplete." : "Die Planetendaten scheinen unvollständig zu sein.", @@ -114,13 +162,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "Wenn die Schaltfläche unten zum Importieren der Planetendaten nicht funktioniert, verwenden Sie den folgenden Befehl:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Hinweis: Die Geometriedaten werden ohne Präfix in der Tabelle memory_planet_geometry gespeichert.", "Download planet database" : "Planetendatenbank herunterladen", + "Reverse Geocoding" : "Umgekehrte Geokodierung", "Geometry support was not detected in your database" : "Geometrieunterstützung wurde in Ihrer Datenbank nicht erkannt", "MySQL-like geometry support was detected " : "MySQL-ähnliche Geometrieunterstützung wurde erkannt", "Postgres native geometry support was detected" : "Die native Postgres-Geometrieunterstützung wurde erkannt", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Die Datenbank scheint schon eingerichtet zu sein. Wollen Sie die Planetendaten erneut herunterladen?", "You are about to download the planet database. This may take a while." : "Sie sind dabei, die Planentendatenbank herunterzuladen. Dies kann etwas dauern.", "This may also cause all photos to be re-indexed!" : "Dies kann auch dazu führen, dass alle Fotos erneut indexiert werden!", - "Video Streaming" : "Video-Streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Live-Transcodierung ermöglicht adaptives Streaming von Videos mit HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Beachten Sie, dass dies ohne Hardwarebeschleunigung sehr CPU-intensiv sein kann und die Transcodierung nicht für die externe Speicherung verwendet wird.", "Enable Transcoding" : "Transcodierung aktivieren", @@ -130,14 +178,14 @@ "Auto (adaptive transcode)" : "Automatisch (adaptive Transcodierung)", "Original (transcode with max quality)" : "Original (mit maximaler Qualität transcodieren)", "Direct (original video file without transcode)" : "Direkt (Originalvideodatei ohne Transcodierung)", - "Hardware Acceleration" : "Hardware-Beschleunigung", + "Video Streaming" : "Video-Streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "Sie müssen zunächst sicherstellen, dass die richtigen Treiber installiert sind, bevor Sie die Beschleunigung konfigurieren.", "Make sure you test hardware acceleration with various options after enabling." : "Stellen Sie sicher, dass Sie die Hardwarebeschleunigung nach der Aktivierung mit verschiedenen Optionen testen.", "Do not enable multiple types of hardware acceleration simultaneously." : "Aktivieren Sie nicht mehrere Arten der Hardwarebeschleunigung gleichzeitig.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel-Prozessoren, die QuickSync Video (QSV) unterstützen, sowie einige AMD-GPUs können für die Transcodierung mit VA-API-Beschleunigung verwendet werden.", "For more details on driver installation, check the documentation:" : "Weitere Einzelheiten zur Treiberinstallation finden Sie in der Dokumentation:", "Enable acceleration with VA-API" : "Beschleunigung mit VA-API aktivieren", - "Enable low-power mode (QSV)" : "Energiesparmodus (QSV) aktivieren", + "Enable low-power mode (QSV only)" : "Energiesparmodus aktivieren (nur QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA-GPUs können für die Transcodierung mit dem NVENC-Encoder mit den richtigen Treibern verwendet werden.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Abhängig von den Versionen des installierten SDK und ffmpeg müssen Sie den zu verwendenden Scaler angeben", "No automated tests are available for NVIDIA acceleration." : "Für die NVIDIA-Beschleunigung sind keine automatisierten Tests verfügbar.", @@ -145,17 +193,26 @@ "Enable NVENC Temporal AQ" : "NVENC Temporal AQ aktivieren", "NPP scaler" : "NPP-Scaler", "CUDA scaler" : "CUDA-Scaler", + "not recommended" : "Nicht empfohlen", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Aufgrund eines Fehlers in einigen Hardwaretreibern werden Videos beim Streaming möglicherweise in der falschen Ausrichtung angezeigt. Dies kann in einigen Fällen durch Drehen des Videos in dem Beschleuniger behoben werden.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Aktivieren Sie die folgende Option nur, wenn bei der Wiedergabe falsch ausgerichtete Videos angezeigt werden.", + "Enable streaming transpose workaround" : "Aktivieren Sie die Problemumgehung für die Streaming-Transponierung", + "HW Acceleration" : "Hardwarebeschleunigung", "VA-API device ({dev}) is readable" : "VA-API-Gerät ({dev}) ist lesbar", "VA-API device ({dev}) not found" : "VA-API-Gerät ({dev}) nicht gefunden", "VA-API device ({dev}) has incorrect permissions" : "VA-API-Gerät ({dev}) hat falsche Berechtigungen", "VA-API device status: {status}" : "VA-API-Gerätestatus: {status}", - "Transcoder configuration" : "Transcoder-Konfiguration", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Erinnerungen (Memories) verwendet den Go-Vod-Transcoder. Sie können go-vod extern ausführen (z. B. in einem separaten Docker-Container zur Hardwarebeschleunigung) oder den integrierten Transcoder verwenden. Um einen externen Transcoder zu verwenden, aktivieren Sie die folgende Option und befolgen Sie die Anweisungen in der Dokumentation:", "Enable external transcoder (go-vod)" : "Externen Transcoder aktivieren (go-vod)", "Binary path (local only)" : "Binärer Pfad (nur lokal)", "Bind address (local only)" : "Bind-Adresse (nur lokal)", "Connection address (same as bind if local)" : "Verbindungsadresse (dasselbe wie bind, wenn lokal)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} Element zum Album hinzugefügt","{n} Elmente zum Album hinzugefügt"], + "Transcoder" : "Transkodierer", + "Template" : "Vorlage", + "No items" : "Keine Elemente", + "Shared by {user}" : "Geteilt von {user}", + "_{n} item_::_{n} items_" : ["{n} Element","{n} Elemente"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} Foto aktualisiert","{n} Fotos aktualisiert"], "Add people or groups who can edit your album" : "Personen oder Gruppen hinzufügen, die Ihr Album bearbeiten können", "Search for collaborators" : "Suche nach Mitbearbeitenden", "Search people or groups" : "Suchen nach Personen oder Gruppen", @@ -177,7 +234,6 @@ "Could not load the selected album" : "Gewähltes Album konnte nicht geladen werden", "Remove Album" : "Album entfernen", "Are you sure you want to permanently remove album \"{name}\"?" : "Möchten Sie das Album \"{name}\" wirklich endgültig entfernen?", - "Only user \"{user}\" can delete this album" : "Nur der Benutzer \"{user}\" can dieses Album löschen", "Failed to delete {name}." : "Fehler beim Löschen von {name}.", "Name of the album" : "Name des Albums", "Location of the album" : "Ort des Albums", @@ -189,12 +245,14 @@ "Save" : "Speichern", "Create album" : "Album erstellen", "Invalid album name; should not contain any slashes." : "Ungültiger Albumname; darf keine Schrägstriche enthalten.", - "Add selection to album {albumName}" : "Auswahl zum Album {albumName} hinzufügen", - "Create a new album." : "Ein neues Album erstellen.", - "_%n item_::_%n items_" : ["%n Element","%n Elemente"], - "_Share with %n user_::_Share with %n users_" : ["Mit %n Benutzer teilen","Mit %n Benutzern teilen"], + "Search" : "Suche", + "Create new album." : "Neues Album erstellen.", + "Save changes" : "Änderungen speichern", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Entfernt aus {n} Album","Entfernt aus {n} Alben"], "Share Album" : "Album teilen", "Save collaborators for this album." : "Mitbearbeitende für dieses Album speichern.", + "shared by {owner}" : "Geteilt von {owner}", + "_%n item_::_%n items_" : ["%n Element","%n Elemente"], "Newest" : "Neueste", "Year" : "Jahr", "Month" : "Monat", @@ -231,18 +289,19 @@ "Name" : "Name", "Update" : "Aktualisieren", "Failed to rename {oldName} to {name}." : "Fehler beim Umbenennen von {oldName} in {name}.", - "Search" : "Suche", "Loading …" : "Lade …", "Enter name of the new face" : "Geben Sie den Namen des neuen Gesichts ein", "Failed to create face" : "Gesicht konnte nicht angelegt werden", "Merge {name} with person" : "{name} mit Person zusammenführen", - "Are you sure you want to merge {name} with {newName}?" : "Sind Sie sicher, dass Sie {name} mit {newName} zusammenführen möchten?", + "Merge faces" : "Gesichter vereinen", + "Merge {name} with {newName}?" : "{name} mit {newName} vereinen?", + "unnamed person" : "Unbenannte Person", "Too many failures, aborting" : "Zu viele Fehler, Abbruch", "Error while moving {basename}" : "Fehler beim Verschieben von {basename}", "Failed to move {name}." : "{name} konnte nicht verschoben werden.", "Move selected photos to person" : "Ausgewählte Fotos zu einer Person verschieben", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Möchten Sie die ausgewählten Fotos wirklich von {name} nach {target} verschieben?", - "An error occured while moving photos from {name}." : "Beim Verschieben der Fotos von {name} ist ein Fehler aufgetreten.", + "Move the selected photos to {target}?" : "Ausgewählte Fotos nach {target} verschieben?", + "An error occurred while moving photos from {name}." : "Beim Verschieben der Fotos von {name} ist ein Fehler aufgetreten.", "Choose a folder" : "Ordner auswählen", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} Element in den Ordner verschoben","{n} Elementen in den Ordner verschoben"], "Remove" : "Entfernen", @@ -277,10 +336,11 @@ "Sort by name" : "Nach Namen sortieren", "Share album" : "Album teilen", "Download album" : "Album herunterladen", - "Delete album" : "Album löschen", "Nothing to show here" : "Hier gibt es nichts anzuzeigen", + "Unassigned faces" : "Nicht zugewiesene Gesichter", "Merge with different person" : "Mit einer anderen Person zusammenführen", "Mark person in preview" : "Person in Vorschau markieren", + "Unnamed person" : "Unbenannte Person", "Folder View" : "Ordneransicht", "Timeline View" : "Zeitleistenansicht", "Share folder" : "Ordner teilen", @@ -292,7 +352,6 @@ "Drop changes" : "Änderungen verwerfen", "Share" : "Teilen", "Play Live Photo" : "Live-Foto abspielen", - "Sidebar" : "Seitenleiste", "Download Video" : "Video herunterladen", "Slideshow" : "Diashow", "Previous" : "Zurück", @@ -309,7 +368,6 @@ "Save as" : "Speichern als", "All changes will be lost." : "Alle Änderungen gehen verloren.", "Are you sure you want to continue?" : "Sind Sie sich sicher, dass Sie fortsetzen wollen?", - "Continue" : "Fortsetzen", "Undo" : "Rückgängig", "Redo" : "Wiederherstellen", "Show original image" : "Originalbild anzeigen", @@ -394,6 +452,7 @@ "Auto" : "Automatisch", "Shared Folder" : "Geteilter Ordner", "Shared Album" : "Geteiltes Album", + "Failed to remove {filename}." : "{filename} konnte nicht entfernt werden.", "Failed to create {albumName}." : "{albumName} konnte nicht erstellt werden.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} konnte nicht in {newAlbumName} umbenannt werden.", "General Failure" : "Allgemeiner Fehler", @@ -406,6 +465,9 @@ "Failed to favorite files." : "Favorisieren von Dateien fehlgeschlagen.", "Failed to favorite some files." : "Einige Dateien konnten nicht zu den Favoriten hinzugefügt werden.", "Failed to favorite {fileName}." : "{fileName} konnte nicht zu den Favoriten hinzugefügt werden.", + "No content-location header found" : "Kein Content-Location-Header gefunden", + "Failed to create tag {name}: {error}" : "Fehler beim Erstellen des Schlagwortes {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Erinnerungen (Memories) wurden auf {version} aktualisiert. Neuladen, um die neue Version zu erhalten.", "Upload some photos and make sure the timeline path is configured" : "Laden Sie einige Fotos hoch und stellen Sie sicher, dass der Timeline-Pfad konfiguriert ist", "Mark photos as favorite to find them easily" : "Markieren Sie Fotos als Favoriten, um sie leicht zu finden", "Memories from past years will appear here" : "Erinnerungen aus vergangenen Jahren werden hier erscheinen", @@ -418,6 +480,7 @@ "Tag photos to find them easily" : "Markieren Sie Fotos, um sie leicht zu finden", "Recognize is still working on your photos" : "Die Erkennung arbeitet noch an Ihren Fotos", "Places you have been to will appear here" : "Orte, die Sie besucht haben, werden hier angezeigt", - "Your Timeline" : "Ihre Zeitleiste" + "Yes" : "Ja", + "No" : "Nein" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/el.js b/l10n/el.js index ef3c88a8..1a12d25a 100644 --- a/l10n/el.js +++ b/l10n/el.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Λήψη", "Settings" : "Ρυθμίσεις", "People" : "Άτομα", "Info" : "Πληροφόρηση", @@ -12,19 +13,26 @@ OC.L10N.register( "Archive" : "Αρχειοθέτηση", "On this day" : "Αυτή τη μέρα", "Tags" : "Ετικέτες", + "Metadata" : "Μεταδεδομένα", "Edit" : "Επεξεργασία", "Explore" : "Εξερεύνηση", "Cancel" : "Ακύρωση", "Delete" : "Διαγραφή", - "Download" : "Λήψη", "Favorite" : "Αγαπημένο", "Unarchive" : "Αναίρεση αρχειοθέτησης", "View in folder" : "Προβολή στον φάκελο", "Add to album" : "Προσθήκη στο άλμπουμ", + "Continue" : "Συνεχίστε", + "Move" : "Μετακίνηση", "General" : "Γενικά", + "Viewer" : "Πρόγραμμα προβολής", + "Account" : "Λογαριασμός", "Close" : "Κλείσιμο", "Performance" : "Απόδοση", "Unknown" : "Άγνωστο", + "Template" : "Πρότυπο", + "No items" : "Κανένα στοιχείο", + "Shared by {user}" : "Διαμοιράστηκε από {user}", "No collaborators available" : "Δεν υπάρχουν διαθέσιμοι συνεργάτες", "Copy public link" : "Αντιγραφή δημόσιου συνδέσμου", "Public link" : "Δημόσιος σύνδεσμος", @@ -35,7 +43,7 @@ OC.L10N.register( "Back" : "Πίσω", "Save" : "Αποθήκευση", "Create album" : "Δημιουργία άλμπουμ", - "Create a new album." : "Δημιουργήστε ένα νέο άλμπουμ.", + "Search" : "Αναζήτηση", "Year" : "Έτος", "Month" : "Μήνας", "Day" : "Ημέρα", @@ -51,7 +59,6 @@ OC.L10N.register( "Rename person" : "Μετονομασία ατόμου", "Name" : "Όνομα", "Update" : "Ενημέρωση", - "Search" : "Αναζήτηση", "Loading …" : "Φόρτωση …", "Remove" : "Αφαίρεση", "Share link" : "Διαμοιρασμός συνδέσμου", @@ -63,13 +70,11 @@ OC.L10N.register( "Link copied to clipboard" : "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο", "Sort by date" : "Ταξινόμηση κατά ημερομηνία", "Sort by name" : "Ταξινόμηση κατά όνομα", - "Delete album" : "Διαγραφή άλμπουμ", "Share folder" : "Διαμοιρασμός φακέλου", "Unsaved changes" : "Μη αποθηκευμένες αλλαγές", "Share" : "Διαμοιρασμός", "Previous" : "Προηγούμενο", "Next" : "Επόμενο", - "Continue" : "Συνεχίστε", "Undo" : "Ακύρωση ενέργειας", "Redo" : "Ξανακάντε", "Zoom in" : "Εστίαση", @@ -88,6 +93,8 @@ OC.L10N.register( "Auto" : "Αυτόματα", "Failed to create {albumName}." : "Απέτυχε η δημιουργία {albumName}", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Απέτυχε η μετονομασία του {currentAlbumName} σε {newAlbumName}.", - "Failed to delete {fileName}." : "Απέτυχε η διαγραφή {fileName}." + "Failed to delete {fileName}." : "Απέτυχε η διαγραφή {fileName}.", + "Yes" : "Ναι", + "No" : "Όχι" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/el.json b/l10n/el.json index 07f0cd4c..66eecdf6 100644 --- a/l10n/el.json +++ b/l10n/el.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Λήψη", "Settings" : "Ρυθμίσεις", "People" : "Άτομα", "Info" : "Πληροφόρηση", @@ -10,19 +11,26 @@ "Archive" : "Αρχειοθέτηση", "On this day" : "Αυτή τη μέρα", "Tags" : "Ετικέτες", + "Metadata" : "Μεταδεδομένα", "Edit" : "Επεξεργασία", "Explore" : "Εξερεύνηση", "Cancel" : "Ακύρωση", "Delete" : "Διαγραφή", - "Download" : "Λήψη", "Favorite" : "Αγαπημένο", "Unarchive" : "Αναίρεση αρχειοθέτησης", "View in folder" : "Προβολή στον φάκελο", "Add to album" : "Προσθήκη στο άλμπουμ", + "Continue" : "Συνεχίστε", + "Move" : "Μετακίνηση", "General" : "Γενικά", + "Viewer" : "Πρόγραμμα προβολής", + "Account" : "Λογαριασμός", "Close" : "Κλείσιμο", "Performance" : "Απόδοση", "Unknown" : "Άγνωστο", + "Template" : "Πρότυπο", + "No items" : "Κανένα στοιχείο", + "Shared by {user}" : "Διαμοιράστηκε από {user}", "No collaborators available" : "Δεν υπάρχουν διαθέσιμοι συνεργάτες", "Copy public link" : "Αντιγραφή δημόσιου συνδέσμου", "Public link" : "Δημόσιος σύνδεσμος", @@ -33,7 +41,7 @@ "Back" : "Πίσω", "Save" : "Αποθήκευση", "Create album" : "Δημιουργία άλμπουμ", - "Create a new album." : "Δημιουργήστε ένα νέο άλμπουμ.", + "Search" : "Αναζήτηση", "Year" : "Έτος", "Month" : "Μήνας", "Day" : "Ημέρα", @@ -49,7 +57,6 @@ "Rename person" : "Μετονομασία ατόμου", "Name" : "Όνομα", "Update" : "Ενημέρωση", - "Search" : "Αναζήτηση", "Loading …" : "Φόρτωση …", "Remove" : "Αφαίρεση", "Share link" : "Διαμοιρασμός συνδέσμου", @@ -61,13 +68,11 @@ "Link copied to clipboard" : "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο", "Sort by date" : "Ταξινόμηση κατά ημερομηνία", "Sort by name" : "Ταξινόμηση κατά όνομα", - "Delete album" : "Διαγραφή άλμπουμ", "Share folder" : "Διαμοιρασμός φακέλου", "Unsaved changes" : "Μη αποθηκευμένες αλλαγές", "Share" : "Διαμοιρασμός", "Previous" : "Προηγούμενο", "Next" : "Επόμενο", - "Continue" : "Συνεχίστε", "Undo" : "Ακύρωση ενέργειας", "Redo" : "Ξανακάντε", "Zoom in" : "Εστίαση", @@ -86,6 +91,8 @@ "Auto" : "Αυτόματα", "Failed to create {albumName}." : "Απέτυχε η δημιουργία {albumName}", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Απέτυχε η μετονομασία του {currentAlbumName} σε {newAlbumName}.", - "Failed to delete {fileName}." : "Απέτυχε η διαγραφή {fileName}." + "Failed to delete {fileName}." : "Απέτυχε η διαγραφή {fileName}.", + "Yes" : "Ναι", + "No" : "Όχι" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/en_GB.js b/l10n/en_GB.js index b86b84d5..8f01a6a9 100644 --- a/l10n/en_GB.js +++ b/l10n/en_GB.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Download", "Memories" : "Memories", "Fast, modern and advanced photo management suite" : "Fast, modern and advanced photo management suite", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.", @@ -24,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "Face Recognition", "A better photos experience awaits you" : "A better photos experience awaits you", "Choose the root folder of your timeline to begin" : "Choose the root folder of your timeline to begin", - "If you just installed Memories, run:" : "If you just installed Memories, run:", "Continue to Memories" : "Continue to Memories", "Choose again" : "Choose again", "Click here to start" : "Click here to start", "You can always change this later in settings" : "You can always change this later in settings", + "If you just installed Memories, visit the admin panel first." : "If you just installed Memories, visit the admin panel first.", "Choose the root of your timeline" : "Choose the root of your timeline", "The selected folder does not seem to be valid. Try again." : "The selected folder does not seem to be valid. Try again.", + "No photos were found in the selected folder." : "No photos were found in the selected folder.", + "This can happen because your media is still indexing." : "This can happen because your media is still indexing.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visit the admin panel to make sure Memories is configured correctly.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Found {n} item in {path}","Found {n} items in {path}"], + "Metadata" : "Metadata", "Edit" : "Edit", - "No title" : "No title", - "No description" : "No description", + "Failed to load metadata" : "Failed to load metadata", "No coordinates" : "No coordinates", "Click edit to set location" : "Click edit to set location", "Photos" : "Photos", @@ -42,7 +46,6 @@ OC.L10N.register( "Cancel" : "Cancel", "Delete" : "Delete", "Remove from album" : "Remove from album", - "Download" : "Download", "Favorite" : "Favourite", "Unarchive" : "Unarchive", "Edit metadata" : "Edit metadata", @@ -51,9 +54,12 @@ OC.L10N.register( "Add to album" : "Add to album", "Move to person" : "Move to person", "Remove from person" : "Remove from person", - "You are about to download a large number of files. Are you sure?" : "You are about to download a large number of files. Are you sure?", - "You are about to delete a large number of files. Are you sure?" : "You are about to delete a large number of files. Are you sure?", - "You are about to touch a large number of files. Are you sure?" : "You are about to touch a large number of files. Are you sure?", + "You are about to download a large number of files." : "You are about to download a large number of files.", + "Continue" : "Continue", + "You are about to delete a large number of files" : "You are about to delete a large number of files", + "Failed to delete files" : "Failed to delete files", + "Move" : "Move", + "You are about to move a large number of files" : "You are about to move a large number of files", "You must enable \"Mark person in preview\" to use this feature" : "You must enable \"Mark person in preview\" to use this feature", "Only user \"{user}\" can update this person" : "Only user \"{user}\" can update this person", "_{n} selected_::_{n} selected_" : ["{n} selected","{n} selected"], @@ -62,31 +68,72 @@ OC.L10N.register( "Timeline Path" : "Timeline Path", "Square grid mode" : "Square grid mode", "Show past photos on top of timeline" : "Show past photos on top of timeline", + "Viewer" : "Viewer", + "Autoplay Live Photos" : "Autoplay Live Photos", "Load full size image on zoom" : "Load full size image on zoom", "Always load full size image (not recommended)" : "Always load full size image (not recommended)", + "Account" : "Account", + "Logged in as {user}" : "Logged in as {user}", + "Sign out" : "Sign out", + "Device Folders" : "Device Folders", + "Local folders to include in the timeline view" : "Local folders to include in the timeline view", "Folders Path" : "Folders Path", "Show hidden folders" : "Show hidden folders", "Sort folders oldest-first" : "Sort folders oldest-first", "Sort albums oldest-first" : "Sort albums oldest-first", "Choose Timeline Paths" : "Choose Timeline Paths", "Choose the root for the folders view" : "Choose the root for the folders view", + "Are you sure you want to log out {user}?" : "Are you sure you want to log out {user}?", "Close" : "Close", "{photoCount} photos" : "{photoCount} photos", "Failed to load some photos" : "Failed to load some photos", "Failed to update setting" : "Failed to update setting", - "EXIF Extraction" : "EXIF Extraction", + "Albums support is enabled through the Photos app." : "Albums support is enabled through the Photos app.", + "Albums are disabled because the Photos app is not available." : "Albums are disabled because the Photos app is not available.", + "Face Recognition is installed and enabled" : "Face Recognition is installed and enabled", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Preview generator is installed and enabled. Additional configuration may still be required.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Preview generator is not installed and configured. This may make Memories very slow.", + "Recommended Apps" : "Recommended Apps", "Path to packaged exiftool binary" : "Path to packaged exiftool binary", "You need perl only if the packaged exiftool binary does not work for some reason." : "You need perl only if the packaged exiftool binary does not work for some reason.", "Use system perl (only if exiftool binary does not work)" : "Use system perl (only if exiftool binary does not work)", - "Media Indexing" : "Media Indexing", + "EXIF Extraction" : "EXIF Extraction", + "You can configure the enabled Nextcloud preview providers below." : "You can configure the enabled Nextcloud preview providers below.", + "If you are using Imaginary for preview generation, you can ignore this section." : "If you are using Imaginary for preview generation, you can ignore this section.", + "To enable RAW support, install the Camera RAW Previews app." : "To enable RAW support, install the Camera RAW Previews app.", + "Documentation." : "Documentation.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick is available [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick is not available.", + "Image editing will not work correctly." : "Image editing will not work correctly.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Thumbnail generation may not work for some formats (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Thumbnails for videos will be generated with this binary.", + "Thumbnail generation may not work for videos." : "Thumbnail generation may not work for videos.", + "The following MIME types are configured for preview generation." : "The following MIME types are configured for preview generation.", + "Max preview size (trade-off between quality and storage requirements)." : "Max preview size (trade-off between quality and storage requirements).", + "Max memory for preview generation (MB)" : "Max memory for preview generation (MB)", + "Max size of preview files (MB)" : "Max size of preview files (MB)", + "File Support" : "File Support", + "Images (JPEG, PNG, GIF, BMP)" : "Images (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Thank you for choosing Nextcloud and Memories to store your precious data!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories is very feature rich and setting it up properly can take some time.", + "If you just installed Memories, make sure you read the getting started guide:" : "If you just installed Memories, make sure you read the getting started guide:", + "External Link" : "External Link", + "In case you run into any issues or bugs, you can get help through several channels." : "In case you run into any issues or bugs, you can get help through several channels.", + "Memories is a completely free and open source app under active development." : "Memories is a completely free and open source app under active development.", + "You can contribute in several ways. See the project page for more details:" : "You can contribute in several ways. See the project page for more details:", + "Help & Support" : "Help & Support", "{n} media files have been indexed" : "{n} media files have been indexed", "Automatic Indexing status: {status}" : "Automatic Indexing status: {status}", "Last index job was run {t} seconds ago." : "Last index job was run {t} seconds ago.", "It took {t} seconds to complete." : "It took {t} seconds to complete.", "It is still running or was interrupted." : "It is still running or was interrupted.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Folders with a \".nomedia\" file are always excluded from indexing.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing.", "Index all media automatically (recommended)" : "Index all media automatically (recommended)", "Index per-user timeline folders (not recommended)" : "Index per-user timeline folders (not recommended)", "Index a fixed relative path" : "Index a fixed relative path", @@ -97,15 +144,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "Force re-indexing of all files:", "You can limit indexing by user and/or folder:" : "You can limit indexing by user and/or folder:", "Clear all existing index tables:" : "Clear all existing index tables:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "The following MIME types are configured for preview generation correctly. More documentation:", - "External Link" : "External Link", - "Performance" : "Performance", + "Media Indexing" : "Media Indexing", "HTTPS is enabled" : "HTTPS is enabled", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 or HTTP/3 is enabled", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)", + "Performance" : "Performance", "Unknown" : "Unknown", - "Reverse Geocoding" : "Reverse Geocoding", "Database is populated with {n} geometries." : "Database is populated with {n} geometries.", "Geometry table has not been created." : "Geometry table has not been created.", "Looks like the planet data is incomplete." : "Looks like the planet data is incomplete.", @@ -115,13 +160,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "If the button below does not work for importing the planet data, use the following command:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix.", "Download planet database" : "Download planet database", + "Reverse Geocoding" : "Reverse Geocoding", "Geometry support was not detected in your database" : "Geometry support was not detected in your database", "MySQL-like geometry support was detected " : "MySQL-like geometry support was detected ", "Postgres native geometry support was detected" : "Postgres native geometry support was detected", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Looks like the database is already setup. Are you sure you want to redownload planet data?", "You are about to download the planet database. This may take a while." : "You are about to download the planet database. This may take a while.", "This may also cause all photos to be re-indexed!" : "This may also cause all photos to be re-indexed!", - "Video Streaming" : "Video Streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Live transcoding provides for adaptive streaming of videos using HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage.", "Enable Transcoding" : "Enable Transcoding", @@ -131,14 +176,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Auto (adaptive transcode)", "Original (transcode with max quality)" : "Original (transcode with max quality)", "Direct (original video file without transcode)" : "Direct (original video file without transcode)", - "Hardware Acceleration" : "Hardware Acceleration", + "Video Streaming" : "Video Streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "You must first make sure the correct drivers are installed before configuring acceleration.", "Make sure you test hardware acceleration with various options after enabling." : "Make sure you test hardware acceleration with various options after enabling.", "Do not enable multiple types of hardware acceleration simultaneously." : "Do not enable multiple types of hardware acceleration simultaneously.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration.", "For more details on driver installation, check the documentation:" : "For more details on driver installation, check the documentation:", "Enable acceleration with VA-API" : "Enable acceleration with VA-API", - "Enable low-power mode (QSV)" : "Enable low-power mode (QSV)", + "Enable low-power mode (QSV only)" : "Enable low-power mode (QSV only)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use", "No automated tests are available for NVIDIA acceleration." : "No automated tests are available for NVIDIA acceleration.", @@ -146,17 +191,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "Enable NVENC Temporal AQ", "NPP scaler" : "NPP scaler", "CUDA scaler" : "CUDA scaler", + "not recommended" : "not recommended", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Enable the following option only if you have incorrectly oriented videos during playback.", + "Enable streaming transpose workaround" : "Enable streaming transpose workaround", + "HW Acceleration" : "HW Acceleration", "VA-API device ({dev}) is readable" : "VA-API device ({dev}) is readable", "VA-API device ({dev}) not found" : "VA-API device ({dev}) not found", "VA-API device ({dev}) has incorrect permissions" : "VA-API device ({dev}) has incorrect permissions", "VA-API device status: {status}" : "VA-API device status: {status}", - "Transcoder configuration" : "Transcoder configuration", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:", "Enable external transcoder (go-vod)" : "Enable external transcoder (go-vod)", "Binary path (local only)" : "Binary path (local only)", "Bind address (local only)" : "Bind address (local only)", "Connection address (same as bind if local)" : "Connection address (same as bind if local)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} item added to album","{n} items added to album"], + "Transcoder" : "Transcoder", + "Template" : "Template", + "No items" : "No items", + "Shared by {user}" : "Shared by {user}", + "_{n} item_::_{n} items_" : ["{n} item","{n} items"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} photo updated","{n} photos updated"], "Add people or groups who can edit your album" : "Add people or groups who can edit your album", "Search for collaborators" : "Search for collaborators", "Search people or groups" : "Search people or groups", @@ -178,7 +232,6 @@ OC.L10N.register( "Could not load the selected album" : "Could not load the selected album", "Remove Album" : "Remove Album", "Are you sure you want to permanently remove album \"{name}\"?" : "Are you sure you want to permanently remove album \"{name}\"?", - "Only user \"{user}\" can delete this album" : "Only user \"{user}\" can delete this album", "Failed to delete {name}." : "Failed to delete {name}.", "Name of the album" : "Name of the album", "Location of the album" : "Location of the album", @@ -190,12 +243,14 @@ OC.L10N.register( "Save" : "Save", "Create album" : "Create album", "Invalid album name; should not contain any slashes." : "Invalid album name; should not contain any slashes.", - "Add selection to album {albumName}" : "Add selection to album {albumName}", - "Create a new album." : "Create a new album.", - "_%n item_::_%n items_" : ["%n item","%n items"], - "_Share with %n user_::_Share with %n users_" : ["Share with %n user","Share with %n users"], + "Search" : "Search", + "Create new album." : "Create new album.", + "Save changes" : "Save changes", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Removed from {n} album","Removed from {n} albums"], "Share Album" : "Share Album", "Save collaborators for this album." : "Save collaborators for this album.", + "shared by {owner}" : "shared by {owner}", + "_%n item_::_%n items_" : ["%n item","%n items"], "Newest" : "Newest", "Year" : "Year", "Month" : "Month", @@ -232,18 +287,19 @@ OC.L10N.register( "Name" : "Surname", "Update" : "Update", "Failed to rename {oldName} to {name}." : "Failed to rename {oldName} to {name}.", - "Search" : "Search", "Loading …" : "Loading …", "Enter name of the new face" : "Enter name of the new face", "Failed to create face" : "Failed to create face", "Merge {name} with person" : "Merge {name} with person", - "Are you sure you want to merge {name} with {newName}?" : "Are you sure you want to merge {name} with {newName}?", + "Merge faces" : "Merge faces", + "Merge {name} with {newName}?" : "Merge {name} with {newName}?", + "unnamed person" : "unnamed person", "Too many failures, aborting" : "Too many failures, aborting", "Error while moving {basename}" : "Error while moving {basename}", "Failed to move {name}." : "Failed to move {name}.", "Move selected photos to person" : "Move selected photos to person", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Are you sure you want to move the selected photos from {name} to {target}?", - "An error occured while moving photos from {name}." : "An error occurred while moving photos from {name}.", + "Move the selected photos to {target}?" : "Move the selected photos to {target}?", + "An error occurred while moving photos from {name}." : "An error occurred while moving photos from {name}.", "Choose a folder" : "Choose a folder", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} item moved to folder","{n} items moved to folder"], "Remove" : "Remove", @@ -278,10 +334,11 @@ OC.L10N.register( "Sort by name" : "Order by name", "Share album" : "Share album", "Download album" : "Download album", - "Delete album" : "Delete album", "Nothing to show here" : "Nothing to show here", + "Unassigned faces" : "Unassigned faces", "Merge with different person" : "Merge with different person", "Mark person in preview" : "Mark person in preview", + "Unnamed person" : "Unnamed person", "Folder View" : "Folder View", "Timeline View" : "Timeline View", "Share folder" : "Share folder", @@ -293,13 +350,13 @@ OC.L10N.register( "Drop changes" : "Drop changes", "Share" : "Share", "Play Live Photo" : "Play Live Photo", - "Sidebar" : "Sidebar", "Download Video" : "Download Video", "Slideshow" : "Slideshow", "Previous" : "Previous", "Next" : "Next", "Editing is currently disabled for Live Photos" : "Editing is currently disabled for Live Photos", "Are you sure you want to delete?" : "Are you sure you want to delete?", + "Failed to delete photo" : "Failed to delete photo", "{name} binary exists and is executable." : "{name} binary exists and is executable.", "{name} binary not found." : "{name} binary not found.", "{name} binary is not executable." : "{name} binary is not executable.", @@ -309,7 +366,6 @@ OC.L10N.register( "Save as" : "Save as", "All changes will be lost." : "All changes will be lost.", "Are you sure you want to continue?" : "Are you sure you want to continue?", - "Continue" : "Continue", "Undo" : "Undo", "Redo" : "Redo", "Show original image" : "Show original image", @@ -394,6 +450,7 @@ OC.L10N.register( "Auto" : "Auto", "Shared Folder" : "Shared Folder", "Shared Album" : "Shared Album", + "Failed to remove {filename}." : "Failed to remove {filename}.", "Failed to create {albumName}." : "Failed to create {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Failed to rename {currentAlbumName} to {newAlbumName}.", "General Failure" : "General Failure", @@ -406,6 +463,9 @@ OC.L10N.register( "Failed to favorite files." : "Failed to favorite files.", "Failed to favorite some files." : "Failed to favorite some files.", "Failed to favorite {fileName}." : "Failed to favorite {fileName}.", + "No content-location header found" : "No content-location header found", + "Failed to create tag {name}: {error}" : "Failed to create tag {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories has been updated to {version}. Reload to get the new version.", "Upload some photos and make sure the timeline path is configured" : "Upload some photos and make sure the timeline path is configured", "Mark photos as favorite to find them easily" : "Mark photos as favorite to find them easily", "Memories from past years will appear here" : "Memories from past years will appear here", @@ -418,6 +478,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Tag photos to find them easily", "Recognize is still working on your photos" : "Recognize is still working on your photos", "Places you have been to will appear here" : "Places you have been to will appear here", - "Your Timeline" : "Your Timeline" + "Yes" : "Yes", + "No" : "No" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/en_GB.json b/l10n/en_GB.json index 6464408e..83e1eea1 100644 --- a/l10n/en_GB.json +++ b/l10n/en_GB.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Download", "Memories" : "Memories", "Fast, modern and advanced photo management suite" : "Fast, modern and advanced photo management suite", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.", @@ -22,17 +23,20 @@ "Face Recognition" : "Face Recognition", "A better photos experience awaits you" : "A better photos experience awaits you", "Choose the root folder of your timeline to begin" : "Choose the root folder of your timeline to begin", - "If you just installed Memories, run:" : "If you just installed Memories, run:", "Continue to Memories" : "Continue to Memories", "Choose again" : "Choose again", "Click here to start" : "Click here to start", "You can always change this later in settings" : "You can always change this later in settings", + "If you just installed Memories, visit the admin panel first." : "If you just installed Memories, visit the admin panel first.", "Choose the root of your timeline" : "Choose the root of your timeline", "The selected folder does not seem to be valid. Try again." : "The selected folder does not seem to be valid. Try again.", + "No photos were found in the selected folder." : "No photos were found in the selected folder.", + "This can happen because your media is still indexing." : "This can happen because your media is still indexing.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visit the admin panel to make sure Memories is configured correctly.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Found {n} item in {path}","Found {n} items in {path}"], + "Metadata" : "Metadata", "Edit" : "Edit", - "No title" : "No title", - "No description" : "No description", + "Failed to load metadata" : "Failed to load metadata", "No coordinates" : "No coordinates", "Click edit to set location" : "Click edit to set location", "Photos" : "Photos", @@ -40,7 +44,6 @@ "Cancel" : "Cancel", "Delete" : "Delete", "Remove from album" : "Remove from album", - "Download" : "Download", "Favorite" : "Favourite", "Unarchive" : "Unarchive", "Edit metadata" : "Edit metadata", @@ -49,9 +52,12 @@ "Add to album" : "Add to album", "Move to person" : "Move to person", "Remove from person" : "Remove from person", - "You are about to download a large number of files. Are you sure?" : "You are about to download a large number of files. Are you sure?", - "You are about to delete a large number of files. Are you sure?" : "You are about to delete a large number of files. Are you sure?", - "You are about to touch a large number of files. Are you sure?" : "You are about to touch a large number of files. Are you sure?", + "You are about to download a large number of files." : "You are about to download a large number of files.", + "Continue" : "Continue", + "You are about to delete a large number of files" : "You are about to delete a large number of files", + "Failed to delete files" : "Failed to delete files", + "Move" : "Move", + "You are about to move a large number of files" : "You are about to move a large number of files", "You must enable \"Mark person in preview\" to use this feature" : "You must enable \"Mark person in preview\" to use this feature", "Only user \"{user}\" can update this person" : "Only user \"{user}\" can update this person", "_{n} selected_::_{n} selected_" : ["{n} selected","{n} selected"], @@ -60,31 +66,72 @@ "Timeline Path" : "Timeline Path", "Square grid mode" : "Square grid mode", "Show past photos on top of timeline" : "Show past photos on top of timeline", + "Viewer" : "Viewer", + "Autoplay Live Photos" : "Autoplay Live Photos", "Load full size image on zoom" : "Load full size image on zoom", "Always load full size image (not recommended)" : "Always load full size image (not recommended)", + "Account" : "Account", + "Logged in as {user}" : "Logged in as {user}", + "Sign out" : "Sign out", + "Device Folders" : "Device Folders", + "Local folders to include in the timeline view" : "Local folders to include in the timeline view", "Folders Path" : "Folders Path", "Show hidden folders" : "Show hidden folders", "Sort folders oldest-first" : "Sort folders oldest-first", "Sort albums oldest-first" : "Sort albums oldest-first", "Choose Timeline Paths" : "Choose Timeline Paths", "Choose the root for the folders view" : "Choose the root for the folders view", + "Are you sure you want to log out {user}?" : "Are you sure you want to log out {user}?", "Close" : "Close", "{photoCount} photos" : "{photoCount} photos", "Failed to load some photos" : "Failed to load some photos", "Failed to update setting" : "Failed to update setting", - "EXIF Extraction" : "EXIF Extraction", + "Albums support is enabled through the Photos app." : "Albums support is enabled through the Photos app.", + "Albums are disabled because the Photos app is not available." : "Albums are disabled because the Photos app is not available.", + "Face Recognition is installed and enabled" : "Face Recognition is installed and enabled", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Preview generator is installed and enabled. Additional configuration may still be required.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Preview generator is not installed and configured. This may make Memories very slow.", + "Recommended Apps" : "Recommended Apps", "Path to packaged exiftool binary" : "Path to packaged exiftool binary", "You need perl only if the packaged exiftool binary does not work for some reason." : "You need perl only if the packaged exiftool binary does not work for some reason.", "Use system perl (only if exiftool binary does not work)" : "Use system perl (only if exiftool binary does not work)", - "Media Indexing" : "Media Indexing", + "EXIF Extraction" : "EXIF Extraction", + "You can configure the enabled Nextcloud preview providers below." : "You can configure the enabled Nextcloud preview providers below.", + "If you are using Imaginary for preview generation, you can ignore this section." : "If you are using Imaginary for preview generation, you can ignore this section.", + "To enable RAW support, install the Camera RAW Previews app." : "To enable RAW support, install the Camera RAW Previews app.", + "Documentation." : "Documentation.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick is available [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick is not available.", + "Image editing will not work correctly." : "Image editing will not work correctly.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Thumbnail generation may not work for some formats (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Thumbnails for videos will be generated with this binary.", + "Thumbnail generation may not work for videos." : "Thumbnail generation may not work for videos.", + "The following MIME types are configured for preview generation." : "The following MIME types are configured for preview generation.", + "Max preview size (trade-off between quality and storage requirements)." : "Max preview size (trade-off between quality and storage requirements).", + "Max memory for preview generation (MB)" : "Max memory for preview generation (MB)", + "Max size of preview files (MB)" : "Max size of preview files (MB)", + "File Support" : "File Support", + "Images (JPEG, PNG, GIF, BMP)" : "Images (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Thank you for choosing Nextcloud and Memories to store your precious data!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories is very feature rich and setting it up properly can take some time.", + "If you just installed Memories, make sure you read the getting started guide:" : "If you just installed Memories, make sure you read the getting started guide:", + "External Link" : "External Link", + "In case you run into any issues or bugs, you can get help through several channels." : "In case you run into any issues or bugs, you can get help through several channels.", + "Memories is a completely free and open source app under active development." : "Memories is a completely free and open source app under active development.", + "You can contribute in several ways. See the project page for more details:" : "You can contribute in several ways. See the project page for more details:", + "Help & Support" : "Help & Support", "{n} media files have been indexed" : "{n} media files have been indexed", "Automatic Indexing status: {status}" : "Automatic Indexing status: {status}", "Last index job was run {t} seconds ago." : "Last index job was run {t} seconds ago.", "It took {t} seconds to complete." : "It took {t} seconds to complete.", "It is still running or was interrupted." : "It is still running or was interrupted.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Folders with a \".nomedia\" file are always excluded from indexing.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing.", "Index all media automatically (recommended)" : "Index all media automatically (recommended)", "Index per-user timeline folders (not recommended)" : "Index per-user timeline folders (not recommended)", "Index a fixed relative path" : "Index a fixed relative path", @@ -95,15 +142,13 @@ "Force re-indexing of all files:" : "Force re-indexing of all files:", "You can limit indexing by user and/or folder:" : "You can limit indexing by user and/or folder:", "Clear all existing index tables:" : "Clear all existing index tables:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "The following MIME types are configured for preview generation correctly. More documentation:", - "External Link" : "External Link", - "Performance" : "Performance", + "Media Indexing" : "Media Indexing", "HTTPS is enabled" : "HTTPS is enabled", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 or HTTP/3 is enabled", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)", + "Performance" : "Performance", "Unknown" : "Unknown", - "Reverse Geocoding" : "Reverse Geocoding", "Database is populated with {n} geometries." : "Database is populated with {n} geometries.", "Geometry table has not been created." : "Geometry table has not been created.", "Looks like the planet data is incomplete." : "Looks like the planet data is incomplete.", @@ -113,13 +158,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "If the button below does not work for importing the planet data, use the following command:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix.", "Download planet database" : "Download planet database", + "Reverse Geocoding" : "Reverse Geocoding", "Geometry support was not detected in your database" : "Geometry support was not detected in your database", "MySQL-like geometry support was detected " : "MySQL-like geometry support was detected ", "Postgres native geometry support was detected" : "Postgres native geometry support was detected", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Looks like the database is already setup. Are you sure you want to redownload planet data?", "You are about to download the planet database. This may take a while." : "You are about to download the planet database. This may take a while.", "This may also cause all photos to be re-indexed!" : "This may also cause all photos to be re-indexed!", - "Video Streaming" : "Video Streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Live transcoding provides for adaptive streaming of videos using HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage.", "Enable Transcoding" : "Enable Transcoding", @@ -129,14 +174,14 @@ "Auto (adaptive transcode)" : "Auto (adaptive transcode)", "Original (transcode with max quality)" : "Original (transcode with max quality)", "Direct (original video file without transcode)" : "Direct (original video file without transcode)", - "Hardware Acceleration" : "Hardware Acceleration", + "Video Streaming" : "Video Streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "You must first make sure the correct drivers are installed before configuring acceleration.", "Make sure you test hardware acceleration with various options after enabling." : "Make sure you test hardware acceleration with various options after enabling.", "Do not enable multiple types of hardware acceleration simultaneously." : "Do not enable multiple types of hardware acceleration simultaneously.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration.", "For more details on driver installation, check the documentation:" : "For more details on driver installation, check the documentation:", "Enable acceleration with VA-API" : "Enable acceleration with VA-API", - "Enable low-power mode (QSV)" : "Enable low-power mode (QSV)", + "Enable low-power mode (QSV only)" : "Enable low-power mode (QSV only)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use", "No automated tests are available for NVIDIA acceleration." : "No automated tests are available for NVIDIA acceleration.", @@ -144,17 +189,26 @@ "Enable NVENC Temporal AQ" : "Enable NVENC Temporal AQ", "NPP scaler" : "NPP scaler", "CUDA scaler" : "CUDA scaler", + "not recommended" : "not recommended", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Enable the following option only if you have incorrectly oriented videos during playback.", + "Enable streaming transpose workaround" : "Enable streaming transpose workaround", + "HW Acceleration" : "HW Acceleration", "VA-API device ({dev}) is readable" : "VA-API device ({dev}) is readable", "VA-API device ({dev}) not found" : "VA-API device ({dev}) not found", "VA-API device ({dev}) has incorrect permissions" : "VA-API device ({dev}) has incorrect permissions", "VA-API device status: {status}" : "VA-API device status: {status}", - "Transcoder configuration" : "Transcoder configuration", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:", "Enable external transcoder (go-vod)" : "Enable external transcoder (go-vod)", "Binary path (local only)" : "Binary path (local only)", "Bind address (local only)" : "Bind address (local only)", "Connection address (same as bind if local)" : "Connection address (same as bind if local)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} item added to album","{n} items added to album"], + "Transcoder" : "Transcoder", + "Template" : "Template", + "No items" : "No items", + "Shared by {user}" : "Shared by {user}", + "_{n} item_::_{n} items_" : ["{n} item","{n} items"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} photo updated","{n} photos updated"], "Add people or groups who can edit your album" : "Add people or groups who can edit your album", "Search for collaborators" : "Search for collaborators", "Search people or groups" : "Search people or groups", @@ -176,7 +230,6 @@ "Could not load the selected album" : "Could not load the selected album", "Remove Album" : "Remove Album", "Are you sure you want to permanently remove album \"{name}\"?" : "Are you sure you want to permanently remove album \"{name}\"?", - "Only user \"{user}\" can delete this album" : "Only user \"{user}\" can delete this album", "Failed to delete {name}." : "Failed to delete {name}.", "Name of the album" : "Name of the album", "Location of the album" : "Location of the album", @@ -188,12 +241,14 @@ "Save" : "Save", "Create album" : "Create album", "Invalid album name; should not contain any slashes." : "Invalid album name; should not contain any slashes.", - "Add selection to album {albumName}" : "Add selection to album {albumName}", - "Create a new album." : "Create a new album.", - "_%n item_::_%n items_" : ["%n item","%n items"], - "_Share with %n user_::_Share with %n users_" : ["Share with %n user","Share with %n users"], + "Search" : "Search", + "Create new album." : "Create new album.", + "Save changes" : "Save changes", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Removed from {n} album","Removed from {n} albums"], "Share Album" : "Share Album", "Save collaborators for this album." : "Save collaborators for this album.", + "shared by {owner}" : "shared by {owner}", + "_%n item_::_%n items_" : ["%n item","%n items"], "Newest" : "Newest", "Year" : "Year", "Month" : "Month", @@ -230,18 +285,19 @@ "Name" : "Surname", "Update" : "Update", "Failed to rename {oldName} to {name}." : "Failed to rename {oldName} to {name}.", - "Search" : "Search", "Loading …" : "Loading …", "Enter name of the new face" : "Enter name of the new face", "Failed to create face" : "Failed to create face", "Merge {name} with person" : "Merge {name} with person", - "Are you sure you want to merge {name} with {newName}?" : "Are you sure you want to merge {name} with {newName}?", + "Merge faces" : "Merge faces", + "Merge {name} with {newName}?" : "Merge {name} with {newName}?", + "unnamed person" : "unnamed person", "Too many failures, aborting" : "Too many failures, aborting", "Error while moving {basename}" : "Error while moving {basename}", "Failed to move {name}." : "Failed to move {name}.", "Move selected photos to person" : "Move selected photos to person", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Are you sure you want to move the selected photos from {name} to {target}?", - "An error occured while moving photos from {name}." : "An error occurred while moving photos from {name}.", + "Move the selected photos to {target}?" : "Move the selected photos to {target}?", + "An error occurred while moving photos from {name}." : "An error occurred while moving photos from {name}.", "Choose a folder" : "Choose a folder", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} item moved to folder","{n} items moved to folder"], "Remove" : "Remove", @@ -276,10 +332,11 @@ "Sort by name" : "Order by name", "Share album" : "Share album", "Download album" : "Download album", - "Delete album" : "Delete album", "Nothing to show here" : "Nothing to show here", + "Unassigned faces" : "Unassigned faces", "Merge with different person" : "Merge with different person", "Mark person in preview" : "Mark person in preview", + "Unnamed person" : "Unnamed person", "Folder View" : "Folder View", "Timeline View" : "Timeline View", "Share folder" : "Share folder", @@ -291,13 +348,13 @@ "Drop changes" : "Drop changes", "Share" : "Share", "Play Live Photo" : "Play Live Photo", - "Sidebar" : "Sidebar", "Download Video" : "Download Video", "Slideshow" : "Slideshow", "Previous" : "Previous", "Next" : "Next", "Editing is currently disabled for Live Photos" : "Editing is currently disabled for Live Photos", "Are you sure you want to delete?" : "Are you sure you want to delete?", + "Failed to delete photo" : "Failed to delete photo", "{name} binary exists and is executable." : "{name} binary exists and is executable.", "{name} binary not found." : "{name} binary not found.", "{name} binary is not executable." : "{name} binary is not executable.", @@ -307,7 +364,6 @@ "Save as" : "Save as", "All changes will be lost." : "All changes will be lost.", "Are you sure you want to continue?" : "Are you sure you want to continue?", - "Continue" : "Continue", "Undo" : "Undo", "Redo" : "Redo", "Show original image" : "Show original image", @@ -392,6 +448,7 @@ "Auto" : "Auto", "Shared Folder" : "Shared Folder", "Shared Album" : "Shared Album", + "Failed to remove {filename}." : "Failed to remove {filename}.", "Failed to create {albumName}." : "Failed to create {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Failed to rename {currentAlbumName} to {newAlbumName}.", "General Failure" : "General Failure", @@ -404,6 +461,9 @@ "Failed to favorite files." : "Failed to favorite files.", "Failed to favorite some files." : "Failed to favorite some files.", "Failed to favorite {fileName}." : "Failed to favorite {fileName}.", + "No content-location header found" : "No content-location header found", + "Failed to create tag {name}: {error}" : "Failed to create tag {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories has been updated to {version}. Reload to get the new version.", "Upload some photos and make sure the timeline path is configured" : "Upload some photos and make sure the timeline path is configured", "Mark photos as favorite to find them easily" : "Mark photos as favorite to find them easily", "Memories from past years will appear here" : "Memories from past years will appear here", @@ -416,6 +476,7 @@ "Tag photos to find them easily" : "Tag photos to find them easily", "Recognize is still working on your photos" : "Recognize is still working on your photos", "Places you have been to will appear here" : "Places you have been to will appear here", - "Your Timeline" : "Your Timeline" + "Yes" : "Yes", + "No" : "No" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/eo.js b/l10n/eo.js index 1255b668..99f34f4f 100644 --- a/l10n/eo.js +++ b/l10n/eo.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Elŝuti", "Settings" : "Agordoj", "Info" : "Info", "Timeline" : "Kronologio", @@ -13,16 +14,21 @@ OC.L10N.register( "Photos" : "Fotoj", "Cancel" : "Nuligi", "Delete" : "Forigi", - "Download" : "Elŝuti", "Favorite" : "Pliŝatati", "View in folder" : "Vidi en dosierujo", + "Continue" : "Daŭrigi", + "Move" : "Movi", "General" : "Ĝenerala", + "Viewer" : "Vidigilo", + "Account" : "Konto", "Close" : "Malfermi", "Performance" : "Rendimento", "Unknown" : "Nekonata", "Public link" : "Publika ligilo", "Back" : "Antaŭen", "Save" : "Konservi", + "Search" : "Serĉi", + "Save changes" : "Konservi ŝanĝojn", "Month" : "Monato", "Day" : "Tago", "Time" : "Dato", @@ -34,7 +40,6 @@ OC.L10N.register( "Reset" : "Restarigi", "Name" : "Nomo", "Update" : "Ĝisdatigi", - "Search" : "Serĉi", "Loading …" : "Ŝargas …", "Remove" : "Forigi", "Share link" : "Kunhavigi ligilon", @@ -49,7 +54,6 @@ OC.L10N.register( "Share" : "Kunhavigi", "Previous" : "Antaŭa", "Next" : "Sekva", - "Continue" : "Daŭrigi", "Undo" : "Malfari", "Redo" : "Refari", "Custom" : "Propra", @@ -57,6 +61,8 @@ OC.L10N.register( "Size" : "Grando", "Position" : "Loko", "Extension" : "Dosiersufikso", - "Auto" : "Aŭtomate" + "Auto" : "Aŭtomate", + "Yes" : "Jes", + "No" : "Ne" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/eo.json b/l10n/eo.json index 15c0f1ad..19e17330 100644 --- a/l10n/eo.json +++ b/l10n/eo.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Elŝuti", "Settings" : "Agordoj", "Info" : "Info", "Timeline" : "Kronologio", @@ -11,16 +12,21 @@ "Photos" : "Fotoj", "Cancel" : "Nuligi", "Delete" : "Forigi", - "Download" : "Elŝuti", "Favorite" : "Pliŝatati", "View in folder" : "Vidi en dosierujo", + "Continue" : "Daŭrigi", + "Move" : "Movi", "General" : "Ĝenerala", + "Viewer" : "Vidigilo", + "Account" : "Konto", "Close" : "Malfermi", "Performance" : "Rendimento", "Unknown" : "Nekonata", "Public link" : "Publika ligilo", "Back" : "Antaŭen", "Save" : "Konservi", + "Search" : "Serĉi", + "Save changes" : "Konservi ŝanĝojn", "Month" : "Monato", "Day" : "Tago", "Time" : "Dato", @@ -32,7 +38,6 @@ "Reset" : "Restarigi", "Name" : "Nomo", "Update" : "Ĝisdatigi", - "Search" : "Serĉi", "Loading …" : "Ŝargas …", "Remove" : "Forigi", "Share link" : "Kunhavigi ligilon", @@ -47,7 +52,6 @@ "Share" : "Kunhavigi", "Previous" : "Antaŭa", "Next" : "Sekva", - "Continue" : "Daŭrigi", "Undo" : "Malfari", "Redo" : "Refari", "Custom" : "Propra", @@ -55,6 +59,8 @@ "Size" : "Grando", "Position" : "Loko", "Extension" : "Dosiersufikso", - "Auto" : "Aŭtomate" + "Auto" : "Aŭtomate", + "Yes" : "Jes", + "No" : "Ne" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/es.js b/l10n/es.js index ee4c093a..4202d2d0 100644 --- a/l10n/es.js +++ b/l10n/es.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Memories" : "Memories", "Fast, modern and advanced photo management suite" : "Suite rápida, moderna y avanzada para la gestión de fotografías", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories gestión de fotos para Nextcloud\n\nMemories es una solución con *baterías incluidas* para gestión de fotos en Nextcloud con características avanzadas, incluyendo:\n\n- **📸 Línea de tiempo**: Organice fotos y videos por fecha, analizadas desde los datos Exif.\n- **⏪ Rebobinar**: Navegue a cualquier momento del pasado instantáneamente y reviva sus memorias.\n- **🤖 Etiquetado IA**: Agrupe fotos por persona y objetos utilizando IA, con la ayuda de [recognize](https://github.com/nextcloud/recognize) y [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Álbumes**: Cree álbumes para agrupar fotos y videos en conjunto. Podrá entonces compartir estos álbumes con otros.\n **🫱🏻‍🫲🏻 Compartir externamente**: Comparta fotos y videos con personas fuera de su instancia Nextcloud.\n-- **📱 Soporte a Móviles**: Trabaje con dispositivos de cualquier tamaño y forma a través de la aplicación web.\n- **✏️ Editar Metadatos**: Edite las fechas en las fotos de forma rápida y en lotes.\n- **📦 Archivar**: Almacene las fotos que no quiere ver en su línea de tiempo en una carpeta separada.\n- **📹 Conversión de video**: Convierta entre formatos de video y utilice HLS para máximo rendimiento.\n**🗺️ Mapas**: Vea sus fotos en un mapa, etiquetadas mediante geo-codificación reversa precisa.\n- **📦 Migración**: Migre fácilmente desde Fotos de Nextcloud y Google Takeout.\n- **⚡️ Rendimiento**: Haga todo esto de forma muy rápida.\n\n## 🚀 Instalación\n\n1. Instale la aplicación desde la tienda de Nextcloud (pruebe la demo [aquí](https://demo.memories.gallery/apps/memories/)).\n2. Ejecute los [pasos recomendados de configuración](https://memories.gallery/config/).\n3. Ejecute `php ./occ memories:index` para generar los índices de metadatos para las fotos existentes.\n4. Abra la aplicación 📷 Memories en Nextcloud y especifique la carpeta que contiene sus fotos.", @@ -24,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "Reconocimiento facial", "A better photos experience awaits you" : "Una mejor experiencia de fotos te espera", "Choose the root folder of your timeline to begin" : "Escoja la carpeta raíz de su línea de tiempo para comenzar", - "If you just installed Memories, run:" : "Si acaba de instalar Memories, ejecute:", "Continue to Memories" : "Continuar a Memories", "Choose again" : "Seleccione de nuevo", "Click here to start" : "Haga click para comenzar", "You can always change this later in settings" : "Siempre podrá cambiar esto luego en las configuraciones", + "If you just installed Memories, visit the admin panel first." : "Si acaba de instalar Memories, visite el panel de administración primero.", "Choose the root of your timeline" : "Seleccione la raíz de su línea de tiempo", "The selected folder does not seem to be valid. Try again." : "La carpeta seleccionada no parece ser válida. Intente de nuevo.", + "No photos were found in the selected folder." : "No se encontraron fotos en la carpeta seleccionada.", + "This can happen because your media is still indexing." : "Esto puede suceder cuando sus medios están todavía siendo indexados.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visite el panel de administración para asegurarse que Memories está configurado correctamente.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Se encontró {n} ítem en {path}","Se encontraron {n} ítems en {path}","Se encontraron {n} ítems en {path}"], + "Metadata" : "Metadatos", "Edit" : "Editar", - "No title" : "Sin título", - "No description" : "Sin descripción", + "Failed to load metadata" : "Fallo al cargar metadatos", "No coordinates" : "Sin coordenadas", "Click edit to set location" : "Haga clic en editar para establecer la ubicación", "Photos" : "Fotos", @@ -42,7 +46,6 @@ OC.L10N.register( "Cancel" : "Cancelar", "Delete" : "Eliminar", "Remove from album" : "Quitar del álbum", - "Download" : "Descargar", "Favorite" : "Marcar como favorito", "Unarchive" : "Desarchivar", "Edit metadata" : "Editar metadatos", @@ -51,10 +54,12 @@ OC.L10N.register( "Add to album" : "Añadir al álbum", "Move to person" : "Mover a persona", "Remove from person" : "Quitar de la persona", - "You are about to download a large number of files. Are you sure?" : "Está a punto de descargar un gran número de archivos. ¿Está seguro?", - "You are about to delete a large number of files. Are you sure?" : "Está a punto de eliminar un gran número de archivos. ¿Está seguro?", + "You are about to download a large number of files." : "Está a punto de descargar un gran número de archivos.", + "Continue" : "Continuar", + "You are about to delete a large number of files" : "Está a punto de eliminar un gran número de archivos", "Failed to delete files" : "Fallo al eliminar archivos", - "You are about to touch a large number of files. Are you sure?" : "Está a punto de tocar un gran número de archivos. ¿Está seguro?", + "Move" : "Mover", + "You are about to move a large number of files" : "Está a punto de mover un gran número de archivos", "You must enable \"Mark person in preview\" to use this feature" : "Debe habilitar \"Marcar persona en la vista previa\" para utilizar esta característica", "Only user \"{user}\" can update this person" : "Solo el usuario \"{user}\" puede actualizar esta persona", "_{n} selected_::_{n} selected_" : ["{n} seleccionado","{n} seleccionados","{n} seleccionados"], @@ -63,31 +68,76 @@ OC.L10N.register( "Timeline Path" : "Ruta a la línea de tiempo", "Square grid mode" : "Modo de rejilla cuadrada", "Show past photos on top of timeline" : "Mostrar fotos anteriores arriba de la línea de tiempo", + "Viewer" : "Visor", + "Autoplay Live Photos" : "Reproducir automáticamente las fotos en vivo", "Load full size image on zoom" : "Cargar imagen a tamaño completo al hacer zoom", "Always load full size image (not recommended)" : "Siempre cargar imagen a tamaño completo (no se recomienda)", + "Show full file path in sidebar" : "Mostrar la ruta completa al archivo en la barra lateral", + "Account" : "Cuenta", + "Logged in as {user}" : "Sesión iniciada como {user}", + "Sign out" : "Cerrar sesión", + "Device Folders" : "Carpetas de dispositivo", + "Local folders to include in the timeline view" : "Carpetas locales a incluir en la vista de línea de tiempo", "Folders Path" : "Ruta a las carpetas", "Show hidden folders" : "Mostrar carpetas ocultas", "Sort folders oldest-first" : "Ordenar carpetas de más antigua a más nueva", "Sort albums oldest-first" : "Ordenar álbumes de más antiguo a más nuevo", "Choose Timeline Paths" : "Escoga las rutas a la línea de tiempo", "Choose the root for the folders view" : "Seleccione la raíz de la vista de carpetas", + "Are you sure you want to log out {user}?" : "¿Estás seguro de cerrar la sesión {user}?", "Close" : "Cerrar", "{photoCount} photos" : "{photoCount} fotos", "Failed to load some photos" : "Fallo al cargar algunas fotos", "Failed to update setting" : "Fallo al actualizar la configuración", - "EXIF Extraction" : "Extracción EXIF", + "Albums support is enabled through the Photos app." : "El soporte a Álbumes se habilita a través de la app de Fotos.", + "Albums are disabled because the Photos app is not available." : "Los álbumes están deshabilitados ya que la app de Fotos no está disponible.", + "Recognize is installed and enabled for face recognition." : "Recognize está instalado y habilitado para reconocimiento facial.", + "Recognize is installed but not enabled for face recognition." : "Recognize está instalado pero no está habilitado para reconocimiento facial.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Recognize no está instalado. El reconocimiento facial y el etiquetado de objetos podrían no estar disponibles.", + "Face Recognition is installed and enabled" : "El reconocimiento facial está instalado y habilitado", + "Preview generator is installed and enabled. Additional configuration may still be required." : "El generador de vistas previas está instalado y habilitado. Podría requerir configuración adicional.", + "Preview generator is not installed and configured. This may make Memories very slow." : "El generador de vistas previas no está instalado y habilitado. Esto podría causar que Memories sea muy lento.", + "Recommended Apps" : "Apps recomendadas", "Path to packaged exiftool binary" : "Ruta al paquete binario exiftool", "You need perl only if the packaged exiftool binary does not work for some reason." : "Solo necesitas perl si el binario exiftool incluido no funciona por alguna razón.", "Use system perl (only if exiftool binary does not work)" : "Utilizar perl del sistema (usar solamente si el binario exiftool no funciona)", - "Media Indexing" : "Indización de medios", + "EXIF Extraction" : "Extracción EXIF", + "You can configure the enabled Nextcloud preview providers below." : "Puede configurar los proveedores de vista habilitados abajo.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Si está utilizando Imaginary para la generación de vistas previas, puede ignorar esta sección.", + "To enable RAW support, install the Camera RAW Previews app." : "Para habilitar el soporte RAW, instale la app Camera RAW Previews.", + "Documentation." : "Documentación.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick está disponible [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick no está disponible.", + "Image editing will not work correctly." : "La edición de imágenes no funcionará correctamente.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "La generación de miniaturas podría no funcionar para algunos formatos (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Las miniaturas para los videos se generarán con este binario.", + "Thumbnail generation may not work for videos." : "La generación de miniaturas podría no funcionar para los videos.", + "The following MIME types are configured for preview generation." : "Los siguientes tipos MIME están configurados para la generación de vistas previas.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamaño máximo de la vista previa (equilibrio entre calidad y requerimientos de almacenamiento).", + "Max memory for preview generation (MB)" : "Memoria máxima a utilizar para la generación de vistas previas (MB)", + "Max size of preview files (MB)" : "Tamaño máximo de los archivos de vista previa (MB)", + "File Support" : "Soporte a Archivos", + "Images (JPEG, PNG, GIF, BMP)" : "Imágenes (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Vídeos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "¡Gracias por escojer Nextcloud y Memories para almacenar sus preciados datos!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories tiene muchísimas características y configurarlo adecuadamente puede tomar algo de tiempo.", + "If you just installed Memories, make sure you read the getting started guide:" : "Si acaba de instalar Memories, asegúrese de leer la siguiente guía de inicio:", + "External Link" : "Enlace externo", + "In case you run into any issues or bugs, you can get help through several channels." : "En caso de que consiga problemas o bugs, puede obtener ayuda a través de diferentes canales.", + "Memories is a completely free and open source app under active development." : "Memories es una app completamente gratis y de código abierto en continuo desarrollo.", + "You can contribute in several ways. See the project page for more details:" : "Puede contribuir de diferentes maneras. Vea la página del proyecto para más detalles:", + "Help & Support" : "Ayuda y Soporte", "{n} media files have been indexed" : "{n} archivos de medios han sido indexados", "Automatic Indexing status: {status}" : "Estado del indizado automático: {status}", "Last index job was run {t} seconds ago." : "El último trabajo de indización se ejecutó hace {t} segundos.", "It took {t} seconds to complete." : "Tomó {n} segundos para completar.", "It is still running or was interrupted." : "Sigue en ejecución o fue interrumpido.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Parece que ha pasado más de una hora desde que el último trabajo de indizado se ejecutó. Asegúrese de que el cron de Nextcloud esté configurado correctamente.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Sólo se soporta el cifrado del lado del servidor (OC_DEFAULT_MODULE), pero otro módulo de cifrado se encuentra habilitado.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Los índices EXIF son construidos y verificados en una tarea de segundo plano periódicamente. Tenga precaución cuando se seleccione cualquier otra opción que no sea indizado automático. Por ejemplo, establecer el indizado sólo para los archivos de línea de tiempo puede causar demoras antes de que los medios estén disponibles para los usuarios, ya que el usuario configura su línea de tiempo luego de ingresar.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Las carpetas que contengan un archivo \".nomedia\" siempre se excluirán de la indización.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Las carpetas que contengan un archivo \".nomedia\" o \".nomemories\" siempre se excluirán de la indización.", "Index all media automatically (recommended)" : "Indexar todos los medios automáticamente (recomendado)", "Index per-user timeline folders (not recommended)" : "Indexar las carpetas de línea de tiempo de cada usuario (no se recomienda)", "Index a fixed relative path" : "Indexar una carpeta relativa fija", @@ -98,15 +148,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "Forzar el re-indexado de todos los archivos:", "You can limit indexing by user and/or folder:" : "Puede limitar la indización por usuario y/o carpeta:", "Clear all existing index tables:" : "Borrar todas las tablas de indexado existentes:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Los siguientes tipos MIME están configurados para vista previa de forma correcta. Mas documentación:", - "External Link" : "Enlace externo", - "Performance" : "Rendimiento", + "Media Indexing" : "Indización de medios", "HTTPS is enabled" : "HTTPS está habilitado", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Está accediendo a esta página en un contexto inseguro. Algunas APIs de navegador no están disponibles, lo que hará a Memories muy lento. Active HTTPS en su servidor para mejorar el rendimiento.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ó HTTP/3 están habilitados", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Se recomiendan HTTP/2 ó HTTP/3 enérgicamente (se detectó {httpVer})", + "Performance" : "Rendimiento", "Unknown" : "Desconocido", - "Reverse Geocoding" : "Geo-codificación reversa", "Database is populated with {n} geometries." : "La base de datos está cargada con {n} geometrías.", "Geometry table has not been created." : "La tabla de geometrías no ha sido creada.", "Looks like the planet data is incomplete." : "Al parecer los datos planetarios están incompletos.", @@ -116,13 +164,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "Si el botón a continuación no funciona al importar los datos del planeta, utilice el siguiente comando:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: los datos de geometría son almacenados en la tabla memories_planet_geometry, sin prefijos.", "Download planet database" : "Descargar base de datos del planeta", + "Reverse Geocoding" : "Geo-codificación reversa", "Geometry support was not detected in your database" : "El soporte a geometría no fue detectado en su base de datos", "MySQL-like geometry support was detected " : "Se detectó soporte a geometría de tipo MySQL", "Postgres native geometry support was detected" : "El soporte de geometría nativa con Postgres fue detectado", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Al parecer la base de datos ya está configurada. ¿Está seguro de volver a descargar los datos planetarios?", "You are about to download the planet database. This may take a while." : "Está por descargar la base de datos planetaria. Podría tomar un tiempo.", "This may also cause all photos to be re-indexed!" : "¡Esto también podría causar que las fotos vuelvan a indexarse!", - "Video Streaming" : "Transmisión de Video", "Live transcoding provides for adaptive streaming of videos using HLS." : "La transcodificación en vivo proporciona una transmisión adaptativa de videos utilizando HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Tenga en cuenta que esto podría tener causar una alta carga de CPU si no se tiene aceleración por hardware, y la transcodificación no será utilizada para el almacenamiento externo.", "Enable Transcoding" : "Habilitar transcodificación", @@ -132,14 +180,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Auto (transcodificación adaptativa)", "Original (transcode with max quality)" : "Original (transcodificar con la máxima calidad)", "Direct (original video file without transcode)" : "Directo (archivo de video original sin transcodificación)", - "Hardware Acceleration" : "Aceleración por hardware", + "Video Streaming" : "Transmisión de Video", "You must first make sure the correct drivers are installed before configuring acceleration." : "Debe primero asegurarse de que tenga los controladores correctos instalados antes de configurar la aceleración.", "Make sure you test hardware acceleration with various options after enabling." : "Asegúrese de probar la aceleración por hardware con varias opciones luego de habilitarla.", "Do not enable multiple types of hardware acceleration simultaneously." : "No habilite múltiples tipos de aceleración por hardware de forma simultánea.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Los procesadores Intel que soportan video QuickSync (QSV) así como algunos GPUs AMD pueden ser utilizados para transcodificar utilizando la aceleración VA-API.", "For more details on driver installation, check the documentation:" : "Para más detalles acerca de la instalación de controladores, eche un vistazo a la documentación:", "Enable acceleration with VA-API" : "Habilitar la aceleración con VA-API", - "Enable low-power mode (QSV)" : "Habilitar el modo de ahorro de energía (QSV)", + "Enable low-power mode (QSV only)" : "Habilitar el modo de ahorro de energía (Sólo QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Los GPUs NVIDIA puede ser utilizados para transcodificar utilizando el codificador NVENC con los controladores apropiados.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Dependiendo de las versiones de la SDK instalada y ffmpeg, deberá especificar el escalador que será utilizado", "No automated tests are available for NVIDIA acceleration." : "No hay pruebas automatizadas disponibles para la aceleración NVIDIA", @@ -147,17 +195,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "Habilitar el método de cuantificación Temporal AQ de NVENC", "NPP scaler" : "Escalador NPP", "CUDA scaler" : "Escalador CUDA", + "not recommended" : "no recomendado", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Debido a la existencia de bugs en algunos de los controladores de hardware, los videos podrían aparecer con una orientación errónea cuando se hace difusión. Esto puede resolverse en algunos casos rotando el video en el acelerador.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Habilite la opción a continuación sólo si tiene videos cuya orientación es incorrecta al reproducirlos.", + "Enable streaming transpose workaround" : "Habilitar la solución alterna para la transposición de la difusión", + "HW Acceleration" : "Aceleración de HW", "VA-API device ({dev}) is readable" : "el dispositivo VA-API ({dev}) es legible", "VA-API device ({dev}) not found" : "el dispositivo VA-API ({dev}) no se encontró", "VA-API device ({dev}) has incorrect permissions" : "el dispositivo VA-API ({dev}) tiene permisos incorrectos", "VA-API device status: {status}" : "estado del dispositivo VA-API: {status}", - "Transcoder configuration" : "Configuración del transcodificador", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories utiliza el transcodificador go-vod. Puede ejecutarlo externamente (p.ej. en un contenedor Docker separado para aceleración por hardware) o, utilizar el transcodificador incluído. Para utilizar un transcodificador externo, habilite la siguiente opción y siga las instrucciones en la documentación:", "Enable external transcoder (go-vod)" : "Habilitar el transcodificador externo (go-vod)", "Binary path (local only)" : "Ruta binaria (sólo local)", "Bind address (local only)" : "Dirección de asociación (sólo local)", "Connection address (same as bind if local)" : "Dirección de conexión (igual a la de asociación si es local)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} ítem fue añadido al albúm","{n} ítems fueron añadidos al albúm","{n} ítems fueron añadidos al albúm"], + "Transcoder" : "Transcodificador", + "Template" : "Plantilla", + "No items" : "Sin ítems", + "Shared by {user}" : "Compartidos por {user}", + "_{n} item_::_{n} items_" : ["{n} ítem","{n} ítems","{n} ítems"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} foto actualizada","{n} fotos actualizadas","{n} fotos actualizadas"], "Add people or groups who can edit your album" : "Añada personas o grupos que puedan editar su álbum", "Search for collaborators" : "Buscar colaboradores", "Search people or groups" : "Buscar personas o grupos", @@ -179,7 +236,6 @@ OC.L10N.register( "Could not load the selected album" : "No fue posible cargar el álbum seleccionado", "Remove Album" : "Quitar álbum", "Are you sure you want to permanently remove album \"{name}\"?" : "¿Está seguro de que quiere eliminar permanentemente el álbum {name}?", - "Only user \"{user}\" can delete this album" : "Solo el usuario \"{user}\" puede eliminar este álbum", "Failed to delete {name}." : "Fallo al eliminar {name}.", "Name of the album" : "Nombre del álbum", "Location of the album" : "Ubicación del álbum", @@ -191,12 +247,14 @@ OC.L10N.register( "Save" : "Guardar", "Create album" : "Crear álbum", "Invalid album name; should not contain any slashes." : "Nombre de álbum inválido; no debería contener barras.", - "Add selection to album {albumName}" : "Añadir selección al álbum {albumName}", - "Create a new album." : "Crear un álbum nuevo.", - "_%n item_::_%n items_" : ["%n ítem","%n ítems","%n ítems"], - "_Share with %n user_::_Share with %n users_" : ["Compartir con %n usuario","Compartir con %n usuarios","Compartir con %n usuarios"], + "Search" : "Buscar", + "Create new album." : "Crear nuevo álbum.", + "Save changes" : "Guardar cambios", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Quitada de {n} álbum","Quitada de {n} álbumes","Quitada de {n} álbumes"], "Share Album" : "Compartir álbum", "Save collaborators for this album." : "Guardar colaboradores para este álbum", + "shared by {owner}" : "compartido por {owner}", + "_%n item_::_%n items_" : ["%n ítem","%n ítems","%n ítems"], "Newest" : "Más nuevo", "Year" : "Año", "Month" : "Mes", @@ -233,18 +291,19 @@ OC.L10N.register( "Name" : "Nombre", "Update" : "Actualizar", "Failed to rename {oldName} to {name}." : "Fallo al renombrar {oldName} a {name}", - "Search" : "Buscar", "Loading …" : "Cargando …", "Enter name of the new face" : "Ingrese el nombre de la nueva cara", "Failed to create face" : "Fallo al crear la cara", "Merge {name} with person" : "Unir {name} con persona", - "Are you sure you want to merge {name} with {newName}?" : "¿Está seguro de quiere unir {name} con {newName}?", + "Merge faces" : "Fusionar caras", + "Merge {name} with {newName}?" : "¿Fusionar {name} con {newName}?", + "unnamed person" : "persona sin nombre", "Too many failures, aborting" : "Demasiados fallos, abortando", "Error while moving {basename}" : "Error mientras se movía {basename}", "Failed to move {name}." : "Fallo al mover {name}.", "Move selected photos to person" : "Mover fotos seleccionadas a persona", - "Are you sure you want to move the selected photos from {name} to {target}?" : "¿Está seguro de que desea mover las fotos seleccionadas de {name} a {target}?", - "An error occured while moving photos from {name}." : "Ocurrió un error mientras se movían las fotos desde {name}.", + "Move the selected photos to {target}?" : "¿Mover las fotos seleccionadas a {target}?", + "An error occurred while moving photos from {name}." : "Ocurrió un error al mover fotos desde {name}.", "Choose a folder" : "Elija una carpeta", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} ítem movidos a la carpeta","{n} ítems movidos a la carpeta","{n} ítems movidos a la carpeta"], "Remove" : "Quitar", @@ -279,10 +338,11 @@ OC.L10N.register( "Sort by name" : "Ordenar por nombre", "Share album" : "Compartir álbum", "Download album" : "Descargar álbum", - "Delete album" : "Eliminar álbum", "Nothing to show here" : "Nada que mostrar aquí", + "Unassigned faces" : "Caras sin asignar", "Merge with different person" : "Unir con una persona diferente", "Mark person in preview" : "Marcar persona en vista previa", + "Unnamed person" : "Persona sin nombre", "Folder View" : "Vista de Carpetas", "Timeline View" : "Vista de línea de tiempo", "Share folder" : "Compartir carpeta", @@ -294,7 +354,6 @@ OC.L10N.register( "Drop changes" : "Descartar cambios", "Share" : "Compartir", "Play Live Photo" : "Reproducir foto en vivo", - "Sidebar" : "Barra lateral", "Download Video" : "Descargar video", "Slideshow" : "Presentación de diapositivas", "Previous" : "Anterior", @@ -311,7 +370,6 @@ OC.L10N.register( "Save as" : "Guardar como", "All changes will be lost." : "Todos los cambios se perderán.", "Are you sure you want to continue?" : "¿Está seguro que desea continuar?", - "Continue" : "Continuar", "Undo" : "Deshacer", "Redo" : "Rehacer", "Show original image" : "Mostrar imagen original", @@ -396,6 +454,7 @@ OC.L10N.register( "Auto" : "Auto", "Shared Folder" : "Carpeta compartida", "Shared Album" : "Álbum compartido", + "Failed to remove {filename}." : "Fallo al quitar {filename}.", "Failed to create {albumName}." : "Fallo al crear {albumName}", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Fallo al renombrar {currentAlbumName} a {newAlbumName}.", "General Failure" : "Fallo general", @@ -408,6 +467,9 @@ OC.L10N.register( "Failed to favorite files." : "Fallo al marcar archivos como favoritos.", "Failed to favorite some files." : "Fallo al marcar algunos archivos como favoritos.", "Failed to favorite {fileName}." : "Fallo al marcar como favorito {fileName}.", + "No content-location header found" : "No se encontró la cabecera content-location", + "Failed to create tag {name}: {error}" : "Fallo al crear la etiqueta {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories ha sido actualizada a {version}. Recargue para obtener la versión nueva.", "Upload some photos and make sure the timeline path is configured" : "Cargue algunas fotos y asegúrese que la ruta a la línea de tiempo está configurada", "Mark photos as favorite to find them easily" : "Marque fotos como favoritas para encontrarlas fácilmente", "Memories from past years will appear here" : "Las memorias de años pasados aparecerán aquí", @@ -420,6 +482,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Etiquete las fotos para encontrarlas fácilmente", "Recognize is still working on your photos" : "Recognize sigue trabajando en sus fotos", "Places you have been to will appear here" : "Los lugares en los que ha estado aparecerán aquí", - "Your Timeline" : "Su línea de tiempo" + "Yes" : "Sí", + "No" : "No" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/es.json b/l10n/es.json index fbf4d1ef..1134f22e 100644 --- a/l10n/es.json +++ b/l10n/es.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Memories" : "Memories", "Fast, modern and advanced photo management suite" : "Suite rápida, moderna y avanzada para la gestión de fotografías", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories gestión de fotos para Nextcloud\n\nMemories es una solución con *baterías incluidas* para gestión de fotos en Nextcloud con características avanzadas, incluyendo:\n\n- **📸 Línea de tiempo**: Organice fotos y videos por fecha, analizadas desde los datos Exif.\n- **⏪ Rebobinar**: Navegue a cualquier momento del pasado instantáneamente y reviva sus memorias.\n- **🤖 Etiquetado IA**: Agrupe fotos por persona y objetos utilizando IA, con la ayuda de [recognize](https://github.com/nextcloud/recognize) y [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Álbumes**: Cree álbumes para agrupar fotos y videos en conjunto. Podrá entonces compartir estos álbumes con otros.\n **🫱🏻‍🫲🏻 Compartir externamente**: Comparta fotos y videos con personas fuera de su instancia Nextcloud.\n-- **📱 Soporte a Móviles**: Trabaje con dispositivos de cualquier tamaño y forma a través de la aplicación web.\n- **✏️ Editar Metadatos**: Edite las fechas en las fotos de forma rápida y en lotes.\n- **📦 Archivar**: Almacene las fotos que no quiere ver en su línea de tiempo en una carpeta separada.\n- **📹 Conversión de video**: Convierta entre formatos de video y utilice HLS para máximo rendimiento.\n**🗺️ Mapas**: Vea sus fotos en un mapa, etiquetadas mediante geo-codificación reversa precisa.\n- **📦 Migración**: Migre fácilmente desde Fotos de Nextcloud y Google Takeout.\n- **⚡️ Rendimiento**: Haga todo esto de forma muy rápida.\n\n## 🚀 Instalación\n\n1. Instale la aplicación desde la tienda de Nextcloud (pruebe la demo [aquí](https://demo.memories.gallery/apps/memories/)).\n2. Ejecute los [pasos recomendados de configuración](https://memories.gallery/config/).\n3. Ejecute `php ./occ memories:index` para generar los índices de metadatos para las fotos existentes.\n4. Abra la aplicación 📷 Memories en Nextcloud y especifique la carpeta que contiene sus fotos.", @@ -22,17 +23,20 @@ "Face Recognition" : "Reconocimiento facial", "A better photos experience awaits you" : "Una mejor experiencia de fotos te espera", "Choose the root folder of your timeline to begin" : "Escoja la carpeta raíz de su línea de tiempo para comenzar", - "If you just installed Memories, run:" : "Si acaba de instalar Memories, ejecute:", "Continue to Memories" : "Continuar a Memories", "Choose again" : "Seleccione de nuevo", "Click here to start" : "Haga click para comenzar", "You can always change this later in settings" : "Siempre podrá cambiar esto luego en las configuraciones", + "If you just installed Memories, visit the admin panel first." : "Si acaba de instalar Memories, visite el panel de administración primero.", "Choose the root of your timeline" : "Seleccione la raíz de su línea de tiempo", "The selected folder does not seem to be valid. Try again." : "La carpeta seleccionada no parece ser válida. Intente de nuevo.", + "No photos were found in the selected folder." : "No se encontraron fotos en la carpeta seleccionada.", + "This can happen because your media is still indexing." : "Esto puede suceder cuando sus medios están todavía siendo indexados.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visite el panel de administración para asegurarse que Memories está configurado correctamente.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Se encontró {n} ítem en {path}","Se encontraron {n} ítems en {path}","Se encontraron {n} ítems en {path}"], + "Metadata" : "Metadatos", "Edit" : "Editar", - "No title" : "Sin título", - "No description" : "Sin descripción", + "Failed to load metadata" : "Fallo al cargar metadatos", "No coordinates" : "Sin coordenadas", "Click edit to set location" : "Haga clic en editar para establecer la ubicación", "Photos" : "Fotos", @@ -40,7 +44,6 @@ "Cancel" : "Cancelar", "Delete" : "Eliminar", "Remove from album" : "Quitar del álbum", - "Download" : "Descargar", "Favorite" : "Marcar como favorito", "Unarchive" : "Desarchivar", "Edit metadata" : "Editar metadatos", @@ -49,10 +52,12 @@ "Add to album" : "Añadir al álbum", "Move to person" : "Mover a persona", "Remove from person" : "Quitar de la persona", - "You are about to download a large number of files. Are you sure?" : "Está a punto de descargar un gran número de archivos. ¿Está seguro?", - "You are about to delete a large number of files. Are you sure?" : "Está a punto de eliminar un gran número de archivos. ¿Está seguro?", + "You are about to download a large number of files." : "Está a punto de descargar un gran número de archivos.", + "Continue" : "Continuar", + "You are about to delete a large number of files" : "Está a punto de eliminar un gran número de archivos", "Failed to delete files" : "Fallo al eliminar archivos", - "You are about to touch a large number of files. Are you sure?" : "Está a punto de tocar un gran número de archivos. ¿Está seguro?", + "Move" : "Mover", + "You are about to move a large number of files" : "Está a punto de mover un gran número de archivos", "You must enable \"Mark person in preview\" to use this feature" : "Debe habilitar \"Marcar persona en la vista previa\" para utilizar esta característica", "Only user \"{user}\" can update this person" : "Solo el usuario \"{user}\" puede actualizar esta persona", "_{n} selected_::_{n} selected_" : ["{n} seleccionado","{n} seleccionados","{n} seleccionados"], @@ -61,31 +66,76 @@ "Timeline Path" : "Ruta a la línea de tiempo", "Square grid mode" : "Modo de rejilla cuadrada", "Show past photos on top of timeline" : "Mostrar fotos anteriores arriba de la línea de tiempo", + "Viewer" : "Visor", + "Autoplay Live Photos" : "Reproducir automáticamente las fotos en vivo", "Load full size image on zoom" : "Cargar imagen a tamaño completo al hacer zoom", "Always load full size image (not recommended)" : "Siempre cargar imagen a tamaño completo (no se recomienda)", + "Show full file path in sidebar" : "Mostrar la ruta completa al archivo en la barra lateral", + "Account" : "Cuenta", + "Logged in as {user}" : "Sesión iniciada como {user}", + "Sign out" : "Cerrar sesión", + "Device Folders" : "Carpetas de dispositivo", + "Local folders to include in the timeline view" : "Carpetas locales a incluir en la vista de línea de tiempo", "Folders Path" : "Ruta a las carpetas", "Show hidden folders" : "Mostrar carpetas ocultas", "Sort folders oldest-first" : "Ordenar carpetas de más antigua a más nueva", "Sort albums oldest-first" : "Ordenar álbumes de más antiguo a más nuevo", "Choose Timeline Paths" : "Escoga las rutas a la línea de tiempo", "Choose the root for the folders view" : "Seleccione la raíz de la vista de carpetas", + "Are you sure you want to log out {user}?" : "¿Estás seguro de cerrar la sesión {user}?", "Close" : "Cerrar", "{photoCount} photos" : "{photoCount} fotos", "Failed to load some photos" : "Fallo al cargar algunas fotos", "Failed to update setting" : "Fallo al actualizar la configuración", - "EXIF Extraction" : "Extracción EXIF", + "Albums support is enabled through the Photos app." : "El soporte a Álbumes se habilita a través de la app de Fotos.", + "Albums are disabled because the Photos app is not available." : "Los álbumes están deshabilitados ya que la app de Fotos no está disponible.", + "Recognize is installed and enabled for face recognition." : "Recognize está instalado y habilitado para reconocimiento facial.", + "Recognize is installed but not enabled for face recognition." : "Recognize está instalado pero no está habilitado para reconocimiento facial.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Recognize no está instalado. El reconocimiento facial y el etiquetado de objetos podrían no estar disponibles.", + "Face Recognition is installed and enabled" : "El reconocimiento facial está instalado y habilitado", + "Preview generator is installed and enabled. Additional configuration may still be required." : "El generador de vistas previas está instalado y habilitado. Podría requerir configuración adicional.", + "Preview generator is not installed and configured. This may make Memories very slow." : "El generador de vistas previas no está instalado y habilitado. Esto podría causar que Memories sea muy lento.", + "Recommended Apps" : "Apps recomendadas", "Path to packaged exiftool binary" : "Ruta al paquete binario exiftool", "You need perl only if the packaged exiftool binary does not work for some reason." : "Solo necesitas perl si el binario exiftool incluido no funciona por alguna razón.", "Use system perl (only if exiftool binary does not work)" : "Utilizar perl del sistema (usar solamente si el binario exiftool no funciona)", - "Media Indexing" : "Indización de medios", + "EXIF Extraction" : "Extracción EXIF", + "You can configure the enabled Nextcloud preview providers below." : "Puede configurar los proveedores de vista habilitados abajo.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Si está utilizando Imaginary para la generación de vistas previas, puede ignorar esta sección.", + "To enable RAW support, install the Camera RAW Previews app." : "Para habilitar el soporte RAW, instale la app Camera RAW Previews.", + "Documentation." : "Documentación.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick está disponible [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick no está disponible.", + "Image editing will not work correctly." : "La edición de imágenes no funcionará correctamente.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "La generación de miniaturas podría no funcionar para algunos formatos (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Las miniaturas para los videos se generarán con este binario.", + "Thumbnail generation may not work for videos." : "La generación de miniaturas podría no funcionar para los videos.", + "The following MIME types are configured for preview generation." : "Los siguientes tipos MIME están configurados para la generación de vistas previas.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamaño máximo de la vista previa (equilibrio entre calidad y requerimientos de almacenamiento).", + "Max memory for preview generation (MB)" : "Memoria máxima a utilizar para la generación de vistas previas (MB)", + "Max size of preview files (MB)" : "Tamaño máximo de los archivos de vista previa (MB)", + "File Support" : "Soporte a Archivos", + "Images (JPEG, PNG, GIF, BMP)" : "Imágenes (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Vídeos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "¡Gracias por escojer Nextcloud y Memories para almacenar sus preciados datos!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories tiene muchísimas características y configurarlo adecuadamente puede tomar algo de tiempo.", + "If you just installed Memories, make sure you read the getting started guide:" : "Si acaba de instalar Memories, asegúrese de leer la siguiente guía de inicio:", + "External Link" : "Enlace externo", + "In case you run into any issues or bugs, you can get help through several channels." : "En caso de que consiga problemas o bugs, puede obtener ayuda a través de diferentes canales.", + "Memories is a completely free and open source app under active development." : "Memories es una app completamente gratis y de código abierto en continuo desarrollo.", + "You can contribute in several ways. See the project page for more details:" : "Puede contribuir de diferentes maneras. Vea la página del proyecto para más detalles:", + "Help & Support" : "Ayuda y Soporte", "{n} media files have been indexed" : "{n} archivos de medios han sido indexados", "Automatic Indexing status: {status}" : "Estado del indizado automático: {status}", "Last index job was run {t} seconds ago." : "El último trabajo de indización se ejecutó hace {t} segundos.", "It took {t} seconds to complete." : "Tomó {n} segundos para completar.", "It is still running or was interrupted." : "Sigue en ejecución o fue interrumpido.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Parece que ha pasado más de una hora desde que el último trabajo de indizado se ejecutó. Asegúrese de que el cron de Nextcloud esté configurado correctamente.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Sólo se soporta el cifrado del lado del servidor (OC_DEFAULT_MODULE), pero otro módulo de cifrado se encuentra habilitado.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Los índices EXIF son construidos y verificados en una tarea de segundo plano periódicamente. Tenga precaución cuando se seleccione cualquier otra opción que no sea indizado automático. Por ejemplo, establecer el indizado sólo para los archivos de línea de tiempo puede causar demoras antes de que los medios estén disponibles para los usuarios, ya que el usuario configura su línea de tiempo luego de ingresar.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Las carpetas que contengan un archivo \".nomedia\" siempre se excluirán de la indización.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Las carpetas que contengan un archivo \".nomedia\" o \".nomemories\" siempre se excluirán de la indización.", "Index all media automatically (recommended)" : "Indexar todos los medios automáticamente (recomendado)", "Index per-user timeline folders (not recommended)" : "Indexar las carpetas de línea de tiempo de cada usuario (no se recomienda)", "Index a fixed relative path" : "Indexar una carpeta relativa fija", @@ -96,15 +146,13 @@ "Force re-indexing of all files:" : "Forzar el re-indexado de todos los archivos:", "You can limit indexing by user and/or folder:" : "Puede limitar la indización por usuario y/o carpeta:", "Clear all existing index tables:" : "Borrar todas las tablas de indexado existentes:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Los siguientes tipos MIME están configurados para vista previa de forma correcta. Mas documentación:", - "External Link" : "Enlace externo", - "Performance" : "Rendimiento", + "Media Indexing" : "Indización de medios", "HTTPS is enabled" : "HTTPS está habilitado", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Está accediendo a esta página en un contexto inseguro. Algunas APIs de navegador no están disponibles, lo que hará a Memories muy lento. Active HTTPS en su servidor para mejorar el rendimiento.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ó HTTP/3 están habilitados", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Se recomiendan HTTP/2 ó HTTP/3 enérgicamente (se detectó {httpVer})", + "Performance" : "Rendimiento", "Unknown" : "Desconocido", - "Reverse Geocoding" : "Geo-codificación reversa", "Database is populated with {n} geometries." : "La base de datos está cargada con {n} geometrías.", "Geometry table has not been created." : "La tabla de geometrías no ha sido creada.", "Looks like the planet data is incomplete." : "Al parecer los datos planetarios están incompletos.", @@ -114,13 +162,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "Si el botón a continuación no funciona al importar los datos del planeta, utilice el siguiente comando:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: los datos de geometría son almacenados en la tabla memories_planet_geometry, sin prefijos.", "Download planet database" : "Descargar base de datos del planeta", + "Reverse Geocoding" : "Geo-codificación reversa", "Geometry support was not detected in your database" : "El soporte a geometría no fue detectado en su base de datos", "MySQL-like geometry support was detected " : "Se detectó soporte a geometría de tipo MySQL", "Postgres native geometry support was detected" : "El soporte de geometría nativa con Postgres fue detectado", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Al parecer la base de datos ya está configurada. ¿Está seguro de volver a descargar los datos planetarios?", "You are about to download the planet database. This may take a while." : "Está por descargar la base de datos planetaria. Podría tomar un tiempo.", "This may also cause all photos to be re-indexed!" : "¡Esto también podría causar que las fotos vuelvan a indexarse!", - "Video Streaming" : "Transmisión de Video", "Live transcoding provides for adaptive streaming of videos using HLS." : "La transcodificación en vivo proporciona una transmisión adaptativa de videos utilizando HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Tenga en cuenta que esto podría tener causar una alta carga de CPU si no se tiene aceleración por hardware, y la transcodificación no será utilizada para el almacenamiento externo.", "Enable Transcoding" : "Habilitar transcodificación", @@ -130,14 +178,14 @@ "Auto (adaptive transcode)" : "Auto (transcodificación adaptativa)", "Original (transcode with max quality)" : "Original (transcodificar con la máxima calidad)", "Direct (original video file without transcode)" : "Directo (archivo de video original sin transcodificación)", - "Hardware Acceleration" : "Aceleración por hardware", + "Video Streaming" : "Transmisión de Video", "You must first make sure the correct drivers are installed before configuring acceleration." : "Debe primero asegurarse de que tenga los controladores correctos instalados antes de configurar la aceleración.", "Make sure you test hardware acceleration with various options after enabling." : "Asegúrese de probar la aceleración por hardware con varias opciones luego de habilitarla.", "Do not enable multiple types of hardware acceleration simultaneously." : "No habilite múltiples tipos de aceleración por hardware de forma simultánea.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Los procesadores Intel que soportan video QuickSync (QSV) así como algunos GPUs AMD pueden ser utilizados para transcodificar utilizando la aceleración VA-API.", "For more details on driver installation, check the documentation:" : "Para más detalles acerca de la instalación de controladores, eche un vistazo a la documentación:", "Enable acceleration with VA-API" : "Habilitar la aceleración con VA-API", - "Enable low-power mode (QSV)" : "Habilitar el modo de ahorro de energía (QSV)", + "Enable low-power mode (QSV only)" : "Habilitar el modo de ahorro de energía (Sólo QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Los GPUs NVIDIA puede ser utilizados para transcodificar utilizando el codificador NVENC con los controladores apropiados.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Dependiendo de las versiones de la SDK instalada y ffmpeg, deberá especificar el escalador que será utilizado", "No automated tests are available for NVIDIA acceleration." : "No hay pruebas automatizadas disponibles para la aceleración NVIDIA", @@ -145,17 +193,26 @@ "Enable NVENC Temporal AQ" : "Habilitar el método de cuantificación Temporal AQ de NVENC", "NPP scaler" : "Escalador NPP", "CUDA scaler" : "Escalador CUDA", + "not recommended" : "no recomendado", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Debido a la existencia de bugs en algunos de los controladores de hardware, los videos podrían aparecer con una orientación errónea cuando se hace difusión. Esto puede resolverse en algunos casos rotando el video en el acelerador.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Habilite la opción a continuación sólo si tiene videos cuya orientación es incorrecta al reproducirlos.", + "Enable streaming transpose workaround" : "Habilitar la solución alterna para la transposición de la difusión", + "HW Acceleration" : "Aceleración de HW", "VA-API device ({dev}) is readable" : "el dispositivo VA-API ({dev}) es legible", "VA-API device ({dev}) not found" : "el dispositivo VA-API ({dev}) no se encontró", "VA-API device ({dev}) has incorrect permissions" : "el dispositivo VA-API ({dev}) tiene permisos incorrectos", "VA-API device status: {status}" : "estado del dispositivo VA-API: {status}", - "Transcoder configuration" : "Configuración del transcodificador", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories utiliza el transcodificador go-vod. Puede ejecutarlo externamente (p.ej. en un contenedor Docker separado para aceleración por hardware) o, utilizar el transcodificador incluído. Para utilizar un transcodificador externo, habilite la siguiente opción y siga las instrucciones en la documentación:", "Enable external transcoder (go-vod)" : "Habilitar el transcodificador externo (go-vod)", "Binary path (local only)" : "Ruta binaria (sólo local)", "Bind address (local only)" : "Dirección de asociación (sólo local)", "Connection address (same as bind if local)" : "Dirección de conexión (igual a la de asociación si es local)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} ítem fue añadido al albúm","{n} ítems fueron añadidos al albúm","{n} ítems fueron añadidos al albúm"], + "Transcoder" : "Transcodificador", + "Template" : "Plantilla", + "No items" : "Sin ítems", + "Shared by {user}" : "Compartidos por {user}", + "_{n} item_::_{n} items_" : ["{n} ítem","{n} ítems","{n} ítems"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} foto actualizada","{n} fotos actualizadas","{n} fotos actualizadas"], "Add people or groups who can edit your album" : "Añada personas o grupos que puedan editar su álbum", "Search for collaborators" : "Buscar colaboradores", "Search people or groups" : "Buscar personas o grupos", @@ -177,7 +234,6 @@ "Could not load the selected album" : "No fue posible cargar el álbum seleccionado", "Remove Album" : "Quitar álbum", "Are you sure you want to permanently remove album \"{name}\"?" : "¿Está seguro de que quiere eliminar permanentemente el álbum {name}?", - "Only user \"{user}\" can delete this album" : "Solo el usuario \"{user}\" puede eliminar este álbum", "Failed to delete {name}." : "Fallo al eliminar {name}.", "Name of the album" : "Nombre del álbum", "Location of the album" : "Ubicación del álbum", @@ -189,12 +245,14 @@ "Save" : "Guardar", "Create album" : "Crear álbum", "Invalid album name; should not contain any slashes." : "Nombre de álbum inválido; no debería contener barras.", - "Add selection to album {albumName}" : "Añadir selección al álbum {albumName}", - "Create a new album." : "Crear un álbum nuevo.", - "_%n item_::_%n items_" : ["%n ítem","%n ítems","%n ítems"], - "_Share with %n user_::_Share with %n users_" : ["Compartir con %n usuario","Compartir con %n usuarios","Compartir con %n usuarios"], + "Search" : "Buscar", + "Create new album." : "Crear nuevo álbum.", + "Save changes" : "Guardar cambios", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Quitada de {n} álbum","Quitada de {n} álbumes","Quitada de {n} álbumes"], "Share Album" : "Compartir álbum", "Save collaborators for this album." : "Guardar colaboradores para este álbum", + "shared by {owner}" : "compartido por {owner}", + "_%n item_::_%n items_" : ["%n ítem","%n ítems","%n ítems"], "Newest" : "Más nuevo", "Year" : "Año", "Month" : "Mes", @@ -231,18 +289,19 @@ "Name" : "Nombre", "Update" : "Actualizar", "Failed to rename {oldName} to {name}." : "Fallo al renombrar {oldName} a {name}", - "Search" : "Buscar", "Loading …" : "Cargando …", "Enter name of the new face" : "Ingrese el nombre de la nueva cara", "Failed to create face" : "Fallo al crear la cara", "Merge {name} with person" : "Unir {name} con persona", - "Are you sure you want to merge {name} with {newName}?" : "¿Está seguro de quiere unir {name} con {newName}?", + "Merge faces" : "Fusionar caras", + "Merge {name} with {newName}?" : "¿Fusionar {name} con {newName}?", + "unnamed person" : "persona sin nombre", "Too many failures, aborting" : "Demasiados fallos, abortando", "Error while moving {basename}" : "Error mientras se movía {basename}", "Failed to move {name}." : "Fallo al mover {name}.", "Move selected photos to person" : "Mover fotos seleccionadas a persona", - "Are you sure you want to move the selected photos from {name} to {target}?" : "¿Está seguro de que desea mover las fotos seleccionadas de {name} a {target}?", - "An error occured while moving photos from {name}." : "Ocurrió un error mientras se movían las fotos desde {name}.", + "Move the selected photos to {target}?" : "¿Mover las fotos seleccionadas a {target}?", + "An error occurred while moving photos from {name}." : "Ocurrió un error al mover fotos desde {name}.", "Choose a folder" : "Elija una carpeta", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} ítem movidos a la carpeta","{n} ítems movidos a la carpeta","{n} ítems movidos a la carpeta"], "Remove" : "Quitar", @@ -277,10 +336,11 @@ "Sort by name" : "Ordenar por nombre", "Share album" : "Compartir álbum", "Download album" : "Descargar álbum", - "Delete album" : "Eliminar álbum", "Nothing to show here" : "Nada que mostrar aquí", + "Unassigned faces" : "Caras sin asignar", "Merge with different person" : "Unir con una persona diferente", "Mark person in preview" : "Marcar persona en vista previa", + "Unnamed person" : "Persona sin nombre", "Folder View" : "Vista de Carpetas", "Timeline View" : "Vista de línea de tiempo", "Share folder" : "Compartir carpeta", @@ -292,7 +352,6 @@ "Drop changes" : "Descartar cambios", "Share" : "Compartir", "Play Live Photo" : "Reproducir foto en vivo", - "Sidebar" : "Barra lateral", "Download Video" : "Descargar video", "Slideshow" : "Presentación de diapositivas", "Previous" : "Anterior", @@ -309,7 +368,6 @@ "Save as" : "Guardar como", "All changes will be lost." : "Todos los cambios se perderán.", "Are you sure you want to continue?" : "¿Está seguro que desea continuar?", - "Continue" : "Continuar", "Undo" : "Deshacer", "Redo" : "Rehacer", "Show original image" : "Mostrar imagen original", @@ -394,6 +452,7 @@ "Auto" : "Auto", "Shared Folder" : "Carpeta compartida", "Shared Album" : "Álbum compartido", + "Failed to remove {filename}." : "Fallo al quitar {filename}.", "Failed to create {albumName}." : "Fallo al crear {albumName}", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Fallo al renombrar {currentAlbumName} a {newAlbumName}.", "General Failure" : "Fallo general", @@ -406,6 +465,9 @@ "Failed to favorite files." : "Fallo al marcar archivos como favoritos.", "Failed to favorite some files." : "Fallo al marcar algunos archivos como favoritos.", "Failed to favorite {fileName}." : "Fallo al marcar como favorito {fileName}.", + "No content-location header found" : "No se encontró la cabecera content-location", + "Failed to create tag {name}: {error}" : "Fallo al crear la etiqueta {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories ha sido actualizada a {version}. Recargue para obtener la versión nueva.", "Upload some photos and make sure the timeline path is configured" : "Cargue algunas fotos y asegúrese que la ruta a la línea de tiempo está configurada", "Mark photos as favorite to find them easily" : "Marque fotos como favoritas para encontrarlas fácilmente", "Memories from past years will appear here" : "Las memorias de años pasados aparecerán aquí", @@ -418,6 +480,7 @@ "Tag photos to find them easily" : "Etiquete las fotos para encontrarlas fácilmente", "Recognize is still working on your photos" : "Recognize sigue trabajando en sus fotos", "Places you have been to will appear here" : "Los lugares en los que ha estado aparecerán aquí", - "Your Timeline" : "Su línea de tiempo" + "Yes" : "Sí", + "No" : "No" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/es_419.js b/l10n/es_419.js index c396119f..10a241da 100644 --- a/l10n/es_419.js +++ b/l10n/es_419.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Ajustes", "Info" : "Info", "Folders" : "Carpetas", @@ -13,15 +14,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar Cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -34,7 +39,6 @@ OC.L10N.register( "Reset" : "Restaurar", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -47,12 +51,12 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", "Text" : "Texto", "Size" : "Tamaño", - "Position" : "Posición" + "Position" : "Posición", + "Yes" : "Si" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/es_419.json b/l10n/es_419.json index de3f7d6f..9f994c9b 100644 --- a/l10n/es_419.json +++ b/l10n/es_419.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Ajustes", "Info" : "Info", "Folders" : "Carpetas", @@ -11,15 +12,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar Cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -32,7 +37,6 @@ "Reset" : "Restaurar", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -45,12 +49,12 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", "Text" : "Texto", "Size" : "Tamaño", - "Position" : "Posición" + "Position" : "Posición", + "Yes" : "Si" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/es_AR.js b/l10n/es_AR.js index 188420d6..3cc33766 100644 --- a/l10n/es_AR.js +++ b/l10n/es_AR.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Ajustes", "Info" : "Info", "Folders" : "Carpetas", @@ -14,16 +15,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Descargar", "Favorite" : "Favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Copy public link" : "Copiar link publico", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -36,7 +40,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Loading …" : "Cargando …", "Remove" : "Borrar", "Share link" : "Compartir enlace", @@ -48,13 +51,13 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", "Text" : "Texto", "Size" : "Tamaño", "Position" : "Posición", - "Direct" : "Directo" + "Direct" : "Directo", + "Yes" : "Sí" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/es_AR.json b/l10n/es_AR.json index a20c52b0..3e97808d 100644 --- a/l10n/es_AR.json +++ b/l10n/es_AR.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Ajustes", "Info" : "Info", "Folders" : "Carpetas", @@ -12,16 +13,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Descargar", "Favorite" : "Favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Copy public link" : "Copiar link publico", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -34,7 +38,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Loading …" : "Cargando …", "Remove" : "Borrar", "Share link" : "Compartir enlace", @@ -46,13 +49,13 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", "Text" : "Texto", "Size" : "Tamaño", "Position" : "Posición", - "Direct" : "Directo" + "Direct" : "Directo", + "Yes" : "Sí" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/es_CL.js b/l10n/es_CL.js index 93f7cf19..89977050 100644 --- a/l10n/es_CL.js +++ b/l10n/es_CL.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,16 +14,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -35,7 +39,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Loading …" : "Cargando …", "Remove" : "Eliminar", "Share link" : "Compartir liga", @@ -49,12 +52,12 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", "Text" : "Texto", "Size" : "Tamaño", - "Position" : "Posición" + "Position" : "Posición", + "Yes" : "Si" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/es_CL.json b/l10n/es_CL.json index 018c3769..e4358174 100644 --- a/l10n/es_CL.json +++ b/l10n/es_CL.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,16 +12,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +37,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Loading …" : "Cargando …", "Remove" : "Eliminar", "Share link" : "Compartir liga", @@ -47,12 +50,12 @@ "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", "Text" : "Texto", "Size" : "Tamaño", - "Position" : "Posición" + "Position" : "Posición", + "Yes" : "Si" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/es_CO.js b/l10n/es_CO.js index b1e69420..52fe1104 100644 --- a/l10n/es_CO.js +++ b/l10n/es_CO.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,16 +14,20 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -35,7 +40,6 @@ OC.L10N.register( "Reset" : "Reiniciar", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir enlace", "Refresh" : "Actualizar", @@ -48,7 +52,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_CO.json b/l10n/es_CO.json index 83fa9b78..8a934064 100644 --- a/l10n/es_CO.json +++ b/l10n/es_CO.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,16 +12,20 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +38,6 @@ "Reset" : "Reiniciar", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir enlace", "Refresh" : "Actualizar", @@ -46,7 +50,6 @@ "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_CR.js b/l10n/es_CR.js index 03258eb1..c5cea939 100644 --- a/l10n/es_CR.js +++ b/l10n/es_CR.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,16 +14,20 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -35,7 +40,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -48,7 +52,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_CR.json b/l10n/es_CR.json index 4ce68b65..eb8cd736 100644 --- a/l10n/es_CR.json +++ b/l10n/es_CR.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,16 +12,20 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +38,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -46,7 +50,6 @@ "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_DO.js b/l10n/es_DO.js index 11de5263..d842c37f 100644 --- a/l10n/es_DO.js +++ b/l10n/es_DO.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -12,16 +13,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -34,7 +38,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -47,7 +50,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_DO.json b/l10n/es_DO.json index c9f6ffad..528f322c 100644 --- a/l10n/es_DO.json +++ b/l10n/es_DO.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -10,16 +11,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -32,7 +36,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -45,7 +48,6 @@ "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_EC.js b/l10n/es_EC.js index f68f624e..195883dc 100644 --- a/l10n/es_EC.js +++ b/l10n/es_EC.js @@ -1,60 +1,437 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", + "Memories" : "Memorias", + "Fast, modern and advanced photo management suite" : "Fast, modern and advanced photo management suite", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories: Gestión de Fotos para Nextcloud\n \n Memories es una solución de gestión de fotos para Nextcloud que incluye una amplia gama de características avanzadas, que incluyen:\n \n - **📸 Línea de tiempo**: Ordena fotos y videos por fecha de captura, extraída de los datos Exif.\n - **⏪ Retroceder**: Salta instantáneamente a cualquier momento del pasado y revive tus recuerdos.\n - **🤖 Etiquetado de IA**: Agrupa fotos por personas y objetos, potenciado por [recognize](https://github.com/nextcloud/recognize) y [facerecognition](https://github.com/matiasdelellis/facerecognition).\n - **🖼️ Álbumes**: Crea álbumes para agrupar fotos y videos juntos. Luego comparte estos álbumes con otros.\n - **🫱🏻‍🫲🏻 Compartir Externo**: Comparte fotos y videos con personas fuera de tu instancia de Nextcloud.\n - **📱 Soporte Móvil**: Trabaja desde cualquier dispositivo, de cualquier forma y tamaño a través de la aplicación web.\n - **✏️ Editar Metadatos**: Edita rápidamente fechas y otros metadatos de las fotos de forma individual o masiva.\n - **📦 Archivo**: Almacena fotos que no deseas ver en tu línea de tiempo en una carpeta separada.\n - **📹 Transcodificación de Video**: Transcodifica videos y utiliza HLS para obtener un rendimiento máximo.\n - **🗺️ Mapa**: Visualiza tus fotos en un mapa, etiquetadas con una geocodificación inversa precisa.\n - **📦 Migración**: Migra fácilmente desde Nextcloud Photos y Google Takeout.\n - **⚡️ Rendimiento**: Realiza todas estas operaciones de manera muy rápida.\n \n ## 🚀 Instalación\n \n 1. Instala la aplicación desde la tienda de aplicaciones de Nextcloud (prueba una demo [aquí](https://demo.memories.gallery/apps/memories/)).\n 2. Realiza los pasos de [configuración recomendados](https://memories.gallery/config/).\n 3. Ejecuta `php occ memories:index` para generar índices de metadatos para las fotos existentes.\n 4. Abre la aplicación 📷 Memories en Nextcloud y establece el directorio que contiene tus fotos.", "Settings" : "Ajustes", + "People (Recognize)" : "Personas (Recognize)", + "People" : "Personas", + "People (Face Recognition)" : "Personas (Reconocimiento Facial)", "Info" : "Info", + "Timeline" : "Línea de tiempo", "Folders" : "Carpetas", "Favorites" : "Favoritos", "Videos" : "Videos", + "Albums" : "Álbumes", "Archive" : "Archivar", + "On this day" : "En este día", + "Places" : "Lugares", + "Map" : "Mapa", "Tags" : "Etiquetas", + "View all" : "Ver todo", + "Recognize" : "Reconocer", + "Face Recognition" : "Reconocimiento Facial", + "A better photos experience awaits you" : "Una experiencia de fotos mejor te espera", + "Choose the root folder of your timeline to begin" : "Elige la carpeta raíz de tu línea de tiempo para comenzar", + "Continue to Memories" : "Continuar a Memories", + "Choose again" : "Elegir de nuevo", + "Click here to start" : "Haz clic aquí para empezar", + "You can always change this later in settings" : "Siempre puedes cambiar esto luego en la configuración", + "If you just installed Memories, visit the admin panel first." : "Si acabas de instalar Memories, visita primero el panel de administración.", + "Choose the root of your timeline" : "Elegir la raíz de tu línea de tiempo", + "The selected folder does not seem to be valid. Try again." : "La carpeta seleccionada parece no ser válida. Inténtalo de nuevo.", + "No photos were found in the selected folder." : "No se encontraron fotos en la carpeta seleccionada.", + "This can happen because your media is still indexing." : "Esto puede suceder porque tus medios aún se están indexando.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visita el panel de administración para asegurarte de que Memories esté configurado correctamente.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Encontrado {n} elemento en {path}","Encontrados {n} elementos en {path}","Encontrados {n} elementos en {path}"], + "Metadata" : "Metadatos", "Edit" : "Editar", + "No coordinates" : "Sin coordenadas", + "Click edit to set location" : "Haz clic en editar para establecer la ubicación", "Photos" : "Fotos", "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", + "Remove from album" : "Eliminar del álbum", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", + "Edit metadata" : "Editar metadatos", "View in folder" : "Ver en la carpeta", + "Move to folder" : "Mover a carpeta", + "Add to album" : "Agregar al álbum", + "Move to person" : "Mover a persona", + "Remove from person" : "Eliminar de persona", + "Continue" : "Continuar", + "Failed to delete files" : "Error al eliminar archivos", + "Move" : "Mover", + "You must enable \"Mark person in preview\" to use this feature" : "Debes habilitar \"Marcar persona en la vista previa\" para usar esta función", + "Only user \"{user}\" can update this person" : "Solo el usuario \"{user}\" puede actualizar esta persona", + "_{n} selected_::_{n} selected_" : ["{n} seleccionado","{n} seleccionados","{n} seleccionado"], + "Memories Settings" : "Configuración de Memories", "General" : "General", + "Timeline Path" : "Ruta de la Línea de Tiempo", + "Square grid mode" : "Modo de cuadrícula cuadrada", + "Show past photos on top of timeline" : "Mostrar fotos pasadas en la parte superior de la línea de tiempo", + "Viewer" : "Visor", + "Load full size image on zoom" : "Cargar imagen de tamaño completo al hacer zoom", + "Always load full size image (not recommended)" : "Cargar siempre imágenes de tamaño completo (no recomendado)", + "Account" : "Cuenta", + "Logged in as {user}" : "Sesión iniciada como {user}", + "Sign out" : "Cerrar sesión", + "Device Folders" : "Carpetas de Dispositivos", + "Local folders to include in the timeline view" : "Carpetas locales para incluir en la vista de la línea de tiempo", + "Folders Path" : "Ruta de Carpetas", + "Show hidden folders" : "Mostrar carpetas ocultas", + "Sort folders oldest-first" : "Ordenar carpetas desde la más antigua", + "Sort albums oldest-first" : "Ordenar álbumes desde el más antiguo", + "Choose Timeline Paths" : "Elegir Rutas de la Línea de Tiempo", + "Choose the root for the folders view" : "Elegir la raíz para la vista de carpetas", + "Are you sure you want to log out {user}?" : "¿Estás seguro de que quieres cerrar la sesión de {user}?", "Close" : "Cerrar", + "{photoCount} photos" : "{photoCount} fotos", + "Failed to load some photos" : "Error al cargar algunas fotos", + "Failed to update setting" : "Error al actualizar la configuración", + "Path to packaged exiftool binary" : "Ruta al binario Exiftool empaquetado", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Necesitas Perl solo si el binario Exiftool empaquetado no funciona por alguna razón.", + "Use system perl (only if exiftool binary does not work)" : "Usar Perl del sistema (solo si el binario Exiftool no funciona)", + "EXIF Extraction" : "Extracción de Exif", + "You can configure the enabled Nextcloud preview providers below." : "Puedes configurar los proveedores de vista previa de Nextcloud activados a continuación.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Si estás utilizando Imaginary para la generación de vistas previas, puedes ignorar esta sección.", + "To enable RAW support, install the Camera RAW Previews app." : "Para habilitar el soporte RAW, instala la aplicación Camera RAW Previews.", + "Documentation." : "Documentación.", + "The following MIME types are configured for preview generation." : "Los siguientes tipos MIME están configurados para la generación de vistas previas.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamaño máximo de vista previa (compromiso entre calidad y requisitos de almacenamiento).", + "Max memory for preview generation (MB)" : "Memoria máxima para la generación de vistas previas (MB)", + "Max size of preview files (MB)" : "Tamaño máximo de archivos de vista previa (MB)", + "File Support" : "Soporte de Archivos", + "Images (JPEG, PNG, GIF, BMP)" : "Imágenes (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "External Link" : "Enlace Externo", + "{n} media files have been indexed" : "{n} archivos multimedia han sido indexados", + "Automatic Indexing status: {status}" : "Estado de la indexación automática: {status}", + "Last index job was run {t} seconds ago." : "La última tarea de indexación se ejecutó hace {t} segundos.", + "It took {t} seconds to complete." : "Tardó {t} segundos en completarse.", + "It is still running or was interrupted." : "Actualmente está en ejecución o fue interrumpida.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Solo se admite el cifrado del lado del servidor (OC_DEFAULT_MODULE), pero otro módulo de cifrado está habilitado.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Los índices EXIF se construyen y verifican en una tarea de fondo periódica. Ten cuidado al seleccionar algo distinto de la indexación automática. Por ejemplo, establecer la indexación solo para carpetas de la línea de tiempo puede causar retrasos antes de que los medios estén disponibles para los usuarios, ya que el usuario configura la línea de tiempo solo después de iniciar sesión.", + "Index all media automatically (recommended)" : "Indexar automáticamente todos los medios (recomendado)", + "Index per-user timeline folders (not recommended)" : "Indexar carpetas de la línea de tiempo por usuario (no recomendado)", + "Index a fixed relative path" : "Indexar una ruta relativa fija", + "Disable background indexing" : "Desactivar la indexación en segundo plano", + "Indexing path (relative, all users)" : "Ruta de indexación (relativa, todos los usuarios)", + "For advanced usage, perform a run of indexing by running:" : "Para un uso avanzado, realiza una ejecución de indexación ejecutando:", + "Run index in parallel with 4 threads:" : "Ejecutar la indexación en paralelo con 4 hilos:", + "Force re-indexing of all files:" : "Forzar la indexación de todos los archivos nuevamente:", + "You can limit indexing by user and/or folder:" : "Puedes limitar la indexación por usuario y/o carpeta:", + "Clear all existing index tables:" : "Eliminar todas las tablas de índices existentes:", + "Media Indexing" : "Indexación de Medios", + "HTTPS is enabled" : "HTTPS está habilitado", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Estás accediendo a esta página en un contexto inseguro. Varias API del navegador no están disponibles, lo que hará que Memories sea muy lento. Habilita HTTPS en tu servidor para mejorar el rendimiento.", + "HTTP/2 or HTTP/3 is enabled" : "Se ha habilitado HTTP/2 o HTTP/3", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Se recomienda encarecidamente HTTP/2 o HTTP/3 (detectado {httpVer})", + "Performance" : "Rendimiento", "Unknown" : "Desconocido", + "Database is populated with {n} geometries." : "La base de datos está poblada con {n} geometrías.", + "Geometry table has not been created." : "No se ha creado la tabla de geometrías.", + "Looks like the planet data is incomplete." : "Parece que los datos del planeta están incompletos.", + "Reverse geocoding has not been configured ({status})." : "No se ha configurado la geocodificación inversa ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories admite la geocodificación inversa sin conexión utilizando los datos de OpenStreetMaps en MySQL y Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Debes descargar los datos del planeta en tu base de datos. Esto es muy recomendable y tiene poco sobrecarga.", + "If the button below does not work for importing the planet data, use the following command:" : "Si el botón de abajo no funciona para importar los datos del planeta, usa el siguiente comando:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: los datos de geometría se almacenan en la tabla memories_planet_geometry, sin prefijo.", + "Download planet database" : "Descargar base de datos del planeta", + "Reverse Geocoding" : "Geocodificación Inversa", + "Geometry support was not detected in your database" : "No se detectó el soporte de geometría en tu base de datos", + "MySQL-like geometry support was detected " : "Se detectó el soporte de geometría similar a MySQL", + "Postgres native geometry support was detected" : "Se detectó el soporte de geometría nativo de Postgres", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Parece que la base de datos ya está configurada. ¿Seguro que quieres volver a descargar los datos del planeta?", + "You are about to download the planet database. This may take a while." : "Estás a punto de descargar la base de datos del planeta. Esto puede llevar un tiempo.", + "This may also cause all photos to be re-indexed!" : "¡Esto también puede hacer que se vuelvan a indexar todas las fotos!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "La transcodificación en vivo proporciona transmisión adaptable de videos utilizando HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Ten en cuenta que esto puede ser muy intensivo para la CPU sin aceleración de hardware, y la transcodificación no se utilizará para el almacenamiento externo.", + "Enable Transcoding" : "Habilitar la transcodificación", + "ffmpeg path" : "Ruta de ffmpeg", + "ffprobe path" : "Ruta de ffprobe", + "Global default video quality (user may override)" : "Calidad de video predeterminada global (el usuario puede anular)", + "Auto (adaptive transcode)" : "Auto (transcodificación adaptable)", + "Original (transcode with max quality)" : "Original (transcodificación con máxima calidad)", + "Direct (original video file without transcode)" : "Directa (archivo de video original sin transcodificación)", + "Video Streaming" : "Streaming de Video", + "You must first make sure the correct drivers are installed before configuring acceleration." : "Primero debes asegurarte de que los controladores correctos estén instalados antes de configurar la aceleración.", + "Make sure you test hardware acceleration with various options after enabling." : "Asegúrate de probar la aceleración de hardware con varias opciones después de habilitarla.", + "Do not enable multiple types of hardware acceleration simultaneously." : "No habilites varios tipos de aceleración de hardware simultáneamente.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Los procesadores Intel que admiten QuickSync Video (QSV), así como algunas GPU de AMD, se pueden utilizar para la transcodificación mediante la aceleración VA-API.", + "For more details on driver installation, check the documentation:" : "Para obtener más detalles sobre la instalación del controlador, consulta la documentación:", + "Enable acceleration with VA-API" : "Habilitar la aceleración con VA-API", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Las GPU de NVIDIA se pueden utilizar para la transcodificación utilizando el codificador NVENC con los controladores adecuados.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Según las versiones del SDK instalado y ffmpeg, debes especificar el escalador a utilizar", + "No automated tests are available for NVIDIA acceleration." : "No hay pruebas automatizadas disponibles para la aceleración de NVIDIA.", + "Enable acceleration with NVENC" : "Habilitar la aceleración con NVENC", + "Enable NVENC Temporal AQ" : "Habilitar AQ Temporal NVENC", + "NPP scaler" : "Escalador NPP", + "CUDA scaler" : "Escalador CUDA", + "VA-API device ({dev}) is readable" : "El dispositivo VA-API ({dev}) es legible", + "VA-API device ({dev}) not found" : "No se encontró el dispositivo VA-API ({dev})", + "VA-API device ({dev}) has incorrect permissions" : "El dispositivo VA-API ({dev}) tiene permisos incorrectos", + "VA-API device status: {status}" : "Estado del dispositivo VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories utiliza el transcodificador go-vod. Puedes ejecutar go-vod externamente (por ejemplo, en un contenedor Docker separado para la aceleración de hardware) o utilizar el transcodificador incorporado. Para utilizar un transcodificador externo, habilita la siguiente opción y sigue las instrucciones de la documentación:", + "Enable external transcoder (go-vod)" : "Habilitar transcodificador externo (go-vod)", + "Binary path (local only)" : "Ruta del binario (solo local)", + "Bind address (local only)" : "Dirección de enlace (solo local)", + "Connection address (same as bind if local)" : "Dirección de conexión (misma que enlace si es local)", + "Template" : "Plantilla", + "No items" : "No hay elementos", + "Shared by {user}" : "Compartido por {user}", + "Add people or groups who can edit your album" : "Agregar personas o grupos que puedan editar tu álbum", + "Search for collaborators" : "Buscar colaboradores", + "Search people or groups" : "Buscar personas o grupos", + "Add {collaboratorLabel} to the collaborators list" : "Agregar {etiquetaColaborador} a la lista de colaboradores", + "No collaborators available" : "No hay colaboradores disponibles", + "Remove {collaboratorLabel} from the collaborators list" : "Eliminar {etiquetaColaborador} de la lista de colaboradores", + "Copy the public link" : "Copiar el enlace público", + "Public link copied!" : "¡Enlace público copiado!", + "Copy public link" : "Copiar enlace público", + "Delete the public link" : "Eliminar el enlace público", + "Share via public link" : "Compartir mediante enlace público", + "Failed to fetch collaborators list." : "Error al obtener la lista de colaboradores.", "Public link" : "Liga pública", + "Failed to fetch album." : "Error al obtener el álbum.", + "Failed to update album." : "Error al actualizar el álbum.", + "Create new album" : "Crear nuevo álbum", + "Edit album details" : "Editar detalles del álbum", + "New album" : "Nuevo álbum", + "Could not load the selected album" : "No se pudo cargar el álbum seleccionado", + "Remove Album" : "Eliminar Álbum", + "Are you sure you want to permanently remove album \"{name}\"?" : "¿Seguro que deseas eliminar permanentemente el álbum \"{name}\"?", + "Failed to delete {name}." : "Error al eliminar {name}.", + "Name of the album" : "Nombre del álbum", + "Location of the album" : "Ubicación del álbum", + "Go back to the previous view." : "Volver a la vista anterior.", "Back" : "Atrás", + "Go to the add collaborators view." : "Ir a la vista de agregar colaboradores.", + "Add collaborators" : "Agregar colaboradores", + "Back to the new album form." : "Volver al formulario de nuevo álbum.", "Save" : "Guardar", + "Create album" : "Crear álbum", + "Invalid album name; should not contain any slashes." : "Nombre de álbum no válido; no debe contener barras inclinadas.", + "Search" : "Buscar", + "Share Album" : "Compartir Álbum", + "Save collaborators for this album." : "Guardar colaboradores para este álbum.", + "shared by {owner}" : "compartido por {owner}", + "_%n item_::_%n items_" : ["%n elemento","%n elementos","%n elementos"], + "Newest" : "Más recientes", + "Year" : "Año", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", "Hour" : "Hora", + "Minute" : "Minuto", + "Oldest" : "Más antiguos", + "Invalid Date" : "Fecha no válida", + "Newest date is older than oldest date" : "La fecha más reciente es anterior a la fecha más antigua", "Title" : "Título", "Description" : "Descripción", "Label" : "Etiqueta", + "Camera Make" : "Marca de la Cámara", + "Camera Model" : "Modelo de la Cámara", + "Lens Model" : "Modelo de Lente", "Copyright" : "Derechos de autor", "Empty" : "Vacío", + "Unchanged" : "Sin cambios", "Reset" : "Restablecer", + "Remove location" : "Eliminar ubicación", + "Search location / landmark" : "Buscar ubicación / hito", + "Failed to search for location with Nominatim." : "Error al buscar ubicación con Nominatim.", + "Date / Time" : "Fecha / Hora", + "Collaborative Tags" : "Etiquetas colaborativas", + "EXIF Fields" : "Campos EXIF", + "Geolocation" : "Geolocalización", + "Failed to load metadata for {n} photos." : "Error al cargar los metadatos de {n} fotos.", + "{n} photos cannot be edited (permissions error)." : "No se pueden editar {n} fotos (error de permisos).", + "Remove person" : "Eliminar persona", + "Are you sure you want to remove {name}?" : "¿Seguro que deseas eliminar {name}?", + "Only user \"{user}\" can delete this person" : "Solo el usuario \"{user}\" puede eliminar a esta persona", + "Rename person" : "Renombrar persona", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", + "Failed to rename {oldName} to {name}." : "Error al cambiar el nombre de {oldName} a {name}.", "Loading …" : "Loading …", + "Enter name of the new face" : "Ingresa el nombre de la nueva cara", + "Failed to create face" : "Error al crear la cara", + "Merge {name} with person" : "Fusionar {name} con persona", + "Too many failures, aborting" : "Demasiados fallos, abortando", + "Error while moving {basename}" : "Error al mover {basename}", + "Failed to move {name}." : "Error al mover {name}.", + "Move selected photos to person" : "Mover fotos seleccionadas a persona", + "Move the selected photos to {target}?" : "¿Mover las fotos seleccionadas a {target}?", + "An error occurred while moving photos from {name}." : "Ocurrió un error al mover las fotos de {name}.", + "Choose a folder" : "Elegir una carpeta", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} elemento movido a carpeta","{n} elementos movidos a carpeta","{n} elementos movidos a carpeta"], "Remove" : "Eliminar", + "Add Path" : "Añadir Ruta", + "Add a root to your timeline" : "Añadir una raíz a tu línea de tiempo", + "Link Sharing" : "Compartir enlaces", + "You cannot share the root folder" : "No puedes compartir la carpeta raíz", + "Public link shares are available to people outside Nextcloud." : "Las comparticiones de enlaces públicos están disponibles para personas fuera de Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "Puedes crear o actualizar permisos en los enlaces públicos usando la barra lateral.", + "Click a link to copy to clipboard." : "Haz clic en un enlace para copiarlo al portapapeles.", "Share link" : "Compartir liga", + "Create Link" : "Crear Enlace", "Refresh" : "Actualizar", "Password protected" : "Protegido con contraseña", "Expires" : "Expira", + "Editable" : "Editable", "Read only" : "Sólo lectura", + "Link copied to clipboard" : "Enlace copiado al portapapeles", + "Share File" : "Compartir Archivo", + "Reduced Size" : "Tamaño Reducido", + "Share a lower resolution image preview" : "Compartir una vista previa de imagen de menor resolución", + "High Resolution" : "Alta Resolución", + "Share the video as a high quality MOV" : "Compartir el video como un archivo MOV de alta calidad", + "Share the image as a high quality JPEG" : "Compartir la imagen como un archivo JPEG de alta calidad", + "Original File" : "Archivo Original", + "Share the original image / video file" : "Compartir la imagen / video original", + "Public Link" : "Enlace Público", + "Share an external Nextcloud link" : "Compartir un enlace externo de Nextcloud", + "Failed to download file" : "Error al descargar el archivo", + "Cannot share this type of data" : "No se puede compartir este tipo de datos", "Sort by date" : "Ordenar por fecha", "Sort by name" : "Ordenar por nombre", + "Share album" : "Compartir álbum", + "Download album" : "Descargar álbum", + "Nothing to show here" : "Nada que mostrar aquí", + "Unassigned faces" : "Rostros sin asignar", + "Merge with different person" : "Fusionar con otra persona", + "Mark person in preview" : "Marcar persona en la vista previa", + "Folder View" : "Vista de Carpeta", + "Timeline View" : "Vista de Línea de Tiempo", + "Share folder" : "Compartir carpeta", + "Move left" : "Mover a la izquierda", + "Move right" : "Mover a la derecha", + "Image saved successfully" : "Imagen guardada exitosamente", + "Error saving image" : "Error al guardar la imagen", "Unsaved changes" : "Cambios no guardados", + "Drop changes" : "Descartar cambios", "Share" : "Compartir", + "Play Live Photo" : "Reproducir Foto en Vivo", + "Download Video" : "Descargar Video", + "Slideshow" : "Presentación de Diapositivas", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", + "Editing is currently disabled for Live Photos" : "La edición está deshabilitada actualmente para las Fotos en Vivo", + "Are you sure you want to delete?" : "¿Estás seguro de que quieres eliminarlo?", + "Failed to delete photo" : "Error al eliminar la foto", + "{name} binary exists and is executable." : "{name} el binario existe y es ejecutable.", + "{name} binary not found." : "No se encontró el binario {name}.", + "{name} binary is not executable." : "El binario {name} no es ejecutable.", + "{name} failed test: {info}." : "{name} prueba fallida: {info}.", + "{name} binary exists and is usable ({info})." : "{name} el binario existe y es utilizable ({info}).", + "{name} binary status: {status}." : "Estado del binario {name}: {status}.", + "Save as" : "Guardar como", + "All changes will be lost." : "Se perderán todos los cambios.", + "Are you sure you want to continue?" : "¿Estás seguro de que deseas continuar?", "Undo" : "Deshacer", + "Redo" : "Rehacer", + "Show original image" : "Mostrar imagen original", + "Zoom in" : "Acerca", + "Zoom out" : "Alejar", + "Toggle zoom menu" : "Alternar menú de zoom", + "Adjust" : "Ajustar", + "Fine-tune" : "Ajuste fino", + "Filters" : "Filtros", + "Watermark" : "Marca de agua", + "Draw" : "Dibujar", + "Resize" : "Redimensionar", + "Invalid image." : "Imagen no válida.", + "Error while uploading the image." : "Error al cargar la imagen.", + "are not images" : "no son imágenes", + "is not an image" : "no es una imagen", + "to be uploaded" : "para subir", + "Crop" : "Recortar", + "Original" : "Original", "Custom" : "Personalizado", + "Square" : "Cuadrado", + "Landscape" : "Paisaje", + "Portrait" : "Retrato", + "Ellipse" : "Elipse", + "Classic TV" : "TV clásica", + "CinemaScope" : "CinemaScope", + "Arrow" : "Flecha", + "Blur" : "Desenfoque", + "Brightness" : "Brillo", + "Contrast" : "Contraste", + "Un-flip X" : "Desvirar X", + "Flip X" : "Voltear X", + "Un-flip Y" : "Desvirar Y", + "Flip Y" : "Voltear Y", + "HSV" : "HSV", + "Hue" : "Tono", + "Saturation" : "Saturación", "Value" : "Valor", + "Image" : "Imagen", + "Importing …" : "Importando ...", + "+ Add image" : "+ Agregar imagen", + "Line" : "Línea", + "Pen" : "Lápiz", + "Polygon" : "Polígono", + "Sides" : "Lados", + "Rectangle" : "Rectángulo", + "Corner Radius" : "Radio de esquina", + "Width in pixels" : "Ancho en píxeles", + "Height in pixels" : "Alto en píxeles", + "Toggle ratio lock" : "Alternar bloqueo de relación", + "Reset to original image size" : "Restablecer al tamaño original de la imagen", + "Rotate" : "Rotar", "Text" : "Texto", + "Text spacing" : "Espaciado de texto", + "Text alignment" : "Alineación de texto", + "Font family" : "Familia de fuentes", "Size" : "Tamaño", - "Position" : "Posición" + "Letter spacing" : "Espaciado entre letras", + "Line height" : "Altura de línea", + "Warmth" : "Calidez", + "+ Add watermark" : "+ Agregar marca de agua", + "Choose watermark type" : "Elegir tipo de marca de agua", + "Upload watermark" : "Subir marca de agua", + "Add as text" : "Agregar como texto", + "Padding" : "Padding", + "Shadow" : "Sombra", + "Horizontal" : "Horizontal", + "Vertical" : "Vertical", + "Opacity" : "Opacidad", + "Position" : "Posición", + "Stroke" : "Trazo", + "Save image as" : "Guardar imagen como", + "Extension" : "Extensión", + "Name is required." : "Se requiere el nombre.", + "Quality" : "Calidad", + "Saved image size (width x height)" : "Tamaño de imagen guardada (ancho x alto)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Ten en cuenta que el área de recorte seleccionada es menor que el redimensionamiento aplicado, lo que puede causar una disminución en la calidad", + "Actual size (100%)" : "Tamaño real (100%)", + "Fit size" : "Ajustar tamaño", + "Transcoding failed, check Nextcloud logs." : "La transcodificación falló, verifica los registros de Nextcloud.", + "Direct" : "Directa", + "Auto" : "Automático", + "Shared Folder" : "Carpeta Compartida", + "Shared Album" : "Álbum Compartido", + "Failed to create {albumName}." : "Error al crear {nombreÁlbum}.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "Error al cambiar el nombre de {nombreÁlbumActual} a {nombreÁlbumNuevo}.", + "General Failure" : "Falla General", + "Error: {msg}" : "Error: {msg}", + "Failed to delete {fileName}." : "Error al eliminar {nombreArchivo}.", + "Failed to move files." : "Error al mover archivos.", + "Could not move {fileName}, target exists." : "No se pudo mover {fileName}, el destino ya existe.", + "Failed to move {fileName}." : "Error al mover {fileName}.", + "Failed to download files" : "Error al descargar archivos", + "Failed to favorite files." : "Error al marcar archivos como favoritos.", + "Failed to favorite some files." : "Error al marcar algunos archivos como favoritos.", + "Failed to favorite {fileName}." : "Error al marcar {fileName} como favorito.", + "Memories has been updated to {version}. Reload to get the new version." : "Memories ha sido actualizado a {version}. Recarga para obtener la nueva versión.", + "Upload some photos and make sure the timeline path is configured" : "Sube algunas fotos y asegúrate de que la ruta de la línea de tiempo esté configurada", + "Mark photos as favorite to find them easily" : "Marca las fotos como favoritas para encontrarlas fácilmente", + "Memories from past years will appear here" : "Aquí aparecerán los recuerdos de años anteriores", + "You will find your friends soon. Please be patient" : "Encontrarás a tus amigos pronto. Por favor, ten paciencia", + "Face Recognition is disabled. Enable in settings to find your friends" : "El Reconocimiento Facial está desactivado. Actívalo en la configuración para encontrar a tus amigos", + "Your videos will appear here" : "Aquí aparecerán tus videos", + "No photos in this album yet" : "Aún no hay fotos en este álbum", + "Create an album to get started" : "Crea un álbum para empezar", + "Archive photos you don't want to see in your timeline" : "Archiva las fotos que no desees ver en tu línea de tiempo", + "Tag photos to find them easily" : "Etiqueta las fotos para encontrarlas fácilmente", + "Recognize is still working on your photos" : "Reconoce todavía está trabajando en tus fotos", + "Places you have been to will appear here" : "Aquí aparecerán los lugares que has visitado" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/es_EC.json b/l10n/es_EC.json index 6ffb892c..de481081 100644 --- a/l10n/es_EC.json +++ b/l10n/es_EC.json @@ -1,58 +1,435 @@ { "translations": { + "Download" : "Descargar", + "Memories" : "Memorias", + "Fast, modern and advanced photo management suite" : "Fast, modern and advanced photo management suite", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories: Gestión de Fotos para Nextcloud\n \n Memories es una solución de gestión de fotos para Nextcloud que incluye una amplia gama de características avanzadas, que incluyen:\n \n - **📸 Línea de tiempo**: Ordena fotos y videos por fecha de captura, extraída de los datos Exif.\n - **⏪ Retroceder**: Salta instantáneamente a cualquier momento del pasado y revive tus recuerdos.\n - **🤖 Etiquetado de IA**: Agrupa fotos por personas y objetos, potenciado por [recognize](https://github.com/nextcloud/recognize) y [facerecognition](https://github.com/matiasdelellis/facerecognition).\n - **🖼️ Álbumes**: Crea álbumes para agrupar fotos y videos juntos. Luego comparte estos álbumes con otros.\n - **🫱🏻‍🫲🏻 Compartir Externo**: Comparte fotos y videos con personas fuera de tu instancia de Nextcloud.\n - **📱 Soporte Móvil**: Trabaja desde cualquier dispositivo, de cualquier forma y tamaño a través de la aplicación web.\n - **✏️ Editar Metadatos**: Edita rápidamente fechas y otros metadatos de las fotos de forma individual o masiva.\n - **📦 Archivo**: Almacena fotos que no deseas ver en tu línea de tiempo en una carpeta separada.\n - **📹 Transcodificación de Video**: Transcodifica videos y utiliza HLS para obtener un rendimiento máximo.\n - **🗺️ Mapa**: Visualiza tus fotos en un mapa, etiquetadas con una geocodificación inversa precisa.\n - **📦 Migración**: Migra fácilmente desde Nextcloud Photos y Google Takeout.\n - **⚡️ Rendimiento**: Realiza todas estas operaciones de manera muy rápida.\n \n ## 🚀 Instalación\n \n 1. Instala la aplicación desde la tienda de aplicaciones de Nextcloud (prueba una demo [aquí](https://demo.memories.gallery/apps/memories/)).\n 2. Realiza los pasos de [configuración recomendados](https://memories.gallery/config/).\n 3. Ejecuta `php occ memories:index` para generar índices de metadatos para las fotos existentes.\n 4. Abre la aplicación 📷 Memories en Nextcloud y establece el directorio que contiene tus fotos.", "Settings" : "Ajustes", + "People (Recognize)" : "Personas (Recognize)", + "People" : "Personas", + "People (Face Recognition)" : "Personas (Reconocimiento Facial)", "Info" : "Info", + "Timeline" : "Línea de tiempo", "Folders" : "Carpetas", "Favorites" : "Favoritos", "Videos" : "Videos", + "Albums" : "Álbumes", "Archive" : "Archivar", + "On this day" : "En este día", + "Places" : "Lugares", + "Map" : "Mapa", "Tags" : "Etiquetas", + "View all" : "Ver todo", + "Recognize" : "Reconocer", + "Face Recognition" : "Reconocimiento Facial", + "A better photos experience awaits you" : "Una experiencia de fotos mejor te espera", + "Choose the root folder of your timeline to begin" : "Elige la carpeta raíz de tu línea de tiempo para comenzar", + "Continue to Memories" : "Continuar a Memories", + "Choose again" : "Elegir de nuevo", + "Click here to start" : "Haz clic aquí para empezar", + "You can always change this later in settings" : "Siempre puedes cambiar esto luego en la configuración", + "If you just installed Memories, visit the admin panel first." : "Si acabas de instalar Memories, visita primero el panel de administración.", + "Choose the root of your timeline" : "Elegir la raíz de tu línea de tiempo", + "The selected folder does not seem to be valid. Try again." : "La carpeta seleccionada parece no ser válida. Inténtalo de nuevo.", + "No photos were found in the selected folder." : "No se encontraron fotos en la carpeta seleccionada.", + "This can happen because your media is still indexing." : "Esto puede suceder porque tus medios aún se están indexando.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visita el panel de administración para asegurarte de que Memories esté configurado correctamente.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Encontrado {n} elemento en {path}","Encontrados {n} elementos en {path}","Encontrados {n} elementos en {path}"], + "Metadata" : "Metadatos", "Edit" : "Editar", + "No coordinates" : "Sin coordenadas", + "Click edit to set location" : "Haz clic en editar para establecer la ubicación", "Photos" : "Fotos", "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", + "Remove from album" : "Eliminar del álbum", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", + "Edit metadata" : "Editar metadatos", "View in folder" : "Ver en la carpeta", + "Move to folder" : "Mover a carpeta", + "Add to album" : "Agregar al álbum", + "Move to person" : "Mover a persona", + "Remove from person" : "Eliminar de persona", + "Continue" : "Continuar", + "Failed to delete files" : "Error al eliminar archivos", + "Move" : "Mover", + "You must enable \"Mark person in preview\" to use this feature" : "Debes habilitar \"Marcar persona en la vista previa\" para usar esta función", + "Only user \"{user}\" can update this person" : "Solo el usuario \"{user}\" puede actualizar esta persona", + "_{n} selected_::_{n} selected_" : ["{n} seleccionado","{n} seleccionados","{n} seleccionado"], + "Memories Settings" : "Configuración de Memories", "General" : "General", + "Timeline Path" : "Ruta de la Línea de Tiempo", + "Square grid mode" : "Modo de cuadrícula cuadrada", + "Show past photos on top of timeline" : "Mostrar fotos pasadas en la parte superior de la línea de tiempo", + "Viewer" : "Visor", + "Load full size image on zoom" : "Cargar imagen de tamaño completo al hacer zoom", + "Always load full size image (not recommended)" : "Cargar siempre imágenes de tamaño completo (no recomendado)", + "Account" : "Cuenta", + "Logged in as {user}" : "Sesión iniciada como {user}", + "Sign out" : "Cerrar sesión", + "Device Folders" : "Carpetas de Dispositivos", + "Local folders to include in the timeline view" : "Carpetas locales para incluir en la vista de la línea de tiempo", + "Folders Path" : "Ruta de Carpetas", + "Show hidden folders" : "Mostrar carpetas ocultas", + "Sort folders oldest-first" : "Ordenar carpetas desde la más antigua", + "Sort albums oldest-first" : "Ordenar álbumes desde el más antiguo", + "Choose Timeline Paths" : "Elegir Rutas de la Línea de Tiempo", + "Choose the root for the folders view" : "Elegir la raíz para la vista de carpetas", + "Are you sure you want to log out {user}?" : "¿Estás seguro de que quieres cerrar la sesión de {user}?", "Close" : "Cerrar", + "{photoCount} photos" : "{photoCount} fotos", + "Failed to load some photos" : "Error al cargar algunas fotos", + "Failed to update setting" : "Error al actualizar la configuración", + "Path to packaged exiftool binary" : "Ruta al binario Exiftool empaquetado", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Necesitas Perl solo si el binario Exiftool empaquetado no funciona por alguna razón.", + "Use system perl (only if exiftool binary does not work)" : "Usar Perl del sistema (solo si el binario Exiftool no funciona)", + "EXIF Extraction" : "Extracción de Exif", + "You can configure the enabled Nextcloud preview providers below." : "Puedes configurar los proveedores de vista previa de Nextcloud activados a continuación.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Si estás utilizando Imaginary para la generación de vistas previas, puedes ignorar esta sección.", + "To enable RAW support, install the Camera RAW Previews app." : "Para habilitar el soporte RAW, instala la aplicación Camera RAW Previews.", + "Documentation." : "Documentación.", + "The following MIME types are configured for preview generation." : "Los siguientes tipos MIME están configurados para la generación de vistas previas.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamaño máximo de vista previa (compromiso entre calidad y requisitos de almacenamiento).", + "Max memory for preview generation (MB)" : "Memoria máxima para la generación de vistas previas (MB)", + "Max size of preview files (MB)" : "Tamaño máximo de archivos de vista previa (MB)", + "File Support" : "Soporte de Archivos", + "Images (JPEG, PNG, GIF, BMP)" : "Imágenes (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "External Link" : "Enlace Externo", + "{n} media files have been indexed" : "{n} archivos multimedia han sido indexados", + "Automatic Indexing status: {status}" : "Estado de la indexación automática: {status}", + "Last index job was run {t} seconds ago." : "La última tarea de indexación se ejecutó hace {t} segundos.", + "It took {t} seconds to complete." : "Tardó {t} segundos en completarse.", + "It is still running or was interrupted." : "Actualmente está en ejecución o fue interrumpida.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Solo se admite el cifrado del lado del servidor (OC_DEFAULT_MODULE), pero otro módulo de cifrado está habilitado.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Los índices EXIF se construyen y verifican en una tarea de fondo periódica. Ten cuidado al seleccionar algo distinto de la indexación automática. Por ejemplo, establecer la indexación solo para carpetas de la línea de tiempo puede causar retrasos antes de que los medios estén disponibles para los usuarios, ya que el usuario configura la línea de tiempo solo después de iniciar sesión.", + "Index all media automatically (recommended)" : "Indexar automáticamente todos los medios (recomendado)", + "Index per-user timeline folders (not recommended)" : "Indexar carpetas de la línea de tiempo por usuario (no recomendado)", + "Index a fixed relative path" : "Indexar una ruta relativa fija", + "Disable background indexing" : "Desactivar la indexación en segundo plano", + "Indexing path (relative, all users)" : "Ruta de indexación (relativa, todos los usuarios)", + "For advanced usage, perform a run of indexing by running:" : "Para un uso avanzado, realiza una ejecución de indexación ejecutando:", + "Run index in parallel with 4 threads:" : "Ejecutar la indexación en paralelo con 4 hilos:", + "Force re-indexing of all files:" : "Forzar la indexación de todos los archivos nuevamente:", + "You can limit indexing by user and/or folder:" : "Puedes limitar la indexación por usuario y/o carpeta:", + "Clear all existing index tables:" : "Eliminar todas las tablas de índices existentes:", + "Media Indexing" : "Indexación de Medios", + "HTTPS is enabled" : "HTTPS está habilitado", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Estás accediendo a esta página en un contexto inseguro. Varias API del navegador no están disponibles, lo que hará que Memories sea muy lento. Habilita HTTPS en tu servidor para mejorar el rendimiento.", + "HTTP/2 or HTTP/3 is enabled" : "Se ha habilitado HTTP/2 o HTTP/3", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Se recomienda encarecidamente HTTP/2 o HTTP/3 (detectado {httpVer})", + "Performance" : "Rendimiento", "Unknown" : "Desconocido", + "Database is populated with {n} geometries." : "La base de datos está poblada con {n} geometrías.", + "Geometry table has not been created." : "No se ha creado la tabla de geometrías.", + "Looks like the planet data is incomplete." : "Parece que los datos del planeta están incompletos.", + "Reverse geocoding has not been configured ({status})." : "No se ha configurado la geocodificación inversa ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories admite la geocodificación inversa sin conexión utilizando los datos de OpenStreetMaps en MySQL y Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Debes descargar los datos del planeta en tu base de datos. Esto es muy recomendable y tiene poco sobrecarga.", + "If the button below does not work for importing the planet data, use the following command:" : "Si el botón de abajo no funciona para importar los datos del planeta, usa el siguiente comando:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: los datos de geometría se almacenan en la tabla memories_planet_geometry, sin prefijo.", + "Download planet database" : "Descargar base de datos del planeta", + "Reverse Geocoding" : "Geocodificación Inversa", + "Geometry support was not detected in your database" : "No se detectó el soporte de geometría en tu base de datos", + "MySQL-like geometry support was detected " : "Se detectó el soporte de geometría similar a MySQL", + "Postgres native geometry support was detected" : "Se detectó el soporte de geometría nativo de Postgres", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Parece que la base de datos ya está configurada. ¿Seguro que quieres volver a descargar los datos del planeta?", + "You are about to download the planet database. This may take a while." : "Estás a punto de descargar la base de datos del planeta. Esto puede llevar un tiempo.", + "This may also cause all photos to be re-indexed!" : "¡Esto también puede hacer que se vuelvan a indexar todas las fotos!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "La transcodificación en vivo proporciona transmisión adaptable de videos utilizando HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Ten en cuenta que esto puede ser muy intensivo para la CPU sin aceleración de hardware, y la transcodificación no se utilizará para el almacenamiento externo.", + "Enable Transcoding" : "Habilitar la transcodificación", + "ffmpeg path" : "Ruta de ffmpeg", + "ffprobe path" : "Ruta de ffprobe", + "Global default video quality (user may override)" : "Calidad de video predeterminada global (el usuario puede anular)", + "Auto (adaptive transcode)" : "Auto (transcodificación adaptable)", + "Original (transcode with max quality)" : "Original (transcodificación con máxima calidad)", + "Direct (original video file without transcode)" : "Directa (archivo de video original sin transcodificación)", + "Video Streaming" : "Streaming de Video", + "You must first make sure the correct drivers are installed before configuring acceleration." : "Primero debes asegurarte de que los controladores correctos estén instalados antes de configurar la aceleración.", + "Make sure you test hardware acceleration with various options after enabling." : "Asegúrate de probar la aceleración de hardware con varias opciones después de habilitarla.", + "Do not enable multiple types of hardware acceleration simultaneously." : "No habilites varios tipos de aceleración de hardware simultáneamente.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Los procesadores Intel que admiten QuickSync Video (QSV), así como algunas GPU de AMD, se pueden utilizar para la transcodificación mediante la aceleración VA-API.", + "For more details on driver installation, check the documentation:" : "Para obtener más detalles sobre la instalación del controlador, consulta la documentación:", + "Enable acceleration with VA-API" : "Habilitar la aceleración con VA-API", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Las GPU de NVIDIA se pueden utilizar para la transcodificación utilizando el codificador NVENC con los controladores adecuados.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Según las versiones del SDK instalado y ffmpeg, debes especificar el escalador a utilizar", + "No automated tests are available for NVIDIA acceleration." : "No hay pruebas automatizadas disponibles para la aceleración de NVIDIA.", + "Enable acceleration with NVENC" : "Habilitar la aceleración con NVENC", + "Enable NVENC Temporal AQ" : "Habilitar AQ Temporal NVENC", + "NPP scaler" : "Escalador NPP", + "CUDA scaler" : "Escalador CUDA", + "VA-API device ({dev}) is readable" : "El dispositivo VA-API ({dev}) es legible", + "VA-API device ({dev}) not found" : "No se encontró el dispositivo VA-API ({dev})", + "VA-API device ({dev}) has incorrect permissions" : "El dispositivo VA-API ({dev}) tiene permisos incorrectos", + "VA-API device status: {status}" : "Estado del dispositivo VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories utiliza el transcodificador go-vod. Puedes ejecutar go-vod externamente (por ejemplo, en un contenedor Docker separado para la aceleración de hardware) o utilizar el transcodificador incorporado. Para utilizar un transcodificador externo, habilita la siguiente opción y sigue las instrucciones de la documentación:", + "Enable external transcoder (go-vod)" : "Habilitar transcodificador externo (go-vod)", + "Binary path (local only)" : "Ruta del binario (solo local)", + "Bind address (local only)" : "Dirección de enlace (solo local)", + "Connection address (same as bind if local)" : "Dirección de conexión (misma que enlace si es local)", + "Template" : "Plantilla", + "No items" : "No hay elementos", + "Shared by {user}" : "Compartido por {user}", + "Add people or groups who can edit your album" : "Agregar personas o grupos que puedan editar tu álbum", + "Search for collaborators" : "Buscar colaboradores", + "Search people or groups" : "Buscar personas o grupos", + "Add {collaboratorLabel} to the collaborators list" : "Agregar {etiquetaColaborador} a la lista de colaboradores", + "No collaborators available" : "No hay colaboradores disponibles", + "Remove {collaboratorLabel} from the collaborators list" : "Eliminar {etiquetaColaborador} de la lista de colaboradores", + "Copy the public link" : "Copiar el enlace público", + "Public link copied!" : "¡Enlace público copiado!", + "Copy public link" : "Copiar enlace público", + "Delete the public link" : "Eliminar el enlace público", + "Share via public link" : "Compartir mediante enlace público", + "Failed to fetch collaborators list." : "Error al obtener la lista de colaboradores.", "Public link" : "Liga pública", + "Failed to fetch album." : "Error al obtener el álbum.", + "Failed to update album." : "Error al actualizar el álbum.", + "Create new album" : "Crear nuevo álbum", + "Edit album details" : "Editar detalles del álbum", + "New album" : "Nuevo álbum", + "Could not load the selected album" : "No se pudo cargar el álbum seleccionado", + "Remove Album" : "Eliminar Álbum", + "Are you sure you want to permanently remove album \"{name}\"?" : "¿Seguro que deseas eliminar permanentemente el álbum \"{name}\"?", + "Failed to delete {name}." : "Error al eliminar {name}.", + "Name of the album" : "Nombre del álbum", + "Location of the album" : "Ubicación del álbum", + "Go back to the previous view." : "Volver a la vista anterior.", "Back" : "Atrás", + "Go to the add collaborators view." : "Ir a la vista de agregar colaboradores.", + "Add collaborators" : "Agregar colaboradores", + "Back to the new album form." : "Volver al formulario de nuevo álbum.", "Save" : "Guardar", + "Create album" : "Crear álbum", + "Invalid album name; should not contain any slashes." : "Nombre de álbum no válido; no debe contener barras inclinadas.", + "Search" : "Buscar", + "Share Album" : "Compartir Álbum", + "Save collaborators for this album." : "Guardar colaboradores para este álbum.", + "shared by {owner}" : "compartido por {owner}", + "_%n item_::_%n items_" : ["%n elemento","%n elementos","%n elementos"], + "Newest" : "Más recientes", + "Year" : "Año", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", "Hour" : "Hora", + "Minute" : "Minuto", + "Oldest" : "Más antiguos", + "Invalid Date" : "Fecha no válida", + "Newest date is older than oldest date" : "La fecha más reciente es anterior a la fecha más antigua", "Title" : "Título", "Description" : "Descripción", "Label" : "Etiqueta", + "Camera Make" : "Marca de la Cámara", + "Camera Model" : "Modelo de la Cámara", + "Lens Model" : "Modelo de Lente", "Copyright" : "Derechos de autor", "Empty" : "Vacío", + "Unchanged" : "Sin cambios", "Reset" : "Restablecer", + "Remove location" : "Eliminar ubicación", + "Search location / landmark" : "Buscar ubicación / hito", + "Failed to search for location with Nominatim." : "Error al buscar ubicación con Nominatim.", + "Date / Time" : "Fecha / Hora", + "Collaborative Tags" : "Etiquetas colaborativas", + "EXIF Fields" : "Campos EXIF", + "Geolocation" : "Geolocalización", + "Failed to load metadata for {n} photos." : "Error al cargar los metadatos de {n} fotos.", + "{n} photos cannot be edited (permissions error)." : "No se pueden editar {n} fotos (error de permisos).", + "Remove person" : "Eliminar persona", + "Are you sure you want to remove {name}?" : "¿Seguro que deseas eliminar {name}?", + "Only user \"{user}\" can delete this person" : "Solo el usuario \"{user}\" puede eliminar a esta persona", + "Rename person" : "Renombrar persona", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", + "Failed to rename {oldName} to {name}." : "Error al cambiar el nombre de {oldName} a {name}.", "Loading …" : "Loading …", + "Enter name of the new face" : "Ingresa el nombre de la nueva cara", + "Failed to create face" : "Error al crear la cara", + "Merge {name} with person" : "Fusionar {name} con persona", + "Too many failures, aborting" : "Demasiados fallos, abortando", + "Error while moving {basename}" : "Error al mover {basename}", + "Failed to move {name}." : "Error al mover {name}.", + "Move selected photos to person" : "Mover fotos seleccionadas a persona", + "Move the selected photos to {target}?" : "¿Mover las fotos seleccionadas a {target}?", + "An error occurred while moving photos from {name}." : "Ocurrió un error al mover las fotos de {name}.", + "Choose a folder" : "Elegir una carpeta", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} elemento movido a carpeta","{n} elementos movidos a carpeta","{n} elementos movidos a carpeta"], "Remove" : "Eliminar", + "Add Path" : "Añadir Ruta", + "Add a root to your timeline" : "Añadir una raíz a tu línea de tiempo", + "Link Sharing" : "Compartir enlaces", + "You cannot share the root folder" : "No puedes compartir la carpeta raíz", + "Public link shares are available to people outside Nextcloud." : "Las comparticiones de enlaces públicos están disponibles para personas fuera de Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "Puedes crear o actualizar permisos en los enlaces públicos usando la barra lateral.", + "Click a link to copy to clipboard." : "Haz clic en un enlace para copiarlo al portapapeles.", "Share link" : "Compartir liga", + "Create Link" : "Crear Enlace", "Refresh" : "Actualizar", "Password protected" : "Protegido con contraseña", "Expires" : "Expira", + "Editable" : "Editable", "Read only" : "Sólo lectura", + "Link copied to clipboard" : "Enlace copiado al portapapeles", + "Share File" : "Compartir Archivo", + "Reduced Size" : "Tamaño Reducido", + "Share a lower resolution image preview" : "Compartir una vista previa de imagen de menor resolución", + "High Resolution" : "Alta Resolución", + "Share the video as a high quality MOV" : "Compartir el video como un archivo MOV de alta calidad", + "Share the image as a high quality JPEG" : "Compartir la imagen como un archivo JPEG de alta calidad", + "Original File" : "Archivo Original", + "Share the original image / video file" : "Compartir la imagen / video original", + "Public Link" : "Enlace Público", + "Share an external Nextcloud link" : "Compartir un enlace externo de Nextcloud", + "Failed to download file" : "Error al descargar el archivo", + "Cannot share this type of data" : "No se puede compartir este tipo de datos", "Sort by date" : "Ordenar por fecha", "Sort by name" : "Ordenar por nombre", + "Share album" : "Compartir álbum", + "Download album" : "Descargar álbum", + "Nothing to show here" : "Nada que mostrar aquí", + "Unassigned faces" : "Rostros sin asignar", + "Merge with different person" : "Fusionar con otra persona", + "Mark person in preview" : "Marcar persona en la vista previa", + "Folder View" : "Vista de Carpeta", + "Timeline View" : "Vista de Línea de Tiempo", + "Share folder" : "Compartir carpeta", + "Move left" : "Mover a la izquierda", + "Move right" : "Mover a la derecha", + "Image saved successfully" : "Imagen guardada exitosamente", + "Error saving image" : "Error al guardar la imagen", "Unsaved changes" : "Cambios no guardados", + "Drop changes" : "Descartar cambios", "Share" : "Compartir", + "Play Live Photo" : "Reproducir Foto en Vivo", + "Download Video" : "Descargar Video", + "Slideshow" : "Presentación de Diapositivas", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", + "Editing is currently disabled for Live Photos" : "La edición está deshabilitada actualmente para las Fotos en Vivo", + "Are you sure you want to delete?" : "¿Estás seguro de que quieres eliminarlo?", + "Failed to delete photo" : "Error al eliminar la foto", + "{name} binary exists and is executable." : "{name} el binario existe y es ejecutable.", + "{name} binary not found." : "No se encontró el binario {name}.", + "{name} binary is not executable." : "El binario {name} no es ejecutable.", + "{name} failed test: {info}." : "{name} prueba fallida: {info}.", + "{name} binary exists and is usable ({info})." : "{name} el binario existe y es utilizable ({info}).", + "{name} binary status: {status}." : "Estado del binario {name}: {status}.", + "Save as" : "Guardar como", + "All changes will be lost." : "Se perderán todos los cambios.", + "Are you sure you want to continue?" : "¿Estás seguro de que deseas continuar?", "Undo" : "Deshacer", + "Redo" : "Rehacer", + "Show original image" : "Mostrar imagen original", + "Zoom in" : "Acerca", + "Zoom out" : "Alejar", + "Toggle zoom menu" : "Alternar menú de zoom", + "Adjust" : "Ajustar", + "Fine-tune" : "Ajuste fino", + "Filters" : "Filtros", + "Watermark" : "Marca de agua", + "Draw" : "Dibujar", + "Resize" : "Redimensionar", + "Invalid image." : "Imagen no válida.", + "Error while uploading the image." : "Error al cargar la imagen.", + "are not images" : "no son imágenes", + "is not an image" : "no es una imagen", + "to be uploaded" : "para subir", + "Crop" : "Recortar", + "Original" : "Original", "Custom" : "Personalizado", + "Square" : "Cuadrado", + "Landscape" : "Paisaje", + "Portrait" : "Retrato", + "Ellipse" : "Elipse", + "Classic TV" : "TV clásica", + "CinemaScope" : "CinemaScope", + "Arrow" : "Flecha", + "Blur" : "Desenfoque", + "Brightness" : "Brillo", + "Contrast" : "Contraste", + "Un-flip X" : "Desvirar X", + "Flip X" : "Voltear X", + "Un-flip Y" : "Desvirar Y", + "Flip Y" : "Voltear Y", + "HSV" : "HSV", + "Hue" : "Tono", + "Saturation" : "Saturación", "Value" : "Valor", + "Image" : "Imagen", + "Importing …" : "Importando ...", + "+ Add image" : "+ Agregar imagen", + "Line" : "Línea", + "Pen" : "Lápiz", + "Polygon" : "Polígono", + "Sides" : "Lados", + "Rectangle" : "Rectángulo", + "Corner Radius" : "Radio de esquina", + "Width in pixels" : "Ancho en píxeles", + "Height in pixels" : "Alto en píxeles", + "Toggle ratio lock" : "Alternar bloqueo de relación", + "Reset to original image size" : "Restablecer al tamaño original de la imagen", + "Rotate" : "Rotar", "Text" : "Texto", + "Text spacing" : "Espaciado de texto", + "Text alignment" : "Alineación de texto", + "Font family" : "Familia de fuentes", "Size" : "Tamaño", - "Position" : "Posición" + "Letter spacing" : "Espaciado entre letras", + "Line height" : "Altura de línea", + "Warmth" : "Calidez", + "+ Add watermark" : "+ Agregar marca de agua", + "Choose watermark type" : "Elegir tipo de marca de agua", + "Upload watermark" : "Subir marca de agua", + "Add as text" : "Agregar como texto", + "Padding" : "Padding", + "Shadow" : "Sombra", + "Horizontal" : "Horizontal", + "Vertical" : "Vertical", + "Opacity" : "Opacidad", + "Position" : "Posición", + "Stroke" : "Trazo", + "Save image as" : "Guardar imagen como", + "Extension" : "Extensión", + "Name is required." : "Se requiere el nombre.", + "Quality" : "Calidad", + "Saved image size (width x height)" : "Tamaño de imagen guardada (ancho x alto)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Ten en cuenta que el área de recorte seleccionada es menor que el redimensionamiento aplicado, lo que puede causar una disminución en la calidad", + "Actual size (100%)" : "Tamaño real (100%)", + "Fit size" : "Ajustar tamaño", + "Transcoding failed, check Nextcloud logs." : "La transcodificación falló, verifica los registros de Nextcloud.", + "Direct" : "Directa", + "Auto" : "Automático", + "Shared Folder" : "Carpeta Compartida", + "Shared Album" : "Álbum Compartido", + "Failed to create {albumName}." : "Error al crear {nombreÁlbum}.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "Error al cambiar el nombre de {nombreÁlbumActual} a {nombreÁlbumNuevo}.", + "General Failure" : "Falla General", + "Error: {msg}" : "Error: {msg}", + "Failed to delete {fileName}." : "Error al eliminar {nombreArchivo}.", + "Failed to move files." : "Error al mover archivos.", + "Could not move {fileName}, target exists." : "No se pudo mover {fileName}, el destino ya existe.", + "Failed to move {fileName}." : "Error al mover {fileName}.", + "Failed to download files" : "Error al descargar archivos", + "Failed to favorite files." : "Error al marcar archivos como favoritos.", + "Failed to favorite some files." : "Error al marcar algunos archivos como favoritos.", + "Failed to favorite {fileName}." : "Error al marcar {fileName} como favorito.", + "Memories has been updated to {version}. Reload to get the new version." : "Memories ha sido actualizado a {version}. Recarga para obtener la nueva versión.", + "Upload some photos and make sure the timeline path is configured" : "Sube algunas fotos y asegúrate de que la ruta de la línea de tiempo esté configurada", + "Mark photos as favorite to find them easily" : "Marca las fotos como favoritas para encontrarlas fácilmente", + "Memories from past years will appear here" : "Aquí aparecerán los recuerdos de años anteriores", + "You will find your friends soon. Please be patient" : "Encontrarás a tus amigos pronto. Por favor, ten paciencia", + "Face Recognition is disabled. Enable in settings to find your friends" : "El Reconocimiento Facial está desactivado. Actívalo en la configuración para encontrar a tus amigos", + "Your videos will appear here" : "Aquí aparecerán tus videos", + "No photos in this album yet" : "Aún no hay fotos en este álbum", + "Create an album to get started" : "Crea un álbum para empezar", + "Archive photos you don't want to see in your timeline" : "Archiva las fotos que no desees ver en tu línea de tiempo", + "Tag photos to find them easily" : "Etiqueta las fotos para encontrarlas fácilmente", + "Recognize is still working on your photos" : "Reconoce todavía está trabajando en tus fotos", + "Places you have been to will appear here" : "Aquí aparecerán los lugares que has visitado" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/es_GT.js b/l10n/es_GT.js index 42386832..b9f74833 100644 --- a/l10n/es_GT.js +++ b/l10n/es_GT.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,16 +14,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -35,7 +39,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -48,7 +51,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_GT.json b/l10n/es_GT.json index fda87c21..2b93f210 100644 --- a/l10n/es_GT.json +++ b/l10n/es_GT.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,16 +12,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +37,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -46,7 +49,6 @@ "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_HN.js b/l10n/es_HN.js index 5714c802..aaeef20d 100644 --- a/l10n/es_HN.js +++ b/l10n/es_HN.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,16 +14,20 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -35,7 +40,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -48,7 +52,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_HN.json b/l10n/es_HN.json index e1880cb2..ad4b1d24 100644 --- a/l10n/es_HN.json +++ b/l10n/es_HN.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,16 +12,20 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +38,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -46,7 +50,6 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_MX.js b/l10n/es_MX.js index 41cecc5e..a0f85e41 100644 --- a/l10n/es_MX.js +++ b/l10n/es_MX.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Memories" : "Recuerdos", "Settings" : "Ajustes", "Info" : "Info", @@ -15,17 +16,20 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Descargar", "Favorite" : "Marcar como favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Copy public link" : "Copiar enlace público", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -38,7 +42,6 @@ OC.L10N.register( "Reset" : "Reiniciar", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -51,7 +54,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Redo" : "Rehacer", "Custom" : "Personalizado", diff --git a/l10n/es_MX.json b/l10n/es_MX.json index a4988600..e67eeb59 100644 --- a/l10n/es_MX.json +++ b/l10n/es_MX.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Memories" : "Recuerdos", "Settings" : "Ajustes", "Info" : "Info", @@ -13,17 +14,20 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Descargar", "Favorite" : "Marcar como favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Copy public link" : "Copiar enlace público", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -36,7 +40,6 @@ "Reset" : "Reiniciar", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -49,7 +52,6 @@ "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Redo" : "Rehacer", "Custom" : "Personalizado", diff --git a/l10n/es_NI.js b/l10n/es_NI.js index 5696f15d..255e6e6c 100644 --- a/l10n/es_NI.js +++ b/l10n/es_NI.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -12,15 +13,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +38,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -46,7 +50,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_NI.json b/l10n/es_NI.json index 161d6f34..77dd18e4 100644 --- a/l10n/es_NI.json +++ b/l10n/es_NI.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -10,15 +11,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -31,7 +36,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -44,7 +48,6 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PA.js b/l10n/es_PA.js index b180f1cb..af65acb8 100644 --- a/l10n/es_PA.js +++ b/l10n/es_PA.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,15 +14,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -34,7 +39,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -47,7 +51,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PA.json b/l10n/es_PA.json index 707b18a8..06f2113f 100644 --- a/l10n/es_PA.json +++ b/l10n/es_PA.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,15 +12,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -32,7 +37,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -45,7 +49,6 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PE.js b/l10n/es_PE.js index defe451f..b1a4bcee 100644 --- a/l10n/es_PE.js +++ b/l10n/es_PE.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Ajustes", "Info" : "Info", "Folders" : "Carpetas", @@ -13,15 +14,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -34,7 +39,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -47,7 +51,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PE.json b/l10n/es_PE.json index 0da9571d..bfefffb5 100644 --- a/l10n/es_PE.json +++ b/l10n/es_PE.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Ajustes", "Info" : "Info", "Folders" : "Carpetas", @@ -11,15 +12,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -32,7 +37,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -45,7 +49,6 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PR.js b/l10n/es_PR.js index 5696f15d..af4d7fd7 100644 --- a/l10n/es_PR.js +++ b/l10n/es_PR.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -12,15 +13,18 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +37,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -46,7 +49,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PR.json b/l10n/es_PR.json index 161d6f34..fef60303 100644 --- a/l10n/es_PR.json +++ b/l10n/es_PR.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -10,15 +11,18 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -31,7 +35,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -44,7 +47,6 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PY.js b/l10n/es_PY.js index 1799debc..c77941f9 100644 --- a/l10n/es_PY.js +++ b/l10n/es_PY.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,14 +14,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Viewer" : "Visor", + "Account" : "Cuenta", "Close" : "Cerrar", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +39,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -46,7 +51,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_PY.json b/l10n/es_PY.json index 2abe0073..edf4b66c 100644 --- a/l10n/es_PY.json +++ b/l10n/es_PY.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,14 +12,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Viewer" : "Visor", + "Account" : "Cuenta", "Close" : "Cerrar", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", + "Save changes" : "Guardar cambios", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -31,7 +37,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -44,7 +49,6 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_SV.js b/l10n/es_SV.js index 03258eb1..5a5c52fd 100644 --- a/l10n/es_SV.js +++ b/l10n/es_SV.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,16 +14,19 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -35,7 +39,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -48,7 +51,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_SV.json b/l10n/es_SV.json index 4ce68b65..4cbdc24d 100644 --- a/l10n/es_SV.json +++ b/l10n/es_SV.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,16 +12,19 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Public link" : "Liga pública", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -33,7 +37,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -46,7 +49,6 @@ "Share" : "Compartir", "Previous" : "Previo", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_UY.js b/l10n/es_UY.js index b180f1cb..f242c741 100644 --- a/l10n/es_UY.js +++ b/l10n/es_UY.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -13,15 +14,18 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -34,7 +38,6 @@ OC.L10N.register( "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -47,7 +50,6 @@ OC.L10N.register( "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/es_UY.json b/l10n/es_UY.json index 707b18a8..72d8580f 100644 --- a/l10n/es_UY.json +++ b/l10n/es_UY.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descargar", "Settings" : "Configuraciones ", "Info" : "Info", "Folders" : "Carpetas", @@ -11,15 +12,18 @@ "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Download" : "Descargar", "Favorite" : "Hacer favorito", "Unarchive" : "Desarchivar", "View in folder" : "Ver en la carpeta", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "General", + "Account" : "Cuenta", "Close" : "Cerrar", "Unknown" : "Desconocido", "Back" : "Atrás", "Save" : "Guardar", + "Search" : "Buscar", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", @@ -32,7 +36,6 @@ "Reset" : "Restablecer", "Name" : "Nombre", "Update" : "Actualizar", - "Search" : "Buscar", "Remove" : "Eliminar", "Share link" : "Compartir liga", "Refresh" : "Actualizar", @@ -45,7 +48,6 @@ "Share" : "Compartir", "Previous" : "Anterior", "Next" : "Siguiente", - "Continue" : "Continuar", "Undo" : "Deshacer", "Custom" : "Personalizado", "Value" : "Valor", diff --git a/l10n/et_EE.js b/l10n/et_EE.js index 7684a238..b3762041 100644 --- a/l10n/et_EE.js +++ b/l10n/et_EE.js @@ -1,28 +1,63 @@ OC.L10N.register( "memories", { + "Download" : "Lae alla", "Settings" : "Seaded", + "People" : "Inimese", "Info" : "Info", "Folders" : "Kaustad", "Favorites" : "Lemmikud", "Videos" : "Videod", + "Albums" : "Albumid", "Archive" : "Arhiiv", + "On this day" : "Sel päeval", + "Places" : "Kohad", + "Map" : "Kaart", "Tags" : "Sildid", "Edit" : "Redigeeri", "Photos" : "Fotod", "Explore" : "Sirvi", "Cancel" : "Loobu", "Delete" : "Kustuta", - "Download" : "Lae alla", "Favorite" : "Lemmik", "View in folder" : "Vaata kaustas", + "Add to album" : "Lisa albumisse", + "Continue" : "Jätka", + "Move" : "Liiguta", "General" : "Üldine", + "Account" : "Konto", + "Sign out" : "Logi välja", "Close" : "Sulge", "Unknown" : "Teadmata", + "Add people or groups who can edit your album" : "Lisa inimesi ja gruppe, kes võivad su albumit muuta", + "Search for collaborators" : "Otsi kaastöölisi", + "Search people or groups" : "Otsi inimesi või gruppe", + "Add {collaboratorLabel} to the collaborators list" : "Lisa {collaboratorLabel} kaastööliste hulka", + "No collaborators available" : "Kaastöölisi pole", + "Remove {collaboratorLabel} from the collaborators list" : "Eemalda {collaboratorLabel} kaastööliste hulgast", + "Copy the public link" : "Kopeeri avalik link", + "Public link copied!" : "Avalik link kopeeritud!", "Copy public link" : "Kopeeri avalik link", + "Delete the public link" : "Kustuta avalik link", + "Share via public link" : "Jaga avaliku lingi kaudu", + "Failed to fetch collaborators list." : "Kaastööliste loendi laadimine ebaõnnestus.", "Public link" : "Avalik link", + "Failed to fetch album." : "Albumi laadimine ebaõnnestus.", + "Failed to update album." : "Albumi muutmine ebaõnnestus.", + "Create new album" : "Loo uus album", + "Edit album details" : "Muuda albumi üksikasju", + "New album" : "Uus album", + "Name of the album" : "Albumi nimi", + "Location of the album" : "Albumi asukoht", + "Go back to the previous view." : "Mine tagasi eelmisesse vaatesse.", "Back" : "Tagasi", + "Go to the add collaborators view." : "Mine kaastööliste lisamise vaatesse.", + "Add collaborators" : "Lisa kaastööliseid", + "Back to the new album form." : "Tagasi uue albumi vormile.", "Save" : "Salvesta", + "Create album" : "Loo album", + "Search" : "Otsi", + "Save collaborators for this album." : "Salvesta selle albumi kaastöölised.", "Month" : "Kuu", "Day" : "Päev", "Time" : "Aeg", @@ -33,9 +68,10 @@ OC.L10N.register( "Copyright" : "Autoriõigused", "Empty" : "Tühi", "Reset" : "Lähtesta", + "Remove person" : "Eemalda isik", + "Rename person" : "Nimeta isik ümber", "Name" : "Nimi", "Update" : "Uuenda", - "Search" : "Otsi", "Remove" : "Eemalda", "Share link" : "Jaga link", "Refresh" : "Värskenda", @@ -44,14 +80,17 @@ OC.L10N.register( "Read only" : "kirjutuskaitstud", "Sort by date" : "Sorteeri kuupäeva järgi", "Sort by name" : "Sorteeri nime järgi", + "Unassigned faces" : "Määramata näod", + "Merge with different person" : "Ühenda teise isikuga", "Unsaved changes" : "Salvestamata muutused", "Share" : "Jaga", "Previous" : "Eelmine", "Next" : "Järgmine", - "Continue" : "Jätka", "Undo" : "Tühista", "Custom" : "Kohandatud", "Size" : "Suurus", - "Position" : "Asukoht" + "Position" : "Asukoht", + "Failed to create {albumName}." : "Albumi {albumName} loomine ebaõnnestus.", + "Failed to delete {fileName}." : "{fileName} kustutamine ebaõnnestus." }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/et_EE.json b/l10n/et_EE.json index 1f52f87b..5b25b4c5 100644 --- a/l10n/et_EE.json +++ b/l10n/et_EE.json @@ -1,26 +1,61 @@ { "translations": { + "Download" : "Lae alla", "Settings" : "Seaded", + "People" : "Inimese", "Info" : "Info", "Folders" : "Kaustad", "Favorites" : "Lemmikud", "Videos" : "Videod", + "Albums" : "Albumid", "Archive" : "Arhiiv", + "On this day" : "Sel päeval", + "Places" : "Kohad", + "Map" : "Kaart", "Tags" : "Sildid", "Edit" : "Redigeeri", "Photos" : "Fotod", "Explore" : "Sirvi", "Cancel" : "Loobu", "Delete" : "Kustuta", - "Download" : "Lae alla", "Favorite" : "Lemmik", "View in folder" : "Vaata kaustas", + "Add to album" : "Lisa albumisse", + "Continue" : "Jätka", + "Move" : "Liiguta", "General" : "Üldine", + "Account" : "Konto", + "Sign out" : "Logi välja", "Close" : "Sulge", "Unknown" : "Teadmata", + "Add people or groups who can edit your album" : "Lisa inimesi ja gruppe, kes võivad su albumit muuta", + "Search for collaborators" : "Otsi kaastöölisi", + "Search people or groups" : "Otsi inimesi või gruppe", + "Add {collaboratorLabel} to the collaborators list" : "Lisa {collaboratorLabel} kaastööliste hulka", + "No collaborators available" : "Kaastöölisi pole", + "Remove {collaboratorLabel} from the collaborators list" : "Eemalda {collaboratorLabel} kaastööliste hulgast", + "Copy the public link" : "Kopeeri avalik link", + "Public link copied!" : "Avalik link kopeeritud!", "Copy public link" : "Kopeeri avalik link", + "Delete the public link" : "Kustuta avalik link", + "Share via public link" : "Jaga avaliku lingi kaudu", + "Failed to fetch collaborators list." : "Kaastööliste loendi laadimine ebaõnnestus.", "Public link" : "Avalik link", + "Failed to fetch album." : "Albumi laadimine ebaõnnestus.", + "Failed to update album." : "Albumi muutmine ebaõnnestus.", + "Create new album" : "Loo uus album", + "Edit album details" : "Muuda albumi üksikasju", + "New album" : "Uus album", + "Name of the album" : "Albumi nimi", + "Location of the album" : "Albumi asukoht", + "Go back to the previous view." : "Mine tagasi eelmisesse vaatesse.", "Back" : "Tagasi", + "Go to the add collaborators view." : "Mine kaastööliste lisamise vaatesse.", + "Add collaborators" : "Lisa kaastööliseid", + "Back to the new album form." : "Tagasi uue albumi vormile.", "Save" : "Salvesta", + "Create album" : "Loo album", + "Search" : "Otsi", + "Save collaborators for this album." : "Salvesta selle albumi kaastöölised.", "Month" : "Kuu", "Day" : "Päev", "Time" : "Aeg", @@ -31,9 +66,10 @@ "Copyright" : "Autoriõigused", "Empty" : "Tühi", "Reset" : "Lähtesta", + "Remove person" : "Eemalda isik", + "Rename person" : "Nimeta isik ümber", "Name" : "Nimi", "Update" : "Uuenda", - "Search" : "Otsi", "Remove" : "Eemalda", "Share link" : "Jaga link", "Refresh" : "Värskenda", @@ -42,14 +78,17 @@ "Read only" : "kirjutuskaitstud", "Sort by date" : "Sorteeri kuupäeva järgi", "Sort by name" : "Sorteeri nime järgi", + "Unassigned faces" : "Määramata näod", + "Merge with different person" : "Ühenda teise isikuga", "Unsaved changes" : "Salvestamata muutused", "Share" : "Jaga", "Previous" : "Eelmine", "Next" : "Järgmine", - "Continue" : "Jätka", "Undo" : "Tühista", "Custom" : "Kohandatud", "Size" : "Suurus", - "Position" : "Asukoht" + "Position" : "Asukoht", + "Failed to create {albumName}." : "Albumi {albumName} loomine ebaõnnestus.", + "Failed to delete {fileName}." : "{fileName} kustutamine ebaõnnestus." },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/eu.js b/l10n/eu.js index 47f0b33e..9cb34dca 100644 --- a/l10n/eu.js +++ b/l10n/eu.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Deskargatu", "Memories" : "Memoriak", "Fast, modern and advanced photo management suite" : "Argazkiak kudeatzeko suite azkarra, modernoa eta aurreratua", "Settings" : "Ezarpenak", @@ -21,7 +22,6 @@ OC.L10N.register( "Recognize" : "Recognize", "A better photos experience awaits you" : "Argazki esperientzia hobea prest", "Choose the root folder of your timeline to begin" : "Aukeratu zure denbora-lerroaren erroko karpeta hasteko", - "If you just installed Memories, run:" : "Memories instalatu berri baduzu, exekutatu:", "Continue to Memories" : "Jarraitu Memories-era", "Choose again" : "Aukeratu berriro", "Click here to start" : "Egin klik hemen hasteko", @@ -29,9 +29,8 @@ OC.L10N.register( "Choose the root of your timeline" : "Aukeratu zure denbora-lerroaren erroa", "The selected folder does not seem to be valid. Try again." : "Aukeratutako karpetak ez dirudi baliozkoa denik. Saiatu berriro.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} elementu aurkitu dira {path}-n","{n} elementu aurkitu dira {path}-n"], + "Metadata" : "Metadatuak", "Edit" : "Aldatu", - "No title" : "Izenbururik ez", - "No description" : "Deskribapenik ez", "No coordinates" : "Koordenaturik ez", "Click edit to set location" : "Egin klik editatu kokapena ezartzeko", "Photos" : "Argazkiak", @@ -39,7 +38,6 @@ OC.L10N.register( "Cancel" : "Utzi", "Delete" : "Ezabatu", "Remove from album" : "Kendu albumetik", - "Download" : "Deskargatu", "Favorite" : "Egin gogoko", "Unarchive" : "Ez artxibatu", "Edit metadata" : "Editatu metadatuak", @@ -48,17 +46,18 @@ OC.L10N.register( "Add to album" : "Gehitu albumera", "Move to person" : "Mugitu pertsonara", "Remove from person" : "Kendu pertsonatik", - "You are about to download a large number of files. Are you sure?" : "Fitxategi asko deskargatuko dituzu. Ziur zaude?", - "You are about to delete a large number of files. Are you sure?" : "Fitxategi asko ezabatuko dituzu. Ziur zaude?", - "You are about to touch a large number of files. Are you sure?" : "Fitxategi asko ukituko dituzu. Ziur zaude?", + "Continue" : "Jarraitu", + "Move" : "Mugitu", "_{n} selected_::_{n} selected_" : ["{n} hautatuta","{n} hautatuta"], "Memories Settings" : "Memories-en ezarpenak", "General" : "Orokorra", "Timeline Path" : "Denbora-lerroa", "Square grid mode" : "Sare karratu modua", "Show past photos on top of timeline" : "Erakutsi iraganeko argazkiak denbora-lerroaren gainean", + "Viewer" : "Ikustailea", "Load full size image on zoom" : "Kargatu tamaina osoko irudia zoom-en", "Always load full size image (not recommended)" : "Kargatu beti tamaina osoko irudia (ez da gomendagarria)", + "Account" : "Kontua", "Folders Path" : "Karpeten bide-izena", "Show hidden folders" : "Erakutsi ezkutuko karpetak", "Sort folders oldest-first" : "Ordenatu karpetak zaharrenetik berrienera", @@ -69,9 +68,9 @@ OC.L10N.register( "{photoCount} photos" : "{photoCount} argazkiak", "Failed to load some photos" : "Argazki batzuk kargatzeak huts egin du", "Failed to update setting" : "Ezarpen eguneratzeak huts egin du", - "EXIF Extraction" : "EXIF-en erauzketa", "Path to packaged exiftool binary" : "Paketatutako exiftool bitarrerako bide-izena", - "Media Indexing" : "Multimedia indexatzen", + "EXIF Extraction" : "EXIF-en erauzketa", + "External Link" : "Kanpoko esteka", "{n} media files have been indexed" : "{n} multimedia fitxategi indexatu dira", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "(OC_DEFAULT_MODULE) zerbitzariaren aldeko enkriptatzea bakarrik onartzen da, baina beste enkriptatze modulu bat gaituta dago.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF indizeak atzeko planoan aldizkako zeregin batean eraiki eta egiaztatzen dira. Kontuz ibili indexatze automatikoa ez den beste ezer hautatzen duzunean. Adibidez, indexatzea denbora-lerroaren karpetetan soilik ezartzeak atzerapenak eragin ditzake multimedia erabiltzaileentzat eskuragarri egon aurretik, erabiltzaileak saioa hasi ondoren soilik konfiguratzen baitu denbora-lerroa.", @@ -84,22 +83,20 @@ OC.L10N.register( "Force re-indexing of all files:" : "Behartu fitxategi guztiak berriro indexatzea:", "You can limit indexing by user and/or folder:" : "Erabiltzaile eta/edo karpetaren arabera indexatzea muga dezakezu:", "Clear all existing index tables:" : "Garbitu lehendik dauden indize-taula guztiak:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Honako MIME mota hauek aurrebista zuzen sortzeko konfiguratuta daude. Dokumentazio gehiago:", - "External Link" : "Kanpoko esteka", - "Performance" : "Errendimendua", + "Media Indexing" : "Multimedia indexatzen", "HTTPS is enabled" : "HTTPS gaituta dago", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 edo HTTP/3 gaituta dago", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 edo HTTP/3 oso gomendagarria da ({httpVer} hauteman da)", + "Performance" : "Errendimendua", "Unknown" : "Ezezaguna", - "Reverse Geocoding" : "Alderantzizko geokodetzea", "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories-ek lineaz kanpoko alderantzizko geokodetzea onartzen du MySQL eta Postgres-en OpenStreetMaps datuak erabiliz.", "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Planetaren datuak zure datu-basera deskargatu behar dituzu. Oso gomendagarria da eta kostu txikia du.", "If the button below does not work for importing the planet data, use the following command:" : "Beheko botoiak planetaren datuak inportatzeko balio ez badu, erabili komando hau:", "Download planet database" : "Deskargatu planeten datu-basea", + "Reverse Geocoding" : "Alderantzizko geokodetzea", "Geometry support was not detected in your database" : "Ez da geometria euskarririk detektatu zure datu-basean", "MySQL-like geometry support was detected " : "MySQL antzeko geometria euskarria detektatu da", "Postgres native geometry support was detected" : "Postgres jatorrizko geometria euskarria detektatu da", - "Video Streaming" : "Bideo-streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Zuzeneko transkodetzeak HLS erabiliz bideoen streaming moldagarria eskaintzen du.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Kontuan izan hardware-azeleraziorik gabe CPU oso intentsiboa izan daitekeela eta transkodetzea ez dela erabiliko kanpoko biltegiratzeko.", "Enable Transcoding" : "Gaitu transkodetzea", @@ -109,14 +106,13 @@ OC.L10N.register( "Auto (adaptive transcode)" : "(transkode egokitzaile) automatikoa", "Original (transcode with max quality)" : "Jatorrizkoa (kalitate maximodun transkodea)", "Direct (original video file without transcode)" : "Zuzena (jatorrizko bideo fitxategia transkoderik gabe)", - "Hardware Acceleration" : "Hardware azelerazioa", + "Video Streaming" : "Bideo-streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "Azelerazioa konfiguratu aurretik kontrolatzaile egokiak instalatuta daudela ziurtatu.", "Make sure you test hardware acceleration with various options after enabling." : "Ziurtatu hardware azelerazioa gaitu ondoren probatu duzula hainbat aukerarekin.", "Do not enable multiple types of hardware acceleration simultaneously." : "Ez gaitu hainbat hardware azelerazio mota aldi berean.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "QuickSync Video (QSV) eta AMD GPU batzuk onartzen dituzten Intel prozesadoreak transkodetzeko erabil daitezke VA-API azelerazioa erabiliz.", "For more details on driver installation, check the documentation:" : "Kontrolatzailearen instalazioari buruzko xehetasun gehiago lortzeko, kontsultatu dokumentazioa:", "Enable acceleration with VA-API" : "Gaitu VA-API bidezko azelerazioa", - "Enable low-power mode (QSV)" : "Gaitu energia baxuko modua (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPUak NVENC kodetzailea erabiliz transkodetzeko erabil daitezke kontrolatzaile egokiekin.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Instalatutako SDK eta ffmpeg bertsioen arabera, erabili beharreko eskalatzailea zehaztu.", "No automated tests are available for NVIDIA acceleration." : "Ez dago proba automatikorik erabilgarri NVIDIA azeleraziorako.", @@ -128,13 +124,14 @@ OC.L10N.register( "VA-API device ({dev}) not found" : "VA-API gailua ({dev}) ez da aurkitu", "VA-API device ({dev}) has incorrect permissions" : "VA-API gailuak ({dev}) okerreko baimenak ditu", "VA-API device status: {status}" : "VA-API gailuaren egoera: {status}", - "Transcoder configuration" : "Transkodetzailearen konfigurazioa", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories-ek go-vod transkodetzailea erabiltzen du. Go-vod exekutatu dezakezu (adibidez, Docker edukiontzi bereizi batean hardware azeleraziorako) edo integratutako transkodetzailea erabil dezakezu. Kanpoko transkodetzaile bat erabiltzeko, gaitu aukera hau eta jarraitu dokumentazioko argibideak:", "Enable external transcoder (go-vod)" : "Gaitu kanpoko transkodetzailea (go-vod)", "Binary path (local only)" : "Bide-izen bitarra (lokala soilik)", "Bind address (local only)" : "Lotu helbidea (lokala soilik)", "Connection address (same as bind if local)" : "Konexio helbidea (berdina lotura lokala bada)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} elementu gehitu dira albumean","{n} elementu gehitu dira albumean"], + "Template" : "Txantiloia", + "No items" : "Elementurik ez", + "Shared by {user}" : "{user}(e)k partekatua", "Add people or groups who can edit your album" : "Gehitu zure albuma editatu dezaketen pertsona edo taldeak", "Search for collaborators" : "Bilatu kolaboratzaileak", "Search people or groups" : "Bilatu erabiltzaile edo taldeak", @@ -166,12 +163,12 @@ OC.L10N.register( "Save" : "Gorde", "Create album" : "Sortu albuma", "Invalid album name; should not contain any slashes." : "Albumaren izen baliogabea; ez luke barrarik eduki behar.", - "Add selection to album {albumName}" : "Gehitu hautapena {albumName} albumera", - "Create a new album." : "Sortu album berria.", - "_%n item_::_%n items_" : ["elementu %n","%n elementu"], - "_Share with %n user_::_Share with %n users_" : ["Partekatu erabiltzaile %nekin","Partekatu %n erabiltzaileekin"], + "Search" : "Bilatu", + "Save changes" : "Gorde aldaketak", "Share Album" : "Partekatu albuma", "Save collaborators for this album." : "Gorde album honen kolaboratzaileak.", + "shared by {owner}" : "{owner}(e)k partekatuta", + "_%n item_::_%n items_" : ["elementu %n","%n elementu"], "Newest" : "Berrienak", "Year" : "Urtea", "Month" : "Hilabetea", @@ -207,10 +204,8 @@ OC.L10N.register( "Name" : "Izena", "Update" : "Eguneratu", "Failed to rename {oldName} to {name}." : "{oldName} {name}(e)ra aldatzeak huts egin du.", - "Search" : "Bilatu", "Loading …" : "Kargatzen …", "Merge {name} with person" : "Batu {izena} pertsonarekin", - "Are you sure you want to merge {name} with {newName}?" : "Ziur {name} eta {newName} batu nahi dituzula?", "Too many failures, aborting" : "Hutsegite gehiegi, abortatzen", "Error while moving {basename}" : "Errorea {basename} mugitzen", "Failed to move {name}." : "{name} mugitzeak huts egin du.", @@ -249,8 +244,8 @@ OC.L10N.register( "Sort by name" : "Ordenatu izenaren arabera", "Share album" : "Partekatu albuma", "Download album" : "Deskargatu albuma", - "Delete album" : "Ezabatu albuma", "Nothing to show here" : "Hemen ez dago ezer erakusteko", + "Unassigned faces" : "Esleitu gabeko aurpegiak", "Merge with different person" : "Bateratu beste pertsona batekin", "Mark person in preview" : "Markatu pertsona aurreikuspenean", "Folder View" : "Karpeten ikuspegia", @@ -264,7 +259,6 @@ OC.L10N.register( "Drop changes" : "Jaregin aldaketak", "Share" : "Partekatu", "Play Live Photo" : "Erreproduzitu zuzeneko argazkia", - "Sidebar" : "Alboko barra", "Download Video" : "Deskargatu bideoa", "Slideshow" : "Diapositiba-aurkezpena", "Previous" : "Aurrekoa", @@ -274,7 +268,6 @@ OC.L10N.register( "Save as" : "Gorde honela", "All changes will be lost." : "Aldaketa guztiak galduko dira.", "Are you sure you want to continue?" : "Ziur zaude jarraitu nahi duzula?", - "Continue" : "Jarraitu", "Undo" : "Desegin", "Redo" : "Berregin", "Show original image" : "Erakutsi jatorrizko irudia", @@ -383,6 +376,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Etiketatu argazkiak modu errazean aurkitzeko", "Recognize is still working on your photos" : "Hautematea zure argazkietan lanean ari da oraindik", "Places you have been to will appear here" : "Hemen egon zaren tokiak agertuko dira", - "Your Timeline" : "Zure denbora-lerroa" + "Yes" : "Bai", + "No" : "Ez" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/eu.json b/l10n/eu.json index 47d3626f..1a3a2207 100644 --- a/l10n/eu.json +++ b/l10n/eu.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Deskargatu", "Memories" : "Memoriak", "Fast, modern and advanced photo management suite" : "Argazkiak kudeatzeko suite azkarra, modernoa eta aurreratua", "Settings" : "Ezarpenak", @@ -19,7 +20,6 @@ "Recognize" : "Recognize", "A better photos experience awaits you" : "Argazki esperientzia hobea prest", "Choose the root folder of your timeline to begin" : "Aukeratu zure denbora-lerroaren erroko karpeta hasteko", - "If you just installed Memories, run:" : "Memories instalatu berri baduzu, exekutatu:", "Continue to Memories" : "Jarraitu Memories-era", "Choose again" : "Aukeratu berriro", "Click here to start" : "Egin klik hemen hasteko", @@ -27,9 +27,8 @@ "Choose the root of your timeline" : "Aukeratu zure denbora-lerroaren erroa", "The selected folder does not seem to be valid. Try again." : "Aukeratutako karpetak ez dirudi baliozkoa denik. Saiatu berriro.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} elementu aurkitu dira {path}-n","{n} elementu aurkitu dira {path}-n"], + "Metadata" : "Metadatuak", "Edit" : "Aldatu", - "No title" : "Izenbururik ez", - "No description" : "Deskribapenik ez", "No coordinates" : "Koordenaturik ez", "Click edit to set location" : "Egin klik editatu kokapena ezartzeko", "Photos" : "Argazkiak", @@ -37,7 +36,6 @@ "Cancel" : "Utzi", "Delete" : "Ezabatu", "Remove from album" : "Kendu albumetik", - "Download" : "Deskargatu", "Favorite" : "Egin gogoko", "Unarchive" : "Ez artxibatu", "Edit metadata" : "Editatu metadatuak", @@ -46,17 +44,18 @@ "Add to album" : "Gehitu albumera", "Move to person" : "Mugitu pertsonara", "Remove from person" : "Kendu pertsonatik", - "You are about to download a large number of files. Are you sure?" : "Fitxategi asko deskargatuko dituzu. Ziur zaude?", - "You are about to delete a large number of files. Are you sure?" : "Fitxategi asko ezabatuko dituzu. Ziur zaude?", - "You are about to touch a large number of files. Are you sure?" : "Fitxategi asko ukituko dituzu. Ziur zaude?", + "Continue" : "Jarraitu", + "Move" : "Mugitu", "_{n} selected_::_{n} selected_" : ["{n} hautatuta","{n} hautatuta"], "Memories Settings" : "Memories-en ezarpenak", "General" : "Orokorra", "Timeline Path" : "Denbora-lerroa", "Square grid mode" : "Sare karratu modua", "Show past photos on top of timeline" : "Erakutsi iraganeko argazkiak denbora-lerroaren gainean", + "Viewer" : "Ikustailea", "Load full size image on zoom" : "Kargatu tamaina osoko irudia zoom-en", "Always load full size image (not recommended)" : "Kargatu beti tamaina osoko irudia (ez da gomendagarria)", + "Account" : "Kontua", "Folders Path" : "Karpeten bide-izena", "Show hidden folders" : "Erakutsi ezkutuko karpetak", "Sort folders oldest-first" : "Ordenatu karpetak zaharrenetik berrienera", @@ -67,9 +66,9 @@ "{photoCount} photos" : "{photoCount} argazkiak", "Failed to load some photos" : "Argazki batzuk kargatzeak huts egin du", "Failed to update setting" : "Ezarpen eguneratzeak huts egin du", - "EXIF Extraction" : "EXIF-en erauzketa", "Path to packaged exiftool binary" : "Paketatutako exiftool bitarrerako bide-izena", - "Media Indexing" : "Multimedia indexatzen", + "EXIF Extraction" : "EXIF-en erauzketa", + "External Link" : "Kanpoko esteka", "{n} media files have been indexed" : "{n} multimedia fitxategi indexatu dira", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "(OC_DEFAULT_MODULE) zerbitzariaren aldeko enkriptatzea bakarrik onartzen da, baina beste enkriptatze modulu bat gaituta dago.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF indizeak atzeko planoan aldizkako zeregin batean eraiki eta egiaztatzen dira. Kontuz ibili indexatze automatikoa ez den beste ezer hautatzen duzunean. Adibidez, indexatzea denbora-lerroaren karpetetan soilik ezartzeak atzerapenak eragin ditzake multimedia erabiltzaileentzat eskuragarri egon aurretik, erabiltzaileak saioa hasi ondoren soilik konfiguratzen baitu denbora-lerroa.", @@ -82,22 +81,20 @@ "Force re-indexing of all files:" : "Behartu fitxategi guztiak berriro indexatzea:", "You can limit indexing by user and/or folder:" : "Erabiltzaile eta/edo karpetaren arabera indexatzea muga dezakezu:", "Clear all existing index tables:" : "Garbitu lehendik dauden indize-taula guztiak:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Honako MIME mota hauek aurrebista zuzen sortzeko konfiguratuta daude. Dokumentazio gehiago:", - "External Link" : "Kanpoko esteka", - "Performance" : "Errendimendua", + "Media Indexing" : "Multimedia indexatzen", "HTTPS is enabled" : "HTTPS gaituta dago", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 edo HTTP/3 gaituta dago", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 edo HTTP/3 oso gomendagarria da ({httpVer} hauteman da)", + "Performance" : "Errendimendua", "Unknown" : "Ezezaguna", - "Reverse Geocoding" : "Alderantzizko geokodetzea", "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories-ek lineaz kanpoko alderantzizko geokodetzea onartzen du MySQL eta Postgres-en OpenStreetMaps datuak erabiliz.", "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Planetaren datuak zure datu-basera deskargatu behar dituzu. Oso gomendagarria da eta kostu txikia du.", "If the button below does not work for importing the planet data, use the following command:" : "Beheko botoiak planetaren datuak inportatzeko balio ez badu, erabili komando hau:", "Download planet database" : "Deskargatu planeten datu-basea", + "Reverse Geocoding" : "Alderantzizko geokodetzea", "Geometry support was not detected in your database" : "Ez da geometria euskarririk detektatu zure datu-basean", "MySQL-like geometry support was detected " : "MySQL antzeko geometria euskarria detektatu da", "Postgres native geometry support was detected" : "Postgres jatorrizko geometria euskarria detektatu da", - "Video Streaming" : "Bideo-streaming", "Live transcoding provides for adaptive streaming of videos using HLS." : "Zuzeneko transkodetzeak HLS erabiliz bideoen streaming moldagarria eskaintzen du.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Kontuan izan hardware-azeleraziorik gabe CPU oso intentsiboa izan daitekeela eta transkodetzea ez dela erabiliko kanpoko biltegiratzeko.", "Enable Transcoding" : "Gaitu transkodetzea", @@ -107,14 +104,13 @@ "Auto (adaptive transcode)" : "(transkode egokitzaile) automatikoa", "Original (transcode with max quality)" : "Jatorrizkoa (kalitate maximodun transkodea)", "Direct (original video file without transcode)" : "Zuzena (jatorrizko bideo fitxategia transkoderik gabe)", - "Hardware Acceleration" : "Hardware azelerazioa", + "Video Streaming" : "Bideo-streaming", "You must first make sure the correct drivers are installed before configuring acceleration." : "Azelerazioa konfiguratu aurretik kontrolatzaile egokiak instalatuta daudela ziurtatu.", "Make sure you test hardware acceleration with various options after enabling." : "Ziurtatu hardware azelerazioa gaitu ondoren probatu duzula hainbat aukerarekin.", "Do not enable multiple types of hardware acceleration simultaneously." : "Ez gaitu hainbat hardware azelerazio mota aldi berean.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "QuickSync Video (QSV) eta AMD GPU batzuk onartzen dituzten Intel prozesadoreak transkodetzeko erabil daitezke VA-API azelerazioa erabiliz.", "For more details on driver installation, check the documentation:" : "Kontrolatzailearen instalazioari buruzko xehetasun gehiago lortzeko, kontsultatu dokumentazioa:", "Enable acceleration with VA-API" : "Gaitu VA-API bidezko azelerazioa", - "Enable low-power mode (QSV)" : "Gaitu energia baxuko modua (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPUak NVENC kodetzailea erabiliz transkodetzeko erabil daitezke kontrolatzaile egokiekin.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Instalatutako SDK eta ffmpeg bertsioen arabera, erabili beharreko eskalatzailea zehaztu.", "No automated tests are available for NVIDIA acceleration." : "Ez dago proba automatikorik erabilgarri NVIDIA azeleraziorako.", @@ -126,13 +122,14 @@ "VA-API device ({dev}) not found" : "VA-API gailua ({dev}) ez da aurkitu", "VA-API device ({dev}) has incorrect permissions" : "VA-API gailuak ({dev}) okerreko baimenak ditu", "VA-API device status: {status}" : "VA-API gailuaren egoera: {status}", - "Transcoder configuration" : "Transkodetzailearen konfigurazioa", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories-ek go-vod transkodetzailea erabiltzen du. Go-vod exekutatu dezakezu (adibidez, Docker edukiontzi bereizi batean hardware azeleraziorako) edo integratutako transkodetzailea erabil dezakezu. Kanpoko transkodetzaile bat erabiltzeko, gaitu aukera hau eta jarraitu dokumentazioko argibideak:", "Enable external transcoder (go-vod)" : "Gaitu kanpoko transkodetzailea (go-vod)", "Binary path (local only)" : "Bide-izen bitarra (lokala soilik)", "Bind address (local only)" : "Lotu helbidea (lokala soilik)", "Connection address (same as bind if local)" : "Konexio helbidea (berdina lotura lokala bada)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} elementu gehitu dira albumean","{n} elementu gehitu dira albumean"], + "Template" : "Txantiloia", + "No items" : "Elementurik ez", + "Shared by {user}" : "{user}(e)k partekatua", "Add people or groups who can edit your album" : "Gehitu zure albuma editatu dezaketen pertsona edo taldeak", "Search for collaborators" : "Bilatu kolaboratzaileak", "Search people or groups" : "Bilatu erabiltzaile edo taldeak", @@ -164,12 +161,12 @@ "Save" : "Gorde", "Create album" : "Sortu albuma", "Invalid album name; should not contain any slashes." : "Albumaren izen baliogabea; ez luke barrarik eduki behar.", - "Add selection to album {albumName}" : "Gehitu hautapena {albumName} albumera", - "Create a new album." : "Sortu album berria.", - "_%n item_::_%n items_" : ["elementu %n","%n elementu"], - "_Share with %n user_::_Share with %n users_" : ["Partekatu erabiltzaile %nekin","Partekatu %n erabiltzaileekin"], + "Search" : "Bilatu", + "Save changes" : "Gorde aldaketak", "Share Album" : "Partekatu albuma", "Save collaborators for this album." : "Gorde album honen kolaboratzaileak.", + "shared by {owner}" : "{owner}(e)k partekatuta", + "_%n item_::_%n items_" : ["elementu %n","%n elementu"], "Newest" : "Berrienak", "Year" : "Urtea", "Month" : "Hilabetea", @@ -205,10 +202,8 @@ "Name" : "Izena", "Update" : "Eguneratu", "Failed to rename {oldName} to {name}." : "{oldName} {name}(e)ra aldatzeak huts egin du.", - "Search" : "Bilatu", "Loading …" : "Kargatzen …", "Merge {name} with person" : "Batu {izena} pertsonarekin", - "Are you sure you want to merge {name} with {newName}?" : "Ziur {name} eta {newName} batu nahi dituzula?", "Too many failures, aborting" : "Hutsegite gehiegi, abortatzen", "Error while moving {basename}" : "Errorea {basename} mugitzen", "Failed to move {name}." : "{name} mugitzeak huts egin du.", @@ -247,8 +242,8 @@ "Sort by name" : "Ordenatu izenaren arabera", "Share album" : "Partekatu albuma", "Download album" : "Deskargatu albuma", - "Delete album" : "Ezabatu albuma", "Nothing to show here" : "Hemen ez dago ezer erakusteko", + "Unassigned faces" : "Esleitu gabeko aurpegiak", "Merge with different person" : "Bateratu beste pertsona batekin", "Mark person in preview" : "Markatu pertsona aurreikuspenean", "Folder View" : "Karpeten ikuspegia", @@ -262,7 +257,6 @@ "Drop changes" : "Jaregin aldaketak", "Share" : "Partekatu", "Play Live Photo" : "Erreproduzitu zuzeneko argazkia", - "Sidebar" : "Alboko barra", "Download Video" : "Deskargatu bideoa", "Slideshow" : "Diapositiba-aurkezpena", "Previous" : "Aurrekoa", @@ -272,7 +266,6 @@ "Save as" : "Gorde honela", "All changes will be lost." : "Aldaketa guztiak galduko dira.", "Are you sure you want to continue?" : "Ziur zaude jarraitu nahi duzula?", - "Continue" : "Jarraitu", "Undo" : "Desegin", "Redo" : "Berregin", "Show original image" : "Erakutsi jatorrizko irudia", @@ -381,6 +374,7 @@ "Tag photos to find them easily" : "Etiketatu argazkiak modu errazean aurkitzeko", "Recognize is still working on your photos" : "Hautematea zure argazkietan lanean ari da oraindik", "Places you have been to will appear here" : "Hemen egon zaren tokiak agertuko dira", - "Your Timeline" : "Zure denbora-lerroa" + "Yes" : "Bai", + "No" : "Ez" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/fa.js b/l10n/fa.js index f419aa2e..00b51641 100644 --- a/l10n/fa.js +++ b/l10n/fa.js @@ -1,66 +1,468 @@ OC.L10N.register( "memories", { + "Download" : "بارگیری", + "Memories" : "Memories", + "Fast, modern and advanced photo management suite" : "Fast, modern and advanced photo management suite", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.", "Settings" : "تنظیمات", + "People (Recognize)" : "People (Recognize)", "People" : "مردم", + "People (Face Recognition)" : "People (Face Recognition)", "Info" : "اطلاعات", "Timeline" : "خط زمانی", "Folders" : "پوشه ها", "Favorites" : "مورد علاقه‌ها", "Videos" : "فیلم ها ", + "Albums" : "آلبوم ها", "Archive" : "بایگانی", + "On this day" : "در این روز", + "Places" : "مکان ها", + "Map" : "نقشه", "Tags" : "برچسب ها", + "View all" : "View all", + "Recognize" : "Recognize", + "Face Recognition" : "Face Recognition", + "A better photos experience awaits you" : "A better photos experience awaits you", + "Choose the root folder of your timeline to begin" : "Choose the root folder of your timeline to begin", + "Continue to Memories" : "Continue to Memories", + "Choose again" : "Choose again", + "Click here to start" : "Click here to start", + "You can always change this later in settings" : "You can always change this later in settings", + "If you just installed Memories, visit the admin panel first." : "If you just installed Memories, visit the admin panel first.", + "Choose the root of your timeline" : "Choose the root of your timeline", + "The selected folder does not seem to be valid. Try again." : "The selected folder does not seem to be valid. Try again.", + "No photos were found in the selected folder." : "No photos were found in the selected folder.", + "This can happen because your media is still indexing." : "This can happen because your media is still indexing.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visit the admin panel to make sure Memories is configured correctly.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Found {n} item in {path}","Found {n} items in {path}"], + "Metadata" : "ابرداده", "Edit" : "ویرایش", + "Failed to load metadata" : "Failed to load metadata", + "No coordinates" : "No coordinates", + "Click edit to set location" : "Click edit to set location", "Photos" : "عکس ها", "Explore" : "کاوش", "Cancel" : "لغو", "Delete" : "حذف", - "Download" : "بارگیری", + "Remove from album" : "Remove from album", "Favorite" : "مورد‌ ‌علاقه‌", + "Unarchive" : "Unarchive", + "Edit metadata" : "Edit metadata", "View in folder" : "مشاهده در پوشه", + "Move to folder" : "Move to folder", + "Add to album" : "به آلبوم اضافه کنید", + "Move to person" : "Move to person", + "Remove from person" : "Remove from person", + "Continue" : "ادامه دادن", + "Failed to delete files" : "Failed to delete files", + "Move" : "انتقال", + "You must enable \"Mark person in preview\" to use this feature" : "You must enable \"Mark person in preview\" to use this feature", + "Only user \"{user}\" can update this person" : "Only user \"{user}\" can update this person", + "_{n} selected_::_{n} selected_" : ["{n} selected","{n} selected"], + "Memories Settings" : "Memories Settings", "General" : "عمومی", + "Timeline Path" : "Timeline Path", + "Square grid mode" : "Square grid mode", + "Show past photos on top of timeline" : "Show past photos on top of timeline", + "Viewer" : "Viewer", + "Autoplay Live Photos" : "Autoplay Live Photos", + "Load full size image on zoom" : "Load full size image on zoom", + "Always load full size image (not recommended)" : "Always load full size image (not recommended)", + "Account" : "حساب", + "Logged in as {user}" : "Logged in as {user}", + "Sign out" : "Sign out", + "Device Folders" : "Device Folders", + "Local folders to include in the timeline view" : "Local folders to include in the timeline view", + "Folders Path" : "Folders Path", + "Show hidden folders" : "Show hidden folders", + "Sort folders oldest-first" : "Sort folders oldest-first", + "Sort albums oldest-first" : "Sort albums oldest-first", + "Choose Timeline Paths" : "Choose Timeline Paths", + "Choose the root for the folders view" : "Choose the root for the folders view", + "Are you sure you want to log out {user}?" : "Are you sure you want to log out {user}?", "Close" : "بسته", + "{photoCount} photos" : "{photoCount} photos", + "Failed to load some photos" : "Failed to load some photos", + "Failed to update setting" : "Failed to update setting", + "Albums support is enabled through the Photos app." : "Albums support is enabled through the Photos app.", + "Albums are disabled because the Photos app is not available." : "Albums are disabled because the Photos app is not available.", + "Face Recognition is installed and enabled" : "Face Recognition is installed and enabled", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Preview generator is installed and enabled. Additional configuration may still be required.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Preview generator is not installed and configured. This may make Memories very slow.", + "Recommended Apps" : "Recommended Apps", + "Path to packaged exiftool binary" : "Path to packaged exiftool binary", + "You need perl only if the packaged exiftool binary does not work for some reason." : "You need perl only if the packaged exiftool binary does not work for some reason.", + "Use system perl (only if exiftool binary does not work)" : "Use system perl (only if exiftool binary does not work)", + "EXIF Extraction" : "EXIF Extraction", + "You can configure the enabled Nextcloud preview providers below." : "You can configure the enabled Nextcloud preview providers below.", + "If you are using Imaginary for preview generation, you can ignore this section." : "If you are using Imaginary for preview generation, you can ignore this section.", + "To enable RAW support, install the Camera RAW Previews app." : "To enable RAW support, install the Camera RAW Previews app.", + "Documentation." : "Documentation.", + "The following MIME types are configured for preview generation." : "The following MIME types are configured for preview generation.", + "Max preview size (trade-off between quality and storage requirements)." : "Max preview size (trade-off between quality and storage requirements).", + "Max memory for preview generation (MB)" : "Max memory for preview generation (MB)", + "Max size of preview files (MB)" : "Max size of preview files (MB)", + "File Support" : "File Support", + "Images (JPEG, PNG, GIF, BMP)" : "Images (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Thank you for choosing Nextcloud and Memories to store your precious data!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories is very feature rich and setting it up properly can take some time.", + "If you just installed Memories, make sure you read the getting started guide:" : "If you just installed Memories, make sure you read the getting started guide:", + "External Link" : "External Link", + "In case you run into any issues or bugs, you can get help through several channels." : "In case you run into any issues or bugs, you can get help through several channels.", + "Memories is a completely free and open source app under active development." : "Memories is a completely free and open source app under active development.", + "You can contribute in several ways. See the project page for more details:" : "You can contribute in several ways. See the project page for more details:", + "Help & Support" : "Help & Support", + "{n} media files have been indexed" : "{n} media files have been indexed", + "Automatic Indexing status: {status}" : "Automatic Indexing status: {status}", + "Last index job was run {t} seconds ago." : "Last index job was run {t} seconds ago.", + "It took {t} seconds to complete." : "It took {t} seconds to complete.", + "It is still running or was interrupted." : "It is still running or was interrupted.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in.", + "Index all media automatically (recommended)" : "Index all media automatically (recommended)", + "Index per-user timeline folders (not recommended)" : "Index per-user timeline folders (not recommended)", + "Index a fixed relative path" : "Index a fixed relative path", + "Disable background indexing" : "Disable background indexing", + "Indexing path (relative, all users)" : "Indexing path (relative, all users)", + "For advanced usage, perform a run of indexing by running:" : "For advanced usage, perform a run of indexing by running:", + "Run index in parallel with 4 threads:" : "Run index in parallel with 4 threads:", + "Force re-indexing of all files:" : "Force re-indexing of all files:", + "You can limit indexing by user and/or folder:" : "You can limit indexing by user and/or folder:", + "Clear all existing index tables:" : "Clear all existing index tables:", + "Media Indexing" : "Media Indexing", + "HTTPS is enabled" : "HTTPS is enabled", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance.", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 or HTTP/3 is enabled", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)", "Performance" : "کارایی", "Unknown" : "ناشناخته", + "Database is populated with {n} geometries." : "Database is populated with {n} geometries.", + "Geometry table has not been created." : "Geometry table has not been created.", + "Looks like the planet data is incomplete." : "Looks like the planet data is incomplete.", + "Reverse geocoding has not been configured ({status})." : "Reverse geocoding has not been configured ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "You need to download the planet data into your database. This is highly recommended and has low overhead.", + "If the button below does not work for importing the planet data, use the following command:" : "If the button below does not work for importing the planet data, use the following command:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix.", + "Download planet database" : "Download planet database", + "Reverse Geocoding" : "Reverse Geocoding", + "Geometry support was not detected in your database" : "Geometry support was not detected in your database", + "MySQL-like geometry support was detected " : "MySQL-like geometry support was detected ", + "Postgres native geometry support was detected" : "Postgres native geometry support was detected", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Looks like the database is already setup. Are you sure you want to redownload planet data?", + "You are about to download the planet database. This may take a while." : "You are about to download the planet database. This may take a while.", + "This may also cause all photos to be re-indexed!" : "This may also cause all photos to be re-indexed!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "Live transcoding provides for adaptive streaming of videos using HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage.", + "Enable Transcoding" : "Enable Transcoding", + "ffmpeg path" : "ffmpeg path", + "ffprobe path" : "ffprobe path", + "Global default video quality (user may override)" : "Global default video quality (user may override)", + "Auto (adaptive transcode)" : "Auto (adaptive transcode)", + "Original (transcode with max quality)" : "Original (transcode with max quality)", + "Direct (original video file without transcode)" : "Direct (original video file without transcode)", + "Video Streaming" : "Video Streaming", + "You must first make sure the correct drivers are installed before configuring acceleration." : "You must first make sure the correct drivers are installed before configuring acceleration.", + "Make sure you test hardware acceleration with various options after enabling." : "Make sure you test hardware acceleration with various options after enabling.", + "Do not enable multiple types of hardware acceleration simultaneously." : "Do not enable multiple types of hardware acceleration simultaneously.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration.", + "For more details on driver installation, check the documentation:" : "For more details on driver installation, check the documentation:", + "Enable acceleration with VA-API" : "Enable acceleration with VA-API", + "Enable low-power mode (QSV only)" : "Enable low-power mode (QSV only)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use", + "No automated tests are available for NVIDIA acceleration." : "No automated tests are available for NVIDIA acceleration.", + "Enable acceleration with NVENC" : "Enable acceleration with NVENC", + "Enable NVENC Temporal AQ" : "Enable NVENC Temporal AQ", + "NPP scaler" : "NPP scaler", + "CUDA scaler" : "CUDA scaler", + "not recommended" : "not recommended", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Enable the following option only if you have incorrectly oriented videos during playback.", + "Enable streaming transpose workaround" : "Enable streaming transpose workaround", + "HW Acceleration" : "HW Acceleration", + "VA-API device ({dev}) is readable" : "VA-API device ({dev}) is readable", + "VA-API device ({dev}) not found" : "VA-API device ({dev}) not found", + "VA-API device ({dev}) has incorrect permissions" : "VA-API device ({dev}) has incorrect permissions", + "VA-API device status: {status}" : "VA-API device status: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:", + "Enable external transcoder (go-vod)" : "Enable external transcoder (go-vod)", + "Binary path (local only)" : "Binary path (local only)", + "Bind address (local only)" : "Bind address (local only)", + "Connection address (same as bind if local)" : "Connection address (same as bind if local)", + "Transcoder" : "Transcoder", + "Template" : "Template", + "No items" : "هیچ موردی وجود ندارد.", + "Shared by {user}" : "Shared by {user}", + "_{n} item_::_{n} items_" : ["{n} item","{n} items"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} photo updated","{n} photos updated"], + "Add people or groups who can edit your album" : "افراد یا گروه هایی را اضافه کنید که می توانند آلبوم شما را ویرایش کنند", + "Search for collaborators" : "همکاران را جستجو کنید", + "Search people or groups" : "افراد یا گروه ها را جستجو کنید", + "Add {collaboratorLabel} to the collaborators list" : "{همکار برچسب} را به لیست همکاران اضافه کنید", + "No collaborators available" : "هیچ مشارکتی در دسترس نیست", + "Remove {collaboratorLabel} from the collaborators list" : "{collaboratorLabel} را از لیست همکاران حذف کنید", + "Copy the public link" : "لینک عمومی را کپی کنید", + "Public link copied!" : "پیوند عمومی کپی شد!", "Copy public link" : "پیوند عمومی را کپی کنید", + "Delete the public link" : "لینک عمومی را حذف کنید", + "Share via public link" : "از طریق پیوند عمومی به اشتراک بگذارید", + "Failed to fetch collaborators list." : "واکشی لیست همکاران انجام نشد.", "Public link" : "پیوند عمومی", + "Failed to fetch album." : "واکشی آلبوم ناموفق بود.", + "Failed to update album." : "آلبوم به‌روزرسانی نشد.", + "Create new album" : "ایجاد آلبوم جدید", + "Edit album details" : "ویرایش جزئیات آلبوم", + "New album" : "آلبوم جدید", + "Could not load the selected album" : "Could not load the selected album", + "Remove Album" : "Remove Album", + "Are you sure you want to permanently remove album \"{name}\"?" : "Are you sure you want to permanently remove album \"{name}\"?", + "Failed to delete {name}." : "Failed to delete {name}.", + "Name of the album" : "نام آلبوم", + "Location of the album" : "محل قرار گرفتن آلبوم", + "Go back to the previous view." : "به نمای قبلی برگردید", "Back" : "بازگشت", + "Go to the add collaborators view." : "به نمای افزودن همکاران بروید.", + "Add collaborators" : "اضافه کردن همکاران", + "Back to the new album form." : "بازگشت به فرم آلبوم جدید.", "Save" : "ذخیره", + "Create album" : "ایجاد آلبوم", + "Invalid album name; should not contain any slashes." : "Invalid album name; should not contain any slashes.", + "Search" : "جستجو", + "Create new album." : "Create new album.", + "Save changes" : "ذخیرهٔ تغییرات", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Removed from {n} album","Removed from {n} albums"], + "Share Album" : "Share Album", + "Save collaborators for this album." : "همکاران را برای این آلبوم ذخیره کنید.", + "shared by {owner}" : "shared by {owner}", + "_%n item_::_%n items_" : ["%n item","%n items"], + "Newest" : "Newest", "Year" : "سال", "Month" : "ماه", "Day" : "روز", "Time" : "زمان", + "Hour" : "Hour", + "Minute" : "Minute", + "Oldest" : "Oldest", + "Invalid Date" : "Invalid Date", + "Newest date is older than oldest date" : "Newest date is older than oldest date", "Title" : "عنوان", "Description" : "توضیحات", "Label" : "برچسب", + "Camera Make" : "Camera Make", + "Camera Model" : "Camera Model", + "Lens Model" : "Lens Model", "Copyright" : "کپی‌رایت", "Empty" : "خالی", + "Unchanged" : "Unchanged", "Reset" : "بازنشاندن", + "Remove location" : "Remove location", + "Search location / landmark" : "Search location / landmark", + "Failed to search for location with Nominatim." : "Failed to search for location with Nominatim.", + "Date / Time" : "Date / Time", + "Collaborative Tags" : "Collaborative Tags", + "EXIF Fields" : "EXIF Fields", + "Geolocation" : "Geolocation", + "Failed to load metadata for {n} photos." : "Failed to load metadata for {n} photos.", + "{n} photos cannot be edited (permissions error)." : "{n} photos cannot be edited (permissions error).", + "Remove person" : "فرد را حذف کنید", + "Are you sure you want to remove {name}?" : "Are you sure you want to remove {name}?", + "Only user \"{user}\" can delete this person" : "Only user \"{user}\" can delete this person", + "Rename person" : "تغییر نام شخص", "Name" : "نام", "Update" : "یه‌روزرسانی", - "Search" : "جستجو", + "Failed to rename {oldName} to {name}." : "Failed to rename {oldName} to {name}.", "Loading …" : "بارگذاری …", + "Enter name of the new face" : "Enter name of the new face", + "Failed to create face" : "Failed to create face", + "Merge {name} with person" : "Merge {name} with person", + "Too many failures, aborting" : "Too many failures, aborting", + "Error while moving {basename}" : "Error while moving {basename}", + "Failed to move {name}." : "Failed to move {name}.", + "Move selected photos to person" : "Move selected photos to person", + "Move the selected photos to {target}?" : "Move the selected photos to {target}?", + "An error occurred while moving photos from {name}." : "An error occurred while moving photos from {name}.", + "Choose a folder" : "Choose a folder", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} item moved to folder","{n} items moved to folder"], "Remove" : "حذف", + "Add Path" : "Add Path", + "Add a root to your timeline" : "Add a root to your timeline", + "Link Sharing" : "Link Sharing", + "You cannot share the root folder" : "You cannot share the root folder", + "Public link shares are available to people outside Nextcloud." : "Public link shares are available to people outside Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "You may create or update permissions on public links using the sidebar.", + "Click a link to copy to clipboard." : "Click a link to copy to clipboard.", "Share link" : "هم‌رسانی پیوند", + "Create Link" : "Create Link", "Refresh" : "تازه‌سازی", - "Password protected" : "نگهداری از رمز عبور", + "Password protected" : "محافظت‌شده با گذرواژه", "Expires" : "منقضی می شود", + "Editable" : "Editable", "Read only" : "فقط خواندنی", "Link copied to clipboard" : "پیوند در حافظه موقت کپی شده", + "Share File" : "Share File", + "Reduced Size" : "Reduced Size", + "Share a lower resolution image preview" : "Share a lower resolution image preview", + "High Resolution" : "High Resolution", + "Share the video as a high quality MOV" : "Share the video as a high quality MOV", + "Share the image as a high quality JPEG" : "Share the image as a high quality JPEG", + "Original File" : "Original File", + "Share the original image / video file" : "Share the original image / video file", + "Public Link" : "Public Link", + "Share an external Nextcloud link" : "Share an external Nextcloud link", + "Failed to download file" : "Failed to download file", + "Cannot share this type of data" : "Cannot share this type of data", "Sort by date" : "Order by date", "Sort by name" : "Order by name", + "Share album" : "Share album", + "Download album" : "Download album", + "Nothing to show here" : "Nothing to show here", + "Unassigned faces" : "چهره های تعیین نشده", + "Merge with different person" : "ادغام با افراد مختلف", + "Mark person in preview" : "Mark person in preview", + "Folder View" : "Folder View", + "Timeline View" : "Timeline View", "Share folder" : "اشتراک‌گذاری پوشه", + "Move left" : "Move left", + "Move right" : "Move right", + "Image saved successfully" : "Image saved successfully", + "Error saving image" : "Error saving image", + "Unsaved changes" : "Unsaved changes", + "Drop changes" : "Drop changes", "Share" : "هم‌رسانی", + "Play Live Photo" : "Play Live Photo", + "Download Video" : "Download Video", + "Slideshow" : "Slideshow", "Previous" : "قبلی", "Next" : "بعدی", - "Continue" : "ادامه دادن", + "Editing is currently disabled for Live Photos" : "Editing is currently disabled for Live Photos", + "Are you sure you want to delete?" : "Are you sure you want to delete?", + "Failed to delete photo" : "Failed to delete photo", + "{name} binary exists and is executable." : "{name} binary exists and is executable.", + "{name} binary not found." : "{name} binary not found.", + "{name} binary is not executable." : "{name} binary is not executable.", + "{name} failed test: {info}." : "{name} failed test: {info}.", + "{name} binary exists and is usable ({info})." : "{name} binary exists and is usable ({info}).", + "{name} binary status: {status}." : "{name} binary status: {status}.", + "Save as" : "Save as", + "All changes will be lost." : "All changes will be lost.", + "Are you sure you want to continue?" : "Are you sure you want to continue?", "Undo" : "برگرداندن", + "Redo" : "Redo", + "Show original image" : "Show original image", + "Zoom in" : "Zoom in", + "Zoom out" : "Zoom out", + "Toggle zoom menu" : "Toggle zoom menu", + "Adjust" : "Adjust", + "Fine-tune" : "Fine-tune", + "Filters" : "Filters", + "Watermark" : "Watermark", + "Draw" : "Draw", + "Resize" : "Resize", + "Invalid image." : "Invalid image.", + "Error while uploading the image." : "Error while uploading the image.", + "are not images" : "are not images", + "is not an image" : "is not an image", + "to be uploaded" : "to be uploaded", + "Crop" : "Crop", "Original" : "اصلی", + "Custom" : "Custom", + "Square" : "Square", + "Landscape" : "Landscape", + "Portrait" : "Portrait", + "Ellipse" : "Ellipse", + "Classic TV" : "Classic TV", + "CinemaScope" : "CinemaScope", + "Arrow" : "Arrow", + "Blur" : "Blur", + "Brightness" : "Brightness", + "Contrast" : "Contrast", + "Un-flip X" : "Un-flip X", + "Flip X" : "Flip X", + "Un-flip Y" : "Un-flip Y", + "Flip Y" : "Flip Y", + "HSV" : "HSV", + "Hue" : "Hue", + "Saturation" : "Saturation", "Value" : "مقدار", + "Image" : "Image", + "Importing …" : "Importing …", + "+ Add image" : "+ Add image", + "Line" : "Line", + "Pen" : "Pen", + "Polygon" : "Polygon", + "Sides" : "Sides", + "Rectangle" : "Rectangle", + "Corner Radius" : "Corner Radius", + "Width in pixels" : "Width in pixels", + "Height in pixels" : "Height in pixels", + "Toggle ratio lock" : "Toggle ratio lock", + "Reset to original image size" : "Reset to original image size", + "Rotate" : "Rotate", "Text" : "متن", + "Text spacing" : "Text spacing", + "Text alignment" : "Text alignment", + "Font family" : "Font family", "Size" : "اندازه", + "Letter spacing" : "Letter spacing", + "Line height" : "Line height", + "Warmth" : "Warmth", + "+ Add watermark" : "+ Add watermark", + "Choose watermark type" : "Choose watermark type", + "Upload watermark" : "Upload watermark", + "Add as text" : "Add as text", + "Padding" : "Padding", + "Shadow" : "Shadow", + "Horizontal" : "Horizontal", + "Vertical" : "Vertical", + "Opacity" : "Opacity", + "Position" : "Position", + "Stroke" : "Stroke", + "Save image as" : "Save image as", "Extension" : "گسترش", + "Name is required." : "نام الزامی است", + "Quality" : "Quality", + "Saved image size (width x height)" : "Saved image size (width x height)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Note that the selected crop area is lower than the applied resize which might cause quality decrease", + "Actual size (100%)" : "Actual size (100%)", + "Fit size" : "Fit size", + "Transcoding failed, check Nextcloud logs." : "Transcoding failed, check Nextcloud logs.", "Direct" : "مستقیم", - "Auto" : "خودکار" + "Auto" : "خودکار", + "Shared Folder" : "Shared Folder", + "Shared Album" : "Shared Album", + "Failed to remove {filename}." : "Failed to remove {filename}.", + "Failed to create {albumName}." : "ایجاد {albumName} ناموفق بود.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "تغییر نام {currentAlbumName} به {newAlbumName} انجام نشد.", + "General Failure" : "General Failure", + "Error: {msg}" : "Error: {msg}", + "Failed to delete {fileName}." : "{fileName} حذف نشد.", + "Failed to move files." : "Failed to move files.", + "Could not move {fileName}, target exists." : "Could not move {fileName}, target exists.", + "Failed to move {fileName}." : "Failed to move {fileName}.", + "Failed to download files" : "Failed to download files", + "Failed to favorite files." : "Failed to favorite files.", + "Failed to favorite some files." : "Failed to favorite some files.", + "Failed to favorite {fileName}." : "Failed to favorite {fileName}.", + "No content-location header found" : "No content-location header found", + "Failed to create tag {name}: {error}" : "Failed to create tag {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories has been updated to {version}. Reload to get the new version.", + "Upload some photos and make sure the timeline path is configured" : "Upload some photos and make sure the timeline path is configured", + "Mark photos as favorite to find them easily" : "Mark photos as favorite to find them easily", + "Memories from past years will appear here" : "Memories from past years will appear here", + "You will find your friends soon. Please be patient" : "You will find your friends soon. Please be patient", + "Face Recognition is disabled. Enable in settings to find your friends" : "Face Recognition is disabled. Enable in settings to find your friends", + "Your videos will appear here" : "Your videos will appear here", + "No photos in this album yet" : "No photos in this album yet", + "Create an album to get started" : "Create an album to get started", + "Archive photos you don't want to see in your timeline" : "Archive photos you don't want to see in your timeline", + "Tag photos to find them easily" : "Tag photos to find them easily", + "Recognize is still working on your photos" : "Recognize is still working on your photos", + "Places you have been to will appear here" : "Places you have been to will appear here" }, "nplurals=2; plural=(n > 1);"); diff --git a/l10n/fa.json b/l10n/fa.json index 524e2f6e..1984a2d4 100644 --- a/l10n/fa.json +++ b/l10n/fa.json @@ -1,64 +1,466 @@ { "translations": { + "Download" : "بارگیری", + "Memories" : "Memories", + "Fast, modern and advanced photo management suite" : "Fast, modern and advanced photo management suite", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.", "Settings" : "تنظیمات", + "People (Recognize)" : "People (Recognize)", "People" : "مردم", + "People (Face Recognition)" : "People (Face Recognition)", "Info" : "اطلاعات", "Timeline" : "خط زمانی", "Folders" : "پوشه ها", "Favorites" : "مورد علاقه‌ها", "Videos" : "فیلم ها ", + "Albums" : "آلبوم ها", "Archive" : "بایگانی", + "On this day" : "در این روز", + "Places" : "مکان ها", + "Map" : "نقشه", "Tags" : "برچسب ها", + "View all" : "View all", + "Recognize" : "Recognize", + "Face Recognition" : "Face Recognition", + "A better photos experience awaits you" : "A better photos experience awaits you", + "Choose the root folder of your timeline to begin" : "Choose the root folder of your timeline to begin", + "Continue to Memories" : "Continue to Memories", + "Choose again" : "Choose again", + "Click here to start" : "Click here to start", + "You can always change this later in settings" : "You can always change this later in settings", + "If you just installed Memories, visit the admin panel first." : "If you just installed Memories, visit the admin panel first.", + "Choose the root of your timeline" : "Choose the root of your timeline", + "The selected folder does not seem to be valid. Try again." : "The selected folder does not seem to be valid. Try again.", + "No photos were found in the selected folder." : "No photos were found in the selected folder.", + "This can happen because your media is still indexing." : "This can happen because your media is still indexing.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visit the admin panel to make sure Memories is configured correctly.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Found {n} item in {path}","Found {n} items in {path}"], + "Metadata" : "ابرداده", "Edit" : "ویرایش", + "Failed to load metadata" : "Failed to load metadata", + "No coordinates" : "No coordinates", + "Click edit to set location" : "Click edit to set location", "Photos" : "عکس ها", "Explore" : "کاوش", "Cancel" : "لغو", "Delete" : "حذف", - "Download" : "بارگیری", + "Remove from album" : "Remove from album", "Favorite" : "مورد‌ ‌علاقه‌", + "Unarchive" : "Unarchive", + "Edit metadata" : "Edit metadata", "View in folder" : "مشاهده در پوشه", + "Move to folder" : "Move to folder", + "Add to album" : "به آلبوم اضافه کنید", + "Move to person" : "Move to person", + "Remove from person" : "Remove from person", + "Continue" : "ادامه دادن", + "Failed to delete files" : "Failed to delete files", + "Move" : "انتقال", + "You must enable \"Mark person in preview\" to use this feature" : "You must enable \"Mark person in preview\" to use this feature", + "Only user \"{user}\" can update this person" : "Only user \"{user}\" can update this person", + "_{n} selected_::_{n} selected_" : ["{n} selected","{n} selected"], + "Memories Settings" : "Memories Settings", "General" : "عمومی", + "Timeline Path" : "Timeline Path", + "Square grid mode" : "Square grid mode", + "Show past photos on top of timeline" : "Show past photos on top of timeline", + "Viewer" : "Viewer", + "Autoplay Live Photos" : "Autoplay Live Photos", + "Load full size image on zoom" : "Load full size image on zoom", + "Always load full size image (not recommended)" : "Always load full size image (not recommended)", + "Account" : "حساب", + "Logged in as {user}" : "Logged in as {user}", + "Sign out" : "Sign out", + "Device Folders" : "Device Folders", + "Local folders to include in the timeline view" : "Local folders to include in the timeline view", + "Folders Path" : "Folders Path", + "Show hidden folders" : "Show hidden folders", + "Sort folders oldest-first" : "Sort folders oldest-first", + "Sort albums oldest-first" : "Sort albums oldest-first", + "Choose Timeline Paths" : "Choose Timeline Paths", + "Choose the root for the folders view" : "Choose the root for the folders view", + "Are you sure you want to log out {user}?" : "Are you sure you want to log out {user}?", "Close" : "بسته", + "{photoCount} photos" : "{photoCount} photos", + "Failed to load some photos" : "Failed to load some photos", + "Failed to update setting" : "Failed to update setting", + "Albums support is enabled through the Photos app." : "Albums support is enabled through the Photos app.", + "Albums are disabled because the Photos app is not available." : "Albums are disabled because the Photos app is not available.", + "Face Recognition is installed and enabled" : "Face Recognition is installed and enabled", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Preview generator is installed and enabled. Additional configuration may still be required.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Preview generator is not installed and configured. This may make Memories very slow.", + "Recommended Apps" : "Recommended Apps", + "Path to packaged exiftool binary" : "Path to packaged exiftool binary", + "You need perl only if the packaged exiftool binary does not work for some reason." : "You need perl only if the packaged exiftool binary does not work for some reason.", + "Use system perl (only if exiftool binary does not work)" : "Use system perl (only if exiftool binary does not work)", + "EXIF Extraction" : "EXIF Extraction", + "You can configure the enabled Nextcloud preview providers below." : "You can configure the enabled Nextcloud preview providers below.", + "If you are using Imaginary for preview generation, you can ignore this section." : "If you are using Imaginary for preview generation, you can ignore this section.", + "To enable RAW support, install the Camera RAW Previews app." : "To enable RAW support, install the Camera RAW Previews app.", + "Documentation." : "Documentation.", + "The following MIME types are configured for preview generation." : "The following MIME types are configured for preview generation.", + "Max preview size (trade-off between quality and storage requirements)." : "Max preview size (trade-off between quality and storage requirements).", + "Max memory for preview generation (MB)" : "Max memory for preview generation (MB)", + "Max size of preview files (MB)" : "Max size of preview files (MB)", + "File Support" : "File Support", + "Images (JPEG, PNG, GIF, BMP)" : "Images (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Thank you for choosing Nextcloud and Memories to store your precious data!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories is very feature rich and setting it up properly can take some time.", + "If you just installed Memories, make sure you read the getting started guide:" : "If you just installed Memories, make sure you read the getting started guide:", + "External Link" : "External Link", + "In case you run into any issues or bugs, you can get help through several channels." : "In case you run into any issues or bugs, you can get help through several channels.", + "Memories is a completely free and open source app under active development." : "Memories is a completely free and open source app under active development.", + "You can contribute in several ways. See the project page for more details:" : "You can contribute in several ways. See the project page for more details:", + "Help & Support" : "Help & Support", + "{n} media files have been indexed" : "{n} media files have been indexed", + "Automatic Indexing status: {status}" : "Automatic Indexing status: {status}", + "Last index job was run {t} seconds ago." : "Last index job was run {t} seconds ago.", + "It took {t} seconds to complete." : "It took {t} seconds to complete.", + "It is still running or was interrupted." : "It is still running or was interrupted.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in.", + "Index all media automatically (recommended)" : "Index all media automatically (recommended)", + "Index per-user timeline folders (not recommended)" : "Index per-user timeline folders (not recommended)", + "Index a fixed relative path" : "Index a fixed relative path", + "Disable background indexing" : "Disable background indexing", + "Indexing path (relative, all users)" : "Indexing path (relative, all users)", + "For advanced usage, perform a run of indexing by running:" : "For advanced usage, perform a run of indexing by running:", + "Run index in parallel with 4 threads:" : "Run index in parallel with 4 threads:", + "Force re-indexing of all files:" : "Force re-indexing of all files:", + "You can limit indexing by user and/or folder:" : "You can limit indexing by user and/or folder:", + "Clear all existing index tables:" : "Clear all existing index tables:", + "Media Indexing" : "Media Indexing", + "HTTPS is enabled" : "HTTPS is enabled", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance.", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 or HTTP/3 is enabled", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)", "Performance" : "کارایی", "Unknown" : "ناشناخته", + "Database is populated with {n} geometries." : "Database is populated with {n} geometries.", + "Geometry table has not been created." : "Geometry table has not been created.", + "Looks like the planet data is incomplete." : "Looks like the planet data is incomplete.", + "Reverse geocoding has not been configured ({status})." : "Reverse geocoding has not been configured ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "You need to download the planet data into your database. This is highly recommended and has low overhead.", + "If the button below does not work for importing the planet data, use the following command:" : "If the button below does not work for importing the planet data, use the following command:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix.", + "Download planet database" : "Download planet database", + "Reverse Geocoding" : "Reverse Geocoding", + "Geometry support was not detected in your database" : "Geometry support was not detected in your database", + "MySQL-like geometry support was detected " : "MySQL-like geometry support was detected ", + "Postgres native geometry support was detected" : "Postgres native geometry support was detected", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Looks like the database is already setup. Are you sure you want to redownload planet data?", + "You are about to download the planet database. This may take a while." : "You are about to download the planet database. This may take a while.", + "This may also cause all photos to be re-indexed!" : "This may also cause all photos to be re-indexed!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "Live transcoding provides for adaptive streaming of videos using HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage.", + "Enable Transcoding" : "Enable Transcoding", + "ffmpeg path" : "ffmpeg path", + "ffprobe path" : "ffprobe path", + "Global default video quality (user may override)" : "Global default video quality (user may override)", + "Auto (adaptive transcode)" : "Auto (adaptive transcode)", + "Original (transcode with max quality)" : "Original (transcode with max quality)", + "Direct (original video file without transcode)" : "Direct (original video file without transcode)", + "Video Streaming" : "Video Streaming", + "You must first make sure the correct drivers are installed before configuring acceleration." : "You must first make sure the correct drivers are installed before configuring acceleration.", + "Make sure you test hardware acceleration with various options after enabling." : "Make sure you test hardware acceleration with various options after enabling.", + "Do not enable multiple types of hardware acceleration simultaneously." : "Do not enable multiple types of hardware acceleration simultaneously.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration.", + "For more details on driver installation, check the documentation:" : "For more details on driver installation, check the documentation:", + "Enable acceleration with VA-API" : "Enable acceleration with VA-API", + "Enable low-power mode (QSV only)" : "Enable low-power mode (QSV only)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use", + "No automated tests are available for NVIDIA acceleration." : "No automated tests are available for NVIDIA acceleration.", + "Enable acceleration with NVENC" : "Enable acceleration with NVENC", + "Enable NVENC Temporal AQ" : "Enable NVENC Temporal AQ", + "NPP scaler" : "NPP scaler", + "CUDA scaler" : "CUDA scaler", + "not recommended" : "not recommended", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Enable the following option only if you have incorrectly oriented videos during playback.", + "Enable streaming transpose workaround" : "Enable streaming transpose workaround", + "HW Acceleration" : "HW Acceleration", + "VA-API device ({dev}) is readable" : "VA-API device ({dev}) is readable", + "VA-API device ({dev}) not found" : "VA-API device ({dev}) not found", + "VA-API device ({dev}) has incorrect permissions" : "VA-API device ({dev}) has incorrect permissions", + "VA-API device status: {status}" : "VA-API device status: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:", + "Enable external transcoder (go-vod)" : "Enable external transcoder (go-vod)", + "Binary path (local only)" : "Binary path (local only)", + "Bind address (local only)" : "Bind address (local only)", + "Connection address (same as bind if local)" : "Connection address (same as bind if local)", + "Transcoder" : "Transcoder", + "Template" : "Template", + "No items" : "هیچ موردی وجود ندارد.", + "Shared by {user}" : "Shared by {user}", + "_{n} item_::_{n} items_" : ["{n} item","{n} items"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} photo updated","{n} photos updated"], + "Add people or groups who can edit your album" : "افراد یا گروه هایی را اضافه کنید که می توانند آلبوم شما را ویرایش کنند", + "Search for collaborators" : "همکاران را جستجو کنید", + "Search people or groups" : "افراد یا گروه ها را جستجو کنید", + "Add {collaboratorLabel} to the collaborators list" : "{همکار برچسب} را به لیست همکاران اضافه کنید", + "No collaborators available" : "هیچ مشارکتی در دسترس نیست", + "Remove {collaboratorLabel} from the collaborators list" : "{collaboratorLabel} را از لیست همکاران حذف کنید", + "Copy the public link" : "لینک عمومی را کپی کنید", + "Public link copied!" : "پیوند عمومی کپی شد!", "Copy public link" : "پیوند عمومی را کپی کنید", + "Delete the public link" : "لینک عمومی را حذف کنید", + "Share via public link" : "از طریق پیوند عمومی به اشتراک بگذارید", + "Failed to fetch collaborators list." : "واکشی لیست همکاران انجام نشد.", "Public link" : "پیوند عمومی", + "Failed to fetch album." : "واکشی آلبوم ناموفق بود.", + "Failed to update album." : "آلبوم به‌روزرسانی نشد.", + "Create new album" : "ایجاد آلبوم جدید", + "Edit album details" : "ویرایش جزئیات آلبوم", + "New album" : "آلبوم جدید", + "Could not load the selected album" : "Could not load the selected album", + "Remove Album" : "Remove Album", + "Are you sure you want to permanently remove album \"{name}\"?" : "Are you sure you want to permanently remove album \"{name}\"?", + "Failed to delete {name}." : "Failed to delete {name}.", + "Name of the album" : "نام آلبوم", + "Location of the album" : "محل قرار گرفتن آلبوم", + "Go back to the previous view." : "به نمای قبلی برگردید", "Back" : "بازگشت", + "Go to the add collaborators view." : "به نمای افزودن همکاران بروید.", + "Add collaborators" : "اضافه کردن همکاران", + "Back to the new album form." : "بازگشت به فرم آلبوم جدید.", "Save" : "ذخیره", + "Create album" : "ایجاد آلبوم", + "Invalid album name; should not contain any slashes." : "Invalid album name; should not contain any slashes.", + "Search" : "جستجو", + "Create new album." : "Create new album.", + "Save changes" : "ذخیرهٔ تغییرات", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Removed from {n} album","Removed from {n} albums"], + "Share Album" : "Share Album", + "Save collaborators for this album." : "همکاران را برای این آلبوم ذخیره کنید.", + "shared by {owner}" : "shared by {owner}", + "_%n item_::_%n items_" : ["%n item","%n items"], + "Newest" : "Newest", "Year" : "سال", "Month" : "ماه", "Day" : "روز", "Time" : "زمان", + "Hour" : "Hour", + "Minute" : "Minute", + "Oldest" : "Oldest", + "Invalid Date" : "Invalid Date", + "Newest date is older than oldest date" : "Newest date is older than oldest date", "Title" : "عنوان", "Description" : "توضیحات", "Label" : "برچسب", + "Camera Make" : "Camera Make", + "Camera Model" : "Camera Model", + "Lens Model" : "Lens Model", "Copyright" : "کپی‌رایت", "Empty" : "خالی", + "Unchanged" : "Unchanged", "Reset" : "بازنشاندن", + "Remove location" : "Remove location", + "Search location / landmark" : "Search location / landmark", + "Failed to search for location with Nominatim." : "Failed to search for location with Nominatim.", + "Date / Time" : "Date / Time", + "Collaborative Tags" : "Collaborative Tags", + "EXIF Fields" : "EXIF Fields", + "Geolocation" : "Geolocation", + "Failed to load metadata for {n} photos." : "Failed to load metadata for {n} photos.", + "{n} photos cannot be edited (permissions error)." : "{n} photos cannot be edited (permissions error).", + "Remove person" : "فرد را حذف کنید", + "Are you sure you want to remove {name}?" : "Are you sure you want to remove {name}?", + "Only user \"{user}\" can delete this person" : "Only user \"{user}\" can delete this person", + "Rename person" : "تغییر نام شخص", "Name" : "نام", "Update" : "یه‌روزرسانی", - "Search" : "جستجو", + "Failed to rename {oldName} to {name}." : "Failed to rename {oldName} to {name}.", "Loading …" : "بارگذاری …", + "Enter name of the new face" : "Enter name of the new face", + "Failed to create face" : "Failed to create face", + "Merge {name} with person" : "Merge {name} with person", + "Too many failures, aborting" : "Too many failures, aborting", + "Error while moving {basename}" : "Error while moving {basename}", + "Failed to move {name}." : "Failed to move {name}.", + "Move selected photos to person" : "Move selected photos to person", + "Move the selected photos to {target}?" : "Move the selected photos to {target}?", + "An error occurred while moving photos from {name}." : "An error occurred while moving photos from {name}.", + "Choose a folder" : "Choose a folder", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} item moved to folder","{n} items moved to folder"], "Remove" : "حذف", + "Add Path" : "Add Path", + "Add a root to your timeline" : "Add a root to your timeline", + "Link Sharing" : "Link Sharing", + "You cannot share the root folder" : "You cannot share the root folder", + "Public link shares are available to people outside Nextcloud." : "Public link shares are available to people outside Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "You may create or update permissions on public links using the sidebar.", + "Click a link to copy to clipboard." : "Click a link to copy to clipboard.", "Share link" : "هم‌رسانی پیوند", + "Create Link" : "Create Link", "Refresh" : "تازه‌سازی", - "Password protected" : "نگهداری از رمز عبور", + "Password protected" : "محافظت‌شده با گذرواژه", "Expires" : "منقضی می شود", + "Editable" : "Editable", "Read only" : "فقط خواندنی", "Link copied to clipboard" : "پیوند در حافظه موقت کپی شده", + "Share File" : "Share File", + "Reduced Size" : "Reduced Size", + "Share a lower resolution image preview" : "Share a lower resolution image preview", + "High Resolution" : "High Resolution", + "Share the video as a high quality MOV" : "Share the video as a high quality MOV", + "Share the image as a high quality JPEG" : "Share the image as a high quality JPEG", + "Original File" : "Original File", + "Share the original image / video file" : "Share the original image / video file", + "Public Link" : "Public Link", + "Share an external Nextcloud link" : "Share an external Nextcloud link", + "Failed to download file" : "Failed to download file", + "Cannot share this type of data" : "Cannot share this type of data", "Sort by date" : "Order by date", "Sort by name" : "Order by name", + "Share album" : "Share album", + "Download album" : "Download album", + "Nothing to show here" : "Nothing to show here", + "Unassigned faces" : "چهره های تعیین نشده", + "Merge with different person" : "ادغام با افراد مختلف", + "Mark person in preview" : "Mark person in preview", + "Folder View" : "Folder View", + "Timeline View" : "Timeline View", "Share folder" : "اشتراک‌گذاری پوشه", + "Move left" : "Move left", + "Move right" : "Move right", + "Image saved successfully" : "Image saved successfully", + "Error saving image" : "Error saving image", + "Unsaved changes" : "Unsaved changes", + "Drop changes" : "Drop changes", "Share" : "هم‌رسانی", + "Play Live Photo" : "Play Live Photo", + "Download Video" : "Download Video", + "Slideshow" : "Slideshow", "Previous" : "قبلی", "Next" : "بعدی", - "Continue" : "ادامه دادن", + "Editing is currently disabled for Live Photos" : "Editing is currently disabled for Live Photos", + "Are you sure you want to delete?" : "Are you sure you want to delete?", + "Failed to delete photo" : "Failed to delete photo", + "{name} binary exists and is executable." : "{name} binary exists and is executable.", + "{name} binary not found." : "{name} binary not found.", + "{name} binary is not executable." : "{name} binary is not executable.", + "{name} failed test: {info}." : "{name} failed test: {info}.", + "{name} binary exists and is usable ({info})." : "{name} binary exists and is usable ({info}).", + "{name} binary status: {status}." : "{name} binary status: {status}.", + "Save as" : "Save as", + "All changes will be lost." : "All changes will be lost.", + "Are you sure you want to continue?" : "Are you sure you want to continue?", "Undo" : "برگرداندن", + "Redo" : "Redo", + "Show original image" : "Show original image", + "Zoom in" : "Zoom in", + "Zoom out" : "Zoom out", + "Toggle zoom menu" : "Toggle zoom menu", + "Adjust" : "Adjust", + "Fine-tune" : "Fine-tune", + "Filters" : "Filters", + "Watermark" : "Watermark", + "Draw" : "Draw", + "Resize" : "Resize", + "Invalid image." : "Invalid image.", + "Error while uploading the image." : "Error while uploading the image.", + "are not images" : "are not images", + "is not an image" : "is not an image", + "to be uploaded" : "to be uploaded", + "Crop" : "Crop", "Original" : "اصلی", + "Custom" : "Custom", + "Square" : "Square", + "Landscape" : "Landscape", + "Portrait" : "Portrait", + "Ellipse" : "Ellipse", + "Classic TV" : "Classic TV", + "CinemaScope" : "CinemaScope", + "Arrow" : "Arrow", + "Blur" : "Blur", + "Brightness" : "Brightness", + "Contrast" : "Contrast", + "Un-flip X" : "Un-flip X", + "Flip X" : "Flip X", + "Un-flip Y" : "Un-flip Y", + "Flip Y" : "Flip Y", + "HSV" : "HSV", + "Hue" : "Hue", + "Saturation" : "Saturation", "Value" : "مقدار", + "Image" : "Image", + "Importing …" : "Importing …", + "+ Add image" : "+ Add image", + "Line" : "Line", + "Pen" : "Pen", + "Polygon" : "Polygon", + "Sides" : "Sides", + "Rectangle" : "Rectangle", + "Corner Radius" : "Corner Radius", + "Width in pixels" : "Width in pixels", + "Height in pixels" : "Height in pixels", + "Toggle ratio lock" : "Toggle ratio lock", + "Reset to original image size" : "Reset to original image size", + "Rotate" : "Rotate", "Text" : "متن", + "Text spacing" : "Text spacing", + "Text alignment" : "Text alignment", + "Font family" : "Font family", "Size" : "اندازه", + "Letter spacing" : "Letter spacing", + "Line height" : "Line height", + "Warmth" : "Warmth", + "+ Add watermark" : "+ Add watermark", + "Choose watermark type" : "Choose watermark type", + "Upload watermark" : "Upload watermark", + "Add as text" : "Add as text", + "Padding" : "Padding", + "Shadow" : "Shadow", + "Horizontal" : "Horizontal", + "Vertical" : "Vertical", + "Opacity" : "Opacity", + "Position" : "Position", + "Stroke" : "Stroke", + "Save image as" : "Save image as", "Extension" : "گسترش", + "Name is required." : "نام الزامی است", + "Quality" : "Quality", + "Saved image size (width x height)" : "Saved image size (width x height)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Note that the selected crop area is lower than the applied resize which might cause quality decrease", + "Actual size (100%)" : "Actual size (100%)", + "Fit size" : "Fit size", + "Transcoding failed, check Nextcloud logs." : "Transcoding failed, check Nextcloud logs.", "Direct" : "مستقیم", - "Auto" : "خودکار" + "Auto" : "خودکار", + "Shared Folder" : "Shared Folder", + "Shared Album" : "Shared Album", + "Failed to remove {filename}." : "Failed to remove {filename}.", + "Failed to create {albumName}." : "ایجاد {albumName} ناموفق بود.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "تغییر نام {currentAlbumName} به {newAlbumName} انجام نشد.", + "General Failure" : "General Failure", + "Error: {msg}" : "Error: {msg}", + "Failed to delete {fileName}." : "{fileName} حذف نشد.", + "Failed to move files." : "Failed to move files.", + "Could not move {fileName}, target exists." : "Could not move {fileName}, target exists.", + "Failed to move {fileName}." : "Failed to move {fileName}.", + "Failed to download files" : "Failed to download files", + "Failed to favorite files." : "Failed to favorite files.", + "Failed to favorite some files." : "Failed to favorite some files.", + "Failed to favorite {fileName}." : "Failed to favorite {fileName}.", + "No content-location header found" : "No content-location header found", + "Failed to create tag {name}: {error}" : "Failed to create tag {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories has been updated to {version}. Reload to get the new version.", + "Upload some photos and make sure the timeline path is configured" : "Upload some photos and make sure the timeline path is configured", + "Mark photos as favorite to find them easily" : "Mark photos as favorite to find them easily", + "Memories from past years will appear here" : "Memories from past years will appear here", + "You will find your friends soon. Please be patient" : "You will find your friends soon. Please be patient", + "Face Recognition is disabled. Enable in settings to find your friends" : "Face Recognition is disabled. Enable in settings to find your friends", + "Your videos will appear here" : "Your videos will appear here", + "No photos in this album yet" : "No photos in this album yet", + "Create an album to get started" : "Create an album to get started", + "Archive photos you don't want to see in your timeline" : "Archive photos you don't want to see in your timeline", + "Tag photos to find them easily" : "Tag photos to find them easily", + "Recognize is still working on your photos" : "Recognize is still working on your photos", + "Places you have been to will appear here" : "Places you have been to will appear here" },"pluralForm" :"nplurals=2; plural=(n > 1);" } \ No newline at end of file diff --git a/l10n/fi.js b/l10n/fi.js index 8e4b964a..9cb87ffa 100644 --- a/l10n/fi.js +++ b/l10n/fi.js @@ -1,10 +1,14 @@ OC.L10N.register( "memories", { + "Download" : "Lataa", "Memories" : "Muistot", "Fast, modern and advanced photo management suite" : "Nopeaa, modernia ja kehittynyttä valokuvien hallintaa", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Muistot: Valokuvien hallinta Nextcloudissa\n\nMuistot-sovellus on *paristot mukana*-pakkaus valokuvien hallintaan Nextcloudissa. Kehittyneet ominaisuudet sisältävät muunmuassa:\n\n- **📸 Aikajana**: Järjestä kuvat ja videot ottopäivän mukaisesti, käyttäen EXIF-tietoja.\n- **⏪ Kelaa taaksepäin**: Hyppää nopeasti menneisiin hetkiin elääksesi muistot uudelleen.\n- **🤖 AI-tunnisteet**: Ryhmitä kuvia ihmisten ja esineiden perusteella. Toiminnon tarjoavat [recognize](https://github.com/nextcloud/recognize) ja [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albumit**: Luo albumeita ryhmittääksesi kuvia ja videoita. Jaa albumeja muiden kanssa.\n- **🫱🏻‍🫲🏻 Ulkoinen jako**: Jaa kuvia ja videoita ihmisille, jotka eivät käytä Nextcloud-palvelintasi.\n- **📱 Mobiilituki**: Työskentele minkä muotoiselta tai kokoiselta laitteelta tahansa käyttäen verkkosovellusta.\n- **✏️ Muokkaa metatietoja**: Muokkaa kuvien päivämääriä ja muita metatietoja tehokkaasti ja myös massoina .\n- **📦 Arkisto**: Arkistoi kuvia, joita et halua nähdä aikajanallasi, erilliseen kansioon.\n- **📹 Videoiden transkoodaus**: Transkoodaa videoita ja käytä HLS:ää saavuttaaksesi maksimaalisen suorituskyvyn.\n- **🗺️ Kartta**: Näe kuvasi kartalla, merkittynä tarkalla käänteisellä geokoodauksella.\n- **📦 Migraatio**: Siirrä tiedot helposti Nextcloud Kuvista ja Google Takeoutista.\n- **⚡️ Suorituskyky**: Tee tämä kaikki todella nopeasti.\n\n## 🚀 Asennus\n\n1. Asenna sovellus Nextcloud-sovelluskaupasta (testaa demoa [täällä](https://demo.memories.gallery/apps/memories/)).\n1. Tee suositellut [asetukset](https://memories.gallery/config/).\n1. Suorita `php occ memories:index` luodaksesi metadataindeksit jo olemassa oleville kuville.\n1. Avaa 📷 Muistot-sovellus Nextcloudissa ja aseta kuvakansio.", "Settings" : "Asetukset", + "People (Recognize)" : "Ihmiset (Recognize)", "People" : "Ihmiset", + "People (Face Recognition)" : "Ihmiset (Face Recognition)", "Info" : "Tietoa", "Timeline" : "Aikajana", "Folders" : "Kansiot", @@ -16,62 +20,157 @@ OC.L10N.register( "Places" : "Paikat", "Map" : "Kartta", "Tags" : "Tunnisteet", + "View all" : "Näytä kaikki", + "Recognize" : "Recognize", + "Face Recognition" : "Face Recognition", "A better photos experience awaits you" : "Parempi kuvakokemus odottaa sinua", "Choose the root folder of your timeline to begin" : "Valitse aikajanan juurihakemisto aloittaaksesi", - "If you just installed Memories, run:" : "Jos olet juuri asentanut Muistot, suorita:", "Continue to Memories" : "Jatka Muistoihin", "Choose again" : "Valitse uudestaan", "Click here to start" : "Klikkaa tästä aloittaaksesi", "You can always change this later in settings" : "Voit vaihtaa tätä myöhemmin asetuksista", + "If you just installed Memories, visit the admin panel first." : "Jos olet juuri asentanut sovelluksen, käy ensin ylläpitoasetuksissa.", "Choose the root of your timeline" : "Valitse aikajanan juurihakemisto", "The selected folder does not seem to be valid. Try again." : "Valittu hakemisto ei ole kelvollinen. Yritä uudelleen.", + "No photos were found in the selected folder." : "Valitusta kansiosta ei löytynyt kuvia.", + "This can happen because your media is still indexing." : "Tämä saattaa johtua siitä, että mediaa vielä indeksoidaan.", + "Visit the admin panel to make sure Memories is configured correctly." : "Avaa ylläpitoasetukset varmistaaksesi, että sovelluksen asetukset on määritelty oikein.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} kohde löytyi polusta {path}","{n} kohdetta löytyi polusta {path}"], + "Metadata" : "Metatieto", "Edit" : "Muokkaa", - "No title" : "Ei otsikkoa", - "No description" : "Ei kuvausta", + "Failed to load metadata" : "Metatietojen lataaminen epäonnistui", "No coordinates" : "Ei koordinaatteja", "Click edit to set location" : "Napsauta muokataksesi sijaintia", + "Photos" : "Kuvat", "Explore" : "Löydä uusia", "Cancel" : "Peruuta", "Delete" : "Poista", "Remove from album" : "Poista albumista", - "Download" : "Lataa", "Favorite" : "Suosikki", "Unarchive" : "Pois arkistosta", "Edit metadata" : "Muokkaa metatietoja", "View in folder" : "Näe kansiossa", "Move to folder" : "Siirrä kansioon", "Add to album" : "Lisää albumiin", + "Move to person" : "Siirrä henkilölle", "Remove from person" : "Poista henkilöltä", - "You are about to download a large number of files. Are you sure?" : "Olet lataamassa suurta määrää tiedostoja. Oletko varma?", - "You are about to delete a large number of files. Are you sure?" : "Olet poistamassa suurta määrää tiedostoja. Oletko varma?", - "You are about to touch a large number of files. Are you sure?" : "Olet aikeissa koskettaa suurta määrää tiedostoja. Oletko varma?", + "You are about to download a large number of files." : "Olet aikeissa ladata suuren määrän tiedostoja", + "Continue" : "Jatka", + "You are about to delete a large number of files" : "Olet aikeissa poistaa suuren määrän tiedostoja", + "Failed to delete files" : "Tiedostojen poisto epäonnistui", + "Move" : "Siirrä", + "You are about to move a large number of files" : "Olet aikeissa siirtää suuren määrän tiedostoja", + "Only user \"{user}\" can update this person" : "Vain käyttäjä \"{user}\" voi päivittää tätä henkilöä", "_{n} selected_::_{n} selected_" : ["{n} valittu","{n} valittu"], + "Memories Settings" : "Muistot-sovelluksen asetukset", "General" : "Yleiset", "Timeline Path" : "Aikajanan polku", "Square grid mode" : "Ristikkonäkymä", + "Show past photos on top of timeline" : "Näytä vanhojen kuvien nostoja aikajanan yläosassa", + "Viewer" : "Katselin", + "Load full size image on zoom" : "Lataa täysikokoiset kuvat suurennettaessa", + "Always load full size image (not recommended)" : "Lataa aina täysikokoiset kuvat (ei suositeltu)", + "Show full file path in sidebar" : "Näytä tiedoston koko polku sivupalkissa", + "Account" : "Tili", + "Logged in as {user}" : "Kirjauduttu käyttäjänä {user}", + "Sign out" : "Kirjaudu ulos", + "Device Folders" : "Laitekansiot", + "Local folders to include in the timeline view" : "Paikalliset kansiot, joiden kuvat näytetään aikajanalla", "Folders Path" : "Kansioiden polku", "Show hidden folders" : "Näytä piilotetut kansiot", + "Sort folders oldest-first" : "Järjestä kansiot vanhimmasta uusimpaan", + "Sort albums oldest-first" : "Järjestä albumit vanhimmasta uusimpaan", "Choose Timeline Paths" : "Valitse aikajanan polut", "Choose the root for the folders view" : "Valitse kansionäkymän juurihakemisto", + "Are you sure you want to log out {user}?" : "Haluatko varmasti uloskirjata \"{user}\"?", "Close" : "Sulje", "{photoCount} photos" : "{photoCount} kuvaa", "Failed to load some photos" : "Joidenkin kuvien lataus epäonnistui", + "Failed to update setting" : "Asetuksen päivittäminen epäonnistui", + "Face Recognition is installed and enabled" : "Kasvojentunnistus on asennettu ja käytössä", + "Recommended Apps" : "Suositellut sovellukset", + "Path to packaged exiftool binary" : "Polku pakattuun exiftool-binääriin", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Tarvitset perliä vain, jos pakattu exiftool-binääri ei jostain syystä toimi.", + "Use system perl (only if exiftool binary does not work)" : "Käytä järjestelmän perliä (vain, jos exiftool-binääri ei toimi)", "EXIF Extraction" : "EXIF-purku", - "Media Indexing" : "Median indeksointi", + "You can configure the enabled Nextcloud preview providers below." : "Voit määritellä Nextcloudin käyttöön otetut esikatselujen generaattorit tähän.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Jos käytät Imaginarya esikatselujen generointiin, voit ohittaa tämän osion.", + "To enable RAW support, install the Camera RAW Previews app." : "RAW-tuki vaatii Camera RAW Previews-sovelluksen asentamisen.", + "Documentation." : "Dokumentaatio.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick on saatavilla [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick ei ole käytettävissä.", + "Image editing will not work correctly." : "Kuvien muokkaus ei toimi oikein.", + "The following MIME types are configured for preview generation." : "Seuraavat MIME-tyypit on määritelty esikatselujen generointiin.", + "Max preview size (trade-off between quality and storage requirements)." : "Suurin esikatselun koko (kompromissi laadun ja tiedostojen koon välillä).", + "Max memory for preview generation (MB)" : "Esikatselujen generointiin käytettävä muistin määrä enimmillään (MB)", + "Max size of preview files (MB)" : "Esikatselukuvien koko enimmillään (MB)", + "File Support" : "Tiedostojen tuki", + "Images (JPEG, PNG, GIF, BMP)" : "Kuvat (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videot (ffmpeg)", "External Link" : "Ulkoinen linkki", - "Performance" : "Suorituskyky", + "Help & Support" : "Ohjeet ja tuki", + "{n} media files have been indexed" : "{n} mediatiedostoa on indeksoitu", + "Automatic Indexing status: {status}" : "Automaattisen indeksoinnin tila: {status}", + "Last index job was run {t} seconds ago." : "Viimeisin indeksointi suoritettu {t} sekuntia sitten.", + "It took {t} seconds to complete." : "Kesto {t} sekuntia valmistumiseen.", + "It is still running or was interrupted." : "Yhä käynnissä tai keskeytetty.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Vain salaus palvelimella (OC_DEFAULT_MODULE) on tuettu, mutta toinen salausmoduuli on käytössä.", + "Index all media automatically (recommended)" : "Indeksoi kaikki mediatiedostot automaattisesti (suositeltu)", + "Disable background indexing" : "Poista käytöstä indeksointi taustalla", + "Force re-indexing of all files:" : "Pakota kaikkien tiedostojen uudelleenindeksointi:", + "Media Indexing" : "Median indeksointi", "HTTPS is enabled" : "HTTPS on käytössä", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 tai HTTP/3 on käytössä", + "Performance" : "Suorituskyky", "Unknown" : "Tuntematon", - "_{n} item added to album_::_{n} items added to album_" : ["{n} kohde lisätty albumiin","{n} kohdetta lisätty albumiin"], + "Enable Transcoding" : "Ota käyttöön transkoodaus", + "ffmpeg path" : "ffmpeg:n polku", + "ffprobe path" : "ffprobe:n polku", + "Global default video quality (user may override)" : "Yleinen oletusarvo videoiden laadulle (käyttäjä voi muuttaa itselleen)", + "Auto (adaptive transcode)" : "Automaattinen (mukautuva transkoodaus)", + "Original (transcode with max quality)" : "Alkuperäinen (transkoodaa parhaalla laadulla)", + "Direct (original video file without transcode)" : "Suora (alkuperäinen video ilman transkoodausta)", + "You must first make sure the correct drivers are installed before configuring acceleration." : "Varmista ensin, että oikeat ajurit on asennettuna ennen kiihdytyksen määrittelemistä.", + "Make sure you test hardware acceleration with various options after enabling." : "Testaa laitteistokiihdytys eri asetuksilla ennen sen käyttöönottoa.", + "Do not enable multiple types of hardware acceleration simultaneously." : "Älä ota käyttöön useita eri laitteistokiihdytyksiä samanaikaisesti.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "QuickSync Videota (QSV):ta tukevia Intel-prosessoreita sekä joitain AMD:n GPU:ita voi käyttää transkoodaukseen hyödyntämällä VA-API-kiihdytystä.", + "For more details on driver installation, check the documentation:" : "Lue lisätietoa ajurien asennuksesta dokumentaatiosta:", + "Enable acceleration with VA-API" : "Ota kiihdytys käyttöön VA-API:lla", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU:ita voidaan käyttää transkoodaukseen hyödyntämällä NVENC-enkooderia oikeilla ajureilla.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Määrittele käytettävä skaalain (riippuu asennetun SDK:n ja ffmpeg:n versiosta)", + "No automated tests are available for NVIDIA acceleration." : "Automatisoituja testejä ei ole NVIDIA-kiihdytykselle.", + "Enable acceleration with NVENC" : "Ota käyttöön kiihdytys NVENC:llä", + "Enable NVENC Temporal AQ" : "Ota käyttöön NVENC Temporal AQ", + "NPP scaler" : "NPP-skaalain", + "CUDA scaler" : "CUDA-skaalain", + "not recommended" : "ei suositeltu", + "HW Acceleration" : "Laitteistokiihdytys", + "VA-API device ({dev}) is readable" : "VA-API-laite ({dev}) on luettavissa", + "VA-API device ({dev}) not found" : "VA-API-laitetta ({dev}) ei löytynyt", + "VA-API device ({dev}) has incorrect permissions" : "VA-API laitteella ({dev}) on virheelliset käyttöoikeudet", + "VA-API device status: {status}" : "VA-API-laitteen tila: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Muistot-sovellus käyttää go-vod-transkooderia. Go-vodi voidaan ajaa ulkoisesti (esim. erillisessä Docker-säilössä laitekiihdytyksellä) tai käyttää sisäänrakennettua transkooderia. Seuraa dokumentaation ohjeistusta:", + "Enable external transcoder (go-vod)" : "Ota käyttöön ulkoinen transkooderi (go-vod)", + "Binary path (local only)" : "Binäärin polku (vain paikallinen)", + "Template" : "Malli", + "No items" : "Ei kohteita", + "Shared by {user}" : "Jakanut {user}", + "_{n} item_::_{n} items_" : ["{n} kohde","{n} kohdetta"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} kuva päivitetty","{n} kuvaa päivitetty"], "Add people or groups who can edit your album" : "Lisää henkilöitä tai ryhmiä, jotka voivat muokata albumia", + "Search for collaborators" : "Etsi osaanottajia", "Search people or groups" : "Etsi käyttäjiä tai ryhmiä", + "Add {collaboratorLabel} to the collaborators list" : "Lisää {collaboratorLabel} osaanottajien listaan", + "No collaborators available" : "Osanottajia ei löytynyt", + "Remove {collaboratorLabel} from the collaborators list" : "Poista {collaboratorLabel} osanottajien listalta", "Copy the public link" : "Kopioi julkinen linkki", "Public link copied!" : "Julkinen linkki kopioitu!", "Copy public link" : "Kopioi julkinen linkki", "Delete the public link" : "Poista julkinen linkki", "Share via public link" : "Jaa julkisen linkin kautta", + "Failed to fetch collaborators list." : "Osanottajien haku epäonnistui", "Public link" : "Julkinen linkki", "Failed to fetch album." : "Albumin noutaminen epäonnistui.", "Failed to update album." : "Albumin päivittäminen epäonnistui.", @@ -80,20 +179,25 @@ OC.L10N.register( "New album" : "Uusi albumi", "Could not load the selected album" : "Valittua albumia ei voitu ladata", "Remove Album" : "Poista albumi", + "Are you sure you want to permanently remove album \"{name}\"?" : "Haluatko varmasti poistaa albumin \"{name}\"?", "Failed to delete {name}." : "Kohteen {name} poisto epäonnistui.", "Name of the album" : "Albumin nimi", "Location of the album" : "Albumin sijainti", "Go back to the previous view." : "Siirry takaisin edelliseen näkymään.", "Back" : "Takaisin", + "Go to the add collaborators view." : "Avaa osanottajien lisäysnäkymä.", "Add collaborators" : "Lisää avustajia", "Back to the new album form." : "Takaisin uuden albumin lomakkeeseen.", "Save" : "Tallenna", "Create album" : "Luo albumi", - "Add selection to album {albumName}" : "Lisää valinta albumiin {albumName}", - "Create a new album." : "Luo uusi albumi.", - "_%n item_::_%n items_" : ["%n kohde","%n kohdetta"], - "_Share with %n user_::_Share with %n users_" : ["Jaa %n käyttäjän kanssa","Jaa %n käyttäjän kanssa"], + "Invalid album name; should not contain any slashes." : "Virheellinen albumin nimi; nimi ei saa sisältää kauttaviivoja.", + "Search" : "Etsi", + "Create new album." : "Luo uusi albumi.", + "Save changes" : "Tallenna muutokset", "Share Album" : "Jaa albumi", + "Save collaborators for this album." : "Tallenna albumin osanottajat.", + "shared by {owner}" : "jakanut {owner}", + "_%n item_::_%n items_" : ["%n kohde","%n kohdetta"], "Newest" : "Uusimmat", "Year" : "Vuosi", "Month" : "Kuukausi", @@ -103,6 +207,7 @@ OC.L10N.register( "Minute" : "Minuutti", "Oldest" : "Vanhimmat", "Invalid Date" : "Virheellinen päiväys", + "Newest date is older than oldest date" : "Uudempi päiväys on vanhempi kuin vanhin päiväys", "Title" : "Nimeke", "Description" : "Kuvaus", "Label" : "Nimike", @@ -111,21 +216,31 @@ OC.L10N.register( "Lens Model" : "Linssin malli", "Copyright" : "Tekijänoikeus", "Empty" : "Tyhjä", + "Unchanged" : "Muuttamaton", "Reset" : "Palauta", "Remove location" : "Poista sijainti", + "Search location / landmark" : "Etsi sijaintia / maamerkkiä", + "Failed to search for location with Nominatim." : "Sijainnin haku Nominatimilla epäonnistui.", "Date / Time" : "Päivä / aika", + "Collaborative Tags" : "Yhteiset tunnisteet", "EXIF Fields" : "EXIF-kentät", + "Failed to load metadata for {n} photos." : "Metatietojen haku {n} kuvalle epäonnistui.", + "{n} photos cannot be edited (permissions error)." : "{n} kuvaa ei voitu muokata (käyttöoikeusvirhe)", "Remove person" : "Poista henkilö", "Are you sure you want to remove {name}?" : "Haluatko varmasti poistaa {name}?", + "Only user \"{user}\" can delete this person" : "Vain käyttäjä \"{user}\" voi poistaa tämän henkilön", "Rename person" : "Nimeä henkilö uudelleen", "Name" : "Nimi", "Update" : "Päivitä", "Failed to rename {oldName} to {name}." : "Uudelleen nimeäminen nimestä {oldName} nimeen {name} epäonnistui.", - "Search" : "Etsi", "Loading …" : "Ladataan…", + "Enter name of the new face" : "Syötä kasvojen nimi", + "Failed to create face" : "Kasvojen luonti epäonnistui", "Merge {name} with person" : "Yhdistä {name} henkilöön", - "Are you sure you want to merge {name} with {newName}?" : "Haluatko varmasti yhdistää kohteen {name} henkilöön {newName}?", + "Merge faces" : "Yhdistä kasvot", + "unnamed person" : "nimetön henkilö", "Too many failures, aborting" : "Liian monta epäonnistumista, lopetetaan", + "Error while moving {basename}" : "Virhe siirtäessä kohdetta {basename}", "Failed to move {name}." : "Kohteen {name} siirtäminen epäonnistui.", "Move selected photos to person" : "Siirrä valitut kuvat henkilölle", "Choose a folder" : "Valitse kansio", @@ -135,27 +250,38 @@ OC.L10N.register( "Add a root to your timeline" : "Lisää juurihakemisto aikajanalle", "Link Sharing" : "Linkin jakaminen", "You cannot share the root folder" : "Et voi jakaa juurikansiota", + "Public link shares are available to people outside Nextcloud." : "Julkisen linkin kautta jaetut kuvat näkyvät Nextcloudin ulkopuolisille ihmisille.", + "You may create or update permissions on public links using the sidebar." : "Voit luoda tai päivittää julkisten linkkien käyttöoikeuksia sivupalkista.", "Click a link to copy to clipboard." : "Napsauta linkkiä kopioidaksesi sen leikepöydälle.", "Share link" : "Jaa linkki", "Create Link" : "Luo linkki", "Refresh" : "Päivitä", "Password protected" : "Salasanasuojattu", "Expires" : "Vanhenee", + "Editable" : "Muokattavissa", "Read only" : "Vain luku", "Link copied to clipboard" : "Linkki kopioitu leikepöydälle", "Share File" : "Jaa tiedosto", "Reduced Size" : "Pienennetty koko", + "Share a lower resolution image preview" : "Jaa kuvan esikatselu matalalla resoluutiolla", "High Resolution" : "Korkea resoluutio", + "Share the video as a high quality MOV" : "Jaa video korkealaatuisena MOV-tiedostona", + "Share the image as a high quality JPEG" : "Jaa kuva korkealaatuisena JPEG-tiedostona", "Original File" : "Alkuperäinen tiedosto", + "Share the original image / video file" : "Jaa alkuperäinen kuva-/videotiedosto", "Public Link" : "Julkinen linkki", + "Share an external Nextcloud link" : "Jaa ulkoinen Nextcloud-linkki", "Failed to download file" : "Tiedoston lataaminen epäonnistui", "Cannot share this type of data" : "Tämän tyyppistä dataa ei voida jakaa", "Sort by date" : "Järjestä päiväyksen mukaan", "Sort by name" : "Järjestä nimen mukaan", "Share album" : "Jaa albumi", "Download album" : "Lataa albumi", - "Delete album" : "Poista albumi", + "Nothing to show here" : "Täällä ei ole mitään näytettävää", + "Unassigned faces" : "Määrittämättömät kasvot", "Merge with different person" : "Yhdistä toisen henkilön kanssa", + "Mark person in preview" : "Merkkaa henkilö esikatselussa", + "Unnamed person" : "Nimetön henkilö", "Folder View" : "Kansionäkymä", "Timeline View" : "Aikajananäkymä", "Share folder" : "Jaa kansio", @@ -166,16 +292,22 @@ OC.L10N.register( "Unsaved changes" : "Tallentamattomia muutoksia", "Drop changes" : "Hylkää muutokset", "Share" : "Jaa", - "Sidebar" : "Sivupalkki", "Download Video" : "Lataa video", "Slideshow" : "Diaesitys", "Previous" : "Edellinen", "Next" : "Seuraava", + "Editing is currently disabled for Live Photos" : "Muokkaus ei ole tällä hetkellä käytössä Livekuville", "Are you sure you want to delete?" : "Haluatko varmasti poistaa?", + "Failed to delete photo" : "Kuvan poisto eäonnistui", + "{name} binary exists and is executable." : "{name} binääri on suoritettavissa.", + "{name} binary not found." : "{name} binääriä ei löytynyt.", + "{name} binary is not executable." : "{name} binääri ei ole suoritettavissa.", + "{name} failed test: {info}." : "{name} testi epäonnistui: {info}.", + "{name} binary exists and is usable ({info})." : "{name} binääri on olemassa ja käytettävissä ({info}).", + "{name} binary status: {status}." : "{name} binäärin tila: {status}.", "Save as" : "Tallenna nimellä", "All changes will be lost." : "Kaikki muutokset menetetään.", "Are you sure you want to continue?" : "Haluatko varmasti jatkaa?", - "Continue" : "Jatka", "Undo" : "Kumoa", "Redo" : "Tee uudelleen", "Show original image" : "Näytä alkuperäinen kuva", @@ -201,12 +333,14 @@ OC.L10N.register( "Portrait" : "Muotokuva", "Ellipse" : "Ellipsi", "Classic TV" : "Klassinen TV", + "CinemaScope" : "CinemaScope", "Arrow" : "Nuoli", "Blur" : "Sumennus", "Brightness" : "Kirkkaus", "Contrast" : "Kontrasti", "Flip X" : "Käännä X", "Flip Y" : "Käännä Y", + "HSV" : "HSV", "Hue" : "Värisävy", "Saturation" : "Värikylläisyys", "Value" : "Arvo", @@ -248,10 +382,12 @@ OC.L10N.register( "Saved image size (width x height)" : "Tallennetun kuvan koko (leveys x korkeus)", "Actual size (100%)" : "Todellinen koko (100 %)", "Fit size" : "Sovita koko", + "Transcoding failed, check Nextcloud logs." : "Transkoodaus epäonnistui, katso lisätiedot Nextcloudin lokeista.", "Direct" : "Suoraan", "Auto" : "Automaattinen", "Shared Folder" : "Jaa kansio", "Shared Album" : "Jaettu albumi", + "Failed to remove {filename}." : "Ei voitu poistaa {filename}.", "Failed to create {albumName}." : "Albumin {albumName} luominen epäonnistui.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Albumin {currentAlbumName} nimen muuttaminen muotoon {newAlbumName} epäonnistui.", "General Failure" : "Yleinen virhe", @@ -264,6 +400,20 @@ OC.L10N.register( "Failed to favorite files." : "Tiedostojen asettaminen suosikeiksi epäonnistui.", "Failed to favorite some files." : "Joidenkin tiedostojen määrittäminen suosikiksi epäonnistui.", "Failed to favorite {fileName}." : "Tiedoston {fileName} asettaminen suosikiksi epäonnistui.", - "Your Timeline" : "Aikajanasi" + "Memories has been updated to {version}. Reload to get the new version." : "Muistot-sovellukset on päivitetty versioon {version}. Lataa sivu uudelleen avataksesi uuden version.", + "Upload some photos and make sure the timeline path is configured" : "Lataa kuvia ja varmista, että aikajanan polku on määritelty", + "Mark photos as favorite to find them easily" : "Merkitse kuvia suosikeiksi löytääksesi ne helposti", + "Memories from past years will appear here" : "Tässä näytetään muistoja menneiltä vuosilta", + "You will find your friends soon. Please be patient" : "Löydät ystäväsi pian. Odota rauhassa", + "Face Recognition is disabled. Enable in settings to find your friends" : "Kasvojentunnistus on pois käytöstä. Ota se käyttöön asetuksista löytääksesi ystäväsi", + "Your videos will appear here" : "Videosi tulevat tänne näkyviin", + "No photos in this album yet" : "Tässä albumissa ei ole vielä kuvia", + "Create an album to get started" : "Luo albumi aloittaaksesi", + "Archive photos you don't want to see in your timeline" : "Arkistoi kuvat, joita et halua nähdä aikajanallasi", + "Tag photos to find them easily" : "Lisää kuviin tunnisteita löytääksesi ne helpommin", + "Recognize is still working on your photos" : "Recognize käsittelee vielä kuviasi", + "Places you have been to will appear here" : "Sijainnit, joissa olet ollut, tulevat tänne näkyviin", + "Yes" : "Kyllä", + "No" : "Ei" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/fi.json b/l10n/fi.json index ed6d47ff..5c8ccdde 100644 --- a/l10n/fi.json +++ b/l10n/fi.json @@ -1,8 +1,12 @@ { "translations": { + "Download" : "Lataa", "Memories" : "Muistot", "Fast, modern and advanced photo management suite" : "Nopeaa, modernia ja kehittynyttä valokuvien hallintaa", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Muistot: Valokuvien hallinta Nextcloudissa\n\nMuistot-sovellus on *paristot mukana*-pakkaus valokuvien hallintaan Nextcloudissa. Kehittyneet ominaisuudet sisältävät muunmuassa:\n\n- **📸 Aikajana**: Järjestä kuvat ja videot ottopäivän mukaisesti, käyttäen EXIF-tietoja.\n- **⏪ Kelaa taaksepäin**: Hyppää nopeasti menneisiin hetkiin elääksesi muistot uudelleen.\n- **🤖 AI-tunnisteet**: Ryhmitä kuvia ihmisten ja esineiden perusteella. Toiminnon tarjoavat [recognize](https://github.com/nextcloud/recognize) ja [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albumit**: Luo albumeita ryhmittääksesi kuvia ja videoita. Jaa albumeja muiden kanssa.\n- **🫱🏻‍🫲🏻 Ulkoinen jako**: Jaa kuvia ja videoita ihmisille, jotka eivät käytä Nextcloud-palvelintasi.\n- **📱 Mobiilituki**: Työskentele minkä muotoiselta tai kokoiselta laitteelta tahansa käyttäen verkkosovellusta.\n- **✏️ Muokkaa metatietoja**: Muokkaa kuvien päivämääriä ja muita metatietoja tehokkaasti ja myös massoina .\n- **📦 Arkisto**: Arkistoi kuvia, joita et halua nähdä aikajanallasi, erilliseen kansioon.\n- **📹 Videoiden transkoodaus**: Transkoodaa videoita ja käytä HLS:ää saavuttaaksesi maksimaalisen suorituskyvyn.\n- **🗺️ Kartta**: Näe kuvasi kartalla, merkittynä tarkalla käänteisellä geokoodauksella.\n- **📦 Migraatio**: Siirrä tiedot helposti Nextcloud Kuvista ja Google Takeoutista.\n- **⚡️ Suorituskyky**: Tee tämä kaikki todella nopeasti.\n\n## 🚀 Asennus\n\n1. Asenna sovellus Nextcloud-sovelluskaupasta (testaa demoa [täällä](https://demo.memories.gallery/apps/memories/)).\n1. Tee suositellut [asetukset](https://memories.gallery/config/).\n1. Suorita `php occ memories:index` luodaksesi metadataindeksit jo olemassa oleville kuville.\n1. Avaa 📷 Muistot-sovellus Nextcloudissa ja aseta kuvakansio.", "Settings" : "Asetukset", + "People (Recognize)" : "Ihmiset (Recognize)", "People" : "Ihmiset", + "People (Face Recognition)" : "Ihmiset (Face Recognition)", "Info" : "Tietoa", "Timeline" : "Aikajana", "Folders" : "Kansiot", @@ -14,62 +18,157 @@ "Places" : "Paikat", "Map" : "Kartta", "Tags" : "Tunnisteet", + "View all" : "Näytä kaikki", + "Recognize" : "Recognize", + "Face Recognition" : "Face Recognition", "A better photos experience awaits you" : "Parempi kuvakokemus odottaa sinua", "Choose the root folder of your timeline to begin" : "Valitse aikajanan juurihakemisto aloittaaksesi", - "If you just installed Memories, run:" : "Jos olet juuri asentanut Muistot, suorita:", "Continue to Memories" : "Jatka Muistoihin", "Choose again" : "Valitse uudestaan", "Click here to start" : "Klikkaa tästä aloittaaksesi", "You can always change this later in settings" : "Voit vaihtaa tätä myöhemmin asetuksista", + "If you just installed Memories, visit the admin panel first." : "Jos olet juuri asentanut sovelluksen, käy ensin ylläpitoasetuksissa.", "Choose the root of your timeline" : "Valitse aikajanan juurihakemisto", "The selected folder does not seem to be valid. Try again." : "Valittu hakemisto ei ole kelvollinen. Yritä uudelleen.", + "No photos were found in the selected folder." : "Valitusta kansiosta ei löytynyt kuvia.", + "This can happen because your media is still indexing." : "Tämä saattaa johtua siitä, että mediaa vielä indeksoidaan.", + "Visit the admin panel to make sure Memories is configured correctly." : "Avaa ylläpitoasetukset varmistaaksesi, että sovelluksen asetukset on määritelty oikein.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} kohde löytyi polusta {path}","{n} kohdetta löytyi polusta {path}"], + "Metadata" : "Metatieto", "Edit" : "Muokkaa", - "No title" : "Ei otsikkoa", - "No description" : "Ei kuvausta", + "Failed to load metadata" : "Metatietojen lataaminen epäonnistui", "No coordinates" : "Ei koordinaatteja", "Click edit to set location" : "Napsauta muokataksesi sijaintia", + "Photos" : "Kuvat", "Explore" : "Löydä uusia", "Cancel" : "Peruuta", "Delete" : "Poista", "Remove from album" : "Poista albumista", - "Download" : "Lataa", "Favorite" : "Suosikki", "Unarchive" : "Pois arkistosta", "Edit metadata" : "Muokkaa metatietoja", "View in folder" : "Näe kansiossa", "Move to folder" : "Siirrä kansioon", "Add to album" : "Lisää albumiin", + "Move to person" : "Siirrä henkilölle", "Remove from person" : "Poista henkilöltä", - "You are about to download a large number of files. Are you sure?" : "Olet lataamassa suurta määrää tiedostoja. Oletko varma?", - "You are about to delete a large number of files. Are you sure?" : "Olet poistamassa suurta määrää tiedostoja. Oletko varma?", - "You are about to touch a large number of files. Are you sure?" : "Olet aikeissa koskettaa suurta määrää tiedostoja. Oletko varma?", + "You are about to download a large number of files." : "Olet aikeissa ladata suuren määrän tiedostoja", + "Continue" : "Jatka", + "You are about to delete a large number of files" : "Olet aikeissa poistaa suuren määrän tiedostoja", + "Failed to delete files" : "Tiedostojen poisto epäonnistui", + "Move" : "Siirrä", + "You are about to move a large number of files" : "Olet aikeissa siirtää suuren määrän tiedostoja", + "Only user \"{user}\" can update this person" : "Vain käyttäjä \"{user}\" voi päivittää tätä henkilöä", "_{n} selected_::_{n} selected_" : ["{n} valittu","{n} valittu"], + "Memories Settings" : "Muistot-sovelluksen asetukset", "General" : "Yleiset", "Timeline Path" : "Aikajanan polku", "Square grid mode" : "Ristikkonäkymä", + "Show past photos on top of timeline" : "Näytä vanhojen kuvien nostoja aikajanan yläosassa", + "Viewer" : "Katselin", + "Load full size image on zoom" : "Lataa täysikokoiset kuvat suurennettaessa", + "Always load full size image (not recommended)" : "Lataa aina täysikokoiset kuvat (ei suositeltu)", + "Show full file path in sidebar" : "Näytä tiedoston koko polku sivupalkissa", + "Account" : "Tili", + "Logged in as {user}" : "Kirjauduttu käyttäjänä {user}", + "Sign out" : "Kirjaudu ulos", + "Device Folders" : "Laitekansiot", + "Local folders to include in the timeline view" : "Paikalliset kansiot, joiden kuvat näytetään aikajanalla", "Folders Path" : "Kansioiden polku", "Show hidden folders" : "Näytä piilotetut kansiot", + "Sort folders oldest-first" : "Järjestä kansiot vanhimmasta uusimpaan", + "Sort albums oldest-first" : "Järjestä albumit vanhimmasta uusimpaan", "Choose Timeline Paths" : "Valitse aikajanan polut", "Choose the root for the folders view" : "Valitse kansionäkymän juurihakemisto", + "Are you sure you want to log out {user}?" : "Haluatko varmasti uloskirjata \"{user}\"?", "Close" : "Sulje", "{photoCount} photos" : "{photoCount} kuvaa", "Failed to load some photos" : "Joidenkin kuvien lataus epäonnistui", + "Failed to update setting" : "Asetuksen päivittäminen epäonnistui", + "Face Recognition is installed and enabled" : "Kasvojentunnistus on asennettu ja käytössä", + "Recommended Apps" : "Suositellut sovellukset", + "Path to packaged exiftool binary" : "Polku pakattuun exiftool-binääriin", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Tarvitset perliä vain, jos pakattu exiftool-binääri ei jostain syystä toimi.", + "Use system perl (only if exiftool binary does not work)" : "Käytä järjestelmän perliä (vain, jos exiftool-binääri ei toimi)", "EXIF Extraction" : "EXIF-purku", - "Media Indexing" : "Median indeksointi", + "You can configure the enabled Nextcloud preview providers below." : "Voit määritellä Nextcloudin käyttöön otetut esikatselujen generaattorit tähän.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Jos käytät Imaginarya esikatselujen generointiin, voit ohittaa tämän osion.", + "To enable RAW support, install the Camera RAW Previews app." : "RAW-tuki vaatii Camera RAW Previews-sovelluksen asentamisen.", + "Documentation." : "Dokumentaatio.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick on saatavilla [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick ei ole käytettävissä.", + "Image editing will not work correctly." : "Kuvien muokkaus ei toimi oikein.", + "The following MIME types are configured for preview generation." : "Seuraavat MIME-tyypit on määritelty esikatselujen generointiin.", + "Max preview size (trade-off between quality and storage requirements)." : "Suurin esikatselun koko (kompromissi laadun ja tiedostojen koon välillä).", + "Max memory for preview generation (MB)" : "Esikatselujen generointiin käytettävä muistin määrä enimmillään (MB)", + "Max size of preview files (MB)" : "Esikatselukuvien koko enimmillään (MB)", + "File Support" : "Tiedostojen tuki", + "Images (JPEG, PNG, GIF, BMP)" : "Kuvat (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videot (ffmpeg)", "External Link" : "Ulkoinen linkki", - "Performance" : "Suorituskyky", + "Help & Support" : "Ohjeet ja tuki", + "{n} media files have been indexed" : "{n} mediatiedostoa on indeksoitu", + "Automatic Indexing status: {status}" : "Automaattisen indeksoinnin tila: {status}", + "Last index job was run {t} seconds ago." : "Viimeisin indeksointi suoritettu {t} sekuntia sitten.", + "It took {t} seconds to complete." : "Kesto {t} sekuntia valmistumiseen.", + "It is still running or was interrupted." : "Yhä käynnissä tai keskeytetty.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Vain salaus palvelimella (OC_DEFAULT_MODULE) on tuettu, mutta toinen salausmoduuli on käytössä.", + "Index all media automatically (recommended)" : "Indeksoi kaikki mediatiedostot automaattisesti (suositeltu)", + "Disable background indexing" : "Poista käytöstä indeksointi taustalla", + "Force re-indexing of all files:" : "Pakota kaikkien tiedostojen uudelleenindeksointi:", + "Media Indexing" : "Median indeksointi", "HTTPS is enabled" : "HTTPS on käytössä", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 tai HTTP/3 on käytössä", + "Performance" : "Suorituskyky", "Unknown" : "Tuntematon", - "_{n} item added to album_::_{n} items added to album_" : ["{n} kohde lisätty albumiin","{n} kohdetta lisätty albumiin"], + "Enable Transcoding" : "Ota käyttöön transkoodaus", + "ffmpeg path" : "ffmpeg:n polku", + "ffprobe path" : "ffprobe:n polku", + "Global default video quality (user may override)" : "Yleinen oletusarvo videoiden laadulle (käyttäjä voi muuttaa itselleen)", + "Auto (adaptive transcode)" : "Automaattinen (mukautuva transkoodaus)", + "Original (transcode with max quality)" : "Alkuperäinen (transkoodaa parhaalla laadulla)", + "Direct (original video file without transcode)" : "Suora (alkuperäinen video ilman transkoodausta)", + "You must first make sure the correct drivers are installed before configuring acceleration." : "Varmista ensin, että oikeat ajurit on asennettuna ennen kiihdytyksen määrittelemistä.", + "Make sure you test hardware acceleration with various options after enabling." : "Testaa laitteistokiihdytys eri asetuksilla ennen sen käyttöönottoa.", + "Do not enable multiple types of hardware acceleration simultaneously." : "Älä ota käyttöön useita eri laitteistokiihdytyksiä samanaikaisesti.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "QuickSync Videota (QSV):ta tukevia Intel-prosessoreita sekä joitain AMD:n GPU:ita voi käyttää transkoodaukseen hyödyntämällä VA-API-kiihdytystä.", + "For more details on driver installation, check the documentation:" : "Lue lisätietoa ajurien asennuksesta dokumentaatiosta:", + "Enable acceleration with VA-API" : "Ota kiihdytys käyttöön VA-API:lla", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU:ita voidaan käyttää transkoodaukseen hyödyntämällä NVENC-enkooderia oikeilla ajureilla.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Määrittele käytettävä skaalain (riippuu asennetun SDK:n ja ffmpeg:n versiosta)", + "No automated tests are available for NVIDIA acceleration." : "Automatisoituja testejä ei ole NVIDIA-kiihdytykselle.", + "Enable acceleration with NVENC" : "Ota käyttöön kiihdytys NVENC:llä", + "Enable NVENC Temporal AQ" : "Ota käyttöön NVENC Temporal AQ", + "NPP scaler" : "NPP-skaalain", + "CUDA scaler" : "CUDA-skaalain", + "not recommended" : "ei suositeltu", + "HW Acceleration" : "Laitteistokiihdytys", + "VA-API device ({dev}) is readable" : "VA-API-laite ({dev}) on luettavissa", + "VA-API device ({dev}) not found" : "VA-API-laitetta ({dev}) ei löytynyt", + "VA-API device ({dev}) has incorrect permissions" : "VA-API laitteella ({dev}) on virheelliset käyttöoikeudet", + "VA-API device status: {status}" : "VA-API-laitteen tila: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Muistot-sovellus käyttää go-vod-transkooderia. Go-vodi voidaan ajaa ulkoisesti (esim. erillisessä Docker-säilössä laitekiihdytyksellä) tai käyttää sisäänrakennettua transkooderia. Seuraa dokumentaation ohjeistusta:", + "Enable external transcoder (go-vod)" : "Ota käyttöön ulkoinen transkooderi (go-vod)", + "Binary path (local only)" : "Binäärin polku (vain paikallinen)", + "Template" : "Malli", + "No items" : "Ei kohteita", + "Shared by {user}" : "Jakanut {user}", + "_{n} item_::_{n} items_" : ["{n} kohde","{n} kohdetta"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} kuva päivitetty","{n} kuvaa päivitetty"], "Add people or groups who can edit your album" : "Lisää henkilöitä tai ryhmiä, jotka voivat muokata albumia", + "Search for collaborators" : "Etsi osaanottajia", "Search people or groups" : "Etsi käyttäjiä tai ryhmiä", + "Add {collaboratorLabel} to the collaborators list" : "Lisää {collaboratorLabel} osaanottajien listaan", + "No collaborators available" : "Osanottajia ei löytynyt", + "Remove {collaboratorLabel} from the collaborators list" : "Poista {collaboratorLabel} osanottajien listalta", "Copy the public link" : "Kopioi julkinen linkki", "Public link copied!" : "Julkinen linkki kopioitu!", "Copy public link" : "Kopioi julkinen linkki", "Delete the public link" : "Poista julkinen linkki", "Share via public link" : "Jaa julkisen linkin kautta", + "Failed to fetch collaborators list." : "Osanottajien haku epäonnistui", "Public link" : "Julkinen linkki", "Failed to fetch album." : "Albumin noutaminen epäonnistui.", "Failed to update album." : "Albumin päivittäminen epäonnistui.", @@ -78,20 +177,25 @@ "New album" : "Uusi albumi", "Could not load the selected album" : "Valittua albumia ei voitu ladata", "Remove Album" : "Poista albumi", + "Are you sure you want to permanently remove album \"{name}\"?" : "Haluatko varmasti poistaa albumin \"{name}\"?", "Failed to delete {name}." : "Kohteen {name} poisto epäonnistui.", "Name of the album" : "Albumin nimi", "Location of the album" : "Albumin sijainti", "Go back to the previous view." : "Siirry takaisin edelliseen näkymään.", "Back" : "Takaisin", + "Go to the add collaborators view." : "Avaa osanottajien lisäysnäkymä.", "Add collaborators" : "Lisää avustajia", "Back to the new album form." : "Takaisin uuden albumin lomakkeeseen.", "Save" : "Tallenna", "Create album" : "Luo albumi", - "Add selection to album {albumName}" : "Lisää valinta albumiin {albumName}", - "Create a new album." : "Luo uusi albumi.", - "_%n item_::_%n items_" : ["%n kohde","%n kohdetta"], - "_Share with %n user_::_Share with %n users_" : ["Jaa %n käyttäjän kanssa","Jaa %n käyttäjän kanssa"], + "Invalid album name; should not contain any slashes." : "Virheellinen albumin nimi; nimi ei saa sisältää kauttaviivoja.", + "Search" : "Etsi", + "Create new album." : "Luo uusi albumi.", + "Save changes" : "Tallenna muutokset", "Share Album" : "Jaa albumi", + "Save collaborators for this album." : "Tallenna albumin osanottajat.", + "shared by {owner}" : "jakanut {owner}", + "_%n item_::_%n items_" : ["%n kohde","%n kohdetta"], "Newest" : "Uusimmat", "Year" : "Vuosi", "Month" : "Kuukausi", @@ -101,6 +205,7 @@ "Minute" : "Minuutti", "Oldest" : "Vanhimmat", "Invalid Date" : "Virheellinen päiväys", + "Newest date is older than oldest date" : "Uudempi päiväys on vanhempi kuin vanhin päiväys", "Title" : "Nimeke", "Description" : "Kuvaus", "Label" : "Nimike", @@ -109,21 +214,31 @@ "Lens Model" : "Linssin malli", "Copyright" : "Tekijänoikeus", "Empty" : "Tyhjä", + "Unchanged" : "Muuttamaton", "Reset" : "Palauta", "Remove location" : "Poista sijainti", + "Search location / landmark" : "Etsi sijaintia / maamerkkiä", + "Failed to search for location with Nominatim." : "Sijainnin haku Nominatimilla epäonnistui.", "Date / Time" : "Päivä / aika", + "Collaborative Tags" : "Yhteiset tunnisteet", "EXIF Fields" : "EXIF-kentät", + "Failed to load metadata for {n} photos." : "Metatietojen haku {n} kuvalle epäonnistui.", + "{n} photos cannot be edited (permissions error)." : "{n} kuvaa ei voitu muokata (käyttöoikeusvirhe)", "Remove person" : "Poista henkilö", "Are you sure you want to remove {name}?" : "Haluatko varmasti poistaa {name}?", + "Only user \"{user}\" can delete this person" : "Vain käyttäjä \"{user}\" voi poistaa tämän henkilön", "Rename person" : "Nimeä henkilö uudelleen", "Name" : "Nimi", "Update" : "Päivitä", "Failed to rename {oldName} to {name}." : "Uudelleen nimeäminen nimestä {oldName} nimeen {name} epäonnistui.", - "Search" : "Etsi", "Loading …" : "Ladataan…", + "Enter name of the new face" : "Syötä kasvojen nimi", + "Failed to create face" : "Kasvojen luonti epäonnistui", "Merge {name} with person" : "Yhdistä {name} henkilöön", - "Are you sure you want to merge {name} with {newName}?" : "Haluatko varmasti yhdistää kohteen {name} henkilöön {newName}?", + "Merge faces" : "Yhdistä kasvot", + "unnamed person" : "nimetön henkilö", "Too many failures, aborting" : "Liian monta epäonnistumista, lopetetaan", + "Error while moving {basename}" : "Virhe siirtäessä kohdetta {basename}", "Failed to move {name}." : "Kohteen {name} siirtäminen epäonnistui.", "Move selected photos to person" : "Siirrä valitut kuvat henkilölle", "Choose a folder" : "Valitse kansio", @@ -133,27 +248,38 @@ "Add a root to your timeline" : "Lisää juurihakemisto aikajanalle", "Link Sharing" : "Linkin jakaminen", "You cannot share the root folder" : "Et voi jakaa juurikansiota", + "Public link shares are available to people outside Nextcloud." : "Julkisen linkin kautta jaetut kuvat näkyvät Nextcloudin ulkopuolisille ihmisille.", + "You may create or update permissions on public links using the sidebar." : "Voit luoda tai päivittää julkisten linkkien käyttöoikeuksia sivupalkista.", "Click a link to copy to clipboard." : "Napsauta linkkiä kopioidaksesi sen leikepöydälle.", "Share link" : "Jaa linkki", "Create Link" : "Luo linkki", "Refresh" : "Päivitä", "Password protected" : "Salasanasuojattu", "Expires" : "Vanhenee", + "Editable" : "Muokattavissa", "Read only" : "Vain luku", "Link copied to clipboard" : "Linkki kopioitu leikepöydälle", "Share File" : "Jaa tiedosto", "Reduced Size" : "Pienennetty koko", + "Share a lower resolution image preview" : "Jaa kuvan esikatselu matalalla resoluutiolla", "High Resolution" : "Korkea resoluutio", + "Share the video as a high quality MOV" : "Jaa video korkealaatuisena MOV-tiedostona", + "Share the image as a high quality JPEG" : "Jaa kuva korkealaatuisena JPEG-tiedostona", "Original File" : "Alkuperäinen tiedosto", + "Share the original image / video file" : "Jaa alkuperäinen kuva-/videotiedosto", "Public Link" : "Julkinen linkki", + "Share an external Nextcloud link" : "Jaa ulkoinen Nextcloud-linkki", "Failed to download file" : "Tiedoston lataaminen epäonnistui", "Cannot share this type of data" : "Tämän tyyppistä dataa ei voida jakaa", "Sort by date" : "Järjestä päiväyksen mukaan", "Sort by name" : "Järjestä nimen mukaan", "Share album" : "Jaa albumi", "Download album" : "Lataa albumi", - "Delete album" : "Poista albumi", + "Nothing to show here" : "Täällä ei ole mitään näytettävää", + "Unassigned faces" : "Määrittämättömät kasvot", "Merge with different person" : "Yhdistä toisen henkilön kanssa", + "Mark person in preview" : "Merkkaa henkilö esikatselussa", + "Unnamed person" : "Nimetön henkilö", "Folder View" : "Kansionäkymä", "Timeline View" : "Aikajananäkymä", "Share folder" : "Jaa kansio", @@ -164,16 +290,22 @@ "Unsaved changes" : "Tallentamattomia muutoksia", "Drop changes" : "Hylkää muutokset", "Share" : "Jaa", - "Sidebar" : "Sivupalkki", "Download Video" : "Lataa video", "Slideshow" : "Diaesitys", "Previous" : "Edellinen", "Next" : "Seuraava", + "Editing is currently disabled for Live Photos" : "Muokkaus ei ole tällä hetkellä käytössä Livekuville", "Are you sure you want to delete?" : "Haluatko varmasti poistaa?", + "Failed to delete photo" : "Kuvan poisto eäonnistui", + "{name} binary exists and is executable." : "{name} binääri on suoritettavissa.", + "{name} binary not found." : "{name} binääriä ei löytynyt.", + "{name} binary is not executable." : "{name} binääri ei ole suoritettavissa.", + "{name} failed test: {info}." : "{name} testi epäonnistui: {info}.", + "{name} binary exists and is usable ({info})." : "{name} binääri on olemassa ja käytettävissä ({info}).", + "{name} binary status: {status}." : "{name} binäärin tila: {status}.", "Save as" : "Tallenna nimellä", "All changes will be lost." : "Kaikki muutokset menetetään.", "Are you sure you want to continue?" : "Haluatko varmasti jatkaa?", - "Continue" : "Jatka", "Undo" : "Kumoa", "Redo" : "Tee uudelleen", "Show original image" : "Näytä alkuperäinen kuva", @@ -199,12 +331,14 @@ "Portrait" : "Muotokuva", "Ellipse" : "Ellipsi", "Classic TV" : "Klassinen TV", + "CinemaScope" : "CinemaScope", "Arrow" : "Nuoli", "Blur" : "Sumennus", "Brightness" : "Kirkkaus", "Contrast" : "Kontrasti", "Flip X" : "Käännä X", "Flip Y" : "Käännä Y", + "HSV" : "HSV", "Hue" : "Värisävy", "Saturation" : "Värikylläisyys", "Value" : "Arvo", @@ -246,10 +380,12 @@ "Saved image size (width x height)" : "Tallennetun kuvan koko (leveys x korkeus)", "Actual size (100%)" : "Todellinen koko (100 %)", "Fit size" : "Sovita koko", + "Transcoding failed, check Nextcloud logs." : "Transkoodaus epäonnistui, katso lisätiedot Nextcloudin lokeista.", "Direct" : "Suoraan", "Auto" : "Automaattinen", "Shared Folder" : "Jaa kansio", "Shared Album" : "Jaettu albumi", + "Failed to remove {filename}." : "Ei voitu poistaa {filename}.", "Failed to create {albumName}." : "Albumin {albumName} luominen epäonnistui.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Albumin {currentAlbumName} nimen muuttaminen muotoon {newAlbumName} epäonnistui.", "General Failure" : "Yleinen virhe", @@ -262,6 +398,20 @@ "Failed to favorite files." : "Tiedostojen asettaminen suosikeiksi epäonnistui.", "Failed to favorite some files." : "Joidenkin tiedostojen määrittäminen suosikiksi epäonnistui.", "Failed to favorite {fileName}." : "Tiedoston {fileName} asettaminen suosikiksi epäonnistui.", - "Your Timeline" : "Aikajanasi" + "Memories has been updated to {version}. Reload to get the new version." : "Muistot-sovellukset on päivitetty versioon {version}. Lataa sivu uudelleen avataksesi uuden version.", + "Upload some photos and make sure the timeline path is configured" : "Lataa kuvia ja varmista, että aikajanan polku on määritelty", + "Mark photos as favorite to find them easily" : "Merkitse kuvia suosikeiksi löytääksesi ne helposti", + "Memories from past years will appear here" : "Tässä näytetään muistoja menneiltä vuosilta", + "You will find your friends soon. Please be patient" : "Löydät ystäväsi pian. Odota rauhassa", + "Face Recognition is disabled. Enable in settings to find your friends" : "Kasvojentunnistus on pois käytöstä. Ota se käyttöön asetuksista löytääksesi ystäväsi", + "Your videos will appear here" : "Videosi tulevat tänne näkyviin", + "No photos in this album yet" : "Tässä albumissa ei ole vielä kuvia", + "Create an album to get started" : "Luo albumi aloittaaksesi", + "Archive photos you don't want to see in your timeline" : "Arkistoi kuvat, joita et halua nähdä aikajanallasi", + "Tag photos to find them easily" : "Lisää kuviin tunnisteita löytääksesi ne helpommin", + "Recognize is still working on your photos" : "Recognize käsittelee vielä kuviasi", + "Places you have been to will appear here" : "Sijainnit, joissa olet ollut, tulevat tänne näkyviin", + "Yes" : "Kyllä", + "No" : "Ei" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/fr.js b/l10n/fr.js index a0b22ddd..1482f05c 100644 --- a/l10n/fr.js +++ b/l10n/fr.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Télécharger", "Memories" : "Souvenirs", "Fast, modern and advanced photo management suite" : "Suite d'outils de gestion de photos rapide, moderne et avancée", "Settings" : "Paramètres", @@ -22,17 +23,17 @@ OC.L10N.register( "Recognize" : "Recognize", "A better photos experience awaits you" : "Une meilleure expérience photo vous attend", "Choose the root folder of your timeline to begin" : "Choisissez le dossier racine de votre fil chronologique pour commencer", - "If you just installed Memories, run:" : "Si vous venez d'installer Souvenirs, exécuter :", "Continue to Memories" : "Continuer vers Souvenirs", "Choose again" : "Choisir à nouveau", "Click here to start" : "Cliquer ici pour commencer", "You can always change this later in settings" : "Vous pouvez toujours changer cela ultérieurement dans les paramètres", "Choose the root of your timeline" : "Choisissez le début de votre fil chronologique", "The selected folder does not seem to be valid. Try again." : "Le dossier sélectionné ne semble pas être valide. Essayer à nouveau.", + "No photos were found in the selected folder." : "Aucune photo n'a été trouvée dans le dossier sélectionné.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visitez le panneau d'administration pour vous assurer que Souvenirs est configuré correctement.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} élément trouvé dans {path}","{n} éléments trouvés dans {path}","{n} éléments trouvés dans {path}"], + "Metadata" : "Métadonnées", "Edit" : "Modifier", - "No title" : "Pas de titre", - "No description" : "Pas de description", "No coordinates" : "Pas de coordonnées", "Click edit to set location" : "Cliquer sur modifier pour définir le lieu", "Photos" : "Images", @@ -40,7 +41,6 @@ OC.L10N.register( "Cancel" : "Annuler", "Delete" : "Supprimer", "Remove from album" : "Supprimer de l'album", - "Download" : "Télécharger", "Favorite" : "Favoris", "Unarchive" : "Désarchiver", "Edit metadata" : "Modifier les métadonnées", @@ -49,10 +49,9 @@ OC.L10N.register( "Add to album" : "Ajouter à l'album", "Move to person" : "Déplacer vers une personne", "Remove from person" : "Retirer de la personne", - "You are about to download a large number of files. Are you sure?" : "Vous êtes sur le point de télécharger un grand nombre de fichiers. Êtes-vous certain de vouloir le faire ?", - "You are about to delete a large number of files. Are you sure?" : "Vous êtes sur le point de supprimer un grand nombre de fichiers. Êtes-vous certain⋅e de vouloir le faire ?", + "Continue" : "Continuer", "Failed to delete files" : "Échec de la suppression des fichiers", - "You are about to touch a large number of files. Are you sure?" : "Vous êtes sur le point de modifier un grand nombre de fichiers. Êtes-vous sûr(e) ?", + "Move" : "Déplacer", "You must enable \"Mark person in preview\" to use this feature" : "Vous devez activer l'option \"Marquer la personne dans l'aperçu\" pour utiliser cette fonctionnalité", "Only user \"{user}\" can update this person" : "Seul l'utilisateur·trice \"{user}\" peut mettre à jour cette personne", "_{n} selected_::_{n} selected_" : ["{n} sélectionné","{n} sélectionnés","{n} sélectionnés"], @@ -61,23 +60,30 @@ OC.L10N.register( "Timeline Path" : "Emplacement du Fil chronologique", "Square grid mode" : "Mode grille carrée", "Show past photos on top of timeline" : "Montrer les photos passées au-dessus de la chronologie", + "Viewer" : "Visionneuse", "Load full size image on zoom" : "Charger l'image en taille réelle lors du zoom", "Always load full size image (not recommended)" : "Toujours charger l'image en taille réelle (non recommandé)", + "Account" : "Compte", + "Logged in as {user}" : "Connecté en tant que {user}", + "Sign out" : "Se déconnecter", "Folders Path" : "Chemin du dossier", "Show hidden folders" : "Afficher les dossiers cachés", "Sort folders oldest-first" : "Classer les dossiers les plus anciens en premier", "Sort albums oldest-first" : "Classer les albums les plus anciens en premier", "Choose Timeline Paths" : "Choisir les chemins de la ligne du temps", "Choose the root for the folders view" : "Choisissez la racine pour la vue des dossiers", + "Are you sure you want to log out {user}?" : "Êtes-vous sûr de vouloir déconnecter {user} ?", "Close" : "Fermer", "{photoCount} photos" : "{photoCount} photos", "Failed to load some photos" : "Échec du chargement de certaines photos", "Failed to update setting" : "Échec de la mise à jour des paramètres", - "EXIF Extraction" : "Extraction EXIF", "Path to packaged exiftool binary" : "Chemin vers l'exécutable exiftool livré", "You need perl only if the packaged exiftool binary does not work for some reason." : "Vous n'avez besoin que de Perl si le paquet binaire exiftool ne fonctionne pas.", "Use system perl (only if exiftool binary does not work)" : "Utilisez le système Perl (seulement si le binaire exiftool ne fonctionne pas)", - "Media Indexing" : "Indexation des médias", + "EXIF Extraction" : "Extraction EXIF", + "Max memory for preview generation (MB)" : "Mémoire maximale pour la génération d'un aperçu (Mo)", + "Max size of preview files (MB)" : "Taille maximale des fichiers de prévisualisation (Mo)", + "External Link" : "Lien Externe", "{n} media files have been indexed" : "{n} fichiers multimédias ont été indexés", "Automatic Indexing status: {status}" : "État de l'indexation automatique : {status}", "Last index job was run {t} seconds ago." : "Le dernier travail d'indexation a été exécuté il y a {t} secondes.", @@ -85,7 +91,6 @@ OC.L10N.register( "It is still running or was interrupted." : "Elle est toujours en cours ou a été interrompu.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Seul le chiffrement côté serveur (OC_DEFAULT_MODULE) est pris en charge, mais un autre module de chiffrement est activé.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Les index EXIF sont construits et vérifiés dans le cadre d'une tâche périodique en arrière-plan. Soyez prudent lorsque vous sélectionnez autre chose que l'indexation automatique. Par exemple, le fait de définir l'indexation sur les seuls dossiers du fil chronologique peut entraîner des retards avant que les médias ne soient disponibles pour les utilisateur·trice·s, étant donné que l'utilisateur·trice·s ne configure le fil chronologique qu'après s'être connecté.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Les dossiers contenant un fichier \".nomedia\" sont toujours exclus de l'indexation.", "Index all media automatically (recommended)" : "Indexer automatiquement tous les médias (recommandé)", "Index per-user timeline folders (not recommended)" : "Indexer le dossier du fil chronologique de chaque utilisateur·trice (non recommandé)", "Index a fixed relative path" : "Indexer un chemin d'accès relatif fixe", @@ -96,15 +101,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "Forcer la réindexation de tous les fichiers :", "You can limit indexing by user and/or folder:" : "Vous pouvez limiter l'indexation par utilisateur·trice et/ou par dossier :", "Clear all existing index tables:" : "Effacer toutes les tables d'index existantes :", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Les types MIME suivants sont configurés correctement pour la génération d'aperçus. Plus de renseignements :", - "External Link" : "Lien Externe", - "Performance" : "Performance", + "Media Indexing" : "Indexation des médias", "HTTPS is enabled" : "HTTPS est activé", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Vous accédez à cette page dans un environnement non sécurisé. Plusieurs API du navigateur ne sont pas disponibles, ce qui rendra Souvenirs très lent. Activez HTTPS sur votre serveur pour améliorer les performances.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ou HTTP/3 est activé", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 ou HTTP/3 est fortement recommandé ({httpVer} détecté)", + "Performance" : "Performance", "Unknown" : "Inconnu", - "Reverse Geocoding" : "Géocodage inverse", "Database is populated with {n} geometries." : "La base de données contient {n} géométries.", "Geometry table has not been created." : "Le tableau de géométrie n'a pas été créé.", "Looks like the planet data is incomplete." : "Il semble que les données géographique soient incomplètes.", @@ -114,13 +117,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "Si le bouton ci-dessous ne fonctionne pas pour importer les données géographique, utilisez la commande suivante :", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Remarque : les données géographique sont stockées dans la table memories_planet_geometry, sans préfixe.", "Download planet database" : "Télécharger la base de données géographique", + "Reverse Geocoding" : "Géocodage inverse", "Geometry support was not detected in your database" : "Le support des géométries n'a pas été détecté dans votre base de données", "MySQL-like geometry support was detected " : "Support similaire aux géométries pour MySQL détecté", "Postgres native geometry support was detected" : "Support natif Postgres des géométries détecté", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Il semble que la base de données soit déjà configurée. Êtes-vous sûr de vouloir télécharger à nouveau les données géographique ?", "You are about to download the planet database. This may take a while." : "Vous êtes sur le point de télécharger la base de données géographique. Cela peut prendre un certain temps.", "This may also cause all photos to be re-indexed!" : "Cela peut également entraîner la réindexation de toutes les photos !", - "Video Streaming" : "Diffusion vidéo", "Live transcoding provides for adaptive streaming of videos using HLS." : "Le transcodage à la volée permet la diffusion adaptative des vidéos en utilisant HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Notez que ceci peut être très intensif pour le processeur à défaut d'accélération matérielle, et que le transcodage ne sera pas utilisé pour les stockages externes.", "Enable Transcoding" : "Activer le transcodage", @@ -130,14 +133,13 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Auto (transcodage adaptatif)", "Original (transcode with max quality)" : "Original (transcoder avec la qualité max)", "Direct (original video file without transcode)" : "Direct (fichier vidéo original sans transcodage)", - "Hardware Acceleration" : "Accélération matérielle", + "Video Streaming" : "Diffusion vidéo", "You must first make sure the correct drivers are installed before configuring acceleration." : "Vous devez d'abord vous assurer que les pilotes adéquats soient installés avant de configurer l'accélération.", "Make sure you test hardware acceleration with various options after enabling." : "Assurez-vous de tester l'accélération matérielle avec différentes options après activation.", "Do not enable multiple types of hardware acceleration simultaneously." : "N'activez pas plusieurs types d'accélérations matérielles simultanément.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Les processeurs Intel supportant QuickSync Video (QSV) ainsi que certains GPUs AMD peuvent être utilisés pour transcoder grâce à l'accélération VA-API.", "For more details on driver installation, check the documentation:" : "Pour plus de détails sur l'installation du pilote, consultez la documentation :", "Enable acceleration with VA-API" : "Activer l'accélération avec VA-API", - "Enable low-power mode (QSV)" : "Activer le mode basse consommation (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Les GPUs NVIDIA peuvent être utilisés pour le transcodage grâce à l'encodeur NVENC avec les pilotes appropriés.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "En fonction des versions installées du kit de développement et de ffmpeg, vous devez préciser le zoom à utiliser", "No automated tests are available for NVIDIA acceleration." : "Aucun test automatisé n'est disponible pour l'accélération NVIDIA.", @@ -149,13 +151,14 @@ OC.L10N.register( "VA-API device ({dev}) not found" : "Périphérique VA-API ({dev}) introuvable", "VA-API device ({dev}) has incorrect permissions" : "Le périphérique VA-API ({dev}) présente des permissions incorrectes", "VA-API device status: {status}" : "État du périphérique VA-API ({dev}) : {status}", - "Transcoder configuration" : "Configuration du transcoder", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Souvenirs utilise le transcodeur go-vod. Vous pouvez exécuter go-vod en externe (par exemple dans un conteneur Docker séparé pour l'accélération matérielle) ou utiliser le transcodeur intégré. Pour utiliser un transcodeur externe, activez l'option suivante et suivez les instructions de la documentation :", "Enable external transcoder (go-vod)" : "Activer le transcodeur externe (go-vod)", "Binary path (local only)" : "Chemin des exécutables (local uniquement)", "Bind address (local only)" : "Adresse de liaison (locale uniquement)", "Connection address (same as bind if local)" : "Adresse de connexion (identique à liaison si locale)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} élément ajouté à l'album","{n} éléments ajoutés à l'album","{n} éléments ajoutés à l'album"], + "Template" : "Modèle", + "No items" : "Aucun élément", + "Shared by {user}" : "Partagé par {user}", "Add people or groups who can edit your album" : "Ajoutez des personnes ou des groupes qui peuvent modifier votre album", "Search for collaborators" : "Rechercher des collaborateurs", "Search people or groups" : "Recherche des personnes ou des groupes", @@ -177,7 +180,6 @@ OC.L10N.register( "Could not load the selected album" : "Impossible de charger l'album sélectionné", "Remove Album" : "Retirer l'album", "Are you sure you want to permanently remove album \"{name}\"?" : "Êtes-vous sûr de vouloir supprimer définitivement l'album \"{name}\" ?", - "Only user \"{user}\" can delete this album" : "Seul l'utilisateur·trice \"{user}\" peut supprimer cet album", "Failed to delete {name}." : "Échec de la suppression {name}.", "Name of the album" : "Nom de l'album", "Location of the album" : "Emplacement de l'album", @@ -189,12 +191,11 @@ OC.L10N.register( "Save" : "Enregistrer", "Create album" : "Créer un album", "Invalid album name; should not contain any slashes." : "Nom d'album invalide ; il ne devrait pas contenir de slash.", - "Add selection to album {albumName}" : "Ajouter la sélection à l'album {albumName}", - "Create a new album." : "Créer un nouvel album", - "_%n item_::_%n items_" : ["%n élément ","%n éléments","%n éléments"], - "_Share with %n user_::_Share with %n users_" : ["Partager avec %n utilisateur","Partager avec %n utilisateurs","Partager avec %n utilisateurs"], + "Search" : "Recherche", + "Save changes" : "Enregistrer les modifications", "Share Album" : "Partager l'album", "Save collaborators for this album." : "Enregistrer les collaborateurs pour cet album.", + "_%n item_::_%n items_" : ["%n élément ","%n éléments","%n éléments"], "Newest" : "Plus récent", "Year" : "Année", "Month" : "Mois", @@ -231,18 +232,14 @@ OC.L10N.register( "Name" : "Nom", "Update" : "Mise à jour", "Failed to rename {oldName} to {name}." : "Échec du renommage de {oldName} en {name}.", - "Search" : "Recherche", "Loading …" : "Chargement …", "Enter name of the new face" : "Saisir le nom de la nouvelle personne", "Failed to create face" : "Échec de la création d'une personne", "Merge {name} with person" : "Fusionner {name} avec la personne", - "Are you sure you want to merge {name} with {newName}?" : "Êtes-vous sûr de vouloir fusionner {name} avec {newName} ?", "Too many failures, aborting" : "Trop d'échecs, abandon", "Error while moving {basename}" : "Erreur lors du déplacement de {basename}", "Failed to move {name}." : "Impossible de déplacer {name}.", "Move selected photos to person" : "Déplacer les photos sélectionnées vers la personne", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Êtes-vous sûr de vouloir déplacer les photos sélectionnées de {name} vers {target} ?", - "An error occured while moving photos from {name}." : "Une erreur s'est produite lors du déplacement des photos provenant de {name}.", "Choose a folder" : "Choisir un dossier", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} élément déplacé vers le dossier","{n} éléments déplacés vers le dossier","{n} éléments déplacés vers le dossier"], "Remove" : "Retirer", @@ -277,8 +274,8 @@ OC.L10N.register( "Sort by name" : "Trier par nom", "Share album" : "Partager l'album", "Download album" : "Télécharger l'album", - "Delete album" : "Supprimer l'album", "Nothing to show here" : "Rien à afficher ici", + "Unassigned faces" : "Visages non attribués", "Merge with different person" : "Fusionner avec une différente personne", "Mark person in preview" : "Marquer la personne dans l'aperçu", "Folder View" : "Vue Dossier", @@ -292,7 +289,6 @@ OC.L10N.register( "Drop changes" : "Abandonner les modifications", "Share" : "Partage", "Play Live Photo" : "Lire la photo en direct", - "Sidebar" : "Panneau latéral", "Download Video" : "Télécharger la vidéo", "Slideshow" : "Diaporama", "Previous" : "Précédente", @@ -309,7 +305,6 @@ OC.L10N.register( "Save as" : "Enregistrer sous", "All changes will be lost." : "Tous les changements seront perdus.", "Are you sure you want to continue?" : "Êtes-vous sûr de vouloir continuer ?", - "Continue" : "Continuer", "Undo" : "Annuler", "Redo" : "Rétablir", "Show original image" : "Afficher l'image originale", @@ -406,6 +401,7 @@ OC.L10N.register( "Failed to favorite files." : "Échec de la mise en favoris des fichiers.", "Failed to favorite some files." : "Échec de l'ajout en favoris de certains fichiers.", "Failed to favorite {fileName}." : "Échec de l'ajout aux favoris de {fileName}.", + "Memories has been updated to {version}. Reload to get the new version." : "Souvenirs a été mise à jour vers {version}. Recharger pour obtenir la nouvelle version.", "Upload some photos and make sure the timeline path is configured" : "Téléversez des photos et assurez-vous que le chemin de la chronologie est configuré", "Mark photos as favorite to find them easily" : "Marquez les photos comme favorites pour les trouver facilement", "Memories from past years will appear here" : "Les souvenirs des années passées apparaîtront ici", @@ -418,6 +414,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Étiquetez vos photos pour les trouver facilement", "Recognize is still working on your photos" : "Recognize travaille encore sur vos photos", "Places you have been to will appear here" : "Les endroits où vous êtes allé apparaîtront ici", - "Your Timeline" : "Votre fil chronologique" + "Yes" : "Oui", + "No" : "Non" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/fr.json b/l10n/fr.json index 148685b2..28f6b859 100644 --- a/l10n/fr.json +++ b/l10n/fr.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Télécharger", "Memories" : "Souvenirs", "Fast, modern and advanced photo management suite" : "Suite d'outils de gestion de photos rapide, moderne et avancée", "Settings" : "Paramètres", @@ -20,17 +21,17 @@ "Recognize" : "Recognize", "A better photos experience awaits you" : "Une meilleure expérience photo vous attend", "Choose the root folder of your timeline to begin" : "Choisissez le dossier racine de votre fil chronologique pour commencer", - "If you just installed Memories, run:" : "Si vous venez d'installer Souvenirs, exécuter :", "Continue to Memories" : "Continuer vers Souvenirs", "Choose again" : "Choisir à nouveau", "Click here to start" : "Cliquer ici pour commencer", "You can always change this later in settings" : "Vous pouvez toujours changer cela ultérieurement dans les paramètres", "Choose the root of your timeline" : "Choisissez le début de votre fil chronologique", "The selected folder does not seem to be valid. Try again." : "Le dossier sélectionné ne semble pas être valide. Essayer à nouveau.", + "No photos were found in the selected folder." : "Aucune photo n'a été trouvée dans le dossier sélectionné.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visitez le panneau d'administration pour vous assurer que Souvenirs est configuré correctement.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} élément trouvé dans {path}","{n} éléments trouvés dans {path}","{n} éléments trouvés dans {path}"], + "Metadata" : "Métadonnées", "Edit" : "Modifier", - "No title" : "Pas de titre", - "No description" : "Pas de description", "No coordinates" : "Pas de coordonnées", "Click edit to set location" : "Cliquer sur modifier pour définir le lieu", "Photos" : "Images", @@ -38,7 +39,6 @@ "Cancel" : "Annuler", "Delete" : "Supprimer", "Remove from album" : "Supprimer de l'album", - "Download" : "Télécharger", "Favorite" : "Favoris", "Unarchive" : "Désarchiver", "Edit metadata" : "Modifier les métadonnées", @@ -47,10 +47,9 @@ "Add to album" : "Ajouter à l'album", "Move to person" : "Déplacer vers une personne", "Remove from person" : "Retirer de la personne", - "You are about to download a large number of files. Are you sure?" : "Vous êtes sur le point de télécharger un grand nombre de fichiers. Êtes-vous certain de vouloir le faire ?", - "You are about to delete a large number of files. Are you sure?" : "Vous êtes sur le point de supprimer un grand nombre de fichiers. Êtes-vous certain⋅e de vouloir le faire ?", + "Continue" : "Continuer", "Failed to delete files" : "Échec de la suppression des fichiers", - "You are about to touch a large number of files. Are you sure?" : "Vous êtes sur le point de modifier un grand nombre de fichiers. Êtes-vous sûr(e) ?", + "Move" : "Déplacer", "You must enable \"Mark person in preview\" to use this feature" : "Vous devez activer l'option \"Marquer la personne dans l'aperçu\" pour utiliser cette fonctionnalité", "Only user \"{user}\" can update this person" : "Seul l'utilisateur·trice \"{user}\" peut mettre à jour cette personne", "_{n} selected_::_{n} selected_" : ["{n} sélectionné","{n} sélectionnés","{n} sélectionnés"], @@ -59,23 +58,30 @@ "Timeline Path" : "Emplacement du Fil chronologique", "Square grid mode" : "Mode grille carrée", "Show past photos on top of timeline" : "Montrer les photos passées au-dessus de la chronologie", + "Viewer" : "Visionneuse", "Load full size image on zoom" : "Charger l'image en taille réelle lors du zoom", "Always load full size image (not recommended)" : "Toujours charger l'image en taille réelle (non recommandé)", + "Account" : "Compte", + "Logged in as {user}" : "Connecté en tant que {user}", + "Sign out" : "Se déconnecter", "Folders Path" : "Chemin du dossier", "Show hidden folders" : "Afficher les dossiers cachés", "Sort folders oldest-first" : "Classer les dossiers les plus anciens en premier", "Sort albums oldest-first" : "Classer les albums les plus anciens en premier", "Choose Timeline Paths" : "Choisir les chemins de la ligne du temps", "Choose the root for the folders view" : "Choisissez la racine pour la vue des dossiers", + "Are you sure you want to log out {user}?" : "Êtes-vous sûr de vouloir déconnecter {user} ?", "Close" : "Fermer", "{photoCount} photos" : "{photoCount} photos", "Failed to load some photos" : "Échec du chargement de certaines photos", "Failed to update setting" : "Échec de la mise à jour des paramètres", - "EXIF Extraction" : "Extraction EXIF", "Path to packaged exiftool binary" : "Chemin vers l'exécutable exiftool livré", "You need perl only if the packaged exiftool binary does not work for some reason." : "Vous n'avez besoin que de Perl si le paquet binaire exiftool ne fonctionne pas.", "Use system perl (only if exiftool binary does not work)" : "Utilisez le système Perl (seulement si le binaire exiftool ne fonctionne pas)", - "Media Indexing" : "Indexation des médias", + "EXIF Extraction" : "Extraction EXIF", + "Max memory for preview generation (MB)" : "Mémoire maximale pour la génération d'un aperçu (Mo)", + "Max size of preview files (MB)" : "Taille maximale des fichiers de prévisualisation (Mo)", + "External Link" : "Lien Externe", "{n} media files have been indexed" : "{n} fichiers multimédias ont été indexés", "Automatic Indexing status: {status}" : "État de l'indexation automatique : {status}", "Last index job was run {t} seconds ago." : "Le dernier travail d'indexation a été exécuté il y a {t} secondes.", @@ -83,7 +89,6 @@ "It is still running or was interrupted." : "Elle est toujours en cours ou a été interrompu.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Seul le chiffrement côté serveur (OC_DEFAULT_MODULE) est pris en charge, mais un autre module de chiffrement est activé.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Les index EXIF sont construits et vérifiés dans le cadre d'une tâche périodique en arrière-plan. Soyez prudent lorsque vous sélectionnez autre chose que l'indexation automatique. Par exemple, le fait de définir l'indexation sur les seuls dossiers du fil chronologique peut entraîner des retards avant que les médias ne soient disponibles pour les utilisateur·trice·s, étant donné que l'utilisateur·trice·s ne configure le fil chronologique qu'après s'être connecté.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Les dossiers contenant un fichier \".nomedia\" sont toujours exclus de l'indexation.", "Index all media automatically (recommended)" : "Indexer automatiquement tous les médias (recommandé)", "Index per-user timeline folders (not recommended)" : "Indexer le dossier du fil chronologique de chaque utilisateur·trice (non recommandé)", "Index a fixed relative path" : "Indexer un chemin d'accès relatif fixe", @@ -94,15 +99,13 @@ "Force re-indexing of all files:" : "Forcer la réindexation de tous les fichiers :", "You can limit indexing by user and/or folder:" : "Vous pouvez limiter l'indexation par utilisateur·trice et/ou par dossier :", "Clear all existing index tables:" : "Effacer toutes les tables d'index existantes :", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Les types MIME suivants sont configurés correctement pour la génération d'aperçus. Plus de renseignements :", - "External Link" : "Lien Externe", - "Performance" : "Performance", + "Media Indexing" : "Indexation des médias", "HTTPS is enabled" : "HTTPS est activé", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Vous accédez à cette page dans un environnement non sécurisé. Plusieurs API du navigateur ne sont pas disponibles, ce qui rendra Souvenirs très lent. Activez HTTPS sur votre serveur pour améliorer les performances.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ou HTTP/3 est activé", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 ou HTTP/3 est fortement recommandé ({httpVer} détecté)", + "Performance" : "Performance", "Unknown" : "Inconnu", - "Reverse Geocoding" : "Géocodage inverse", "Database is populated with {n} geometries." : "La base de données contient {n} géométries.", "Geometry table has not been created." : "Le tableau de géométrie n'a pas été créé.", "Looks like the planet data is incomplete." : "Il semble que les données géographique soient incomplètes.", @@ -112,13 +115,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "Si le bouton ci-dessous ne fonctionne pas pour importer les données géographique, utilisez la commande suivante :", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Remarque : les données géographique sont stockées dans la table memories_planet_geometry, sans préfixe.", "Download planet database" : "Télécharger la base de données géographique", + "Reverse Geocoding" : "Géocodage inverse", "Geometry support was not detected in your database" : "Le support des géométries n'a pas été détecté dans votre base de données", "MySQL-like geometry support was detected " : "Support similaire aux géométries pour MySQL détecté", "Postgres native geometry support was detected" : "Support natif Postgres des géométries détecté", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Il semble que la base de données soit déjà configurée. Êtes-vous sûr de vouloir télécharger à nouveau les données géographique ?", "You are about to download the planet database. This may take a while." : "Vous êtes sur le point de télécharger la base de données géographique. Cela peut prendre un certain temps.", "This may also cause all photos to be re-indexed!" : "Cela peut également entraîner la réindexation de toutes les photos !", - "Video Streaming" : "Diffusion vidéo", "Live transcoding provides for adaptive streaming of videos using HLS." : "Le transcodage à la volée permet la diffusion adaptative des vidéos en utilisant HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Notez que ceci peut être très intensif pour le processeur à défaut d'accélération matérielle, et que le transcodage ne sera pas utilisé pour les stockages externes.", "Enable Transcoding" : "Activer le transcodage", @@ -128,14 +131,13 @@ "Auto (adaptive transcode)" : "Auto (transcodage adaptatif)", "Original (transcode with max quality)" : "Original (transcoder avec la qualité max)", "Direct (original video file without transcode)" : "Direct (fichier vidéo original sans transcodage)", - "Hardware Acceleration" : "Accélération matérielle", + "Video Streaming" : "Diffusion vidéo", "You must first make sure the correct drivers are installed before configuring acceleration." : "Vous devez d'abord vous assurer que les pilotes adéquats soient installés avant de configurer l'accélération.", "Make sure you test hardware acceleration with various options after enabling." : "Assurez-vous de tester l'accélération matérielle avec différentes options après activation.", "Do not enable multiple types of hardware acceleration simultaneously." : "N'activez pas plusieurs types d'accélérations matérielles simultanément.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Les processeurs Intel supportant QuickSync Video (QSV) ainsi que certains GPUs AMD peuvent être utilisés pour transcoder grâce à l'accélération VA-API.", "For more details on driver installation, check the documentation:" : "Pour plus de détails sur l'installation du pilote, consultez la documentation :", "Enable acceleration with VA-API" : "Activer l'accélération avec VA-API", - "Enable low-power mode (QSV)" : "Activer le mode basse consommation (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Les GPUs NVIDIA peuvent être utilisés pour le transcodage grâce à l'encodeur NVENC avec les pilotes appropriés.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "En fonction des versions installées du kit de développement et de ffmpeg, vous devez préciser le zoom à utiliser", "No automated tests are available for NVIDIA acceleration." : "Aucun test automatisé n'est disponible pour l'accélération NVIDIA.", @@ -147,13 +149,14 @@ "VA-API device ({dev}) not found" : "Périphérique VA-API ({dev}) introuvable", "VA-API device ({dev}) has incorrect permissions" : "Le périphérique VA-API ({dev}) présente des permissions incorrectes", "VA-API device status: {status}" : "État du périphérique VA-API ({dev}) : {status}", - "Transcoder configuration" : "Configuration du transcoder", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Souvenirs utilise le transcodeur go-vod. Vous pouvez exécuter go-vod en externe (par exemple dans un conteneur Docker séparé pour l'accélération matérielle) ou utiliser le transcodeur intégré. Pour utiliser un transcodeur externe, activez l'option suivante et suivez les instructions de la documentation :", "Enable external transcoder (go-vod)" : "Activer le transcodeur externe (go-vod)", "Binary path (local only)" : "Chemin des exécutables (local uniquement)", "Bind address (local only)" : "Adresse de liaison (locale uniquement)", "Connection address (same as bind if local)" : "Adresse de connexion (identique à liaison si locale)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} élément ajouté à l'album","{n} éléments ajoutés à l'album","{n} éléments ajoutés à l'album"], + "Template" : "Modèle", + "No items" : "Aucun élément", + "Shared by {user}" : "Partagé par {user}", "Add people or groups who can edit your album" : "Ajoutez des personnes ou des groupes qui peuvent modifier votre album", "Search for collaborators" : "Rechercher des collaborateurs", "Search people or groups" : "Recherche des personnes ou des groupes", @@ -175,7 +178,6 @@ "Could not load the selected album" : "Impossible de charger l'album sélectionné", "Remove Album" : "Retirer l'album", "Are you sure you want to permanently remove album \"{name}\"?" : "Êtes-vous sûr de vouloir supprimer définitivement l'album \"{name}\" ?", - "Only user \"{user}\" can delete this album" : "Seul l'utilisateur·trice \"{user}\" peut supprimer cet album", "Failed to delete {name}." : "Échec de la suppression {name}.", "Name of the album" : "Nom de l'album", "Location of the album" : "Emplacement de l'album", @@ -187,12 +189,11 @@ "Save" : "Enregistrer", "Create album" : "Créer un album", "Invalid album name; should not contain any slashes." : "Nom d'album invalide ; il ne devrait pas contenir de slash.", - "Add selection to album {albumName}" : "Ajouter la sélection à l'album {albumName}", - "Create a new album." : "Créer un nouvel album", - "_%n item_::_%n items_" : ["%n élément ","%n éléments","%n éléments"], - "_Share with %n user_::_Share with %n users_" : ["Partager avec %n utilisateur","Partager avec %n utilisateurs","Partager avec %n utilisateurs"], + "Search" : "Recherche", + "Save changes" : "Enregistrer les modifications", "Share Album" : "Partager l'album", "Save collaborators for this album." : "Enregistrer les collaborateurs pour cet album.", + "_%n item_::_%n items_" : ["%n élément ","%n éléments","%n éléments"], "Newest" : "Plus récent", "Year" : "Année", "Month" : "Mois", @@ -229,18 +230,14 @@ "Name" : "Nom", "Update" : "Mise à jour", "Failed to rename {oldName} to {name}." : "Échec du renommage de {oldName} en {name}.", - "Search" : "Recherche", "Loading …" : "Chargement …", "Enter name of the new face" : "Saisir le nom de la nouvelle personne", "Failed to create face" : "Échec de la création d'une personne", "Merge {name} with person" : "Fusionner {name} avec la personne", - "Are you sure you want to merge {name} with {newName}?" : "Êtes-vous sûr de vouloir fusionner {name} avec {newName} ?", "Too many failures, aborting" : "Trop d'échecs, abandon", "Error while moving {basename}" : "Erreur lors du déplacement de {basename}", "Failed to move {name}." : "Impossible de déplacer {name}.", "Move selected photos to person" : "Déplacer les photos sélectionnées vers la personne", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Êtes-vous sûr de vouloir déplacer les photos sélectionnées de {name} vers {target} ?", - "An error occured while moving photos from {name}." : "Une erreur s'est produite lors du déplacement des photos provenant de {name}.", "Choose a folder" : "Choisir un dossier", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} élément déplacé vers le dossier","{n} éléments déplacés vers le dossier","{n} éléments déplacés vers le dossier"], "Remove" : "Retirer", @@ -275,8 +272,8 @@ "Sort by name" : "Trier par nom", "Share album" : "Partager l'album", "Download album" : "Télécharger l'album", - "Delete album" : "Supprimer l'album", "Nothing to show here" : "Rien à afficher ici", + "Unassigned faces" : "Visages non attribués", "Merge with different person" : "Fusionner avec une différente personne", "Mark person in preview" : "Marquer la personne dans l'aperçu", "Folder View" : "Vue Dossier", @@ -290,7 +287,6 @@ "Drop changes" : "Abandonner les modifications", "Share" : "Partage", "Play Live Photo" : "Lire la photo en direct", - "Sidebar" : "Panneau latéral", "Download Video" : "Télécharger la vidéo", "Slideshow" : "Diaporama", "Previous" : "Précédente", @@ -307,7 +303,6 @@ "Save as" : "Enregistrer sous", "All changes will be lost." : "Tous les changements seront perdus.", "Are you sure you want to continue?" : "Êtes-vous sûr de vouloir continuer ?", - "Continue" : "Continuer", "Undo" : "Annuler", "Redo" : "Rétablir", "Show original image" : "Afficher l'image originale", @@ -404,6 +399,7 @@ "Failed to favorite files." : "Échec de la mise en favoris des fichiers.", "Failed to favorite some files." : "Échec de l'ajout en favoris de certains fichiers.", "Failed to favorite {fileName}." : "Échec de l'ajout aux favoris de {fileName}.", + "Memories has been updated to {version}. Reload to get the new version." : "Souvenirs a été mise à jour vers {version}. Recharger pour obtenir la nouvelle version.", "Upload some photos and make sure the timeline path is configured" : "Téléversez des photos et assurez-vous que le chemin de la chronologie est configuré", "Mark photos as favorite to find them easily" : "Marquez les photos comme favorites pour les trouver facilement", "Memories from past years will appear here" : "Les souvenirs des années passées apparaîtront ici", @@ -416,6 +412,7 @@ "Tag photos to find them easily" : "Étiquetez vos photos pour les trouver facilement", "Recognize is still working on your photos" : "Recognize travaille encore sur vos photos", "Places you have been to will appear here" : "Les endroits où vous êtes allé apparaîtront ici", - "Your Timeline" : "Votre fil chronologique" + "Yes" : "Oui", + "No" : "Non" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/gd.js b/l10n/gd.js index 5434ae09..fe38ecb8 100644 --- a/l10n/gd.js +++ b/l10n/gd.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Luchdaich a-nuas", "Settings" : "Roghainnean", "Favorites" : "Annsachdan", "Videos" : "Videothan", @@ -8,20 +9,22 @@ OC.L10N.register( "Edit" : "Deasaich", "Cancel" : "Sguir dheth", "Delete" : "Sguab às", - "Download" : "Luchdaich a-nuas", "Favorite" : "Annsachd", + "Move" : "Gluais", "General" : "Coitcheann", "Close" : "Dùin", "Unknown" : "Chan eil fhios", "Back" : "Air ais", "Save" : "Sàbhail", - "Name" : "Ainm", "Search" : "Lorg", + "Name" : "Ainm", "Remove" : "Thoir air falbh", "Share link" : "Ceangal co-roinnidh", "Refresh" : "Ath-nuadhaich", "Read only" : "Ri leughadh a-mhàin", "Share" : "Co-roinn", - "Undo" : "Neo-dhèan" + "Undo" : "Neo-dhèan", + "Yes" : "Tha", + "No" : "Chan eil" }, "nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"); diff --git a/l10n/gd.json b/l10n/gd.json index 48de5b3e..d1950ead 100644 --- a/l10n/gd.json +++ b/l10n/gd.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Luchdaich a-nuas", "Settings" : "Roghainnean", "Favorites" : "Annsachdan", "Videos" : "Videothan", @@ -6,20 +7,22 @@ "Edit" : "Deasaich", "Cancel" : "Sguir dheth", "Delete" : "Sguab às", - "Download" : "Luchdaich a-nuas", "Favorite" : "Annsachd", + "Move" : "Gluais", "General" : "Coitcheann", "Close" : "Dùin", "Unknown" : "Chan eil fhios", "Back" : "Air ais", "Save" : "Sàbhail", - "Name" : "Ainm", "Search" : "Lorg", + "Name" : "Ainm", "Remove" : "Thoir air falbh", "Share link" : "Ceangal co-roinnidh", "Refresh" : "Ath-nuadhaich", "Read only" : "Ri leughadh a-mhàin", "Share" : "Co-roinn", - "Undo" : "Neo-dhèan" + "Undo" : "Neo-dhèan", + "Yes" : "Tha", + "No" : "Chan eil" },"pluralForm" :"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;" } \ No newline at end of file diff --git a/l10n/gl.js b/l10n/gl.js index 61976148..41b20bfe 100644 --- a/l10n/gl.js +++ b/l10n/gl.js @@ -1,186 +1,488 @@ OC.L10N.register( "memories", { + "Download" : "Descargar", + "Memories" : "Lembranzas", + "Fast, modern and advanced photo management suite" : "Unha «suite» de xestión de fotos rápida, moderna e avanzada", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Lembranzas: xestión de fotos para Nextcloud\n\nLembranzas é unha solución *pilas incluídas* para a xestión de fotos en Nextcloud con características avanzadas que inclúen:\n\n- **📸 Cronoloxía**: ordene fotos e vídeos por data de toma, analizados a partir de datos Exif.\n- **⏪ Rebobinar**: salte a calquera momento do pasado ao instante e reviva as súas lembranzas.\n- **🤖 Etiquetado AI**: agrupe as fotos por persoas e obxectos, coa axuda de [recognize](https://github.com/nextcloud/recognize) e [facerecognition](https://github.com/matiasdelellis/facerecognition ).\n- **🖼️ Álbums**: cree álbums para agrupar fotos e vídeos. Após comparta estes álbums con outros.\n- **🫱🏻‍🫲🏻 Compartir externamente**: comparta fotos e vídeos con persoas fóra da súa instancia de Nextcloud.\n- **📱 Compatibilidade co móbil**: traballe dende calquera dispositivo, de calquera forma e tamaño a través da aplicación web.\n- **✏️ Editar metadatos**: edite as datas e outros metadatos nas fotos de forma rápida e masiva.\n- **📦 Arquivo**: almacene as fotos que non quere ver na súa cronoloxía nun cartafol separado.\n- **📹 Transcodificación de vídeo**: transcodifique vídeos e use HLS para obter o máximo rendemento.\n- **🗺️ Mapa**: mire as súas fotos nun mapa, etiquetado con xeocodificación inversa precisa.\n- **📦 Migración**: migre doadamente dende Fotos de Nextcloud e Google Takeout.\n- **⚡️ Rendemento**: faga todo isto moi rápido.\n\n## 🚀 Instalación\n\n1. Instale a aplicación dende a tenda de aplicacións de Nextcloud (probe unha demostración [aquí](https://demo.memories.gallery/apps/memories/)).\n1. Realice os [pasos de configuración] recomendados (https://memories.gallery/config/).\n1. Execute «php occ memories:index» para xerar índices de metadatos das fotos existentes.\n1. Abra a aplicación 📷 Lembranzas en Nextcloud e configure o directorio que contén as súas fotos.", "Settings" : "Axustes", - "People" : "Xente", + "People (Recognize)" : "Persoas (Recognize)", + "People" : "Persoas", + "People (Face Recognition)" : "Persoas (Recoñecemento facial)", "Info" : "Información", - "Timeline" : "Liña temporal", + "Timeline" : "Cronoloxía", "Folders" : "Cartafoles", "Favorites" : "Favoritos", "Videos" : "Vídeos", "Albums" : "Álbums", - "Archive" : "Aquivar", + "Archive" : "Arquivo", "On this day" : "Neste día", "Places" : "Lugares", "Map" : "Mapa", "Tags" : "Etiquetas", + "View all" : "Ver todo", + "Recognize" : "Recognize", + "Face Recognition" : "Recoñecemento facial", + "A better photos experience awaits you" : "Agárdalle unha mellor experiencia coas fotos", + "Choose the root folder of your timeline to begin" : "Escolla o cartafol raíz da súa cronoloxía para comezar", + "Continue to Memories" : "Continuar ata Lembranzas", + "Choose again" : "Volver escoller", + "Click here to start" : "Prema aquí para comezar", + "You can always change this later in settings" : "Sempre pode cambiar isto máis adiante nos axustes", + "If you just installed Memories, visit the admin panel first." : "Se vén de instalar Lembranzas, visite primeiro o panel de administración.", + "Choose the root of your timeline" : "Escoller a raíz da súa cronoloxía", + "The selected folder does not seem to be valid. Try again." : "O cartafol seleccionado non parece ser válido. Ténteo de novo.", + "No photos were found in the selected folder." : "Non se atopou ningunha foto no cartafol seleccionado.", + "This can happen because your media is still indexing." : "Isto pode ocorrer porque os seus medios aínda se están a indexar.", + "Visit the admin panel to make sure Memories is configured correctly." : "Vexa o panel de administración para asegurarse de que Lembranzas está configurado correctamente.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Atopouse {n} elemento en {path}","Atopáronse {n} elementos en {path}"], + "Metadata" : "Metadatos", "Edit" : "Editar", + "Failed to load metadata" : "Produciuse un fallo ao cargar os metadatos", + "No coordinates" : "Sen coordenadas", + "Click edit to set location" : "Prema en editar para estabelecer a localización", + "Photos" : "Fotos", "Explore" : "Examinar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Descargar", + "Remove from album" : "Retirar do álbum", "Favorite" : "Favorito", "Unarchive" : "Desarquivar", + "Edit metadata" : "Editar os metadatos", "View in folder" : "Ver no cartafol", + "Move to folder" : "Move to folder", "Add to album" : "Engadir ao álbum", + "Move to person" : "Mover a persona", + "Remove from person" : "Retirar da persoa", + "You are about to download a large number of files." : "Está a piques de descargar un gran número de ficheiros.", + "Continue" : "Continuar", + "You are about to delete a large number of files" : "Está a piques de eliminar un gran número de ficheiros.", + "Failed to delete files" : "Produciuse un fallo ao eliminar os ficheiros", + "Move" : "Mover", + "You are about to move a large number of files" : "Está a piques de mover un gran número de ficheiros.", + "You must enable \"Mark person in preview\" to use this feature" : "Ten que activar «Marcar persoa na vista previa» para usar esta función", + "Only user \"{user}\" can update this person" : "Só o usuario «{user}» pode actualizar esta persoa", + "_{n} selected_::_{n} selected_" : ["{n} seleccionado","{n} seleccionados"], + "Memories Settings" : "Axustes de Lembranzas", "General" : "Xeral", + "Timeline Path" : "Ruta da cronoloxía", + "Square grid mode" : "Modo de cuadrícula", + "Show past photos on top of timeline" : "Amosar as fotos anteriores na parte superior da cronoloxía", + "Viewer" : "Visor", + "Autoplay Live Photos" : "Reproducir Live Photo", + "Load full size image on zoom" : "Cargar a imaxe a tamaño real no zoom", + "Always load full size image (not recommended)" : "Carga sempre a imaxe a tamaño real (non recomendado)", + "Show full file path in sidebar" : "Amosar a ruta completa do ficheiro na barra lateral", + "Account" : "Conta", + "Logged in as {user}" : "Accedeu como {user}", + "Sign out" : "Sair", + "Device Folders" : "Cartafoles do dispositivo", + "Local folders to include in the timeline view" : "Cartafoles locais para incluír na vista da cronoloxía", + "Folders Path" : "Ruta aos cartafoles", + "Show hidden folders" : "Amosar os cartafoles agochados", + "Sort folders oldest-first" : "Ordenar os cartafoles, os máis antigos primeiro", + "Sort albums oldest-first" : "Ordenar os álbums, os máis antigos primeiro", + "Choose Timeline Paths" : "Escoller as rutas da cronoloxía", + "Choose the root for the folders view" : "Escoller a raíz para a vista de cartafoles", + "Are you sure you want to log out {user}?" : "Confirma que quere saír?", "Close" : "Pechar", + "{photoCount} photos" : "{photoCount} fotos", + "Failed to load some photos" : "Produciuse un fallo ao cargar algunhas fotos", + "Failed to update setting" : "Produciuse un fallo ao actualizar o axuste", + "Albums support is enabled through the Photos app." : "A compatibilidade con Álbums está activada a través da aplicación Fotos.", + "Albums are disabled because the Photos app is not available." : "Álbums está desactivada por mor de que a aplicación Fotos non está dispoñíbel", + "Recognize is installed and enabled for face recognition." : "Recognize está instalada e activada para o recoñecemento facial.", + "Recognize is installed but not enabled for face recognition." : "Recognize está instalada mais non está activada para o recoñecemento facial.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Recognize non está instalada. É posíbel que o recoñecemento facial e a etiquetaxe de obxectos non estean dispoñíbeis", + "Face Recognition is installed and enabled" : "Recoñecemento facial está instalada e activada", + "Preview generator is installed and enabled. Additional configuration may still be required." : "A aplicación Xerador de vista previa está instalada e activada. Aínda pode ser necesaria unha configuración adicional.", + "Preview generator is not installed and configured. This may make Memories very slow." : "A aplicación Xerador de vista previa non está instalada nin configurada. Isto pode facer que as memorias sexan moi lentas.", + "Recommended Apps" : "Aplicacións recomendadas", + "Path to packaged exiftool binary" : "Ruta ao binario exiftool empaquetado", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Necesitas Perl só se o binario exiftool empaquetado non funciona por algún motivo.", + "Use system perl (only if exiftool binary does not work)" : "Usar Perl do sistema (só se o binario exiftool non funciona)", + "EXIF Extraction" : "Extracciónde datos EXIF", + "You can configure the enabled Nextcloud preview providers below." : "Pode configurar os provedores de vista previa de Nextcloud activados a seguir.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Se está a usar Imaginary para a xeración da vista previa, pode ignorar esta sección.", + "To enable RAW support, install the Camera RAW Previews app." : "Para activar a compatibilidade con RAW, instale a aplicación Camera RAW Previews.", + "Documentation." : "Documentación.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick está dispoñíbel [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick non está dispoñíbel.", + "Image editing will not work correctly." : "A edición de imaxes non funcionará correctamente.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "É posible que a xeración de miniaturas non funcione para algúns formatos (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "As miniaturas dos vídeos xeraranse con este binario.", + "Thumbnail generation may not work for videos." : "É posible que a xeración de miniaturas non funcione para os vídeos.", + "The following MIME types are configured for preview generation." : "Os seguintes tipos MIME están configurados para a xeración de vista previa.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamaño máximo de vista previa (compromiso entre calidade e requisitos de almacenamento).", + "Max memory for preview generation (MB)" : "Memoria máxima para a xeración da vista previa (MB)", + "Max size of preview files (MB)" : "Tamaño máximo dos ficheiros de vista previa (MB)", + "File Support" : "Compatibilidade de ficheiros", + "Images (JPEG, PNG, GIF, BMP)" : "Imaxes (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Vídeos (FFmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Grazas por escoller Nextcloud e Lembranzas para almacenar os seus prezados datos!", + "Memories is very feature rich and setting it up properly can take some time." : "Lembranzas dispón de abondosas funcións e axustalo apropiadamente pode levar algún tempo.", + "If you just installed Memories, make sure you read the getting started guide:" : "Se vén de instalar Lembranzas, asegúrese de ler a guía de inicio:", + "External Link" : "Ligazón externa", + "In case you run into any issues or bugs, you can get help through several channels." : "No caso de que teña algún incidente ou erro, pode obter axuda a través de varias canles.", + "Memories is a completely free and open source app under active development." : "Lembranzas é unha aplicación totalmente código aberto, libre e de balde en desenvolvemento activo.", + "You can contribute in several ways. See the project page for more details:" : "Pode colaborar de varias maneiras. Consulte a páxina do proxecto para obter máis detalles:", + "Help & Support" : "Axuda e asistencia", + "{n} media files have been indexed" : "Indexáronse {n} ficheiros multimedia", + "Automatic Indexing status: {status}" : "Automatic Indexing status: {status}", + "Last index job was run {t} seconds ago." : "O último traballo de índexación executouse hai {t} segundos.", + "It took {t} seconds to complete." : "Levoulle {t} segundos para completarse.", + "It is still running or was interrupted." : "Aínda se está a executar ou foi interrompido.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Semella que pasou máis dunha hora dende que se executou o último traballo de índice. Asegúrese de que Nextcloud cron estea configurado correctamente.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Só se admite o cifrado do lado do servidor (OC_DEFAULT_MODULE), mais hai outro módulo de cifrado activado.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Os índices EXIF ​​constrúense e compróbanse nunha tarefa periódica en segundo plano. Teña coidado ao seleccionar calquera cousa que non sexa a indexación automática. Por exemplo, estabelecer a indexación só para cartafoles da cronoloxía pode provocar atrasos antes de que os medios estean dispoñíbeis para os usuarios, xa que o usuario configura a cronoloxía só após acceder.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Os cartafoles cun ficheiro «.nomedia» ou «.nomemories» sempre están excluídos da indexación.", + "Index all media automatically (recommended)" : " Indexar todos los medios automáticamente (recomendado)", + "Index per-user timeline folders (not recommended)" : "Indexar os cartafoles da cronoloxía por usuario (non recomendado)", + "Index a fixed relative path" : "Indexar unha ruta relativa fixa", + "Disable background indexing" : "Desactivar a indexación en segundo plano", + "Indexing path (relative, all users)" : "Ruta de indexación (relativa, todos os usuarios)", + "For advanced usage, perform a run of indexing by running:" : "Para uso avanzado, realice unha execución de indexación executando:", + "Run index in parallel with 4 threads:" : "Executar a indexación en paralelo con 4 fíos:", + "Force re-indexing of all files:" : "Forzar a reindexación de todos os ficheiros:", + "You can limit indexing by user and/or folder:" : "Pode limitar a indexación por usuario e/ou cartafol:", + "Clear all existing index tables:" : "Limpar todas as táboas de índice existentes:", + "Media Indexing" : "Indexación de medios", + "HTTPS is enabled" : "HTTPS está activado", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Está a acceder a esta páxina nun contexto non seguro. Varias API do navegador non están dispoñíbeis, o que fará que Lembranzas sexa moi lento. Active HTTPS no seu servidor para mellorar o rendemento.", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ou HTTP/3 está activado", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Recoméndase encarecidamente HTTP/2 ou HTTP/3 (detectouse {httpVer})", "Performance" : "Rendemento", "Unknown" : "Descoñecido", - "Add people or groups who can edit your album" : "Engade persoas ou grupos que poidan editar o teu álbum", + "Database is populated with {n} geometries." : "A base de datos está cuberta con {n} xeometrías.", + "Geometry table has not been created." : "Non foi creada a táboa de xeometría.", + "Looks like the planet data is incomplete." : "Semella que os datos do planeta están incompletos.", + "Reverse geocoding has not been configured ({status})." : "Non foi configurada a xeocodificación inversa ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Lembranzas admite a xeocodificación inversa sen conexión usando os datos de OpenStreetMaps en MySQL e Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Ten que descargar os datos do planeta na súa base de datos. Isto é moi recomendábel e ten unha sobrecarga baixa.", + "If the button below does not work for importing the planet data, use the following command:" : "Se o botón de embaixo non funciona para importar os datos do planeta, use a seguinte orde:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: Os datos de xeometría gárdanse na táboa memories_planet_geometry, sen prefixo.", + "Download planet database" : "Descargar a base de datos de planeta", + "Reverse Geocoding" : "Xeocodificación inversa", + "Geometry support was not detected in your database" : "Non se detectou compatibilidade con xeometría na súa base de datos", + "MySQL-like geometry support was detected " : "Detectouse compatibilidade con xeometría tipo MySQL", + "Postgres native geometry support was detected" : "Detectouse compatibilidade con xeometría nativa de Postgres", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Semella que a base de datos xa está estabelecida. Confirma que quere volver descargar os datos do planeta?", + "You are about to download the planet database. This may take a while." : "Está a piques de descargar a base de datos do planeta. Isto pode levar o seu tempo.", + "This may also cause all photos to be re-indexed!" : "Isto tamén pode provocar que todas as fotos volvan ser indexadas!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "A transcodificación en directo fornece a transmisión adaptábel de vídeos mediante HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Teña en conta que isto pode resultar nun uso moi intensivo da CPU sen aceleración de hardware e a transcodificación non se utilizará para o almacenamento externo.", + "Enable Transcoding" : "Activar a transcodificación", + "ffmpeg path" : "Ruta a FFmpeg", + "ffprobe path" : "Ruta a FFprobe", + "Global default video quality (user may override)" : "Calidade de vídeo predeterminada global (o usuario pode cambiala)", + "Auto (adaptive transcode)" : "Automático (transcodificación adaptábel)", + "Original (transcode with max quality)" : "Orixinal (transcodificación coa máxima calidade)", + "Direct (original video file without transcode)" : "Directo (ficheiro de vídeo orixinal sen transcodificación)", + "Video Streaming" : "Transmisión de vídeo", + "You must first make sure the correct drivers are installed before configuring acceleration." : "Antes de configurar a aceleración, debe asegurarse de que estean instalados os controladores correctos ", + "Make sure you test hardware acceleration with various options after enabling." : "Asegúrese de probar a aceleración de hardware con varias opcións após activala.", + "Do not enable multiple types of hardware acceleration simultaneously." : "Non active varios tipos de aceleración de hardware á vez.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Os procesadores Intel compatíbeis con QuickSync Video (QSV) así como algunhas GPU AMD pódense utilizar para transcodificar mediante a aceleración VA-API.", + "For more details on driver installation, check the documentation:" : "Para obter máis detalles sobre a instalación do controlador, consulte a documentación:", + "Enable acceleration with VA-API" : "Activar a aceleración con VA-API", + "Enable low-power mode (QSV only)" : "Activar o modo de baixo consumo (só QSV)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Pódense usar as GPU de NVIDIA para transcodificar usando o codificador NVENC cos controladores axeitados.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Dependendo das versións do SDK e FFmpeg instalados, cómpre especificar o escalador para usar", + "No automated tests are available for NVIDIA acceleration." : "Non hai probas automáticas dispoñíbeis para a aceleración de NVIDIA.", + "Enable acceleration with NVENC" : "Activar a aceleración con NVENC", + "Enable NVENC Temporal AQ" : "Activar a AQ temporal de NVENC", + "NPP scaler" : "Escalador NPP", + "CUDA scaler" : "Escalador CUDA", + "not recommended" : "non recomendado", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Por mor dun erro en certos controladores de hardware, os vídeos poden aparecer con orientacións incorrectas ao transmitir. Isto pódese resolver nalgúns casos rotando o vídeo no acelerador.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Active a seguinte opción só se ten vídeos orientados incorrectamente durante a reprodución.", + "Enable streaming transpose workaround" : "Activar a solución de transposición de secuencias", + "HW Acceleration" : "Aceleración por hardware", + "VA-API device ({dev}) is readable" : "O dispositivo VA-API ({dev}) é lexíbel", + "VA-API device ({dev}) not found" : "Non se atopou o dispositivo VA-API ({dev}).", + "VA-API device ({dev}) has incorrect permissions" : "O dispositivo VA-API ({dev}) ten permisos incorrectos", + "VA-API device status: {status}" : "Estado do dispositivo VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Lembranzas usa o transcodificador go-vod. Pode executar go-vod externamente (p. ex., nun contedor Docker separado para a aceleración de hardware) ou usar o transcodificador integrado. Para usar un transcodificador externo, active a seguinte opción e siga as instrucións da documentación:", + "Enable external transcoder (go-vod)" : "Activar o transcodificador externo (go-vod)", + "Binary path (local only)" : "Ruta ao binario (só local)", + "Bind address (local only)" : "Enderezo de ligazón (só local)", + "Connection address (same as bind if local)" : "Enderezo de conexión (o mesmo que a ligazón se é local)", + "Transcoder" : "Transcodificador", + "Template" : "Modelo", + "No items" : "Non hai elementos", + "Shared by {user}" : "Compartido por {user}", + "_{n} item_::_{n} items_" : ["{n} elemento","{n} elementos"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} foto actualizada","{n} fotos actualizadas"], + "Add people or groups who can edit your album" : "Engadir persoas ou grupos que poidan editar o seu álbum", "Search for collaborators" : "Buscar colaboradores", "Search people or groups" : "Buscar persoas ou grupos", - "Add {collaboratorLabel} to the collaborators list" : "Engade {collaboratorLabel} á lista de colaboradores", - "No collaborators available" : "Non hai colaboradores dispoñibles", - "Remove {collaboratorLabel} from the collaborators list" : "Elimina {collaboratorLabel} da lista de colaboradores", + "Add {collaboratorLabel} to the collaborators list" : "Engadir a {collaboratorLabel} á lista de colaboradores", + "No collaborators available" : "Non hai colaboradores dispoñíbeis", + "Remove {collaboratorLabel} from the collaborators list" : "Retirar a {collaboratorLabel} da lista de colaboradores", "Copy the public link" : "Copiar a ligazón pública", - "Public link copied!" : "Enlace público copiado!", + "Public link copied!" : "Copiouse a ligazón pública!", "Copy public link" : "Copiar a ligazón pública", "Delete the public link" : "Eliminar a ligazón pública", "Share via public link" : "Compartir mediante ligazón pública", - "Failed to fetch collaborators list." : "Produciuse un erro ao obter a lista de colaboradores.", + "Failed to fetch collaborators list." : "Produciuse un erro ao recuperar a lista de colaboradores.", "Public link" : "Ligazón pública", - "Failed to fetch album." : "Produciuse un erro ao recuperar o álbum.", + "Failed to fetch album." : "Produciuse un fallo ao recuperar o álbum.", "Failed to update album." : "Produciuse un erro ao actualizar o álbum.", - "Create new album" : "Crear novo álbum", - "Edit album details" : "Edita os detalles do álbum", + "Create new album" : "Crear un novo álbum", + "Edit album details" : "Editar os detalles do álbum", "New album" : "Novo álbum", + "Could not load the selected album" : "Non foi posíbel cargar o álbum seleccionado", + "Remove Album" : "Retirar o álbum", + "Are you sure you want to permanently remove album \"{name}\"?" : "Confirma que quere retirar definitivamente o album «{name}»?", + "Failed to delete {name}." : "Produciuse un fallo ao eliminar {name}.", "Name of the album" : "Nome do álbum", "Location of the album" : "Localización do álbum", "Go back to the previous view." : "Volver á vista anterior.", "Back" : "Atrás", - "Go to the add collaborators view." : "Vai á vista Engadir colaboradores.", + "Go to the add collaborators view." : "Ir á vista de engadir colaboradores.", "Add collaborators" : "Engadir colaboradores", "Back to the new album form." : "Volver ao formulario do álbum novo.", "Save" : "Gardar", "Create album" : "Crear álbum.", - "Add selection to album {albumName}" : "Engadir selección ao álbum {albumName}", - "Create a new album." : "Crea un novo álbum.", - "_Share with %n user_::_Share with %n users_" : ["Compartir con %n usuario","Compartir con %n usuarios"], - "Save collaborators for this album." : "Garda colaboradores para este álbum.", + "Invalid album name; should not contain any slashes." : "O nome do álbum é incorrecto; non debe conter ningunha barra.", + "Search" : "Buscar", + "Create new album." : "Crear un novo álbum.", + "Save changes" : "Gardar os cambios", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Retirada de {n} álbum","Retirada de {n} álbums"], + "Share Album" : "Compartir álbum", + "Save collaborators for this album." : "Gardar os colaboradores para este álbum.", + "shared by {owner}" : "compartido por {owner}", + "_%n item_::_%n items_" : ["%n elemento","%n elementos"], + "Newest" : "Máis recente", "Year" : "Ano", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", "Hour" : "Hora", "Minute" : "Minuto", + "Oldest" : "Máis antiga", + "Invalid Date" : "Data incorrecta", + "Newest date is older than oldest date" : "A data máis recente é anterior á data máis antiga", "Title" : "Título", "Description" : "Descrición", "Label" : "Etiqueta", - "Copyright" : "Copyright", + "Camera Make" : "Marca da cámara", + "Camera Model" : "Modelo da cámara", + "Lens Model" : "Modelo da lente", + "Copyright" : "Dereitos de autoría", "Empty" : "Baleiro", + "Unchanged" : "Sen cambios", "Reset" : "Restabelecer", - "Remove person" : "Eliminar persoa", + "Remove location" : "Retirar a localización", + "Search location / landmark" : "Buscar localización / lugar emblemático", + "Failed to search for location with Nominatim." : "Produciuse un fallo ao buscar a localización con Nominatim.", + "Date / Time" : "Día / hora", + "Collaborative Tags" : "Etiquetas colaborativas", + "EXIF Fields" : "Campos EXIF", + "Geolocation" : "Xeolocalización", + "Failed to load metadata for {n} photos." : "Produciuse un fallo ao cargar os metadatos de {n} fotos.", + "{n} photos cannot be edited (permissions error)." : "Non é posíbel editar {n} fotos (hai erros nos permisos).", + "Remove person" : "Retirar persoa", + "Are you sure you want to remove {name}?" : "Confirma que quere retirar a {name}?", + "Only user \"{user}\" can delete this person" : "Só o usuario «{user}» pode eliminar esta persoa", "Rename person" : "Cambiar o nome da persoa", "Name" : "Nome", "Update" : "Actualizar", - "Search" : "Buscar", + "Failed to rename {oldName} to {name}." : "Non foi posíbel cambiar o nome de {oldName} a {name}.", "Loading …" : "Cargando…", + "Enter name of the new face" : "Introduza o nome da nova cara", + "Failed to create face" : "Produciuse un fallo ao crear unha cara", + "Merge {name} with person" : "Combinar {nome} coa persoa", + "Merge faces" : "Combinar faciana", + "Merge {name} with {newName}?" : "Combinar {nome} con {newName}?", + "unnamed person" : "persoa sen nome", + "Too many failures, aborting" : "Demasiados fallos, interrompendo", + "Error while moving {basename}" : "Produciuse un erro ao mover {basename}", + "Failed to move {name}." : "Produciuse un fallo ao mover {name}.", + "Move selected photos to person" : "Move as fotos seleccionadas á persoa", + "Move the selected photos to {target}?" : "Quere mover as fotos seleccionadas a {target}?", + "An error occurred while moving photos from {name}." : "Produciuse un erro ao mover as fotos de {name}.", + "Choose a folder" : "Escoller un cartafol", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["Moveuse {n} elemento ao cartafol","Movéronse {n} elementos ao cartafol"], "Remove" : "Retirar", - "Share link" : "Compartir ligazón", + "Add Path" : "Engadir ruta", + "Add a root to your timeline" : "Engadir unha raíz á súa cronoloxía", + "Link Sharing" : "Compartir con ligazóns", + "You cannot share the root folder" : "Vde. non pode compartir o cartafol raíz", + "Public link shares are available to people outside Nextcloud." : "As ligazóns para compartir públicas están dispoñíbeis para persoas alleas a Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "Pode crear ou actualizar permisos nas ligazóns públicas usando a barra lateral.", + "Click a link to copy to clipboard." : "Prema nunha ligazón para copiala no portapapeis.", + "Share link" : "Ligazón para compartir", + "Create Link" : "Crear ligazón", "Refresh" : "Actualizar", "Password protected" : "Protexido con contrasinal", "Expires" : "Caduca", + "Editable" : "Editábel", "Read only" : "Só lectura", "Link copied to clipboard" : "A ligazón foi copiada no portapapeis.", + "Share File" : "Compartir ficheiro", + "Reduced Size" : "Tamaño reducido", + "Share a lower resolution image preview" : "Compartir unha vista previa da imaxe de menor resolución", + "High Resolution" : "Alta resolución", + "Share the video as a high quality MOV" : "Compartir o vídeo como MOV de alta calidade", + "Share the image as a high quality JPEG" : "Compartir a imaxe como JPEG de alta calidade", + "Original File" : "Ficheiro orixinal", + "Share the original image / video file" : "Compartir o ficheiro de imaxe/vídeo orixinal", + "Public Link" : "Ligazón pública", + "Share an external Nextcloud link" : "Compartir unha ligazón externa de Nextcloud", + "Failed to download file" : "Produciuse un fallo ao descargar o ficheiro", + "Cannot share this type of data" : "Non é posíbel compartir este tipo de datos", "Sort by date" : "Ordenar pola data", "Sort by name" : "Ordenar polo nome", - "Delete album" : "Eliminar álbum", - "Merge with different person" : "Combinar con unha persoa diferente", + "Share album" : "Compartir álbum", + "Download album" : "Descargar album", + "Nothing to show here" : "Non hai nada que amosar aquí", + "Unassigned faces" : "Facianas sen asignar", + "Merge with different person" : "Combinar cunha persoa diferente", + "Mark person in preview" : "Marcar persoa na vista previa", + "Unnamed person" : "Persoa sen nome", + "Folder View" : "Vista do cartafol", + "Timeline View" : "Vista da cronoloxía", "Share folder" : "Compartir cartafol", + "Move left" : "Mover á esquerda", + "Move right" : "Move á dereita", + "Image saved successfully" : "A imaxe foi gardada satisfactoriamente", "Error saving image" : "Produciuse un erro ao gardar a imaxe", "Unsaved changes" : "Cambios sen gardar", - "Drop changes" : "Elimina os cambios", + "Drop changes" : "Desbotar os cambios", "Share" : "Compartir", + "Play Live Photo" : "Reproducir Live Photo", + "Download Video" : "Descargar vídeo", + "Slideshow" : "Diaporama", "Previous" : "Anterior", "Next" : "Seguinte", + "Editing is currently disabled for Live Photos" : "Actualmente, está desactivada a edición para Live Photos", + "Are you sure you want to delete?" : "Confirma que quere eliminar?", + "Failed to delete photo" : "Produciuse un fallo ao eliminar a foto", + "{name} binary exists and is executable." : "O binario {name} existe e é executábel.", + "{name} binary not found." : "Non se atopou o binario {name}.", + "{name} binary is not executable." : "O binario {name} non é executábel", + "{name} failed test: {info}." : "Fallou a proba de {name}: {información}.", + "{name} binary exists and is usable ({info})." : "O binario {name} existe e pódese usar ({info}).", + "{name} binary status: {status}." : "Estado do binario {name}: {status}.", "Save as" : "Gardar como", "All changes will be lost." : "Perderanse todos os cambios.", - "Are you sure you want to continue?" : "Estás seguro de que queres continuar?", - "Continue" : "Continuar", + "Are you sure you want to continue?" : "Confirma que quere continuar?", "Undo" : "Desfacer", "Redo" : "Refacer", - "Show original image" : "Mostra a imaxe orixinal", + "Show original image" : "Amosar a imaxe orixinal", "Zoom in" : "Achegar", - "Zoom out" : "Reducir o zoom", - "Toggle zoom menu" : "Cambiar o menú de zoom", + "Zoom out" : "Afastar", + "Toggle zoom menu" : "Alternar o menú de zoom", "Adjust" : "Axustar", - "Fine-tune" : "Afinar", + "Fine-tune" : "Axuste fino", "Filters" : "Filtros", "Watermark" : "Marca de auga", - "Draw" : "Debuxa", + "Draw" : "Debuxar", "Resize" : "Cambiar o tamaño", - "Invalid image." : "Imaxe non válida.", - "Error while uploading the image." : "Produciuse un erro ao cargar a imaxe.", + "Invalid image." : "Imaxe incorrecta", + "Error while uploading the image." : "Produciuse un erro ao enviar a imaxe.", "are not images" : "non son imaxes", "is not an image" : "non é unha imaxe", - "to be uploaded" : "a cargar", + "to be uploaded" : "para enviar", "Crop" : "Recortar", "Original" : "Orixinal", "Custom" : "Personalizado", "Square" : "Cadrado", - "Landscape" : "Orientación horizontal", - "Portrait" : "Orientación vertical", + "Landscape" : "Paisaxe", + "Portrait" : "Retrato", "Ellipse" : "Elipse", "Classic TV" : "TV clásica", - "CinemaScope" : "CinemaScope", + "CinemaScope" : "Cinemascope", "Arrow" : "Frecha", "Blur" : "Desenfoque", "Brightness" : "Brillo", "Contrast" : "Contraste", - "Un-flip X" : "Desactivar X", - "Flip X" : "Xire X", - "Un-flip Y" : "Quitar xiro Y", - "Flip Y" : "Xirar Y", - "HSV" : "VHS", + "Un-flip X" : "Desfacer o volteo X", + "Flip X" : "Volteo X", + "Un-flip Y" : "Desfacer o volteo Y", + "Flip Y" : "Volteo Y", + "HSV" : "MSV", "Hue" : "Matiz", "Saturation" : "Saturación", "Value" : "Valor", "Image" : "Imaxe", - "Importing …" : "Importando …", + "Importing …" : "Importando…", "+ Add image" : "+ Engadir imaxe", "Line" : "Liña", "Pen" : "Bolígrafo", "Polygon" : "Polígono", "Sides" : "Lados", "Rectangle" : "Rectángulo", - "Corner Radius" : "Radio de Esquina", - "Width in pixels" : "Ancho en píxeles", - "Height in pixels" : "Altura en píxeles", - "Toggle ratio lock" : "Activar/desactivar o bloqueo da proporción", - "Reset to original image size" : "Restablece o tamaño da imaxe orixinal", - "Rotate" : "Xirar", + "Corner Radius" : "Raio do canto", + "Width in pixels" : "Largo en píxeles", + "Height in pixels" : "Alto en píxeles", + "Toggle ratio lock" : "Alternar o bloqueo da proporción", + "Reset to original image size" : "Restabelecer o tamaño da imaxe orixinal", + "Rotate" : "Rotar", "Text" : "Texto", "Text spacing" : "Espazamento do texto", - "Text alignment" : "Aliñación do texto", + "Text alignment" : "Aliñamento do texto", "Font family" : "Familia tipográfica", "Size" : "Tamaño", "Letter spacing" : "Espazamento de letras", "Line height" : "Altura da liña", - "Warmth" : "Calidez", + "Warmth" : "Calor", "+ Add watermark" : "+ Engadir marca de auga", - "Choose watermark type" : "Escolla o tipo de marca de auga", - "Upload watermark" : "Cargar marca de auga", + "Choose watermark type" : "Escoller o tipo de marca de auga", + "Upload watermark" : "Enviar a marca de auga", "Add as text" : "Engadir como texto", - "Padding" : "Relleno", + "Padding" : "Recheo", "Shadow" : "Sombra", "Horizontal" : "Horizontal", "Vertical" : "Vertical", "Opacity" : "Opacidade", "Position" : "Posicion", - "Stroke" : "Trazado", - "Save image as" : "Garda a imaxe como", + "Stroke" : "Contorno", + "Save image as" : "Gardar a imaxe como", "Extension" : "Extensión", - "Name is required." : "É obrigatorio o nome.", + "Name is required." : "Precisase o nome.", "Quality" : "Calidade", - "Saved image size (width x height)" : "Tamaño da imaxe gardada (ancho x alto)", + "Saved image size (width x height)" : "Tamaño da imaxe gardada (largo x alto)", "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Teña en conta que a área de recorte seleccionada é inferior ao cambio de tamaño aplicado, o que pode provocar unha diminución da calidade", "Actual size (100%)" : "Tamaño real (100%)", "Fit size" : "Axuste de tamaño", + "Transcoding failed, check Nextcloud logs." : "Produciuse un fallo na transcodificación, comprobe os rexistros de Nextcloud.", "Direct" : "Directa", "Auto" : "Automático", - "Failed to create {albumName}." : "Produciuse un erro ao crear {albumName}.", - "Failed to rename {currentAlbumName} to {newAlbumName}." : "Non se puido cambiar o nome de {currentAlbumName} a {newAlbumName}.", - "Failed to delete {fileName}." : "Produciuse un erro ao eliminar {fileName}." + "Shared Folder" : "Cartafol compartido", + "Shared Album" : "Álbum compartido", + "Failed to remove {filename}." : "Produciuse un fallo ao retirar {filename}.", + "Failed to create {albumName}." : "Produciuse un fallo ao crear {albumName}.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "Non foi posíbel cambiar o nome de {currentAlbumName} a {newAlbumName}.", + "General Failure" : "Produciuse un fallo xeral", + "Error: {msg}" : "Erro: {msg}", + "Failed to delete {fileName}." : "Produciuse un fallo ao eliminar {fileName}.", + "Failed to move files." : "Produciuse un fallo ao mover os ficheiro.", + "Could not move {fileName}, target exists." : "Non foi posíbel mover «{fileName}», o destino xa existe", + "Failed to move {fileName}." : "Produciuse un fallo ao mover {fileName}.", + "Failed to download files" : "Produciuse un fallo ao descargar os ficheiros", + "Failed to favorite files." : "Produciuse un fallo ao marcar os ficheiros como favoritos.", + "Failed to favorite some files." : "Produciuse un fallo ao marcar algúns ficheiros como favoritos.", + "Failed to favorite {fileName}." : "Produciuse un fallo ao marcar {fileName} como favorito.", + "No content-location header found" : "Non se atopou ningunha cabeceira de localización de contido", + "Failed to create tag {name}: {error}" : "Produciuse un fallo ao crear a etiqueta {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Lembranzas foi actualizado á versión {version}. Volva cargar para obter a nova versión.", + "Upload some photos and make sure the timeline path is configured" : "Envíe algunhas fotos e asegúrese de que a ruta da cronoloxía estea configurada", + "Mark photos as favorite to find them easily" : "Marcar as fotos como favoritas para atopalas facilmente", + "Memories from past years will appear here" : "Aquí aparecerán lembranzas de anos pasados", + "You will find your friends soon. Please be patient" : "Logo atopará os seus amigos. Teña paciencia", + "Face Recognition is disabled. Enable in settings to find your friends" : "Recoñecemento facial está desactivada. Actívea nos axustes para atopar os seus amigos", + "Your videos will appear here" : "Os seus vídeos aparecerán aquí", + "No photos in this album yet" : "Aínda non hai fotos neste álbum", + "Create an album to get started" : "Cree un álbum para comezar", + "Archive photos you don't want to see in your timeline" : "Arquive as fotos que non quere ver na súa cronoloxía", + "Tag photos to find them easily" : "Etiquete as fotos para atopalas facilmente", + "Recognize is still working on your photos" : "Recognize segue traballando nas súas fotos", + "Places you have been to will appear here" : "Os lugares nos que estivo aparecerán aquí", + "Yes" : "Si", + "No" : "Non" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/gl.json b/l10n/gl.json index dea92b58..e5ea537e 100644 --- a/l10n/gl.json +++ b/l10n/gl.json @@ -1,184 +1,486 @@ { "translations": { + "Download" : "Descargar", + "Memories" : "Lembranzas", + "Fast, modern and advanced photo management suite" : "Unha «suite» de xestión de fotos rápida, moderna e avanzada", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Lembranzas: xestión de fotos para Nextcloud\n\nLembranzas é unha solución *pilas incluídas* para a xestión de fotos en Nextcloud con características avanzadas que inclúen:\n\n- **📸 Cronoloxía**: ordene fotos e vídeos por data de toma, analizados a partir de datos Exif.\n- **⏪ Rebobinar**: salte a calquera momento do pasado ao instante e reviva as súas lembranzas.\n- **🤖 Etiquetado AI**: agrupe as fotos por persoas e obxectos, coa axuda de [recognize](https://github.com/nextcloud/recognize) e [facerecognition](https://github.com/matiasdelellis/facerecognition ).\n- **🖼️ Álbums**: cree álbums para agrupar fotos e vídeos. Após comparta estes álbums con outros.\n- **🫱🏻‍🫲🏻 Compartir externamente**: comparta fotos e vídeos con persoas fóra da súa instancia de Nextcloud.\n- **📱 Compatibilidade co móbil**: traballe dende calquera dispositivo, de calquera forma e tamaño a través da aplicación web.\n- **✏️ Editar metadatos**: edite as datas e outros metadatos nas fotos de forma rápida e masiva.\n- **📦 Arquivo**: almacene as fotos que non quere ver na súa cronoloxía nun cartafol separado.\n- **📹 Transcodificación de vídeo**: transcodifique vídeos e use HLS para obter o máximo rendemento.\n- **🗺️ Mapa**: mire as súas fotos nun mapa, etiquetado con xeocodificación inversa precisa.\n- **📦 Migración**: migre doadamente dende Fotos de Nextcloud e Google Takeout.\n- **⚡️ Rendemento**: faga todo isto moi rápido.\n\n## 🚀 Instalación\n\n1. Instale a aplicación dende a tenda de aplicacións de Nextcloud (probe unha demostración [aquí](https://demo.memories.gallery/apps/memories/)).\n1. Realice os [pasos de configuración] recomendados (https://memories.gallery/config/).\n1. Execute «php occ memories:index» para xerar índices de metadatos das fotos existentes.\n1. Abra a aplicación 📷 Lembranzas en Nextcloud e configure o directorio que contén as súas fotos.", "Settings" : "Axustes", - "People" : "Xente", + "People (Recognize)" : "Persoas (Recognize)", + "People" : "Persoas", + "People (Face Recognition)" : "Persoas (Recoñecemento facial)", "Info" : "Información", - "Timeline" : "Liña temporal", + "Timeline" : "Cronoloxía", "Folders" : "Cartafoles", "Favorites" : "Favoritos", "Videos" : "Vídeos", "Albums" : "Álbums", - "Archive" : "Aquivar", + "Archive" : "Arquivo", "On this day" : "Neste día", "Places" : "Lugares", "Map" : "Mapa", "Tags" : "Etiquetas", + "View all" : "Ver todo", + "Recognize" : "Recognize", + "Face Recognition" : "Recoñecemento facial", + "A better photos experience awaits you" : "Agárdalle unha mellor experiencia coas fotos", + "Choose the root folder of your timeline to begin" : "Escolla o cartafol raíz da súa cronoloxía para comezar", + "Continue to Memories" : "Continuar ata Lembranzas", + "Choose again" : "Volver escoller", + "Click here to start" : "Prema aquí para comezar", + "You can always change this later in settings" : "Sempre pode cambiar isto máis adiante nos axustes", + "If you just installed Memories, visit the admin panel first." : "Se vén de instalar Lembranzas, visite primeiro o panel de administración.", + "Choose the root of your timeline" : "Escoller a raíz da súa cronoloxía", + "The selected folder does not seem to be valid. Try again." : "O cartafol seleccionado non parece ser válido. Ténteo de novo.", + "No photos were found in the selected folder." : "Non se atopou ningunha foto no cartafol seleccionado.", + "This can happen because your media is still indexing." : "Isto pode ocorrer porque os seus medios aínda se están a indexar.", + "Visit the admin panel to make sure Memories is configured correctly." : "Vexa o panel de administración para asegurarse de que Lembranzas está configurado correctamente.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Atopouse {n} elemento en {path}","Atopáronse {n} elementos en {path}"], + "Metadata" : "Metadatos", "Edit" : "Editar", + "Failed to load metadata" : "Produciuse un fallo ao cargar os metadatos", + "No coordinates" : "Sen coordenadas", + "Click edit to set location" : "Prema en editar para estabelecer a localización", + "Photos" : "Fotos", "Explore" : "Examinar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Descargar", + "Remove from album" : "Retirar do álbum", "Favorite" : "Favorito", "Unarchive" : "Desarquivar", + "Edit metadata" : "Editar os metadatos", "View in folder" : "Ver no cartafol", + "Move to folder" : "Move to folder", "Add to album" : "Engadir ao álbum", + "Move to person" : "Mover a persona", + "Remove from person" : "Retirar da persoa", + "You are about to download a large number of files." : "Está a piques de descargar un gran número de ficheiros.", + "Continue" : "Continuar", + "You are about to delete a large number of files" : "Está a piques de eliminar un gran número de ficheiros.", + "Failed to delete files" : "Produciuse un fallo ao eliminar os ficheiros", + "Move" : "Mover", + "You are about to move a large number of files" : "Está a piques de mover un gran número de ficheiros.", + "You must enable \"Mark person in preview\" to use this feature" : "Ten que activar «Marcar persoa na vista previa» para usar esta función", + "Only user \"{user}\" can update this person" : "Só o usuario «{user}» pode actualizar esta persoa", + "_{n} selected_::_{n} selected_" : ["{n} seleccionado","{n} seleccionados"], + "Memories Settings" : "Axustes de Lembranzas", "General" : "Xeral", + "Timeline Path" : "Ruta da cronoloxía", + "Square grid mode" : "Modo de cuadrícula", + "Show past photos on top of timeline" : "Amosar as fotos anteriores na parte superior da cronoloxía", + "Viewer" : "Visor", + "Autoplay Live Photos" : "Reproducir Live Photo", + "Load full size image on zoom" : "Cargar a imaxe a tamaño real no zoom", + "Always load full size image (not recommended)" : "Carga sempre a imaxe a tamaño real (non recomendado)", + "Show full file path in sidebar" : "Amosar a ruta completa do ficheiro na barra lateral", + "Account" : "Conta", + "Logged in as {user}" : "Accedeu como {user}", + "Sign out" : "Sair", + "Device Folders" : "Cartafoles do dispositivo", + "Local folders to include in the timeline view" : "Cartafoles locais para incluír na vista da cronoloxía", + "Folders Path" : "Ruta aos cartafoles", + "Show hidden folders" : "Amosar os cartafoles agochados", + "Sort folders oldest-first" : "Ordenar os cartafoles, os máis antigos primeiro", + "Sort albums oldest-first" : "Ordenar os álbums, os máis antigos primeiro", + "Choose Timeline Paths" : "Escoller as rutas da cronoloxía", + "Choose the root for the folders view" : "Escoller a raíz para a vista de cartafoles", + "Are you sure you want to log out {user}?" : "Confirma que quere saír?", "Close" : "Pechar", + "{photoCount} photos" : "{photoCount} fotos", + "Failed to load some photos" : "Produciuse un fallo ao cargar algunhas fotos", + "Failed to update setting" : "Produciuse un fallo ao actualizar o axuste", + "Albums support is enabled through the Photos app." : "A compatibilidade con Álbums está activada a través da aplicación Fotos.", + "Albums are disabled because the Photos app is not available." : "Álbums está desactivada por mor de que a aplicación Fotos non está dispoñíbel", + "Recognize is installed and enabled for face recognition." : "Recognize está instalada e activada para o recoñecemento facial.", + "Recognize is installed but not enabled for face recognition." : "Recognize está instalada mais non está activada para o recoñecemento facial.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Recognize non está instalada. É posíbel que o recoñecemento facial e a etiquetaxe de obxectos non estean dispoñíbeis", + "Face Recognition is installed and enabled" : "Recoñecemento facial está instalada e activada", + "Preview generator is installed and enabled. Additional configuration may still be required." : "A aplicación Xerador de vista previa está instalada e activada. Aínda pode ser necesaria unha configuración adicional.", + "Preview generator is not installed and configured. This may make Memories very slow." : "A aplicación Xerador de vista previa non está instalada nin configurada. Isto pode facer que as memorias sexan moi lentas.", + "Recommended Apps" : "Aplicacións recomendadas", + "Path to packaged exiftool binary" : "Ruta ao binario exiftool empaquetado", + "You need perl only if the packaged exiftool binary does not work for some reason." : "Necesitas Perl só se o binario exiftool empaquetado non funciona por algún motivo.", + "Use system perl (only if exiftool binary does not work)" : "Usar Perl do sistema (só se o binario exiftool non funciona)", + "EXIF Extraction" : "Extracciónde datos EXIF", + "You can configure the enabled Nextcloud preview providers below." : "Pode configurar os provedores de vista previa de Nextcloud activados a seguir.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Se está a usar Imaginary para a xeración da vista previa, pode ignorar esta sección.", + "To enable RAW support, install the Camera RAW Previews app." : "Para activar a compatibilidade con RAW, instale a aplicación Camera RAW Previews.", + "Documentation." : "Documentación.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick está dispoñíbel [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick non está dispoñíbel.", + "Image editing will not work correctly." : "A edición de imaxes non funcionará correctamente.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "É posible que a xeración de miniaturas non funcione para algúns formatos (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "As miniaturas dos vídeos xeraranse con este binario.", + "Thumbnail generation may not work for videos." : "É posible que a xeración de miniaturas non funcione para os vídeos.", + "The following MIME types are configured for preview generation." : "Os seguintes tipos MIME están configurados para a xeración de vista previa.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamaño máximo de vista previa (compromiso entre calidade e requisitos de almacenamento).", + "Max memory for preview generation (MB)" : "Memoria máxima para a xeración da vista previa (MB)", + "Max size of preview files (MB)" : "Tamaño máximo dos ficheiros de vista previa (MB)", + "File Support" : "Compatibilidade de ficheiros", + "Images (JPEG, PNG, GIF, BMP)" : "Imaxes (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Vídeos (FFmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Grazas por escoller Nextcloud e Lembranzas para almacenar os seus prezados datos!", + "Memories is very feature rich and setting it up properly can take some time." : "Lembranzas dispón de abondosas funcións e axustalo apropiadamente pode levar algún tempo.", + "If you just installed Memories, make sure you read the getting started guide:" : "Se vén de instalar Lembranzas, asegúrese de ler a guía de inicio:", + "External Link" : "Ligazón externa", + "In case you run into any issues or bugs, you can get help through several channels." : "No caso de que teña algún incidente ou erro, pode obter axuda a través de varias canles.", + "Memories is a completely free and open source app under active development." : "Lembranzas é unha aplicación totalmente código aberto, libre e de balde en desenvolvemento activo.", + "You can contribute in several ways. See the project page for more details:" : "Pode colaborar de varias maneiras. Consulte a páxina do proxecto para obter máis detalles:", + "Help & Support" : "Axuda e asistencia", + "{n} media files have been indexed" : "Indexáronse {n} ficheiros multimedia", + "Automatic Indexing status: {status}" : "Automatic Indexing status: {status}", + "Last index job was run {t} seconds ago." : "O último traballo de índexación executouse hai {t} segundos.", + "It took {t} seconds to complete." : "Levoulle {t} segundos para completarse.", + "It is still running or was interrupted." : "Aínda se está a executar ou foi interrompido.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Semella que pasou máis dunha hora dende que se executou o último traballo de índice. Asegúrese de que Nextcloud cron estea configurado correctamente.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Só se admite o cifrado do lado do servidor (OC_DEFAULT_MODULE), mais hai outro módulo de cifrado activado.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Os índices EXIF ​​constrúense e compróbanse nunha tarefa periódica en segundo plano. Teña coidado ao seleccionar calquera cousa que non sexa a indexación automática. Por exemplo, estabelecer a indexación só para cartafoles da cronoloxía pode provocar atrasos antes de que os medios estean dispoñíbeis para os usuarios, xa que o usuario configura a cronoloxía só após acceder.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Os cartafoles cun ficheiro «.nomedia» ou «.nomemories» sempre están excluídos da indexación.", + "Index all media automatically (recommended)" : " Indexar todos los medios automáticamente (recomendado)", + "Index per-user timeline folders (not recommended)" : "Indexar os cartafoles da cronoloxía por usuario (non recomendado)", + "Index a fixed relative path" : "Indexar unha ruta relativa fixa", + "Disable background indexing" : "Desactivar a indexación en segundo plano", + "Indexing path (relative, all users)" : "Ruta de indexación (relativa, todos os usuarios)", + "For advanced usage, perform a run of indexing by running:" : "Para uso avanzado, realice unha execución de indexación executando:", + "Run index in parallel with 4 threads:" : "Executar a indexación en paralelo con 4 fíos:", + "Force re-indexing of all files:" : "Forzar a reindexación de todos os ficheiros:", + "You can limit indexing by user and/or folder:" : "Pode limitar a indexación por usuario e/ou cartafol:", + "Clear all existing index tables:" : "Limpar todas as táboas de índice existentes:", + "Media Indexing" : "Indexación de medios", + "HTTPS is enabled" : "HTTPS está activado", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Está a acceder a esta páxina nun contexto non seguro. Varias API do navegador non están dispoñíbeis, o que fará que Lembranzas sexa moi lento. Active HTTPS no seu servidor para mellorar o rendemento.", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ou HTTP/3 está activado", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Recoméndase encarecidamente HTTP/2 ou HTTP/3 (detectouse {httpVer})", "Performance" : "Rendemento", "Unknown" : "Descoñecido", - "Add people or groups who can edit your album" : "Engade persoas ou grupos que poidan editar o teu álbum", + "Database is populated with {n} geometries." : "A base de datos está cuberta con {n} xeometrías.", + "Geometry table has not been created." : "Non foi creada a táboa de xeometría.", + "Looks like the planet data is incomplete." : "Semella que os datos do planeta están incompletos.", + "Reverse geocoding has not been configured ({status})." : "Non foi configurada a xeocodificación inversa ({status}).", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Lembranzas admite a xeocodificación inversa sen conexión usando os datos de OpenStreetMaps en MySQL e Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Ten que descargar os datos do planeta na súa base de datos. Isto é moi recomendábel e ten unha sobrecarga baixa.", + "If the button below does not work for importing the planet data, use the following command:" : "Se o botón de embaixo non funciona para importar os datos do planeta, use a seguinte orde:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: Os datos de xeometría gárdanse na táboa memories_planet_geometry, sen prefixo.", + "Download planet database" : "Descargar a base de datos de planeta", + "Reverse Geocoding" : "Xeocodificación inversa", + "Geometry support was not detected in your database" : "Non se detectou compatibilidade con xeometría na súa base de datos", + "MySQL-like geometry support was detected " : "Detectouse compatibilidade con xeometría tipo MySQL", + "Postgres native geometry support was detected" : "Detectouse compatibilidade con xeometría nativa de Postgres", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Semella que a base de datos xa está estabelecida. Confirma que quere volver descargar os datos do planeta?", + "You are about to download the planet database. This may take a while." : "Está a piques de descargar a base de datos do planeta. Isto pode levar o seu tempo.", + "This may also cause all photos to be re-indexed!" : "Isto tamén pode provocar que todas as fotos volvan ser indexadas!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "A transcodificación en directo fornece a transmisión adaptábel de vídeos mediante HLS.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Teña en conta que isto pode resultar nun uso moi intensivo da CPU sen aceleración de hardware e a transcodificación non se utilizará para o almacenamento externo.", + "Enable Transcoding" : "Activar a transcodificación", + "ffmpeg path" : "Ruta a FFmpeg", + "ffprobe path" : "Ruta a FFprobe", + "Global default video quality (user may override)" : "Calidade de vídeo predeterminada global (o usuario pode cambiala)", + "Auto (adaptive transcode)" : "Automático (transcodificación adaptábel)", + "Original (transcode with max quality)" : "Orixinal (transcodificación coa máxima calidade)", + "Direct (original video file without transcode)" : "Directo (ficheiro de vídeo orixinal sen transcodificación)", + "Video Streaming" : "Transmisión de vídeo", + "You must first make sure the correct drivers are installed before configuring acceleration." : "Antes de configurar a aceleración, debe asegurarse de que estean instalados os controladores correctos ", + "Make sure you test hardware acceleration with various options after enabling." : "Asegúrese de probar a aceleración de hardware con varias opcións após activala.", + "Do not enable multiple types of hardware acceleration simultaneously." : "Non active varios tipos de aceleración de hardware á vez.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Os procesadores Intel compatíbeis con QuickSync Video (QSV) así como algunhas GPU AMD pódense utilizar para transcodificar mediante a aceleración VA-API.", + "For more details on driver installation, check the documentation:" : "Para obter máis detalles sobre a instalación do controlador, consulte a documentación:", + "Enable acceleration with VA-API" : "Activar a aceleración con VA-API", + "Enable low-power mode (QSV only)" : "Activar o modo de baixo consumo (só QSV)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Pódense usar as GPU de NVIDIA para transcodificar usando o codificador NVENC cos controladores axeitados.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Dependendo das versións do SDK e FFmpeg instalados, cómpre especificar o escalador para usar", + "No automated tests are available for NVIDIA acceleration." : "Non hai probas automáticas dispoñíbeis para a aceleración de NVIDIA.", + "Enable acceleration with NVENC" : "Activar a aceleración con NVENC", + "Enable NVENC Temporal AQ" : "Activar a AQ temporal de NVENC", + "NPP scaler" : "Escalador NPP", + "CUDA scaler" : "Escalador CUDA", + "not recommended" : "non recomendado", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Por mor dun erro en certos controladores de hardware, os vídeos poden aparecer con orientacións incorrectas ao transmitir. Isto pódese resolver nalgúns casos rotando o vídeo no acelerador.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Active a seguinte opción só se ten vídeos orientados incorrectamente durante a reprodución.", + "Enable streaming transpose workaround" : "Activar a solución de transposición de secuencias", + "HW Acceleration" : "Aceleración por hardware", + "VA-API device ({dev}) is readable" : "O dispositivo VA-API ({dev}) é lexíbel", + "VA-API device ({dev}) not found" : "Non se atopou o dispositivo VA-API ({dev}).", + "VA-API device ({dev}) has incorrect permissions" : "O dispositivo VA-API ({dev}) ten permisos incorrectos", + "VA-API device status: {status}" : "Estado do dispositivo VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Lembranzas usa o transcodificador go-vod. Pode executar go-vod externamente (p. ex., nun contedor Docker separado para a aceleración de hardware) ou usar o transcodificador integrado. Para usar un transcodificador externo, active a seguinte opción e siga as instrucións da documentación:", + "Enable external transcoder (go-vod)" : "Activar o transcodificador externo (go-vod)", + "Binary path (local only)" : "Ruta ao binario (só local)", + "Bind address (local only)" : "Enderezo de ligazón (só local)", + "Connection address (same as bind if local)" : "Enderezo de conexión (o mesmo que a ligazón se é local)", + "Transcoder" : "Transcodificador", + "Template" : "Modelo", + "No items" : "Non hai elementos", + "Shared by {user}" : "Compartido por {user}", + "_{n} item_::_{n} items_" : ["{n} elemento","{n} elementos"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} foto actualizada","{n} fotos actualizadas"], + "Add people or groups who can edit your album" : "Engadir persoas ou grupos que poidan editar o seu álbum", "Search for collaborators" : "Buscar colaboradores", "Search people or groups" : "Buscar persoas ou grupos", - "Add {collaboratorLabel} to the collaborators list" : "Engade {collaboratorLabel} á lista de colaboradores", - "No collaborators available" : "Non hai colaboradores dispoñibles", - "Remove {collaboratorLabel} from the collaborators list" : "Elimina {collaboratorLabel} da lista de colaboradores", + "Add {collaboratorLabel} to the collaborators list" : "Engadir a {collaboratorLabel} á lista de colaboradores", + "No collaborators available" : "Non hai colaboradores dispoñíbeis", + "Remove {collaboratorLabel} from the collaborators list" : "Retirar a {collaboratorLabel} da lista de colaboradores", "Copy the public link" : "Copiar a ligazón pública", - "Public link copied!" : "Enlace público copiado!", + "Public link copied!" : "Copiouse a ligazón pública!", "Copy public link" : "Copiar a ligazón pública", "Delete the public link" : "Eliminar a ligazón pública", "Share via public link" : "Compartir mediante ligazón pública", - "Failed to fetch collaborators list." : "Produciuse un erro ao obter a lista de colaboradores.", + "Failed to fetch collaborators list." : "Produciuse un erro ao recuperar a lista de colaboradores.", "Public link" : "Ligazón pública", - "Failed to fetch album." : "Produciuse un erro ao recuperar o álbum.", + "Failed to fetch album." : "Produciuse un fallo ao recuperar o álbum.", "Failed to update album." : "Produciuse un erro ao actualizar o álbum.", - "Create new album" : "Crear novo álbum", - "Edit album details" : "Edita os detalles do álbum", + "Create new album" : "Crear un novo álbum", + "Edit album details" : "Editar os detalles do álbum", "New album" : "Novo álbum", + "Could not load the selected album" : "Non foi posíbel cargar o álbum seleccionado", + "Remove Album" : "Retirar o álbum", + "Are you sure you want to permanently remove album \"{name}\"?" : "Confirma que quere retirar definitivamente o album «{name}»?", + "Failed to delete {name}." : "Produciuse un fallo ao eliminar {name}.", "Name of the album" : "Nome do álbum", "Location of the album" : "Localización do álbum", "Go back to the previous view." : "Volver á vista anterior.", "Back" : "Atrás", - "Go to the add collaborators view." : "Vai á vista Engadir colaboradores.", + "Go to the add collaborators view." : "Ir á vista de engadir colaboradores.", "Add collaborators" : "Engadir colaboradores", "Back to the new album form." : "Volver ao formulario do álbum novo.", "Save" : "Gardar", "Create album" : "Crear álbum.", - "Add selection to album {albumName}" : "Engadir selección ao álbum {albumName}", - "Create a new album." : "Crea un novo álbum.", - "_Share with %n user_::_Share with %n users_" : ["Compartir con %n usuario","Compartir con %n usuarios"], - "Save collaborators for this album." : "Garda colaboradores para este álbum.", + "Invalid album name; should not contain any slashes." : "O nome do álbum é incorrecto; non debe conter ningunha barra.", + "Search" : "Buscar", + "Create new album." : "Crear un novo álbum.", + "Save changes" : "Gardar os cambios", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Retirada de {n} álbum","Retirada de {n} álbums"], + "Share Album" : "Compartir álbum", + "Save collaborators for this album." : "Gardar os colaboradores para este álbum.", + "shared by {owner}" : "compartido por {owner}", + "_%n item_::_%n items_" : ["%n elemento","%n elementos"], + "Newest" : "Máis recente", "Year" : "Ano", "Month" : "Mes", "Day" : "Día", "Time" : "Hora", "Hour" : "Hora", "Minute" : "Minuto", + "Oldest" : "Máis antiga", + "Invalid Date" : "Data incorrecta", + "Newest date is older than oldest date" : "A data máis recente é anterior á data máis antiga", "Title" : "Título", "Description" : "Descrición", "Label" : "Etiqueta", - "Copyright" : "Copyright", + "Camera Make" : "Marca da cámara", + "Camera Model" : "Modelo da cámara", + "Lens Model" : "Modelo da lente", + "Copyright" : "Dereitos de autoría", "Empty" : "Baleiro", + "Unchanged" : "Sen cambios", "Reset" : "Restabelecer", - "Remove person" : "Eliminar persoa", + "Remove location" : "Retirar a localización", + "Search location / landmark" : "Buscar localización / lugar emblemático", + "Failed to search for location with Nominatim." : "Produciuse un fallo ao buscar a localización con Nominatim.", + "Date / Time" : "Día / hora", + "Collaborative Tags" : "Etiquetas colaborativas", + "EXIF Fields" : "Campos EXIF", + "Geolocation" : "Xeolocalización", + "Failed to load metadata for {n} photos." : "Produciuse un fallo ao cargar os metadatos de {n} fotos.", + "{n} photos cannot be edited (permissions error)." : "Non é posíbel editar {n} fotos (hai erros nos permisos).", + "Remove person" : "Retirar persoa", + "Are you sure you want to remove {name}?" : "Confirma que quere retirar a {name}?", + "Only user \"{user}\" can delete this person" : "Só o usuario «{user}» pode eliminar esta persoa", "Rename person" : "Cambiar o nome da persoa", "Name" : "Nome", "Update" : "Actualizar", - "Search" : "Buscar", + "Failed to rename {oldName} to {name}." : "Non foi posíbel cambiar o nome de {oldName} a {name}.", "Loading …" : "Cargando…", + "Enter name of the new face" : "Introduza o nome da nova cara", + "Failed to create face" : "Produciuse un fallo ao crear unha cara", + "Merge {name} with person" : "Combinar {nome} coa persoa", + "Merge faces" : "Combinar faciana", + "Merge {name} with {newName}?" : "Combinar {nome} con {newName}?", + "unnamed person" : "persoa sen nome", + "Too many failures, aborting" : "Demasiados fallos, interrompendo", + "Error while moving {basename}" : "Produciuse un erro ao mover {basename}", + "Failed to move {name}." : "Produciuse un fallo ao mover {name}.", + "Move selected photos to person" : "Move as fotos seleccionadas á persoa", + "Move the selected photos to {target}?" : "Quere mover as fotos seleccionadas a {target}?", + "An error occurred while moving photos from {name}." : "Produciuse un erro ao mover as fotos de {name}.", + "Choose a folder" : "Escoller un cartafol", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["Moveuse {n} elemento ao cartafol","Movéronse {n} elementos ao cartafol"], "Remove" : "Retirar", - "Share link" : "Compartir ligazón", + "Add Path" : "Engadir ruta", + "Add a root to your timeline" : "Engadir unha raíz á súa cronoloxía", + "Link Sharing" : "Compartir con ligazóns", + "You cannot share the root folder" : "Vde. non pode compartir o cartafol raíz", + "Public link shares are available to people outside Nextcloud." : "As ligazóns para compartir públicas están dispoñíbeis para persoas alleas a Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "Pode crear ou actualizar permisos nas ligazóns públicas usando a barra lateral.", + "Click a link to copy to clipboard." : "Prema nunha ligazón para copiala no portapapeis.", + "Share link" : "Ligazón para compartir", + "Create Link" : "Crear ligazón", "Refresh" : "Actualizar", "Password protected" : "Protexido con contrasinal", "Expires" : "Caduca", + "Editable" : "Editábel", "Read only" : "Só lectura", "Link copied to clipboard" : "A ligazón foi copiada no portapapeis.", + "Share File" : "Compartir ficheiro", + "Reduced Size" : "Tamaño reducido", + "Share a lower resolution image preview" : "Compartir unha vista previa da imaxe de menor resolución", + "High Resolution" : "Alta resolución", + "Share the video as a high quality MOV" : "Compartir o vídeo como MOV de alta calidade", + "Share the image as a high quality JPEG" : "Compartir a imaxe como JPEG de alta calidade", + "Original File" : "Ficheiro orixinal", + "Share the original image / video file" : "Compartir o ficheiro de imaxe/vídeo orixinal", + "Public Link" : "Ligazón pública", + "Share an external Nextcloud link" : "Compartir unha ligazón externa de Nextcloud", + "Failed to download file" : "Produciuse un fallo ao descargar o ficheiro", + "Cannot share this type of data" : "Non é posíbel compartir este tipo de datos", "Sort by date" : "Ordenar pola data", "Sort by name" : "Ordenar polo nome", - "Delete album" : "Eliminar álbum", - "Merge with different person" : "Combinar con unha persoa diferente", + "Share album" : "Compartir álbum", + "Download album" : "Descargar album", + "Nothing to show here" : "Non hai nada que amosar aquí", + "Unassigned faces" : "Facianas sen asignar", + "Merge with different person" : "Combinar cunha persoa diferente", + "Mark person in preview" : "Marcar persoa na vista previa", + "Unnamed person" : "Persoa sen nome", + "Folder View" : "Vista do cartafol", + "Timeline View" : "Vista da cronoloxía", "Share folder" : "Compartir cartafol", + "Move left" : "Mover á esquerda", + "Move right" : "Move á dereita", + "Image saved successfully" : "A imaxe foi gardada satisfactoriamente", "Error saving image" : "Produciuse un erro ao gardar a imaxe", "Unsaved changes" : "Cambios sen gardar", - "Drop changes" : "Elimina os cambios", + "Drop changes" : "Desbotar os cambios", "Share" : "Compartir", + "Play Live Photo" : "Reproducir Live Photo", + "Download Video" : "Descargar vídeo", + "Slideshow" : "Diaporama", "Previous" : "Anterior", "Next" : "Seguinte", + "Editing is currently disabled for Live Photos" : "Actualmente, está desactivada a edición para Live Photos", + "Are you sure you want to delete?" : "Confirma que quere eliminar?", + "Failed to delete photo" : "Produciuse un fallo ao eliminar a foto", + "{name} binary exists and is executable." : "O binario {name} existe e é executábel.", + "{name} binary not found." : "Non se atopou o binario {name}.", + "{name} binary is not executable." : "O binario {name} non é executábel", + "{name} failed test: {info}." : "Fallou a proba de {name}: {información}.", + "{name} binary exists and is usable ({info})." : "O binario {name} existe e pódese usar ({info}).", + "{name} binary status: {status}." : "Estado do binario {name}: {status}.", "Save as" : "Gardar como", "All changes will be lost." : "Perderanse todos os cambios.", - "Are you sure you want to continue?" : "Estás seguro de que queres continuar?", - "Continue" : "Continuar", + "Are you sure you want to continue?" : "Confirma que quere continuar?", "Undo" : "Desfacer", "Redo" : "Refacer", - "Show original image" : "Mostra a imaxe orixinal", + "Show original image" : "Amosar a imaxe orixinal", "Zoom in" : "Achegar", - "Zoom out" : "Reducir o zoom", - "Toggle zoom menu" : "Cambiar o menú de zoom", + "Zoom out" : "Afastar", + "Toggle zoom menu" : "Alternar o menú de zoom", "Adjust" : "Axustar", - "Fine-tune" : "Afinar", + "Fine-tune" : "Axuste fino", "Filters" : "Filtros", "Watermark" : "Marca de auga", - "Draw" : "Debuxa", + "Draw" : "Debuxar", "Resize" : "Cambiar o tamaño", - "Invalid image." : "Imaxe non válida.", - "Error while uploading the image." : "Produciuse un erro ao cargar a imaxe.", + "Invalid image." : "Imaxe incorrecta", + "Error while uploading the image." : "Produciuse un erro ao enviar a imaxe.", "are not images" : "non son imaxes", "is not an image" : "non é unha imaxe", - "to be uploaded" : "a cargar", + "to be uploaded" : "para enviar", "Crop" : "Recortar", "Original" : "Orixinal", "Custom" : "Personalizado", "Square" : "Cadrado", - "Landscape" : "Orientación horizontal", - "Portrait" : "Orientación vertical", + "Landscape" : "Paisaxe", + "Portrait" : "Retrato", "Ellipse" : "Elipse", "Classic TV" : "TV clásica", - "CinemaScope" : "CinemaScope", + "CinemaScope" : "Cinemascope", "Arrow" : "Frecha", "Blur" : "Desenfoque", "Brightness" : "Brillo", "Contrast" : "Contraste", - "Un-flip X" : "Desactivar X", - "Flip X" : "Xire X", - "Un-flip Y" : "Quitar xiro Y", - "Flip Y" : "Xirar Y", - "HSV" : "VHS", + "Un-flip X" : "Desfacer o volteo X", + "Flip X" : "Volteo X", + "Un-flip Y" : "Desfacer o volteo Y", + "Flip Y" : "Volteo Y", + "HSV" : "MSV", "Hue" : "Matiz", "Saturation" : "Saturación", "Value" : "Valor", "Image" : "Imaxe", - "Importing …" : "Importando …", + "Importing …" : "Importando…", "+ Add image" : "+ Engadir imaxe", "Line" : "Liña", "Pen" : "Bolígrafo", "Polygon" : "Polígono", "Sides" : "Lados", "Rectangle" : "Rectángulo", - "Corner Radius" : "Radio de Esquina", - "Width in pixels" : "Ancho en píxeles", - "Height in pixels" : "Altura en píxeles", - "Toggle ratio lock" : "Activar/desactivar o bloqueo da proporción", - "Reset to original image size" : "Restablece o tamaño da imaxe orixinal", - "Rotate" : "Xirar", + "Corner Radius" : "Raio do canto", + "Width in pixels" : "Largo en píxeles", + "Height in pixels" : "Alto en píxeles", + "Toggle ratio lock" : "Alternar o bloqueo da proporción", + "Reset to original image size" : "Restabelecer o tamaño da imaxe orixinal", + "Rotate" : "Rotar", "Text" : "Texto", "Text spacing" : "Espazamento do texto", - "Text alignment" : "Aliñación do texto", + "Text alignment" : "Aliñamento do texto", "Font family" : "Familia tipográfica", "Size" : "Tamaño", "Letter spacing" : "Espazamento de letras", "Line height" : "Altura da liña", - "Warmth" : "Calidez", + "Warmth" : "Calor", "+ Add watermark" : "+ Engadir marca de auga", - "Choose watermark type" : "Escolla o tipo de marca de auga", - "Upload watermark" : "Cargar marca de auga", + "Choose watermark type" : "Escoller o tipo de marca de auga", + "Upload watermark" : "Enviar a marca de auga", "Add as text" : "Engadir como texto", - "Padding" : "Relleno", + "Padding" : "Recheo", "Shadow" : "Sombra", "Horizontal" : "Horizontal", "Vertical" : "Vertical", "Opacity" : "Opacidade", "Position" : "Posicion", - "Stroke" : "Trazado", - "Save image as" : "Garda a imaxe como", + "Stroke" : "Contorno", + "Save image as" : "Gardar a imaxe como", "Extension" : "Extensión", - "Name is required." : "É obrigatorio o nome.", + "Name is required." : "Precisase o nome.", "Quality" : "Calidade", - "Saved image size (width x height)" : "Tamaño da imaxe gardada (ancho x alto)", + "Saved image size (width x height)" : "Tamaño da imaxe gardada (largo x alto)", "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Teña en conta que a área de recorte seleccionada é inferior ao cambio de tamaño aplicado, o que pode provocar unha diminución da calidade", "Actual size (100%)" : "Tamaño real (100%)", "Fit size" : "Axuste de tamaño", + "Transcoding failed, check Nextcloud logs." : "Produciuse un fallo na transcodificación, comprobe os rexistros de Nextcloud.", "Direct" : "Directa", "Auto" : "Automático", - "Failed to create {albumName}." : "Produciuse un erro ao crear {albumName}.", - "Failed to rename {currentAlbumName} to {newAlbumName}." : "Non se puido cambiar o nome de {currentAlbumName} a {newAlbumName}.", - "Failed to delete {fileName}." : "Produciuse un erro ao eliminar {fileName}." + "Shared Folder" : "Cartafol compartido", + "Shared Album" : "Álbum compartido", + "Failed to remove {filename}." : "Produciuse un fallo ao retirar {filename}.", + "Failed to create {albumName}." : "Produciuse un fallo ao crear {albumName}.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "Non foi posíbel cambiar o nome de {currentAlbumName} a {newAlbumName}.", + "General Failure" : "Produciuse un fallo xeral", + "Error: {msg}" : "Erro: {msg}", + "Failed to delete {fileName}." : "Produciuse un fallo ao eliminar {fileName}.", + "Failed to move files." : "Produciuse un fallo ao mover os ficheiro.", + "Could not move {fileName}, target exists." : "Non foi posíbel mover «{fileName}», o destino xa existe", + "Failed to move {fileName}." : "Produciuse un fallo ao mover {fileName}.", + "Failed to download files" : "Produciuse un fallo ao descargar os ficheiros", + "Failed to favorite files." : "Produciuse un fallo ao marcar os ficheiros como favoritos.", + "Failed to favorite some files." : "Produciuse un fallo ao marcar algúns ficheiros como favoritos.", + "Failed to favorite {fileName}." : "Produciuse un fallo ao marcar {fileName} como favorito.", + "No content-location header found" : "Non se atopou ningunha cabeceira de localización de contido", + "Failed to create tag {name}: {error}" : "Produciuse un fallo ao crear a etiqueta {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Lembranzas foi actualizado á versión {version}. Volva cargar para obter a nova versión.", + "Upload some photos and make sure the timeline path is configured" : "Envíe algunhas fotos e asegúrese de que a ruta da cronoloxía estea configurada", + "Mark photos as favorite to find them easily" : "Marcar as fotos como favoritas para atopalas facilmente", + "Memories from past years will appear here" : "Aquí aparecerán lembranzas de anos pasados", + "You will find your friends soon. Please be patient" : "Logo atopará os seus amigos. Teña paciencia", + "Face Recognition is disabled. Enable in settings to find your friends" : "Recoñecemento facial está desactivada. Actívea nos axustes para atopar os seus amigos", + "Your videos will appear here" : "Os seus vídeos aparecerán aquí", + "No photos in this album yet" : "Aínda non hai fotos neste álbum", + "Create an album to get started" : "Cree un álbum para comezar", + "Archive photos you don't want to see in your timeline" : "Arquive as fotos que non quere ver na súa cronoloxía", + "Tag photos to find them easily" : "Etiquete as fotos para atopalas facilmente", + "Recognize is still working on your photos" : "Recognize segue traballando nas súas fotos", + "Places you have been to will appear here" : "Os lugares nos que estivo aparecerán aquí", + "Yes" : "Si", + "No" : "Non" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/he.js b/l10n/he.js index 76483249..74f37f3e 100644 --- a/l10n/he.js +++ b/l10n/he.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "הורדה", "Settings" : "הגדרות", "Info" : "פרטים", "Timeline" : "ציר זמן", @@ -11,18 +12,24 @@ OC.L10N.register( "Archive" : "לארכיון", "On this day" : "בתאריך זה", "Tags" : "תגיות", + "Metadata" : "נתוני על", "Edit" : "עריכה", "Explore" : "דפדוף", "Cancel" : "ביטול", "Delete" : "מחיקה", - "Download" : "הורדה", "Favorite" : "סימון כמועדף", "Unarchive" : "הוצאה מהארכיון", "View in folder" : "הצג בתיקייה", + "Continue" : "להמשך", + "Move" : "העברה", "General" : "כללי", + "Viewer" : "מציג", + "Account" : "חשבון", "Close" : "סגירה", "Performance" : "ביצועים", "Unknown" : "לא ידוע", + "Template" : "תבנית", + "Shared by {user}" : "שותפה על ידי {user}", "Add {collaboratorLabel} to the collaborators list" : "הוסף {collaboratorLabel} לרשימת השותפים", "Copy public link" : "העתקת הקישור הציבורי", "Public link" : "קישור ציבורי", @@ -33,6 +40,8 @@ OC.L10N.register( "Add collaborators" : "הוספת שותפים", "Save" : "שמירה", "Create album" : "יצירת אלבום", + "Search" : "חיפוש", + "Save changes" : "שמירת השינויים", "Year" : "שנה", "Month" : "חודש", "Day" : "יום", @@ -47,7 +56,6 @@ OC.L10N.register( "Reset" : "איפוס", "Name" : "שם", "Update" : "עדכון", - "Search" : "חיפוש", "Loading …" : "בטעינה…", "Remove" : "הסרה", "Share link" : "קישור שיתוף", @@ -62,7 +70,6 @@ OC.L10N.register( "Share" : "שתף", "Previous" : "הקודם", "Next" : "הבא", - "Continue" : "להמשך", "Undo" : "ביטול", "Redo" : "שחזור", "Zoom in" : "התקרבות", diff --git a/l10n/he.json b/l10n/he.json index 5e845e82..8b5d2259 100644 --- a/l10n/he.json +++ b/l10n/he.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "הורדה", "Settings" : "הגדרות", "Info" : "פרטים", "Timeline" : "ציר זמן", @@ -9,18 +10,24 @@ "Archive" : "לארכיון", "On this day" : "בתאריך זה", "Tags" : "תגיות", + "Metadata" : "נתוני על", "Edit" : "עריכה", "Explore" : "דפדוף", "Cancel" : "ביטול", "Delete" : "מחיקה", - "Download" : "הורדה", "Favorite" : "סימון כמועדף", "Unarchive" : "הוצאה מהארכיון", "View in folder" : "הצג בתיקייה", + "Continue" : "להמשך", + "Move" : "העברה", "General" : "כללי", + "Viewer" : "מציג", + "Account" : "חשבון", "Close" : "סגירה", "Performance" : "ביצועים", "Unknown" : "לא ידוע", + "Template" : "תבנית", + "Shared by {user}" : "שותפה על ידי {user}", "Add {collaboratorLabel} to the collaborators list" : "הוסף {collaboratorLabel} לרשימת השותפים", "Copy public link" : "העתקת הקישור הציבורי", "Public link" : "קישור ציבורי", @@ -31,6 +38,8 @@ "Add collaborators" : "הוספת שותפים", "Save" : "שמירה", "Create album" : "יצירת אלבום", + "Search" : "חיפוש", + "Save changes" : "שמירת השינויים", "Year" : "שנה", "Month" : "חודש", "Day" : "יום", @@ -45,7 +54,6 @@ "Reset" : "איפוס", "Name" : "שם", "Update" : "עדכון", - "Search" : "חיפוש", "Loading …" : "בטעינה…", "Remove" : "הסרה", "Share link" : "קישור שיתוף", @@ -60,7 +68,6 @@ "Share" : "שתף", "Previous" : "הקודם", "Next" : "הבא", - "Continue" : "להמשך", "Undo" : "ביטול", "Redo" : "שחזור", "Zoom in" : "התקרבות", diff --git a/l10n/hr.js b/l10n/hr.js index bb38f4ff..94384b8b 100644 --- a/l10n/hr.js +++ b/l10n/hr.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Preuzmi", "Settings" : "Postavke", "People" : "Ljudi", "Info" : "Informacije", @@ -10,23 +11,31 @@ OC.L10N.register( "Videos" : "Videozapisi", "Archive" : "Arhiva", "Tags" : "Oznake", + "Metadata" : "Metapodaci", "Edit" : "Uredi", "Photos" : "Fotografije", "Explore" : "Istraži", "Cancel" : "Odustani", "Delete" : "Izbriši", - "Download" : "Preuzmi", "Favorite" : "Favorit", "Unarchive" : "Dearhiviraj", "View in folder" : "Prikaži u mapi", + "Continue" : "Nastavi", + "Move" : "Premjesti", "General" : "Općenito", + "Viewer" : "Preglednik", + "Account" : "Račun", "Close" : "Zatvori", "Performance" : "Učinkovitost", "Unknown" : "Nepoznata pogreška", + "Template" : "Predložak", + "Shared by {user}" : "Dijeli {user}", "Copy public link" : "Kopiraj javnu poveznicu", "Public link" : "Javna poveznica", "Back" : "Natrag", "Save" : "Spremi", + "Search" : "Traži", + "Save changes" : "Spremi promjene", "Year" : "Godina", "Month" : "Mjesec", "Day" : "Dan", @@ -41,7 +50,6 @@ OC.L10N.register( "Reset" : "Resetiraj", "Name" : "Naziv", "Update" : "Ažuriraj", - "Search" : "Traži", "Loading …" : "Učitavanje…", "Remove" : "Ukloni", "Share link" : "Dijeli poveznicu", @@ -57,7 +65,6 @@ OC.L10N.register( "Share" : "Dijeli", "Previous" : "Natrag", "Next" : "Dalje", - "Continue" : "Nastavi", "Undo" : "Poništi", "Redo" : "Ponovno", "Zoom in" : "Uvećaj", @@ -72,6 +79,8 @@ OC.L10N.register( "Name is required." : "Ime je obavezno.", "Quality" : "Kvaliteta", "Direct" : "Izravno", - "Auto" : "Auto" + "Auto" : "Auto", + "Yes" : "Da", + "No" : "Ne" }, "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/l10n/hr.json b/l10n/hr.json index 59034e7b..fd06cfaf 100644 --- a/l10n/hr.json +++ b/l10n/hr.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Preuzmi", "Settings" : "Postavke", "People" : "Ljudi", "Info" : "Informacije", @@ -8,23 +9,31 @@ "Videos" : "Videozapisi", "Archive" : "Arhiva", "Tags" : "Oznake", + "Metadata" : "Metapodaci", "Edit" : "Uredi", "Photos" : "Fotografije", "Explore" : "Istraži", "Cancel" : "Odustani", "Delete" : "Izbriši", - "Download" : "Preuzmi", "Favorite" : "Favorit", "Unarchive" : "Dearhiviraj", "View in folder" : "Prikaži u mapi", + "Continue" : "Nastavi", + "Move" : "Premjesti", "General" : "Općenito", + "Viewer" : "Preglednik", + "Account" : "Račun", "Close" : "Zatvori", "Performance" : "Učinkovitost", "Unknown" : "Nepoznata pogreška", + "Template" : "Predložak", + "Shared by {user}" : "Dijeli {user}", "Copy public link" : "Kopiraj javnu poveznicu", "Public link" : "Javna poveznica", "Back" : "Natrag", "Save" : "Spremi", + "Search" : "Traži", + "Save changes" : "Spremi promjene", "Year" : "Godina", "Month" : "Mjesec", "Day" : "Dan", @@ -39,7 +48,6 @@ "Reset" : "Resetiraj", "Name" : "Naziv", "Update" : "Ažuriraj", - "Search" : "Traži", "Loading …" : "Učitavanje…", "Remove" : "Ukloni", "Share link" : "Dijeli poveznicu", @@ -55,7 +63,6 @@ "Share" : "Dijeli", "Previous" : "Natrag", "Next" : "Dalje", - "Continue" : "Nastavi", "Undo" : "Poništi", "Redo" : "Ponovno", "Zoom in" : "Uvećaj", @@ -70,6 +77,8 @@ "Name is required." : "Ime je obavezno.", "Quality" : "Kvaliteta", "Direct" : "Izravno", - "Auto" : "Auto" + "Auto" : "Auto", + "Yes" : "Da", + "No" : "Ne" },"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/hu.js b/l10n/hu.js index c7a54700..38296d24 100644 --- a/l10n/hu.js +++ b/l10n/hu.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Letöltés", "Memories" : "Emlékek", "Fast, modern and advanced photo management suite" : "Gyors, modern és fejlett fényképkezelő csomag", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Emlékek\n\nAz Emlékek egy *teljes értékű* fényképkezelő megoldás a Nextcloudhoz, többek között az alábbi speciális funkciókkal:\n\n- **📸 Idővonal**: Fényképek és videók rendezése az Exif-adatokból kinyert felvételi dátum alapján.\n- **⏪ Visszatekerés**: Azonnali visszaugrás a múltba, hogy újra átélhesse az emlékeit.\n- **🤖 MI-alapú címkézés**: Emberekről és tárgyakról készült képek csoportosítása a [Felismerés](https://github.com/nextcloud/recognize) és az [Arcfelismerés](https://github.com/matiasdelellis/facerecognition) alkalmazásokra támaszkodva.\n- **🖼️ Albumok**: Albumok létrehozása a fényképek és videók csoportosításához. Majd ezek megosztása másokkal.\n- **🫱🏻‍🫲🏻 Külső megosztás**: Fényképek és videók megosztása a Nextcloud-példányon kívüli emberekkel.\n- **📱 Mobilos támogatás**: A webalkalmazás segítségével tetszőleges alakú és méretű eszközön működik.\n- **✏️ Metaadatok szerkesztése**: Fényképek dátumának gyors és tömeges szerkesztése.\n- **📦 Archívum**: Azon képek külön mappában tárolása, melyeket nem akar az idővonalán látni.\n- **📹 Videók átkódolása**: Átkódolja a videókat, és HLS-t használ a maximális teljesítmény érdekében.\n- **🗺️ Térkép**: Fényképek megtekintése térképen, pontos fordított geokódolással.\n- **📦 Átköltöztetés**: Könnyű átköltöztetés a Nextcloud Fényképekből és a Google Takeoutból.\n- **⚡️ Teljesítmény**: Az Emlékek rendkívül gyors.\n\n## 🚀 Telepítés\n\n1. Telepítse az alkalmazást a Nextcloud alkalmazástárából (próbáljon ki egy demót [itt](https://demo.memories.gallery/apps/memories/)).\n1. Végezze el a javasolt [beállítási lépéseket](https://memories.gallery/config/).\n1. Futtassa a `php occ memories:index` parancsot, hogy előállítsa a meglévő fényképek metaadatindexét.\n1. Nyissa meg az 📷 Emlékek alkalmazást a Nextcloudban, és állítsa be a fényképeit tartalmazó könyvtárat.", @@ -24,17 +25,19 @@ OC.L10N.register( "Face Recognition" : "Arcfelismerés", "A better photos experience awaits you" : "Egy jobb fényképes élmény várja", "Choose the root folder of your timeline to begin" : "A kezdéshez válasszon gyökérmappát az idővonaláról", - "If you just installed Memories, run:" : "Ha csak most telepítette az Emlékek alkalmazást, futtassa ezt:", "Continue to Memories" : "Folytatás az Emlékekhez", "Choose again" : "Válasszon újra", "Click here to start" : "Kattintson ide a kezdéshez", "You can always change this later in settings" : "Később bármikor módosíthatja a beállításokban", + "If you just installed Memories, visit the admin panel first." : "Ha csak most telepítette az Emlékeket, akkor először keresse fel a rendszergazdai panelt.", "Choose the root of your timeline" : "Válassza ki a gyökeret az idővonaláról", "The selected folder does not seem to be valid. Try again." : "A kiválasztott mappa nem tűnik érvényesnek. Próbálja újra.", + "No photos were found in the selected folder." : "Nem találhatók fényképek a kiválasztott mappában.", + "This can happen because your media is still indexing." : "Ez azért történhet, mert a média még indexel alatt áll.", + "Visit the admin panel to make sure Memories is configured correctly." : "Keresse fel a rendszergazdai panelt, hogy meggyőződjön az Emlékek helyes beállításáról.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} elem található a következőben: {path}","{n} elem található a következőben: {path}"], + "Metadata" : "Metaadatok", "Edit" : "Szerkesztés", - "No title" : "Nincs cím", - "No description" : "Nincs leírás", "No coordinates" : "Nincsenek koordináták", "Click edit to set location" : "Kattintson a szerkesztésre a hely megadásához", "Photos" : "Fényképek", @@ -42,7 +45,6 @@ OC.L10N.register( "Cancel" : "Mégse", "Delete" : "Törlés", "Remove from album" : "Eltávolítás az albumból", - "Download" : "Letöltés", "Favorite" : "Kedvenc", "Unarchive" : "Archiválás visszavonása", "Edit metadata" : "Metaadatok szerkesztése", @@ -51,9 +53,9 @@ OC.L10N.register( "Add to album" : "Hozzáadás az albumhoz", "Move to person" : "Áthelyezés egy személyhez", "Remove from person" : "Eltávolítás a személytől", - "You are about to download a large number of files. Are you sure?" : "Sok fájl letöltésére készül. Biztos benne?", - "You are about to delete a large number of files. Are you sure?" : "Sok fájl törlésére készül. Biztos benne?", - "You are about to touch a large number of files. Are you sure?" : "Sok fájl érintésére készül. Biztos benne?", + "Continue" : "Folytatás", + "Failed to delete files" : "A fájlok törlése sikertelen", + "Move" : "Áthelyezés", "You must enable \"Mark person in preview\" to use this feature" : "A funkció használatához engedélyeznie kell a „Személy megjelölése az előnézetben” beállítást", "Only user \"{user}\" can update this person" : "Csak „{user}” felhasználó frissítheti ezt a személyt", "_{n} selected_::_{n} selected_" : ["{n} kiválasztva","{n} kiválasztva"], @@ -62,23 +64,43 @@ OC.L10N.register( "Timeline Path" : "Idővonal elérési útja", "Square grid mode" : "Négyzetrácsos mód", "Show past photos on top of timeline" : "Múltbeli fényképek megjelenítése az idővonal tetején", + "Viewer" : "Megjelenítő", "Load full size image on zoom" : "Teljes méretű képek betöltése nagyításra", "Always load full size image (not recommended)" : "Mindig a teljes méretű képek betöltése (nem ajánlott)", + "Account" : "Fiók", + "Logged in as {user}" : "Bejelentkezve mint {user}", + "Sign out" : "Kijelentkezés", + "Device Folders" : "Eszközmappák", + "Local folders to include in the timeline view" : "Az idővonal nézetbe beleveendő helyi mappák", "Folders Path" : "Mappák útvonala", "Show hidden folders" : "Rejtett mappák megjelenítése", "Sort folders oldest-first" : "Mappák rendezése a legrégebbitől a legújabbig.", "Sort albums oldest-first" : "Albumok rendezése a legrégebbitől a legújabbig.", "Choose Timeline Paths" : "Idővonal-útvonalak kiválasztása", "Choose the root for the folders view" : "Válassza ki a mappanézet gyökerét", + "Are you sure you want to log out {user}?" : "Biztos, hogy kijelentkezteti {user} felhasználót?", "Close" : "Bezárás", "{photoCount} photos" : "{photoCount} fénykép", "Failed to load some photos" : "Nem sikerült betölteni néhány fényképet", "Failed to update setting" : "Nem sikerült a beállítás frissítése", - "EXIF Extraction" : "EXIF kinyerése", "Path to packaged exiftool binary" : "A csomagolt exiftool bináris útvonala", "You need perl only if the packaged exiftool binary does not work for some reason." : "Csak akkor van szükség a perlre, ha a csomagolt exiftool bináris valamiért nem működik.", "Use system perl (only if exiftool binary does not work)" : "A rendszer által biztosított perl használata (csak akkor, ha az exiftool bináris nem működik)", - "Media Indexing" : "Médiaindexelés", + "EXIF Extraction" : "EXIF kinyerése", + "You can configure the enabled Nextcloud preview providers below." : "Alább beállíthatja a Nextcloudban bekapcsolt előnézet-szolgáltatókat.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Ha az Imaginaryt használja az előnézetek előállításához, akkor figyelmen kívül hagyhatja ezt a szakaszt.", + "To enable RAW support, install the Camera RAW Previews app." : "A RAW támogatás bekapcsolásához telepítse a „Camera RAW Previews” alkalmazást.", + "Documentation." : "Dokumentáció.", + "The following MIME types are configured for preview generation." : "A következő MIME-típusok esetén van beállítva az előnézetek előállítása.", + "Max preview size (trade-off between quality and storage requirements)." : "Előnézetek legnagyobb mérete (kompromisszum a minőség és a tárhelyigény között).", + "Max memory for preview generation (MB)" : "Az előnézetek előállításához használt legtöbb memória (MB)", + "Max size of preview files (MB)" : "Az előnézeti fájlok legnagyobb mérete (MB)", + "File Support" : "Fájltámogatás", + "Images (JPEG, PNG, GIF, BMP)" : "Képek (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videók (ffmpeg)", + "External Link" : "Külső hivatkozás", "{n} media files have been indexed" : "{n} médiafájl lett indexelve", "Automatic Indexing status: {status}" : "Automatikus indexelés állapota: {status}", "Last index job was run {t} seconds ago." : "A legutóbbi indexelési feladat {t} másodperce futott.", @@ -86,7 +108,6 @@ OC.L10N.register( "It is still running or was interrupted." : "Még mindig fut, vagy félbeszakadt.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Csak a kiszolgálóoldali titkosítás (OC_DEFAULT_MODULE) támogatott, de más titkosítási modul van bekapcsolva.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Az EXIF indexeket egy időnként futó háttérfeladat állítja össze és ellenőrzi. Legyen óvatos, ha az automatikus indexeléstől eltérő beállítást választ. Például a csak az idővonalon lévő mappák indexelésének beállítása késleltetést okozhat mielőtt a fájlok elérhetővé válnak a felhasználók számára, mivel a felhasználó az idővonalat csak bejelentkezés után állítja be.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "A „.nomedia” fájllal rendelkező mappák mindig ki vannak hagyva az indexelésből.", "Index all media automatically (recommended)" : "Az összes médiafájl automatikus indexelése (ajánlott)", "Index per-user timeline folders (not recommended)" : "Felhasználónkénti idővonal mappák indexelése (nem ajánlott)", "Index a fixed relative path" : "Kötött relatív útvonal indexelése", @@ -97,15 +118,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "Az összes fájl újraindexelésének kényszerítése:", "You can limit indexing by user and/or folder:" : "Az indexelést felhasználónként vagy mappánként korlátozhatja:", "Clear all existing index tables:" : "Az összes meglévő indextábla törlése:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "A következő MIME-típusok esetén helyesen van beállítva az előnézetek előállítása. További dokumentáció:", - "External Link" : "Külső hivatkozás", - "Performance" : "Teljesítmény", + "Media Indexing" : "Médiaindexelés", "HTTPS is enabled" : "A HTTPS engedélyezett", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Az oldalt nem biztonságos környezeten keresztül éri el. Számos böngésző API nem érhető el, ami lassúvá teszi az Emlékeket. A teljesítmény javítása érdekében engedélyezze a HTTPS-t a kiszolgálón.", "HTTP/2 or HTTP/3 is enabled" : "A HTTP/2 vagy HTTP/3 engedélyezett", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "A HTTP/2 vagy HTTP/3 erősen ajánlott ({httpVer} észlelve)", + "Performance" : "Teljesítmény", "Unknown" : "Ismeretlen", - "Reverse Geocoding" : "Fordított geokódolás", "Database is populated with {n} geometries." : "Az adatbázis {n} geometriával lett feltöltve.", "Geometry table has not been created." : "A geometria tábla létrejött.", "Looks like the planet data is incomplete." : "Úgy tűnik, hogy a bolygószintű adatok nem teljesek.", @@ -115,13 +134,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "Ha a lenti gomb nem importálja a bolygószintű adatokat, akkor használja a következő parancsot:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Megjegyzés: a geometriaadatok a memories_planet_geomatry táblában vannak tárolva, előtag nélkül.", "Download planet database" : "Bolygószintű adatbázis letöltése", + "Reverse Geocoding" : "Fordított geokódolás", "Geometry support was not detected in your database" : "A geometriai támogatás nem észlelhető az adatbázisban", "MySQL-like geometry support was detected " : "MySQL-szerű geometriai támogatás észlelve", "Postgres native geometry support was detected" : "PostgreSQL natív geometriai támogatás észlelve", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Úgy néz ki, hogy az adatbázis már be van állítva. Biztos, hogy újra letölti a bolygószintű adatokat?", "You are about to download the planet database. This may take a while." : "A bolygószintű adatbázis letöltésére készül. Ez eltarthat egy ideig.", "This may also cause all photos to be re-indexed!" : "Ez az összes fénykép újraindexelését is okozhatja.", - "Video Streaming" : "Videóközvetítés", "Live transcoding provides for adaptive streaming of videos using HLS." : "Az élő átkódolás lehetővé teszi a videók HLS segítségével történő adaptív közvetítését.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Vegye figyelembe, hogy ez hardveres gyorsítás nélkül nagyon CPU-intenzív lehet, és az átkódolás nem lesz használva a külső tárolóhoz.", "Enable Transcoding" : "Átkódolás engedélyezése", @@ -131,14 +150,13 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Automatikus (adaptív átkódolás)", "Original (transcode with max quality)" : "Eredeti (átkódolás a legnagyobb minőségben)", "Direct (original video file without transcode)" : "Közvetlen (eredeti videó, átkódolás nélkül)", - "Hardware Acceleration" : "Hardveres gyorsítás", + "Video Streaming" : "Videóközvetítés", "You must first make sure the correct drivers are installed before configuring acceleration." : "A gyorsítás beállítása előtt meg kell győződnie arról, hogy a megfelelő illesztőprogramok telepítve vannak.", "Make sure you test hardware acceleration with various options after enabling." : "Tesztelje a hardveres gyorsítást különböző beállításokkal az engedélyezése után.", "Do not enable multiple types of hardware acceleration simultaneously." : "Egyszerre ne engedélyezzen többféle hardveres gyorsítást.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "A VA-API használatával történő gyorsítás a QuickSync Videót (QSV) támogató Intel processzorok, valamint egyes AMD GPU-k esetén használható.", "For more details on driver installation, check the documentation:" : "Az illesztőprogram telepítésének további részleteiért nézze meg a dokumentációt:", "Enable acceleration with VA-API" : "VA-API-val történő gyorsítás engedélyezése", - "Enable low-power mode (QSV)" : "Energiatakarékos mód (QSV) engedélyezése", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Az NVIDIA GPU-k csak a megfelelő illesztőprogrammal használhatják az NVENC kódolóval történő átkódolást.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "A telepített SDK és ffmpeg verziójától függően meg kell adnia a használandó méretezőt", "No automated tests are available for NVIDIA acceleration." : "Nem érhetők el automatizált tesztek az NVIDIA gyorsításhoz.", @@ -150,13 +168,14 @@ OC.L10N.register( "VA-API device ({dev}) not found" : "A VA-API eszköz ({dev}) nem található", "VA-API device ({dev}) has incorrect permissions" : "A VA-API eszköznek ({dev}) helytelenek a jogosultságai", "VA-API device status: {status}" : "A VA-API eszköz állapota: {status}", - "Transcoder configuration" : "Átkódoló konfigurációja", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Az Emlékek a go-vod átkódolót használja. Futtathatja a go-vodot külsőleg (például külön Docker konténerben a hardveres gyorsításhoz), vagy használhatja a beépített átkódolót. Külső átkódoló használatához engedélyezze a következő beállítást, és kövesse az utasításokat a dokumentációban:", "Enable external transcoder (go-vod)" : "Külső átkódoló engedélyezése (go-vod)", "Binary path (local only)" : "Bináris útvonala (csak helyi esetén)", "Bind address (local only)" : "Kötési cím (csak helyi esetén)", "Connection address (same as bind if local)" : "Kapcsolati cím (helyi esetén megegyezik a kötéssel)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} elem hozzáadva az albumhoz","{n} elem hozzáadva az albumhoz"], + "Template" : "Sablon", + "No items" : "Nincsenek elemek", + "Shared by {user}" : "Megosztotta: {user}", "Add people or groups who can edit your album" : "Emberek vagy csoportok hozzáadása, akik szerkeszthetik az albumot", "Search for collaborators" : "Közreműködők keresése", "Search people or groups" : "Felhasználó vagy csoport keresése", @@ -178,7 +197,6 @@ OC.L10N.register( "Could not load the selected album" : "A kiválasztott album nem tölthető be", "Remove Album" : "Album eltávolítása", "Are you sure you want to permanently remove album \"{name}\"?" : "Biztos, hogy véglegesen törli a(z) „{name}” albumot?", - "Only user \"{user}\" can delete this album" : "Csak „{user}” törölheti ezt az albumot", "Failed to delete {name}." : "A(z) {name} törlése sikertelen.", "Name of the album" : "Az album neve", "Location of the album" : "Az album helye", @@ -190,12 +208,11 @@ OC.L10N.register( "Save" : "Mentés", "Create album" : "Album létrehozása", "Invalid album name; should not contain any slashes." : "Érvénytelen albumnév; ne tartalmazzon / karaktert.", - "Add selection to album {albumName}" : "Kiválasztás hozzáadása a(z) {albumName} albumhoz", - "Create a new album." : "Új album létrehozása.", - "_%n item_::_%n items_" : ["%n elem","%n elem"], - "_Share with %n user_::_Share with %n users_" : ["Megosztás %n felhasználóval","Megosztás %n felhasználóval"], + "Search" : "Keresés", + "Save changes" : "Változások mentése", "Share Album" : "Album megosztása", "Save collaborators for this album." : "Közreműködők mentése ehhez az albumhoz.", + "_%n item_::_%n items_" : ["%n elem","%n elem"], "Newest" : "Legújabb", "Year" : "Év", "Month" : "Hónap", @@ -232,18 +249,15 @@ OC.L10N.register( "Name" : "Név", "Update" : "Frissítés", "Failed to rename {oldName} to {name}." : "A(z) {oldName} átnevezése a következőre sikertelen: {name}.", - "Search" : "Keresés", "Loading …" : "Betöltés…", "Enter name of the new face" : "Adja meg az új arc nevét", "Failed to create face" : "Az arc létrehozása sikertelen", "Merge {name} with person" : "{name} összevonása egy másik személlyel", - "Are you sure you want to merge {name} with {newName}?" : "Biztos, hogy összevonja a következőket: {name} és {newName}?", "Too many failures, aborting" : "Túl sok hiba, megszakítás", "Error while moving {basename}" : "Hiba a(z) {basename} áthelyezése során", "Failed to move {name}." : "A(z) {name} áthelyezése sikertelen.", "Move selected photos to person" : "A kiválasztott fényképek áthelyezése egy személyhez", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Biztos, hogy áthelyezi a kiválasztott fényképeket a következőtől: {name}, a következőhöz: {target}?", - "An error occured while moving photos from {name}." : "Hiba történt a fényképek a következőből történő áthelyezése során: {name}.", + "An error occurred while moving photos from {name}." : "Hiba történt a fényképek innen történő áthelyezése során: {name}.", "Choose a folder" : "Válasszon mappát", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} elem áthelyezve a mappába","{n} elem áthelyezve a mappába"], "Remove" : "Eltávolítás", @@ -278,8 +292,8 @@ OC.L10N.register( "Sort by name" : "Rendezés név szerint", "Share album" : "Album megosztása", "Download album" : "Album letöltése", - "Delete album" : "Album törlése", "Nothing to show here" : "Nincs mit megjeleníteni", + "Unassigned faces" : "Nem hozzárendelt arcok", "Merge with different person" : "Összevonás egy másik személlyel", "Mark person in preview" : "Személy megjelölése az előnézetben", "Folder View" : "Mappa nézet", @@ -293,13 +307,13 @@ OC.L10N.register( "Drop changes" : "Változtatások elvetése", "Share" : "Megosztás", "Play Live Photo" : "Élő fénykép lejátszása", - "Sidebar" : "Oldalsáv", "Download Video" : "Videó letöltése", "Slideshow" : "Diavetítés", "Previous" : "Előző", "Next" : "Következő", "Editing is currently disabled for Live Photos" : "A szerkesztés jelenleg tiltott az élő fényképek esetén", "Are you sure you want to delete?" : "Biztos, hogy törli?", + "Failed to delete photo" : "A fénykép törlése sikertelen", "{name} binary exists and is executable." : "A(z) {name} bináris létezik és végrehajtható.", "{name} binary not found." : "A(z) {name} bináris nem található.", "{name} binary is not executable." : "A(z) {name} bináris nem hajtható végre.", @@ -309,7 +323,6 @@ OC.L10N.register( "Save as" : "Mentés másként", "All changes will be lost." : "Az összes változtatás elvész.", "Are you sure you want to continue?" : "Biztos, hogy folytatja?", - "Continue" : "Folytatás", "Undo" : "Visszavonás", "Redo" : "Újra", "Show original image" : "Eredeti kép megjelenítése", @@ -406,6 +419,7 @@ OC.L10N.register( "Failed to favorite files." : "A fájlok kedvencnek jelölése sikertelen.", "Failed to favorite some files." : "Egyes fájlok kedvencnek jelölése sikertelen.", "Failed to favorite {fileName}." : "A(z) {fileName} kedvencnek jelölése sikertelen.", + "Memories has been updated to {version}. Reload to get the new version." : "Az Emlékek frissült a következő verzióra: {version}. Töltse újra, hogy megkapja az új verziót.", "Upload some photos and make sure the timeline path is configured" : "Töltsön fel fényképeket és győződjön meg róla, hogy az idővonal útvonala be van-e állítva", "Mark photos as favorite to find them easily" : "A fényképek megjelölése kedvencként, hogy könnyen megtalálja őket", "Memories from past years will appear here" : "Az elmúlt évek emlékei itt fognak megjelenni", @@ -418,6 +432,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Címkézze a fényképeket, hogy könnyen megtalálja őket", "Recognize is still working on your photos" : "A felismerés még mindig dolgozik a fényképein", "Places you have been to will appear here" : "A helyek, ahol volt, itt fognak megjelenni", - "Your Timeline" : "Saját idővonal" + "Yes" : "Igen", + "No" : "Nem" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/hu.json b/l10n/hu.json index 0562c1b5..06b2fa30 100644 --- a/l10n/hu.json +++ b/l10n/hu.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Letöltés", "Memories" : "Emlékek", "Fast, modern and advanced photo management suite" : "Gyors, modern és fejlett fényképkezelő csomag", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Emlékek\n\nAz Emlékek egy *teljes értékű* fényképkezelő megoldás a Nextcloudhoz, többek között az alábbi speciális funkciókkal:\n\n- **📸 Idővonal**: Fényképek és videók rendezése az Exif-adatokból kinyert felvételi dátum alapján.\n- **⏪ Visszatekerés**: Azonnali visszaugrás a múltba, hogy újra átélhesse az emlékeit.\n- **🤖 MI-alapú címkézés**: Emberekről és tárgyakról készült képek csoportosítása a [Felismerés](https://github.com/nextcloud/recognize) és az [Arcfelismerés](https://github.com/matiasdelellis/facerecognition) alkalmazásokra támaszkodva.\n- **🖼️ Albumok**: Albumok létrehozása a fényképek és videók csoportosításához. Majd ezek megosztása másokkal.\n- **🫱🏻‍🫲🏻 Külső megosztás**: Fényképek és videók megosztása a Nextcloud-példányon kívüli emberekkel.\n- **📱 Mobilos támogatás**: A webalkalmazás segítségével tetszőleges alakú és méretű eszközön működik.\n- **✏️ Metaadatok szerkesztése**: Fényképek dátumának gyors és tömeges szerkesztése.\n- **📦 Archívum**: Azon képek külön mappában tárolása, melyeket nem akar az idővonalán látni.\n- **📹 Videók átkódolása**: Átkódolja a videókat, és HLS-t használ a maximális teljesítmény érdekében.\n- **🗺️ Térkép**: Fényképek megtekintése térképen, pontos fordított geokódolással.\n- **📦 Átköltöztetés**: Könnyű átköltöztetés a Nextcloud Fényképekből és a Google Takeoutból.\n- **⚡️ Teljesítmény**: Az Emlékek rendkívül gyors.\n\n## 🚀 Telepítés\n\n1. Telepítse az alkalmazást a Nextcloud alkalmazástárából (próbáljon ki egy demót [itt](https://demo.memories.gallery/apps/memories/)).\n1. Végezze el a javasolt [beállítási lépéseket](https://memories.gallery/config/).\n1. Futtassa a `php occ memories:index` parancsot, hogy előállítsa a meglévő fényképek metaadatindexét.\n1. Nyissa meg az 📷 Emlékek alkalmazást a Nextcloudban, és állítsa be a fényképeit tartalmazó könyvtárat.", @@ -22,17 +23,19 @@ "Face Recognition" : "Arcfelismerés", "A better photos experience awaits you" : "Egy jobb fényképes élmény várja", "Choose the root folder of your timeline to begin" : "A kezdéshez válasszon gyökérmappát az idővonaláról", - "If you just installed Memories, run:" : "Ha csak most telepítette az Emlékek alkalmazást, futtassa ezt:", "Continue to Memories" : "Folytatás az Emlékekhez", "Choose again" : "Válasszon újra", "Click here to start" : "Kattintson ide a kezdéshez", "You can always change this later in settings" : "Később bármikor módosíthatja a beállításokban", + "If you just installed Memories, visit the admin panel first." : "Ha csak most telepítette az Emlékeket, akkor először keresse fel a rendszergazdai panelt.", "Choose the root of your timeline" : "Válassza ki a gyökeret az idővonaláról", "The selected folder does not seem to be valid. Try again." : "A kiválasztott mappa nem tűnik érvényesnek. Próbálja újra.", + "No photos were found in the selected folder." : "Nem találhatók fényképek a kiválasztott mappában.", + "This can happen because your media is still indexing." : "Ez azért történhet, mert a média még indexel alatt áll.", + "Visit the admin panel to make sure Memories is configured correctly." : "Keresse fel a rendszergazdai panelt, hogy meggyőződjön az Emlékek helyes beállításáról.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} elem található a következőben: {path}","{n} elem található a következőben: {path}"], + "Metadata" : "Metaadatok", "Edit" : "Szerkesztés", - "No title" : "Nincs cím", - "No description" : "Nincs leírás", "No coordinates" : "Nincsenek koordináták", "Click edit to set location" : "Kattintson a szerkesztésre a hely megadásához", "Photos" : "Fényképek", @@ -40,7 +43,6 @@ "Cancel" : "Mégse", "Delete" : "Törlés", "Remove from album" : "Eltávolítás az albumból", - "Download" : "Letöltés", "Favorite" : "Kedvenc", "Unarchive" : "Archiválás visszavonása", "Edit metadata" : "Metaadatok szerkesztése", @@ -49,9 +51,9 @@ "Add to album" : "Hozzáadás az albumhoz", "Move to person" : "Áthelyezés egy személyhez", "Remove from person" : "Eltávolítás a személytől", - "You are about to download a large number of files. Are you sure?" : "Sok fájl letöltésére készül. Biztos benne?", - "You are about to delete a large number of files. Are you sure?" : "Sok fájl törlésére készül. Biztos benne?", - "You are about to touch a large number of files. Are you sure?" : "Sok fájl érintésére készül. Biztos benne?", + "Continue" : "Folytatás", + "Failed to delete files" : "A fájlok törlése sikertelen", + "Move" : "Áthelyezés", "You must enable \"Mark person in preview\" to use this feature" : "A funkció használatához engedélyeznie kell a „Személy megjelölése az előnézetben” beállítást", "Only user \"{user}\" can update this person" : "Csak „{user}” felhasználó frissítheti ezt a személyt", "_{n} selected_::_{n} selected_" : ["{n} kiválasztva","{n} kiválasztva"], @@ -60,23 +62,43 @@ "Timeline Path" : "Idővonal elérési útja", "Square grid mode" : "Négyzetrácsos mód", "Show past photos on top of timeline" : "Múltbeli fényképek megjelenítése az idővonal tetején", + "Viewer" : "Megjelenítő", "Load full size image on zoom" : "Teljes méretű képek betöltése nagyításra", "Always load full size image (not recommended)" : "Mindig a teljes méretű képek betöltése (nem ajánlott)", + "Account" : "Fiók", + "Logged in as {user}" : "Bejelentkezve mint {user}", + "Sign out" : "Kijelentkezés", + "Device Folders" : "Eszközmappák", + "Local folders to include in the timeline view" : "Az idővonal nézetbe beleveendő helyi mappák", "Folders Path" : "Mappák útvonala", "Show hidden folders" : "Rejtett mappák megjelenítése", "Sort folders oldest-first" : "Mappák rendezése a legrégebbitől a legújabbig.", "Sort albums oldest-first" : "Albumok rendezése a legrégebbitől a legújabbig.", "Choose Timeline Paths" : "Idővonal-útvonalak kiválasztása", "Choose the root for the folders view" : "Válassza ki a mappanézet gyökerét", + "Are you sure you want to log out {user}?" : "Biztos, hogy kijelentkezteti {user} felhasználót?", "Close" : "Bezárás", "{photoCount} photos" : "{photoCount} fénykép", "Failed to load some photos" : "Nem sikerült betölteni néhány fényképet", "Failed to update setting" : "Nem sikerült a beállítás frissítése", - "EXIF Extraction" : "EXIF kinyerése", "Path to packaged exiftool binary" : "A csomagolt exiftool bináris útvonala", "You need perl only if the packaged exiftool binary does not work for some reason." : "Csak akkor van szükség a perlre, ha a csomagolt exiftool bináris valamiért nem működik.", "Use system perl (only if exiftool binary does not work)" : "A rendszer által biztosított perl használata (csak akkor, ha az exiftool bináris nem működik)", - "Media Indexing" : "Médiaindexelés", + "EXIF Extraction" : "EXIF kinyerése", + "You can configure the enabled Nextcloud preview providers below." : "Alább beállíthatja a Nextcloudban bekapcsolt előnézet-szolgáltatókat.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Ha az Imaginaryt használja az előnézetek előállításához, akkor figyelmen kívül hagyhatja ezt a szakaszt.", + "To enable RAW support, install the Camera RAW Previews app." : "A RAW támogatás bekapcsolásához telepítse a „Camera RAW Previews” alkalmazást.", + "Documentation." : "Dokumentáció.", + "The following MIME types are configured for preview generation." : "A következő MIME-típusok esetén van beállítva az előnézetek előállítása.", + "Max preview size (trade-off between quality and storage requirements)." : "Előnézetek legnagyobb mérete (kompromisszum a minőség és a tárhelyigény között).", + "Max memory for preview generation (MB)" : "Az előnézetek előállításához használt legtöbb memória (MB)", + "Max size of preview files (MB)" : "Az előnézeti fájlok legnagyobb mérete (MB)", + "File Support" : "Fájltámogatás", + "Images (JPEG, PNG, GIF, BMP)" : "Képek (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Videók (ffmpeg)", + "External Link" : "Külső hivatkozás", "{n} media files have been indexed" : "{n} médiafájl lett indexelve", "Automatic Indexing status: {status}" : "Automatikus indexelés állapota: {status}", "Last index job was run {t} seconds ago." : "A legutóbbi indexelési feladat {t} másodperce futott.", @@ -84,7 +106,6 @@ "It is still running or was interrupted." : "Még mindig fut, vagy félbeszakadt.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Csak a kiszolgálóoldali titkosítás (OC_DEFAULT_MODULE) támogatott, de más titkosítási modul van bekapcsolva.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Az EXIF indexeket egy időnként futó háttérfeladat állítja össze és ellenőrzi. Legyen óvatos, ha az automatikus indexeléstől eltérő beállítást választ. Például a csak az idővonalon lévő mappák indexelésének beállítása késleltetést okozhat mielőtt a fájlok elérhetővé válnak a felhasználók számára, mivel a felhasználó az idővonalat csak bejelentkezés után állítja be.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "A „.nomedia” fájllal rendelkező mappák mindig ki vannak hagyva az indexelésből.", "Index all media automatically (recommended)" : "Az összes médiafájl automatikus indexelése (ajánlott)", "Index per-user timeline folders (not recommended)" : "Felhasználónkénti idővonal mappák indexelése (nem ajánlott)", "Index a fixed relative path" : "Kötött relatív útvonal indexelése", @@ -95,15 +116,13 @@ "Force re-indexing of all files:" : "Az összes fájl újraindexelésének kényszerítése:", "You can limit indexing by user and/or folder:" : "Az indexelést felhasználónként vagy mappánként korlátozhatja:", "Clear all existing index tables:" : "Az összes meglévő indextábla törlése:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "A következő MIME-típusok esetén helyesen van beállítva az előnézetek előállítása. További dokumentáció:", - "External Link" : "Külső hivatkozás", - "Performance" : "Teljesítmény", + "Media Indexing" : "Médiaindexelés", "HTTPS is enabled" : "A HTTPS engedélyezett", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Az oldalt nem biztonságos környezeten keresztül éri el. Számos böngésző API nem érhető el, ami lassúvá teszi az Emlékeket. A teljesítmény javítása érdekében engedélyezze a HTTPS-t a kiszolgálón.", "HTTP/2 or HTTP/3 is enabled" : "A HTTP/2 vagy HTTP/3 engedélyezett", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "A HTTP/2 vagy HTTP/3 erősen ajánlott ({httpVer} észlelve)", + "Performance" : "Teljesítmény", "Unknown" : "Ismeretlen", - "Reverse Geocoding" : "Fordított geokódolás", "Database is populated with {n} geometries." : "Az adatbázis {n} geometriával lett feltöltve.", "Geometry table has not been created." : "A geometria tábla létrejött.", "Looks like the planet data is incomplete." : "Úgy tűnik, hogy a bolygószintű adatok nem teljesek.", @@ -113,13 +132,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "Ha a lenti gomb nem importálja a bolygószintű adatokat, akkor használja a következő parancsot:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Megjegyzés: a geometriaadatok a memories_planet_geomatry táblában vannak tárolva, előtag nélkül.", "Download planet database" : "Bolygószintű adatbázis letöltése", + "Reverse Geocoding" : "Fordított geokódolás", "Geometry support was not detected in your database" : "A geometriai támogatás nem észlelhető az adatbázisban", "MySQL-like geometry support was detected " : "MySQL-szerű geometriai támogatás észlelve", "Postgres native geometry support was detected" : "PostgreSQL natív geometriai támogatás észlelve", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Úgy néz ki, hogy az adatbázis már be van állítva. Biztos, hogy újra letölti a bolygószintű adatokat?", "You are about to download the planet database. This may take a while." : "A bolygószintű adatbázis letöltésére készül. Ez eltarthat egy ideig.", "This may also cause all photos to be re-indexed!" : "Ez az összes fénykép újraindexelését is okozhatja.", - "Video Streaming" : "Videóközvetítés", "Live transcoding provides for adaptive streaming of videos using HLS." : "Az élő átkódolás lehetővé teszi a videók HLS segítségével történő adaptív közvetítését.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Vegye figyelembe, hogy ez hardveres gyorsítás nélkül nagyon CPU-intenzív lehet, és az átkódolás nem lesz használva a külső tárolóhoz.", "Enable Transcoding" : "Átkódolás engedélyezése", @@ -129,14 +148,13 @@ "Auto (adaptive transcode)" : "Automatikus (adaptív átkódolás)", "Original (transcode with max quality)" : "Eredeti (átkódolás a legnagyobb minőségben)", "Direct (original video file without transcode)" : "Közvetlen (eredeti videó, átkódolás nélkül)", - "Hardware Acceleration" : "Hardveres gyorsítás", + "Video Streaming" : "Videóközvetítés", "You must first make sure the correct drivers are installed before configuring acceleration." : "A gyorsítás beállítása előtt meg kell győződnie arról, hogy a megfelelő illesztőprogramok telepítve vannak.", "Make sure you test hardware acceleration with various options after enabling." : "Tesztelje a hardveres gyorsítást különböző beállításokkal az engedélyezése után.", "Do not enable multiple types of hardware acceleration simultaneously." : "Egyszerre ne engedélyezzen többféle hardveres gyorsítást.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "A VA-API használatával történő gyorsítás a QuickSync Videót (QSV) támogató Intel processzorok, valamint egyes AMD GPU-k esetén használható.", "For more details on driver installation, check the documentation:" : "Az illesztőprogram telepítésének további részleteiért nézze meg a dokumentációt:", "Enable acceleration with VA-API" : "VA-API-val történő gyorsítás engedélyezése", - "Enable low-power mode (QSV)" : "Energiatakarékos mód (QSV) engedélyezése", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Az NVIDIA GPU-k csak a megfelelő illesztőprogrammal használhatják az NVENC kódolóval történő átkódolást.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "A telepített SDK és ffmpeg verziójától függően meg kell adnia a használandó méretezőt", "No automated tests are available for NVIDIA acceleration." : "Nem érhetők el automatizált tesztek az NVIDIA gyorsításhoz.", @@ -148,13 +166,14 @@ "VA-API device ({dev}) not found" : "A VA-API eszköz ({dev}) nem található", "VA-API device ({dev}) has incorrect permissions" : "A VA-API eszköznek ({dev}) helytelenek a jogosultságai", "VA-API device status: {status}" : "A VA-API eszköz állapota: {status}", - "Transcoder configuration" : "Átkódoló konfigurációja", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Az Emlékek a go-vod átkódolót használja. Futtathatja a go-vodot külsőleg (például külön Docker konténerben a hardveres gyorsításhoz), vagy használhatja a beépített átkódolót. Külső átkódoló használatához engedélyezze a következő beállítást, és kövesse az utasításokat a dokumentációban:", "Enable external transcoder (go-vod)" : "Külső átkódoló engedélyezése (go-vod)", "Binary path (local only)" : "Bináris útvonala (csak helyi esetén)", "Bind address (local only)" : "Kötési cím (csak helyi esetén)", "Connection address (same as bind if local)" : "Kapcsolati cím (helyi esetén megegyezik a kötéssel)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} elem hozzáadva az albumhoz","{n} elem hozzáadva az albumhoz"], + "Template" : "Sablon", + "No items" : "Nincsenek elemek", + "Shared by {user}" : "Megosztotta: {user}", "Add people or groups who can edit your album" : "Emberek vagy csoportok hozzáadása, akik szerkeszthetik az albumot", "Search for collaborators" : "Közreműködők keresése", "Search people or groups" : "Felhasználó vagy csoport keresése", @@ -176,7 +195,6 @@ "Could not load the selected album" : "A kiválasztott album nem tölthető be", "Remove Album" : "Album eltávolítása", "Are you sure you want to permanently remove album \"{name}\"?" : "Biztos, hogy véglegesen törli a(z) „{name}” albumot?", - "Only user \"{user}\" can delete this album" : "Csak „{user}” törölheti ezt az albumot", "Failed to delete {name}." : "A(z) {name} törlése sikertelen.", "Name of the album" : "Az album neve", "Location of the album" : "Az album helye", @@ -188,12 +206,11 @@ "Save" : "Mentés", "Create album" : "Album létrehozása", "Invalid album name; should not contain any slashes." : "Érvénytelen albumnév; ne tartalmazzon / karaktert.", - "Add selection to album {albumName}" : "Kiválasztás hozzáadása a(z) {albumName} albumhoz", - "Create a new album." : "Új album létrehozása.", - "_%n item_::_%n items_" : ["%n elem","%n elem"], - "_Share with %n user_::_Share with %n users_" : ["Megosztás %n felhasználóval","Megosztás %n felhasználóval"], + "Search" : "Keresés", + "Save changes" : "Változások mentése", "Share Album" : "Album megosztása", "Save collaborators for this album." : "Közreműködők mentése ehhez az albumhoz.", + "_%n item_::_%n items_" : ["%n elem","%n elem"], "Newest" : "Legújabb", "Year" : "Év", "Month" : "Hónap", @@ -230,18 +247,15 @@ "Name" : "Név", "Update" : "Frissítés", "Failed to rename {oldName} to {name}." : "A(z) {oldName} átnevezése a következőre sikertelen: {name}.", - "Search" : "Keresés", "Loading …" : "Betöltés…", "Enter name of the new face" : "Adja meg az új arc nevét", "Failed to create face" : "Az arc létrehozása sikertelen", "Merge {name} with person" : "{name} összevonása egy másik személlyel", - "Are you sure you want to merge {name} with {newName}?" : "Biztos, hogy összevonja a következőket: {name} és {newName}?", "Too many failures, aborting" : "Túl sok hiba, megszakítás", "Error while moving {basename}" : "Hiba a(z) {basename} áthelyezése során", "Failed to move {name}." : "A(z) {name} áthelyezése sikertelen.", "Move selected photos to person" : "A kiválasztott fényképek áthelyezése egy személyhez", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Biztos, hogy áthelyezi a kiválasztott fényképeket a következőtől: {name}, a következőhöz: {target}?", - "An error occured while moving photos from {name}." : "Hiba történt a fényképek a következőből történő áthelyezése során: {name}.", + "An error occurred while moving photos from {name}." : "Hiba történt a fényképek innen történő áthelyezése során: {name}.", "Choose a folder" : "Válasszon mappát", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} elem áthelyezve a mappába","{n} elem áthelyezve a mappába"], "Remove" : "Eltávolítás", @@ -276,8 +290,8 @@ "Sort by name" : "Rendezés név szerint", "Share album" : "Album megosztása", "Download album" : "Album letöltése", - "Delete album" : "Album törlése", "Nothing to show here" : "Nincs mit megjeleníteni", + "Unassigned faces" : "Nem hozzárendelt arcok", "Merge with different person" : "Összevonás egy másik személlyel", "Mark person in preview" : "Személy megjelölése az előnézetben", "Folder View" : "Mappa nézet", @@ -291,13 +305,13 @@ "Drop changes" : "Változtatások elvetése", "Share" : "Megosztás", "Play Live Photo" : "Élő fénykép lejátszása", - "Sidebar" : "Oldalsáv", "Download Video" : "Videó letöltése", "Slideshow" : "Diavetítés", "Previous" : "Előző", "Next" : "Következő", "Editing is currently disabled for Live Photos" : "A szerkesztés jelenleg tiltott az élő fényképek esetén", "Are you sure you want to delete?" : "Biztos, hogy törli?", + "Failed to delete photo" : "A fénykép törlése sikertelen", "{name} binary exists and is executable." : "A(z) {name} bináris létezik és végrehajtható.", "{name} binary not found." : "A(z) {name} bináris nem található.", "{name} binary is not executable." : "A(z) {name} bináris nem hajtható végre.", @@ -307,7 +321,6 @@ "Save as" : "Mentés másként", "All changes will be lost." : "Az összes változtatás elvész.", "Are you sure you want to continue?" : "Biztos, hogy folytatja?", - "Continue" : "Folytatás", "Undo" : "Visszavonás", "Redo" : "Újra", "Show original image" : "Eredeti kép megjelenítése", @@ -404,6 +417,7 @@ "Failed to favorite files." : "A fájlok kedvencnek jelölése sikertelen.", "Failed to favorite some files." : "Egyes fájlok kedvencnek jelölése sikertelen.", "Failed to favorite {fileName}." : "A(z) {fileName} kedvencnek jelölése sikertelen.", + "Memories has been updated to {version}. Reload to get the new version." : "Az Emlékek frissült a következő verzióra: {version}. Töltse újra, hogy megkapja az új verziót.", "Upload some photos and make sure the timeline path is configured" : "Töltsön fel fényképeket és győződjön meg róla, hogy az idővonal útvonala be van-e állítva", "Mark photos as favorite to find them easily" : "A fényképek megjelölése kedvencként, hogy könnyen megtalálja őket", "Memories from past years will appear here" : "Az elmúlt évek emlékei itt fognak megjelenni", @@ -416,6 +430,7 @@ "Tag photos to find them easily" : "Címkézze a fényképeket, hogy könnyen megtalálja őket", "Recognize is still working on your photos" : "A felismerés még mindig dolgozik a fényképein", "Places you have been to will appear here" : "A helyek, ahol volt, itt fognak megjelenni", - "Your Timeline" : "Saját idővonal" + "Yes" : "Igen", + "No" : "Nem" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/hy.js b/l10n/hy.js index 587e9115..fb58c331 100644 --- a/l10n/hy.js +++ b/l10n/hy.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Ներբեռնել", "Settings" : "կարգավորումներ", "Info" : "Info", "Favorites" : "Սիրվածներ", @@ -8,11 +9,13 @@ OC.L10N.register( "Photos" : "Նկարներ", "Cancel" : "ընդհատել", "Delete" : "հեռացնել", - "Download" : "Ներբեռնել", + "Continue" : "Շարունակել", + "Move" : "Տեղափոխել", "General" : "Ընդհանուր", "Close" : "Փակել", "Unknown" : "Անհայտ", "Save" : "Պահպանել", + "Search" : "Search", "Month" : "Ամիս", "Day" : "Օր", "Time" : "Ժամ", @@ -20,7 +23,6 @@ OC.L10N.register( "Description" : "Նկարագրություն", "Name" : "Անուն", "Update" : "Թարմացնել", - "Search" : "Search", "Share link" : "Կիսվել հղմամբ", "Refresh" : "Թարմացնել", "Sort by date" : "Order by date", @@ -28,7 +30,8 @@ OC.L10N.register( "Share" : "Կիսվել", "Previous" : "Նախորդ", "Next" : "Հաջորդ", - "Continue" : "Շարունակել", - "Size" : "Չափս" + "Size" : "Չափս", + "Yes" : "Այո", + "No" : "Ոչ" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/hy.json b/l10n/hy.json index 6b19f361..1cf97ace 100644 --- a/l10n/hy.json +++ b/l10n/hy.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Ներբեռնել", "Settings" : "կարգավորումներ", "Info" : "Info", "Favorites" : "Սիրվածներ", @@ -6,11 +7,13 @@ "Photos" : "Նկարներ", "Cancel" : "ընդհատել", "Delete" : "հեռացնել", - "Download" : "Ներբեռնել", + "Continue" : "Շարունակել", + "Move" : "Տեղափոխել", "General" : "Ընդհանուր", "Close" : "Փակել", "Unknown" : "Անհայտ", "Save" : "Պահպանել", + "Search" : "Search", "Month" : "Ամիս", "Day" : "Օր", "Time" : "Ժամ", @@ -18,7 +21,6 @@ "Description" : "Նկարագրություն", "Name" : "Անուն", "Update" : "Թարմացնել", - "Search" : "Search", "Share link" : "Կիսվել հղմամբ", "Refresh" : "Թարմացնել", "Sort by date" : "Order by date", @@ -26,7 +28,8 @@ "Share" : "Կիսվել", "Previous" : "Նախորդ", "Next" : "Հաջորդ", - "Continue" : "Շարունակել", - "Size" : "Չափս" + "Size" : "Չափս", + "Yes" : "Այո", + "No" : "Ոչ" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/ia.js b/l10n/ia.js index c953b9a4..81c2ecab 100644 --- a/l10n/ia.js +++ b/l10n/ia.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Discargar", "Settings" : "Configurationes", "Info" : "Info", "Favorites" : "Favoritos", @@ -9,14 +10,15 @@ OC.L10N.register( "Explore" : "Explorar", "Cancel" : "Cancellar", "Delete" : "Deler", - "Download" : "Discargar", "Favorite" : "Favorite", "View in folder" : "Vider in dossier", + "Move" : "Mover", "General" : "General", "Close" : "Clauder", "Unknown" : "Incognite", "Back" : "Retro", "Save" : "Salveguardar", + "Search" : "Cercar", "Month" : "Mense", "Day" : "Die", "Time" : "Tempore", @@ -26,7 +28,6 @@ OC.L10N.register( "Reset" : "Re-fixar", "Name" : "Nomine", "Update" : "Actualisation", - "Search" : "Cercar", "Share link" : "Compartir ligamine", "Refresh" : "Refrescar", "Password protected" : "Protegite per contrasigno", diff --git a/l10n/ia.json b/l10n/ia.json index 6ec02e66..6d7004ca 100644 --- a/l10n/ia.json +++ b/l10n/ia.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Discargar", "Settings" : "Configurationes", "Info" : "Info", "Favorites" : "Favoritos", @@ -7,14 +8,15 @@ "Explore" : "Explorar", "Cancel" : "Cancellar", "Delete" : "Deler", - "Download" : "Discargar", "Favorite" : "Favorite", "View in folder" : "Vider in dossier", + "Move" : "Mover", "General" : "General", "Close" : "Clauder", "Unknown" : "Incognite", "Back" : "Retro", "Save" : "Salveguardar", + "Search" : "Cercar", "Month" : "Mense", "Day" : "Die", "Time" : "Tempore", @@ -24,7 +26,6 @@ "Reset" : "Re-fixar", "Name" : "Nomine", "Update" : "Actualisation", - "Search" : "Cercar", "Share link" : "Compartir ligamine", "Refresh" : "Refrescar", "Password protected" : "Protegite per contrasigno", diff --git a/l10n/id.js b/l10n/id.js index 740d883f..9288c0f3 100644 --- a/l10n/id.js +++ b/l10n/id.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Unduh", "Settings" : "Setelan", "People" : "Orang", "Info" : "Info", @@ -19,14 +20,18 @@ OC.L10N.register( "Explore" : "Jelajah", "Cancel" : "Membatalkan", "Delete" : "Hapus", - "Download" : "Unduh", "Favorite" : "Favorit", "View in folder" : "Lihat dalam folder", "Add to album" : "Tambahkan album", + "Continue" : "Lanjutkan", + "Move" : "Pindah", "General" : "Umum", + "Account" : "Akun", "Close" : "Tutup", "Performance" : "Performa", "Unknown" : "Tidak diketahui", + "No items" : "Tak ada item", + "Shared by {user}" : "Dibagikan oleh {user}", "Add people or groups who can edit your album" : "Tambahkan orang atau grup yang dapat menyunting album Anda", "Search for collaborators" : "Cari kolaborator", "Search people or groups" : "Cari orang atau grup", @@ -54,9 +59,7 @@ OC.L10N.register( "Back to the new album form." : "Kembali ke formulir album baru.", "Save" : "Simpan", "Create album" : "Buat album", - "Add selection to album {albumName}" : "Tambahkan pilihan ke album {albumName}", - "Create a new album." : "Buat sebuah album baru.", - "_Share with %n user_::_Share with %n users_" : ["Bagikan dengan %n pengguna"], + "Search" : "Cari", "Save collaborators for this album." : "Simpan kolaborator untuk album ini", "Month" : "Bulan", "Day" : "Hari", @@ -70,7 +73,6 @@ OC.L10N.register( "Rename person" : "Ubah nama orang", "Name" : "Nama", "Update" : "Perbarui", - "Search" : "Cari", "Remove" : "Buang", "Share link" : "Bagikan tautan", "Refresh" : "Muat ulang", @@ -78,12 +80,10 @@ OC.L10N.register( "Read only" : "Hanya baca", "Sort by date" : "Urutkan berdasarkan tanggal", "Sort by name" : "Urutkan berdasarkan nama", - "Delete album" : "Hapus album", "Merge with different person" : "Gabungkan dengan orang yang berbeda", "Share" : "Bagikan", "Previous" : "Sebelumnya", "Next" : "Berikutnya", - "Continue" : "Lanjutkan", "Undo" : "Undo", "Value" : "Nilari", "Size" : "Ukuran", diff --git a/l10n/id.json b/l10n/id.json index 92c1aa79..95cd5348 100644 --- a/l10n/id.json +++ b/l10n/id.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Unduh", "Settings" : "Setelan", "People" : "Orang", "Info" : "Info", @@ -17,14 +18,18 @@ "Explore" : "Jelajah", "Cancel" : "Membatalkan", "Delete" : "Hapus", - "Download" : "Unduh", "Favorite" : "Favorit", "View in folder" : "Lihat dalam folder", "Add to album" : "Tambahkan album", + "Continue" : "Lanjutkan", + "Move" : "Pindah", "General" : "Umum", + "Account" : "Akun", "Close" : "Tutup", "Performance" : "Performa", "Unknown" : "Tidak diketahui", + "No items" : "Tak ada item", + "Shared by {user}" : "Dibagikan oleh {user}", "Add people or groups who can edit your album" : "Tambahkan orang atau grup yang dapat menyunting album Anda", "Search for collaborators" : "Cari kolaborator", "Search people or groups" : "Cari orang atau grup", @@ -52,9 +57,7 @@ "Back to the new album form." : "Kembali ke formulir album baru.", "Save" : "Simpan", "Create album" : "Buat album", - "Add selection to album {albumName}" : "Tambahkan pilihan ke album {albumName}", - "Create a new album." : "Buat sebuah album baru.", - "_Share with %n user_::_Share with %n users_" : ["Bagikan dengan %n pengguna"], + "Search" : "Cari", "Save collaborators for this album." : "Simpan kolaborator untuk album ini", "Month" : "Bulan", "Day" : "Hari", @@ -68,7 +71,6 @@ "Rename person" : "Ubah nama orang", "Name" : "Nama", "Update" : "Perbarui", - "Search" : "Cari", "Remove" : "Buang", "Share link" : "Bagikan tautan", "Refresh" : "Muat ulang", @@ -76,12 +78,10 @@ "Read only" : "Hanya baca", "Sort by date" : "Urutkan berdasarkan tanggal", "Sort by name" : "Urutkan berdasarkan nama", - "Delete album" : "Hapus album", "Merge with different person" : "Gabungkan dengan orang yang berbeda", "Share" : "Bagikan", "Previous" : "Sebelumnya", "Next" : "Berikutnya", - "Continue" : "Lanjutkan", "Undo" : "Undo", "Value" : "Nilari", "Size" : "Ukuran", diff --git a/l10n/is.js b/l10n/is.js index e418c114..ffb0ac95 100644 --- a/l10n/is.js +++ b/l10n/is.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Sækja", "Settings" : "Stillingar", "People" : "Fólk", "Info" : "Upplýsingar", @@ -11,23 +12,30 @@ OC.L10N.register( "Archive" : "Safn", "On this day" : "Á þessum degi", "Tags" : "Merki", + "Metadata" : "Lýsigögn", "Edit" : "Breyta", "Photos" : "Ljósmyndir", "Explore" : "Skoða", "Cancel" : "Hætta við", "Delete" : "Eyða", - "Download" : "Sækja", "Favorite" : "Eftirlæti", "Unarchive" : "Taka úr geymslu", "View in folder" : "Skoða í möppu", + "Continue" : "Halda áfram", + "Move" : "Færa", "General" : "Almennt", + "Viewer" : "Skoðari", + "Account" : "Aðgangur", "Close" : "Loka", "Performance" : "Afköst", "Unknown" : "Óþekkt", + "Template" : "Sniðmát", + "Shared by {user}" : "Deilt af {user}", "Copy public link" : "Afrita opinberan tengil", "Public link" : "Opinber tengill", "Back" : "Til baka", "Save" : "Vista", + "Search" : "Search", "Year" : "Ár", "Month" : "Mánuður", "Day" : "Dagur", @@ -42,7 +50,6 @@ OC.L10N.register( "Reset" : "Endurstilla", "Name" : "Heiti", "Update" : "Uppfæra", - "Search" : "Search", "Loading …" : "Hleð inn …", "Remove" : "Fjarlægja", "Share link" : "Deila tengli", @@ -57,7 +64,6 @@ OC.L10N.register( "Share" : "Deila", "Previous" : "Fyrra", "Next" : "Næsta", - "Continue" : "Halda áfram", "Undo" : "Undo", "Redo" : "Redo", "Zoom in" : "Renna að", diff --git a/l10n/is.json b/l10n/is.json index e8349899..82c4c763 100644 --- a/l10n/is.json +++ b/l10n/is.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Sækja", "Settings" : "Stillingar", "People" : "Fólk", "Info" : "Upplýsingar", @@ -9,23 +10,30 @@ "Archive" : "Safn", "On this day" : "Á þessum degi", "Tags" : "Merki", + "Metadata" : "Lýsigögn", "Edit" : "Breyta", "Photos" : "Ljósmyndir", "Explore" : "Skoða", "Cancel" : "Hætta við", "Delete" : "Eyða", - "Download" : "Sækja", "Favorite" : "Eftirlæti", "Unarchive" : "Taka úr geymslu", "View in folder" : "Skoða í möppu", + "Continue" : "Halda áfram", + "Move" : "Færa", "General" : "Almennt", + "Viewer" : "Skoðari", + "Account" : "Aðgangur", "Close" : "Loka", "Performance" : "Afköst", "Unknown" : "Óþekkt", + "Template" : "Sniðmát", + "Shared by {user}" : "Deilt af {user}", "Copy public link" : "Afrita opinberan tengil", "Public link" : "Opinber tengill", "Back" : "Til baka", "Save" : "Vista", + "Search" : "Search", "Year" : "Ár", "Month" : "Mánuður", "Day" : "Dagur", @@ -40,7 +48,6 @@ "Reset" : "Endurstilla", "Name" : "Heiti", "Update" : "Uppfæra", - "Search" : "Search", "Loading …" : "Hleð inn …", "Remove" : "Fjarlægja", "Share link" : "Deila tengli", @@ -55,7 +62,6 @@ "Share" : "Deila", "Previous" : "Fyrra", "Next" : "Næsta", - "Continue" : "Halda áfram", "Undo" : "Undo", "Redo" : "Redo", "Zoom in" : "Renna að", diff --git a/l10n/it.js b/l10n/it.js index e77f343e..088345fd 100644 --- a/l10n/it.js +++ b/l10n/it.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Scarica", "Fast, modern and advanced photo management suite" : "Soluzione efficiente, moderna e avanzata per la gestione delle foto", "Settings" : "Impostazioni", "People" : "Persone", @@ -12,29 +13,46 @@ OC.L10N.register( "Albums" : "Album", "Archive" : "Archivio", "On this day" : "In questo giorno", + "Places" : "Luoghi", + "Map" : "Mappa", "Tags" : "Etichette", "Recognize" : "Riconosci", + "Metadata" : "Metadati", "Edit" : "Modifica", "Explore" : "Esplora", "Cancel" : "Annulla", "Delete" : "Elimina", - "Download" : "Scarica", "Favorite" : "Preferito", "Unarchive" : "Togli dall'archivio", "View in folder" : "Visualizza nella cartella", + "Add to album" : "Aggiungi all'album", + "Continue" : "Continua", + "Move" : "Sposta", "General" : "Generale", + "Viewer" : "Visualizzatore", + "Account" : "Account", "Close" : "Chiudi", "Performance" : "Prestazioni", "Unknown" : "Sconosciuto", "You must first make sure the correct drivers are installed before configuring acceleration." : "Assicurati di avere installato i driver appropriati, prima di configurare l'accelerazione.", + "Template" : "Modello", + "No items" : "Nessun elemento", + "Shared by {user}" : "Condiviso da {user}", + "Add people or groups who can edit your album" : "Aggiungi persone o gruppi che possono modificare il tuo album", "Search for collaborators" : "Cerca collaboratori", "Search people or groups" : "Cerca persone o gruppi", + "Add {collaboratorLabel} to the collaborators list" : "Aggiungi {collaboratorLabel} all'elenco dei collaboratori", "No collaborators available" : "Nessun collaboratore disponibile", + "Remove {collaboratorLabel} from the collaborators list" : "Rimuovi {collaboratorLabel} dall'elenco dei collaboratori", + "Copy the public link" : "Copia il collegamento pubblico", "Public link copied!" : "Collegamento pubblico copiato", "Copy public link" : "Copia collegamento pubblico", + "Delete the public link" : "Elimina il collegamento pubblico", "Share via public link" : "Condividi tramite collegamento pubblico", "Failed to fetch collaborators list." : "Impossibile ottenere l'elenco dei collaboratori.", "Public link" : "Collegamento pubblico", + "Failed to fetch album." : "Recupero dell'album non riuscito.", + "Failed to update album." : "Aggiornamento album fallito.", "Create new album" : "Crea nuovo album", "Edit album details" : "Modifica i dettagli dell'album", "New album" : "Nuovo album", @@ -44,9 +62,11 @@ OC.L10N.register( "Back" : "Indietro", "Go to the add collaborators view." : "Vai alla vista per aggiungere collaboratori.", "Add collaborators" : "Aggiungi collaboratori", + "Back to the new album form." : "Torna al modulo nuovo album.", "Save" : "Salva", "Create album" : "Crea l'album", - "Create a new album." : "Crea un nuovo album", + "Search" : "Cerca", + "Save changes" : "Salva modifiche", "Save collaborators for this album." : "Salva i collaboratori per questo album.", "Year" : "Anno", "Month" : "Mese", @@ -64,7 +84,6 @@ OC.L10N.register( "Rename person" : "Rinomina persona", "Name" : "Nome", "Update" : "Aggiorna", - "Search" : "Cerca", "Loading …" : "Caricamento …", "Remove" : "Rimuovi", "Share link" : "Collegamento di condivisione", @@ -76,33 +95,104 @@ OC.L10N.register( "Link copied to clipboard" : "Collegamento copiato negli appunti", "Sort by date" : "Ordina per data", "Sort by name" : "Ordina per nome", - "Delete album" : "Elimina album", + "Unassigned faces" : "Facce non assegnate", "Merge with different person" : "Unisci ad un'altra persona", "Share folder" : "Condividi cartella", + "Error saving image" : "Errore durante il salvataggio dell'immagine", "Unsaved changes" : "Modifiche non salvate", + "Drop changes" : "Scarta le modifiche", "Share" : "Condividi", - "Sidebar" : "Barra laterale", "Previous" : "Precedente", "Next" : "Successivo", "Are you sure you want to delete?" : "Sei sicuro di voler eliminare?", - "Continue" : "Continua", + "Save as" : "Salva come", + "All changes will be lost." : "Tutte le modifiche verranno perse.", + "Are you sure you want to continue?" : "Sei sicuro di voler continuare?", "Undo" : "Annulla", "Redo" : "Rifai", + "Show original image" : "Mostra immagine originale", "Zoom in" : "Ingrandisci", + "Zoom out" : "Rimpicciolisci", + "Toggle zoom menu" : "Cambia menu ingrandimento", + "Adjust" : "Regola", + "Fine-tune" : "Messa a punto", + "Filters" : "Filtri", + "Watermark" : "Filigrana", "Draw" : "Disegna", + "Resize" : "Ridimensiona", + "Invalid image." : "Immagine non valida.", + "Error while uploading the image." : "Errore durante il caricamento dell'immagine.", + "are not images" : "non sono immagini", + "is not an image" : "non è un'immagine", + "to be uploaded" : "da inviare", + "Crop" : "Ritaglia", "Original" : "Originale", "Custom" : "Personalizzato", + "Square" : "Quadrato", "Landscape" : "Paesaggio", + "Portrait" : "Ritratto", + "Ellipse" : "Ellisse", + "Classic TV" : "TV classica", + "CinemaScope" : "CinemaScope", + "Arrow" : "Freccia", + "Blur" : "Sfocatura", + "Brightness" : "Luminosità", + "Contrast" : "Contrasto", + "Un-flip X" : "De-capovolgi X", + "Flip X" : "Capovolgi X", + "Un-flip Y" : "De-capovolgi Y", + "Flip Y" : "Capovolgi Y", + "HSV" : "HSV", + "Hue" : "Tonalità", + "Saturation" : "Saturazione", "Value" : "Valore", "Image" : "Immagine", + "Importing …" : "Importazione …", + "+ Add image" : "+ Aggiungi immagine", "Line" : "Linea", + "Pen" : "Penna", + "Polygon" : "Poligono", + "Sides" : "Lati", + "Rectangle" : "Rettangolo", + "Corner Radius" : "Raggio dell'angolo", + "Width in pixels" : "Larghezza in pixel", + "Height in pixels" : "Altezza in pixel", + "Toggle ratio lock" : "Cambia blocco rapporto", + "Reset to original image size" : "Ripristina a dimensione originale immagine", + "Rotate" : "Ruota", "Text" : "Testo", + "Text spacing" : "Spaziatura testo", + "Text alignment" : "Allineamento testo", + "Font family" : "Famiglia caratteri", "Size" : "Dimensione", + "Letter spacing" : "Spaziatura lettere", + "Line height" : "Altezza riga", + "Warmth" : "Calore", + "+ Add watermark" : "+ Aggiungi filigrana", + "Choose watermark type" : "Scegli tipo di filigrana", + "Upload watermark" : "Invia filigrana", + "Add as text" : "Aggiungi come testo", + "Padding" : "Riempimento", + "Shadow" : "Ombra", + "Horizontal" : "Orizzontale", + "Vertical" : "Verticale", + "Opacity" : "Opacità", "Position" : "Posizione", + "Stroke" : "Tratto", + "Save image as" : "Salva immagine come", "Extension" : "Estensione", "Name is required." : "Il nome è richiesto.", "Quality" : "Qualità", + "Saved image size (width x height)" : "Salva dimensione immagine (largh. x altez.)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Nota che l'area di ritaglio selezionata è più piccola del ridimensionamento applicato, il che potrebbe causare perdita di qualità", + "Actual size (100%)" : "Dimensione effettiva (100%)", + "Fit size" : "Adatta dimensione", "Direct" : "Diretto", - "Auto" : "Automatico" + "Auto" : "Automatico", + "Failed to create {albumName}." : "Creazione di {albumName} non riuscita", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "Rinominazione di {currentAlbumName} in {newAlbumName} non riuscita.", + "Failed to delete {fileName}." : "Eliminazione di {fileName} non riuscita.", + "Yes" : "Si", + "No" : "No" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/it.json b/l10n/it.json index b6c789f6..19eacf29 100644 --- a/l10n/it.json +++ b/l10n/it.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Scarica", "Fast, modern and advanced photo management suite" : "Soluzione efficiente, moderna e avanzata per la gestione delle foto", "Settings" : "Impostazioni", "People" : "Persone", @@ -10,29 +11,46 @@ "Albums" : "Album", "Archive" : "Archivio", "On this day" : "In questo giorno", + "Places" : "Luoghi", + "Map" : "Mappa", "Tags" : "Etichette", "Recognize" : "Riconosci", + "Metadata" : "Metadati", "Edit" : "Modifica", "Explore" : "Esplora", "Cancel" : "Annulla", "Delete" : "Elimina", - "Download" : "Scarica", "Favorite" : "Preferito", "Unarchive" : "Togli dall'archivio", "View in folder" : "Visualizza nella cartella", + "Add to album" : "Aggiungi all'album", + "Continue" : "Continua", + "Move" : "Sposta", "General" : "Generale", + "Viewer" : "Visualizzatore", + "Account" : "Account", "Close" : "Chiudi", "Performance" : "Prestazioni", "Unknown" : "Sconosciuto", "You must first make sure the correct drivers are installed before configuring acceleration." : "Assicurati di avere installato i driver appropriati, prima di configurare l'accelerazione.", + "Template" : "Modello", + "No items" : "Nessun elemento", + "Shared by {user}" : "Condiviso da {user}", + "Add people or groups who can edit your album" : "Aggiungi persone o gruppi che possono modificare il tuo album", "Search for collaborators" : "Cerca collaboratori", "Search people or groups" : "Cerca persone o gruppi", + "Add {collaboratorLabel} to the collaborators list" : "Aggiungi {collaboratorLabel} all'elenco dei collaboratori", "No collaborators available" : "Nessun collaboratore disponibile", + "Remove {collaboratorLabel} from the collaborators list" : "Rimuovi {collaboratorLabel} dall'elenco dei collaboratori", + "Copy the public link" : "Copia il collegamento pubblico", "Public link copied!" : "Collegamento pubblico copiato", "Copy public link" : "Copia collegamento pubblico", + "Delete the public link" : "Elimina il collegamento pubblico", "Share via public link" : "Condividi tramite collegamento pubblico", "Failed to fetch collaborators list." : "Impossibile ottenere l'elenco dei collaboratori.", "Public link" : "Collegamento pubblico", + "Failed to fetch album." : "Recupero dell'album non riuscito.", + "Failed to update album." : "Aggiornamento album fallito.", "Create new album" : "Crea nuovo album", "Edit album details" : "Modifica i dettagli dell'album", "New album" : "Nuovo album", @@ -42,9 +60,11 @@ "Back" : "Indietro", "Go to the add collaborators view." : "Vai alla vista per aggiungere collaboratori.", "Add collaborators" : "Aggiungi collaboratori", + "Back to the new album form." : "Torna al modulo nuovo album.", "Save" : "Salva", "Create album" : "Crea l'album", - "Create a new album." : "Crea un nuovo album", + "Search" : "Cerca", + "Save changes" : "Salva modifiche", "Save collaborators for this album." : "Salva i collaboratori per questo album.", "Year" : "Anno", "Month" : "Mese", @@ -62,7 +82,6 @@ "Rename person" : "Rinomina persona", "Name" : "Nome", "Update" : "Aggiorna", - "Search" : "Cerca", "Loading …" : "Caricamento …", "Remove" : "Rimuovi", "Share link" : "Collegamento di condivisione", @@ -74,33 +93,104 @@ "Link copied to clipboard" : "Collegamento copiato negli appunti", "Sort by date" : "Ordina per data", "Sort by name" : "Ordina per nome", - "Delete album" : "Elimina album", + "Unassigned faces" : "Facce non assegnate", "Merge with different person" : "Unisci ad un'altra persona", "Share folder" : "Condividi cartella", + "Error saving image" : "Errore durante il salvataggio dell'immagine", "Unsaved changes" : "Modifiche non salvate", + "Drop changes" : "Scarta le modifiche", "Share" : "Condividi", - "Sidebar" : "Barra laterale", "Previous" : "Precedente", "Next" : "Successivo", "Are you sure you want to delete?" : "Sei sicuro di voler eliminare?", - "Continue" : "Continua", + "Save as" : "Salva come", + "All changes will be lost." : "Tutte le modifiche verranno perse.", + "Are you sure you want to continue?" : "Sei sicuro di voler continuare?", "Undo" : "Annulla", "Redo" : "Rifai", + "Show original image" : "Mostra immagine originale", "Zoom in" : "Ingrandisci", + "Zoom out" : "Rimpicciolisci", + "Toggle zoom menu" : "Cambia menu ingrandimento", + "Adjust" : "Regola", + "Fine-tune" : "Messa a punto", + "Filters" : "Filtri", + "Watermark" : "Filigrana", "Draw" : "Disegna", + "Resize" : "Ridimensiona", + "Invalid image." : "Immagine non valida.", + "Error while uploading the image." : "Errore durante il caricamento dell'immagine.", + "are not images" : "non sono immagini", + "is not an image" : "non è un'immagine", + "to be uploaded" : "da inviare", + "Crop" : "Ritaglia", "Original" : "Originale", "Custom" : "Personalizzato", + "Square" : "Quadrato", "Landscape" : "Paesaggio", + "Portrait" : "Ritratto", + "Ellipse" : "Ellisse", + "Classic TV" : "TV classica", + "CinemaScope" : "CinemaScope", + "Arrow" : "Freccia", + "Blur" : "Sfocatura", + "Brightness" : "Luminosità", + "Contrast" : "Contrasto", + "Un-flip X" : "De-capovolgi X", + "Flip X" : "Capovolgi X", + "Un-flip Y" : "De-capovolgi Y", + "Flip Y" : "Capovolgi Y", + "HSV" : "HSV", + "Hue" : "Tonalità", + "Saturation" : "Saturazione", "Value" : "Valore", "Image" : "Immagine", + "Importing …" : "Importazione …", + "+ Add image" : "+ Aggiungi immagine", "Line" : "Linea", + "Pen" : "Penna", + "Polygon" : "Poligono", + "Sides" : "Lati", + "Rectangle" : "Rettangolo", + "Corner Radius" : "Raggio dell'angolo", + "Width in pixels" : "Larghezza in pixel", + "Height in pixels" : "Altezza in pixel", + "Toggle ratio lock" : "Cambia blocco rapporto", + "Reset to original image size" : "Ripristina a dimensione originale immagine", + "Rotate" : "Ruota", "Text" : "Testo", + "Text spacing" : "Spaziatura testo", + "Text alignment" : "Allineamento testo", + "Font family" : "Famiglia caratteri", "Size" : "Dimensione", + "Letter spacing" : "Spaziatura lettere", + "Line height" : "Altezza riga", + "Warmth" : "Calore", + "+ Add watermark" : "+ Aggiungi filigrana", + "Choose watermark type" : "Scegli tipo di filigrana", + "Upload watermark" : "Invia filigrana", + "Add as text" : "Aggiungi come testo", + "Padding" : "Riempimento", + "Shadow" : "Ombra", + "Horizontal" : "Orizzontale", + "Vertical" : "Verticale", + "Opacity" : "Opacità", "Position" : "Posizione", + "Stroke" : "Tratto", + "Save image as" : "Salva immagine come", "Extension" : "Estensione", "Name is required." : "Il nome è richiesto.", "Quality" : "Qualità", + "Saved image size (width x height)" : "Salva dimensione immagine (largh. x altez.)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Nota che l'area di ritaglio selezionata è più piccola del ridimensionamento applicato, il che potrebbe causare perdita di qualità", + "Actual size (100%)" : "Dimensione effettiva (100%)", + "Fit size" : "Adatta dimensione", "Direct" : "Diretto", - "Auto" : "Automatico" + "Auto" : "Automatico", + "Failed to create {albumName}." : "Creazione di {albumName} non riuscita", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "Rinominazione di {currentAlbumName} in {newAlbumName} non riuscita.", + "Failed to delete {fileName}." : "Eliminazione di {fileName} non riuscita.", + "Yes" : "Si", + "No" : "No" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/ja.js b/l10n/ja.js index 3256a280..e75f0569 100644 --- a/l10n/ja.js +++ b/l10n/ja.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "ダウンロード", "Settings" : "設定", "Info" : "情報", "Timeline" : "タイムライン", @@ -11,18 +12,24 @@ OC.L10N.register( "Archive" : "アーカイブ", "On this day" : "この日", "Tags" : "タグ", + "Metadata" : "メタデータ", "Edit" : "編集", "Explore" : "探索", "Cancel" : "キャンセル", "Delete" : "削除", - "Download" : "ダウンロード", "Favorite" : "お気に入り", "Unarchive" : "アーカイブを解除", "View in folder" : "フォルダー内で表示", + "Continue" : "続ける", + "Move" : "移動", "General" : "一般", + "Viewer" : "ビューア", + "Account" : "アカウント", "Close" : "閉じる", "Performance" : "パフォーマンス", "Unknown" : "不明", + "Template" : "テンプレート", + "Shared by {user}" : "{user} から共有されました", "Copy public link" : "公開リンクをコピー", "Public link" : "公開リンク", "Create new album" : "新しいアルバムを作成", @@ -33,7 +40,8 @@ OC.L10N.register( "Add collaborators" : "共有者に追加", "Save" : "保存", "Create album" : "アルバムを作成", - "Create a new album." : "新しいアルバムを作成", + "Search" : "検索", + "Save changes" : "変更を保存", "Year" : "年", "Month" : "月", "Day" : "日", @@ -48,7 +56,6 @@ OC.L10N.register( "Reset" : "リセット", "Name" : "名前", "Update" : "更新", - "Search" : "検索", "Loading …" : "読み込み中…", "Remove" : "削除", "Share link" : "共有リンク", @@ -67,7 +74,6 @@ OC.L10N.register( "Next" : "次へ", "All changes will be lost." : "全ての変更がなくなります", "Are you sure you want to continue?" : "本当に続けてよろしいですか?", - "Continue" : "続ける", "Undo" : "元に戻す", "Redo" : "やり直し", "Show original image" : "オリジナル画像を表示する", @@ -86,6 +92,7 @@ OC.L10N.register( "Custom" : "カスタム", "Landscape" : "ランドスケープ", "Portrait" : "ポートレート", + "Blur" : "ぼかし", "Value" : "値", "Image" : "画像", "Rotate" : "回転", @@ -96,6 +103,8 @@ OC.L10N.register( "Name is required." : "名前は必須です。", "Quality" : "品質", "Direct" : "ダイレクト", - "Auto" : "自動" + "Auto" : "自動", + "Yes" : "はい", + "No" : "いいえ" }, "nplurals=1; plural=0;"); diff --git a/l10n/ja.json b/l10n/ja.json index 920f1e55..af63e35a 100644 --- a/l10n/ja.json +++ b/l10n/ja.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "ダウンロード", "Settings" : "設定", "Info" : "情報", "Timeline" : "タイムライン", @@ -9,18 +10,24 @@ "Archive" : "アーカイブ", "On this day" : "この日", "Tags" : "タグ", + "Metadata" : "メタデータ", "Edit" : "編集", "Explore" : "探索", "Cancel" : "キャンセル", "Delete" : "削除", - "Download" : "ダウンロード", "Favorite" : "お気に入り", "Unarchive" : "アーカイブを解除", "View in folder" : "フォルダー内で表示", + "Continue" : "続ける", + "Move" : "移動", "General" : "一般", + "Viewer" : "ビューア", + "Account" : "アカウント", "Close" : "閉じる", "Performance" : "パフォーマンス", "Unknown" : "不明", + "Template" : "テンプレート", + "Shared by {user}" : "{user} から共有されました", "Copy public link" : "公開リンクをコピー", "Public link" : "公開リンク", "Create new album" : "新しいアルバムを作成", @@ -31,7 +38,8 @@ "Add collaborators" : "共有者に追加", "Save" : "保存", "Create album" : "アルバムを作成", - "Create a new album." : "新しいアルバムを作成", + "Search" : "検索", + "Save changes" : "変更を保存", "Year" : "年", "Month" : "月", "Day" : "日", @@ -46,7 +54,6 @@ "Reset" : "リセット", "Name" : "名前", "Update" : "更新", - "Search" : "検索", "Loading …" : "読み込み中…", "Remove" : "削除", "Share link" : "共有リンク", @@ -65,7 +72,6 @@ "Next" : "次へ", "All changes will be lost." : "全ての変更がなくなります", "Are you sure you want to continue?" : "本当に続けてよろしいですか?", - "Continue" : "続ける", "Undo" : "元に戻す", "Redo" : "やり直し", "Show original image" : "オリジナル画像を表示する", @@ -84,6 +90,7 @@ "Custom" : "カスタム", "Landscape" : "ランドスケープ", "Portrait" : "ポートレート", + "Blur" : "ぼかし", "Value" : "値", "Image" : "画像", "Rotate" : "回転", @@ -94,6 +101,8 @@ "Name is required." : "名前は必須です。", "Quality" : "品質", "Direct" : "ダイレクト", - "Auto" : "自動" + "Auto" : "自動", + "Yes" : "はい", + "No" : "いいえ" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/ka_GE.js b/l10n/ka_GE.js index a6669d34..eee11d41 100644 --- a/l10n/ka_GE.js +++ b/l10n/ka_GE.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "ჩამოტვირთვა", "Settings" : "პარამეტრები", "Info" : "ინფორმაცია", "Folders" : "დირექტორიები", @@ -13,15 +14,19 @@ OC.L10N.register( "Explore" : "მიმოხილვა", "Cancel" : "უარყოფა", "Delete" : "წაშლა", - "Download" : "ჩამოტვირთვა", "Favorite" : "რჩეული", "Unarchive" : "ამოღება", "View in folder" : "ჩვენება დირექტორიაში", + "Continue" : "გაგრძელება", + "Move" : "გადატანა", "General" : "ზოგადი", + "Account" : "ანგარიში", "Close" : "დახურვა", "Unknown" : "უცნობია", "Back" : "უკან", "Save" : "შენახვა", + "Search" : "ძიება", + "Save changes" : "ცვილებების შენახვა", "Month" : "თვე", "Day" : "დღე", "Time" : "დრო", @@ -34,7 +39,6 @@ OC.L10N.register( "Reset" : "საწყის მდოგმარეობაში დაბრუნება", "Name" : "სახელი", "Update" : "განახლება", - "Search" : "ძიება", "Remove" : "წაშლა", "Share link" : "ბმულის გაზიარება", "Refresh" : "განახლება", @@ -47,12 +51,12 @@ OC.L10N.register( "Share" : "გაზიარება", "Previous" : "წინა", "Next" : "შემდეგი", - "Continue" : "გაგრძელება", "Undo" : "დაბრუნება", "Custom" : "ინდივიდუალური", "Value" : "მნიშვნელობა", "Text" : "ტექსტი", "Size" : "ზომა", - "Position" : "პოზიცია" + "Position" : "პოზიცია", + "Yes" : "დიახ" }, "nplurals=2; plural=(n!=1);"); diff --git a/l10n/ka_GE.json b/l10n/ka_GE.json index 97332578..f600d17f 100644 --- a/l10n/ka_GE.json +++ b/l10n/ka_GE.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "ჩამოტვირთვა", "Settings" : "პარამეტრები", "Info" : "ინფორმაცია", "Folders" : "დირექტორიები", @@ -11,15 +12,19 @@ "Explore" : "მიმოხილვა", "Cancel" : "უარყოფა", "Delete" : "წაშლა", - "Download" : "ჩამოტვირთვა", "Favorite" : "რჩეული", "Unarchive" : "ამოღება", "View in folder" : "ჩვენება დირექტორიაში", + "Continue" : "გაგრძელება", + "Move" : "გადატანა", "General" : "ზოგადი", + "Account" : "ანგარიში", "Close" : "დახურვა", "Unknown" : "უცნობია", "Back" : "უკან", "Save" : "შენახვა", + "Search" : "ძიება", + "Save changes" : "ცვილებების შენახვა", "Month" : "თვე", "Day" : "დღე", "Time" : "დრო", @@ -32,7 +37,6 @@ "Reset" : "საწყის მდოგმარეობაში დაბრუნება", "Name" : "სახელი", "Update" : "განახლება", - "Search" : "ძიება", "Remove" : "წაშლა", "Share link" : "ბმულის გაზიარება", "Refresh" : "განახლება", @@ -45,12 +49,12 @@ "Share" : "გაზიარება", "Previous" : "წინა", "Next" : "შემდეგი", - "Continue" : "გაგრძელება", "Undo" : "დაბრუნება", "Custom" : "ინდივიდუალური", "Value" : "მნიშვნელობა", "Text" : "ტექსტი", "Size" : "ზომა", - "Position" : "პოზიცია" + "Position" : "პოზიცია", + "Yes" : "დიახ" },"pluralForm" :"nplurals=2; plural=(n!=1);" } \ No newline at end of file diff --git a/l10n/kab.js b/l10n/kab.js index d0c1d71c..38bab5bc 100644 --- a/l10n/kab.js +++ b/l10n/kab.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Sider", "Settings" : "Iɣewwaṛen", "Favorites" : "Imenyafen", "Videos" : "Tividyutin", @@ -8,24 +9,28 @@ OC.L10N.register( "Edit" : "Ẓreg", "Cancel" : "Sefsex", "Delete" : "Kkes", - "Download" : "Sider", "Favorite" : "Menyif", + "Continue" : "Continuer", + "Move" : "Senkez", "General" : "Amatu", "Close" : "Mdel", "Unknown" : "Arussin", "Back" : "Retour", "Save" : "Sekles", + "Search" : "Nadi", + "Save changes" : "Sekles asnifel", "Hour" : "Asrag", "Title" : "Azwel", "Name" : "Nom", - "Search" : "Nadi", + "Loading …" : "Asali ...", "Remove" : "Kkes", "Share link" : "Fren aseɣwen", "Refresh" : "Sismeḍ", "Share" : "Bḍu", "Previous" : "Ɣer deffir", "Next" : "Uḍfir", - "Continue" : "Continuer", - "Size" : "Teɣzi" + "Size" : "Teɣzi", + "Yes" : "Oui", + "No" : "Uhu" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/kab.json b/l10n/kab.json index 30f3744e..ce03159e 100644 --- a/l10n/kab.json +++ b/l10n/kab.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Sider", "Settings" : "Iɣewwaṛen", "Favorites" : "Imenyafen", "Videos" : "Tividyutin", @@ -6,24 +7,28 @@ "Edit" : "Ẓreg", "Cancel" : "Sefsex", "Delete" : "Kkes", - "Download" : "Sider", "Favorite" : "Menyif", + "Continue" : "Continuer", + "Move" : "Senkez", "General" : "Amatu", "Close" : "Mdel", "Unknown" : "Arussin", "Back" : "Retour", "Save" : "Sekles", + "Search" : "Nadi", + "Save changes" : "Sekles asnifel", "Hour" : "Asrag", "Title" : "Azwel", "Name" : "Nom", - "Search" : "Nadi", + "Loading …" : "Asali ...", "Remove" : "Kkes", "Share link" : "Fren aseɣwen", "Refresh" : "Sismeḍ", "Share" : "Bḍu", "Previous" : "Ɣer deffir", "Next" : "Uḍfir", - "Continue" : "Continuer", - "Size" : "Teɣzi" + "Size" : "Teɣzi", + "Yes" : "Oui", + "No" : "Uhu" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/km.js b/l10n/km.js index d40916fe..7acc332e 100644 --- a/l10n/km.js +++ b/l10n/km.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "ទាញយក", "Settings" : "ការកំណត់", "Info" : "Info", "Favorites" : "Favorites", @@ -8,11 +9,13 @@ OC.L10N.register( "Edit" : "កែប្រែ", "Cancel" : "បោះបង់", "Delete" : "លុប", - "Download" : "ទាញយក", + "Continue" : "បន្ត", + "Move" : "Move", "General" : "ទូទៅ", "Close" : "បិទ", "Back" : "ត្រឡប់ក្រោយ", "Save" : "រក្សាទុក", + "Search" : "ស្វែងរក", "Year" : "ឆ្នាំ", "Month" : "ខែ", "Day" : "ថ្ងៃ", @@ -22,7 +25,6 @@ OC.L10N.register( "Copyright" : "រក្សាសិទ្ធិ", "Name" : "ឈ្មោះ", "Update" : "ធ្វើ​បច្ចុប្បន្នភាព", - "Search" : "ស្វែងរក", "Remove" : "ដកចេញ", "Share link" : "Share link", "Password protected" : "បាន​ការ​ពារ​ដោយ​ពាក្យ​សម្ងាត់", @@ -31,9 +33,10 @@ OC.L10N.register( "Share" : "ចែក​រំលែក", "Previous" : "មុន", "Next" : "បន្ទាប់", - "Continue" : "បន្ត", "Value" : "តម្លៃ", "Line" : "បន្ទាត់", - "Size" : "ទំហំ" + "Size" : "ទំហំ", + "Yes" : "បាទ ឬចាស", + "No" : "ទេ" }, "nplurals=1; plural=0;"); diff --git a/l10n/km.json b/l10n/km.json index c68ba860..aeb9ba94 100644 --- a/l10n/km.json +++ b/l10n/km.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "ទាញយក", "Settings" : "ការកំណត់", "Info" : "Info", "Favorites" : "Favorites", @@ -6,11 +7,13 @@ "Edit" : "កែប្រែ", "Cancel" : "បោះបង់", "Delete" : "លុប", - "Download" : "ទាញយក", + "Continue" : "បន្ត", + "Move" : "Move", "General" : "ទូទៅ", "Close" : "បិទ", "Back" : "ត្រឡប់ក្រោយ", "Save" : "រក្សាទុក", + "Search" : "ស្វែងរក", "Year" : "ឆ្នាំ", "Month" : "ខែ", "Day" : "ថ្ងៃ", @@ -20,7 +23,6 @@ "Copyright" : "រក្សាសិទ្ធិ", "Name" : "ឈ្មោះ", "Update" : "ធ្វើ​បច្ចុប្បន្នភាព", - "Search" : "ស្វែងរក", "Remove" : "ដកចេញ", "Share link" : "Share link", "Password protected" : "បាន​ការ​ពារ​ដោយ​ពាក្យ​សម្ងាត់", @@ -29,9 +31,10 @@ "Share" : "ចែក​រំលែក", "Previous" : "មុន", "Next" : "បន្ទាប់", - "Continue" : "បន្ត", "Value" : "តម្លៃ", "Line" : "បន្ទាត់", - "Size" : "ទំហំ" + "Size" : "ទំហំ", + "Yes" : "បាទ ឬចាស", + "No" : "ទេ" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/kn.js b/l10n/kn.js index 32fadae1..5e6408a6 100644 --- a/l10n/kn.js +++ b/l10n/kn.js @@ -1,21 +1,23 @@ OC.L10N.register( "memories", { + "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ", "Settings" : "ಆಯ್ಕೆ", "Info" : "Info", "Favorites" : "ಅಚ್ಚುಮೆಚ್ಚಿನ", "Edit" : "ಸಂಪಾದಿಸು", "Cancel" : "ರದ್ದು", "Delete" : "ಅಳಿಸಿ", - "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ", "Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ", + "Continue" : "ಮುಂದುವರಿಸಿ", + "Move" : "Move", "Close" : "ಮುಚ್ಚು", "Save" : "ಉಳಿಸಿ", + "Search" : "Search", "Time" : "ಸಮಯ", "Title" : "ಶೀರ್ಷಿಕೆ", "Reset" : "ಮರುಹೊಂದಿಸಿ", "Name" : "ಹೆಸರು", - "Search" : "Search", "Remove" : "ತೆಗೆದುಹಾಕಿ", "Share link" : "ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು", "Password protected" : "ಗುಪ್ತಪದದಿಂದ ರಕ್ಷಿಸಲಾಗಿದೆ", @@ -23,7 +25,8 @@ OC.L10N.register( "Sort by name" : "Order by name", "Share" : "ಹಂಚಿಕೊಳ್ಳಿ", "Next" : "ಮುಂದೆ", - "Continue" : "ಮುಂದುವರಿಸಿ", - "Size" : " ಗಾತ್ರ" + "Size" : " ಗಾತ್ರ", + "Yes" : "ಹೌದು", + "No" : "ಇಲ್ಲ" }, "nplurals=2; plural=(n > 1);"); diff --git a/l10n/kn.json b/l10n/kn.json index a58f1f66..7829da54 100644 --- a/l10n/kn.json +++ b/l10n/kn.json @@ -1,19 +1,21 @@ { "translations": { + "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ", "Settings" : "ಆಯ್ಕೆ", "Info" : "Info", "Favorites" : "ಅಚ್ಚುಮೆಚ್ಚಿನ", "Edit" : "ಸಂಪಾದಿಸು", "Cancel" : "ರದ್ದು", "Delete" : "ಅಳಿಸಿ", - "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ", "Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ", + "Continue" : "ಮುಂದುವರಿಸಿ", + "Move" : "Move", "Close" : "ಮುಚ್ಚು", "Save" : "ಉಳಿಸಿ", + "Search" : "Search", "Time" : "ಸಮಯ", "Title" : "ಶೀರ್ಷಿಕೆ", "Reset" : "ಮರುಹೊಂದಿಸಿ", "Name" : "ಹೆಸರು", - "Search" : "Search", "Remove" : "ತೆಗೆದುಹಾಕಿ", "Share link" : "ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು", "Password protected" : "ಗುಪ್ತಪದದಿಂದ ರಕ್ಷಿಸಲಾಗಿದೆ", @@ -21,7 +23,8 @@ "Sort by name" : "Order by name", "Share" : "ಹಂಚಿಕೊಳ್ಳಿ", "Next" : "ಮುಂದೆ", - "Continue" : "ಮುಂದುವರಿಸಿ", - "Size" : " ಗಾತ್ರ" + "Size" : " ಗಾತ್ರ", + "Yes" : "ಹೌದು", + "No" : "ಇಲ್ಲ" },"pluralForm" :"nplurals=2; plural=(n > 1);" } \ No newline at end of file diff --git a/l10n/ko.js b/l10n/ko.js index 385071b7..7a32edd0 100644 --- a/l10n/ko.js +++ b/l10n/ko.js @@ -1,73 +1,430 @@ OC.L10N.register( "memories", { + "Download" : "다운로드", + "Fast, modern and advanced photo management suite" : "빠르며 현대적인 고급 사진 관리 도구 모음", "Settings" : "설정", + "People (Recognize)" : "사람들 (인식)", + "People" : "사람들", + "People (Face Recognition)" : "사람들 (얼굴 인식)", "Info" : "정보", "Timeline" : "타임라인", "Folders" : "폴더", "Favorites" : "즐겨찾기", "Videos" : "동영상", + "Albums" : "앨범", "Archive" : "보관", + "On this day" : "이맘때", + "Places" : "장소", + "Map" : "지도", "Tags" : "태그", + "View all" : "모두 보기", + "Recognize" : "인식", + "Face Recognition" : "얼굴 인식", + "A better photos experience awaits you" : "더 좋은 사진 경험이 여러분을 기다립니다.", + "Choose the root folder of your timeline to begin" : "타임라인의 루트 폴더를 지정하여 시작하세요.", + "Continue to Memories" : "Memories 이어서 사용", + "Choose again" : "다시 선택", + "Click here to start" : "클릭하여 시작", + "You can always change this later in settings" : "언제든 이를 설정에서 바꿀 수 있습니다.", + "If you just installed Memories, visit the admin panel first." : "막 Memories를 설치하셨다면, 먼저 관리 패널을 확인하세요.", + "Choose the root of your timeline" : "타임라인의 루트를 지정하세요.", + "The selected folder does not seem to be valid. Try again." : "선택한 폴더가 유효하지 않은 것 같습니다. 다시 시도하세요.", + "No photos were found in the selected folder." : "선택한 폴더에서 사진을 찾지 못했습니다.", + "This can happen because your media is still indexing." : "이는 미디어가 아직 색인 중이기 때문일 수 있습니다.", + "Visit the admin panel to make sure Memories is configured correctly." : "관리 패널에서 Memories가 올바르게 설정되었는지 확인하세요.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{path}에서 {n}개의 항목을 찾음"], + "Metadata" : "메타데이터", "Edit" : "편집", + "No coordinates" : "좌표 없음", + "Click edit to set location" : "클릭해 위치를 수정", "Photos" : "사진", "Explore" : "탐색", "Cancel" : "취소", "Delete" : "삭제", - "Download" : "다운로드", + "Remove from album" : "앨범에서 제거", "Favorite" : "즐겨찾기", "Unarchive" : "보관 해제", + "Edit metadata" : "메타데이터 수정", "View in folder" : "폴더에서 보기", + "Move to folder" : "폴더로 이동", + "Add to album" : "앨범에 추가", + "Move to person" : "사람으로 이동", + "Remove from person" : "사람에서 제거", + "Continue" : "계속", + "Failed to delete files" : "파일 삭제 실패", + "Move" : "이동", + "You must enable \"Mark person in preview\" to use this feature" : "이 기능을 사용하려면 \"미리 보기에 사람 표시\"를 사용해야 합니다.", + "Only user \"{user}\" can update this person" : "\"{user}\"님만 이 사람을 업데이트할 수 있습니다.", + "_{n} selected_::_{n} selected_" : ["{n}개 선택됨"], + "Memories Settings" : "Memories 설정", "General" : "일반", + "Timeline Path" : "타임라인 경로", + "Square grid mode" : "정사각형 그리드 모드", + "Show past photos on top of timeline" : "과거 사진을 타임라인의 위쪽에 표시", + "Viewer" : "뷰어", + "Load full size image on zoom" : "확대할 때 전체 크기 이미지를 불러오기", + "Always load full size image (not recommended)" : "항상 전체 크기 이미지를 불러오기 (권장하지 않음)", + "Account" : "계정", + "Logged in as {user}" : "{user}(으)로 로그인함", + "Sign out" : "로그아웃", + "Device Folders" : "장치 폴더", + "Local folders to include in the timeline view" : "타임라인에 포함할 로컬 폴더", + "Folders Path" : "폴더 경로", + "Show hidden folders" : "숨겨진 폴더 표시", + "Sort folders oldest-first" : "폴더를 오래된 순으로 정렬", + "Sort albums oldest-first" : "앨범을 오래된 순으로 정렬", + "Choose Timeline Paths" : "타임라인 경로 선택", + "Choose the root for the folders view" : "폴더 보기의 루트를 지정하세요.", + "Are you sure you want to log out {user}?" : "{user}에서 로그아웃 하시겠습니까?", "Close" : "닫기", + "{photoCount} photos" : "{photoCount}개 사진", + "Failed to load some photos" : "일부 사진을 불러오는 데 실패", + "Failed to update setting" : "설정 업데이트 실패", + "Path to packaged exiftool binary" : "패키지 내 exiftool 바이너리 경로", + "You need perl only if the packaged exiftool binary does not work for some reason." : "어떠한 이유로 패키지 내의 exiftool이 작동하지 않을 때에만 perl이 필요합니다.", + "Use system perl (only if exiftool binary does not work)" : "시스템의 perl 사용 (exiftool 바이너리가 작동하지 않을 때에만)", + "EXIF Extraction" : "EXIF 추출", + "You can configure the enabled Nextcloud preview providers below." : "아래에서 사용 가능한 Nextcloud 미리 보기 제공자를 설정할 수 있습니다.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Imaginary로 미리 보기를 생성한다면, 이 부분을 무시해도 됩니다.", + "To enable RAW support, install the Camera RAW Previews app." : "RAW 지원을 사용하려면, Camera RAW Previews 앱을 설치하세요.", + "Documentation." : "문서.", + "The following MIME types are configured for preview generation." : "다음의 MIME 타입이 미리 보기를 생성하도록 설정되었습니다.", + "Max preview size (trade-off between quality and storage requirements)." : "최대 미리 보기 크기 (품질과 저장 공간 사이에서 타협하세요.)", + "Max memory for preview generation (MB)" : "미리 보기 생성에 사용할 최대 메모리 (MB)", + "Max size of preview files (MB)" : "미리 보기 파일의 최대 크기 (MB)", + "File Support" : "지원 요청", + "Images (JPEG, PNG, GIF, BMP)" : "이미지 (JPEG, PNG, GIF, BMP)", + "External Link" : "외부 링크", + "{n} media files have been indexed" : "{n}개 미디어 파일이 색인 됨", + "Automatic Indexing status: {status}" : "자동 색인 상태: {status}", + "Last index job was run {t} seconds ago." : "마지막 색인 작업이 {t}초 전 실행되었습니다.", + "It took {t} seconds to complete." : "작업에 {t}초가 걸렸습니다.", + "It is still running or was interrupted." : "아직 실행 중이거나 실행 중에 중단되었습니다.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "서버 측 암호화 (OC_DEFAULT_MODULE)만을 지원합니다. 하지만 다른 암호화 모듈이 활성화 되었습니다.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "정기적인 백그라운드 작업에서 EXIF 색인을 만들고 검사합니다. 자동 색인 외의 다른 것을 선택할 때는 주의하세요. 예로, 타임라인은 사용자가 로그인 한 이후에만 구성할 수 있기 때문에, 타임라인 폴더만 색인하도록 설정하면 사용자가 미디어를 보기 전 지연 시간이 발생할 수 있습니다.", + "Index all media automatically (recommended)" : "모든 미디어를 자동 색인 (권장)", + "Index per-user timeline folders (not recommended)" : "사용자별 타임라인 폴더를 색인 (비권장)", + "Index a fixed relative path" : "바꿀 수 없는 상대적 경로를 색인", + "Disable background indexing" : "백그라운드 색인 끄기", + "Indexing path (relative, all users)" : "색인 경로 (상대적, 모든 사용자)", + "For advanced usage, perform a run of indexing by running:" : "고급 사용을 하려면 실행하여 색인 작업을 수행:", + "Run index in parallel with 4 threads:" : "4개 스레드로 병렬 색인 작업 실행:", + "Force re-indexing of all files:" : "모든 파일을 강제로 다시 색인:", + "You can limit indexing by user and/or folder:" : "색인 할 사용자 또는 폴더를 제한: ", + "Clear all existing index tables:" : "기존의 모든 색인을 제거:", + "Media Indexing" : "미디어 색인", + "HTTPS is enabled" : "HTTP 활성화됨", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "안전하지 않은 컨텍스트에서 페이지에 접근하고 있습니다. 몇 개의 브라우저 API를 사용할 수 없어 Memories가 매우 느리게 작동합니다. 서버에서 HTTPS를 활성화하여 성능을 향상시키세요.", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 또는 HTTP/3 활성화됨", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 또는 HTTP/3 사용을 강력히 권장합니다 ({httpVer} 사용이 감지됨) ", + "Performance" : "성능", "Unknown" : "알 수 없음", - "Copy public link" : "공용 링크 복사", + "Database is populated with {n} geometries." : "데이터베이스에 {n}개의 지리가 있습니다.", + "Geometry table has not been created." : "지리 테이블이 만들어지지 않았습니다.", + "Looks like the planet data is incomplete." : "행성 데이터가 불완전한 것 같습니다.", + "Reverse geocoding has not been configured ({status})." : "주소 변환이 설정되지 않았습니다. ({status})", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories는 MySQL및 Postgres에 저장된 OpenStreetMaps의 정보를 사용하여 주소 변환을 지원합니다.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "데이터베이스에 행성 데이터를 저장해야 합니다. 이 데이터는 적극 추천되며 오버헤드가 낮습니다.", + "If the button below does not work for importing the planet data, use the following command:" : "아래 버튼으로 행성 데이터를 가져올 수 없다면, 다음 명령을 사용하세요:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "알림: 지리 데이터가 memories_planet_geometry 테이블에 접두어 없이 저장되었습니다.", + "Download planet database" : "행성 데이터 다운로드", + "Reverse Geocoding" : "주소 변환", + "Geometry support was not detected in your database" : "데이터베이스가 지리 데이터를 지원하지 않습니다.", + "MySQL-like geometry support was detected " : "MySQL-like 지리 데이터 지원을 감지했습니다.", + "Postgres native geometry support was detected" : "Postgres의 기본 지리 데이터 지원을 감지했습니다.", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "데이터베이스가 이미 설정되어 있는 것 같습니다. 행성 데이터를 다시 다운로드 할까요?", + "You are about to download the planet database. This may take a while." : "행성 데이터를 다운로드 하려고 합니다. 다소 시간이 걸립니다.", + "This may also cause all photos to be re-indexed!" : "또한 사진들이 모두 다시 색인됩니다!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "실시간 트랜스코딩은 HLS를 사용하여 사용자 환경에 맞춰 동영상을 스트리밍 합니다.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "하드웨어 가속이 없다면 CPU를 매우 많이 사용할 것이며, 외부 저장소에서는 트랜스코딩을 하지 않습니다.", + "Enable Transcoding" : "트랜스코딩 활성화", + "ffmpeg path" : "ffmpeg 경로", + "ffprobe path" : "ffprobe 경로", + "Global default video quality (user may override)" : "전역 기본 동영상 품질 (사용자가 바꿀 수 있음)", + "Auto (adaptive transcode)" : "자동 (적응형 트랜스코딩)", + "Original (transcode with max quality)" : "원본 (최대 품질로 트랜스코딩)", + "Direct (original video file without transcode)" : "직접 (트랜스코딩 하지 않은 원본 동영상)", + "Video Streaming" : "동영상 스트리밍", + "You must first make sure the correct drivers are installed before configuring acceleration." : "가속을 설정하기 전 꼭 올바른 드라이버가 설치되어 있어야 합니다.", + "Make sure you test hardware acceleration with various options after enabling." : "활성화 전에 하드웨어 가속에 여러 옵션을 주어 시험해 보세요.", + "Do not enable multiple types of hardware acceleration simultaneously." : "여러 종류의 하드웨어 가속을 동시에 활성화 하지 마세요.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "일부 AMD GPU 뿐만 아니라 QuickSync Video (QSV)를 지원하는 인텔 프로세서를 VA-API를 통한 하드웨어 가속에 사용할 수 있습니다.", + "For more details on driver installation, check the documentation:" : "드라이버 설치에 대한 세부 사항은 다음 문서를 참고하세요:", + "Enable acceleration with VA-API" : "VA-API를 통한 가속 활성화", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "올바른 드라이버를 사용하면 NVIDIA GPU를 NVENC 인코더를 통한 트랜스코딩에 사용할 수 있습니다.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "설치된 SDK 및 ffmpeg 버전에 따라 사용할 스케일러를 지정해야 합니다.", + "No automated tests are available for NVIDIA acceleration." : "NVIDIA 가속에 대한 자동 테스트를 사용할 수 없습니다.", + "Enable acceleration with NVENC" : "NVENC를 통한 가속 활성화", + "Enable NVENC Temporal AQ" : "NVENC Temporal AQ 활성화", + "NPP scaler" : "NPP 스케일러", + "CUDA scaler" : "CUDA 스케일러", + "VA-API device ({dev}) is readable" : "VA-API 장치 ({dev})를 읽을 수 있음", + "VA-API device ({dev}) not found" : "VA-API 장치 ({dev})를 찾을 수 없음", + "VA-API device ({dev}) has incorrect permissions" : "VA-API 장치 ({dev})의 권한이 잘못됨", + "VA-API device status: {status}" : "VA-API 장치 상태: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories는 go-vod 트랜스코더를 사용합니다. 외부에서 go-vod를 실행(예: 하드웨어 가속을 위한 별도의 Docker 컨테이너에서)하거나 내장 트랜스코더를 사용할 수 있습니다. 외부 트랜스코더를 사용하려면 다음 옵션을 활성화하고 설명서의 지침을 따르십시오:", + "Enable external transcoder (go-vod)" : "외장 트랜스코더 활성화 (go-vod)", + "Binary path (local only)" : "바이너리 경로 (로컬 전용)", + "Bind address (local only)" : "바인드 주소 (로컬 전용)", + "Connection address (same as bind if local)" : "연결 주소 (로컬이라면 바인드와 같게)", + "Template" : "템플릿", + "No items" : "항목 없음", + "Shared by {user}" : "{user}가 공유한", + "Add people or groups who can edit your album" : "앨범을 수정할 수 있는 사람 및 그룹 추가", + "Search for collaborators" : "공동 작업자 검색", + "Search people or groups" : "사람 및 그룹 검색", + "Add {collaboratorLabel} to the collaborators list" : "공동 작업자 목록에 {collaboratorLabel} 추가", + "No collaborators available" : "가능한 공동 작업자 없음", + "Remove {collaboratorLabel} from the collaborators list" : "공동 작업자 목록에서 {collaboratorLabel} 제거", + "Copy the public link" : "공개 링크 복사", + "Public link copied!" : "공개 링크 복사!", + "Copy public link" : "공개 링크 복사", + "Delete the public link" : "공개 링크 삭제", + "Share via public link" : "공개 링크로 공유", + "Failed to fetch collaborators list." : "공동 작업자 목록을 가져오지 못했습니다.", "Public link" : "공개 링크", + "Failed to fetch album." : "앨범을 가져오지 못했습니다.", + "Failed to update album." : "앨범을 업데이트 하지 못했습니다.", + "Create new album" : "새 앨범 만들기", + "Edit album details" : "앨범 세부 정보 수정", + "New album" : "새 앨범", + "Could not load the selected album" : "선택한 앨범을 불러올 수 없음", + "Remove Album" : "앨범 제거", + "Are you sure you want to permanently remove album \"{name}\"?" : "\"{name}\" 앨범을 영구히 제거하겠습니까?", + "Failed to delete {name}." : "{name}을 삭제하지 못했습니다.", + "Name of the album" : "앨범의 이름", + "Location of the album" : "앨범의 위치", + "Go back to the previous view." : "이전 화면으로 이동", "Back" : "뒤로", + "Go to the add collaborators view." : "공동 작업자 추가 화면으로 이동", + "Add collaborators" : "공동 작업자 추가", + "Back to the new album form." : "새 앨범 양식으로 돌아가기", "Save" : "저장", + "Create album" : "앨범 만들기", + "Invalid album name; should not contain any slashes." : "앨범 이름이 잘못되었습니다. 슬래시가 없어야 합니다.", + "Search" : "검색", + "Share Album" : "앨범 공유", + "Save collaborators for this album." : "이 앨범의 공동 작업자를 저장", + "_%n item_::_%n items_" : ["%n개 항목"], + "Newest" : "최신순", "Year" : "년", "Month" : "달", "Day" : "일", "Time" : "시간", "Hour" : "시간", "Minute" : "분", + "Oldest" : "과거순", + "Invalid Date" : "잘못된 날짜", + "Newest date is older than oldest date" : "최신의 날짜가 가장 오래된 날짜의 전입니다.", "Title" : "제목", "Description" : "설명", "Label" : "이름표", + "Camera Make" : "카메라 제작", + "Camera Model" : "카메라 모델", + "Lens Model" : "렌즈 모델", "Copyright" : "저작권", "Empty" : "비어 있음", + "Unchanged" : "바꾸지 않음", "Reset" : "초기화", + "Remove location" : "위치 제거", + "Search location / landmark" : "위치 및 랜드마크 검색", + "Failed to search for location with Nominatim." : "Nominatim에서 위치를 검색하지 못했습니다.", + "Date / Time" : "날짜 / 시간", + "Collaborative Tags" : "공동 작업 태그", + "EXIF Fields" : "EXIF 필드", + "Failed to load metadata for {n} photos." : "{n}개 사진에서 메타데이터를 가져오지 못했습니다.", + "{n} photos cannot be edited (permissions error)." : "{n}개의 사진을 수정할 수 없습니다. (권한 오류)", + "Remove person" : "사람 제거", + "Are you sure you want to remove {name}?" : "{name}(을)를 제거하시겠습니까?", + "Only user \"{user}\" can delete this person" : "\"{user}\"님만 이 사람을 제거할 수 있습니다.", + "Rename person" : "사람 제거", "Name" : "이름", "Update" : "업데이트", - "Search" : "검색", + "Failed to rename {oldName} to {name}." : "{oldName}에서 {name}(으)로 이름을 바꾸지 못했습니다.", "Loading …" : "불러오는 중 …", + "Enter name of the new face" : "새 얼굴에 이름을 입력하세요.", + "Failed to create face" : "얼굴을 만들지 못했습니다.", + "Merge {name} with person" : "사람에 {name}(을)를 병합", + "Too many failures, aborting" : "너무 많이 실패하여 취소함", + "Error while moving {basename}" : "{basename} 이동 중 실패", + "Failed to move {name}." : "{name}(을)를 이동하지 못했습니다.", + "Move selected photos to person" : "선택한 사진을 사람으로 이동", + "An error occurred while moving photos from {name}." : "{name}에서 사진을 이동하는 중 오류가 발생했습니다.", + "Choose a folder" : "폴더 선택", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n}개 항목이 폴더로 이동함"], "Remove" : "삭제", + "Add Path" : "경로 추가", + "Add a root to your timeline" : "타임라인의 루트 추가", + "Link Sharing" : "링크 공유", + "You cannot share the root folder" : "루트 폴더를 공유할 수 없습니다.", + "Public link shares are available to people outside Nextcloud." : "Nextcloud의 바깥 사람들은 공개 링크를 사용할 수 있습니다.", + "You may create or update permissions on public links using the sidebar." : "사이드바를 사용해 공개 링크의 권한을 만들거나 수정할 수 있습니다.", + "Click a link to copy to clipboard." : "링크를 클릭해 클립보드로 복사하세요.", "Share link" : "링크 공유", + "Create Link" : "링크 만들기", "Refresh" : "새로 고침", "Password protected" : "암호로 보호됨", "Expires" : "끝나는 시간", + "Editable" : "수정 가능", "Read only" : "읽기 전용", + "Link copied to clipboard" : "링크가 클립보드로 복사됨", + "Share File" : "파일 공유", + "Reduced Size" : "줄어든 크기", + "Share a lower resolution image preview" : "저해상도 이미지 미리 보기를 공유", + "High Resolution" : "고해상도", + "Share the video as a high quality MOV" : "고품질 MOV로 동영상 공유", + "Share the image as a high quality JPEG" : "고품질 JPEG으로 이미지 공유", + "Original File" : "원본 파일", + "Share the original image / video file" : "원본 이미지 및 동영상 파일 공유", + "Public Link" : "공개 링크", + "Share an external Nextcloud link" : "외부 Nextcloud 링크 공유", + "Failed to download file" : "파일 다운로드 실패", + "Cannot share this type of data" : "이 종류의 데이터는 공유할 수 없습니다.", "Sort by date" : "날짜순 정렬", "Sort by name" : "이름순 정렬", + "Share album" : "앨범 공유", + "Download album" : "앨범 다운로드", + "Nothing to show here" : "표시할 항목 없음", + "Merge with different person" : "다른 사람에게 병합", + "Mark person in preview" : "미리 보기에 사람 표시", + "Folder View" : "폴더 보기", + "Timeline View" : "타임라인 보기", + "Share folder" : "폴더 공유", + "Move left" : "왼쪽으로 이동", + "Move right" : "오른쪽으로 이동", + "Image saved successfully" : "이미지를 성공적으로 저장했습니다.", + "Error saving image" : "이미지 저장 중 오류 발생", "Unsaved changes" : "저장하지 않은 변경 사항", + "Drop changes" : "변경 사항 버리기", "Share" : "공유", - "Sidebar" : "사이드바", + "Play Live Photo" : "라이브 사진 재생", + "Download Video" : "동영상 다운로드", + "Slideshow" : "슬라이드쇼", "Previous" : "이전", "Next" : "다음", - "Continue" : "계속", + "Editing is currently disabled for Live Photos" : "현재 라이브 사진을 수정할 수 없습니다.", + "Are you sure you want to delete?" : "삭제하시겠습니까?", + "Failed to delete photo" : "사진을 삭제하지 못했습니다.", + "{name} binary exists and is executable." : "{name} 바이너리가 존재하며 실행 가능합니다.", + "{name} binary not found." : "{name} 바이너리를 찾을 수 없습니다.", + "{name} binary is not executable." : "{name} 바이너리는 실행할 수 없습니다.", + "{name} failed test: {info}." : "{name} 테스트 실패: {info}.", + "{name} binary exists and is usable ({info})." : "{name} 바이너리가 존재하며 사용 가능합니다. ({info})", + "{name} binary status: {status}." : "{name} 바이너리 상태: {status}.", + "Save as" : "다른 이름으로 저장", + "All changes will be lost." : "모든 변경 사항을 잃게 됩니다.", + "Are you sure you want to continue?" : "계속하시겠습니까?", "Undo" : "실행 취소", "Redo" : "다시 실행", + "Show original image" : "원본 이미지 표시", "Zoom in" : "확대", + "Zoom out" : "줌 아웃", + "Toggle zoom menu" : "줌 메뉴 전환", + "Adjust" : "조정", + "Fine-tune" : "세부 조정", + "Filters" : "필터", + "Watermark" : "워터마크", + "Draw" : "그리기", + "Resize" : "크기 조정", + "Invalid image." : "잘못된 이미지입니다.", + "Error while uploading the image." : "이미지를 업로드하는 중 오류가 발생했습니다.", + "are not images" : "(은)는 이미지가 아닙니다.", + "is not an image" : "(은)는 이미지가 아닙니다.", + "to be uploaded" : "업로드 될 것", + "Crop" : "자르기", "Original" : "원본", "Custom" : "사용자 정의", + "Square" : "정사각형", + "Landscape" : "가로 방향", + "Portrait" : "세로 방향", + "Ellipse" : "타원", + "Classic TV" : "클래식 TV", + "CinemaScope" : "시네마스코프", + "Arrow" : "화살표", + "Blur" : "흐림", + "Brightness" : "밝기", + "Contrast" : "대비", + "Un-flip X" : "X축 뒤집기 취소", + "Flip X" : "X축 뒤집기", + "Un-flip Y" : "Y축 뒤집기 취소", + "Flip Y" : "Y축 뒤집기", + "HSV" : "색조·채도·명조", + "Hue" : "색조", + "Saturation" : "채도", "Value" : "값", + "Image" : "이미지", + "Importing …" : "불러오는 중…", + "+ Add image" : "+ 이미지 추가", "Line" : "선", + "Pen" : "펜", + "Polygon" : "다각형", + "Sides" : "모서리", + "Rectangle" : "직사각형", + "Corner Radius" : "모서리 지름", + "Width in pixels" : "가로 픽셀", + "Height in pixels" : "세로 픽셀", + "Toggle ratio lock" : "종횡비 잠금 전환", + "Reset to original image size" : "원본 이미지 크기로 재설정", + "Rotate" : "회전", "Text" : "텍스트", + "Text spacing" : "텍스트 간격", + "Text alignment" : "텍스트 정렬", + "Font family" : "폰트 패밀리", "Size" : "크기", + "Letter spacing" : "글자 간격", + "Line height" : "줄 높이", + "Warmth" : "따뜻함", + "+ Add watermark" : "+ 워터마크 추가", + "Choose watermark type" : "워터마크 종류 고르기", + "Upload watermark" : "워터마크 업로드", + "Add as text" : "텍스트로 추가", + "Padding" : "패딩", + "Shadow" : "그림자", + "Horizontal" : "가로", + "Vertical" : "세로", + "Opacity" : "불투명도", "Position" : "위치", + "Stroke" : "선", + "Save image as" : "이미지를 다른 이름으로 저장", "Extension" : "확장자", + "Name is required." : "이름이 필요합니다.", "Quality" : "품질", - "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "선택한 잘라내기 영역은 적절한 크기 범위에 미치지 못하며, 품질이 저하될 수 있습니다", - "Auto" : "자동" + "Saved image size (width x height)" : "저장된 이미지 크기 (너비 x 높이)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "선택한 잘라내기 영역은 적절한 크기 범위에 미치지 못하며, 품질이 저하될 수 있습니다.", + "Actual size (100%)" : "실제 크기 (100%)", + "Fit size" : "크기 맞추기", + "Transcoding failed, check Nextcloud logs." : "트랜스코딩 실패, Nextcloud 로그를 확인하세요.", + "Direct" : "직접", + "Auto" : "자동", + "Shared Folder" : "공유된 폴더", + "Shared Album" : "공유된 앨범", + "Failed to create {albumName}." : "{albumName}(을)를 만들지 못했습니다.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName}에서 {newAlbumName}(으)로 이름을 바꾸지 못했습니다.", + "General Failure" : "일반 실패", + "Error: {msg}" : "오류: {msg}", + "Failed to delete {fileName}." : "{fileName}(을)를 삭제하지 못했습니다.", + "Failed to move files." : "파일을 이동하지 못했습니다.", + "Could not move {fileName}, target exists." : "{fileName}(을)를 이동할 수 없습니다, 목적지에 이미 존재합니다.", + "Failed to move {fileName}." : "{fileName}을 이동하지 못했습니다.", + "Failed to download files" : "파일을 다운로드 하지 못했습니다.", + "Failed to favorite files." : "파일을 즐겨찾기에 추가하지 못했습니다.", + "Failed to favorite some files." : "일부 파일을 즐겨찾기에 추가하지 못했습니다.", + "Failed to favorite {fileName}." : "{fileName} 파일을 즐겨찾기에 추가하지 못했습니다.", + "Memories has been updated to {version}. Reload to get the new version." : "Memories를 {version}(으)로 업데이트 했습니다. 새로고침 하여 새 버전을 사용하세요.", + "Upload some photos and make sure the timeline path is configured" : "사진을 업로드하고 타임라인 경로가 설정되었는지 확인하세요.", + "Mark photos as favorite to find them easily" : "사진을 즐겨찾기에 추가해 쉽게 찾으세요.", + "Memories from past years will appear here" : "지난 해의 Memories부터 이곳에 나타납니다.", + "You will find your friends soon. Please be patient" : "곧 친구들을 확인할 수 있습니다. 기다려주세요.", + "Face Recognition is disabled. Enable in settings to find your friends" : "Face Recognition이 비활성화 되어있습니다. 친구들을 찾기 위해 설정에서 활성화 하세요.", + "Your videos will appear here" : "동영상이 이곳에 나타납니다.", + "No photos in this album yet" : "이 앨범에 아직 사진이 없습니다.", + "Create an album to get started" : "앨범을 만들어 시작하세요.", + "Archive photos you don't want to see in your timeline" : "타임라인에서 보고 싶지 않은 사진을 보관하세요.", + "Tag photos to find them easily" : "사진에 태그를 달아 쉽게 찾으세요.", + "Recognize is still working on your photos" : "사진을 계속 인식하는 중입니다.", + "Places you have been to will appear here" : "갔었던 장소가 이곳에 나타납니다.", + "Yes" : "예", + "No" : "아니오" }, "nplurals=1; plural=0;"); diff --git a/l10n/ko.json b/l10n/ko.json index 0e4d9947..71930374 100644 --- a/l10n/ko.json +++ b/l10n/ko.json @@ -1,71 +1,428 @@ { "translations": { + "Download" : "다운로드", + "Fast, modern and advanced photo management suite" : "빠르며 현대적인 고급 사진 관리 도구 모음", "Settings" : "설정", + "People (Recognize)" : "사람들 (인식)", + "People" : "사람들", + "People (Face Recognition)" : "사람들 (얼굴 인식)", "Info" : "정보", "Timeline" : "타임라인", "Folders" : "폴더", "Favorites" : "즐겨찾기", "Videos" : "동영상", + "Albums" : "앨범", "Archive" : "보관", + "On this day" : "이맘때", + "Places" : "장소", + "Map" : "지도", "Tags" : "태그", + "View all" : "모두 보기", + "Recognize" : "인식", + "Face Recognition" : "얼굴 인식", + "A better photos experience awaits you" : "더 좋은 사진 경험이 여러분을 기다립니다.", + "Choose the root folder of your timeline to begin" : "타임라인의 루트 폴더를 지정하여 시작하세요.", + "Continue to Memories" : "Memories 이어서 사용", + "Choose again" : "다시 선택", + "Click here to start" : "클릭하여 시작", + "You can always change this later in settings" : "언제든 이를 설정에서 바꿀 수 있습니다.", + "If you just installed Memories, visit the admin panel first." : "막 Memories를 설치하셨다면, 먼저 관리 패널을 확인하세요.", + "Choose the root of your timeline" : "타임라인의 루트를 지정하세요.", + "The selected folder does not seem to be valid. Try again." : "선택한 폴더가 유효하지 않은 것 같습니다. 다시 시도하세요.", + "No photos were found in the selected folder." : "선택한 폴더에서 사진을 찾지 못했습니다.", + "This can happen because your media is still indexing." : "이는 미디어가 아직 색인 중이기 때문일 수 있습니다.", + "Visit the admin panel to make sure Memories is configured correctly." : "관리 패널에서 Memories가 올바르게 설정되었는지 확인하세요.", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{path}에서 {n}개의 항목을 찾음"], + "Metadata" : "메타데이터", "Edit" : "편집", + "No coordinates" : "좌표 없음", + "Click edit to set location" : "클릭해 위치를 수정", "Photos" : "사진", "Explore" : "탐색", "Cancel" : "취소", "Delete" : "삭제", - "Download" : "다운로드", + "Remove from album" : "앨범에서 제거", "Favorite" : "즐겨찾기", "Unarchive" : "보관 해제", + "Edit metadata" : "메타데이터 수정", "View in folder" : "폴더에서 보기", + "Move to folder" : "폴더로 이동", + "Add to album" : "앨범에 추가", + "Move to person" : "사람으로 이동", + "Remove from person" : "사람에서 제거", + "Continue" : "계속", + "Failed to delete files" : "파일 삭제 실패", + "Move" : "이동", + "You must enable \"Mark person in preview\" to use this feature" : "이 기능을 사용하려면 \"미리 보기에 사람 표시\"를 사용해야 합니다.", + "Only user \"{user}\" can update this person" : "\"{user}\"님만 이 사람을 업데이트할 수 있습니다.", + "_{n} selected_::_{n} selected_" : ["{n}개 선택됨"], + "Memories Settings" : "Memories 설정", "General" : "일반", + "Timeline Path" : "타임라인 경로", + "Square grid mode" : "정사각형 그리드 모드", + "Show past photos on top of timeline" : "과거 사진을 타임라인의 위쪽에 표시", + "Viewer" : "뷰어", + "Load full size image on zoom" : "확대할 때 전체 크기 이미지를 불러오기", + "Always load full size image (not recommended)" : "항상 전체 크기 이미지를 불러오기 (권장하지 않음)", + "Account" : "계정", + "Logged in as {user}" : "{user}(으)로 로그인함", + "Sign out" : "로그아웃", + "Device Folders" : "장치 폴더", + "Local folders to include in the timeline view" : "타임라인에 포함할 로컬 폴더", + "Folders Path" : "폴더 경로", + "Show hidden folders" : "숨겨진 폴더 표시", + "Sort folders oldest-first" : "폴더를 오래된 순으로 정렬", + "Sort albums oldest-first" : "앨범을 오래된 순으로 정렬", + "Choose Timeline Paths" : "타임라인 경로 선택", + "Choose the root for the folders view" : "폴더 보기의 루트를 지정하세요.", + "Are you sure you want to log out {user}?" : "{user}에서 로그아웃 하시겠습니까?", "Close" : "닫기", + "{photoCount} photos" : "{photoCount}개 사진", + "Failed to load some photos" : "일부 사진을 불러오는 데 실패", + "Failed to update setting" : "설정 업데이트 실패", + "Path to packaged exiftool binary" : "패키지 내 exiftool 바이너리 경로", + "You need perl only if the packaged exiftool binary does not work for some reason." : "어떠한 이유로 패키지 내의 exiftool이 작동하지 않을 때에만 perl이 필요합니다.", + "Use system perl (only if exiftool binary does not work)" : "시스템의 perl 사용 (exiftool 바이너리가 작동하지 않을 때에만)", + "EXIF Extraction" : "EXIF 추출", + "You can configure the enabled Nextcloud preview providers below." : "아래에서 사용 가능한 Nextcloud 미리 보기 제공자를 설정할 수 있습니다.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Imaginary로 미리 보기를 생성한다면, 이 부분을 무시해도 됩니다.", + "To enable RAW support, install the Camera RAW Previews app." : "RAW 지원을 사용하려면, Camera RAW Previews 앱을 설치하세요.", + "Documentation." : "문서.", + "The following MIME types are configured for preview generation." : "다음의 MIME 타입이 미리 보기를 생성하도록 설정되었습니다.", + "Max preview size (trade-off between quality and storage requirements)." : "최대 미리 보기 크기 (품질과 저장 공간 사이에서 타협하세요.)", + "Max memory for preview generation (MB)" : "미리 보기 생성에 사용할 최대 메모리 (MB)", + "Max size of preview files (MB)" : "미리 보기 파일의 최대 크기 (MB)", + "File Support" : "지원 요청", + "Images (JPEG, PNG, GIF, BMP)" : "이미지 (JPEG, PNG, GIF, BMP)", + "External Link" : "외부 링크", + "{n} media files have been indexed" : "{n}개 미디어 파일이 색인 됨", + "Automatic Indexing status: {status}" : "자동 색인 상태: {status}", + "Last index job was run {t} seconds ago." : "마지막 색인 작업이 {t}초 전 실행되었습니다.", + "It took {t} seconds to complete." : "작업에 {t}초가 걸렸습니다.", + "It is still running or was interrupted." : "아직 실행 중이거나 실행 중에 중단되었습니다.", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "서버 측 암호화 (OC_DEFAULT_MODULE)만을 지원합니다. 하지만 다른 암호화 모듈이 활성화 되었습니다.", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "정기적인 백그라운드 작업에서 EXIF 색인을 만들고 검사합니다. 자동 색인 외의 다른 것을 선택할 때는 주의하세요. 예로, 타임라인은 사용자가 로그인 한 이후에만 구성할 수 있기 때문에, 타임라인 폴더만 색인하도록 설정하면 사용자가 미디어를 보기 전 지연 시간이 발생할 수 있습니다.", + "Index all media automatically (recommended)" : "모든 미디어를 자동 색인 (권장)", + "Index per-user timeline folders (not recommended)" : "사용자별 타임라인 폴더를 색인 (비권장)", + "Index a fixed relative path" : "바꿀 수 없는 상대적 경로를 색인", + "Disable background indexing" : "백그라운드 색인 끄기", + "Indexing path (relative, all users)" : "색인 경로 (상대적, 모든 사용자)", + "For advanced usage, perform a run of indexing by running:" : "고급 사용을 하려면 실행하여 색인 작업을 수행:", + "Run index in parallel with 4 threads:" : "4개 스레드로 병렬 색인 작업 실행:", + "Force re-indexing of all files:" : "모든 파일을 강제로 다시 색인:", + "You can limit indexing by user and/or folder:" : "색인 할 사용자 또는 폴더를 제한: ", + "Clear all existing index tables:" : "기존의 모든 색인을 제거:", + "Media Indexing" : "미디어 색인", + "HTTPS is enabled" : "HTTP 활성화됨", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "안전하지 않은 컨텍스트에서 페이지에 접근하고 있습니다. 몇 개의 브라우저 API를 사용할 수 없어 Memories가 매우 느리게 작동합니다. 서버에서 HTTPS를 활성화하여 성능을 향상시키세요.", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 또는 HTTP/3 활성화됨", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 또는 HTTP/3 사용을 강력히 권장합니다 ({httpVer} 사용이 감지됨) ", + "Performance" : "성능", "Unknown" : "알 수 없음", - "Copy public link" : "공용 링크 복사", + "Database is populated with {n} geometries." : "데이터베이스에 {n}개의 지리가 있습니다.", + "Geometry table has not been created." : "지리 테이블이 만들어지지 않았습니다.", + "Looks like the planet data is incomplete." : "행성 데이터가 불완전한 것 같습니다.", + "Reverse geocoding has not been configured ({status})." : "주소 변환이 설정되지 않았습니다. ({status})", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories는 MySQL및 Postgres에 저장된 OpenStreetMaps의 정보를 사용하여 주소 변환을 지원합니다.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "데이터베이스에 행성 데이터를 저장해야 합니다. 이 데이터는 적극 추천되며 오버헤드가 낮습니다.", + "If the button below does not work for importing the planet data, use the following command:" : "아래 버튼으로 행성 데이터를 가져올 수 없다면, 다음 명령을 사용하세요:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "알림: 지리 데이터가 memories_planet_geometry 테이블에 접두어 없이 저장되었습니다.", + "Download planet database" : "행성 데이터 다운로드", + "Reverse Geocoding" : "주소 변환", + "Geometry support was not detected in your database" : "데이터베이스가 지리 데이터를 지원하지 않습니다.", + "MySQL-like geometry support was detected " : "MySQL-like 지리 데이터 지원을 감지했습니다.", + "Postgres native geometry support was detected" : "Postgres의 기본 지리 데이터 지원을 감지했습니다.", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "데이터베이스가 이미 설정되어 있는 것 같습니다. 행성 데이터를 다시 다운로드 할까요?", + "You are about to download the planet database. This may take a while." : "행성 데이터를 다운로드 하려고 합니다. 다소 시간이 걸립니다.", + "This may also cause all photos to be re-indexed!" : "또한 사진들이 모두 다시 색인됩니다!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "실시간 트랜스코딩은 HLS를 사용하여 사용자 환경에 맞춰 동영상을 스트리밍 합니다.", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "하드웨어 가속이 없다면 CPU를 매우 많이 사용할 것이며, 외부 저장소에서는 트랜스코딩을 하지 않습니다.", + "Enable Transcoding" : "트랜스코딩 활성화", + "ffmpeg path" : "ffmpeg 경로", + "ffprobe path" : "ffprobe 경로", + "Global default video quality (user may override)" : "전역 기본 동영상 품질 (사용자가 바꿀 수 있음)", + "Auto (adaptive transcode)" : "자동 (적응형 트랜스코딩)", + "Original (transcode with max quality)" : "원본 (최대 품질로 트랜스코딩)", + "Direct (original video file without transcode)" : "직접 (트랜스코딩 하지 않은 원본 동영상)", + "Video Streaming" : "동영상 스트리밍", + "You must first make sure the correct drivers are installed before configuring acceleration." : "가속을 설정하기 전 꼭 올바른 드라이버가 설치되어 있어야 합니다.", + "Make sure you test hardware acceleration with various options after enabling." : "활성화 전에 하드웨어 가속에 여러 옵션을 주어 시험해 보세요.", + "Do not enable multiple types of hardware acceleration simultaneously." : "여러 종류의 하드웨어 가속을 동시에 활성화 하지 마세요.", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "일부 AMD GPU 뿐만 아니라 QuickSync Video (QSV)를 지원하는 인텔 프로세서를 VA-API를 통한 하드웨어 가속에 사용할 수 있습니다.", + "For more details on driver installation, check the documentation:" : "드라이버 설치에 대한 세부 사항은 다음 문서를 참고하세요:", + "Enable acceleration with VA-API" : "VA-API를 통한 가속 활성화", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "올바른 드라이버를 사용하면 NVIDIA GPU를 NVENC 인코더를 통한 트랜스코딩에 사용할 수 있습니다.", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "설치된 SDK 및 ffmpeg 버전에 따라 사용할 스케일러를 지정해야 합니다.", + "No automated tests are available for NVIDIA acceleration." : "NVIDIA 가속에 대한 자동 테스트를 사용할 수 없습니다.", + "Enable acceleration with NVENC" : "NVENC를 통한 가속 활성화", + "Enable NVENC Temporal AQ" : "NVENC Temporal AQ 활성화", + "NPP scaler" : "NPP 스케일러", + "CUDA scaler" : "CUDA 스케일러", + "VA-API device ({dev}) is readable" : "VA-API 장치 ({dev})를 읽을 수 있음", + "VA-API device ({dev}) not found" : "VA-API 장치 ({dev})를 찾을 수 없음", + "VA-API device ({dev}) has incorrect permissions" : "VA-API 장치 ({dev})의 권한이 잘못됨", + "VA-API device status: {status}" : "VA-API 장치 상태: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories는 go-vod 트랜스코더를 사용합니다. 외부에서 go-vod를 실행(예: 하드웨어 가속을 위한 별도의 Docker 컨테이너에서)하거나 내장 트랜스코더를 사용할 수 있습니다. 외부 트랜스코더를 사용하려면 다음 옵션을 활성화하고 설명서의 지침을 따르십시오:", + "Enable external transcoder (go-vod)" : "외장 트랜스코더 활성화 (go-vod)", + "Binary path (local only)" : "바이너리 경로 (로컬 전용)", + "Bind address (local only)" : "바인드 주소 (로컬 전용)", + "Connection address (same as bind if local)" : "연결 주소 (로컬이라면 바인드와 같게)", + "Template" : "템플릿", + "No items" : "항목 없음", + "Shared by {user}" : "{user}가 공유한", + "Add people or groups who can edit your album" : "앨범을 수정할 수 있는 사람 및 그룹 추가", + "Search for collaborators" : "공동 작업자 검색", + "Search people or groups" : "사람 및 그룹 검색", + "Add {collaboratorLabel} to the collaborators list" : "공동 작업자 목록에 {collaboratorLabel} 추가", + "No collaborators available" : "가능한 공동 작업자 없음", + "Remove {collaboratorLabel} from the collaborators list" : "공동 작업자 목록에서 {collaboratorLabel} 제거", + "Copy the public link" : "공개 링크 복사", + "Public link copied!" : "공개 링크 복사!", + "Copy public link" : "공개 링크 복사", + "Delete the public link" : "공개 링크 삭제", + "Share via public link" : "공개 링크로 공유", + "Failed to fetch collaborators list." : "공동 작업자 목록을 가져오지 못했습니다.", "Public link" : "공개 링크", + "Failed to fetch album." : "앨범을 가져오지 못했습니다.", + "Failed to update album." : "앨범을 업데이트 하지 못했습니다.", + "Create new album" : "새 앨범 만들기", + "Edit album details" : "앨범 세부 정보 수정", + "New album" : "새 앨범", + "Could not load the selected album" : "선택한 앨범을 불러올 수 없음", + "Remove Album" : "앨범 제거", + "Are you sure you want to permanently remove album \"{name}\"?" : "\"{name}\" 앨범을 영구히 제거하겠습니까?", + "Failed to delete {name}." : "{name}을 삭제하지 못했습니다.", + "Name of the album" : "앨범의 이름", + "Location of the album" : "앨범의 위치", + "Go back to the previous view." : "이전 화면으로 이동", "Back" : "뒤로", + "Go to the add collaborators view." : "공동 작업자 추가 화면으로 이동", + "Add collaborators" : "공동 작업자 추가", + "Back to the new album form." : "새 앨범 양식으로 돌아가기", "Save" : "저장", + "Create album" : "앨범 만들기", + "Invalid album name; should not contain any slashes." : "앨범 이름이 잘못되었습니다. 슬래시가 없어야 합니다.", + "Search" : "검색", + "Share Album" : "앨범 공유", + "Save collaborators for this album." : "이 앨범의 공동 작업자를 저장", + "_%n item_::_%n items_" : ["%n개 항목"], + "Newest" : "최신순", "Year" : "년", "Month" : "달", "Day" : "일", "Time" : "시간", "Hour" : "시간", "Minute" : "분", + "Oldest" : "과거순", + "Invalid Date" : "잘못된 날짜", + "Newest date is older than oldest date" : "최신의 날짜가 가장 오래된 날짜의 전입니다.", "Title" : "제목", "Description" : "설명", "Label" : "이름표", + "Camera Make" : "카메라 제작", + "Camera Model" : "카메라 모델", + "Lens Model" : "렌즈 모델", "Copyright" : "저작권", "Empty" : "비어 있음", + "Unchanged" : "바꾸지 않음", "Reset" : "초기화", + "Remove location" : "위치 제거", + "Search location / landmark" : "위치 및 랜드마크 검색", + "Failed to search for location with Nominatim." : "Nominatim에서 위치를 검색하지 못했습니다.", + "Date / Time" : "날짜 / 시간", + "Collaborative Tags" : "공동 작업 태그", + "EXIF Fields" : "EXIF 필드", + "Failed to load metadata for {n} photos." : "{n}개 사진에서 메타데이터를 가져오지 못했습니다.", + "{n} photos cannot be edited (permissions error)." : "{n}개의 사진을 수정할 수 없습니다. (권한 오류)", + "Remove person" : "사람 제거", + "Are you sure you want to remove {name}?" : "{name}(을)를 제거하시겠습니까?", + "Only user \"{user}\" can delete this person" : "\"{user}\"님만 이 사람을 제거할 수 있습니다.", + "Rename person" : "사람 제거", "Name" : "이름", "Update" : "업데이트", - "Search" : "검색", + "Failed to rename {oldName} to {name}." : "{oldName}에서 {name}(으)로 이름을 바꾸지 못했습니다.", "Loading …" : "불러오는 중 …", + "Enter name of the new face" : "새 얼굴에 이름을 입력하세요.", + "Failed to create face" : "얼굴을 만들지 못했습니다.", + "Merge {name} with person" : "사람에 {name}(을)를 병합", + "Too many failures, aborting" : "너무 많이 실패하여 취소함", + "Error while moving {basename}" : "{basename} 이동 중 실패", + "Failed to move {name}." : "{name}(을)를 이동하지 못했습니다.", + "Move selected photos to person" : "선택한 사진을 사람으로 이동", + "An error occurred while moving photos from {name}." : "{name}에서 사진을 이동하는 중 오류가 발생했습니다.", + "Choose a folder" : "폴더 선택", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n}개 항목이 폴더로 이동함"], "Remove" : "삭제", + "Add Path" : "경로 추가", + "Add a root to your timeline" : "타임라인의 루트 추가", + "Link Sharing" : "링크 공유", + "You cannot share the root folder" : "루트 폴더를 공유할 수 없습니다.", + "Public link shares are available to people outside Nextcloud." : "Nextcloud의 바깥 사람들은 공개 링크를 사용할 수 있습니다.", + "You may create or update permissions on public links using the sidebar." : "사이드바를 사용해 공개 링크의 권한을 만들거나 수정할 수 있습니다.", + "Click a link to copy to clipboard." : "링크를 클릭해 클립보드로 복사하세요.", "Share link" : "링크 공유", + "Create Link" : "링크 만들기", "Refresh" : "새로 고침", "Password protected" : "암호로 보호됨", "Expires" : "끝나는 시간", + "Editable" : "수정 가능", "Read only" : "읽기 전용", + "Link copied to clipboard" : "링크가 클립보드로 복사됨", + "Share File" : "파일 공유", + "Reduced Size" : "줄어든 크기", + "Share a lower resolution image preview" : "저해상도 이미지 미리 보기를 공유", + "High Resolution" : "고해상도", + "Share the video as a high quality MOV" : "고품질 MOV로 동영상 공유", + "Share the image as a high quality JPEG" : "고품질 JPEG으로 이미지 공유", + "Original File" : "원본 파일", + "Share the original image / video file" : "원본 이미지 및 동영상 파일 공유", + "Public Link" : "공개 링크", + "Share an external Nextcloud link" : "외부 Nextcloud 링크 공유", + "Failed to download file" : "파일 다운로드 실패", + "Cannot share this type of data" : "이 종류의 데이터는 공유할 수 없습니다.", "Sort by date" : "날짜순 정렬", "Sort by name" : "이름순 정렬", + "Share album" : "앨범 공유", + "Download album" : "앨범 다운로드", + "Nothing to show here" : "표시할 항목 없음", + "Merge with different person" : "다른 사람에게 병합", + "Mark person in preview" : "미리 보기에 사람 표시", + "Folder View" : "폴더 보기", + "Timeline View" : "타임라인 보기", + "Share folder" : "폴더 공유", + "Move left" : "왼쪽으로 이동", + "Move right" : "오른쪽으로 이동", + "Image saved successfully" : "이미지를 성공적으로 저장했습니다.", + "Error saving image" : "이미지 저장 중 오류 발생", "Unsaved changes" : "저장하지 않은 변경 사항", + "Drop changes" : "변경 사항 버리기", "Share" : "공유", - "Sidebar" : "사이드바", + "Play Live Photo" : "라이브 사진 재생", + "Download Video" : "동영상 다운로드", + "Slideshow" : "슬라이드쇼", "Previous" : "이전", "Next" : "다음", - "Continue" : "계속", + "Editing is currently disabled for Live Photos" : "현재 라이브 사진을 수정할 수 없습니다.", + "Are you sure you want to delete?" : "삭제하시겠습니까?", + "Failed to delete photo" : "사진을 삭제하지 못했습니다.", + "{name} binary exists and is executable." : "{name} 바이너리가 존재하며 실행 가능합니다.", + "{name} binary not found." : "{name} 바이너리를 찾을 수 없습니다.", + "{name} binary is not executable." : "{name} 바이너리는 실행할 수 없습니다.", + "{name} failed test: {info}." : "{name} 테스트 실패: {info}.", + "{name} binary exists and is usable ({info})." : "{name} 바이너리가 존재하며 사용 가능합니다. ({info})", + "{name} binary status: {status}." : "{name} 바이너리 상태: {status}.", + "Save as" : "다른 이름으로 저장", + "All changes will be lost." : "모든 변경 사항을 잃게 됩니다.", + "Are you sure you want to continue?" : "계속하시겠습니까?", "Undo" : "실행 취소", "Redo" : "다시 실행", + "Show original image" : "원본 이미지 표시", "Zoom in" : "확대", + "Zoom out" : "줌 아웃", + "Toggle zoom menu" : "줌 메뉴 전환", + "Adjust" : "조정", + "Fine-tune" : "세부 조정", + "Filters" : "필터", + "Watermark" : "워터마크", + "Draw" : "그리기", + "Resize" : "크기 조정", + "Invalid image." : "잘못된 이미지입니다.", + "Error while uploading the image." : "이미지를 업로드하는 중 오류가 발생했습니다.", + "are not images" : "(은)는 이미지가 아닙니다.", + "is not an image" : "(은)는 이미지가 아닙니다.", + "to be uploaded" : "업로드 될 것", + "Crop" : "자르기", "Original" : "원본", "Custom" : "사용자 정의", + "Square" : "정사각형", + "Landscape" : "가로 방향", + "Portrait" : "세로 방향", + "Ellipse" : "타원", + "Classic TV" : "클래식 TV", + "CinemaScope" : "시네마스코프", + "Arrow" : "화살표", + "Blur" : "흐림", + "Brightness" : "밝기", + "Contrast" : "대비", + "Un-flip X" : "X축 뒤집기 취소", + "Flip X" : "X축 뒤집기", + "Un-flip Y" : "Y축 뒤집기 취소", + "Flip Y" : "Y축 뒤집기", + "HSV" : "색조·채도·명조", + "Hue" : "색조", + "Saturation" : "채도", "Value" : "값", + "Image" : "이미지", + "Importing …" : "불러오는 중…", + "+ Add image" : "+ 이미지 추가", "Line" : "선", + "Pen" : "펜", + "Polygon" : "다각형", + "Sides" : "모서리", + "Rectangle" : "직사각형", + "Corner Radius" : "모서리 지름", + "Width in pixels" : "가로 픽셀", + "Height in pixels" : "세로 픽셀", + "Toggle ratio lock" : "종횡비 잠금 전환", + "Reset to original image size" : "원본 이미지 크기로 재설정", + "Rotate" : "회전", "Text" : "텍스트", + "Text spacing" : "텍스트 간격", + "Text alignment" : "텍스트 정렬", + "Font family" : "폰트 패밀리", "Size" : "크기", + "Letter spacing" : "글자 간격", + "Line height" : "줄 높이", + "Warmth" : "따뜻함", + "+ Add watermark" : "+ 워터마크 추가", + "Choose watermark type" : "워터마크 종류 고르기", + "Upload watermark" : "워터마크 업로드", + "Add as text" : "텍스트로 추가", + "Padding" : "패딩", + "Shadow" : "그림자", + "Horizontal" : "가로", + "Vertical" : "세로", + "Opacity" : "불투명도", "Position" : "위치", + "Stroke" : "선", + "Save image as" : "이미지를 다른 이름으로 저장", "Extension" : "확장자", + "Name is required." : "이름이 필요합니다.", "Quality" : "품질", - "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "선택한 잘라내기 영역은 적절한 크기 범위에 미치지 못하며, 품질이 저하될 수 있습니다", - "Auto" : "자동" + "Saved image size (width x height)" : "저장된 이미지 크기 (너비 x 높이)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "선택한 잘라내기 영역은 적절한 크기 범위에 미치지 못하며, 품질이 저하될 수 있습니다.", + "Actual size (100%)" : "실제 크기 (100%)", + "Fit size" : "크기 맞추기", + "Transcoding failed, check Nextcloud logs." : "트랜스코딩 실패, Nextcloud 로그를 확인하세요.", + "Direct" : "직접", + "Auto" : "자동", + "Shared Folder" : "공유된 폴더", + "Shared Album" : "공유된 앨범", + "Failed to create {albumName}." : "{albumName}(을)를 만들지 못했습니다.", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName}에서 {newAlbumName}(으)로 이름을 바꾸지 못했습니다.", + "General Failure" : "일반 실패", + "Error: {msg}" : "오류: {msg}", + "Failed to delete {fileName}." : "{fileName}(을)를 삭제하지 못했습니다.", + "Failed to move files." : "파일을 이동하지 못했습니다.", + "Could not move {fileName}, target exists." : "{fileName}(을)를 이동할 수 없습니다, 목적지에 이미 존재합니다.", + "Failed to move {fileName}." : "{fileName}을 이동하지 못했습니다.", + "Failed to download files" : "파일을 다운로드 하지 못했습니다.", + "Failed to favorite files." : "파일을 즐겨찾기에 추가하지 못했습니다.", + "Failed to favorite some files." : "일부 파일을 즐겨찾기에 추가하지 못했습니다.", + "Failed to favorite {fileName}." : "{fileName} 파일을 즐겨찾기에 추가하지 못했습니다.", + "Memories has been updated to {version}. Reload to get the new version." : "Memories를 {version}(으)로 업데이트 했습니다. 새로고침 하여 새 버전을 사용하세요.", + "Upload some photos and make sure the timeline path is configured" : "사진을 업로드하고 타임라인 경로가 설정되었는지 확인하세요.", + "Mark photos as favorite to find them easily" : "사진을 즐겨찾기에 추가해 쉽게 찾으세요.", + "Memories from past years will appear here" : "지난 해의 Memories부터 이곳에 나타납니다.", + "You will find your friends soon. Please be patient" : "곧 친구들을 확인할 수 있습니다. 기다려주세요.", + "Face Recognition is disabled. Enable in settings to find your friends" : "Face Recognition이 비활성화 되어있습니다. 친구들을 찾기 위해 설정에서 활성화 하세요.", + "Your videos will appear here" : "동영상이 이곳에 나타납니다.", + "No photos in this album yet" : "이 앨범에 아직 사진이 없습니다.", + "Create an album to get started" : "앨범을 만들어 시작하세요.", + "Archive photos you don't want to see in your timeline" : "타임라인에서 보고 싶지 않은 사진을 보관하세요.", + "Tag photos to find them easily" : "사진에 태그를 달아 쉽게 찾으세요.", + "Recognize is still working on your photos" : "사진을 계속 인식하는 중입니다.", + "Places you have been to will appear here" : "갔었던 장소가 이곳에 나타납니다.", + "Yes" : "예", + "No" : "아니오" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/lb.js b/l10n/lb.js index a5d7c0b3..8c03d36c 100644 --- a/l10n/lb.js +++ b/l10n/lb.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Eroflueden", "Settings" : "Astellungen", "Info" : "Info", "Favorites" : "Favoriten", @@ -9,14 +10,17 @@ OC.L10N.register( "Explore" : "Erfuerschen", "Cancel" : "Ofbriechen", "Delete" : "Läschen", - "Download" : "Eroflueden", "Favorite" : "Favorit", "View in folder" : "Kuk am Dossier ", + "Continue" : "Weider", + "Move" : "Verschieben", "General" : "Allgemeng", "Close" : "Zoumaachen", "Unknown" : "Onbekannt", "Back" : "Zeréck", "Save" : "Späicheren", + "Search" : "Search", + "Save changes" : "Ännerunge späicheren", "Month" : "Mount", "Day" : "Dag", "Time" : "Zäit", @@ -26,7 +30,6 @@ OC.L10N.register( "Reset" : "Zeréck setzen", "Name" : "Numm", "Update" : "Update", - "Search" : "Search", "Remove" : "Läschen", "Share link" : "Link deelen", "Refresh" : "Opfrëschen", @@ -36,8 +39,9 @@ OC.L10N.register( "Share" : "Deelen", "Previous" : "Zeréck", "Next" : "Weider", - "Continue" : "Weider", "Custom" : "Individualiséier", - "Size" : "Gréisst" + "Size" : "Gréisst", + "Yes" : "Jo", + "No" : "Nee" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/lb.json b/l10n/lb.json index b309306e..c599bbca 100644 --- a/l10n/lb.json +++ b/l10n/lb.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Eroflueden", "Settings" : "Astellungen", "Info" : "Info", "Favorites" : "Favoriten", @@ -7,14 +8,17 @@ "Explore" : "Erfuerschen", "Cancel" : "Ofbriechen", "Delete" : "Läschen", - "Download" : "Eroflueden", "Favorite" : "Favorit", "View in folder" : "Kuk am Dossier ", + "Continue" : "Weider", + "Move" : "Verschieben", "General" : "Allgemeng", "Close" : "Zoumaachen", "Unknown" : "Onbekannt", "Back" : "Zeréck", "Save" : "Späicheren", + "Search" : "Search", + "Save changes" : "Ännerunge späicheren", "Month" : "Mount", "Day" : "Dag", "Time" : "Zäit", @@ -24,7 +28,6 @@ "Reset" : "Zeréck setzen", "Name" : "Numm", "Update" : "Update", - "Search" : "Search", "Remove" : "Läschen", "Share link" : "Link deelen", "Refresh" : "Opfrëschen", @@ -34,8 +37,9 @@ "Share" : "Deelen", "Previous" : "Zeréck", "Next" : "Weider", - "Continue" : "Weider", "Custom" : "Individualiséier", - "Size" : "Gréisst" + "Size" : "Gréisst", + "Yes" : "Jo", + "No" : "Nee" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/lo.js b/l10n/lo.js index 3384b048..0ab19b41 100644 --- a/l10n/lo.js +++ b/l10n/lo.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "ດາວໂຫລດ", "Settings" : "ການຕັ້ງຄ່າ", "Info" : "ຂໍ້ມຸນ", "Favorites" : "ລາຍການທີ່ມັກ", @@ -9,16 +10,17 @@ OC.L10N.register( "Edit" : "ແກ້ໄຂ", "Cancel" : "ຍົກເລີກ", "Delete" : "ລຶບ", - "Download" : "ດາວໂຫລດ", "Favorite" : "ລາຍການທີ່ມັກ", "View in folder" : "ເບິ່ງໃນໂຟນເດີ", + "Continue" : "ສືບຕໍ່", + "Move" : "ຍ້າຍ", "General" : "ທົ່ວໄປ", "Close" : "ປິດ", "Unknown" : "ບໍ່ຮູ້", "Back" : "ຫຼັງ", "Save" : "ບັນທຶກ", - "Name" : "ຊື່", "Search" : "ຄົ້ນຫາ", + "Name" : "ຊື່", "Loading …" : "ກຳລັງໂຫຼດ", "Remove" : "ຍ້າຍອອກ", "Share link" : "ແບ່ງປັນລິງ", @@ -27,8 +29,8 @@ OC.L10N.register( "Share" : "ແບ່ງປັນ", "Previous" : "ກ່ອນໜ້າ", "Next" : "ທັດໄປ", - "Continue" : "ສືບຕໍ່", "Original" : "ຕົ້ນສະບັບ", - "Size" : "ຂະຫນາດ" + "Size" : "ຂະຫນາດ", + "No" : "ບໍ່" }, "nplurals=1; plural=0;"); diff --git a/l10n/lo.json b/l10n/lo.json index c7844c57..19946cb2 100644 --- a/l10n/lo.json +++ b/l10n/lo.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "ດາວໂຫລດ", "Settings" : "ການຕັ້ງຄ່າ", "Info" : "ຂໍ້ມຸນ", "Favorites" : "ລາຍການທີ່ມັກ", @@ -7,16 +8,17 @@ "Edit" : "ແກ້ໄຂ", "Cancel" : "ຍົກເລີກ", "Delete" : "ລຶບ", - "Download" : "ດາວໂຫລດ", "Favorite" : "ລາຍການທີ່ມັກ", "View in folder" : "ເບິ່ງໃນໂຟນເດີ", + "Continue" : "ສືບຕໍ່", + "Move" : "ຍ້າຍ", "General" : "ທົ່ວໄປ", "Close" : "ປິດ", "Unknown" : "ບໍ່ຮູ້", "Back" : "ຫຼັງ", "Save" : "ບັນທຶກ", - "Name" : "ຊື່", "Search" : "ຄົ້ນຫາ", + "Name" : "ຊື່", "Loading …" : "ກຳລັງໂຫຼດ", "Remove" : "ຍ້າຍອອກ", "Share link" : "ແບ່ງປັນລິງ", @@ -25,8 +27,8 @@ "Share" : "ແບ່ງປັນ", "Previous" : "ກ່ອນໜ້າ", "Next" : "ທັດໄປ", - "Continue" : "ສືບຕໍ່", "Original" : "ຕົ້ນສະບັບ", - "Size" : "ຂະຫນາດ" + "Size" : "ຂະຫນາດ", + "No" : "ບໍ່" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/lt_LT.js b/l10n/lt_LT.js index 07fea18d..e0ffb160 100644 --- a/l10n/lt_LT.js +++ b/l10n/lt_LT.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Atsisiųsti", "Memories" : "Prisiminimai", "Settings" : "Nustatymai", "People" : "Žmonės", @@ -13,31 +14,33 @@ OC.L10N.register( "Archive" : "Archyvuoti", "On this day" : "Šią dieną", "Tags" : "Žymės", - "If you just installed Memories, run:" : "Jei ką tik įdiegėte Prisiminimus, paleiskite:", "Click here to start" : "Spustelėkite čia, norėdami pradėti", + "Metadata" : "Metaduomenys", "Edit" : "Taisyti", "Photos" : "Nuotraukos", "Explore" : "Išvalgyti", "Cancel" : "Atsisakyti", "Delete" : "Ištrinti", "Remove from album" : "Šalinti iš albumo", - "Download" : "Atsisiųsti", "Favorite" : "Mėgstamas", "Unarchive" : "Išskleisti", "View in folder" : "Rodyti aplanke", "Add to album" : "Pridėti į albumą", - "You are about to download a large number of files. Are you sure?" : "Jūs ketinate atsisiųsti didelį failų skaičių. Ar esate tikri?", - "You are about to delete a large number of files. Are you sure?" : "Jūs ketinate ištrinti didelį failų skaičių. Ar esate tikri?", - "You are about to touch a large number of files. Are you sure?" : "Jūs ketinate atlikti veiksmus su dideliu failų skaičiumi. Ar esate tikri?", + "Continue" : "Tęsti", + "Move" : "Perkelti", "General" : "Bendra", "Timeline Path" : "Laiko juostos kelias", "Square grid mode" : "Kvadratinio tinklelio veiksena", + "Viewer" : "Žiūryklė", + "Account" : "Paskyra", "Folders Path" : "Aplankų kelias", "Show hidden folders" : "Rodyti paslėptus aplankus", "Close" : "Užverti", "Failed to load some photos" : "Nepavyko įkelti kai kurių nuotraukų", "Performance" : "Našumas", "Unknown" : "Nežinoma", + "Template" : "Šablonas", + "Shared by {user}" : "Bendrina {user}", "Add people or groups who can edit your album" : "Pridėti žmonių ar grupių, kurie galėtų taisyti jūsų albumą", "Search people or groups" : "Ieškoti žmonių ar grupių", "Copy the public link" : "Kopijuoti viešąją nuorodą", @@ -61,7 +64,7 @@ OC.L10N.register( "Back to the new album form." : "Atgal į naujo albumo formą.", "Save" : "Įrašyti", "Create album" : "Sukurti albumą", - "Create a new album." : "Sukurti naują albumą.", + "Search" : "Ieškoti", "Share Album" : "Bendrinti albumą", "Newest" : "Naujausios", "Year" : "Metai", @@ -83,9 +86,7 @@ OC.L10N.register( "Name" : "Vardas", "Update" : "Atnaujinti", "Failed to rename {oldName} to {name}." : "Nepavyko pervadinti {oldName} į {name}.", - "Search" : "Ieškoti", "Loading …" : "Įkeliama…", - "Are you sure you want to merge {name} with {newName}?" : "Ar tikrai norite sulieti {name} su {newName}?", "Too many failures, aborting" : "Per daug nesėkmių, nutraukiama", "Error while moving {basename}" : "Klaida perkeliant {basename}", "Failed to move {name}." : "Nepavyko perkelti {name}.", @@ -102,7 +103,6 @@ OC.L10N.register( "Sort by name" : "Rikiuoti pagal pavadinimą", "Share album" : "Bendrinti albumą", "Download album" : "Atsisiųsti albumą", - "Delete album" : "Ištrinti albumą", "Merge with different person" : "Sulieti su kitu žmogumi", "Share folder" : "Bendrinti aplanką", "Move left" : "Perkelti kairėn", @@ -112,7 +112,6 @@ OC.L10N.register( "Unsaved changes" : "Neįrašyti pakeitimai", "Drop changes" : "Atmesti pakeitimus", "Share" : "Bendrinti", - "Sidebar" : "Šoninė juosta", "Slideshow" : "Skaidrių rodymas", "Previous" : "Ankstesnis", "Next" : "Kitas", @@ -120,7 +119,6 @@ OC.L10N.register( "Save as" : "Įrašyti kaip", "All changes will be lost." : "Visi pakeitimai bus prarasti.", "Are you sure you want to continue?" : "Ar tikrai norite tęsti?", - "Continue" : "Tęsti", "Undo" : "Atšaukti", "Redo" : "Grąžinti", "Zoom in" : "Didinti", @@ -148,6 +146,7 @@ OC.L10N.register( "Error: {msg}" : "Klaida: {msg}", "Failed to delete {fileName}." : "Nepavyko ištrinti {fileName}.", "Failed to download files" : "Nepavyko atsisiųsti failų", - "Your Timeline" : "Jūsų laiko juostą" + "Yes" : "Taip", + "No" : "Ne" }, "nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/l10n/lt_LT.json b/l10n/lt_LT.json index 3bd77bf9..bb6971a9 100644 --- a/l10n/lt_LT.json +++ b/l10n/lt_LT.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Atsisiųsti", "Memories" : "Prisiminimai", "Settings" : "Nustatymai", "People" : "Žmonės", @@ -11,31 +12,33 @@ "Archive" : "Archyvuoti", "On this day" : "Šią dieną", "Tags" : "Žymės", - "If you just installed Memories, run:" : "Jei ką tik įdiegėte Prisiminimus, paleiskite:", "Click here to start" : "Spustelėkite čia, norėdami pradėti", + "Metadata" : "Metaduomenys", "Edit" : "Taisyti", "Photos" : "Nuotraukos", "Explore" : "Išvalgyti", "Cancel" : "Atsisakyti", "Delete" : "Ištrinti", "Remove from album" : "Šalinti iš albumo", - "Download" : "Atsisiųsti", "Favorite" : "Mėgstamas", "Unarchive" : "Išskleisti", "View in folder" : "Rodyti aplanke", "Add to album" : "Pridėti į albumą", - "You are about to download a large number of files. Are you sure?" : "Jūs ketinate atsisiųsti didelį failų skaičių. Ar esate tikri?", - "You are about to delete a large number of files. Are you sure?" : "Jūs ketinate ištrinti didelį failų skaičių. Ar esate tikri?", - "You are about to touch a large number of files. Are you sure?" : "Jūs ketinate atlikti veiksmus su dideliu failų skaičiumi. Ar esate tikri?", + "Continue" : "Tęsti", + "Move" : "Perkelti", "General" : "Bendra", "Timeline Path" : "Laiko juostos kelias", "Square grid mode" : "Kvadratinio tinklelio veiksena", + "Viewer" : "Žiūryklė", + "Account" : "Paskyra", "Folders Path" : "Aplankų kelias", "Show hidden folders" : "Rodyti paslėptus aplankus", "Close" : "Užverti", "Failed to load some photos" : "Nepavyko įkelti kai kurių nuotraukų", "Performance" : "Našumas", "Unknown" : "Nežinoma", + "Template" : "Šablonas", + "Shared by {user}" : "Bendrina {user}", "Add people or groups who can edit your album" : "Pridėti žmonių ar grupių, kurie galėtų taisyti jūsų albumą", "Search people or groups" : "Ieškoti žmonių ar grupių", "Copy the public link" : "Kopijuoti viešąją nuorodą", @@ -59,7 +62,7 @@ "Back to the new album form." : "Atgal į naujo albumo formą.", "Save" : "Įrašyti", "Create album" : "Sukurti albumą", - "Create a new album." : "Sukurti naują albumą.", + "Search" : "Ieškoti", "Share Album" : "Bendrinti albumą", "Newest" : "Naujausios", "Year" : "Metai", @@ -81,9 +84,7 @@ "Name" : "Vardas", "Update" : "Atnaujinti", "Failed to rename {oldName} to {name}." : "Nepavyko pervadinti {oldName} į {name}.", - "Search" : "Ieškoti", "Loading …" : "Įkeliama…", - "Are you sure you want to merge {name} with {newName}?" : "Ar tikrai norite sulieti {name} su {newName}?", "Too many failures, aborting" : "Per daug nesėkmių, nutraukiama", "Error while moving {basename}" : "Klaida perkeliant {basename}", "Failed to move {name}." : "Nepavyko perkelti {name}.", @@ -100,7 +101,6 @@ "Sort by name" : "Rikiuoti pagal pavadinimą", "Share album" : "Bendrinti albumą", "Download album" : "Atsisiųsti albumą", - "Delete album" : "Ištrinti albumą", "Merge with different person" : "Sulieti su kitu žmogumi", "Share folder" : "Bendrinti aplanką", "Move left" : "Perkelti kairėn", @@ -110,7 +110,6 @@ "Unsaved changes" : "Neįrašyti pakeitimai", "Drop changes" : "Atmesti pakeitimus", "Share" : "Bendrinti", - "Sidebar" : "Šoninė juosta", "Slideshow" : "Skaidrių rodymas", "Previous" : "Ankstesnis", "Next" : "Kitas", @@ -118,7 +117,6 @@ "Save as" : "Įrašyti kaip", "All changes will be lost." : "Visi pakeitimai bus prarasti.", "Are you sure you want to continue?" : "Ar tikrai norite tęsti?", - "Continue" : "Tęsti", "Undo" : "Atšaukti", "Redo" : "Grąžinti", "Zoom in" : "Didinti", @@ -146,6 +144,7 @@ "Error: {msg}" : "Klaida: {msg}", "Failed to delete {fileName}." : "Nepavyko ištrinti {fileName}.", "Failed to download files" : "Nepavyko atsisiųsti failų", - "Your Timeline" : "Jūsų laiko juostą" + "Yes" : "Taip", + "No" : "Ne" },"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);" } \ No newline at end of file diff --git a/l10n/lv.js b/l10n/lv.js index 0623d971..f729e761 100644 --- a/l10n/lv.js +++ b/l10n/lv.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Lejupielādēt", "Settings" : "Iestatījumi", "Info" : "Info", "Folders" : "Mapes", @@ -9,14 +10,18 @@ OC.L10N.register( "Albums" : "Albumi", "Archive" : "Arhīvi", "Tags" : "Birkas", + "Metadata" : "Metadati", "Edit" : "Rediģēt", "Photos" : "Bildes", "Cancel" : "Atcelt", "Delete" : "Dzēst", - "Download" : "Lejupielādēt", "Favorite" : "Favorīts", "View in folder" : "Skatīt mapē", + "Continue" : "Turpināt", + "Move" : "Pārvietot", "General" : "Vispārīgs", + "Viewer" : "Skatītājs", + "Account" : "Konts", "Close" : "Aizvērt", "Unknown" : "Nezināms", "Copy the public link" : "Kopējiet publisko saiti", @@ -28,6 +33,7 @@ OC.L10N.register( "Back" : "Atpakaļ", "Save" : "Saglabāt", "Create album" : "Izveidot albumu", + "Search" : "Meklēt", "Month" : "Mēnesis", "Day" : "Diena", "Time" : "Laiks", @@ -40,7 +46,6 @@ OC.L10N.register( "Reset" : "Atiestatīt", "Name" : "Vārds", "Update" : "Atjaunināt", - "Search" : "Meklēt", "Remove" : "Noņemt", "Share link" : "Koplietot saiti", "Create Link" : "Izveidot saiti", @@ -51,11 +56,9 @@ OC.L10N.register( "Sort by date" : "Kārtot pēc datuma", "Sort by name" : "Kārtot pēc nosaukuma", "Share" : "Koplietot", - "Sidebar" : "Sānjosla", "Previous" : "Iepriekšējā", "Next" : "Nākamā", "Save as" : "Saglabāt kā", - "Continue" : "Turpināt", "Undo" : "Atsaukt", "Redo" : "Atcelt atsaukšanu", "Original" : "Oriģināls", diff --git a/l10n/lv.json b/l10n/lv.json index 057135dc..5792de5c 100644 --- a/l10n/lv.json +++ b/l10n/lv.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Lejupielādēt", "Settings" : "Iestatījumi", "Info" : "Info", "Folders" : "Mapes", @@ -7,14 +8,18 @@ "Albums" : "Albumi", "Archive" : "Arhīvi", "Tags" : "Birkas", + "Metadata" : "Metadati", "Edit" : "Rediģēt", "Photos" : "Bildes", "Cancel" : "Atcelt", "Delete" : "Dzēst", - "Download" : "Lejupielādēt", "Favorite" : "Favorīts", "View in folder" : "Skatīt mapē", + "Continue" : "Turpināt", + "Move" : "Pārvietot", "General" : "Vispārīgs", + "Viewer" : "Skatītājs", + "Account" : "Konts", "Close" : "Aizvērt", "Unknown" : "Nezināms", "Copy the public link" : "Kopējiet publisko saiti", @@ -26,6 +31,7 @@ "Back" : "Atpakaļ", "Save" : "Saglabāt", "Create album" : "Izveidot albumu", + "Search" : "Meklēt", "Month" : "Mēnesis", "Day" : "Diena", "Time" : "Laiks", @@ -38,7 +44,6 @@ "Reset" : "Atiestatīt", "Name" : "Vārds", "Update" : "Atjaunināt", - "Search" : "Meklēt", "Remove" : "Noņemt", "Share link" : "Koplietot saiti", "Create Link" : "Izveidot saiti", @@ -49,11 +54,9 @@ "Sort by date" : "Kārtot pēc datuma", "Sort by name" : "Kārtot pēc nosaukuma", "Share" : "Koplietot", - "Sidebar" : "Sānjosla", "Previous" : "Iepriekšējā", "Next" : "Nākamā", "Save as" : "Saglabāt kā", - "Continue" : "Turpināt", "Undo" : "Atsaukt", "Redo" : "Atcelt atsaukšanu", "Original" : "Oriģināls", diff --git a/l10n/mk.js b/l10n/mk.js index a688e62d..b40cfabb 100644 --- a/l10n/mk.js +++ b/l10n/mk.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Преземи", "Settings" : "Параметри", "People" : "Луѓе", "Info" : "Инфо", @@ -15,15 +16,20 @@ OC.L10N.register( "Map" : "Мапа", "Tags" : "Ознаки", "Recognize" : "Препознавање", + "Metadata" : "Метаподатоци", "Edit" : "Уреди", "Photos" : "Фотографии", "Cancel" : "Откажи", "Delete" : "Избриши", - "Download" : "Преземи", "Favorite" : "Омилен", "View in folder" : "Погледни во папката", "Add to album" : "Додади во албум", + "Continue" : "Продолжи", + "Move" : "Премести", "General" : "Општо", + "Viewer" : "Прегледувач", + "Account" : "Сметка", + "Logged in as {user}" : "Најавени сте како {user}", "Close" : "Затвори", "Unknown" : "Непознат", "Add people or groups who can edit your album" : "Додади корисник кој ќе може да го ажурира твојот албум", @@ -53,9 +59,8 @@ OC.L10N.register( "Back to the new album form." : "Врати се на формата за нов албум.", "Save" : "Зачувај", "Create album" : "Креирај албум", - "Add selection to album {albumName}" : "Додади ги избраните во албумот {albumName}", - "Create a new album." : "Креирај нов албум.", - "_Share with %n user_::_Share with %n users_" : ["Споделено со 1 корисник","Споделено со %n корисници"], + "Search" : "Барај", + "Save changes" : "Зачувај ги промените", "Save collaborators for this album." : "Зачувај соработници за овој албум.", "Year" : "Година", "Month" : "Месец", @@ -71,7 +76,6 @@ OC.L10N.register( "Rename person" : "Преименувај личност", "Name" : "Име", "Update" : "Ажурирај", - "Search" : "Барај", "Loading …" : "Се вчитува…", "Remove" : "Отстрани ", "Share link" : "Сподели линк", @@ -80,18 +84,15 @@ OC.L10N.register( "Read only" : "Само читај", "Sort by date" : "Подреди по датум", "Sort by name" : "Подреди по име", - "Delete album" : "Избриши албум", "Merge with different person" : "Спој со друга личност", "Share folder" : "Сподели папка", "Unsaved changes" : "Незачувани промени", "Share" : "Сподели", - "Sidebar" : "Странична лента", "Previous" : "Предходна", "Next" : "Следна", "Save as" : "Зачувај како", "All changes will be lost." : "Сите промени ќе се изгубат.", "Are you sure you want to continue?" : "Дали си сигурен дека сакаш да продолжиш?", - "Continue" : "Продолжи", "Undo" : "Назад", "Redo" : "Напред", "Show original image" : "Прикажи ја оргиналната слика", diff --git a/l10n/mk.json b/l10n/mk.json index 10e6271f..a424c068 100644 --- a/l10n/mk.json +++ b/l10n/mk.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Преземи", "Settings" : "Параметри", "People" : "Луѓе", "Info" : "Инфо", @@ -13,15 +14,20 @@ "Map" : "Мапа", "Tags" : "Ознаки", "Recognize" : "Препознавање", + "Metadata" : "Метаподатоци", "Edit" : "Уреди", "Photos" : "Фотографии", "Cancel" : "Откажи", "Delete" : "Избриши", - "Download" : "Преземи", "Favorite" : "Омилен", "View in folder" : "Погледни во папката", "Add to album" : "Додади во албум", + "Continue" : "Продолжи", + "Move" : "Премести", "General" : "Општо", + "Viewer" : "Прегледувач", + "Account" : "Сметка", + "Logged in as {user}" : "Најавени сте како {user}", "Close" : "Затвори", "Unknown" : "Непознат", "Add people or groups who can edit your album" : "Додади корисник кој ќе може да го ажурира твојот албум", @@ -51,9 +57,8 @@ "Back to the new album form." : "Врати се на формата за нов албум.", "Save" : "Зачувај", "Create album" : "Креирај албум", - "Add selection to album {albumName}" : "Додади ги избраните во албумот {albumName}", - "Create a new album." : "Креирај нов албум.", - "_Share with %n user_::_Share with %n users_" : ["Споделено со 1 корисник","Споделено со %n корисници"], + "Search" : "Барај", + "Save changes" : "Зачувај ги промените", "Save collaborators for this album." : "Зачувај соработници за овој албум.", "Year" : "Година", "Month" : "Месец", @@ -69,7 +74,6 @@ "Rename person" : "Преименувај личност", "Name" : "Име", "Update" : "Ажурирај", - "Search" : "Барај", "Loading …" : "Се вчитува…", "Remove" : "Отстрани ", "Share link" : "Сподели линк", @@ -78,18 +82,15 @@ "Read only" : "Само читај", "Sort by date" : "Подреди по датум", "Sort by name" : "Подреди по име", - "Delete album" : "Избриши албум", "Merge with different person" : "Спој со друга личност", "Share folder" : "Сподели папка", "Unsaved changes" : "Незачувани промени", "Share" : "Сподели", - "Sidebar" : "Странична лента", "Previous" : "Предходна", "Next" : "Следна", "Save as" : "Зачувај како", "All changes will be lost." : "Сите промени ќе се изгубат.", "Are you sure you want to continue?" : "Дали си сигурен дека сакаш да продолжиш?", - "Continue" : "Продолжи", "Undo" : "Назад", "Redo" : "Напред", "Show original image" : "Прикажи ја оргиналната слика", diff --git a/l10n/mn.js b/l10n/mn.js index 2c291316..cfbd5c7e 100644 --- a/l10n/mn.js +++ b/l10n/mn.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Татах", "Settings" : "Тохиргоо", "Info" : "Info", "Folders" : "Хавтсууд", @@ -13,15 +14,18 @@ OC.L10N.register( "Explore" : "Хайх", "Cancel" : "болиулах", "Delete" : "Устгах", - "Download" : "Татах", "Favorite" : "Дуртай", "Unarchive" : "Архиваас гаргах", "View in folder" : "Хавтасыг нээх", + "Continue" : "үргэлжлүүлэх", + "Move" : "Зөөх", "General" : "Ерөнхий", + "Account" : "аккаунт", "Close" : "Хаах", "Unknown" : "Үл танигдах зүйл", "Back" : "буцах", "Save" : "Хадгалах", + "Search" : "Хайх", "Month" : "Сар", "Day" : "Өдөр", "Time" : "Цаг", @@ -32,7 +36,6 @@ OC.L10N.register( "Reset" : "тохируулах", "Name" : "Нэр", "Update" : "Шинэчлэх", - "Search" : "Хайх", "Loading …" : "Уншиж байна...", "Remove" : "Устгах", "Share link" : "Холбоос хуваалцах", @@ -44,7 +47,6 @@ OC.L10N.register( "Share" : "Түгээх", "Previous" : "өмнөх", "Next" : "дараагийх", - "Continue" : "үргэлжлүүлэх", "Undo" : "буцах", "Custom" : "Дурын", "Value" : "Үнийн дүн", diff --git a/l10n/mn.json b/l10n/mn.json index fffc9c75..0dcf0f76 100644 --- a/l10n/mn.json +++ b/l10n/mn.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Татах", "Settings" : "Тохиргоо", "Info" : "Info", "Folders" : "Хавтсууд", @@ -11,15 +12,18 @@ "Explore" : "Хайх", "Cancel" : "болиулах", "Delete" : "Устгах", - "Download" : "Татах", "Favorite" : "Дуртай", "Unarchive" : "Архиваас гаргах", "View in folder" : "Хавтасыг нээх", + "Continue" : "үргэлжлүүлэх", + "Move" : "Зөөх", "General" : "Ерөнхий", + "Account" : "аккаунт", "Close" : "Хаах", "Unknown" : "Үл танигдах зүйл", "Back" : "буцах", "Save" : "Хадгалах", + "Search" : "Хайх", "Month" : "Сар", "Day" : "Өдөр", "Time" : "Цаг", @@ -30,7 +34,6 @@ "Reset" : "тохируулах", "Name" : "Нэр", "Update" : "Шинэчлэх", - "Search" : "Хайх", "Loading …" : "Уншиж байна...", "Remove" : "Устгах", "Share link" : "Холбоос хуваалцах", @@ -42,7 +45,6 @@ "Share" : "Түгээх", "Previous" : "өмнөх", "Next" : "дараагийх", - "Continue" : "үргэлжлүүлэх", "Undo" : "буцах", "Custom" : "Дурын", "Value" : "Үнийн дүн", diff --git a/l10n/ms_MY.js b/l10n/ms_MY.js index 1f31bbf0..a6bc27c3 100644 --- a/l10n/ms_MY.js +++ b/l10n/ms_MY.js @@ -1,24 +1,25 @@ OC.L10N.register( "memories", { + "Download" : "Muat turun", "Settings" : "Tetapan", "Info" : "Info", "Favorites" : "Favorites", "Edit" : "Sunting", "Cancel" : "Batal", "Delete" : "Padam", - "Download" : "Muat turun", + "Move" : "Move", "General" : "Umum", "Close" : "Tutup", "Back" : "Kembali", "Save" : "Simpan", + "Search" : "Search", "Month" : "Bulan", "Day" : "Hari", "Title" : "Judul", "Description" : "Keterangan", "Name" : "Nama", "Update" : "Kemaskini", - "Search" : "Search", "Remove" : "Buang", "Share link" : "Share link", "Refresh" : "Refresh", @@ -27,6 +28,8 @@ OC.L10N.register( "Share" : "Kongsi", "Previous" : "Sebelum", "Next" : "Seterus", - "Size" : "Saiz" + "Size" : "Saiz", + "Yes" : "Ya", + "No" : "Tidak" }, "nplurals=1; plural=0;"); diff --git a/l10n/ms_MY.json b/l10n/ms_MY.json index 91758386..53099572 100644 --- a/l10n/ms_MY.json +++ b/l10n/ms_MY.json @@ -1,22 +1,23 @@ { "translations": { + "Download" : "Muat turun", "Settings" : "Tetapan", "Info" : "Info", "Favorites" : "Favorites", "Edit" : "Sunting", "Cancel" : "Batal", "Delete" : "Padam", - "Download" : "Muat turun", + "Move" : "Move", "General" : "Umum", "Close" : "Tutup", "Back" : "Kembali", "Save" : "Simpan", + "Search" : "Search", "Month" : "Bulan", "Day" : "Hari", "Title" : "Judul", "Description" : "Keterangan", "Name" : "Nama", "Update" : "Kemaskini", - "Search" : "Search", "Remove" : "Buang", "Share link" : "Share link", "Refresh" : "Refresh", @@ -25,6 +26,8 @@ "Share" : "Kongsi", "Previous" : "Sebelum", "Next" : "Seterus", - "Size" : "Saiz" + "Size" : "Saiz", + "Yes" : "Ya", + "No" : "Tidak" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/nb.js b/l10n/nb.js index c396c506..b6992e82 100644 --- a/l10n/nb.js +++ b/l10n/nb.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Last ned", "Memories" : "Minner", "Fast, modern and advanced photo management suite" : "Rask, moderne og avansert bildebehandlingspakke", "Settings" : "Innstillinger", @@ -21,7 +22,6 @@ OC.L10N.register( "Recognize" : "Gjenkjenn", "A better photos experience awaits you" : "En bedre bildeopplevelse venter på deg", "Choose the root folder of your timeline to begin" : "Velg rotmappen til tidslinjen for å begynne", - "If you just installed Memories, run:" : "Hvis du nettopp har installert Minner, kjør:", "Continue to Memories" : "Fortsett til Minner", "Choose again" : "Velg igjen", "Click here to start" : "Klikk her for å starte", @@ -29,29 +29,28 @@ OC.L10N.register( "Choose the root of your timeline" : "Velg roten til tidslinjen", "The selected folder does not seem to be valid. Try again." : "Den valgte mappen ser ikke ut til å være gyldig. Prøv igjen.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Fant {n} element i {path}","Fant {n} elementer i {path}"], + "Metadata" : "Metadata", "Edit" : "Rediger", - "No title" : "Ingen tittel", - "No description" : "Ingen beskrivelse", "Explore" : "Utforsk", "Cancel" : "Avbryt", "Delete" : "Slett", "Remove from album" : "Fjern fra album", - "Download" : "Last ned", "Favorite" : "Favoritt", "Unarchive" : "Dearkivere", "View in folder" : "Vis i mappe", "Move to folder" : "Flytt til mappe", "Add to album" : "Legg til i album", "Remove from person" : "Fjern fra person", - "You are about to download a large number of files. Are you sure?" : "Du er i ferd med å laste ned et stort antall filer. Er du sikker?", - "You are about to delete a large number of files. Are you sure?" : "Du er i ferd med å slette et stort antall filer. Er du sikker?", - "You are about to touch a large number of files. Are you sure?" : "Du er i ferd med å berøre et stort antall filer. Er du sikker?", + "Continue" : "Fortsett", + "Move" : "Flytt", "_{n} selected_::_{n} selected_" : ["{n} valgt","{n} valgt"], "Memories Settings" : "Minner-innstillinger", "General" : "Generell", "Timeline Path" : "Tidslinjebane", "Square grid mode" : "Firkantet rutenettmodus", "Show past photos on top of timeline" : "Vis tidligere bilder øverst på tidslinjen", + "Viewer" : "Fremviser", + "Account" : "Konto", "Folders Path" : "Mappebane", "Show hidden folders" : "Vis skjulte mapper", "Choose Timeline Paths" : "Velg tidslinjebaner", @@ -60,7 +59,7 @@ OC.L10N.register( "Failed to load some photos" : "Kunne ikke laste inn noen bilder", "Performance" : "Ytelse", "Unknown" : "Ukjent", - "_{n} item added to album_::_{n} items added to album_" : ["{n} element lagt til album","{n} elementer lagt til i albumet"], + "No items" : "Ingen gjenstander", "Add people or groups who can edit your album" : "Legg til personer eller grupper som kan redigere albumet ditt", "Search for collaborators" : "Søk etter samarbeidspartnere", "Search people or groups" : "Søk etter personer eller grupper", @@ -91,12 +90,10 @@ OC.L10N.register( "Back to the new album form." : "Tilbake til albumskjemaet.", "Save" : "Lagre", "Create album" : "Lag album", - "Add selection to album {albumName}" : "Legg til utvalg i albumet {albumName}", - "Create a new album." : "Opprett et nytt album.", - "_%n item_::_%n items_" : ["%n element","%nelementer"], - "_Share with %n user_::_Share with %n users_" : ["Del med %n bruker","Del med %n brukere"], + "Search" : "Søk", "Share Album" : "Del album", "Save collaborators for this album." : "Lagre samarbeidspartnere for dette albumet.", + "_%n item_::_%n items_" : ["%n element","%nelementer"], "Newest" : "Nyeste", "Year" : "År", "Month" : "Måned", @@ -120,10 +117,8 @@ OC.L10N.register( "Name" : "Navn", "Update" : "Oppdater", "Failed to rename {oldName} to {name}." : "Kunne ikke endre navn på {oldName} til {name}.", - "Search" : "Søk", "Loading …" : "Laster ...", "Merge {name} with person" : "Slå sammen {name} med person", - "Are you sure you want to merge {name} with {newName}?" : "Er du sikker på at du vil slå sammen {name} med {newName}?", "Too many failures, aborting" : "For mange feil, abort", "Error while moving {basename}" : "Feil under flytting av {basename}", "Failed to move {name}." : "Kunne ikke flytte {name}.", @@ -146,7 +141,6 @@ OC.L10N.register( "Sort by name" : "Sorter etter navn", "Share album" : "Del album", "Download album" : "Last ned album", - "Delete album" : "Slett album", "Merge with different person" : "Slå sammen med en annen person", "Mark person in preview" : "Merk person i forhåndsvisning", "Folder View" : "Mappevisning", @@ -159,7 +153,6 @@ OC.L10N.register( "Unsaved changes" : "Ulagrede endringer", "Drop changes" : "Slipp endringer", "Share" : "Del", - "Sidebar" : "Sidefelt", "Download Video" : "Last ned video", "Slideshow" : "Lysbildefremvisning", "Previous" : "Forrige", @@ -168,7 +161,6 @@ OC.L10N.register( "Save as" : "Lagre som", "All changes will be lost." : "Alle endringer vil gå tapt.", "Are you sure you want to continue?" : "Er du sikker på at du vil fortsette?", - "Continue" : "Fortsett", "Undo" : "Angre", "Redo" : "Gjør om", "Show original image" : "Vis originalbilde", @@ -262,7 +254,6 @@ OC.L10N.register( "Failed to download files" : "Kunne ikke laste ned filer", "Failed to favorite files." : "Kunne ikke velge favorittfiler.", "Failed to favorite some files." : "Kunne ikke favoritt noen filer.", - "Failed to favorite {fileName}." : "Kunne ikke favoritt {fileName}.", - "Your Timeline" : "Din tidslinje" + "Failed to favorite {fileName}." : "Kunne ikke favoritt {fileName}." }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/nb.json b/l10n/nb.json index eff37c56..fda72117 100644 --- a/l10n/nb.json +++ b/l10n/nb.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Last ned", "Memories" : "Minner", "Fast, modern and advanced photo management suite" : "Rask, moderne og avansert bildebehandlingspakke", "Settings" : "Innstillinger", @@ -19,7 +20,6 @@ "Recognize" : "Gjenkjenn", "A better photos experience awaits you" : "En bedre bildeopplevelse venter på deg", "Choose the root folder of your timeline to begin" : "Velg rotmappen til tidslinjen for å begynne", - "If you just installed Memories, run:" : "Hvis du nettopp har installert Minner, kjør:", "Continue to Memories" : "Fortsett til Minner", "Choose again" : "Velg igjen", "Click here to start" : "Klikk her for å starte", @@ -27,29 +27,28 @@ "Choose the root of your timeline" : "Velg roten til tidslinjen", "The selected folder does not seem to be valid. Try again." : "Den valgte mappen ser ikke ut til å være gyldig. Prøv igjen.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Fant {n} element i {path}","Fant {n} elementer i {path}"], + "Metadata" : "Metadata", "Edit" : "Rediger", - "No title" : "Ingen tittel", - "No description" : "Ingen beskrivelse", "Explore" : "Utforsk", "Cancel" : "Avbryt", "Delete" : "Slett", "Remove from album" : "Fjern fra album", - "Download" : "Last ned", "Favorite" : "Favoritt", "Unarchive" : "Dearkivere", "View in folder" : "Vis i mappe", "Move to folder" : "Flytt til mappe", "Add to album" : "Legg til i album", "Remove from person" : "Fjern fra person", - "You are about to download a large number of files. Are you sure?" : "Du er i ferd med å laste ned et stort antall filer. Er du sikker?", - "You are about to delete a large number of files. Are you sure?" : "Du er i ferd med å slette et stort antall filer. Er du sikker?", - "You are about to touch a large number of files. Are you sure?" : "Du er i ferd med å berøre et stort antall filer. Er du sikker?", + "Continue" : "Fortsett", + "Move" : "Flytt", "_{n} selected_::_{n} selected_" : ["{n} valgt","{n} valgt"], "Memories Settings" : "Minner-innstillinger", "General" : "Generell", "Timeline Path" : "Tidslinjebane", "Square grid mode" : "Firkantet rutenettmodus", "Show past photos on top of timeline" : "Vis tidligere bilder øverst på tidslinjen", + "Viewer" : "Fremviser", + "Account" : "Konto", "Folders Path" : "Mappebane", "Show hidden folders" : "Vis skjulte mapper", "Choose Timeline Paths" : "Velg tidslinjebaner", @@ -58,7 +57,7 @@ "Failed to load some photos" : "Kunne ikke laste inn noen bilder", "Performance" : "Ytelse", "Unknown" : "Ukjent", - "_{n} item added to album_::_{n} items added to album_" : ["{n} element lagt til album","{n} elementer lagt til i albumet"], + "No items" : "Ingen gjenstander", "Add people or groups who can edit your album" : "Legg til personer eller grupper som kan redigere albumet ditt", "Search for collaborators" : "Søk etter samarbeidspartnere", "Search people or groups" : "Søk etter personer eller grupper", @@ -89,12 +88,10 @@ "Back to the new album form." : "Tilbake til albumskjemaet.", "Save" : "Lagre", "Create album" : "Lag album", - "Add selection to album {albumName}" : "Legg til utvalg i albumet {albumName}", - "Create a new album." : "Opprett et nytt album.", - "_%n item_::_%n items_" : ["%n element","%nelementer"], - "_Share with %n user_::_Share with %n users_" : ["Del med %n bruker","Del med %n brukere"], + "Search" : "Søk", "Share Album" : "Del album", "Save collaborators for this album." : "Lagre samarbeidspartnere for dette albumet.", + "_%n item_::_%n items_" : ["%n element","%nelementer"], "Newest" : "Nyeste", "Year" : "År", "Month" : "Måned", @@ -118,10 +115,8 @@ "Name" : "Navn", "Update" : "Oppdater", "Failed to rename {oldName} to {name}." : "Kunne ikke endre navn på {oldName} til {name}.", - "Search" : "Søk", "Loading …" : "Laster ...", "Merge {name} with person" : "Slå sammen {name} med person", - "Are you sure you want to merge {name} with {newName}?" : "Er du sikker på at du vil slå sammen {name} med {newName}?", "Too many failures, aborting" : "For mange feil, abort", "Error while moving {basename}" : "Feil under flytting av {basename}", "Failed to move {name}." : "Kunne ikke flytte {name}.", @@ -144,7 +139,6 @@ "Sort by name" : "Sorter etter navn", "Share album" : "Del album", "Download album" : "Last ned album", - "Delete album" : "Slett album", "Merge with different person" : "Slå sammen med en annen person", "Mark person in preview" : "Merk person i forhåndsvisning", "Folder View" : "Mappevisning", @@ -157,7 +151,6 @@ "Unsaved changes" : "Ulagrede endringer", "Drop changes" : "Slipp endringer", "Share" : "Del", - "Sidebar" : "Sidefelt", "Download Video" : "Last ned video", "Slideshow" : "Lysbildefremvisning", "Previous" : "Forrige", @@ -166,7 +159,6 @@ "Save as" : "Lagre som", "All changes will be lost." : "Alle endringer vil gå tapt.", "Are you sure you want to continue?" : "Er du sikker på at du vil fortsette?", - "Continue" : "Fortsett", "Undo" : "Angre", "Redo" : "Gjør om", "Show original image" : "Vis originalbilde", @@ -260,7 +252,6 @@ "Failed to download files" : "Kunne ikke laste ned filer", "Failed to favorite files." : "Kunne ikke velge favorittfiler.", "Failed to favorite some files." : "Kunne ikke favoritt noen filer.", - "Failed to favorite {fileName}." : "Kunne ikke favoritt {fileName}.", - "Your Timeline" : "Din tidslinje" + "Failed to favorite {fileName}." : "Kunne ikke favoritt {fileName}." },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/nl.js b/l10n/nl.js index ee517a9f..5e69b029 100644 --- a/l10n/nl.js +++ b/l10n/nl.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Download", "Memories" : "Herinneringen", "Fast, modern and advanced photo management suite" : "Snelle, moderne en geavanceerde suite voor fotobeheer", "Settings" : "Instellingen", @@ -14,33 +15,37 @@ OC.L10N.register( "Archive" : "Archief", "On this day" : "Vandaag", "Tags" : "Tags", + "Recognize" : "Recognize", "A better photos experience awaits you" : "Een betere foto-ervaring wacht op je", "Choose the root folder of your timeline to begin" : "Kies de hoofdmap van je tijdlijn om te beginnen", - "If you just installed Memories, run:" : "Als je Herinneringen net hebt geïnstalleerd, voer je het volgende uit:", "Continue to Memories" : "Doorgaan naar Herinneringen", "Choose again" : "Opnieuw kiezen", "Click here to start" : "Klik hier om te beginnen", "You can always change this later in settings" : "Je kunt dit later altijd nog wijzigen in de instellingen", "Choose the root of your timeline" : "Kies de hoofdmap van je tijdlijn", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} items gevonden in {path}","{n} items gevonden in {path}"], + "Metadata" : "Metadata", "Edit" : "Bewerk", - "No title" : "Geen titel", - "No description" : "Geen beschrijving", "Explore" : "Verkennen", "Cancel" : "Annuleren", "Delete" : "Verwijder", "Remove from album" : "Verwijderen uit album", - "Download" : "Download", "Favorite" : "Favoriet", "Unarchive" : "Terugzetten uit archief", "View in folder" : "Bekijken in map", "Move to folder" : "Verplaatsen naar map", "Add to album" : "Toevoegen aan album", + "Continue" : "Doorgaan", + "Move" : "Verplaatsen", "General" : "Algemeen", + "Viewer" : "Viewer", + "Account" : "Account", "Close" : "Sluit", "Performance" : "Prestaties", "Unknown" : "Onbekend", - "_{n} item added to album_::_{n} items added to album_" : ["{n} items toegevoegd aan album","{n} items toegevoegd aan album"], + "Template" : "Sjabloon", + "No items" : "Geen items", + "Shared by {user}" : "Gedeeld door {user}", "Add people or groups who can edit your album" : "Voeg mensen of groepen toe die je album kunnen bewerken", "Search for collaborators" : "Zoeken naar bijdragers", "Search people or groups" : "Zoek mensen of groepen", @@ -71,9 +76,8 @@ OC.L10N.register( "Back to the new album form." : "Terug naar het formulier voor nieuw album.", "Save" : "Opslaan", "Create album" : "Maak album", - "Add selection to album {albumName}" : "Selectie toevoegen aan album {albumName}", - "Create a new album." : "Maak een nieuw album.", - "_Share with %n user_::_Share with %n users_" : ["Delen met %n gebruiker","Delen met %n gebruikers"], + "Search" : "Zoeken", + "Save changes" : "Wijzigingen opslaan", "Save collaborators for this album." : "Bewaar bijdragers voor dit album.", "Year" : "Jaar", "Month" : "Maand", @@ -94,7 +98,6 @@ OC.L10N.register( "Rename person" : "Hernoem persoon", "Name" : "Naam", "Update" : "Update", - "Search" : "Zoeken", "Loading …" : "Laden …", "Remove" : "Verwijderen", "You cannot share the root folder" : "Je kunt de hoofdmap niet delen", @@ -109,21 +112,18 @@ OC.L10N.register( "Sort by name" : "Sorteren op naam", "Share album" : "Album delen", "Download album" : "Album downloaden", - "Delete album" : "Album verwijderen", "Merge with different person" : "Samenvoegen met ander persoon", "Folder View" : "Mapweergave", "Timeline View" : "Tijdlijnweergave", "Share folder" : "Map delen", "Unsaved changes" : "Niet opgeslagen veranderingen", "Share" : "Delen", - "Sidebar" : "Zijbalk", "Slideshow" : "Diavoorstelling", "Previous" : "Vorige", "Next" : "Volgende", "Are you sure you want to delete?" : "Weet je zeker dat je wilt verwijderen?", "All changes will be lost." : "Alle aanpassingen zullen verloren gaan.", "Are you sure you want to continue?" : "Weet je zeker dat je wilt doorgaan?", - "Continue" : "Doorgaan", "Undo" : "Ongedaan maken", "Redo" : "Opnieuw doen", "Show original image" : "Toon originele afbeelding", @@ -178,6 +178,7 @@ OC.L10N.register( "Failed to create {albumName}." : "Het maken van {albumName} is mislukt.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Hernoemen van {currentAlbumName} naar {newAlbumName} mislukt.", "Failed to delete {fileName}." : "Verwijderen van {fileName} mislukt.", - "Your Timeline" : "Je tijdlijn" + "Yes" : "Ja", + "No" : "Nee" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/nl.json b/l10n/nl.json index 5d2a5676..9199f618 100644 --- a/l10n/nl.json +++ b/l10n/nl.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Download", "Memories" : "Herinneringen", "Fast, modern and advanced photo management suite" : "Snelle, moderne en geavanceerde suite voor fotobeheer", "Settings" : "Instellingen", @@ -12,33 +13,37 @@ "Archive" : "Archief", "On this day" : "Vandaag", "Tags" : "Tags", + "Recognize" : "Recognize", "A better photos experience awaits you" : "Een betere foto-ervaring wacht op je", "Choose the root folder of your timeline to begin" : "Kies de hoofdmap van je tijdlijn om te beginnen", - "If you just installed Memories, run:" : "Als je Herinneringen net hebt geïnstalleerd, voer je het volgende uit:", "Continue to Memories" : "Doorgaan naar Herinneringen", "Choose again" : "Opnieuw kiezen", "Click here to start" : "Klik hier om te beginnen", "You can always change this later in settings" : "Je kunt dit later altijd nog wijzigen in de instellingen", "Choose the root of your timeline" : "Kies de hoofdmap van je tijdlijn", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{n} items gevonden in {path}","{n} items gevonden in {path}"], + "Metadata" : "Metadata", "Edit" : "Bewerk", - "No title" : "Geen titel", - "No description" : "Geen beschrijving", "Explore" : "Verkennen", "Cancel" : "Annuleren", "Delete" : "Verwijder", "Remove from album" : "Verwijderen uit album", - "Download" : "Download", "Favorite" : "Favoriet", "Unarchive" : "Terugzetten uit archief", "View in folder" : "Bekijken in map", "Move to folder" : "Verplaatsen naar map", "Add to album" : "Toevoegen aan album", + "Continue" : "Doorgaan", + "Move" : "Verplaatsen", "General" : "Algemeen", + "Viewer" : "Viewer", + "Account" : "Account", "Close" : "Sluit", "Performance" : "Prestaties", "Unknown" : "Onbekend", - "_{n} item added to album_::_{n} items added to album_" : ["{n} items toegevoegd aan album","{n} items toegevoegd aan album"], + "Template" : "Sjabloon", + "No items" : "Geen items", + "Shared by {user}" : "Gedeeld door {user}", "Add people or groups who can edit your album" : "Voeg mensen of groepen toe die je album kunnen bewerken", "Search for collaborators" : "Zoeken naar bijdragers", "Search people or groups" : "Zoek mensen of groepen", @@ -69,9 +74,8 @@ "Back to the new album form." : "Terug naar het formulier voor nieuw album.", "Save" : "Opslaan", "Create album" : "Maak album", - "Add selection to album {albumName}" : "Selectie toevoegen aan album {albumName}", - "Create a new album." : "Maak een nieuw album.", - "_Share with %n user_::_Share with %n users_" : ["Delen met %n gebruiker","Delen met %n gebruikers"], + "Search" : "Zoeken", + "Save changes" : "Wijzigingen opslaan", "Save collaborators for this album." : "Bewaar bijdragers voor dit album.", "Year" : "Jaar", "Month" : "Maand", @@ -92,7 +96,6 @@ "Rename person" : "Hernoem persoon", "Name" : "Naam", "Update" : "Update", - "Search" : "Zoeken", "Loading …" : "Laden …", "Remove" : "Verwijderen", "You cannot share the root folder" : "Je kunt de hoofdmap niet delen", @@ -107,21 +110,18 @@ "Sort by name" : "Sorteren op naam", "Share album" : "Album delen", "Download album" : "Album downloaden", - "Delete album" : "Album verwijderen", "Merge with different person" : "Samenvoegen met ander persoon", "Folder View" : "Mapweergave", "Timeline View" : "Tijdlijnweergave", "Share folder" : "Map delen", "Unsaved changes" : "Niet opgeslagen veranderingen", "Share" : "Delen", - "Sidebar" : "Zijbalk", "Slideshow" : "Diavoorstelling", "Previous" : "Vorige", "Next" : "Volgende", "Are you sure you want to delete?" : "Weet je zeker dat je wilt verwijderen?", "All changes will be lost." : "Alle aanpassingen zullen verloren gaan.", "Are you sure you want to continue?" : "Weet je zeker dat je wilt doorgaan?", - "Continue" : "Doorgaan", "Undo" : "Ongedaan maken", "Redo" : "Opnieuw doen", "Show original image" : "Toon originele afbeelding", @@ -176,6 +176,7 @@ "Failed to create {albumName}." : "Het maken van {albumName} is mislukt.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Hernoemen van {currentAlbumName} naar {newAlbumName} mislukt.", "Failed to delete {fileName}." : "Verwijderen van {fileName} mislukt.", - "Your Timeline" : "Je tijdlijn" + "Yes" : "Ja", + "No" : "Nee" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/nn_NO.js b/l10n/nn_NO.js index 9418e88d..c4945a77 100644 --- a/l10n/nn_NO.js +++ b/l10n/nn_NO.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Last ned", "Settings" : "Innstillingar", "Info" : "Info", "Favorites" : "Favorittar", @@ -10,13 +11,15 @@ OC.L10N.register( "Photos" : "Foto", "Cancel" : "Avbryt", "Delete" : "Slett", - "Download" : "Last ned", "Favorite" : "Favoritt", + "Continue" : "Gå vidare", + "Move" : "Move", "General" : "Generelt", "Close" : "Lat att", "Unknown" : "Ukjend", "Back" : "Tilbake", "Save" : "Lagre", + "Search" : "Søk", "Year" : "År", "Month" : "Månad", "Day" : "Dag", @@ -26,7 +29,6 @@ OC.L10N.register( "Description" : "Skildring", "Name" : "Namn", "Update" : "Oppdater", - "Search" : "Søk", "Remove" : "Fjern", "Share link" : "Del lenkje", "Refresh" : "Last inn på nytt", @@ -36,7 +38,6 @@ OC.L10N.register( "Share" : "Del", "Previous" : "Førre", "Next" : "Neste", - "Continue" : "Gå vidare", "Value" : "Verdi", "Size" : "Storleik" }, diff --git a/l10n/nn_NO.json b/l10n/nn_NO.json index 7f34ca39..11fd0eba 100644 --- a/l10n/nn_NO.json +++ b/l10n/nn_NO.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Last ned", "Settings" : "Innstillingar", "Info" : "Info", "Favorites" : "Favorittar", @@ -8,13 +9,15 @@ "Photos" : "Foto", "Cancel" : "Avbryt", "Delete" : "Slett", - "Download" : "Last ned", "Favorite" : "Favoritt", + "Continue" : "Gå vidare", + "Move" : "Move", "General" : "Generelt", "Close" : "Lat att", "Unknown" : "Ukjend", "Back" : "Tilbake", "Save" : "Lagre", + "Search" : "Søk", "Year" : "År", "Month" : "Månad", "Day" : "Dag", @@ -24,7 +27,6 @@ "Description" : "Skildring", "Name" : "Namn", "Update" : "Oppdater", - "Search" : "Søk", "Remove" : "Fjern", "Share link" : "Del lenkje", "Refresh" : "Last inn på nytt", @@ -34,7 +36,6 @@ "Share" : "Del", "Previous" : "Førre", "Next" : "Neste", - "Continue" : "Gå vidare", "Value" : "Verdi", "Size" : "Storleik" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/l10n/oc.js b/l10n/oc.js index 6170714a..5b020d4a 100644 --- a/l10n/oc.js +++ b/l10n/oc.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Telecargar", "Settings" : "Paramètres", "People" : "Gent", "Info" : "Info", @@ -10,20 +11,26 @@ OC.L10N.register( "Archive" : "Archiu", "Tags" : "Etiquetas", "Recognize" : "Reconéisser", + "Metadata" : "Metadonadas", "Edit" : "Modificar", "Explore" : "Explorar", "Cancel" : "Anullar", "Delete" : "Suprimir", - "Download" : "Telecargar", "Favorite" : "Favorit", "View in folder" : "Veire dins lo dossièr", + "Continue" : "Contunhar", + "Move" : "Desplaçar", "General" : "Generals", + "Viewer" : "Visualizaira", + "Account" : "Compte", "Close" : "Tampar", "Unknown" : "Desconegut", "Copy public link" : "Copiar lo ligam public", "Public link" : "Ligam public", "Back" : "Retorn", "Save" : "Enregistrar", + "Search" : "Recercar", + "Save changes" : "Salvar modificacions", "Year" : "Annada", "Month" : "Mes", "Day" : "Jorn", @@ -36,7 +43,6 @@ OC.L10N.register( "Reset" : "Reïnicializar", "Name" : "Nom", "Update" : "Actualizar", - "Search" : "Recercar", "Loading …" : "Cargament…", "Remove" : "Suprimir", "Share link" : "Partejar lo ligam", @@ -49,7 +55,6 @@ OC.L10N.register( "Share" : "Partejar", "Previous" : "Precedent", "Next" : "Seguent", - "Continue" : "Contunhar", "Undo" : "Desfar", "Redo" : "Refar", "Custom" : "Personalizar", @@ -59,6 +64,8 @@ OC.L10N.register( "Text" : "Tèxt", "Size" : "Talha", "Position" : "Posicion", - "Extension" : "Extension" + "Extension" : "Extension", + "Yes" : "Òc", + "No" : "Non" }, "nplurals=2; plural=(n > 1);"); diff --git a/l10n/oc.json b/l10n/oc.json index 3645ef70..1581dcb1 100644 --- a/l10n/oc.json +++ b/l10n/oc.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Telecargar", "Settings" : "Paramètres", "People" : "Gent", "Info" : "Info", @@ -8,20 +9,26 @@ "Archive" : "Archiu", "Tags" : "Etiquetas", "Recognize" : "Reconéisser", + "Metadata" : "Metadonadas", "Edit" : "Modificar", "Explore" : "Explorar", "Cancel" : "Anullar", "Delete" : "Suprimir", - "Download" : "Telecargar", "Favorite" : "Favorit", "View in folder" : "Veire dins lo dossièr", + "Continue" : "Contunhar", + "Move" : "Desplaçar", "General" : "Generals", + "Viewer" : "Visualizaira", + "Account" : "Compte", "Close" : "Tampar", "Unknown" : "Desconegut", "Copy public link" : "Copiar lo ligam public", "Public link" : "Ligam public", "Back" : "Retorn", "Save" : "Enregistrar", + "Search" : "Recercar", + "Save changes" : "Salvar modificacions", "Year" : "Annada", "Month" : "Mes", "Day" : "Jorn", @@ -34,7 +41,6 @@ "Reset" : "Reïnicializar", "Name" : "Nom", "Update" : "Actualizar", - "Search" : "Recercar", "Loading …" : "Cargament…", "Remove" : "Suprimir", "Share link" : "Partejar lo ligam", @@ -47,7 +53,6 @@ "Share" : "Partejar", "Previous" : "Precedent", "Next" : "Seguent", - "Continue" : "Contunhar", "Undo" : "Desfar", "Redo" : "Refar", "Custom" : "Personalizar", @@ -57,6 +62,8 @@ "Text" : "Tèxt", "Size" : "Talha", "Position" : "Posicion", - "Extension" : "Extension" + "Extension" : "Extension", + "Yes" : "Òc", + "No" : "Non" },"pluralForm" :"nplurals=2; plural=(n > 1);" } \ No newline at end of file diff --git a/l10n/pl.js b/l10n/pl.js index 52336b87..7560e3ad 100644 --- a/l10n/pl.js +++ b/l10n/pl.js @@ -1,9 +1,13 @@ OC.L10N.register( "memories", { + "Download" : "Pobierz", "Memories" : "Wspomnienia", + "Fast, modern and advanced photo management suite" : "Szybkie, nowoczesne i zaawansowane zarządzanie zdjęciami", "Settings" : "Ustawienia", + "People (Recognize)" : "Ludzie (Rozpoznaj)", "People" : "Osoby", + "People (Face Recognition)" : "Ludzie (Face Recognition)", "Info" : "Informacje", "Timeline" : "Oś czasu", "Folders" : "Katalogi", @@ -15,27 +19,81 @@ OC.L10N.register( "Places" : "Miejsca", "Map" : "Mapa", "Tags" : "Etykiety", + "View all" : "Zobacz wszystkie", "Recognize" : "Rozpoznaj", + "Face Recognition" : "Rozpoznawanie Twarzy", + "A better photos experience awaits you" : "Lepsze doświadczenia ze zdjęciami czekają na Ciebie", + "Choose the root folder of your timeline to begin" : "Aby rozpocząć, wybierz katalog źródłowy dla twojej osi czasu", + "Continue to Memories" : "Kontynuuj do Wspomnień", + "Choose again" : "Wybierz ponownie", + "Click here to start" : "Kliknij tutaj aby rozpocząć", + "Choose the root of your timeline" : "Wybierz ścieżkę źródłową dla twojej osi czasu", + "The selected folder does not seem to be valid. Try again." : "Wybrany katalog nie wydaje się być prawidłowy. Spróbuj ponownie.", + "No photos were found in the selected folder." : "Nie znaleziono zdjęć w wybranym katalogu.", + "This can happen because your media is still indexing." : "To może się stać jeśli twoje pliki są jeszcze indeksowane.", + "Metadata" : "Metadane", "Edit" : "Edytuj", + "No coordinates" : "Brak współrzędnych", + "Click edit to set location" : "Kliknij edycję aby ustawić lokalizację", + "Photos" : "Zdjęcia", "Explore" : "Przeglądaj", "Cancel" : "Anuluj", "Delete" : "Usuń", - "Download" : "Pobierz", + "Remove from album" : "Usuń z albumu", "Favorite" : "Ulubiony", "Unarchive" : "Nie archiwizuj", + "Edit metadata" : "Edytuj metadane", "View in folder" : "Zobacz w katalogu", + "Move to folder" : "Przenieś do katalogu", "Add to album" : "Dodaj do albumu", - "You are about to download a large number of files. Are you sure?" : "Zamierzasz pobrać dużą liczbę plików. Jesteś pewny?", - "You are about to delete a large number of files. Are you sure?" : "Zamierzasz usunąć dużą liczbę plików. Jesteś pewny?", - "You are about to touch a large number of files. Are you sure?" : "Zamierzasz przeglądać dużą ilość plików. Jesteś pewny?", + "Move to person" : "Przenieś do osoby", + "Remove from person" : "Usuń z osoby", + "Continue" : "Kontynuuj", + "Failed to delete files" : "Nie udało się usunąć plików", + "Move" : "Przenieś", + "You must enable \"Mark person in preview\" to use this feature" : "Musisz włączyć \"Zaznacz osobę w podglądzie\" aby skorzystać z tej funkcji", + "Only user \"{user}\" can update this person" : "Tylko użytkownik \"{user}\" może zaktualizować tą osobę", "_{n} selected_::_{n} selected_" : ["{n} wybrana","{n} wybrane","{n} wybranych","{n} wybranych"], + "Memories Settings" : "Ustawienia Wspomnień", "General" : "Ogólne", "Timeline Path" : "Ścieżka osi czasu", + "Square grid mode" : "Tryb kwadratowej siatki", + "Show past photos on top of timeline" : "Pokaż zdjęcia z przeszłości na górze osi czasu", + "Viewer" : "Przeglądarka", + "Load full size image on zoom" : "Wczytaj zdjęcia w pełnym rozmiarze przy powiększaniu", + "Always load full size image (not recommended)" : "Zawsze wczytuj zdjęcia w pełnym rozmiarze (nie zalecane)", + "Account" : "Konto", + "Logged in as {user}" : "Zalogowano jako {user}", + "Sign out" : "Wyloguj się", + "Device Folders" : "Katalogi urządzenia", + "Local folders to include in the timeline view" : "Lokalne katalogi do załączenia w osi czasu", + "Folders Path" : "Ścieżka katalogów", "Show hidden folders" : "Pokaż ukryte katalogi", + "Sort folders oldest-first" : "Sortuj katalogi, najpierw starsze", + "Sort albums oldest-first" : "Sortuj albumy, najpierw starsze", + "Choose Timeline Paths" : "Wybierz ścieżki osi czasu", + "Choose the root for the folders view" : "Wybierz ścieżkę źródłową dla widoku katalogów", + "Are you sure you want to log out {user}?" : "Czy na pewno chcesz wylogować {user}?", "Close" : "Zamknij", + "{photoCount} photos" : "{photoCount} zdjęć", "Failed to load some photos" : "Nie udało się załadować niektórych zdjęć", + "Failed to update setting" : "Nie udało się zapisać ustawień", + "EXIF Extraction" : "Ekstrakcja danych EXIF", + "Documentation." : "Dokumentacja.", + "File Support" : "Wsparcie plików", + "Images (JPEG, PNG, GIF, BMP)" : "Obrazy (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Filmy (ffmpeg)", + "{n} media files have been indexed" : "zindeksowane {n} plików", + "Media Indexing" : "Indeksowanie plików", + "HTTPS is enabled" : "HTTPS włączone", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 albo HTTP/3 włączone", "Performance" : "Wydajność", "Unknown" : "Nieznany", + "Template" : "Szablon", + "No items" : "Brak elementu", + "Shared by {user}" : "Udostępnione przez {user}", "Add people or groups who can edit your album" : "Dodaj osoby lub grupy, które mogą edytować Twój album", "Search for collaborators" : "Szukaj współpracowników", "Search people or groups" : "Wyszukaj osoby lub grupy", @@ -54,6 +112,10 @@ OC.L10N.register( "Create new album" : "Utwórz nowy album", "Edit album details" : "Edytuj szczegóły albumu", "New album" : "Nowy album", + "Could not load the selected album" : "Nie udało się wczytać wybranego albumu", + "Remove Album" : "Usuń album", + "Are you sure you want to permanently remove album \"{name}\"?" : "Czy na pewno chcesz permanentnie usunąć album \"{name}\"?", + "Failed to delete {name}." : "Nie udało się usunąć {name}.", "Name of the album" : "Nazwa albumu", "Location of the album" : "Lokalizacja albumu", "Go back to the previous view." : "Wróć do poprzedniego widoku.", @@ -63,9 +125,12 @@ OC.L10N.register( "Back to the new album form." : "Powrót do nowej formy albumu.", "Save" : "Zapisz", "Create album" : "Utwórz album", - "Add selection to album {albumName}" : "Dodaj wybór do albumu {albumName}", - "Create a new album." : "Utwórz nowy album.", + "Invalid album name; should not contain any slashes." : "Nieprawidłowa nazwa albumu; nie powinna zawierać ukośników.", + "Search" : "Szukaj", + "Save changes" : "Zapisz zmiany", + "Share Album" : "Udostępnij album", "Save collaborators for this album." : "Zapisywanie współpracowników dla tego albumu.", + "shared by {owner}" : "udostępniony przez {owner}", "Newest" : "Najnowsza", "Year" : "Rok", "Month" : "Miesiąc", @@ -74,43 +139,103 @@ OC.L10N.register( "Hour" : "Godzina", "Minute" : "Minuta", "Oldest" : "Najstarsza", + "Invalid Date" : "Nieprawidłowa data", + "Newest date is older than oldest date" : "Nowsza data jest starsza niż starsza data", "Title" : "Tytuł", "Description" : "Opis", "Label" : "Etykieta", + "Camera Make" : "Producent aparatu", + "Camera Model" : "Model aparatu", + "Lens Model" : "Model soczewki", "Copyright" : "Prawa autorskie", "Empty" : "Pusty", + "Unchanged" : "Brak zmian", "Reset" : "Resetuj", + "Remove location" : "Usuń lokalizację", + "Search location / landmark" : "Wyszukaj lokalizację / punkt", + "Failed to search for location with Nominatim." : "Nie udało się znaleźć lokalizacji za pomocą Nominatim.", + "Date / Time" : "Data / Czas", + "Collaborative Tags" : "Wspólne tagi", + "EXIF Fields" : "Pola EXIF", + "Geolocation" : "Geolokalizacja", + "Failed to load metadata for {n} photos." : "Nie udało się wczytać metadanych dla {n} zdjęć.", + "{n} photos cannot be edited (permissions error)." : "{n} zdjęć nie może być edytowanych (brak uprawnień).", "Remove person" : "Usuń osobę", + "Are you sure you want to remove {name}?" : "Czy na pewno chcesz usunąć {name}?", + "Only user \"{user}\" can delete this person" : "Tylko użytkownik \"{user}\" może usunąć tą osobę", "Rename person" : "Zmień nazwę osoby", "Name" : "Nazwa", "Update" : "Aktualizuj", - "Search" : "Szukaj", + "Failed to rename {oldName} to {name}." : "Nie udało się zmienić nazwy {oldName} na {name}.", "Loading …" : "Wczytywanie…", + "Enter name of the new face" : "Wprowadź nazwę nowej twarzy", + "Failed to create face" : "Nie udało się utworzyć twarzy", + "Merge {name} with person" : "Scal {name} z osobą", + "Too many failures, aborting" : "Zbyt wiele niepowodzeń, przerywanie", + "Error while moving {basename}" : "Błędy w trakcie przenoszenie {basename}", + "Failed to move {name}." : "Nie udało się usunąć {name}.", + "Move selected photos to person" : "Przenieś wybrane zdjęcia do osoby", + "Move the selected photos to {target}?" : "Przenieść wybrane zdjęcia do {target}?", + "An error occurred while moving photos from {name}." : "Pojawił się błąd podczas przenoszenia zdjęć z {name}.", + "Choose a folder" : "Wybierz katalog", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["Przeniesiono obiekt do katalogu","{n} obiektów przeniesiono do katalogu","{n} obiektów przeniesiono do katalogu","{n} obiektów przeniesiono do katalogu"], "Remove" : "Usuń", + "Add Path" : "Dodaj ścieżkę", + "Add a root to your timeline" : "Dodaj ścieżkę źródłową do swojej osi czasu", + "Link Sharing" : "Udostępnianie linkiem", + "You cannot share the root folder" : "Nie możesz udostępnić katalogu źródłowego.", + "Public link shares are available to people outside Nextcloud." : "Linki publiczne są dostępne dla ludzi spoza Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "Możesz stworzyć lub zaktualizować uprawnienia publicznych linków w panelu bocznym.", + "Click a link to copy to clipboard." : "Kliknij link aby skopiować do schowka.", "Share link" : "Udostępnij link", "Create Link" : "Utwórz link", "Refresh" : "Odśwież", "Password protected" : "Zabezpieczone hasłem", "Expires" : "Wygasa", + "Editable" : "Edytowalny", "Read only" : "Tylko do odczytu", "Link copied to clipboard" : "Link skopiowany do schowka", + "Share File" : "Udostępnij plik", + "Reduced Size" : "Zmniejszony rozmiar", + "Share a lower resolution image preview" : "Udostępnij podgląd w mniejszej rozdzielczości", + "High Resolution" : "Wysoka rozdzielczość", + "Share the video as a high quality MOV" : "Udostępnij film w wysokiej jakości MOV", + "Share the image as a high quality JPEG" : "Udostępnij zdjęcie w wysokiej jakości JPEG", + "Original File" : "Oryginalny plik", + "Share the original image / video file" : "Udostępnij oryginalny plik z obrazem / filmem", + "Public Link" : "Link publiczny", + "Share an external Nextcloud link" : "Udostępnij zewnętrzny link Nextcloud", + "Failed to download file" : "Nie udało się pobrać plik", + "Cannot share this type of data" : "Nie można udostępnić tego typu danych", "Sort by date" : "Sortuj według daty", "Sort by name" : "Sortuj według nazwy", - "Delete album" : "Usuń album", + "Share album" : "Udostępnij album", + "Download album" : "Pobierz album", + "Nothing to show here" : "Nie ma nic do pokazania", + "Unassigned faces" : "Nieprzypisane twarze", "Merge with different person" : "Połącz z inną osobą", + "Mark person in preview" : "Zaznacz osobę w podglądzie", + "Folder View" : "Widok katalogu", + "Timeline View" : "Widok osi czasu", "Share folder" : "Udostępnij katalog", + "Move left" : "Przenieś w lewo", + "Move right" : "Przenieś w prawo", + "Image saved successfully" : "Obraz zapisany pomyślnie", "Error saving image" : "Błąd podczas zapisywania obrazu", "Unsaved changes" : "Niezapisane zmiany", "Drop changes" : "Odrzuć zmiany", "Share" : "Udostępnij", - "Sidebar" : "Pasek boczny", + "Play Live Photo" : "Odtwórz Live Photo", + "Download Video" : "Pobierz film", + "Slideshow" : "Pokaz slajdów", "Previous" : "Poprzednie", "Next" : "Następna", + "Editing is currently disabled for Live Photos" : "Edytowanie Live Photo jest obecnie niedostępne", "Are you sure you want to delete?" : "Czy na pewno chcesz usunąć?", + "Failed to delete photo" : "Nie udało się usunąć zdjęcia", "Save as" : "Zapisz jako", "All changes will be lost." : "Wszystkie zmiany zostaną utracone.", "Are you sure you want to continue?" : "Jesteś pewien, że chcesz kontynuować?", - "Continue" : "Kontynuuj", "Undo" : "Cofnij", "Redo" : "Powtórz", "Show original image" : "Pokaż oryginalny obraz", @@ -192,12 +317,32 @@ OC.L10N.register( "Fit size" : "Dopasuj rozmiar", "Direct" : "Bezpośredni", "Auto" : "Automatycznie", + "Shared Folder" : "Udostępniony katalog", + "Shared Album" : "Udostępniony album", "Failed to create {albumName}." : "Nie udało się utworzyć {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Nie udało się zmienić nazwy {currentAlbumName} na {newAlbumName}.", "General Failure" : "Ogólna awaria", "Error: {msg}" : "Błąd: {msg}", "Failed to delete {fileName}." : "Nie udało się usunąć {fileName}.", + "Failed to move files." : "Nie udało się przenieść plików.", + "Could not move {fileName}, target exists." : "Nie udało się przenieść {fileName}, docelowa ścieżka już istnieje.", + "Failed to move {fileName}." : "Nie udało się przenieść {fileName}.", + "Failed to download files" : "Nie udało się pobrać plików", "Failed to favorite files." : "Nie udało się znaleźć ulubionych plików.", - "Failed to favorite {fileName}." : "Nie udało się dodać do ulubionych {fileName}." + "Failed to favorite some files." : "Nie udało się dodać kilku plików do ulubionych.", + "Failed to favorite {fileName}." : "Nie udało się dodać do ulubionych {fileName}.", + "Upload some photos and make sure the timeline path is configured" : "Wgraj kilka zdjęć i upewnij się, że ścieżka osi czasu jest ustawiona", + "Mark photos as favorite to find them easily" : "Oznacz zdjęcia jako ulubione, aby łatwo je znaleźć", + "Memories from past years will appear here" : "Wspomnienia z przeszłych lat pojawią się tutaj", + "You will find your friends soon. Please be patient" : "Wkrótce znajdziesz swoich przyjaciół. Proszę bądź cierpliwy.", + "Your videos will appear here" : "Twoje filmy pojawią się tutaj", + "No photos in this album yet" : "W tym albumie nie ma zdjęć", + "Create an album to get started" : "Aby rozpocząć utwórz album", + "Archive photos you don't want to see in your timeline" : "Archiwizuj zdjęcia, których nie chcesz widzieć na swojej osi czasu", + "Tag photos to find them easily" : "Oznacz zdjęcia, aby łatwo je odnajdywać", + "Recognize is still working on your photos" : "Aplikacja Rozpoznaj wciąż pracuje nad twoimi zdjęciami", + "Places you have been to will appear here" : "Odwiedzone miejsca pokażą się tutaj", + "Yes" : "Tak", + "No" : "Nie" }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/l10n/pl.json b/l10n/pl.json index dfad0e2c..b7cd7df1 100644 --- a/l10n/pl.json +++ b/l10n/pl.json @@ -1,7 +1,11 @@ { "translations": { + "Download" : "Pobierz", "Memories" : "Wspomnienia", + "Fast, modern and advanced photo management suite" : "Szybkie, nowoczesne i zaawansowane zarządzanie zdjęciami", "Settings" : "Ustawienia", + "People (Recognize)" : "Ludzie (Rozpoznaj)", "People" : "Osoby", + "People (Face Recognition)" : "Ludzie (Face Recognition)", "Info" : "Informacje", "Timeline" : "Oś czasu", "Folders" : "Katalogi", @@ -13,27 +17,81 @@ "Places" : "Miejsca", "Map" : "Mapa", "Tags" : "Etykiety", + "View all" : "Zobacz wszystkie", "Recognize" : "Rozpoznaj", + "Face Recognition" : "Rozpoznawanie Twarzy", + "A better photos experience awaits you" : "Lepsze doświadczenia ze zdjęciami czekają na Ciebie", + "Choose the root folder of your timeline to begin" : "Aby rozpocząć, wybierz katalog źródłowy dla twojej osi czasu", + "Continue to Memories" : "Kontynuuj do Wspomnień", + "Choose again" : "Wybierz ponownie", + "Click here to start" : "Kliknij tutaj aby rozpocząć", + "Choose the root of your timeline" : "Wybierz ścieżkę źródłową dla twojej osi czasu", + "The selected folder does not seem to be valid. Try again." : "Wybrany katalog nie wydaje się być prawidłowy. Spróbuj ponownie.", + "No photos were found in the selected folder." : "Nie znaleziono zdjęć w wybranym katalogu.", + "This can happen because your media is still indexing." : "To może się stać jeśli twoje pliki są jeszcze indeksowane.", + "Metadata" : "Metadane", "Edit" : "Edytuj", + "No coordinates" : "Brak współrzędnych", + "Click edit to set location" : "Kliknij edycję aby ustawić lokalizację", + "Photos" : "Zdjęcia", "Explore" : "Przeglądaj", "Cancel" : "Anuluj", "Delete" : "Usuń", - "Download" : "Pobierz", + "Remove from album" : "Usuń z albumu", "Favorite" : "Ulubiony", "Unarchive" : "Nie archiwizuj", + "Edit metadata" : "Edytuj metadane", "View in folder" : "Zobacz w katalogu", + "Move to folder" : "Przenieś do katalogu", "Add to album" : "Dodaj do albumu", - "You are about to download a large number of files. Are you sure?" : "Zamierzasz pobrać dużą liczbę plików. Jesteś pewny?", - "You are about to delete a large number of files. Are you sure?" : "Zamierzasz usunąć dużą liczbę plików. Jesteś pewny?", - "You are about to touch a large number of files. Are you sure?" : "Zamierzasz przeglądać dużą ilość plików. Jesteś pewny?", + "Move to person" : "Przenieś do osoby", + "Remove from person" : "Usuń z osoby", + "Continue" : "Kontynuuj", + "Failed to delete files" : "Nie udało się usunąć plików", + "Move" : "Przenieś", + "You must enable \"Mark person in preview\" to use this feature" : "Musisz włączyć \"Zaznacz osobę w podglądzie\" aby skorzystać z tej funkcji", + "Only user \"{user}\" can update this person" : "Tylko użytkownik \"{user}\" może zaktualizować tą osobę", "_{n} selected_::_{n} selected_" : ["{n} wybrana","{n} wybrane","{n} wybranych","{n} wybranych"], + "Memories Settings" : "Ustawienia Wspomnień", "General" : "Ogólne", "Timeline Path" : "Ścieżka osi czasu", + "Square grid mode" : "Tryb kwadratowej siatki", + "Show past photos on top of timeline" : "Pokaż zdjęcia z przeszłości na górze osi czasu", + "Viewer" : "Przeglądarka", + "Load full size image on zoom" : "Wczytaj zdjęcia w pełnym rozmiarze przy powiększaniu", + "Always load full size image (not recommended)" : "Zawsze wczytuj zdjęcia w pełnym rozmiarze (nie zalecane)", + "Account" : "Konto", + "Logged in as {user}" : "Zalogowano jako {user}", + "Sign out" : "Wyloguj się", + "Device Folders" : "Katalogi urządzenia", + "Local folders to include in the timeline view" : "Lokalne katalogi do załączenia w osi czasu", + "Folders Path" : "Ścieżka katalogów", "Show hidden folders" : "Pokaż ukryte katalogi", + "Sort folders oldest-first" : "Sortuj katalogi, najpierw starsze", + "Sort albums oldest-first" : "Sortuj albumy, najpierw starsze", + "Choose Timeline Paths" : "Wybierz ścieżki osi czasu", + "Choose the root for the folders view" : "Wybierz ścieżkę źródłową dla widoku katalogów", + "Are you sure you want to log out {user}?" : "Czy na pewno chcesz wylogować {user}?", "Close" : "Zamknij", + "{photoCount} photos" : "{photoCount} zdjęć", "Failed to load some photos" : "Nie udało się załadować niektórych zdjęć", + "Failed to update setting" : "Nie udało się zapisać ustawień", + "EXIF Extraction" : "Ekstrakcja danych EXIF", + "Documentation." : "Dokumentacja.", + "File Support" : "Wsparcie plików", + "Images (JPEG, PNG, GIF, BMP)" : "Obrazy (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Filmy (ffmpeg)", + "{n} media files have been indexed" : "zindeksowane {n} plików", + "Media Indexing" : "Indeksowanie plików", + "HTTPS is enabled" : "HTTPS włączone", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 albo HTTP/3 włączone", "Performance" : "Wydajność", "Unknown" : "Nieznany", + "Template" : "Szablon", + "No items" : "Brak elementu", + "Shared by {user}" : "Udostępnione przez {user}", "Add people or groups who can edit your album" : "Dodaj osoby lub grupy, które mogą edytować Twój album", "Search for collaborators" : "Szukaj współpracowników", "Search people or groups" : "Wyszukaj osoby lub grupy", @@ -52,6 +110,10 @@ "Create new album" : "Utwórz nowy album", "Edit album details" : "Edytuj szczegóły albumu", "New album" : "Nowy album", + "Could not load the selected album" : "Nie udało się wczytać wybranego albumu", + "Remove Album" : "Usuń album", + "Are you sure you want to permanently remove album \"{name}\"?" : "Czy na pewno chcesz permanentnie usunąć album \"{name}\"?", + "Failed to delete {name}." : "Nie udało się usunąć {name}.", "Name of the album" : "Nazwa albumu", "Location of the album" : "Lokalizacja albumu", "Go back to the previous view." : "Wróć do poprzedniego widoku.", @@ -61,9 +123,12 @@ "Back to the new album form." : "Powrót do nowej formy albumu.", "Save" : "Zapisz", "Create album" : "Utwórz album", - "Add selection to album {albumName}" : "Dodaj wybór do albumu {albumName}", - "Create a new album." : "Utwórz nowy album.", + "Invalid album name; should not contain any slashes." : "Nieprawidłowa nazwa albumu; nie powinna zawierać ukośników.", + "Search" : "Szukaj", + "Save changes" : "Zapisz zmiany", + "Share Album" : "Udostępnij album", "Save collaborators for this album." : "Zapisywanie współpracowników dla tego albumu.", + "shared by {owner}" : "udostępniony przez {owner}", "Newest" : "Najnowsza", "Year" : "Rok", "Month" : "Miesiąc", @@ -72,43 +137,103 @@ "Hour" : "Godzina", "Minute" : "Minuta", "Oldest" : "Najstarsza", + "Invalid Date" : "Nieprawidłowa data", + "Newest date is older than oldest date" : "Nowsza data jest starsza niż starsza data", "Title" : "Tytuł", "Description" : "Opis", "Label" : "Etykieta", + "Camera Make" : "Producent aparatu", + "Camera Model" : "Model aparatu", + "Lens Model" : "Model soczewki", "Copyright" : "Prawa autorskie", "Empty" : "Pusty", + "Unchanged" : "Brak zmian", "Reset" : "Resetuj", + "Remove location" : "Usuń lokalizację", + "Search location / landmark" : "Wyszukaj lokalizację / punkt", + "Failed to search for location with Nominatim." : "Nie udało się znaleźć lokalizacji za pomocą Nominatim.", + "Date / Time" : "Data / Czas", + "Collaborative Tags" : "Wspólne tagi", + "EXIF Fields" : "Pola EXIF", + "Geolocation" : "Geolokalizacja", + "Failed to load metadata for {n} photos." : "Nie udało się wczytać metadanych dla {n} zdjęć.", + "{n} photos cannot be edited (permissions error)." : "{n} zdjęć nie może być edytowanych (brak uprawnień).", "Remove person" : "Usuń osobę", + "Are you sure you want to remove {name}?" : "Czy na pewno chcesz usunąć {name}?", + "Only user \"{user}\" can delete this person" : "Tylko użytkownik \"{user}\" może usunąć tą osobę", "Rename person" : "Zmień nazwę osoby", "Name" : "Nazwa", "Update" : "Aktualizuj", - "Search" : "Szukaj", + "Failed to rename {oldName} to {name}." : "Nie udało się zmienić nazwy {oldName} na {name}.", "Loading …" : "Wczytywanie…", + "Enter name of the new face" : "Wprowadź nazwę nowej twarzy", + "Failed to create face" : "Nie udało się utworzyć twarzy", + "Merge {name} with person" : "Scal {name} z osobą", + "Too many failures, aborting" : "Zbyt wiele niepowodzeń, przerywanie", + "Error while moving {basename}" : "Błędy w trakcie przenoszenie {basename}", + "Failed to move {name}." : "Nie udało się usunąć {name}.", + "Move selected photos to person" : "Przenieś wybrane zdjęcia do osoby", + "Move the selected photos to {target}?" : "Przenieść wybrane zdjęcia do {target}?", + "An error occurred while moving photos from {name}." : "Pojawił się błąd podczas przenoszenia zdjęć z {name}.", + "Choose a folder" : "Wybierz katalog", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["Przeniesiono obiekt do katalogu","{n} obiektów przeniesiono do katalogu","{n} obiektów przeniesiono do katalogu","{n} obiektów przeniesiono do katalogu"], "Remove" : "Usuń", + "Add Path" : "Dodaj ścieżkę", + "Add a root to your timeline" : "Dodaj ścieżkę źródłową do swojej osi czasu", + "Link Sharing" : "Udostępnianie linkiem", + "You cannot share the root folder" : "Nie możesz udostępnić katalogu źródłowego.", + "Public link shares are available to people outside Nextcloud." : "Linki publiczne są dostępne dla ludzi spoza Nextcloud.", + "You may create or update permissions on public links using the sidebar." : "Możesz stworzyć lub zaktualizować uprawnienia publicznych linków w panelu bocznym.", + "Click a link to copy to clipboard." : "Kliknij link aby skopiować do schowka.", "Share link" : "Udostępnij link", "Create Link" : "Utwórz link", "Refresh" : "Odśwież", "Password protected" : "Zabezpieczone hasłem", "Expires" : "Wygasa", + "Editable" : "Edytowalny", "Read only" : "Tylko do odczytu", "Link copied to clipboard" : "Link skopiowany do schowka", + "Share File" : "Udostępnij plik", + "Reduced Size" : "Zmniejszony rozmiar", + "Share a lower resolution image preview" : "Udostępnij podgląd w mniejszej rozdzielczości", + "High Resolution" : "Wysoka rozdzielczość", + "Share the video as a high quality MOV" : "Udostępnij film w wysokiej jakości MOV", + "Share the image as a high quality JPEG" : "Udostępnij zdjęcie w wysokiej jakości JPEG", + "Original File" : "Oryginalny plik", + "Share the original image / video file" : "Udostępnij oryginalny plik z obrazem / filmem", + "Public Link" : "Link publiczny", + "Share an external Nextcloud link" : "Udostępnij zewnętrzny link Nextcloud", + "Failed to download file" : "Nie udało się pobrać plik", + "Cannot share this type of data" : "Nie można udostępnić tego typu danych", "Sort by date" : "Sortuj według daty", "Sort by name" : "Sortuj według nazwy", - "Delete album" : "Usuń album", + "Share album" : "Udostępnij album", + "Download album" : "Pobierz album", + "Nothing to show here" : "Nie ma nic do pokazania", + "Unassigned faces" : "Nieprzypisane twarze", "Merge with different person" : "Połącz z inną osobą", + "Mark person in preview" : "Zaznacz osobę w podglądzie", + "Folder View" : "Widok katalogu", + "Timeline View" : "Widok osi czasu", "Share folder" : "Udostępnij katalog", + "Move left" : "Przenieś w lewo", + "Move right" : "Przenieś w prawo", + "Image saved successfully" : "Obraz zapisany pomyślnie", "Error saving image" : "Błąd podczas zapisywania obrazu", "Unsaved changes" : "Niezapisane zmiany", "Drop changes" : "Odrzuć zmiany", "Share" : "Udostępnij", - "Sidebar" : "Pasek boczny", + "Play Live Photo" : "Odtwórz Live Photo", + "Download Video" : "Pobierz film", + "Slideshow" : "Pokaz slajdów", "Previous" : "Poprzednie", "Next" : "Następna", + "Editing is currently disabled for Live Photos" : "Edytowanie Live Photo jest obecnie niedostępne", "Are you sure you want to delete?" : "Czy na pewno chcesz usunąć?", + "Failed to delete photo" : "Nie udało się usunąć zdjęcia", "Save as" : "Zapisz jako", "All changes will be lost." : "Wszystkie zmiany zostaną utracone.", "Are you sure you want to continue?" : "Jesteś pewien, że chcesz kontynuować?", - "Continue" : "Kontynuuj", "Undo" : "Cofnij", "Redo" : "Powtórz", "Show original image" : "Pokaż oryginalny obraz", @@ -190,12 +315,32 @@ "Fit size" : "Dopasuj rozmiar", "Direct" : "Bezpośredni", "Auto" : "Automatycznie", + "Shared Folder" : "Udostępniony katalog", + "Shared Album" : "Udostępniony album", "Failed to create {albumName}." : "Nie udało się utworzyć {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Nie udało się zmienić nazwy {currentAlbumName} na {newAlbumName}.", "General Failure" : "Ogólna awaria", "Error: {msg}" : "Błąd: {msg}", "Failed to delete {fileName}." : "Nie udało się usunąć {fileName}.", + "Failed to move files." : "Nie udało się przenieść plików.", + "Could not move {fileName}, target exists." : "Nie udało się przenieść {fileName}, docelowa ścieżka już istnieje.", + "Failed to move {fileName}." : "Nie udało się przenieść {fileName}.", + "Failed to download files" : "Nie udało się pobrać plików", "Failed to favorite files." : "Nie udało się znaleźć ulubionych plików.", - "Failed to favorite {fileName}." : "Nie udało się dodać do ulubionych {fileName}." + "Failed to favorite some files." : "Nie udało się dodać kilku plików do ulubionych.", + "Failed to favorite {fileName}." : "Nie udało się dodać do ulubionych {fileName}.", + "Upload some photos and make sure the timeline path is configured" : "Wgraj kilka zdjęć i upewnij się, że ścieżka osi czasu jest ustawiona", + "Mark photos as favorite to find them easily" : "Oznacz zdjęcia jako ulubione, aby łatwo je znaleźć", + "Memories from past years will appear here" : "Wspomnienia z przeszłych lat pojawią się tutaj", + "You will find your friends soon. Please be patient" : "Wkrótce znajdziesz swoich przyjaciół. Proszę bądź cierpliwy.", + "Your videos will appear here" : "Twoje filmy pojawią się tutaj", + "No photos in this album yet" : "W tym albumie nie ma zdjęć", + "Create an album to get started" : "Aby rozpocząć utwórz album", + "Archive photos you don't want to see in your timeline" : "Archiwizuj zdjęcia, których nie chcesz widzieć na swojej osi czasu", + "Tag photos to find them easily" : "Oznacz zdjęcia, aby łatwo je odnajdywać", + "Recognize is still working on your photos" : "Aplikacja Rozpoznaj wciąż pracuje nad twoimi zdjęciami", + "Places you have been to will appear here" : "Odwiedzone miejsca pokażą się tutaj", + "Yes" : "Tak", + "No" : "Nie" },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" } \ No newline at end of file diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js index da0dd71c..ec68cbe9 100644 --- a/l10n/pt_BR.js +++ b/l10n/pt_BR.js @@ -1,8 +1,10 @@ OC.L10N.register( "memories", { + "Download" : "Baixar", "Memories" : "Memórias", "Fast, modern and advanced photo management suite" : "Conjunto de gerenciamento de fotos rápido, moderno e avançado", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memórias: Gerenciamento de fotos para Nextcloud\n\nMemórias é uma solução de gerenciamento de fotos *baterias incluídas* para Nextcloud com recursos avançados, incluindo:\n\n- **📸 Linha do tempo**: classifique fotos e vídeos por data de captura, analisados ​​a partir de dados Exif.\n- **⏪ Retroceder**: salte para qualquer momento no passado instantaneamente e reviva suas memórias.\n- **🤖 AI Etiquetas**: agrupe fotos por pessoas e objetos, usando [reconhecer](https://github.com/nextcloud/recognize) e [reconhecimento facial](https://github.com/matiasdelellis/facerecognition)..\n- **🖼️ Álbuns**: crie álbuns para agrupar fotos e vídeos. Em seguida, compartilhe esses álbuns com outras pessoas.\n- **🫱🏻‍🫲🏻 Compartilhamento Externo**: Compartilhe fotos e vídeos com pessoas fora de sua instância do Nextcloud.\n- **📱 Suporte móvel**: Trabalhe em qualquer dispositivo, de qualquer forma e tamanho por meio do aplicativo da web.\n- **✏️ Editar metadados**: Edite datas e outros metadados em fotos rapidamente e em massa\n- **📦 Arquivo**: armazene as fotos que você não deseja ver em sua linha do tempo em uma pasta separada.\n- **📹 Transcodificação de vídeo**: transcodifique vídeos e use HLS para desempenho máximo.\n- **🗺️ Mapa**: visualize suas fotos em um mapa, marcado com geocodificação reversa precisa\n- **📦 Migração**: migre facilmente do Nextcloud Photos e do Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀Instalação\n\n1. Instale o aplicativo na loja de aplicativos Nextcloud (experimente uma demonstração [aqui](https://demo.memories.gallery/apps/memories/)). 1. Execute as [etapas de configuração] recomendadas (https://memories.gallery/config/).\n1. 1. Execute `php occ memórias:index` para gerar índices de metadados para fotos existentes.\n1. Abra o 📷 app Memórias no Nextcloud e defina o diretório que contém suas fotos.", "Settings" : "Configurações", "People (Recognize)" : "Pessoas (Reconhecer)", "People" : "Pessoas", @@ -23,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "Reconhecimento facial", "A better photos experience awaits you" : "Uma melhor experiência de fotos espera por você", "Choose the root folder of your timeline to begin" : "Escolha a pasta raiz da sua linha do tempo para começar", - "If you just installed Memories, run:" : "Se você acabou de instalar o Memórias, execute:", "Continue to Memories" : "Continuar para Memórias", "Choose again" : "Escolha novamente", "Click here to start" : "Clique aqui para começar", "You can always change this later in settings" : "Você sempre pode alterar isso mais tarde nas configurações", + "If you just installed Memories, visit the admin panel first." : "Se você acabou de instalar o Memories, visite primeiro o painel de administração.", "Choose the root of your timeline" : "Escolha a raiz da sua linha do tempo", "The selected folder does not seem to be valid. Try again." : "A pasta selecionada não parece ser válida. Tente novamente.", + "No photos were found in the selected folder." : "Nenhuma foto foi encontrada na pasta selecionada.", + "This can happen because your media is still indexing." : "Isso pode acontecer porque sua mídia ainda está sendo indexada.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visite o painel de administração para garantir que as memórias estejam configuradas corretamente.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Encontrado {n} item em {path}","Encontrado {n} item em {path}","Encontrado {n} item em {path}"], + "Metadata" : "Metadado", "Edit" : "Editar", - "No title" : "Sem título", - "No description" : "Sem descrição", + "Failed to load metadata" : "Falha ao carregar metadados", "No coordinates" : "Sem coordenadas", "Click edit to set location" : "Click edit to set location", "Photos" : "Foto", @@ -41,7 +46,6 @@ OC.L10N.register( "Cancel" : "Cancelar", "Delete" : "Excluir", "Remove from album" : "Remover do album", - "Download" : "Baixar", "Favorite" : "Favorito", "Unarchive" : "Desarquivar", "Edit metadata" : "Editar metadados", @@ -50,9 +54,12 @@ OC.L10N.register( "Add to album" : "Adicionar a álbum", "Move to person" : "Move to person", "Remove from person" : "Remover da pessoa", - "You are about to download a large number of files. Are you sure?" : "Você está prestes a baixar um grande número de arquivos. Tem certeza?", - "You are about to delete a large number of files. Are you sure?" : "Você está prestes a excluir um grande número de arquivos. Tem certeza?", - "You are about to touch a large number of files. Are you sure?" : "Você está prestes a tocar em um grande número de arquivos. Tem certeza?", + "You are about to download a large number of files." : "Você está prestes a baixar um grande número de arquivos.", + "Continue" : "Continuar", + "You are about to delete a large number of files" : "Você está prestes a baixar um grande número de arquivos.", + "Failed to delete files" : "Falha ao excluir arquivos", + "Move" : "Mover", + "You are about to move a large number of files" : "Você está prestes a mover um grande número de arquivos", "You must enable \"Mark person in preview\" to use this feature" : "Você deve habilitar \"Marcar pessoa na visualização\" para usar este recurso", "Only user \"{user}\" can update this person" : "Apenas o usuário \"{user}\" pode atualizar esta pessoa", "_{n} selected_::_{n} selected_" : ["{n} selecionado","{n} selecionado","{n} selecionados"], @@ -61,31 +68,72 @@ OC.L10N.register( "Timeline Path" : "Caminho da linha do tempo", "Square grid mode" : "Modo de grade quadrada", "Show past photos on top of timeline" : "Mostrar fotos anteriores no topo da linha do tempo", + "Viewer" : "Visualizador", + "Autoplay Live Photos" : "Reprodução automática de fotos ao vivo", "Load full size image on zoom" : "Load full size image on zoom", "Always load full size image (not recommended)" : "Always load full size image (not recommended)", + "Account" : "Conta", + "Logged in as {user}" : "Conectado como {user}", + "Sign out" : "Sair", + "Device Folders" : "Pastas do Dispositivo", + "Local folders to include in the timeline view" : "Pastas locais para incluir na visualização da linha do tempo", "Folders Path" : "Caminho das pastas", "Show hidden folders" : "Mostrar pastas ocultas", "Sort folders oldest-first" : "Sort folders oldest-first", "Sort albums oldest-first" : "Sort albums oldest-first", "Choose Timeline Paths" : "Escolha os caminhos da linha do tempo", "Choose the root for the folders view" : "Escolha a raiz para a visualização de pastas", + "Are you sure you want to log out {user}?" : "Tem certeza de que deseja sair {user}?", "Close" : "Fechar", "{photoCount} photos" : "{photoCount} fotos", "Failed to load some photos" : "Falha ao carregar algumas fotos", "Failed to update setting" : "Erro ao alterar a configuração", - "EXIF Extraction" : "Extração de EXIF", + "Albums support is enabled through the Photos app." : "O suporte a álbuns é ativado por meio do aplicativo Fotos.", + "Albums are disabled because the Photos app is not available." : "Os álbuns estão desativados porque o aplicativo Fotos não está disponível.", + "Face Recognition is installed and enabled" : "O reconhecimento facial está instalado e ativado", + "Preview generator is installed and enabled. Additional configuration may still be required." : "O gerador de visualização está instalado e ativado. Configuração adicional ainda pode ser necessária.", + "Preview generator is not installed and configured. This may make Memories very slow." : "O gerador de visualização não está instalado e configurado. Isso pode tornar as memórias muito lentas.", + "Recommended Apps" : "Aplicativos recomendados", "Path to packaged exiftool binary" : "Caminho para pacote do binário exiftool", "You need perl only if the packaged exiftool binary does not work for some reason." : "Você precisa de perl apenas de a versão embarcada do binário exiftool não estiver funcionando.", "Use system perl (only if exiftool binary does not work)" : "Use o perl do sistema (apenas se o binário exiftool não funcionar)", - "Media Indexing" : "Indexação de Mídia", + "EXIF Extraction" : "Extração de EXIF", + "You can configure the enabled Nextcloud preview providers below." : "Você pode configurar os provedores de visualização do Nextcloud ativados abaixo.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Se você estiver usando o Imaginary para geração de visualização, pode ignorar esta seção.", + "To enable RAW support, install the Camera RAW Previews app." : "Para ativar o suporte RAW, instale o aplicativo Camera RAW Previews.", + "Documentation." : "Documentação.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick está disponível [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick não está disponível.", + "Image editing will not work correctly." : "A edição de imagens não funcionará corretamente.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "A geração de miniaturas pode não funcionar para alguns formatos (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "As miniaturas dos vídeos serão geradas com este binário.", + "Thumbnail generation may not work for videos." : "A geração de miniaturas pode não funcionar para vídeos.", + "The following MIME types are configured for preview generation." : "Os tipos de MIME a seguir são configurados para geração de visualização.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamanho máximo de visualização (compensação entre qualidade e requisitos de armazenamento).", + "Max memory for preview generation (MB)" : "Memória máxima para geração de visualização (MB)", + "Max size of preview files (MB)" : "Tamanho máximo dos arquivos de visualização (MB)", + "File Support" : "Suporte de Arquivo", + "Images (JPEG, PNG, GIF, BMP)" : "Imagens (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Vídeos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Obrigado por escolher Nextcloud e Memórias para armazenar seus preciosos dados!", + "Memories is very feature rich and setting it up properly can take some time." : "As memórias são muito ricas em recursos e configurá-las corretamente pode levar algum tempo.", + "If you just installed Memories, make sure you read the getting started guide:" : "Se você acabou de instalar o Memories, certifique-se de ler o guia de introdução:", + "External Link" : "Link externo", + "In case you run into any issues or bugs, you can get help through several channels." : "Caso encontre algum problema ou bug, você pode obter ajuda por meio de vários canais.", + "Memories is a completely free and open source app under active development." : "Memories é um aplicativo totalmente gratuito e de código aberto em desenvolvimento ativo.", + "You can contribute in several ways. See the project page for more details:" : "Você pode contribuir de várias maneiras. Veja a página do projeto para mais detalhes:", + "Help & Support" : "Ajuda & Suporte", "{n} media files have been indexed" : "{n} arquivos de mídia foram indexados", "Automatic Indexing status: {status}" : "Status de Indexação automática: {status}", "Last index job was run {t} seconds ago." : "Última execução de rotina de indexação há {t} segundos.", "It took {t} seconds to complete." : "Levou {t} segundos para completar.", "It is still running or was interrupted." : "Ainda está rodando ou foi interrompido.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Parece que já se passou mais de uma hora desde a execução do último trabalho de indexação. Certifique-se de que o Nextcloud cron esteja configurado corretamente.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Apenas encriptação pelo servidor (OC_DEFAULT_MODULE) é suportado, mas outro módulo de encriptação está habilitado.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Os índices EXIF são construídos e verificados periodicamente em plano de fundo. Cuidado ao selecionar algo além de indexação automática. Por exemplo, configurar a indexação apenas para pastas da timeline pode causar atrasos antes da mídia se tornar disponível para os usuários, dado que a configuração ta timeline é feita apenas após o login.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Diretórios com um arquivo \".nomedia\" são sempre excluídos da indexação.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Pastas com um arquivo \".nomedia\" ou \".nomemories\" são sempre excluídas da indexação.", "Index all media automatically (recommended)" : "Indexar toda mídia automaticamente (recomendado)", "Index per-user timeline folders (not recommended)" : "Indexar por diretório de timeline de cada usuário (não recomendado)", "Index a fixed relative path" : "Indexar usando um caminho relativo fixo", @@ -96,28 +144,29 @@ OC.L10N.register( "Force re-indexing of all files:" : "Forçar re-indexação de todos os arquivos:", "You can limit indexing by user and/or folder:" : "Você pode limitar indexação por outro usuário e/ou diretório:", "Clear all existing index tables:" : "Limpar todos os índices existentes:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Os seguintes tipos MIME estão configurados para geração de pré-visualização corretamente. Mais documentação:", - "External Link" : "Link externo", - "Performance" : "Desempenho", + "Media Indexing" : "Indexação de Mídia", "HTTPS is enabled" : "HTTPS está habilitado", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Você está acessando esta página em um contexto inseguro. Várias APIs do navegador não estão disponíveis, o que tornará as Memórias muito lentas. Habilite o HTTPS em seu servidor para melhorar o desempenho.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ou HTTP/3 está habilitado", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 ou HTTP/3 é fortemente recomendado ({httpVer} detectado)", + "Performance" : "Desempenho", "Unknown" : "Desconhecido", - "Reverse Geocoding" : "Geocodificação Reversa", "Database is populated with {n} geometries." : "Banco de dados populado com {n} geometrias.", "Geometry table has not been created." : "Tabela de geometrias não foi criada.", "Looks like the planet data is incomplete." : "Parece que os dados do planeta estão incompletos", "Reverse geocoding has not been configured ({status})." : "Geocodificação reversa não foi configurada ({status})", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memórias suporta geocodificação reversa offline usando os dados OpenStreetMaps em MySQL e Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Você precisa baixar os dados do planeta em seu banco de dados. Isso é altamente recomendado e tem baixa sobrecarga.", "If the button below does not work for importing the planet data, use the following command:" : "Se o botão abaixo não funcionar para importar dados planetários, use o seguinte comando:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: os dados geométricos são armazenados em memories_planet_geometry, sem prefixo.", "Download planet database" : "Baixar banco de dados planetário", + "Reverse Geocoding" : "Geocodificação Reversa", "Geometry support was not detected in your database" : "Suporte para geometria não foi detectado no seu banco de dados.", "MySQL-like geometry support was detected " : "Suporte de geometria MySQL detectado", "Postgres native geometry support was detected" : "Suporte de geometria nativo do Postgres detectado", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Parece que o banco de dados já foi configurado. Tem certeza que deseja baixar todos os dados planetários novamente?", "You are about to download the planet database. This may take a while." : "Você está baixando o banco de dados planetário. Isso pode levar um tempo.", "This may also cause all photos to be re-indexed!" : "Isso também pode causar com que todas as fotos sejam re-indexadas!", - "Video Streaming" : "Streaming de Vídeo", "Live transcoding provides for adaptive streaming of videos using HLS." : "Transcodificação em tempo real permite streaming de vídeo adaptativo usando HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Note que isso pode demandar bastante poder de processamento sem aceleração de hardware, e transcodificação não vai ser usada para armazenamento externo.", "Enable Transcoding" : "Habilitar Transcodificação", @@ -127,14 +176,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Auto (transcodificação adaptativa)", "Original (transcode with max quality)" : "Original (transcodificação com qualidade máxima)", "Direct (original video file without transcode)" : "Direto (arquivo de vídeo original sem transcodificação)", - "Hardware Acceleration" : "Aceleração de Hardware", + "Video Streaming" : "Streaming de Vídeo", "You must first make sure the correct drivers are installed before configuring acceleration." : "Você precisa primeiro ter certeza que os drivers corretos estão instalados antes de configurar aceleração.", "Make sure you test hardware acceleration with various options after enabling." : "Teste a aceleração de hardware com várias opções antes de habilitar.", "Do not enable multiple types of hardware acceleration simultaneously." : "Não habilite diferentes tipos de aceleração de hardware simultaneamente", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Processadores Intel suportando QuickSync Video (QSV) e algumas placas de vídeo AMD podem ser usadas para fazer transcodificação usando aceleração VA-API", "For more details on driver installation, check the documentation:" : "Para mais detalhes na instalação do driver, verifique a documentação:", "Enable acceleration with VA-API" : "Habilitar aceleração com VA-API", - "Enable low-power mode (QSV)" : "Habilitar modo de baixo-consumo (QSV)", + "Enable low-power mode (QSV only)" : "Ativar o modo de baixo consumo de energia (somente QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Placas de vídeo NVIDIA podem ser usadas para fazer a transcodificação usando o codificador NVENC com os drivers apropriados.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Dependendo da versão de SDK e ffmpeg instaladas, você precisa especificar o escalador a ser usado.", "No automated tests are available for NVIDIA acceleration." : "Não há testes automatizados para a aceleração NVIDIA", @@ -142,7 +191,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "Habilitar NVENC Temporal AQ", "NPP scaler" : "Escalador NPP", "CUDA scaler" : "Escalador CUDA", - "_{n} item added to album_::_{n} items added to album_" : ["{n} itens adicionados ao álbum","{n} itens adicionados ao álbum","{n} itens adicionados ao álbum"], + "not recommended" : "não recomendado", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Devido a um bug em certos drivers de hardware, os vídeos podem aparecer em orientações incorretas durante a transmissão. Isso pode ser resolvido em alguns casos girando o vídeo no acelerador.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Ative a opção a seguir somente se você tiver vídeos orientados incorretamente durante a reprodução.", + "Enable streaming transpose workaround" : "Ativar solução alternativa de transposição de streaming", + "HW Acceleration" : "Aceleração HW", + "VA-API device ({dev}) is readable" : "O dispositivo VA-API ({dev}) é legível", + "VA-API device ({dev}) not found" : "Dispositivo VA-API ({dev}) não encontrado", + "VA-API device ({dev}) has incorrect permissions" : "O dispositivo VA-API ({dev}) tem permissões incorretas", + "VA-API device status: {status}" : "Status do dispositivo VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memórias usam o transcodificador go-vod. Você pode executar o go-vod externamente (por exemplo, em um contêiner Docker separado para aceleração de hardware) ou usar o transcodificador integrado. Para usar um transcodificador externo, habilite a seguinte opção e siga as instruções na documentação:", + "Enable external transcoder (go-vod)" : "Ativar transcodificador externo (go-vod)", + "Binary path (local only)" : "Caminho binário (somente local)", + "Bind address (local only)" : "Endereço de ligação (somente local)", + "Connection address (same as bind if local)" : "Endereço de conexão (o mesmo que vincular se local)", + "Transcoder" : "Transcodificador", + "Template" : "Template", + "No items" : "Nenhum item", + "Shared by {user}" : "Compartilhado por {user}", + "_{n} item_::_{n} items_" : ["{n} itens","{n} itens","{n} itens"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} fotos atualizadas","{n} fotos atualizadas","{n} fotos atualizadas"], "Add people or groups who can edit your album" : "Adicione pessoas ou grupos que podem editar seu álbum", "Search for collaborators" : "Pesquisar colaboradores", "Search people or groups" : "Pesquisar pessoas ou grupos", @@ -163,6 +231,7 @@ OC.L10N.register( "New album" : "Novo álbum", "Could not load the selected album" : "Não foi possível carregar o álbum selecionado", "Remove Album" : "Remover álbum", + "Are you sure you want to permanently remove album \"{name}\"?" : "Tem certeza de que deseja remover permanentemente o álbum \"{name}\"?", "Failed to delete {name}." : "Falha ao remover {name}.", "Name of the album" : "Nome do álbum", "Location of the album" : "Localização do álbum", @@ -174,12 +243,14 @@ OC.L10N.register( "Save" : "Salvar", "Create album" : "Criar álbum", "Invalid album name; should not contain any slashes." : "Invalid album name; should not contain any slashes.", - "Add selection to album {albumName}" : "Adicionar seleção ao álbum {albumName}", - "Create a new album." : "Criar um novo álbum.", - "_%n item_::_%n items_" : ["%n item","%n itens","%n itens"], - "_Share with %n user_::_Share with %n users_" : ["Compartilhar com %n usuário","Compartilhar com %n usuários","Compartilhar com %n usuários"], + "Search" : "Pesquisar", + "Create new album." : "Criar novo álbum.", + "Save changes" : "Salvar alterações", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Removido de {n} álbuns","Removido de {n} álbuns","Removido de {n} álbuns"], "Share Album" : "Compartilhar álbum", "Save collaborators for this album." : "Salve os colaboradores deste álbum.", + "shared by {owner}" : "compartilhado por {proprietário}", + "_%n item_::_%n items_" : ["%n item","%n itens","%n itens"], "Newest" : "O mais novo", "Year" : "Ano", "Month" : "Mês", @@ -216,14 +287,19 @@ OC.L10N.register( "Name" : "Nome", "Update" : "Atualizar", "Failed to rename {oldName} to {name}." : "Falha ao renomear {oldName} para {name}.", - "Search" : "Pesquisar", "Loading …" : "Carregando …", + "Enter name of the new face" : "Digite o nome do novo rosto", + "Failed to create face" : "Falha ao criar rosto", "Merge {name} with person" : "Unir {name} com pessoa", - "Are you sure you want to merge {name} with {newName}?" : "Tem certeza que deseja unir {name} com {newName}?", + "Merge faces" : "Mesclar rostos", + "Merge {name} with {newName}?" : "Mesclar {name} com {newName}?", + "unnamed person" : "pessoa sem nome", "Too many failures, aborting" : "Abortando, falhas demais", "Error while moving {basename}" : "Erro ao mover {basename}", "Failed to move {name}." : "Falha ao mover {name}.", "Move selected photos to person" : "Mover fotos selecionadas para pessoa", + "Move the selected photos to {target}?" : "Mover as fotos selecionadas para {target}?", + "An error occurred while moving photos from {name}." : "Ocorreu um erro ao mover fotos de {name}.", "Choose a folder" : "Choose a folder", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} item moved to folder","{n} items moved to folder","{n} items moved to folder"], "Remove" : "Remover", @@ -258,10 +334,11 @@ OC.L10N.register( "Sort by name" : "Classificar por nome", "Share album" : "Compartilhar álbum", "Download album" : "Baixar álbum", - "Delete album" : "Remover álbum", "Nothing to show here" : "Nada para mostrar aqui", + "Unassigned faces" : "Rostos não identificados", "Merge with different person" : "Unir com outra pessoa", "Mark person in preview" : "Marcar pessoa na visualização", + "Unnamed person" : "Pessoa sem nome", "Folder View" : "Folder View", "Timeline View" : "Visualização da linha do tempo", "Share folder" : "Compartilhar pasta", @@ -273,17 +350,22 @@ OC.L10N.register( "Drop changes" : "Cancelar mudanças", "Share" : "Compartilhar", "Play Live Photo" : "Play Live Photo", - "Sidebar" : "Barra Lateral", "Download Video" : "Baixar video", "Slideshow" : "Apresentação de slides", "Previous" : "Anterior", "Next" : "Próxima", "Editing is currently disabled for Live Photos" : "Editing is currently disabled for Live Photos", "Are you sure you want to delete?" : "Tem certeza de que deseja excluir?", + "Failed to delete photo" : "Falha ao excluir a foto", + "{name} binary exists and is executable." : "{name} binário existe e é executável.", + "{name} binary not found." : "{name} binário não encontrado.", + "{name} binary is not executable." : "{name} binário não é executável.", + "{name} failed test: {info}." : "{name} falhou no teste: {info}.", + "{name} binary exists and is usable ({info})." : "{name} binário existe e é utilizável ({info}).", + "{name} binary status: {status}." : "{name} status binário: {status}.", "Save as" : "Salvar como", "All changes will be lost." : "Todas as mudanças serão perdidas.", "Are you sure you want to continue?" : "Tem certeza que deseja continuar?", - "Continue" : "Continuar", "Undo" : "Desfazer", "Redo" : "Refazer", "Show original image" : "Mostrar imagem original", @@ -368,6 +450,7 @@ OC.L10N.register( "Auto" : "Automático", "Shared Folder" : "Pasta Compartilhada", "Shared Album" : "Álbum compartilhado", + "Failed to remove {filename}." : "Falha ao remover {filename}.", "Failed to create {albumName}." : "Falha ao criar {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Falha ao renomear {currentAlbumName} para {newAlbumName}.", "General Failure" : "Falha Geral", @@ -380,6 +463,9 @@ OC.L10N.register( "Failed to favorite files." : "Falha nos arquivos favoritos.", "Failed to favorite some files." : "Falha ao adicionar alguns arquivos aos favoritos.", "Failed to favorite {fileName}." : "Falha ao favoritar {fileName}", + "No content-location header found" : "Nenhum cabeçalho de localização de conteúdo encontrado", + "Failed to create tag {name}: {error}" : "Falha ao criar a etiqueta {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "As memórias foram atualizadas para {version}. Recarregue para obter a nova versão.", "Upload some photos and make sure the timeline path is configured" : "Carregue algumas fotos e verifique se o caminho da linha do tempo está configurado", "Mark photos as favorite to find them easily" : "Marque as fotos como favoritas para encontrá-las facilmente", "Memories from past years will appear here" : "Memórias de anos anteriores aparecerão aqui", @@ -392,6 +478,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Marque fotos para encontrá-las facilmente", "Recognize is still working on your photos" : "O reconhecimento ainda está trabalhando em suas fotos", "Places you have been to will appear here" : "Os lugares que você visitou aparecerão aqui", - "Your Timeline" : "Sua Linha-do-Tempo" + "Yes" : "Sim", + "No" : "Não" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json index 20d3b5dd..096d1510 100644 --- a/l10n/pt_BR.json +++ b/l10n/pt_BR.json @@ -1,6 +1,8 @@ { "translations": { + "Download" : "Baixar", "Memories" : "Memórias", "Fast, modern and advanced photo management suite" : "Conjunto de gerenciamento de fotos rápido, moderno e avançado", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Memórias: Gerenciamento de fotos para Nextcloud\n\nMemórias é uma solução de gerenciamento de fotos *baterias incluídas* para Nextcloud com recursos avançados, incluindo:\n\n- **📸 Linha do tempo**: classifique fotos e vídeos por data de captura, analisados ​​a partir de dados Exif.\n- **⏪ Retroceder**: salte para qualquer momento no passado instantaneamente e reviva suas memórias.\n- **🤖 AI Etiquetas**: agrupe fotos por pessoas e objetos, usando [reconhecer](https://github.com/nextcloud/recognize) e [reconhecimento facial](https://github.com/matiasdelellis/facerecognition)..\n- **🖼️ Álbuns**: crie álbuns para agrupar fotos e vídeos. Em seguida, compartilhe esses álbuns com outras pessoas.\n- **🫱🏻‍🫲🏻 Compartilhamento Externo**: Compartilhe fotos e vídeos com pessoas fora de sua instância do Nextcloud.\n- **📱 Suporte móvel**: Trabalhe em qualquer dispositivo, de qualquer forma e tamanho por meio do aplicativo da web.\n- **✏️ Editar metadados**: Edite datas e outros metadados em fotos rapidamente e em massa\n- **📦 Arquivo**: armazene as fotos que você não deseja ver em sua linha do tempo em uma pasta separada.\n- **📹 Transcodificação de vídeo**: transcodifique vídeos e use HLS para desempenho máximo.\n- **🗺️ Mapa**: visualize suas fotos em um mapa, marcado com geocodificação reversa precisa\n- **📦 Migração**: migre facilmente do Nextcloud Photos e do Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀Instalação\n\n1. Instale o aplicativo na loja de aplicativos Nextcloud (experimente uma demonstração [aqui](https://demo.memories.gallery/apps/memories/)). 1. Execute as [etapas de configuração] recomendadas (https://memories.gallery/config/).\n1. 1. Execute `php occ memórias:index` para gerar índices de metadados para fotos existentes.\n1. Abra o 📷 app Memórias no Nextcloud e defina o diretório que contém suas fotos.", "Settings" : "Configurações", "People (Recognize)" : "Pessoas (Reconhecer)", "People" : "Pessoas", @@ -21,17 +23,20 @@ "Face Recognition" : "Reconhecimento facial", "A better photos experience awaits you" : "Uma melhor experiência de fotos espera por você", "Choose the root folder of your timeline to begin" : "Escolha a pasta raiz da sua linha do tempo para começar", - "If you just installed Memories, run:" : "Se você acabou de instalar o Memórias, execute:", "Continue to Memories" : "Continuar para Memórias", "Choose again" : "Escolha novamente", "Click here to start" : "Clique aqui para começar", "You can always change this later in settings" : "Você sempre pode alterar isso mais tarde nas configurações", + "If you just installed Memories, visit the admin panel first." : "Se você acabou de instalar o Memories, visite primeiro o painel de administração.", "Choose the root of your timeline" : "Escolha a raiz da sua linha do tempo", "The selected folder does not seem to be valid. Try again." : "A pasta selecionada não parece ser válida. Tente novamente.", + "No photos were found in the selected folder." : "Nenhuma foto foi encontrada na pasta selecionada.", + "This can happen because your media is still indexing." : "Isso pode acontecer porque sua mídia ainda está sendo indexada.", + "Visit the admin panel to make sure Memories is configured correctly." : "Visite o painel de administração para garantir que as memórias estejam configuradas corretamente.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Encontrado {n} item em {path}","Encontrado {n} item em {path}","Encontrado {n} item em {path}"], + "Metadata" : "Metadado", "Edit" : "Editar", - "No title" : "Sem título", - "No description" : "Sem descrição", + "Failed to load metadata" : "Falha ao carregar metadados", "No coordinates" : "Sem coordenadas", "Click edit to set location" : "Click edit to set location", "Photos" : "Foto", @@ -39,7 +44,6 @@ "Cancel" : "Cancelar", "Delete" : "Excluir", "Remove from album" : "Remover do album", - "Download" : "Baixar", "Favorite" : "Favorito", "Unarchive" : "Desarquivar", "Edit metadata" : "Editar metadados", @@ -48,9 +52,12 @@ "Add to album" : "Adicionar a álbum", "Move to person" : "Move to person", "Remove from person" : "Remover da pessoa", - "You are about to download a large number of files. Are you sure?" : "Você está prestes a baixar um grande número de arquivos. Tem certeza?", - "You are about to delete a large number of files. Are you sure?" : "Você está prestes a excluir um grande número de arquivos. Tem certeza?", - "You are about to touch a large number of files. Are you sure?" : "Você está prestes a tocar em um grande número de arquivos. Tem certeza?", + "You are about to download a large number of files." : "Você está prestes a baixar um grande número de arquivos.", + "Continue" : "Continuar", + "You are about to delete a large number of files" : "Você está prestes a baixar um grande número de arquivos.", + "Failed to delete files" : "Falha ao excluir arquivos", + "Move" : "Mover", + "You are about to move a large number of files" : "Você está prestes a mover um grande número de arquivos", "You must enable \"Mark person in preview\" to use this feature" : "Você deve habilitar \"Marcar pessoa na visualização\" para usar este recurso", "Only user \"{user}\" can update this person" : "Apenas o usuário \"{user}\" pode atualizar esta pessoa", "_{n} selected_::_{n} selected_" : ["{n} selecionado","{n} selecionado","{n} selecionados"], @@ -59,31 +66,72 @@ "Timeline Path" : "Caminho da linha do tempo", "Square grid mode" : "Modo de grade quadrada", "Show past photos on top of timeline" : "Mostrar fotos anteriores no topo da linha do tempo", + "Viewer" : "Visualizador", + "Autoplay Live Photos" : "Reprodução automática de fotos ao vivo", "Load full size image on zoom" : "Load full size image on zoom", "Always load full size image (not recommended)" : "Always load full size image (not recommended)", + "Account" : "Conta", + "Logged in as {user}" : "Conectado como {user}", + "Sign out" : "Sair", + "Device Folders" : "Pastas do Dispositivo", + "Local folders to include in the timeline view" : "Pastas locais para incluir na visualização da linha do tempo", "Folders Path" : "Caminho das pastas", "Show hidden folders" : "Mostrar pastas ocultas", "Sort folders oldest-first" : "Sort folders oldest-first", "Sort albums oldest-first" : "Sort albums oldest-first", "Choose Timeline Paths" : "Escolha os caminhos da linha do tempo", "Choose the root for the folders view" : "Escolha a raiz para a visualização de pastas", + "Are you sure you want to log out {user}?" : "Tem certeza de que deseja sair {user}?", "Close" : "Fechar", "{photoCount} photos" : "{photoCount} fotos", "Failed to load some photos" : "Falha ao carregar algumas fotos", "Failed to update setting" : "Erro ao alterar a configuração", - "EXIF Extraction" : "Extração de EXIF", + "Albums support is enabled through the Photos app." : "O suporte a álbuns é ativado por meio do aplicativo Fotos.", + "Albums are disabled because the Photos app is not available." : "Os álbuns estão desativados porque o aplicativo Fotos não está disponível.", + "Face Recognition is installed and enabled" : "O reconhecimento facial está instalado e ativado", + "Preview generator is installed and enabled. Additional configuration may still be required." : "O gerador de visualização está instalado e ativado. Configuração adicional ainda pode ser necessária.", + "Preview generator is not installed and configured. This may make Memories very slow." : "O gerador de visualização não está instalado e configurado. Isso pode tornar as memórias muito lentas.", + "Recommended Apps" : "Aplicativos recomendados", "Path to packaged exiftool binary" : "Caminho para pacote do binário exiftool", "You need perl only if the packaged exiftool binary does not work for some reason." : "Você precisa de perl apenas de a versão embarcada do binário exiftool não estiver funcionando.", "Use system perl (only if exiftool binary does not work)" : "Use o perl do sistema (apenas se o binário exiftool não funcionar)", - "Media Indexing" : "Indexação de Mídia", + "EXIF Extraction" : "Extração de EXIF", + "You can configure the enabled Nextcloud preview providers below." : "Você pode configurar os provedores de visualização do Nextcloud ativados abaixo.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Se você estiver usando o Imaginary para geração de visualização, pode ignorar esta seção.", + "To enable RAW support, install the Camera RAW Previews app." : "Para ativar o suporte RAW, instale o aplicativo Camera RAW Previews.", + "Documentation." : "Documentação.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick está disponível [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick não está disponível.", + "Image editing will not work correctly." : "A edição de imagens não funcionará corretamente.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "A geração de miniaturas pode não funcionar para alguns formatos (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "As miniaturas dos vídeos serão geradas com este binário.", + "Thumbnail generation may not work for videos." : "A geração de miniaturas pode não funcionar para vídeos.", + "The following MIME types are configured for preview generation." : "Os tipos de MIME a seguir são configurados para geração de visualização.", + "Max preview size (trade-off between quality and storage requirements)." : "Tamanho máximo de visualização (compensação entre qualidade e requisitos de armazenamento).", + "Max memory for preview generation (MB)" : "Memória máxima para geração de visualização (MB)", + "Max size of preview files (MB)" : "Tamanho máximo dos arquivos de visualização (MB)", + "File Support" : "Suporte de Arquivo", + "Images (JPEG, PNG, GIF, BMP)" : "Imagens (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Vídeos (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Obrigado por escolher Nextcloud e Memórias para armazenar seus preciosos dados!", + "Memories is very feature rich and setting it up properly can take some time." : "As memórias são muito ricas em recursos e configurá-las corretamente pode levar algum tempo.", + "If you just installed Memories, make sure you read the getting started guide:" : "Se você acabou de instalar o Memories, certifique-se de ler o guia de introdução:", + "External Link" : "Link externo", + "In case you run into any issues or bugs, you can get help through several channels." : "Caso encontre algum problema ou bug, você pode obter ajuda por meio de vários canais.", + "Memories is a completely free and open source app under active development." : "Memories é um aplicativo totalmente gratuito e de código aberto em desenvolvimento ativo.", + "You can contribute in several ways. See the project page for more details:" : "Você pode contribuir de várias maneiras. Veja a página do projeto para mais detalhes:", + "Help & Support" : "Ajuda & Suporte", "{n} media files have been indexed" : "{n} arquivos de mídia foram indexados", "Automatic Indexing status: {status}" : "Status de Indexação automática: {status}", "Last index job was run {t} seconds ago." : "Última execução de rotina de indexação há {t} segundos.", "It took {t} seconds to complete." : "Levou {t} segundos para completar.", "It is still running or was interrupted." : "Ainda está rodando ou foi interrompido.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Parece que já se passou mais de uma hora desde a execução do último trabalho de indexação. Certifique-se de que o Nextcloud cron esteja configurado corretamente.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Apenas encriptação pelo servidor (OC_DEFAULT_MODULE) é suportado, mas outro módulo de encriptação está habilitado.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "Os índices EXIF são construídos e verificados periodicamente em plano de fundo. Cuidado ao selecionar algo além de indexação automática. Por exemplo, configurar a indexação apenas para pastas da timeline pode causar atrasos antes da mídia se tornar disponível para os usuários, dado que a configuração ta timeline é feita apenas após o login.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Diretórios com um arquivo \".nomedia\" são sempre excluídos da indexação.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Pastas com um arquivo \".nomedia\" ou \".nomemories\" são sempre excluídas da indexação.", "Index all media automatically (recommended)" : "Indexar toda mídia automaticamente (recomendado)", "Index per-user timeline folders (not recommended)" : "Indexar por diretório de timeline de cada usuário (não recomendado)", "Index a fixed relative path" : "Indexar usando um caminho relativo fixo", @@ -94,28 +142,29 @@ "Force re-indexing of all files:" : "Forçar re-indexação de todos os arquivos:", "You can limit indexing by user and/or folder:" : "Você pode limitar indexação por outro usuário e/ou diretório:", "Clear all existing index tables:" : "Limpar todos os índices existentes:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Os seguintes tipos MIME estão configurados para geração de pré-visualização corretamente. Mais documentação:", - "External Link" : "Link externo", - "Performance" : "Desempenho", + "Media Indexing" : "Indexação de Mídia", "HTTPS is enabled" : "HTTPS está habilitado", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Você está acessando esta página em um contexto inseguro. Várias APIs do navegador não estão disponíveis, o que tornará as Memórias muito lentas. Habilite o HTTPS em seu servidor para melhorar o desempenho.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ou HTTP/3 está habilitado", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 ou HTTP/3 é fortemente recomendado ({httpVer} detectado)", + "Performance" : "Desempenho", "Unknown" : "Desconhecido", - "Reverse Geocoding" : "Geocodificação Reversa", "Database is populated with {n} geometries." : "Banco de dados populado com {n} geometrias.", "Geometry table has not been created." : "Tabela de geometrias não foi criada.", "Looks like the planet data is incomplete." : "Parece que os dados do planeta estão incompletos", "Reverse geocoding has not been configured ({status})." : "Geocodificação reversa não foi configurada ({status})", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memórias suporta geocodificação reversa offline usando os dados OpenStreetMaps em MySQL e Postgres.", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Você precisa baixar os dados do planeta em seu banco de dados. Isso é altamente recomendado e tem baixa sobrecarga.", "If the button below does not work for importing the planet data, use the following command:" : "Se o botão abaixo não funcionar para importar dados planetários, use o seguinte comando:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Nota: os dados geométricos são armazenados em memories_planet_geometry, sem prefixo.", "Download planet database" : "Baixar banco de dados planetário", + "Reverse Geocoding" : "Geocodificação Reversa", "Geometry support was not detected in your database" : "Suporte para geometria não foi detectado no seu banco de dados.", "MySQL-like geometry support was detected " : "Suporte de geometria MySQL detectado", "Postgres native geometry support was detected" : "Suporte de geometria nativo do Postgres detectado", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Parece que o banco de dados já foi configurado. Tem certeza que deseja baixar todos os dados planetários novamente?", "You are about to download the planet database. This may take a while." : "Você está baixando o banco de dados planetário. Isso pode levar um tempo.", "This may also cause all photos to be re-indexed!" : "Isso também pode causar com que todas as fotos sejam re-indexadas!", - "Video Streaming" : "Streaming de Vídeo", "Live transcoding provides for adaptive streaming of videos using HLS." : "Transcodificação em tempo real permite streaming de vídeo adaptativo usando HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Note que isso pode demandar bastante poder de processamento sem aceleração de hardware, e transcodificação não vai ser usada para armazenamento externo.", "Enable Transcoding" : "Habilitar Transcodificação", @@ -125,14 +174,14 @@ "Auto (adaptive transcode)" : "Auto (transcodificação adaptativa)", "Original (transcode with max quality)" : "Original (transcodificação com qualidade máxima)", "Direct (original video file without transcode)" : "Direto (arquivo de vídeo original sem transcodificação)", - "Hardware Acceleration" : "Aceleração de Hardware", + "Video Streaming" : "Streaming de Vídeo", "You must first make sure the correct drivers are installed before configuring acceleration." : "Você precisa primeiro ter certeza que os drivers corretos estão instalados antes de configurar aceleração.", "Make sure you test hardware acceleration with various options after enabling." : "Teste a aceleração de hardware com várias opções antes de habilitar.", "Do not enable multiple types of hardware acceleration simultaneously." : "Não habilite diferentes tipos de aceleração de hardware simultaneamente", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Processadores Intel suportando QuickSync Video (QSV) e algumas placas de vídeo AMD podem ser usadas para fazer transcodificação usando aceleração VA-API", "For more details on driver installation, check the documentation:" : "Para mais detalhes na instalação do driver, verifique a documentação:", "Enable acceleration with VA-API" : "Habilitar aceleração com VA-API", - "Enable low-power mode (QSV)" : "Habilitar modo de baixo-consumo (QSV)", + "Enable low-power mode (QSV only)" : "Ativar o modo de baixo consumo de energia (somente QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Placas de vídeo NVIDIA podem ser usadas para fazer a transcodificação usando o codificador NVENC com os drivers apropriados.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Dependendo da versão de SDK e ffmpeg instaladas, você precisa especificar o escalador a ser usado.", "No automated tests are available for NVIDIA acceleration." : "Não há testes automatizados para a aceleração NVIDIA", @@ -140,7 +189,26 @@ "Enable NVENC Temporal AQ" : "Habilitar NVENC Temporal AQ", "NPP scaler" : "Escalador NPP", "CUDA scaler" : "Escalador CUDA", - "_{n} item added to album_::_{n} items added to album_" : ["{n} itens adicionados ao álbum","{n} itens adicionados ao álbum","{n} itens adicionados ao álbum"], + "not recommended" : "não recomendado", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Devido a um bug em certos drivers de hardware, os vídeos podem aparecer em orientações incorretas durante a transmissão. Isso pode ser resolvido em alguns casos girando o vídeo no acelerador.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Ative a opção a seguir somente se você tiver vídeos orientados incorretamente durante a reprodução.", + "Enable streaming transpose workaround" : "Ativar solução alternativa de transposição de streaming", + "HW Acceleration" : "Aceleração HW", + "VA-API device ({dev}) is readable" : "O dispositivo VA-API ({dev}) é legível", + "VA-API device ({dev}) not found" : "Dispositivo VA-API ({dev}) não encontrado", + "VA-API device ({dev}) has incorrect permissions" : "O dispositivo VA-API ({dev}) tem permissões incorretas", + "VA-API device status: {status}" : "Status do dispositivo VA-API: {status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memórias usam o transcodificador go-vod. Você pode executar o go-vod externamente (por exemplo, em um contêiner Docker separado para aceleração de hardware) ou usar o transcodificador integrado. Para usar um transcodificador externo, habilite a seguinte opção e siga as instruções na documentação:", + "Enable external transcoder (go-vod)" : "Ativar transcodificador externo (go-vod)", + "Binary path (local only)" : "Caminho binário (somente local)", + "Bind address (local only)" : "Endereço de ligação (somente local)", + "Connection address (same as bind if local)" : "Endereço de conexão (o mesmo que vincular se local)", + "Transcoder" : "Transcodificador", + "Template" : "Template", + "No items" : "Nenhum item", + "Shared by {user}" : "Compartilhado por {user}", + "_{n} item_::_{n} items_" : ["{n} itens","{n} itens","{n} itens"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} fotos atualizadas","{n} fotos atualizadas","{n} fotos atualizadas"], "Add people or groups who can edit your album" : "Adicione pessoas ou grupos que podem editar seu álbum", "Search for collaborators" : "Pesquisar colaboradores", "Search people or groups" : "Pesquisar pessoas ou grupos", @@ -161,6 +229,7 @@ "New album" : "Novo álbum", "Could not load the selected album" : "Não foi possível carregar o álbum selecionado", "Remove Album" : "Remover álbum", + "Are you sure you want to permanently remove album \"{name}\"?" : "Tem certeza de que deseja remover permanentemente o álbum \"{name}\"?", "Failed to delete {name}." : "Falha ao remover {name}.", "Name of the album" : "Nome do álbum", "Location of the album" : "Localização do álbum", @@ -172,12 +241,14 @@ "Save" : "Salvar", "Create album" : "Criar álbum", "Invalid album name; should not contain any slashes." : "Invalid album name; should not contain any slashes.", - "Add selection to album {albumName}" : "Adicionar seleção ao álbum {albumName}", - "Create a new album." : "Criar um novo álbum.", - "_%n item_::_%n items_" : ["%n item","%n itens","%n itens"], - "_Share with %n user_::_Share with %n users_" : ["Compartilhar com %n usuário","Compartilhar com %n usuários","Compartilhar com %n usuários"], + "Search" : "Pesquisar", + "Create new album." : "Criar novo álbum.", + "Save changes" : "Salvar alterações", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Removido de {n} álbuns","Removido de {n} álbuns","Removido de {n} álbuns"], "Share Album" : "Compartilhar álbum", "Save collaborators for this album." : "Salve os colaboradores deste álbum.", + "shared by {owner}" : "compartilhado por {proprietário}", + "_%n item_::_%n items_" : ["%n item","%n itens","%n itens"], "Newest" : "O mais novo", "Year" : "Ano", "Month" : "Mês", @@ -214,14 +285,19 @@ "Name" : "Nome", "Update" : "Atualizar", "Failed to rename {oldName} to {name}." : "Falha ao renomear {oldName} para {name}.", - "Search" : "Pesquisar", "Loading …" : "Carregando …", + "Enter name of the new face" : "Digite o nome do novo rosto", + "Failed to create face" : "Falha ao criar rosto", "Merge {name} with person" : "Unir {name} com pessoa", - "Are you sure you want to merge {name} with {newName}?" : "Tem certeza que deseja unir {name} com {newName}?", + "Merge faces" : "Mesclar rostos", + "Merge {name} with {newName}?" : "Mesclar {name} com {newName}?", + "unnamed person" : "pessoa sem nome", "Too many failures, aborting" : "Abortando, falhas demais", "Error while moving {basename}" : "Erro ao mover {basename}", "Failed to move {name}." : "Falha ao mover {name}.", "Move selected photos to person" : "Mover fotos selecionadas para pessoa", + "Move the selected photos to {target}?" : "Mover as fotos selecionadas para {target}?", + "An error occurred while moving photos from {name}." : "Ocorreu um erro ao mover fotos de {name}.", "Choose a folder" : "Choose a folder", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} item moved to folder","{n} items moved to folder","{n} items moved to folder"], "Remove" : "Remover", @@ -256,10 +332,11 @@ "Sort by name" : "Classificar por nome", "Share album" : "Compartilhar álbum", "Download album" : "Baixar álbum", - "Delete album" : "Remover álbum", "Nothing to show here" : "Nada para mostrar aqui", + "Unassigned faces" : "Rostos não identificados", "Merge with different person" : "Unir com outra pessoa", "Mark person in preview" : "Marcar pessoa na visualização", + "Unnamed person" : "Pessoa sem nome", "Folder View" : "Folder View", "Timeline View" : "Visualização da linha do tempo", "Share folder" : "Compartilhar pasta", @@ -271,17 +348,22 @@ "Drop changes" : "Cancelar mudanças", "Share" : "Compartilhar", "Play Live Photo" : "Play Live Photo", - "Sidebar" : "Barra Lateral", "Download Video" : "Baixar video", "Slideshow" : "Apresentação de slides", "Previous" : "Anterior", "Next" : "Próxima", "Editing is currently disabled for Live Photos" : "Editing is currently disabled for Live Photos", "Are you sure you want to delete?" : "Tem certeza de que deseja excluir?", + "Failed to delete photo" : "Falha ao excluir a foto", + "{name} binary exists and is executable." : "{name} binário existe e é executável.", + "{name} binary not found." : "{name} binário não encontrado.", + "{name} binary is not executable." : "{name} binário não é executável.", + "{name} failed test: {info}." : "{name} falhou no teste: {info}.", + "{name} binary exists and is usable ({info})." : "{name} binário existe e é utilizável ({info}).", + "{name} binary status: {status}." : "{name} status binário: {status}.", "Save as" : "Salvar como", "All changes will be lost." : "Todas as mudanças serão perdidas.", "Are you sure you want to continue?" : "Tem certeza que deseja continuar?", - "Continue" : "Continuar", "Undo" : "Desfazer", "Redo" : "Refazer", "Show original image" : "Mostrar imagem original", @@ -366,6 +448,7 @@ "Auto" : "Automático", "Shared Folder" : "Pasta Compartilhada", "Shared Album" : "Álbum compartilhado", + "Failed to remove {filename}." : "Falha ao remover {filename}.", "Failed to create {albumName}." : "Falha ao criar {albumName}.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Falha ao renomear {currentAlbumName} para {newAlbumName}.", "General Failure" : "Falha Geral", @@ -378,6 +461,9 @@ "Failed to favorite files." : "Falha nos arquivos favoritos.", "Failed to favorite some files." : "Falha ao adicionar alguns arquivos aos favoritos.", "Failed to favorite {fileName}." : "Falha ao favoritar {fileName}", + "No content-location header found" : "Nenhum cabeçalho de localização de conteúdo encontrado", + "Failed to create tag {name}: {error}" : "Falha ao criar a etiqueta {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "As memórias foram atualizadas para {version}. Recarregue para obter a nova versão.", "Upload some photos and make sure the timeline path is configured" : "Carregue algumas fotos e verifique se o caminho da linha do tempo está configurado", "Mark photos as favorite to find them easily" : "Marque as fotos como favoritas para encontrá-las facilmente", "Memories from past years will appear here" : "Memórias de anos anteriores aparecerão aqui", @@ -390,6 +476,7 @@ "Tag photos to find them easily" : "Marque fotos para encontrá-las facilmente", "Recognize is still working on your photos" : "O reconhecimento ainda está trabalhando em suas fotos", "Places you have been to will appear here" : "Os lugares que você visitou aparecerão aqui", - "Your Timeline" : "Sua Linha-do-Tempo" + "Yes" : "Sim", + "No" : "Não" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" } \ No newline at end of file diff --git a/l10n/pt_PT.js b/l10n/pt_PT.js index bb9e015b..06ea1248 100644 --- a/l10n/pt_PT.js +++ b/l10n/pt_PT.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Transferir", "Memories" : "Memories", "Settings" : "Definições", "Info" : "Informação", @@ -11,18 +12,20 @@ OC.L10N.register( "Archive" : "Arquivar", "Tags" : "Etiquetas", "Recognize" : "Reconhecer", + "Metadata" : "Metadados", "Edit" : "Editar", "Photos" : "Fotos", "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Transferir", "Favorite" : "Favorito", "View in folder" : "Ver na pasta", - "You are about to download a large number of files. Are you sure?" : "Estás prestes a transferir um grande número de ficheiros. Tem a certeza?", - "You are about to delete a large number of files. Are you sure?" : "Estás prestes a eliminar um grande número de ficheiros. Tem a certeza?", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "Geral", "Timeline Path" : "Caminho da Cronologia", + "Viewer" : "Visualizador", + "Account" : "Conta", "Show hidden folders" : "Mostrar pastas ocultas", "Close" : "Fechar", "Failed to load some photos" : "Não foi possível carregar algumas fotografias", @@ -31,6 +34,7 @@ OC.L10N.register( "Public link" : "Hiperligação Pública", "Back" : "Anterior", "Save" : "Guardar", + "Search" : "Pesquisa sobre", "Month" : "Mês", "Day" : "Dia", "Time" : "Tempo", @@ -43,7 +47,6 @@ OC.L10N.register( "Reset" : "Reiniciar", "Name" : "Nome", "Update" : "Atualizar", - "Search" : "Pesquisa sobre", "Loading …" : "A carregar...", "Remove" : "Remover", "Share link" : "Partilhar ligação", @@ -59,7 +62,6 @@ OC.L10N.register( "Share" : "Partilhar", "Previous" : "Anterior", "Next" : "Seguinte", - "Continue" : "Continuar", "Undo" : "Desfazer", "Redo" : "Repetir", "Original" : "Original", diff --git a/l10n/pt_PT.json b/l10n/pt_PT.json index d5f5a3f2..8908f3c9 100644 --- a/l10n/pt_PT.json +++ b/l10n/pt_PT.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Transferir", "Memories" : "Memories", "Settings" : "Definições", "Info" : "Informação", @@ -9,18 +10,20 @@ "Archive" : "Arquivar", "Tags" : "Etiquetas", "Recognize" : "Reconhecer", + "Metadata" : "Metadados", "Edit" : "Editar", "Photos" : "Fotos", "Explore" : "Explorar", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "Download" : "Transferir", "Favorite" : "Favorito", "View in folder" : "Ver na pasta", - "You are about to download a large number of files. Are you sure?" : "Estás prestes a transferir um grande número de ficheiros. Tem a certeza?", - "You are about to delete a large number of files. Are you sure?" : "Estás prestes a eliminar um grande número de ficheiros. Tem a certeza?", + "Continue" : "Continuar", + "Move" : "Mover", "General" : "Geral", "Timeline Path" : "Caminho da Cronologia", + "Viewer" : "Visualizador", + "Account" : "Conta", "Show hidden folders" : "Mostrar pastas ocultas", "Close" : "Fechar", "Failed to load some photos" : "Não foi possível carregar algumas fotografias", @@ -29,6 +32,7 @@ "Public link" : "Hiperligação Pública", "Back" : "Anterior", "Save" : "Guardar", + "Search" : "Pesquisa sobre", "Month" : "Mês", "Day" : "Dia", "Time" : "Tempo", @@ -41,7 +45,6 @@ "Reset" : "Reiniciar", "Name" : "Nome", "Update" : "Atualizar", - "Search" : "Pesquisa sobre", "Loading …" : "A carregar...", "Remove" : "Remover", "Share link" : "Partilhar ligação", @@ -57,7 +60,6 @@ "Share" : "Partilhar", "Previous" : "Anterior", "Next" : "Seguinte", - "Continue" : "Continuar", "Undo" : "Desfazer", "Redo" : "Repetir", "Original" : "Original", diff --git a/l10n/ro.js b/l10n/ro.js index dcf3684f..08aa7f75 100644 --- a/l10n/ro.js +++ b/l10n/ro.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Descărcare", "Settings" : "Setări", "Info" : "Info", "Folders" : "Director", @@ -13,16 +14,21 @@ OC.L10N.register( "Explore" : "Explorează", "Cancel" : "Anulare", "Delete" : "Șterge", - "Download" : "Descărcare", "Favorite" : "Favorite", "View in folder" : "Vizualizează în director", + "Continue" : "Continuă", + "Move" : "Mută", "General" : "General", + "Viewer" : "Vizualizator", + "Account" : "Cont", "Close" : "Închide", "Unknown" : "Necunoscut", + "No items" : "Nu există elemente", "Copy public link" : "Copiză link-ul public", "Public link" : "Link public", "Back" : "Înapoi", "Save" : "Salvează", + "Search" : "Caută", "Year" : "An", "Month" : "Luna", "Day" : "Zi", @@ -33,7 +39,6 @@ OC.L10N.register( "Reset" : "Resetare", "Name" : "Nume", "Update" : "Actualizare", - "Search" : "Caută", "Loading …" : "Se încarcă…", "Remove" : "Elimină", "Share link" : "Partajează link-ul", @@ -47,12 +52,12 @@ OC.L10N.register( "Share" : "Partajează", "Previous" : "Precedentul", "Next" : "Următorul", - "Continue" : "Continuă", "Undo" : "Anulează ultima acțiune", "Custom" : "Particularizat", "Text" : "Text", "Size" : "Mărime", "Position" : "Poziție", - "Auto" : "Auto" + "Auto" : "Auto", + "Yes" : "Da" }, "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/l10n/ro.json b/l10n/ro.json index c8130ea1..11886155 100644 --- a/l10n/ro.json +++ b/l10n/ro.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Descărcare", "Settings" : "Setări", "Info" : "Info", "Folders" : "Director", @@ -11,16 +12,21 @@ "Explore" : "Explorează", "Cancel" : "Anulare", "Delete" : "Șterge", - "Download" : "Descărcare", "Favorite" : "Favorite", "View in folder" : "Vizualizează în director", + "Continue" : "Continuă", + "Move" : "Mută", "General" : "General", + "Viewer" : "Vizualizator", + "Account" : "Cont", "Close" : "Închide", "Unknown" : "Necunoscut", + "No items" : "Nu există elemente", "Copy public link" : "Copiză link-ul public", "Public link" : "Link public", "Back" : "Înapoi", "Save" : "Salvează", + "Search" : "Caută", "Year" : "An", "Month" : "Luna", "Day" : "Zi", @@ -31,7 +37,6 @@ "Reset" : "Resetare", "Name" : "Nume", "Update" : "Actualizare", - "Search" : "Caută", "Loading …" : "Se încarcă…", "Remove" : "Elimină", "Share link" : "Partajează link-ul", @@ -45,12 +50,12 @@ "Share" : "Partajează", "Previous" : "Precedentul", "Next" : "Următorul", - "Continue" : "Continuă", "Undo" : "Anulează ultima acțiune", "Custom" : "Particularizat", "Text" : "Text", "Size" : "Mărime", "Position" : "Poziție", - "Auto" : "Auto" + "Auto" : "Auto", + "Yes" : "Da" },"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" } \ No newline at end of file diff --git a/l10n/ru.js b/l10n/ru.js index 7590dc3a..c978c6cf 100644 --- a/l10n/ru.js +++ b/l10n/ru.js @@ -1,9 +1,12 @@ OC.L10N.register( "memories", { + "Download" : "Скачать", "Memories" : "Воспоминания", "Settings" : "Настройки", + "People (Recognize)" : "Люди (Распознавание)", "People" : "Люди", + "People (Face Recognition)" : "Люди (Распознавание лиц)", "Info" : "Информация", "Timeline" : "История", "Folders" : "Папки", @@ -15,33 +18,36 @@ OC.L10N.register( "Places" : "Места", "Map" : "Карта", "Tags" : "Метки", + "View all" : "Просмотреть все", "Recognize" : "Распознавание", + "Face Recognition" : "Распознавание лиц", + "A better photos experience awaits you" : "Вас ждут лучшие фотографии", "Choose the root folder of your timeline to begin" : "Для начала выберите корневую папку", - "If you just installed Memories, run:" : "Если вы в первый раз используете приложение «Воспоминания»:", + "Continue to Memories" : "Перейти к воспоминаниям", + "Choose again" : "Выберите еще раз", "Click here to start" : "Нажмите здесь чтобы начать", "You can always change this later in settings" : "Эти параметры могут быть позднее изменены в разделе «Настройки»", + "Metadata" : "Метаданные", "Edit" : "Редактировать", - "No title" : "Без названия", - "No description" : "Нет описания", "Photos" : "Фото", "Explore" : "Обзор", "Cancel" : "Отменить", "Delete" : "Удалить", "Remove from album" : "Удалить из альбома", - "Download" : "Скачать", "Favorite" : "В избранное", "Unarchive" : "Восстановить из архива", "View in folder" : "Посмотреть в каталоге", "Move to folder" : "Переместить в папку", "Add to album" : "Добавить в альбом", "Remove from person" : "Снять отметку лица", - "You are about to download a large number of files. Are you sure?" : "Подтвердите скачивание большого количества файлов.", - "You are about to delete a large number of files. Are you sure?" : "Подтвердите удаление большого количества файлов.", - "You are about to touch a large number of files. Are you sure?" : "Подтвердите выполнение действия для большого числа файлов.", + "Continue" : "Продолжить", + "Move" : "Переместить", "_{n} selected_::_{n} selected_" : ["Выбран: {n}","Выбрано: {n}","Выбрано: {n}","Выбрано: {n}"], "General" : "Основные", "Timeline Path" : "Расположение", "Square grid mode" : "Квадратные миниатюры", + "Viewer" : "Просмотр изображений", + "Account" : "Учётная запись", "Folders Path" : "Верхний уровень для папок", "Show hidden folders" : "Показывать скрытые файлы", "Choose Timeline Paths" : "Расположение для истории", @@ -49,6 +55,9 @@ OC.L10N.register( "Failed to load some photos" : "Не удалось загрузить некоторые фотографии", "Performance" : "Производительность", "Unknown" : "Неизвестно", + "Template" : "Шаблон", + "No items" : "Нет выбранных", + "Shared by {user}" : "Опубликовано пользователем {user} ", "Add people or groups who can edit your album" : "Добавьте пользователей или группы, которые могут редактировать альбом", "Search for collaborators" : "Поиск людей и групп для добавления в соавторы", "Search people or groups" : "Введите имя пользователя или название группы…", @@ -79,11 +88,11 @@ OC.L10N.register( "Back to the new album form." : "Вернуться к диалогу создания альбома.", "Save" : "Сохранить", "Create album" : "Создать альбом", - "Add selection to album {albumName}" : "Добавить выделенное в альбом «{albumName}»", - "Create a new album." : "Создать альбом", - "_%n item_::_%n items_" : ["%n объект","%n объекта","%n объектов","%n объекта"], + "Search" : "Поиск", + "Save changes" : "Сохранить изменения", "Share Album" : "Опубликовать альбом", "Save collaborators for this album." : "Сохранить список соавторов альбома.", + "_%n item_::_%n items_" : ["%n объект","%n объекта","%n объектов","%n объекта"], "Newest" : "Более новые", "Year" : "Год", "Month" : "Месяц", @@ -100,12 +109,12 @@ OC.L10N.register( "Copyright" : "Авторские права", "Empty" : "Пустой", "Reset" : "Сброс", + "Collaborative Tags" : "Метки совместной работы", "Remove person" : "Удалить", "Rename person" : "Переименовать", "Name" : "Имя", "Update" : "Обновить", "Failed to rename {oldName} to {name}." : "Не удалось переименовать «{oldName}» в «{name}».", - "Search" : "Поиск", "Loading …" : "Загрузка …", "Too many failures, aborting" : "Произошло множество ошибок, действие прервано", "Failed to move {name}." : "Не удалось переместить «{name}».", @@ -125,7 +134,7 @@ OC.L10N.register( "Sort by name" : "Сортировать по имени", "Share album" : "Опубликовать альбом", "Download album" : "Скачать альбом", - "Delete album" : "Удалить альбом", + "Unassigned faces" : "Неназначенные лица", "Merge with different person" : "Объединить с другой меткой", "Mark person in preview" : "Отметить человека в предварительном просмотре", "Folder View" : "Просмотр в виде папок", @@ -138,16 +147,15 @@ OC.L10N.register( "Unsaved changes" : "Несохранённые изменения", "Drop changes" : "Отменить изменения", "Share" : "Поделиться", - "Sidebar" : "Боковая панель", "Download Video" : "Скачать видео", "Slideshow" : "Слайд шоу", "Previous" : "Назад", "Next" : "Далее", "Are you sure you want to delete?" : "Вы уверены, что хотите удалить?", + "Failed to delete photo" : "Не удалось удалить фотографию", "Save as" : "Сохранить как", "All changes will be lost." : "Изменения не будут сохранены.", "Are you sure you want to continue?" : "Продолжить?", - "Continue" : "Продолжить", "Undo" : "Отменить", "Redo" : "Повторить", "Show original image" : "Показать исходное изображение", @@ -227,6 +235,7 @@ OC.L10N.register( "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Обратите внимание, что выбранная область обрезки меньше примененного изменения размера, что может привести к снижению качества", "Actual size (100%)" : "Фактический размер (100%)", "Fit size" : "По размеру окна", + "Transcoding failed, check Nextcloud logs." : "Не удалось перекодировать, проверьте журналы Nextcloud.", "Direct" : "Личное", "Auto" : "Автоматически", "Shared Folder" : "Опубликованная Папка", @@ -243,6 +252,20 @@ OC.L10N.register( "Failed to favorite files." : "Не удалось добавить файлы в избранное.", "Failed to favorite some files." : "Некоторые файлы не удалось добавить в избранное ", "Failed to favorite {fileName}." : "Не удалось добавить файл «{fileName}» в избранное.", - "Your Timeline" : "Ваша история" + "Memories has been updated to {version}. Reload to get the new version." : "Memories была обновлена до {version}. Перезагрузите, чтобы получить новую версию.", + "Upload some photos and make sure the timeline path is configured" : "Загрузите несколько фотографий и убедитесь, что путь к временной шкале настроен", + "Mark photos as favorite to find them easily" : "Отмечайте фотографии как избранные, чтобы легко их находить", + "Memories from past years will appear here" : "Здесь появятся воспоминания из прошлых лет", + "You will find your friends soon. Please be patient" : "Скоро вы найдете своих друзей. Пожалуйста, наберитесь терпения.", + "Face Recognition is disabled. Enable in settings to find your friends" : "Распознавание лиц отключено. Включите его в настройках для поиска своих друзей.", + "Your videos will appear here" : "Ваши видео появятся здесь", + "No photos in this album yet" : "Фотографий в этом альбоме пока нет", + "Create an album to get started" : "Создайте альбом, чтобы начать работу", + "Archive photos you don't want to see in your timeline" : "Архивируйте фотографии, которые вы не хотите видеть на своей временной шкале", + "Tag photos to find them easily" : "Помечайте фотографии тегами, чтобы легко их находить", + "Recognize is still working on your photos" : "Программа распознавания все еще работает с вашими фотографиями", + "Places you have been to will appear here" : "Места, где вы побывали, появятся здесь", + "Yes" : "Да", + "No" : "Нет" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/l10n/ru.json b/l10n/ru.json index 386c03ac..fb019f3b 100644 --- a/l10n/ru.json +++ b/l10n/ru.json @@ -1,7 +1,10 @@ { "translations": { + "Download" : "Скачать", "Memories" : "Воспоминания", "Settings" : "Настройки", + "People (Recognize)" : "Люди (Распознавание)", "People" : "Люди", + "People (Face Recognition)" : "Люди (Распознавание лиц)", "Info" : "Информация", "Timeline" : "История", "Folders" : "Папки", @@ -13,33 +16,36 @@ "Places" : "Места", "Map" : "Карта", "Tags" : "Метки", + "View all" : "Просмотреть все", "Recognize" : "Распознавание", + "Face Recognition" : "Распознавание лиц", + "A better photos experience awaits you" : "Вас ждут лучшие фотографии", "Choose the root folder of your timeline to begin" : "Для начала выберите корневую папку", - "If you just installed Memories, run:" : "Если вы в первый раз используете приложение «Воспоминания»:", + "Continue to Memories" : "Перейти к воспоминаниям", + "Choose again" : "Выберите еще раз", "Click here to start" : "Нажмите здесь чтобы начать", "You can always change this later in settings" : "Эти параметры могут быть позднее изменены в разделе «Настройки»", + "Metadata" : "Метаданные", "Edit" : "Редактировать", - "No title" : "Без названия", - "No description" : "Нет описания", "Photos" : "Фото", "Explore" : "Обзор", "Cancel" : "Отменить", "Delete" : "Удалить", "Remove from album" : "Удалить из альбома", - "Download" : "Скачать", "Favorite" : "В избранное", "Unarchive" : "Восстановить из архива", "View in folder" : "Посмотреть в каталоге", "Move to folder" : "Переместить в папку", "Add to album" : "Добавить в альбом", "Remove from person" : "Снять отметку лица", - "You are about to download a large number of files. Are you sure?" : "Подтвердите скачивание большого количества файлов.", - "You are about to delete a large number of files. Are you sure?" : "Подтвердите удаление большого количества файлов.", - "You are about to touch a large number of files. Are you sure?" : "Подтвердите выполнение действия для большого числа файлов.", + "Continue" : "Продолжить", + "Move" : "Переместить", "_{n} selected_::_{n} selected_" : ["Выбран: {n}","Выбрано: {n}","Выбрано: {n}","Выбрано: {n}"], "General" : "Основные", "Timeline Path" : "Расположение", "Square grid mode" : "Квадратные миниатюры", + "Viewer" : "Просмотр изображений", + "Account" : "Учётная запись", "Folders Path" : "Верхний уровень для папок", "Show hidden folders" : "Показывать скрытые файлы", "Choose Timeline Paths" : "Расположение для истории", @@ -47,6 +53,9 @@ "Failed to load some photos" : "Не удалось загрузить некоторые фотографии", "Performance" : "Производительность", "Unknown" : "Неизвестно", + "Template" : "Шаблон", + "No items" : "Нет выбранных", + "Shared by {user}" : "Опубликовано пользователем {user} ", "Add people or groups who can edit your album" : "Добавьте пользователей или группы, которые могут редактировать альбом", "Search for collaborators" : "Поиск людей и групп для добавления в соавторы", "Search people or groups" : "Введите имя пользователя или название группы…", @@ -77,11 +86,11 @@ "Back to the new album form." : "Вернуться к диалогу создания альбома.", "Save" : "Сохранить", "Create album" : "Создать альбом", - "Add selection to album {albumName}" : "Добавить выделенное в альбом «{albumName}»", - "Create a new album." : "Создать альбом", - "_%n item_::_%n items_" : ["%n объект","%n объекта","%n объектов","%n объекта"], + "Search" : "Поиск", + "Save changes" : "Сохранить изменения", "Share Album" : "Опубликовать альбом", "Save collaborators for this album." : "Сохранить список соавторов альбома.", + "_%n item_::_%n items_" : ["%n объект","%n объекта","%n объектов","%n объекта"], "Newest" : "Более новые", "Year" : "Год", "Month" : "Месяц", @@ -98,12 +107,12 @@ "Copyright" : "Авторские права", "Empty" : "Пустой", "Reset" : "Сброс", + "Collaborative Tags" : "Метки совместной работы", "Remove person" : "Удалить", "Rename person" : "Переименовать", "Name" : "Имя", "Update" : "Обновить", "Failed to rename {oldName} to {name}." : "Не удалось переименовать «{oldName}» в «{name}».", - "Search" : "Поиск", "Loading …" : "Загрузка …", "Too many failures, aborting" : "Произошло множество ошибок, действие прервано", "Failed to move {name}." : "Не удалось переместить «{name}».", @@ -123,7 +132,7 @@ "Sort by name" : "Сортировать по имени", "Share album" : "Опубликовать альбом", "Download album" : "Скачать альбом", - "Delete album" : "Удалить альбом", + "Unassigned faces" : "Неназначенные лица", "Merge with different person" : "Объединить с другой меткой", "Mark person in preview" : "Отметить человека в предварительном просмотре", "Folder View" : "Просмотр в виде папок", @@ -136,16 +145,15 @@ "Unsaved changes" : "Несохранённые изменения", "Drop changes" : "Отменить изменения", "Share" : "Поделиться", - "Sidebar" : "Боковая панель", "Download Video" : "Скачать видео", "Slideshow" : "Слайд шоу", "Previous" : "Назад", "Next" : "Далее", "Are you sure you want to delete?" : "Вы уверены, что хотите удалить?", + "Failed to delete photo" : "Не удалось удалить фотографию", "Save as" : "Сохранить как", "All changes will be lost." : "Изменения не будут сохранены.", "Are you sure you want to continue?" : "Продолжить?", - "Continue" : "Продолжить", "Undo" : "Отменить", "Redo" : "Повторить", "Show original image" : "Показать исходное изображение", @@ -225,6 +233,7 @@ "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Обратите внимание, что выбранная область обрезки меньше примененного изменения размера, что может привести к снижению качества", "Actual size (100%)" : "Фактический размер (100%)", "Fit size" : "По размеру окна", + "Transcoding failed, check Nextcloud logs." : "Не удалось перекодировать, проверьте журналы Nextcloud.", "Direct" : "Личное", "Auto" : "Автоматически", "Shared Folder" : "Опубликованная Папка", @@ -241,6 +250,20 @@ "Failed to favorite files." : "Не удалось добавить файлы в избранное.", "Failed to favorite some files." : "Некоторые файлы не удалось добавить в избранное ", "Failed to favorite {fileName}." : "Не удалось добавить файл «{fileName}» в избранное.", - "Your Timeline" : "Ваша история" + "Memories has been updated to {version}. Reload to get the new version." : "Memories была обновлена до {version}. Перезагрузите, чтобы получить новую версию.", + "Upload some photos and make sure the timeline path is configured" : "Загрузите несколько фотографий и убедитесь, что путь к временной шкале настроен", + "Mark photos as favorite to find them easily" : "Отмечайте фотографии как избранные, чтобы легко их находить", + "Memories from past years will appear here" : "Здесь появятся воспоминания из прошлых лет", + "You will find your friends soon. Please be patient" : "Скоро вы найдете своих друзей. Пожалуйста, наберитесь терпения.", + "Face Recognition is disabled. Enable in settings to find your friends" : "Распознавание лиц отключено. Включите его в настройках для поиска своих друзей.", + "Your videos will appear here" : "Ваши видео появятся здесь", + "No photos in this album yet" : "Фотографий в этом альбоме пока нет", + "Create an album to get started" : "Создайте альбом, чтобы начать работу", + "Archive photos you don't want to see in your timeline" : "Архивируйте фотографии, которые вы не хотите видеть на своей временной шкале", + "Tag photos to find them easily" : "Помечайте фотографии тегами, чтобы легко их находить", + "Recognize is still working on your photos" : "Программа распознавания все еще работает с вашими фотографиями", + "Places you have been to will appear here" : "Места, где вы побывали, появятся здесь", + "Yes" : "Да", + "No" : "Нет" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" } \ No newline at end of file diff --git a/l10n/sc.js b/l10n/sc.js index dd3cba68..c8b55af8 100644 --- a/l10n/sc.js +++ b/l10n/sc.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Iscàrriga", "Settings" : "Impostatziones", "People" : "Gente", "Info" : "Informatziones", @@ -11,22 +12,30 @@ OC.L10N.register( "Albums" : "Album", "Archive" : "Cartella", "Tags" : "Etichetas", + "Metadata" : "Metadatos", "Edit" : "Modìfica", "Photos" : "Fotos", "Explore" : "Esplorare", "Cancel" : "Annulla", "Delete" : "Cantzella", - "Download" : "Iscàrriga", "Favorite" : "Preferidu", "View in folder" : "Càstia in sa cartella", + "Continue" : "Sighi", + "Move" : "Tràmuda", "General" : "Generale", + "Viewer" : "Visualizadore", + "Account" : "Contu", "Close" : "Serra", "Performance" : "Atuatzione", "Unknown" : "Disconnotu", + "Template" : "Modellu", + "Shared by {user}" : "Cumpartzidu dae {user}", "Copy public link" : "Còpia ligòngiu pùblicu", "Public link" : "Ligòngiu pùblicu", "Back" : "In segus", "Save" : "Sarva", + "Search" : "Chirca", + "Save changes" : "Sarva càmbios", "Year" : "Annu", "Month" : "Mese", "Day" : "Die", @@ -41,7 +50,6 @@ OC.L10N.register( "Reset" : "Torra a impostare", "Name" : "Nùmene", "Update" : "Agiorna", - "Search" : "Chirca", "Loading …" : "Carrigamentu …", "Remove" : "Boga", "Share link" : "Cumpartzi ligòngiu", @@ -56,7 +64,6 @@ OC.L10N.register( "Share" : "Cumpartzidura", "Previous" : "Pretzedente", "Next" : "Imbeniente", - "Continue" : "Sighi", "Undo" : "Annulla", "Redo" : "Torra a fàghere", "Zoom in" : "Ammània", @@ -71,6 +78,8 @@ OC.L10N.register( "Name is required." : "Su nùmene est rechertu: ", "Quality" : "Calidade", "Direct" : "Deretu", - "Auto" : "Auto" + "Auto" : "Auto", + "Yes" : "Si", + "No" : "No" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/sc.json b/l10n/sc.json index babe0656..a4fb6719 100644 --- a/l10n/sc.json +++ b/l10n/sc.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Iscàrriga", "Settings" : "Impostatziones", "People" : "Gente", "Info" : "Informatziones", @@ -9,22 +10,30 @@ "Albums" : "Album", "Archive" : "Cartella", "Tags" : "Etichetas", + "Metadata" : "Metadatos", "Edit" : "Modìfica", "Photos" : "Fotos", "Explore" : "Esplorare", "Cancel" : "Annulla", "Delete" : "Cantzella", - "Download" : "Iscàrriga", "Favorite" : "Preferidu", "View in folder" : "Càstia in sa cartella", + "Continue" : "Sighi", + "Move" : "Tràmuda", "General" : "Generale", + "Viewer" : "Visualizadore", + "Account" : "Contu", "Close" : "Serra", "Performance" : "Atuatzione", "Unknown" : "Disconnotu", + "Template" : "Modellu", + "Shared by {user}" : "Cumpartzidu dae {user}", "Copy public link" : "Còpia ligòngiu pùblicu", "Public link" : "Ligòngiu pùblicu", "Back" : "In segus", "Save" : "Sarva", + "Search" : "Chirca", + "Save changes" : "Sarva càmbios", "Year" : "Annu", "Month" : "Mese", "Day" : "Die", @@ -39,7 +48,6 @@ "Reset" : "Torra a impostare", "Name" : "Nùmene", "Update" : "Agiorna", - "Search" : "Chirca", "Loading …" : "Carrigamentu …", "Remove" : "Boga", "Share link" : "Cumpartzi ligòngiu", @@ -54,7 +62,6 @@ "Share" : "Cumpartzidura", "Previous" : "Pretzedente", "Next" : "Imbeniente", - "Continue" : "Sighi", "Undo" : "Annulla", "Redo" : "Torra a fàghere", "Zoom in" : "Ammània", @@ -69,6 +76,8 @@ "Name is required." : "Su nùmene est rechertu: ", "Quality" : "Calidade", "Direct" : "Deretu", - "Auto" : "Auto" + "Auto" : "Auto", + "Yes" : "Si", + "No" : "No" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/si.js b/l10n/si.js index e6b92da5..f3ccb882 100644 --- a/l10n/si.js +++ b/l10n/si.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "බාගන්න", "Settings" : "සැකසුම්", "Info" : "තොරතුරු", "Favorites" : "ප්‍රියතම", @@ -8,13 +9,15 @@ OC.L10N.register( "Edit" : "සංස්කරණය", "Photos" : "ඡායාරූප", "Cancel" : "අවලංගු කරන්න", - "Download" : "බාගන්න", "Favorite" : "ප්‍රියතම", "View in folder" : "බහාලුමේ බලන්න", "General" : "සමාන්‍යය", + "Account" : "ගිණුම", "Close" : "වසන්න", "Back" : "ආපසු", "Save" : "සුරකින්න", + "Search" : "සොයන්න", + "Save changes" : "වෙනස්කම් සුරකින්න", "Year" : "වර්ෂය", "Month" : "මාසය", "Day" : "දිනය", @@ -24,7 +27,6 @@ OC.L10N.register( "Empty" : "හිස්", "Name" : "නම", "Update" : "යාවත්කාල", - "Search" : "සොයන්න", "Loading …" : "පූරණය වෙමින් …", "Remove" : "ඉවත් කරන්න", "Share" : "බෙදාගන්න", @@ -32,6 +34,7 @@ OC.L10N.register( "Next" : "ඊළඟ", "Undo" : "පෙරසේ", "Value" : "අගය", - "Size" : "ප්‍රමාණය" + "Size" : "ප්‍රමාණය", + "No" : "නැහැ" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/si.json b/l10n/si.json index 2c7280b2..c9c3da9d 100644 --- a/l10n/si.json +++ b/l10n/si.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "බාගන්න", "Settings" : "සැකසුම්", "Info" : "තොරතුරු", "Favorites" : "ප්‍රියතම", @@ -6,13 +7,15 @@ "Edit" : "සංස්කරණය", "Photos" : "ඡායාරූප", "Cancel" : "අවලංගු කරන්න", - "Download" : "බාගන්න", "Favorite" : "ප්‍රියතම", "View in folder" : "බහාලුමේ බලන්න", "General" : "සමාන්‍යය", + "Account" : "ගිණුම", "Close" : "වසන්න", "Back" : "ආපසු", "Save" : "සුරකින්න", + "Search" : "සොයන්න", + "Save changes" : "වෙනස්කම් සුරකින්න", "Year" : "වර්ෂය", "Month" : "මාසය", "Day" : "දිනය", @@ -22,7 +25,6 @@ "Empty" : "හිස්", "Name" : "නම", "Update" : "යාවත්කාල", - "Search" : "සොයන්න", "Loading …" : "පූරණය වෙමින් …", "Remove" : "ඉවත් කරන්න", "Share" : "බෙදාගන්න", @@ -30,6 +32,7 @@ "Next" : "ඊළඟ", "Undo" : "පෙරසේ", "Value" : "අගය", - "Size" : "ප්‍රමාණය" + "Size" : "ප්‍රමාණය", + "No" : "නැහැ" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/sk.js b/l10n/sk.js index 69a4c01e..2a2c805f 100644 --- a/l10n/sk.js +++ b/l10n/sk.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Sťahovanie", "Memories" : "Spomienky", "Settings" : "Nastavenia", "People" : "Ľudia", @@ -14,27 +15,31 @@ OC.L10N.register( "On this day" : "V tento deň", "Tags" : "Štítky", "Recognize" : "Rozpoznávanie", + "Metadata" : "Metadáta", "Edit" : "Upraviť", "Explore" : "Preskúmať", "Cancel" : "Zrušiť", "Delete" : "Vymazať", - "Download" : "Sťahovanie", "Favorite" : "Obľúbené", "Unarchive" : "Vybrať z archívu", "View in folder" : "Zobraziť v priečinku", "Add to album" : "Pridať do albumu", "Remove from person" : "Odobrať z osoby", - "You are about to download a large number of files. Are you sure?" : "Chystáte sa stiahnuť veľké množstvo súborov. Si si istý?", - "You are about to delete a large number of files. Are you sure?" : "Chystáte sa odstrániť veľké množstvo súborov. Si si istý?", - "You are about to touch a large number of files. Are you sure?" : "Chystáte sa zmeniť veľké množstvo súborov. Si si istý?", + "Continue" : "Pokračovať", + "Move" : "Presunúť", "_{n} selected_::_{n} selected_" : ["{n} vybraté","{n} vybraté","{n} vybratých","{n} vybraté"], "General" : "Všeobecné", "Timeline Path" : "Popis umiestnenia časovej osi", + "Viewer" : "Prehliadač", + "Account" : "Účet", "Show hidden folders" : "Zobraziť skryté priečinky", "Close" : "Zatvoriť", "Failed to load some photos" : "Načítanie akýchkoľvek fotiek zlyhalo", "Performance" : "Výkon", "Unknown" : "Neznámy", + "Template" : "Šablóny", + "No items" : "Žiadne položky", + "Shared by {user}" : "Zdieľa {user}", "Add people or groups who can edit your album" : "Pridať užívateľov alebo skupiny ktoré môžu upravovať váš album", "Search for collaborators" : "Vyhľadať spolupracovníkov", "Search people or groups" : "Vyhľadať užívateľov alebo skupiny", @@ -63,8 +68,8 @@ OC.L10N.register( "Back to the new album form." : "Späť na formulár pre pridanie nového albumu.", "Save" : "Uložiť", "Create album" : "Vytvoriť album", - "Add selection to album {albumName}" : "Pridať vybrané do albumu {ablumName}", - "Create a new album." : "Vytvoriť nový album.", + "Search" : "Hľadať", + "Save changes" : "Uložiť zmeny", "Save collaborators for this album." : "Uložiť spolupracovníkov pre tento album.", "Newest" : "Najnovšie", "Year" : "Rok", @@ -85,10 +90,8 @@ OC.L10N.register( "Name" : "Meno", "Update" : "Aktualizovať", "Failed to rename {oldName} to {name}." : "Nepodarilo sa premenovať {oldName} na {name}.", - "Search" : "Hľadať", "Loading …" : "Načítavam …", "Merge {name} with person" : "Zlúčiť {name} s osobou", - "Are you sure you want to merge {name} with {newName}?" : "Naozaj chcete zlúčiť {name} s {newName}?", "Too many failures, aborting" : "Príliš veľa zlyhaní, prerušujem", "Error while moving {basename}" : "Chyba pri presúvaní {basename}", "Failed to move {name}." : "Nepodarilo sa presunúť {name}.", @@ -102,21 +105,18 @@ OC.L10N.register( "Link copied to clipboard" : "Odkaz bol skopírovaný do schránky", "Sort by date" : "Zoradiť podľa dátumu", "Sort by name" : "Zoradiť podľa mena", - "Delete album" : "Zmazať album", "Merge with different person" : "Spojiť s inou osobou", "Share folder" : "Zdieľať priečinok", "Error saving image" : "Chyba pri ukladaní obrázku", "Unsaved changes" : "Neuložené zmeny", "Drop changes" : "Zrušiť zmeny", "Share" : "Zdieľať", - "Sidebar" : "Bočný panel", "Previous" : "Predchádzajúce", "Next" : "Ďalšie", "Are you sure you want to delete?" : "Naozaj chcete vymazať?", "Save as" : "Uložiť ako", "All changes will be lost." : "Vaše zmeny budú stratené.", "Are you sure you want to continue?" : "Naozaj chcete pokračovať?", - "Continue" : "Pokračovať", "Undo" : "Vrátiť", "Redo" : "Vrátiť", "Show original image" : "Zobraziť originálny obrázok", @@ -205,6 +205,7 @@ OC.L10N.register( "Failed to delete {fileName}." : "Nepodarilo sa zmazať {fileName}.", "Failed to favorite files." : "Nepodarilo sa pridať súbory medzi obľúbené.", "Failed to favorite {fileName}." : "Nepodarilo sa pridať súbor {fileName} medzi obľúbené.", - "Your Timeline" : "Vaša časová os" + "Yes" : "Áno", + "No" : "Nie" }, "nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/l10n/sk.json b/l10n/sk.json index 94859f86..d5756d9f 100644 --- a/l10n/sk.json +++ b/l10n/sk.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Sťahovanie", "Memories" : "Spomienky", "Settings" : "Nastavenia", "People" : "Ľudia", @@ -12,27 +13,31 @@ "On this day" : "V tento deň", "Tags" : "Štítky", "Recognize" : "Rozpoznávanie", + "Metadata" : "Metadáta", "Edit" : "Upraviť", "Explore" : "Preskúmať", "Cancel" : "Zrušiť", "Delete" : "Vymazať", - "Download" : "Sťahovanie", "Favorite" : "Obľúbené", "Unarchive" : "Vybrať z archívu", "View in folder" : "Zobraziť v priečinku", "Add to album" : "Pridať do albumu", "Remove from person" : "Odobrať z osoby", - "You are about to download a large number of files. Are you sure?" : "Chystáte sa stiahnuť veľké množstvo súborov. Si si istý?", - "You are about to delete a large number of files. Are you sure?" : "Chystáte sa odstrániť veľké množstvo súborov. Si si istý?", - "You are about to touch a large number of files. Are you sure?" : "Chystáte sa zmeniť veľké množstvo súborov. Si si istý?", + "Continue" : "Pokračovať", + "Move" : "Presunúť", "_{n} selected_::_{n} selected_" : ["{n} vybraté","{n} vybraté","{n} vybratých","{n} vybraté"], "General" : "Všeobecné", "Timeline Path" : "Popis umiestnenia časovej osi", + "Viewer" : "Prehliadač", + "Account" : "Účet", "Show hidden folders" : "Zobraziť skryté priečinky", "Close" : "Zatvoriť", "Failed to load some photos" : "Načítanie akýchkoľvek fotiek zlyhalo", "Performance" : "Výkon", "Unknown" : "Neznámy", + "Template" : "Šablóny", + "No items" : "Žiadne položky", + "Shared by {user}" : "Zdieľa {user}", "Add people or groups who can edit your album" : "Pridať užívateľov alebo skupiny ktoré môžu upravovať váš album", "Search for collaborators" : "Vyhľadať spolupracovníkov", "Search people or groups" : "Vyhľadať užívateľov alebo skupiny", @@ -61,8 +66,8 @@ "Back to the new album form." : "Späť na formulár pre pridanie nového albumu.", "Save" : "Uložiť", "Create album" : "Vytvoriť album", - "Add selection to album {albumName}" : "Pridať vybrané do albumu {ablumName}", - "Create a new album." : "Vytvoriť nový album.", + "Search" : "Hľadať", + "Save changes" : "Uložiť zmeny", "Save collaborators for this album." : "Uložiť spolupracovníkov pre tento album.", "Newest" : "Najnovšie", "Year" : "Rok", @@ -83,10 +88,8 @@ "Name" : "Meno", "Update" : "Aktualizovať", "Failed to rename {oldName} to {name}." : "Nepodarilo sa premenovať {oldName} na {name}.", - "Search" : "Hľadať", "Loading …" : "Načítavam …", "Merge {name} with person" : "Zlúčiť {name} s osobou", - "Are you sure you want to merge {name} with {newName}?" : "Naozaj chcete zlúčiť {name} s {newName}?", "Too many failures, aborting" : "Príliš veľa zlyhaní, prerušujem", "Error while moving {basename}" : "Chyba pri presúvaní {basename}", "Failed to move {name}." : "Nepodarilo sa presunúť {name}.", @@ -100,21 +103,18 @@ "Link copied to clipboard" : "Odkaz bol skopírovaný do schránky", "Sort by date" : "Zoradiť podľa dátumu", "Sort by name" : "Zoradiť podľa mena", - "Delete album" : "Zmazať album", "Merge with different person" : "Spojiť s inou osobou", "Share folder" : "Zdieľať priečinok", "Error saving image" : "Chyba pri ukladaní obrázku", "Unsaved changes" : "Neuložené zmeny", "Drop changes" : "Zrušiť zmeny", "Share" : "Zdieľať", - "Sidebar" : "Bočný panel", "Previous" : "Predchádzajúce", "Next" : "Ďalšie", "Are you sure you want to delete?" : "Naozaj chcete vymazať?", "Save as" : "Uložiť ako", "All changes will be lost." : "Vaše zmeny budú stratené.", "Are you sure you want to continue?" : "Naozaj chcete pokračovať?", - "Continue" : "Pokračovať", "Undo" : "Vrátiť", "Redo" : "Vrátiť", "Show original image" : "Zobraziť originálny obrázok", @@ -203,6 +203,7 @@ "Failed to delete {fileName}." : "Nepodarilo sa zmazať {fileName}.", "Failed to favorite files." : "Nepodarilo sa pridať súbory medzi obľúbené.", "Failed to favorite {fileName}." : "Nepodarilo sa pridať súbor {fileName} medzi obľúbené.", - "Your Timeline" : "Vaša časová os" + "Yes" : "Áno", + "No" : "Nie" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);" } \ No newline at end of file diff --git a/l10n/sl.js b/l10n/sl.js index a2f9edf9..a87687a6 100644 --- a/l10n/sl.js +++ b/l10n/sl.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Prejmi", "Memories" : "Spomini", "Fast, modern and advanced photo management suite" : "Hiter, sodoben in zmogljiv urejevalnik fotografij", "Settings" : "Nastavitve", @@ -15,31 +16,66 @@ OC.L10N.register( "Albums" : "Albumi", "Archive" : "Arhiv", "On this day" : "Na današnji dan", + "Places" : "Mesta", + "Map" : "Zemljevid", "Tags" : "Oznake", + "View all" : "Poglej vse", + "Recognize" : "Prepoznava", + "Face Recognition" : "Prepoznava obrazov", + "A better photos experience awaits you" : "Čaka vas boljša izkušnja dela s fotografijami", + "Choose the root folder of your timeline to begin" : "Izberite mapo časovnice za začetek", "Continue to Memories" : "Nadaljujte med Spomine", "Choose again" : "Ponovni izobor", "Click here to start" : "Kliknite za začetek", + "Choose the root of your timeline" : "Izberite koren časovnice", + "Metadata" : "Metapodatki", "Edit" : "Uredi", - "No title" : "Ni naslova", - "No description" : "Ni opisa", + "No coordinates" : "Ni koordinat", "Photos" : "Fotografije", "Explore" : "Razišči", "Cancel" : "Prekliči", "Delete" : "Izbriši", "Remove from album" : "Odstrani iz albuma", - "Download" : "Prejmi", "Favorite" : "Priljubljeno", "Unarchive" : "Odpri iz arhiva", + "Edit metadata" : "Uredi metapodatke", "View in folder" : "Pokaži v mapi", "Move to folder" : "Premakni v mapo", "Add to album" : "Dodaj album", + "Move to person" : "Premakni k osebi", + "Remove from person" : "Odstrani", + "Continue" : "Nadaljuj", + "Move" : "Premakni", + "Memories Settings" : "Nastavitve programa", "General" : "Splošno", + "Timeline Path" : "Pot časovnice", "Square grid mode" : "Način kvadratne mreže", + "Show past photos on top of timeline" : "Pokaži pretekle fotografije nad časovnico", + "Viewer" : "Pregledovalnik", + "Account" : "Račun", + "Sign out" : "Odjava", + "Device Folders" : "Mape naprave", + "Local folders to include in the timeline view" : "Krajevne mape, ki naj bodo vključene v pogled časovnice", "Folders Path" : "Pot map", "Show hidden folders" : "Pokaži skrite mape", + "Choose Timeline Paths" : "Izbor poti časovnice", "Close" : "Zapri", + "Documentation." : "Dokumentacija", + "File Support" : "Podpora datotek", + "Images (JPEG, PNG, GIF, BMP)" : "Slike (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Video (ffmpeg)", + "External Link" : "Zunanja povezava", "Performance" : "Delovanje", "Unknown" : "Neznano", + "Enable Transcoding" : "Omogoči prehodiranje", + "ffmpeg path" : "pot do ffmpeg", + "ffprobe path" : "pot do ffprobe", + "Enable acceleration with VA-API" : "Omogoči pospeševanje z VA-API", + "Template" : "Predloga", + "No items" : "Ni predmetov", + "Shared by {user}" : "V skupni rabi z {user}", "Add people or groups who can edit your album" : "Dodaj osebe in skupine, ki lahko urejajo album", "Search for collaborators" : "Iskanje sodelujočih", "Search people or groups" : "Iskanje oseb in skupin", @@ -69,10 +105,10 @@ OC.L10N.register( "Back to the new album form." : "Nazaj na pogled obrazca novega albuma.", "Save" : "Shrani", "Create album" : "Ustvari album", - "Add selection to album {albumName}" : "Dodaj izbor v album {albumName}", - "Create a new album." : "Ustvari nov album.", - "_%n item_::_%n items_" : ["%n predmet","%n predmeta","%n predmeti","%n predmetov"], + "Search" : "Poišči", + "Save changes" : "Shrani spremembe", "Save collaborators for this album." : "Shrani sodelujoče za izbran album", + "_%n item_::_%n items_" : ["%n predmet","%n predmeta","%n predmeti","%n predmetov"], "Newest" : "Najnovejše", "Year" : "Leto", "Month" : "Mesec", @@ -81,6 +117,7 @@ OC.L10N.register( "Hour" : "Ura", "Minute" : "Minuta", "Oldest" : "Najstarejše", + "Invalid Date" : "Neveljaven datum", "Title" : "Naziv", "Description" : "Opis", "Label" : "Oznaka", @@ -89,34 +126,48 @@ OC.L10N.register( "Lens Model" : "Model leče", "Copyright" : "Avtorske pravice", "Empty" : "Prazno", + "Unchanged" : "Nespremenjeno", "Reset" : "Ponastavi", + "Remove location" : "Odstrani mesto", + "Date / Time" : "Datum / Čas", + "Collaborative Tags" : "Sodelovalne oznake", + "EXIF Fields" : "Polja EXIF", + "Geolocation" : "Geolokacijske storitve", "Remove person" : "Odstrani osebo", "Rename person" : "Preimenuj osebo", "Name" : "Ime", "Update" : "Posodobi", "Failed to rename {oldName} to {name}." : "Preimenovanje {oldName} v {name} je spodletelo.", - "Search" : "Poišči", "Loading …" : "Poteka nalaganje …", "Merge {name} with person" : "Združi {name} z osebo", "Too many failures, aborting" : "Zaznanih je preveč napak, zato bo opravilo opuščeno.", "Error while moving {basename}" : "Prišlo je do napake med premikanjem {basename}", "Failed to move {name}." : "Premikanje {name} je spodletelo.", + "Choose a folder" : "Izbor mape", "Remove" : "Odstrani", "Add Path" : "Dodaj pot", + "Add a root to your timeline" : "Dodaj koren časovnici", "Share link" : "Povezava za souporabo", "Create Link" : "Ustvari povezavo", "Refresh" : "Osveži", "Password protected" : "Zaščiteno z geslom", "Expires" : "Poteče", + "Editable" : "Uredljivo", "Read only" : "Le za branje", "Link copied to clipboard" : "Povezava je kopirana v odložišče", + "Reduced Size" : "Zmanjšaj velikost", + "High Resolution" : "Visoka ločljivost", + "Original File" : "Izvorna datoteka", + "Public Link" : "Javna povezava", + "Failed to download file" : "Prejemanje datotek je spodletelo.", "Sort by date" : "Razvrsti po datumu", "Sort by name" : "Razvrsti po imenu", "Download album" : "Prejmi album", - "Delete album" : "Izbriši album", + "Nothing to show here" : "Ni vsebine za prikaz", "Merge with different person" : "Združi z obstoječo osebo", + "Mark person in preview" : "Označi osebo v predogledu", "Folder View" : "Pogled mape", - "Timeline View" : "Časovni pogled", + "Timeline View" : "Pogled časovnice", "Share folder" : "Omogoči souporabo mape", "Move left" : "Premakni levo", "Move right" : "Premakni desno", @@ -125,7 +176,6 @@ OC.L10N.register( "Unsaved changes" : "Neshranjene spremembe", "Drop changes" : "Opusti spremembe", "Share" : "Souporaba", - "Sidebar" : "Bočno okno", "Download Video" : "Prejmi posnetek", "Slideshow" : "Projekcija", "Previous" : "Predhodni", @@ -134,7 +184,6 @@ OC.L10N.register( "Save as" : "Shrani kot", "All changes will be lost." : "Vse spremembe bodo izgubljene.", "Are you sure you want to continue?" : "Ali ste prepričani, da želite nadaljevati?", - "Continue" : "Nadaljuj", "Undo" : "Razveljavi", "Redo" : "Ponovno uveljavi", "Show original image" : "Pokaži izvorno sliko", @@ -148,6 +197,10 @@ OC.L10N.register( "Draw" : "Nariši", "Resize" : "Spremeni velikost", "Invalid image." : "Neveljavna slika", + "Error while uploading the image." : "Prišlo je do napake med pošiljanjem slike", + "are not images" : "niso slike", + "is not an image" : "ni slika", + "to be uploaded" : "bo poslano", "Crop" : "Obreži", "Original" : "Izvorno", "Custom" : "Po meri", @@ -156,6 +209,7 @@ OC.L10N.register( "Portrait" : "Portret", "Ellipse" : "Elipsa", "Classic TV" : "Klasični TV", + "CinemaScope" : "CinemaScope", "Arrow" : "Puščica", "Blur" : "Zameglitev", "Brightness" : "Svetlost", @@ -165,6 +219,7 @@ OC.L10N.register( "Un-flip Y" : "Prekliči zrcaljenje po osi Y", "Flip Y" : "Zrcali po osi Y", "HSV" : "HSV", + "Hue" : "Odtenek", "Saturation" : "Nasičenost", "Value" : "Vrednost", "Image" : "Slika", @@ -199,10 +254,13 @@ OC.L10N.register( "Vertical" : "Navpično", "Opacity" : "Prosojnost", "Position" : "Položaj", + "Stroke" : "Poteg", "Save image as" : "Shrani sliko kot", "Extension" : "Pripona", "Name is required." : "Ime mora biti vpisano.", "Quality" : "Kakovost", + "Saved image size (width x height)" : "Velikost shranjene slike (širina x višina)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Izbrano polje obreza je manjše od uveljavljene spremembe velikosti, kar lahko vpliva na zmanjšanje kakovosti slike.", "Actual size (100%)" : "Prava velikost (100%)", "Fit size" : "Prilagodi velikosti", "Direct" : "Neposredno", @@ -216,6 +274,7 @@ OC.L10N.register( "Could not move {fileName}, target exists." : "Datoteke {fileName} ni mogoče premakniti, ker cilj že obstaja.", "Failed to move {fileName}." : "Premikanje datoteke {fileName} je spodletelo.", "Failed to download files" : "Prejemanje datotek je spodletelo.", - "Your Timeline" : "Vaša časovnica" + "Yes" : "Da", + "No" : "Ne" }, "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/l10n/sl.json b/l10n/sl.json index a87590ab..11110375 100644 --- a/l10n/sl.json +++ b/l10n/sl.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Prejmi", "Memories" : "Spomini", "Fast, modern and advanced photo management suite" : "Hiter, sodoben in zmogljiv urejevalnik fotografij", "Settings" : "Nastavitve", @@ -13,31 +14,66 @@ "Albums" : "Albumi", "Archive" : "Arhiv", "On this day" : "Na današnji dan", + "Places" : "Mesta", + "Map" : "Zemljevid", "Tags" : "Oznake", + "View all" : "Poglej vse", + "Recognize" : "Prepoznava", + "Face Recognition" : "Prepoznava obrazov", + "A better photos experience awaits you" : "Čaka vas boljša izkušnja dela s fotografijami", + "Choose the root folder of your timeline to begin" : "Izberite mapo časovnice za začetek", "Continue to Memories" : "Nadaljujte med Spomine", "Choose again" : "Ponovni izobor", "Click here to start" : "Kliknite za začetek", + "Choose the root of your timeline" : "Izberite koren časovnice", + "Metadata" : "Metapodatki", "Edit" : "Uredi", - "No title" : "Ni naslova", - "No description" : "Ni opisa", + "No coordinates" : "Ni koordinat", "Photos" : "Fotografije", "Explore" : "Razišči", "Cancel" : "Prekliči", "Delete" : "Izbriši", "Remove from album" : "Odstrani iz albuma", - "Download" : "Prejmi", "Favorite" : "Priljubljeno", "Unarchive" : "Odpri iz arhiva", + "Edit metadata" : "Uredi metapodatke", "View in folder" : "Pokaži v mapi", "Move to folder" : "Premakni v mapo", "Add to album" : "Dodaj album", + "Move to person" : "Premakni k osebi", + "Remove from person" : "Odstrani", + "Continue" : "Nadaljuj", + "Move" : "Premakni", + "Memories Settings" : "Nastavitve programa", "General" : "Splošno", + "Timeline Path" : "Pot časovnice", "Square grid mode" : "Način kvadratne mreže", + "Show past photos on top of timeline" : "Pokaži pretekle fotografije nad časovnico", + "Viewer" : "Pregledovalnik", + "Account" : "Račun", + "Sign out" : "Odjava", + "Device Folders" : "Mape naprave", + "Local folders to include in the timeline view" : "Krajevne mape, ki naj bodo vključene v pogled časovnice", "Folders Path" : "Pot map", "Show hidden folders" : "Pokaži skrite mape", + "Choose Timeline Paths" : "Izbor poti časovnice", "Close" : "Zapri", + "Documentation." : "Dokumentacija", + "File Support" : "Podpora datotek", + "Images (JPEG, PNG, GIF, BMP)" : "Slike (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Video (ffmpeg)", + "External Link" : "Zunanja povezava", "Performance" : "Delovanje", "Unknown" : "Neznano", + "Enable Transcoding" : "Omogoči prehodiranje", + "ffmpeg path" : "pot do ffmpeg", + "ffprobe path" : "pot do ffprobe", + "Enable acceleration with VA-API" : "Omogoči pospeševanje z VA-API", + "Template" : "Predloga", + "No items" : "Ni predmetov", + "Shared by {user}" : "V skupni rabi z {user}", "Add people or groups who can edit your album" : "Dodaj osebe in skupine, ki lahko urejajo album", "Search for collaborators" : "Iskanje sodelujočih", "Search people or groups" : "Iskanje oseb in skupin", @@ -67,10 +103,10 @@ "Back to the new album form." : "Nazaj na pogled obrazca novega albuma.", "Save" : "Shrani", "Create album" : "Ustvari album", - "Add selection to album {albumName}" : "Dodaj izbor v album {albumName}", - "Create a new album." : "Ustvari nov album.", - "_%n item_::_%n items_" : ["%n predmet","%n predmeta","%n predmeti","%n predmetov"], + "Search" : "Poišči", + "Save changes" : "Shrani spremembe", "Save collaborators for this album." : "Shrani sodelujoče za izbran album", + "_%n item_::_%n items_" : ["%n predmet","%n predmeta","%n predmeti","%n predmetov"], "Newest" : "Najnovejše", "Year" : "Leto", "Month" : "Mesec", @@ -79,6 +115,7 @@ "Hour" : "Ura", "Minute" : "Minuta", "Oldest" : "Najstarejše", + "Invalid Date" : "Neveljaven datum", "Title" : "Naziv", "Description" : "Opis", "Label" : "Oznaka", @@ -87,34 +124,48 @@ "Lens Model" : "Model leče", "Copyright" : "Avtorske pravice", "Empty" : "Prazno", + "Unchanged" : "Nespremenjeno", "Reset" : "Ponastavi", + "Remove location" : "Odstrani mesto", + "Date / Time" : "Datum / Čas", + "Collaborative Tags" : "Sodelovalne oznake", + "EXIF Fields" : "Polja EXIF", + "Geolocation" : "Geolokacijske storitve", "Remove person" : "Odstrani osebo", "Rename person" : "Preimenuj osebo", "Name" : "Ime", "Update" : "Posodobi", "Failed to rename {oldName} to {name}." : "Preimenovanje {oldName} v {name} je spodletelo.", - "Search" : "Poišči", "Loading …" : "Poteka nalaganje …", "Merge {name} with person" : "Združi {name} z osebo", "Too many failures, aborting" : "Zaznanih je preveč napak, zato bo opravilo opuščeno.", "Error while moving {basename}" : "Prišlo je do napake med premikanjem {basename}", "Failed to move {name}." : "Premikanje {name} je spodletelo.", + "Choose a folder" : "Izbor mape", "Remove" : "Odstrani", "Add Path" : "Dodaj pot", + "Add a root to your timeline" : "Dodaj koren časovnici", "Share link" : "Povezava za souporabo", "Create Link" : "Ustvari povezavo", "Refresh" : "Osveži", "Password protected" : "Zaščiteno z geslom", "Expires" : "Poteče", + "Editable" : "Uredljivo", "Read only" : "Le za branje", "Link copied to clipboard" : "Povezava je kopirana v odložišče", + "Reduced Size" : "Zmanjšaj velikost", + "High Resolution" : "Visoka ločljivost", + "Original File" : "Izvorna datoteka", + "Public Link" : "Javna povezava", + "Failed to download file" : "Prejemanje datotek je spodletelo.", "Sort by date" : "Razvrsti po datumu", "Sort by name" : "Razvrsti po imenu", "Download album" : "Prejmi album", - "Delete album" : "Izbriši album", + "Nothing to show here" : "Ni vsebine za prikaz", "Merge with different person" : "Združi z obstoječo osebo", + "Mark person in preview" : "Označi osebo v predogledu", "Folder View" : "Pogled mape", - "Timeline View" : "Časovni pogled", + "Timeline View" : "Pogled časovnice", "Share folder" : "Omogoči souporabo mape", "Move left" : "Premakni levo", "Move right" : "Premakni desno", @@ -123,7 +174,6 @@ "Unsaved changes" : "Neshranjene spremembe", "Drop changes" : "Opusti spremembe", "Share" : "Souporaba", - "Sidebar" : "Bočno okno", "Download Video" : "Prejmi posnetek", "Slideshow" : "Projekcija", "Previous" : "Predhodni", @@ -132,7 +182,6 @@ "Save as" : "Shrani kot", "All changes will be lost." : "Vse spremembe bodo izgubljene.", "Are you sure you want to continue?" : "Ali ste prepričani, da želite nadaljevati?", - "Continue" : "Nadaljuj", "Undo" : "Razveljavi", "Redo" : "Ponovno uveljavi", "Show original image" : "Pokaži izvorno sliko", @@ -146,6 +195,10 @@ "Draw" : "Nariši", "Resize" : "Spremeni velikost", "Invalid image." : "Neveljavna slika", + "Error while uploading the image." : "Prišlo je do napake med pošiljanjem slike", + "are not images" : "niso slike", + "is not an image" : "ni slika", + "to be uploaded" : "bo poslano", "Crop" : "Obreži", "Original" : "Izvorno", "Custom" : "Po meri", @@ -154,6 +207,7 @@ "Portrait" : "Portret", "Ellipse" : "Elipsa", "Classic TV" : "Klasični TV", + "CinemaScope" : "CinemaScope", "Arrow" : "Puščica", "Blur" : "Zameglitev", "Brightness" : "Svetlost", @@ -163,6 +217,7 @@ "Un-flip Y" : "Prekliči zrcaljenje po osi Y", "Flip Y" : "Zrcali po osi Y", "HSV" : "HSV", + "Hue" : "Odtenek", "Saturation" : "Nasičenost", "Value" : "Vrednost", "Image" : "Slika", @@ -197,10 +252,13 @@ "Vertical" : "Navpično", "Opacity" : "Prosojnost", "Position" : "Položaj", + "Stroke" : "Poteg", "Save image as" : "Shrani sliko kot", "Extension" : "Pripona", "Name is required." : "Ime mora biti vpisano.", "Quality" : "Kakovost", + "Saved image size (width x height)" : "Velikost shranjene slike (širina x višina)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Izbrano polje obreza je manjše od uveljavljene spremembe velikosti, kar lahko vpliva na zmanjšanje kakovosti slike.", "Actual size (100%)" : "Prava velikost (100%)", "Fit size" : "Prilagodi velikosti", "Direct" : "Neposredno", @@ -214,6 +272,7 @@ "Could not move {fileName}, target exists." : "Datoteke {fileName} ni mogoče premakniti, ker cilj že obstaja.", "Failed to move {fileName}." : "Premikanje datoteke {fileName} je spodletelo.", "Failed to download files" : "Prejemanje datotek je spodletelo.", - "Your Timeline" : "Vaša časovnica" + "Yes" : "Da", + "No" : "Ne" },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" } \ No newline at end of file diff --git a/l10n/sq.js b/l10n/sq.js index 2f54724b..5fb59521 100644 --- a/l10n/sq.js +++ b/l10n/sq.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Shkarko", "Settings" : "Rregullimet", "Info" : "Info", "Folders" : "Dosjet", @@ -13,15 +14,18 @@ OC.L10N.register( "Explore" : "Eksploroni", "Cancel" : "Anullo", "Delete" : "Fshi", - "Download" : "Shkarko", "Favorite" : "I/E Preferuar", "Unarchive" : "Hiq nga arkivi", "View in folder" : "Shikoje në dosje", + "Continue" : "Vazhdo", + "Move" : "Zhvendos", "General" : "Të përgjithshme", + "Account" : "Llogari", "Close" : "Mbylleni", "Unknown" : "I panjohur", "Back" : "Prapa", "Save" : "Ruaj", + "Search" : "Kërko", "Month" : "Muaj", "Day" : "Ditë", "Time" : "Kohë", @@ -34,7 +38,6 @@ OC.L10N.register( "Reset" : "Rivendos", "Name" : "Emri", "Update" : "Përditëso", - "Search" : "Kërko", "Remove" : "Hiq", "Share link" : "Lidhje ndarjeje", "Create Link" : "Krijo lidhje", @@ -47,7 +50,6 @@ OC.L10N.register( "Share" : "Shpërndaje", "Previous" : "I mëparshëm", "Next" : "Tjetër", - "Continue" : "Vazhdo", "Undo" : "Ktheje pas", "Redo" : "Ribëj", "Custom" : "E përshtatur", @@ -55,6 +57,7 @@ OC.L10N.register( "Text" : "Tekst", "Size" : "Madhësi", "Position" : "Pozicion", - "Name is required." : "Emri është i domosdoshëm" + "Name is required." : "Emri është i domosdoshëm", + "Yes" : "Po" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/sq.json b/l10n/sq.json index 843f24da..7694c8d1 100644 --- a/l10n/sq.json +++ b/l10n/sq.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Shkarko", "Settings" : "Rregullimet", "Info" : "Info", "Folders" : "Dosjet", @@ -11,15 +12,18 @@ "Explore" : "Eksploroni", "Cancel" : "Anullo", "Delete" : "Fshi", - "Download" : "Shkarko", "Favorite" : "I/E Preferuar", "Unarchive" : "Hiq nga arkivi", "View in folder" : "Shikoje në dosje", + "Continue" : "Vazhdo", + "Move" : "Zhvendos", "General" : "Të përgjithshme", + "Account" : "Llogari", "Close" : "Mbylleni", "Unknown" : "I panjohur", "Back" : "Prapa", "Save" : "Ruaj", + "Search" : "Kërko", "Month" : "Muaj", "Day" : "Ditë", "Time" : "Kohë", @@ -32,7 +36,6 @@ "Reset" : "Rivendos", "Name" : "Emri", "Update" : "Përditëso", - "Search" : "Kërko", "Remove" : "Hiq", "Share link" : "Lidhje ndarjeje", "Create Link" : "Krijo lidhje", @@ -45,7 +48,6 @@ "Share" : "Shpërndaje", "Previous" : "I mëparshëm", "Next" : "Tjetër", - "Continue" : "Vazhdo", "Undo" : "Ktheje pas", "Redo" : "Ribëj", "Custom" : "E përshtatur", @@ -53,6 +55,7 @@ "Text" : "Tekst", "Size" : "Madhësi", "Position" : "Pozicion", - "Name is required." : "Emri është i domosdoshëm" + "Name is required." : "Emri është i domosdoshëm", + "Yes" : "Po" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/sr.js b/l10n/sr.js index 08d60549..09bb2fcf 100644 --- a/l10n/sr.js +++ b/l10n/sr.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Преузми", "Memories" : "Успомене", "Fast, modern and advanced photo management suite" : "Брза, модерна и напредна свита програма за управљање фотографијама", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Успомене: управљање фотографијама за Nextcloud\n\nУспомене су решење за управљање фотографијама на Nextcloud које долази „заједно са батеријама” и има напредне могућности као што су:\n\n- **📸 Временска линија**: поређајте слике и видео сниме по датуму снимања, издвојеног из Exif података.\n- **⏪ Премотавање**: скочите тренутно на било које време у прошлости и освежите своје успомене.\n- **🤖 AI означавање**: групишите слике по људима и објектима, обезбеђују [recognize](https://github.com/nextcloud/recognize) и [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Албуми**: креирајте албуме да групишете фотографије и видео снимке. Затим делите те албуме са осталима.\n- **🫱🏻‍🫲🏻 Спољно дељење**: делите фотографије и видео снимке са људима ван своје Nextcloud инстанце.\n- **📱 Подршка за мобилни**: радите са било ког уређаја, било ког облика и величине кроз веб апликацију.\n- **✏️ Уређивање метаподатака**: уређујте датуме и остале метаподатке једноставно и за већи број слика одједном.\n- **📦 Архивирање**: смештајте фотографије које не желите да се прикажу у временској линији у посебан фолдер.\n- **📹 Видео транскодирање**: транскодујте видео и користите HLS за максималне перформансе.\n- **🗺️ Мапа**: прикажите своје фотографије на мапи, означене прецизним обрнутим геокодирањем.\n- **📦 Миграција**: мигрирајте једноставно са Nextcloud Photos и Google Takeout.\n- **⚡️ Перформансе**: све ово радите веома брзо.\n\n## 🚀 Инсталација\n\n1. Инсталирајте апликцију са Nextcloud Продавнице апликација (пробајте демо [овде](https://demo.memories.gallery/apps/memories/)).\n1. Извршите препоручене [кораке конфигурације](https://memories.gallery/config/).\n1. Извршите `php occ memories:index` да се генеришу индекси метаподатака за постојеће фотографије.\n1. Отворите апликацију 📷 Успомене у Nextcloud и подесите директоријум у којем се налазе ваше фотографије.", @@ -24,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "Препознавање лица", "A better photos experience awaits you" : "Чека вас боље фото искуство", "Choose the root folder of your timeline to begin" : "Изаберите корени фолдер ваше временске линије да бисте почели", - "If you just installed Memories, run:" : "Ако сте управо инсталирали Успомене, извршите:", "Continue to Memories" : "Настави на Успомене", "Choose again" : "Изаберите поново", "Click here to start" : "Клилните овде да почнете", "You can always change this later in settings" : "Ово увек касније можете да измените у подешавањима", + "If you just installed Memories, visit the admin panel first." : "Ако сте управо инсталирали Успомене, посетите најпре админ панел.", "Choose the root of your timeline" : "Изаберите корен своје временске линије", "The selected folder does not seem to be valid. Try again." : "Изгледа да је изабрани фолдер неисправан. Покушајте поново.", + "No photos were found in the selected folder." : "У изабраном фолдеру није пронађена ниједна фотографија.", + "This can happen because your media is still indexing." : "Ово може да се деси јер се ваши медији још увек индексирају.", + "Visit the admin panel to make sure Memories is configured correctly." : "Посетите админ панел и проверите да ли су Успомене исправно конфигурисане.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Пронађена је {n} ставка у {path}","Пронађене су {n} ставке у {path}","Пронађено је {n} ставки у {path}"], + "Metadata" : "Метаподаци", "Edit" : "Измени", - "No title" : "Без назива", - "No description" : "Без описа", + "Failed to load metadata" : "Није успело учитавање метаподатака", "No coordinates" : "Без координата", "Click edit to set location" : "Кликните уреди да поставите локацију", "Photos" : "Фотографије", @@ -42,7 +46,6 @@ OC.L10N.register( "Cancel" : "Поништи", "Delete" : "Избриши", "Remove from album" : "Уклони из албума", - "Download" : "Преузми", "Favorite" : "Омиљени", "Unarchive" : "Врати из архиве", "Edit metadata" : "Уреди метаподатке", @@ -51,10 +54,12 @@ OC.L10N.register( "Add to album" : "Додај у албум", "Move to person" : "Премести у особу", "Remove from person" : "Уклони из особе", - "You are about to download a large number of files. Are you sure?" : "Управо ћете да преузмете велики број фајлова. Да ли сте сигурни да то желите?", - "You are about to delete a large number of files. Are you sure?" : "Управо ћете да обришете велики број фајлова. Да ли сте сигурни да то желите?", + "You are about to download a large number of files." : "Управо ћете да преузмете велики број фајлова.", + "Continue" : "Настави", + "You are about to delete a large number of files" : "Управо ћете да обришете велики број фајлова", "Failed to delete files" : "Фајлови нису могли да се обришу", - "You are about to touch a large number of files. Are you sure?" : "Управо ћете да приступите великом броју фајлова. Да ли сте сигурни да то желите?", + "Move" : "Помери", + "You are about to move a large number of files" : "Управо ћете да преместите велики број фајлова", "You must enable \"Mark person in preview\" to use this feature" : "Да бисте користили ову могућност, морате да укључите „Означи особу у прегледу”", "Only user \"{user}\" can update this person" : "Ову особу може да ажурира само „{user}”", "_{n} selected_::_{n} selected_" : ["{n} изабран","{n} изабрана","{n} изабрано"], @@ -63,31 +68,76 @@ OC.L10N.register( "Timeline Path" : "Путања временске линије", "Square grid mode" : "Режим квадратне мреже", "Show past photos on top of timeline" : "Прикажи фотографије из прошлости на врху временске линије", + "Viewer" : "Прегледач", + "Autoplay Live Photos" : "Аутоприказ Live Photo", "Load full size image on zoom" : "Учитај слику пуне величине код увећавања", "Always load full size image (not recommended)" : "Увек учитај слику пуне величине (не препоручује се)", + "Show full file path in sidebar" : "Прикажи пуну путању фајла у бочној траци", + "Account" : "Налог", + "Logged in as {user}" : "Пријављени сте као {user}", + "Sign out" : "Одјави се", + "Device Folders" : "Фолдери уређаја", + "Local folders to include in the timeline view" : "Локални фолдери који су део погледа временске линије", "Folders Path" : "Путања до фолдера", "Show hidden folders" : "Прикажи скривене фолдере", "Sort folders oldest-first" : "Поређај фолдере најстарији прво", "Sort albums oldest-first" : "Поређај албуме најстарији прво", "Choose Timeline Paths" : "Изаберите путање временске линије", "Choose the root for the folders view" : "Изаберите корен за поглед на фолдере", + "Are you sure you want to log out {user}?" : "Да ли сте сигурни да желите да одјавите {user}?", "Close" : "Затвори", "{photoCount} photos" : "{photoCount} фотографија", "Failed to load some photos" : "Неке фотографије нису могле да се учитају", "Failed to update setting" : "Није успело ажурирање подешавања", - "EXIF Extraction" : "EXIF издвајање", + "Albums support is enabled through the Photos app." : "Подршка за албуме се укључује у апликацији Фотографије.", + "Albums are disabled because the Photos app is not available." : "Албуми су искључени јер није доступна апликација Фотографије.", + "Recognize is installed and enabled for face recognition." : "Апликација Препознај је инсталирана и укључена за препознавање лица.", + "Recognize is installed but not enabled for face recognition." : "Апликација Препознај је инсталирана, али није укључена за препознавање лица.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Апликација Препознај није инсталирана. Препознавање лица и означавање предмета можда неће бити доступни. ", + "Face Recognition is installed and enabled" : "Препознавање лица је инсталирано и укључено", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Генератор прегледа је инсталиран и укључен. Можда је још увек потребно додатно подешавање.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Генератор прегледа није инсталиран и подешен. Апликација Успомене због тога може да буде веома спора.", + "Recommended Apps" : "Препоручене апликације", "Path to packaged exiftool binary" : "Путања до запаковане exiftool бинарног фајла", "You need perl only if the packaged exiftool binary does not work for some reason." : "Perl вам је потребан само ако испоручени exiftool бинарни фајл из неког разлога не ради.", "Use system perl (only if exiftool binary does not work)" : "Користи системски perl (само ако exiftool бинарни фајл не ради)", - "Media Indexing" : "Индексирање медија", + "EXIF Extraction" : "EXIF издвајање", + "You can configure the enabled Nextcloud preview providers below." : "Испод можете да конфигуришете укључене Nextcloud пружаоце услуге прегледа.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Ако за генерисање прегледа користите Imaginary, можете да занемарите овај одељак.", + "To enable RAW support, install the Camera RAW Previews app." : "Да бисте укључили RAW подршку, инсталирајте апликацију Camera RAW Previews.", + "Documentation." : "Документација.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick је доступан [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick није доступан.", + "Image editing will not work correctly." : "Уређивање слике неће радити како треба.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Креирање сличица можда неће радити за неке формате (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Сличице за видео снимке ће се креирати овим бинарним фајлом.", + "Thumbnail generation may not work for videos." : "Креирање сличица можда неће радити за видео снимке.", + "The following MIME types are configured for preview generation." : "Следећи MIME типови су подешени за генерисање прегледа.", + "Max preview size (trade-off between quality and storage requirements)." : "Максимална величин прегледа (равнотежа између квалитета и захтева за складиштењем)", + "Max memory for preview generation (MB)" : "Максимална меморија за генерисање прегледа (MB)", + "Max size of preview files (MB)" : "Максимална величина фајлова прегледа (MB)", + "File Support" : "Фајл подршка", + "Images (JPEG, PNG, GIF, BMP)" : "Слике (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Видео снимци (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Хвала вам што сте за чување својих непроцењивих података изабрали Nextcloud и Успомене!", + "Memories is very feature rich and setting it up properly can take some time." : "Апликација Успомене има доста функција и потребно је доста времена да се правилно подеси.", + "If you just installed Memories, make sure you read the getting started guide:" : "Ако сте управо инсталирали апликацију Успомене, обавезно прочитајте водич за почетак рада:", + "External Link" : "Спољни линк", + "In case you run into any issues or bugs, you can get help through several channels." : "У случају да наиђете на било какве проблеме или багове, помоћ можете да добијете кроз неколико канала.", + "Memories is a completely free and open source app under active development." : "Апликација Успомене је потпуно бесплатна апликација отвореног кода која се активно развија.", + "You can contribute in several ways. See the project page for more details:" : "Свој допринос можете да дате на неколико начина. За више детаља, погледајте страницу пројекта:", + "Help & Support" : "Помоћ и подршка", "{n} media files have been indexed" : "индексирано је {n} фајлова медија", "Automatic Indexing status: {status}" : "Статус аутоматског индексирања: {status}", "Last index job was run {t} seconds ago." : "Последњи посао индексирања је извршен пре {t} секунди.", "It took {t} seconds to complete." : "Било је потребно {t} секунди да се заврши.", "It is still running or was interrupted." : "Још увек се извршава, или је прекинут.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Изгледа да је прошло више од сат времена од како је покренут последњи посао индексирања. Проверите да ли је Nextcloud cron исправно конфигурисан.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Подржава се само шифровање на страни сервера (OC_DEFAULT_MODULE), али је укључен неки други модул за шифровање.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF индекси се периодично изграђују и проверавају у позадинском задатку. Будите пажљиви када бирате било шта осим аутоматског индексирања. На пример, ако се индексирање постави само за фолдере временске линије, медији ће постати доступни корисницима са закашњењем, јер корисник конфигурише временску линију тек након пријаве.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Фолдери са фајлом „.nomedia” се никада не индексирају.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Фолдери са фајлом „.nomedia” или „.nomemories” се никада не индексирају.", "Index all media automatically (recommended)" : "Аутоматски индексирај све медије (препоручено)", "Index per-user timeline folders (not recommended)" : "Индексирај фолдере временске линије за свако корисника (не препоручује се)", "Index a fixed relative path" : "Индексирај фиксну релативну путању", @@ -98,15 +148,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "Форсирај поновно индексирање свих фајлова:", "You can limit indexing by user and/or folder:" : "Индексирање можете да ограничите по кориснику и/или фолдеру:", "Clear all existing index tables:" : "Обриши све постојеће табеле индекса:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Следећи MIME типови су исправно подешени за генерисање прегледа. Више документације:", - "External Link" : "Спољни линк", - "Performance" : "Перформансе", + "Media Indexing" : "Индексирање медија", "HTTPS is enabled" : "Укључен је HTTPS", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Овој страници приступате преко небезбедног контекста. Неколико API-ја прегледача није доступно, па ће се Успомене доста успорити. Да бисте побољшали перформансе, укључите HTTPS на свом серверу.", "HTTP/2 or HTTP/3 is enabled" : "Укључено је HTTP/2 или HTTP/3", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Снажно се препоручује HTTP/2 или HTTP/3 (детектован је {httpVer})", + "Performance" : "Перформансе", "Unknown" : "Непознато", - "Reverse Geocoding" : "Обрнуто геокодирање", "Database is populated with {n} geometries." : "База података је попуњена са {n} геометрија.", "Geometry table has not been created." : "Није креирана табела геометрије.", "Looks like the planet data is incomplete." : "Изгледа да подаци о планети нису потпуни.", @@ -116,13 +164,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "Ако дугме испод не функционше за увоз података о планети, употребите следећу команду:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Напомена: подаци о геометрији се чувају у табели memories_planet_geometry table, без префикса.", "Download planet database" : "Преузми базу података планете", + "Reverse Geocoding" : "Обрнуто геокодирање", "Geometry support was not detected in your database" : "У вашој бази података није детектована подршка за геометрију", "MySQL-like geometry support was detected " : "Детектована је подршка за геометрију која личи на MySQL", "Postgres native geometry support was detected" : "Детектована је подршка за Postgres природну геометрију", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Изгледа да је база података већ подешена. Да ли сте сигурни да желите поново да преузмете податке о планети?", "You are about to download the planet database. This may take a while." : "Управо ћете преузети базу података о планети. То може да потраје.", "This may also cause all photos to be re-indexed!" : "Ово такође може да изазове поновно индексирање свих фајлова!", - "Video Streaming" : "Видео стриминг", "Live transcoding provides for adaptive streaming of videos using HLS." : "Транскодирање уживо обезбеђује прилагодљиви стриминг видеа употребом HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Имајте на уму да ово може поприлично да оптерети CPU ако нема хардверског убрзања, и транскодирање се неће користити за спољна складишта.", "Enable Transcoding" : "Укључи транскодирање", @@ -132,14 +180,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Ауто (прилагодљиво транскодирање)", "Original (transcode with max quality)" : "Оригинал (транскодирање максималног квалитета)", "Direct (original video file without transcode)" : "Директно (оригинални видео фајл без транскодирања)", - "Hardware Acceleration" : "Хардверско убрзање", + "Video Streaming" : "Видео стриминг", "You must first make sure the correct drivers are installed before configuring acceleration." : "Најпре морате обезбедити да су инсталирани одговарајући драјвери пре него што конфигуришете убрзање.", "Make sure you test hardware acceleration with various options after enabling." : "Пре укључивања, тестирајте хардверско убрзање са различитим опцијама.", "Do not enable multiple types of hardware acceleration simultaneously." : "Немојте истовремено да укључите више различитих типова хардверског убрзања.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel процесори подржавају QuickSync Video (QSV) као што неки AMD GPUs могу да се користе са VA-API убрзањем.", "For more details on driver installation, check the documentation:" : "За више детаља у вези са инсталацијом драјвера, погледајте долкументацију:", "Enable acceleration with VA-API" : "Укључи убрзање са VA-API", - "Enable low-power mode (QSV)" : "Уљкучи режим мале снаге (QSV)", + "Enable low-power mode (QSV only)" : "Укључи режим мале снаге (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Уз одговарајуће драјвере, NVIDIA GPU картице могу да се користе за транскодирање помоћу NVENC енкодера.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "У зависности од верзије инсталираног SDK и ffmpeg, морате да наведете скалер који ће се користити", "No automated tests are available for NVIDIA acceleration." : "За NVIDIA убрзање нема доступних аутоматизованих тестова.", @@ -147,17 +195,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "Уљкучи NVENC Темпорални AQ", "NPP scaler" : "NPP скалер", "CUDA scaler" : "CUDA скалер", + "not recommended" : "не препоручује се", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Услед бага у одређеним драјверима за хардвер, видео снимци се могу приказивати у погрешној оријентацији када се стримују. У неким случајевима ово може да се реши ротирањем видеа на акцелератору.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Укључите следећу опцију само ако током приказивања видите погрешно оријентисане видео снимке.", + "Enable streaming transpose workaround" : "Укључи решење за транспозицију стриминга", + "HW Acceleration" : "Хардверско убрзање", "VA-API device ({dev}) is readable" : "VA-API уређај ({dev}) може да се чита", "VA-API device ({dev}) not found" : "VA-API уређај ({dev}) није пронађен", "VA-API device ({dev}) has incorrect permissions" : "VA-API уређај ({dev}) нема исправне дозволе", "VA-API device status: {status}" : "Статус VA-API уређаја: {status}", - "Transcoder configuration" : "Конфигурација транскодирања", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Успомене користе go-vod транскодер. go-vod можете да извршавате споља (нпр. у посебном Docker контејнеру за хардверско убрзање) or или да користите уграђени транскодер. Ако желите да користите спољни транскодер, укључите следећу опцију и следите упутства у документацији:", "Enable external transcoder (go-vod)" : "Укључи спољни транскодер (go-vod)", "Binary path (local only)" : "Путања до бинарног фајла (само локална)", "Bind address (local only)" : "Адреса везивања (само локална)", "Connection address (same as bind if local)" : "Адреса везе (иста као везивања, ако је локална)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} ставка је додата у албум","{n} ставке су додате у албум","{n} ставки је додато у албум"], + "Transcoder" : "Транскодер", + "Template" : "Шаблон", + "No items" : "Нема ставки", + "Shared by {user}" : "Поделио {user}", + "_{n} item_::_{n} items_" : ["{n} ставка","{n} ставке","{n} ставки"], + "_{n} photo updated_::_{n} photos updated_" : ["ажурирана је {n} слика","ажуриране су {n} слике","ажурирано је {n} слика"], "Add people or groups who can edit your album" : "Додај људе или групе које могу да уређују ваш албум", "Search for collaborators" : "Претрага сарадника", "Search people or groups" : "Претрага људи и група", @@ -179,7 +236,6 @@ OC.L10N.register( "Could not load the selected album" : "Изабрани албум не може да се учита", "Remove Album" : "Уклони албум", "Are you sure you want to permanently remove album \"{name}\"?" : "Да ли сте сигурни да желите трајно да уклоните албум „{name}”?", - "Only user \"{user}\" can delete this album" : "Овај албум може да обрише само „{user}”", "Failed to delete {name}." : "{name} не може да се обрише.", "Name of the album" : "Назив албума", "Location of the album" : "Локација албума", @@ -191,12 +247,14 @@ OC.L10N.register( "Save" : "Сачувај", "Create album" : "Креирај албум", "Invalid album name; should not contain any slashes." : "Неисправно име албума; не сме да садржи косе црте.", - "Add selection to album {albumName}" : "Додај изабрано у албум {albumName}", - "Create a new album." : "Креирање новог албума.", - "_%n item_::_%n items_" : ["%n ставка","%n ставке","%n ставки"], - "_Share with %n user_::_Share with %n users_" : ["Подели са %n корисником","Подели са %n корисника","Подели са %n корисника"], + "Search" : "Претрага", + "Create new album." : "Креирање новог албума.", + "Save changes" : "Сачувај измене", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Уклоњено је из {n} албума","Уклоњено је из {n} албума","Уклоњено је из {n} албума"], "Share Album" : "Дели албум", "Save collaborators for this album." : "Сачувај сараднике на овом албуму", + "shared by {owner}" : "дели {owner}", + "_%n item_::_%n items_" : ["%n ставка","%n ставке","%n ставки"], "Newest" : "Најновије", "Year" : "Година", "Month" : "Месец", @@ -233,18 +291,19 @@ OC.L10N.register( "Name" : "Име", "Update" : "Ажурирај", "Failed to rename {oldName} to {name}." : "Није успела промена имена {oldName} на {name}.", - "Search" : "Претрага", "Loading …" : "Учитавање…", "Enter name of the new face" : "Унесите име новог лица", "Failed to create face" : "Није успело креирање лица", "Merge {name} with person" : "Споји {name} са особом", - "Are you sure you want to merge {name} with {newName}?" : "Да ли сте сигурни да желите да спојите {name} са {newName}?", + "Merge faces" : "Спајање лица", + "Merge {name} with {newName}?" : "Желите ли да се {name} споји са {newName}?", + "unnamed person" : "неименована особа", "Too many failures, aborting" : "Превише грешака, прекида се", "Error while moving {basename}" : "Грешка токома премештања {basename}", "Failed to move {name}." : "Није успело премештање {name}.", "Move selected photos to person" : "Премести изабране фотографије у особу", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Да ли сте сигурни да желите да преместите изабране фотографије са {name} у {target}?", - "An error occured while moving photos from {name}." : "Дошло је до грешке током премештања фотографија са {name}.", + "Move the selected photos to {target}?" : "Желите ли да се изабране фотографије преместе у {target}?", + "An error occurred while moving photos from {name}." : "Дошло је до грешке током премештања слика из {name}.", "Choose a folder" : "Изаберите фолдер", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} ставка је премештена у фолдер","{n} ставке су премештене у фолдер","{n} ставки је премештено у фолдер"], "Remove" : "Уклони", @@ -279,10 +338,11 @@ OC.L10N.register( "Sort by name" : "Сортирај по имену", "Share album" : "Дели албум", "Download album" : "Преузми албум", - "Delete album" : "Обриши албум", "Nothing to show here" : "Овде нема ништа да се прикаже", + "Unassigned faces" : "Недодељена лица", "Merge with different person" : "Споји са другом особом", "Mark person in preview" : "Означи особу у прегледу", + "Unnamed person" : "Неименована особа", "Folder View" : "Поглед на фолдере", "Timeline View" : "Поглед на временску линију", "Share folder" : "Дели фолдер", @@ -294,7 +354,6 @@ OC.L10N.register( "Drop changes" : "Откажи измене", "Share" : "Подели", "Play Live Photo" : "Прикажи Live Photo", - "Sidebar" : "Бочна трака", "Download Video" : "Преузми видео", "Slideshow" : "Пројектор слајдова", "Previous" : "Претходно", @@ -311,7 +370,6 @@ OC.L10N.register( "Save as" : "Сачувај као", "All changes will be lost." : "Изгубиће се све измене.", "Are you sure you want to continue?" : "Да ли сте сигурни да желите да наставите?", - "Continue" : "Настави", "Undo" : "Опозови", "Redo" : "Понови", "Show original image" : "Прикажи оригиналну слику", @@ -396,6 +454,7 @@ OC.L10N.register( "Auto" : "Аутоматски", "Shared Folder" : "Дељени фолдер", "Shared Album" : "Дељени албум", + "Failed to remove {filename}." : "Није успело уклањање {filename}.", "Failed to create {albumName}." : "{albumName} није могао да се креира.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Није успела промена имена {currentAlbumName} у {newAlbumName}.", "General Failure" : "Општа грешка", @@ -408,6 +467,9 @@ OC.L10N.register( "Failed to favorite files." : "Фајлови нису могли да се означе као омиљени.", "Failed to favorite some files." : "Неки фајлови нису могли да се означе као омиљени.", "Failed to favorite {fileName}." : "{fileName} не може да се означи као омиљени.", + "No content-location header found" : "Није пронађено content-location заглавље", + "Failed to create tag {name}: {error}" : "Није успело креирање ознаке {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Успомене су ажуриране на {version}. Поново покрените апликацију да бисте почели да користите нову верзију.", "Upload some photos and make sure the timeline path is configured" : "Отпремите неколико фотографија и обезбедите да је подешена путања временске линије", "Mark photos as favorite to find them easily" : "Означите фотографије као омиљене да бисте их лакше пронашли", "Memories from past years will appear here" : "Овде ће се појавити успомене из претходних година", @@ -420,6 +482,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Означите фотографије да бисте их лакше пронашли", "Recognize is still working on your photos" : "Препознавање се још увек обавља над вашим фотографијама", "Places you have been to will appear here" : "Овде ће се појавити места која сте посетили", - "Your Timeline" : "Ваша временска линија" + "Yes" : "Да", + "No" : "Не" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/l10n/sr.json b/l10n/sr.json index ec3b5417..30909176 100644 --- a/l10n/sr.json +++ b/l10n/sr.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Преузми", "Memories" : "Успомене", "Fast, modern and advanced photo management suite" : "Брза, модерна и напредна свита програма за управљање фотографијама", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Успомене: управљање фотографијама за Nextcloud\n\nУспомене су решење за управљање фотографијама на Nextcloud које долази „заједно са батеријама” и има напредне могућности као што су:\n\n- **📸 Временска линија**: поређајте слике и видео сниме по датуму снимања, издвојеног из Exif података.\n- **⏪ Премотавање**: скочите тренутно на било које време у прошлости и освежите своје успомене.\n- **🤖 AI означавање**: групишите слике по људима и објектима, обезбеђују [recognize](https://github.com/nextcloud/recognize) и [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Албуми**: креирајте албуме да групишете фотографије и видео снимке. Затим делите те албуме са осталима.\n- **🫱🏻‍🫲🏻 Спољно дељење**: делите фотографије и видео снимке са људима ван своје Nextcloud инстанце.\n- **📱 Подршка за мобилни**: радите са било ког уређаја, било ког облика и величине кроз веб апликацију.\n- **✏️ Уређивање метаподатака**: уређујте датуме и остале метаподатке једноставно и за већи број слика одједном.\n- **📦 Архивирање**: смештајте фотографије које не желите да се прикажу у временској линији у посебан фолдер.\n- **📹 Видео транскодирање**: транскодујте видео и користите HLS за максималне перформансе.\n- **🗺️ Мапа**: прикажите своје фотографије на мапи, означене прецизним обрнутим геокодирањем.\n- **📦 Миграција**: мигрирајте једноставно са Nextcloud Photos и Google Takeout.\n- **⚡️ Перформансе**: све ово радите веома брзо.\n\n## 🚀 Инсталација\n\n1. Инсталирајте апликцију са Nextcloud Продавнице апликација (пробајте демо [овде](https://demo.memories.gallery/apps/memories/)).\n1. Извршите препоручене [кораке конфигурације](https://memories.gallery/config/).\n1. Извршите `php occ memories:index` да се генеришу индекси метаподатака за постојеће фотографије.\n1. Отворите апликацију 📷 Успомене у Nextcloud и подесите директоријум у којем се налазе ваше фотографије.", @@ -22,17 +23,20 @@ "Face Recognition" : "Препознавање лица", "A better photos experience awaits you" : "Чека вас боље фото искуство", "Choose the root folder of your timeline to begin" : "Изаберите корени фолдер ваше временске линије да бисте почели", - "If you just installed Memories, run:" : "Ако сте управо инсталирали Успомене, извршите:", "Continue to Memories" : "Настави на Успомене", "Choose again" : "Изаберите поново", "Click here to start" : "Клилните овде да почнете", "You can always change this later in settings" : "Ово увек касније можете да измените у подешавањима", + "If you just installed Memories, visit the admin panel first." : "Ако сте управо инсталирали Успомене, посетите најпре админ панел.", "Choose the root of your timeline" : "Изаберите корен своје временске линије", "The selected folder does not seem to be valid. Try again." : "Изгледа да је изабрани фолдер неисправан. Покушајте поново.", + "No photos were found in the selected folder." : "У изабраном фолдеру није пронађена ниједна фотографија.", + "This can happen because your media is still indexing." : "Ово може да се деси јер се ваши медији још увек индексирају.", + "Visit the admin panel to make sure Memories is configured correctly." : "Посетите админ панел и проверите да ли су Успомене исправно конфигурисане.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["Пронађена је {n} ставка у {path}","Пронађене су {n} ставке у {path}","Пронађено је {n} ставки у {path}"], + "Metadata" : "Метаподаци", "Edit" : "Измени", - "No title" : "Без назива", - "No description" : "Без описа", + "Failed to load metadata" : "Није успело учитавање метаподатака", "No coordinates" : "Без координата", "Click edit to set location" : "Кликните уреди да поставите локацију", "Photos" : "Фотографије", @@ -40,7 +44,6 @@ "Cancel" : "Поништи", "Delete" : "Избриши", "Remove from album" : "Уклони из албума", - "Download" : "Преузми", "Favorite" : "Омиљени", "Unarchive" : "Врати из архиве", "Edit metadata" : "Уреди метаподатке", @@ -49,10 +52,12 @@ "Add to album" : "Додај у албум", "Move to person" : "Премести у особу", "Remove from person" : "Уклони из особе", - "You are about to download a large number of files. Are you sure?" : "Управо ћете да преузмете велики број фајлова. Да ли сте сигурни да то желите?", - "You are about to delete a large number of files. Are you sure?" : "Управо ћете да обришете велики број фајлова. Да ли сте сигурни да то желите?", + "You are about to download a large number of files." : "Управо ћете да преузмете велики број фајлова.", + "Continue" : "Настави", + "You are about to delete a large number of files" : "Управо ћете да обришете велики број фајлова", "Failed to delete files" : "Фајлови нису могли да се обришу", - "You are about to touch a large number of files. Are you sure?" : "Управо ћете да приступите великом броју фајлова. Да ли сте сигурни да то желите?", + "Move" : "Помери", + "You are about to move a large number of files" : "Управо ћете да преместите велики број фајлова", "You must enable \"Mark person in preview\" to use this feature" : "Да бисте користили ову могућност, морате да укључите „Означи особу у прегледу”", "Only user \"{user}\" can update this person" : "Ову особу може да ажурира само „{user}”", "_{n} selected_::_{n} selected_" : ["{n} изабран","{n} изабрана","{n} изабрано"], @@ -61,31 +66,76 @@ "Timeline Path" : "Путања временске линије", "Square grid mode" : "Режим квадратне мреже", "Show past photos on top of timeline" : "Прикажи фотографије из прошлости на врху временске линије", + "Viewer" : "Прегледач", + "Autoplay Live Photos" : "Аутоприказ Live Photo", "Load full size image on zoom" : "Учитај слику пуне величине код увећавања", "Always load full size image (not recommended)" : "Увек учитај слику пуне величине (не препоручује се)", + "Show full file path in sidebar" : "Прикажи пуну путању фајла у бочној траци", + "Account" : "Налог", + "Logged in as {user}" : "Пријављени сте као {user}", + "Sign out" : "Одјави се", + "Device Folders" : "Фолдери уређаја", + "Local folders to include in the timeline view" : "Локални фолдери који су део погледа временске линије", "Folders Path" : "Путања до фолдера", "Show hidden folders" : "Прикажи скривене фолдере", "Sort folders oldest-first" : "Поређај фолдере најстарији прво", "Sort albums oldest-first" : "Поређај албуме најстарији прво", "Choose Timeline Paths" : "Изаберите путање временске линије", "Choose the root for the folders view" : "Изаберите корен за поглед на фолдере", + "Are you sure you want to log out {user}?" : "Да ли сте сигурни да желите да одјавите {user}?", "Close" : "Затвори", "{photoCount} photos" : "{photoCount} фотографија", "Failed to load some photos" : "Неке фотографије нису могле да се учитају", "Failed to update setting" : "Није успело ажурирање подешавања", - "EXIF Extraction" : "EXIF издвајање", + "Albums support is enabled through the Photos app." : "Подршка за албуме се укључује у апликацији Фотографије.", + "Albums are disabled because the Photos app is not available." : "Албуми су искључени јер није доступна апликација Фотографије.", + "Recognize is installed and enabled for face recognition." : "Апликација Препознај је инсталирана и укључена за препознавање лица.", + "Recognize is installed but not enabled for face recognition." : "Апликација Препознај је инсталирана, али није укључена за препознавање лица.", + "Recognize is not installed. Face recognition and object tagging may be unavailable." : "Апликација Препознај није инсталирана. Препознавање лица и означавање предмета можда неће бити доступни. ", + "Face Recognition is installed and enabled" : "Препознавање лица је инсталирано и укључено", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Генератор прегледа је инсталиран и укључен. Можда је још увек потребно додатно подешавање.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Генератор прегледа није инсталиран и подешен. Апликација Успомене због тога може да буде веома спора.", + "Recommended Apps" : "Препоручене апликације", "Path to packaged exiftool binary" : "Путања до запаковане exiftool бинарног фајла", "You need perl only if the packaged exiftool binary does not work for some reason." : "Perl вам је потребан само ако испоручени exiftool бинарни фајл из неког разлога не ради.", "Use system perl (only if exiftool binary does not work)" : "Користи системски perl (само ако exiftool бинарни фајл не ради)", - "Media Indexing" : "Индексирање медија", + "EXIF Extraction" : "EXIF издвајање", + "You can configure the enabled Nextcloud preview providers below." : "Испод можете да конфигуришете укључене Nextcloud пружаоце услуге прегледа.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Ако за генерисање прегледа користите Imaginary, можете да занемарите овај одељак.", + "To enable RAW support, install the Camera RAW Previews app." : "Да бисте укључили RAW подршку, инсталирајте апликацију Camera RAW Previews.", + "Documentation." : "Документација.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick је доступан [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick није доступан.", + "Image editing will not work correctly." : "Уређивање слике неће радити како треба.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Креирање сличица можда неће радити за неке формате (HEIC, TIFF).", + "Thumbnails for videos will be generated with this binary." : "Сличице за видео снимке ће се креирати овим бинарним фајлом.", + "Thumbnail generation may not work for videos." : "Креирање сличица можда неће радити за видео снимке.", + "The following MIME types are configured for preview generation." : "Следећи MIME типови су подешени за генерисање прегледа.", + "Max preview size (trade-off between quality and storage requirements)." : "Максимална величин прегледа (равнотежа између квалитета и захтева за складиштењем)", + "Max memory for preview generation (MB)" : "Максимална меморија за генерисање прегледа (MB)", + "Max size of preview files (MB)" : "Максимална величина фајлова прегледа (MB)", + "File Support" : "Фајл подршка", + "Images (JPEG, PNG, GIF, BMP)" : "Слике (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Видео снимци (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Хвала вам што сте за чување својих непроцењивих података изабрали Nextcloud и Успомене!", + "Memories is very feature rich and setting it up properly can take some time." : "Апликација Успомене има доста функција и потребно је доста времена да се правилно подеси.", + "If you just installed Memories, make sure you read the getting started guide:" : "Ако сте управо инсталирали апликацију Успомене, обавезно прочитајте водич за почетак рада:", + "External Link" : "Спољни линк", + "In case you run into any issues or bugs, you can get help through several channels." : "У случају да наиђете на било какве проблеме или багове, помоћ можете да добијете кроз неколико канала.", + "Memories is a completely free and open source app under active development." : "Апликација Успомене је потпуно бесплатна апликација отвореног кода која се активно развија.", + "You can contribute in several ways. See the project page for more details:" : "Свој допринос можете да дате на неколико начина. За више детаља, погледајте страницу пројекта:", + "Help & Support" : "Помоћ и подршка", "{n} media files have been indexed" : "индексирано је {n} фајлова медија", "Automatic Indexing status: {status}" : "Статус аутоматског индексирања: {status}", "Last index job was run {t} seconds ago." : "Последњи посао индексирања је извршен пре {t} секунди.", "It took {t} seconds to complete." : "Било је потребно {t} секунди да се заврши.", "It is still running or was interrupted." : "Још увек се извршава, или је прекинут.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Изгледа да је прошло више од сат времена од како је покренут последњи посао индексирања. Проверите да ли је Nextcloud cron исправно конфигурисан.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Подржава се само шифровање на страни сервера (OC_DEFAULT_MODULE), али је укључен неки други модул за шифровање.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF индекси се периодично изграђују и проверавају у позадинском задатку. Будите пажљиви када бирате било шта осим аутоматског индексирања. На пример, ако се индексирање постави само за фолдере временске линије, медији ће постати доступни корисницима са закашњењем, јер корисник конфигурише временску линију тек након пријаве.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Фолдери са фајлом „.nomedia” се никада не индексирају.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "Фолдери са фајлом „.nomedia” или „.nomemories” се никада не индексирају.", "Index all media automatically (recommended)" : "Аутоматски индексирај све медије (препоручено)", "Index per-user timeline folders (not recommended)" : "Индексирај фолдере временске линије за свако корисника (не препоручује се)", "Index a fixed relative path" : "Индексирај фиксну релативну путању", @@ -96,15 +146,13 @@ "Force re-indexing of all files:" : "Форсирај поновно индексирање свих фајлова:", "You can limit indexing by user and/or folder:" : "Индексирање можете да ограничите по кориснику и/или фолдеру:", "Clear all existing index tables:" : "Обриши све постојеће табеле индекса:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Следећи MIME типови су исправно подешени за генерисање прегледа. Више документације:", - "External Link" : "Спољни линк", - "Performance" : "Перформансе", + "Media Indexing" : "Индексирање медија", "HTTPS is enabled" : "Укључен је HTTPS", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Овој страници приступате преко небезбедног контекста. Неколико API-ја прегледача није доступно, па ће се Успомене доста успорити. Да бисте побољшали перформансе, укључите HTTPS на свом серверу.", "HTTP/2 or HTTP/3 is enabled" : "Укључено је HTTP/2 или HTTP/3", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "Снажно се препоручује HTTP/2 или HTTP/3 (детектован је {httpVer})", + "Performance" : "Перформансе", "Unknown" : "Непознато", - "Reverse Geocoding" : "Обрнуто геокодирање", "Database is populated with {n} geometries." : "База података је попуњена са {n} геометрија.", "Geometry table has not been created." : "Није креирана табела геометрије.", "Looks like the planet data is incomplete." : "Изгледа да подаци о планети нису потпуни.", @@ -114,13 +162,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "Ако дугме испод не функционше за увоз података о планети, употребите следећу команду:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Напомена: подаци о геометрији се чувају у табели memories_planet_geometry table, без префикса.", "Download planet database" : "Преузми базу података планете", + "Reverse Geocoding" : "Обрнуто геокодирање", "Geometry support was not detected in your database" : "У вашој бази података није детектована подршка за геометрију", "MySQL-like geometry support was detected " : "Детектована је подршка за геометрију која личи на MySQL", "Postgres native geometry support was detected" : "Детектована је подршка за Postgres природну геометрију", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Изгледа да је база података већ подешена. Да ли сте сигурни да желите поново да преузмете податке о планети?", "You are about to download the planet database. This may take a while." : "Управо ћете преузети базу података о планети. То може да потраје.", "This may also cause all photos to be re-indexed!" : "Ово такође може да изазове поновно индексирање свих фајлова!", - "Video Streaming" : "Видео стриминг", "Live transcoding provides for adaptive streaming of videos using HLS." : "Транскодирање уживо обезбеђује прилагодљиви стриминг видеа употребом HLS.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Имајте на уму да ово може поприлично да оптерети CPU ако нема хардверског убрзања, и транскодирање се неће користити за спољна складишта.", "Enable Transcoding" : "Укључи транскодирање", @@ -130,14 +178,14 @@ "Auto (adaptive transcode)" : "Ауто (прилагодљиво транскодирање)", "Original (transcode with max quality)" : "Оригинал (транскодирање максималног квалитета)", "Direct (original video file without transcode)" : "Директно (оригинални видео фајл без транскодирања)", - "Hardware Acceleration" : "Хардверско убрзање", + "Video Streaming" : "Видео стриминг", "You must first make sure the correct drivers are installed before configuring acceleration." : "Најпре морате обезбедити да су инсталирани одговарајући драјвери пре него што конфигуришете убрзање.", "Make sure you test hardware acceleration with various options after enabling." : "Пре укључивања, тестирајте хардверско убрзање са различитим опцијама.", "Do not enable multiple types of hardware acceleration simultaneously." : "Немојте истовремено да укључите више различитих типова хардверског убрзања.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "Intel процесори подржавају QuickSync Video (QSV) као што неки AMD GPUs могу да се користе са VA-API убрзањем.", "For more details on driver installation, check the documentation:" : "За више детаља у вези са инсталацијом драјвера, погледајте долкументацију:", "Enable acceleration with VA-API" : "Укључи убрзање са VA-API", - "Enable low-power mode (QSV)" : "Уљкучи режим мале снаге (QSV)", + "Enable low-power mode (QSV only)" : "Укључи режим мале снаге (QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "Уз одговарајуће драјвере, NVIDIA GPU картице могу да се користе за транскодирање помоћу NVENC енкодера.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "У зависности од верзије инсталираног SDK и ffmpeg, морате да наведете скалер који ће се користити", "No automated tests are available for NVIDIA acceleration." : "За NVIDIA убрзање нема доступних аутоматизованих тестова.", @@ -145,17 +193,26 @@ "Enable NVENC Temporal AQ" : "Уљкучи NVENC Темпорални AQ", "NPP scaler" : "NPP скалер", "CUDA scaler" : "CUDA скалер", + "not recommended" : "не препоручује се", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Услед бага у одређеним драјверима за хардвер, видео снимци се могу приказивати у погрешној оријентацији када се стримују. У неким случајевима ово може да се реши ротирањем видеа на акцелератору.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Укључите следећу опцију само ако током приказивања видите погрешно оријентисане видео снимке.", + "Enable streaming transpose workaround" : "Укључи решење за транспозицију стриминга", + "HW Acceleration" : "Хардверско убрзање", "VA-API device ({dev}) is readable" : "VA-API уређај ({dev}) може да се чита", "VA-API device ({dev}) not found" : "VA-API уређај ({dev}) није пронађен", "VA-API device ({dev}) has incorrect permissions" : "VA-API уређај ({dev}) нема исправне дозволе", "VA-API device status: {status}" : "Статус VA-API уређаја: {status}", - "Transcoder configuration" : "Конфигурација транскодирања", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Успомене користе go-vod транскодер. go-vod можете да извршавате споља (нпр. у посебном Docker контејнеру за хардверско убрзање) or или да користите уграђени транскодер. Ако желите да користите спољни транскодер, укључите следећу опцију и следите упутства у документацији:", "Enable external transcoder (go-vod)" : "Укључи спољни транскодер (go-vod)", "Binary path (local only)" : "Путања до бинарног фајла (само локална)", "Bind address (local only)" : "Адреса везивања (само локална)", "Connection address (same as bind if local)" : "Адреса везе (иста као везивања, ако је локална)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} ставка је додата у албум","{n} ставке су додате у албум","{n} ставки је додато у албум"], + "Transcoder" : "Транскодер", + "Template" : "Шаблон", + "No items" : "Нема ставки", + "Shared by {user}" : "Поделио {user}", + "_{n} item_::_{n} items_" : ["{n} ставка","{n} ставке","{n} ставки"], + "_{n} photo updated_::_{n} photos updated_" : ["ажурирана је {n} слика","ажуриране су {n} слике","ажурирано је {n} слика"], "Add people or groups who can edit your album" : "Додај људе или групе које могу да уређују ваш албум", "Search for collaborators" : "Претрага сарадника", "Search people or groups" : "Претрага људи и група", @@ -177,7 +234,6 @@ "Could not load the selected album" : "Изабрани албум не може да се учита", "Remove Album" : "Уклони албум", "Are you sure you want to permanently remove album \"{name}\"?" : "Да ли сте сигурни да желите трајно да уклоните албум „{name}”?", - "Only user \"{user}\" can delete this album" : "Овај албум може да обрише само „{user}”", "Failed to delete {name}." : "{name} не може да се обрише.", "Name of the album" : "Назив албума", "Location of the album" : "Локација албума", @@ -189,12 +245,14 @@ "Save" : "Сачувај", "Create album" : "Креирај албум", "Invalid album name; should not contain any slashes." : "Неисправно име албума; не сме да садржи косе црте.", - "Add selection to album {albumName}" : "Додај изабрано у албум {albumName}", - "Create a new album." : "Креирање новог албума.", - "_%n item_::_%n items_" : ["%n ставка","%n ставке","%n ставки"], - "_Share with %n user_::_Share with %n users_" : ["Подели са %n корисником","Подели са %n корисника","Подели са %n корисника"], + "Search" : "Претрага", + "Create new album." : "Креирање новог албума.", + "Save changes" : "Сачувај измене", + "_Removed from {n} album_::_Removed from {n} albums_" : ["Уклоњено је из {n} албума","Уклоњено је из {n} албума","Уклоњено је из {n} албума"], "Share Album" : "Дели албум", "Save collaborators for this album." : "Сачувај сараднике на овом албуму", + "shared by {owner}" : "дели {owner}", + "_%n item_::_%n items_" : ["%n ставка","%n ставке","%n ставки"], "Newest" : "Најновије", "Year" : "Година", "Month" : "Месец", @@ -231,18 +289,19 @@ "Name" : "Име", "Update" : "Ажурирај", "Failed to rename {oldName} to {name}." : "Није успела промена имена {oldName} на {name}.", - "Search" : "Претрага", "Loading …" : "Учитавање…", "Enter name of the new face" : "Унесите име новог лица", "Failed to create face" : "Није успело креирање лица", "Merge {name} with person" : "Споји {name} са особом", - "Are you sure you want to merge {name} with {newName}?" : "Да ли сте сигурни да желите да спојите {name} са {newName}?", + "Merge faces" : "Спајање лица", + "Merge {name} with {newName}?" : "Желите ли да се {name} споји са {newName}?", + "unnamed person" : "неименована особа", "Too many failures, aborting" : "Превише грешака, прекида се", "Error while moving {basename}" : "Грешка токома премештања {basename}", "Failed to move {name}." : "Није успело премештање {name}.", "Move selected photos to person" : "Премести изабране фотографије у особу", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Да ли сте сигурни да желите да преместите изабране фотографије са {name} у {target}?", - "An error occured while moving photos from {name}." : "Дошло је до грешке током премештања фотографија са {name}.", + "Move the selected photos to {target}?" : "Желите ли да се изабране фотографије преместе у {target}?", + "An error occurred while moving photos from {name}." : "Дошло је до грешке током премештања слика из {name}.", "Choose a folder" : "Изаберите фолдер", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} ставка је премештена у фолдер","{n} ставке су премештене у фолдер","{n} ставки је премештено у фолдер"], "Remove" : "Уклони", @@ -277,10 +336,11 @@ "Sort by name" : "Сортирај по имену", "Share album" : "Дели албум", "Download album" : "Преузми албум", - "Delete album" : "Обриши албум", "Nothing to show here" : "Овде нема ништа да се прикаже", + "Unassigned faces" : "Недодељена лица", "Merge with different person" : "Споји са другом особом", "Mark person in preview" : "Означи особу у прегледу", + "Unnamed person" : "Неименована особа", "Folder View" : "Поглед на фолдере", "Timeline View" : "Поглед на временску линију", "Share folder" : "Дели фолдер", @@ -292,7 +352,6 @@ "Drop changes" : "Откажи измене", "Share" : "Подели", "Play Live Photo" : "Прикажи Live Photo", - "Sidebar" : "Бочна трака", "Download Video" : "Преузми видео", "Slideshow" : "Пројектор слајдова", "Previous" : "Претходно", @@ -309,7 +368,6 @@ "Save as" : "Сачувај као", "All changes will be lost." : "Изгубиће се све измене.", "Are you sure you want to continue?" : "Да ли сте сигурни да желите да наставите?", - "Continue" : "Настави", "Undo" : "Опозови", "Redo" : "Понови", "Show original image" : "Прикажи оригиналну слику", @@ -394,6 +452,7 @@ "Auto" : "Аутоматски", "Shared Folder" : "Дељени фолдер", "Shared Album" : "Дељени албум", + "Failed to remove {filename}." : "Није успело уклањање {filename}.", "Failed to create {albumName}." : "{albumName} није могао да се креира.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "Није успела промена имена {currentAlbumName} у {newAlbumName}.", "General Failure" : "Општа грешка", @@ -406,6 +465,9 @@ "Failed to favorite files." : "Фајлови нису могли да се означе као омиљени.", "Failed to favorite some files." : "Неки фајлови нису могли да се означе као омиљени.", "Failed to favorite {fileName}." : "{fileName} не може да се означи као омиљени.", + "No content-location header found" : "Није пронађено content-location заглавље", + "Failed to create tag {name}: {error}" : "Није успело креирање ознаке {name}: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Успомене су ажуриране на {version}. Поново покрените апликацију да бисте почели да користите нову верзију.", "Upload some photos and make sure the timeline path is configured" : "Отпремите неколико фотографија и обезбедите да је подешена путања временске линије", "Mark photos as favorite to find them easily" : "Означите фотографије као омиљене да бисте их лакше пронашли", "Memories from past years will appear here" : "Овде ће се појавити успомене из претходних година", @@ -418,6 +480,7 @@ "Tag photos to find them easily" : "Означите фотографије да бисте их лакше пронашли", "Recognize is still working on your photos" : "Препознавање се још увек обавља над вашим фотографијама", "Places you have been to will appear here" : "Овде ће се појавити места која сте посетили", - "Your Timeline" : "Ваша временска линија" + "Yes" : "Да", + "No" : "Не" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" } \ No newline at end of file diff --git a/l10n/sr@latin.js b/l10n/sr@latin.js index 277462a1..eca30e23 100644 --- a/l10n/sr@latin.js +++ b/l10n/sr@latin.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Preuzmi", "Settings" : "Поставке", "Info" : "Info", "Favorites" : "Omiljene", @@ -10,17 +11,17 @@ OC.L10N.register( "Photos" : "Slike", "Cancel" : "Otkaži", "Delete" : "Obriši", - "Download" : "Preuzmi", "Favorite" : "Omiljene", + "Move" : "Premesti", "General" : "Opšte", "Close" : "Zatvori", "Back" : "Nazad", "Save" : "Sačuvaj", + "Search" : "Traži", "Title" : "Naslov", "Description" : "Opis", "Name" : "Ime", "Update" : "Ažuriraj", - "Search" : "Traži", "Remove" : "Ukloni", "Share link" : "Podeli vezu", "Refresh" : "Osveži", diff --git a/l10n/sr@latin.json b/l10n/sr@latin.json index 57113173..4b385dcc 100644 --- a/l10n/sr@latin.json +++ b/l10n/sr@latin.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Preuzmi", "Settings" : "Поставке", "Info" : "Info", "Favorites" : "Omiljene", @@ -8,17 +9,17 @@ "Photos" : "Slike", "Cancel" : "Otkaži", "Delete" : "Obriši", - "Download" : "Preuzmi", "Favorite" : "Omiljene", + "Move" : "Premesti", "General" : "Opšte", "Close" : "Zatvori", "Back" : "Nazad", "Save" : "Sačuvaj", + "Search" : "Traži", "Title" : "Naslov", "Description" : "Opis", "Name" : "Ime", "Update" : "Ažuriraj", - "Search" : "Traži", "Remove" : "Ukloni", "Share link" : "Podeli vezu", "Refresh" : "Osveži", diff --git a/l10n/sv.js b/l10n/sv.js index 14959b46..e240e25c 100644 --- a/l10n/sv.js +++ b/l10n/sv.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Ladda ner", "Memories" : "Memories", "Settings" : "Inställningar", "People" : "Personer", @@ -15,32 +16,41 @@ OC.L10N.register( "Places" : "Platser", "Map" : "Karta", "Tags" : "Taggar", + "Metadata" : "Metadata", "Edit" : "Ändra", "Explore" : "Utforska", "Cancel" : "Avbryt", "Delete" : "Radera", - "Download" : "Ladda ner", "Favorite" : "Favorit", "Unarchive" : "Ta bort ur arkivet", "View in folder" : "Utforska i mapp", "Add to album" : "Lägg till i album", - "You are about to download a large number of files. Are you sure?" : "Du kommer att ladda ner en stor mängd filer. Är du säker?", - "You are about to delete a large number of files. Are you sure?" : "Du kommer att ta bort ett stort antal filer. Är du säker?", + "Continue" : "Fortsätt", + "Move" : "Flytta", "General" : "Allmänt", "Timeline Path" : "Tidslinjesökväg", + "Viewer" : "Visare", + "Account" : "Konto", "Show hidden folders" : "Visa dolda filer", "Close" : "Stäng", "Failed to load some photos" : "Misslyckades att läsa in vissa foton", "Performance" : "Prestanda", "Unknown" : "Okänd", + "Template" : "Mall", + "No items" : "Inga poster", + "Shared by {user}" : "Delad av {user}", "Add people or groups who can edit your album" : "Lägg till användare eller grupper som kan redigera ditt album", "Search for collaborators" : "Sök efter medarbetare", "Search people or groups" : "Sök personer eller grupper", + "Add {collaboratorLabel} to the collaborators list" : "Lägg till {collaboratorLabel} i listan med medlemmar", + "No collaborators available" : "Inga medlemmar är tillgängliga", + "Remove {collaboratorLabel} from the collaborators list" : "Ta bort {collaboratorLabel} från medlemslistan", "Copy the public link" : "Kopiera den publika länken", "Public link copied!" : "Offentlig länk kopierad!", "Copy public link" : "Kopiera publik länk", "Delete the public link" : "Ta bort den offentliga länken", "Share via public link" : "Dela via offentlig länk", + "Failed to fetch collaborators list." : "Det gick inte att hämta medlemslistan.", "Public link" : "Publik länk", "Failed to fetch album." : "Misslyckades att hämta album.", "Failed to update album." : "Misslyckades att uppdatera album.", @@ -51,11 +61,14 @@ OC.L10N.register( "Location of the album" : "Albumets plats", "Go back to the previous view." : "Gå tillbaka till föregående vy", "Back" : "Tillbaka", + "Go to the add collaborators view." : "Gå till vyn lägg till medlemmar.", + "Add collaborators" : "Lägg till medlemmar", + "Back to the new album form." : "Tillbaka till nytt album formuläret.", "Save" : "Spara", "Create album" : "Skapa album", - "Add selection to album {albumName}" : "Lägg till urval för {albumName}", - "Create a new album." : "Skapa ett nytt album.", - "_Share with %n user_::_Share with %n users_" : ["Dela med en användare","Dela med %n användare"], + "Search" : "Sök", + "Save changes" : "Spara ändringar", + "Save collaborators for this album." : "Spara medlemmar för det här albumet.", "Year" : "År", "Month" : "Månad", "Day" : "Dag", @@ -70,11 +83,11 @@ OC.L10N.register( "Reset" : "Återställ", "Search location / landmark" : "Sök plats / landmärke", "Failed to search for location with Nominatim." : "Det gick inte att söka efter plats med Nominatim.", + "Collaborative Tags" : "Samarbetstaggar", "Remove person" : "Ta bort person", "Rename person" : "Byt namn på person", "Name" : "Namn", "Update" : "Uppdatera", - "Search" : "Sök", "Loading …" : "Läser in …", "Remove" : "Ta bort", "Share link" : "Delningslänk", @@ -86,7 +99,7 @@ OC.L10N.register( "Link copied to clipboard" : "Länken kopierad till urklipp", "Sort by date" : "Sortera efter datum", "Sort by name" : "Sortera efter namn", - "Delete album" : "Radera album", + "Unassigned faces" : "Ej tilldelade ansikten", "Merge with different person" : "Slå ihop med en annan person", "Share folder" : "Dela mapp", "Error saving image" : "Det gick inte att spara bilden", @@ -98,7 +111,6 @@ OC.L10N.register( "Save as" : "Spara som", "All changes will be lost." : "Alla ändringar kommer att gå förlorade.", "Are you sure you want to continue?" : "Är du säker på att du vill fortsätta?", - "Continue" : "Fortsätt", "Undo" : "Ångra", "Redo" : "Gör om", "Show original image" : "Visa originalbilden", @@ -174,6 +186,8 @@ OC.L10N.register( "Failed to rename {currentAlbumName} to {newAlbumName}." : "Lyckades inte döpa om {currentAlbumName} till {newAlbumName}.", "Failed to delete {fileName}." : "Misslyckades att radera {fileName}.", "Failed to favorite files." : "Misslyckades att favorisera filer.", - "Failed to favorite {fileName}." : "Misslyckades att favorisera {fileName}." + "Failed to favorite {fileName}." : "Misslyckades att favorisera {fileName}.", + "Yes" : "Ja", + "No" : "Nej" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/sv.json b/l10n/sv.json index 452e5d2d..0d086b44 100644 --- a/l10n/sv.json +++ b/l10n/sv.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Ladda ner", "Memories" : "Memories", "Settings" : "Inställningar", "People" : "Personer", @@ -13,32 +14,41 @@ "Places" : "Platser", "Map" : "Karta", "Tags" : "Taggar", + "Metadata" : "Metadata", "Edit" : "Ändra", "Explore" : "Utforska", "Cancel" : "Avbryt", "Delete" : "Radera", - "Download" : "Ladda ner", "Favorite" : "Favorit", "Unarchive" : "Ta bort ur arkivet", "View in folder" : "Utforska i mapp", "Add to album" : "Lägg till i album", - "You are about to download a large number of files. Are you sure?" : "Du kommer att ladda ner en stor mängd filer. Är du säker?", - "You are about to delete a large number of files. Are you sure?" : "Du kommer att ta bort ett stort antal filer. Är du säker?", + "Continue" : "Fortsätt", + "Move" : "Flytta", "General" : "Allmänt", "Timeline Path" : "Tidslinjesökväg", + "Viewer" : "Visare", + "Account" : "Konto", "Show hidden folders" : "Visa dolda filer", "Close" : "Stäng", "Failed to load some photos" : "Misslyckades att läsa in vissa foton", "Performance" : "Prestanda", "Unknown" : "Okänd", + "Template" : "Mall", + "No items" : "Inga poster", + "Shared by {user}" : "Delad av {user}", "Add people or groups who can edit your album" : "Lägg till användare eller grupper som kan redigera ditt album", "Search for collaborators" : "Sök efter medarbetare", "Search people or groups" : "Sök personer eller grupper", + "Add {collaboratorLabel} to the collaborators list" : "Lägg till {collaboratorLabel} i listan med medlemmar", + "No collaborators available" : "Inga medlemmar är tillgängliga", + "Remove {collaboratorLabel} from the collaborators list" : "Ta bort {collaboratorLabel} från medlemslistan", "Copy the public link" : "Kopiera den publika länken", "Public link copied!" : "Offentlig länk kopierad!", "Copy public link" : "Kopiera publik länk", "Delete the public link" : "Ta bort den offentliga länken", "Share via public link" : "Dela via offentlig länk", + "Failed to fetch collaborators list." : "Det gick inte att hämta medlemslistan.", "Public link" : "Publik länk", "Failed to fetch album." : "Misslyckades att hämta album.", "Failed to update album." : "Misslyckades att uppdatera album.", @@ -49,11 +59,14 @@ "Location of the album" : "Albumets plats", "Go back to the previous view." : "Gå tillbaka till föregående vy", "Back" : "Tillbaka", + "Go to the add collaborators view." : "Gå till vyn lägg till medlemmar.", + "Add collaborators" : "Lägg till medlemmar", + "Back to the new album form." : "Tillbaka till nytt album formuläret.", "Save" : "Spara", "Create album" : "Skapa album", - "Add selection to album {albumName}" : "Lägg till urval för {albumName}", - "Create a new album." : "Skapa ett nytt album.", - "_Share with %n user_::_Share with %n users_" : ["Dela med en användare","Dela med %n användare"], + "Search" : "Sök", + "Save changes" : "Spara ändringar", + "Save collaborators for this album." : "Spara medlemmar för det här albumet.", "Year" : "År", "Month" : "Månad", "Day" : "Dag", @@ -68,11 +81,11 @@ "Reset" : "Återställ", "Search location / landmark" : "Sök plats / landmärke", "Failed to search for location with Nominatim." : "Det gick inte att söka efter plats med Nominatim.", + "Collaborative Tags" : "Samarbetstaggar", "Remove person" : "Ta bort person", "Rename person" : "Byt namn på person", "Name" : "Namn", "Update" : "Uppdatera", - "Search" : "Sök", "Loading …" : "Läser in …", "Remove" : "Ta bort", "Share link" : "Delningslänk", @@ -84,7 +97,7 @@ "Link copied to clipboard" : "Länken kopierad till urklipp", "Sort by date" : "Sortera efter datum", "Sort by name" : "Sortera efter namn", - "Delete album" : "Radera album", + "Unassigned faces" : "Ej tilldelade ansikten", "Merge with different person" : "Slå ihop med en annan person", "Share folder" : "Dela mapp", "Error saving image" : "Det gick inte att spara bilden", @@ -96,7 +109,6 @@ "Save as" : "Spara som", "All changes will be lost." : "Alla ändringar kommer att gå förlorade.", "Are you sure you want to continue?" : "Är du säker på att du vill fortsätta?", - "Continue" : "Fortsätt", "Undo" : "Ångra", "Redo" : "Gör om", "Show original image" : "Visa originalbilden", @@ -172,6 +184,8 @@ "Failed to rename {currentAlbumName} to {newAlbumName}." : "Lyckades inte döpa om {currentAlbumName} till {newAlbumName}.", "Failed to delete {fileName}." : "Misslyckades att radera {fileName}.", "Failed to favorite files." : "Misslyckades att favorisera filer.", - "Failed to favorite {fileName}." : "Misslyckades att favorisera {fileName}." + "Failed to favorite {fileName}." : "Misslyckades att favorisera {fileName}.", + "Yes" : "Ja", + "No" : "Nej" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/ta.js b/l10n/ta.js index 14b7fea2..e6cbf193 100644 --- a/l10n/ta.js +++ b/l10n/ta.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "பதிவிறக்குக", "Settings" : "அமைப்புகள்", "Info" : "Info", "Favorites" : "விருப்பங்கள்", @@ -9,20 +10,21 @@ OC.L10N.register( "Photos" : "Photos", "Cancel" : "இரத்து செய்க", "Delete" : "நீக்குக", - "Download" : "பதிவிறக்குக", "Favorite" : "விருப்பமான", + "Continue" : "Continue", + "Move" : "Move", "General" : "பொதுவான", "Close" : "மூடுக", "Unknown" : "தெரியாத", "Back" : "பின்னுக்கு", "Save" : "சேமிக்க ", + "Search" : "Search", "Month" : "மாதம்", "Title" : "தலைப்பு", "Description" : "விவரிப்பு", "Label" : "Label", "Name" : "பெயர்", "Update" : "இற்றைப்படுத்தல்", - "Search" : "Search", "Remove" : "அகற்றுக", "Share link" : "இணைப்பைப் பகிரவும்", "Refresh" : "மீள் ஏற்றுக", @@ -31,8 +33,9 @@ OC.L10N.register( "Share" : "பகிர்வு", "Previous" : "முன்தைய", "Next" : "அடுத்த", - "Continue" : "Continue", "Value" : "Value", - "Size" : "அளவு" + "Size" : "அளவு", + "Yes" : "ஆம்", + "No" : "இல்லை" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/ta.json b/l10n/ta.json index f1e2d55c..a33ce28d 100644 --- a/l10n/ta.json +++ b/l10n/ta.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "பதிவிறக்குக", "Settings" : "அமைப்புகள்", "Info" : "Info", "Favorites" : "விருப்பங்கள்", @@ -7,20 +8,21 @@ "Photos" : "Photos", "Cancel" : "இரத்து செய்க", "Delete" : "நீக்குக", - "Download" : "பதிவிறக்குக", "Favorite" : "விருப்பமான", + "Continue" : "Continue", + "Move" : "Move", "General" : "பொதுவான", "Close" : "மூடுக", "Unknown" : "தெரியாத", "Back" : "பின்னுக்கு", "Save" : "சேமிக்க ", + "Search" : "Search", "Month" : "மாதம்", "Title" : "தலைப்பு", "Description" : "விவரிப்பு", "Label" : "Label", "Name" : "பெயர்", "Update" : "இற்றைப்படுத்தல்", - "Search" : "Search", "Remove" : "அகற்றுக", "Share link" : "இணைப்பைப் பகிரவும்", "Refresh" : "மீள் ஏற்றுக", @@ -29,8 +31,9 @@ "Share" : "பகிர்வு", "Previous" : "முன்தைய", "Next" : "அடுத்த", - "Continue" : "Continue", "Value" : "Value", - "Size" : "அளவு" + "Size" : "அளவு", + "Yes" : "ஆம்", + "No" : "இல்லை" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/th.js b/l10n/th.js index fb46a60c..eb9ff6d7 100644 --- a/l10n/th.js +++ b/l10n/th.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "ดาวน์โหลด", "Settings" : "การตั้งค่า", "People" : "ผู้คน", "Info" : "ข้อมูล", @@ -16,12 +17,15 @@ OC.L10N.register( "Explore" : "สำรวจ", "Cancel" : "ยกเลิก", "Delete" : "ลบ", - "Download" : "ดาวน์โหลด", "Favorite" : "รายการโปรด", "View in folder" : "ดูในโฟลเดอร์", + "Continue" : "ดำเนินการต่อ", + "Move" : "ย้าย", "General" : "ทั่วไป", + "Account" : "บัญชี", "Close" : "ปิด", "Unknown" : "ไม่ทราบ", + "No items" : "ไม่มีรายการ", "Public link" : "ลิงก์สาธารณะ", "Name of the album" : "ชื่อของอัลบั้ม", "Location of the album" : "ตำแหน่งของอัลบั้ม", @@ -30,8 +34,8 @@ OC.L10N.register( "Back to the new album form." : "กลับไปยังแบบฟอร์มอัลบั้มใหม่", "Save" : "บันทึก", "Create album" : "สร้างอัลบั้ม", - "Add selection to album {albumName}" : "เพิ่มรายการที่เลือกไปยังอัลบั้ม {albumName}", - "_Share with %n user_::_Share with %n users_" : ["แชร์กับผู้ใช้ %n คน"], + "Search" : "ค้นหา", + "Save changes" : "บันทึกการเปลี่ยนแปลง", "Month" : "เดือน", "Day" : "วัน", "Time" : "เวลา", @@ -42,7 +46,6 @@ OC.L10N.register( "Reset" : "รีเซ็ต", "Name" : "ชื่อ", "Update" : "อัปเดต", - "Search" : "ค้นหา", "Remove" : "ลบออก", "Share link" : "แชร์ลิงก์", "Refresh" : "รีเฟรช", @@ -53,11 +56,12 @@ OC.L10N.register( "Share" : "แชร์", "Previous" : "ก่อนหน้า", "Next" : "ถัดไป", - "Continue" : "ดำเนินการต่อ", "Undo" : "เลิกทำ", "Custom" : "กำหนดเอง", "Text" : "ข้อความ", "Size" : "ขนาด", - "Position" : "ตำแหน่ง" + "Position" : "ตำแหน่ง", + "Yes" : "ใช่", + "No" : "ไม่ตกลง" }, "nplurals=1; plural=0;"); diff --git a/l10n/th.json b/l10n/th.json index fca9c08a..5bc965fc 100644 --- a/l10n/th.json +++ b/l10n/th.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "ดาวน์โหลด", "Settings" : "การตั้งค่า", "People" : "ผู้คน", "Info" : "ข้อมูล", @@ -14,12 +15,15 @@ "Explore" : "สำรวจ", "Cancel" : "ยกเลิก", "Delete" : "ลบ", - "Download" : "ดาวน์โหลด", "Favorite" : "รายการโปรด", "View in folder" : "ดูในโฟลเดอร์", + "Continue" : "ดำเนินการต่อ", + "Move" : "ย้าย", "General" : "ทั่วไป", + "Account" : "บัญชี", "Close" : "ปิด", "Unknown" : "ไม่ทราบ", + "No items" : "ไม่มีรายการ", "Public link" : "ลิงก์สาธารณะ", "Name of the album" : "ชื่อของอัลบั้ม", "Location of the album" : "ตำแหน่งของอัลบั้ม", @@ -28,8 +32,8 @@ "Back to the new album form." : "กลับไปยังแบบฟอร์มอัลบั้มใหม่", "Save" : "บันทึก", "Create album" : "สร้างอัลบั้ม", - "Add selection to album {albumName}" : "เพิ่มรายการที่เลือกไปยังอัลบั้ม {albumName}", - "_Share with %n user_::_Share with %n users_" : ["แชร์กับผู้ใช้ %n คน"], + "Search" : "ค้นหา", + "Save changes" : "บันทึกการเปลี่ยนแปลง", "Month" : "เดือน", "Day" : "วัน", "Time" : "เวลา", @@ -40,7 +44,6 @@ "Reset" : "รีเซ็ต", "Name" : "ชื่อ", "Update" : "อัปเดต", - "Search" : "ค้นหา", "Remove" : "ลบออก", "Share link" : "แชร์ลิงก์", "Refresh" : "รีเฟรช", @@ -51,11 +54,12 @@ "Share" : "แชร์", "Previous" : "ก่อนหน้า", "Next" : "ถัดไป", - "Continue" : "ดำเนินการต่อ", "Undo" : "เลิกทำ", "Custom" : "กำหนดเอง", "Text" : "ข้อความ", "Size" : "ขนาด", - "Position" : "ตำแหน่ง" + "Position" : "ตำแหน่ง", + "Yes" : "ใช่", + "No" : "ไม่ตกลง" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/tk.js b/l10n/tk.js index 403fe103..309d1383 100644 --- a/l10n/tk.js +++ b/l10n/tk.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Göçürip almak", "Settings" : "Sazlamalar", "Favorites" : "Halanýanlar", "Videos" : "Wideo", @@ -9,19 +10,21 @@ OC.L10N.register( "Photos" : "Suratlar", "Cancel" : "ýatyrmak", "Delete" : "Pozmak", - "Download" : "Göçürip almak", "Favorite" : "Halaýan", + "Move" : "Göçüriň", "General" : "Esasy", "Close" : "Ýap", "Unknown" : "Näbelli", "Back" : "Yzyna", "Save" : "Saklamak", - "Name" : "Ady", "Search" : "Gözlemek", + "Name" : "Ady", "Remove" : "Aýyrmak", "Share link" : "Baglanyşyk paýlaş", "Refresh" : "Täzelemek", "Read only" : "Diňe okaň", - "Share" : "Paýlaş" + "Share" : "Paýlaş", + "Yes" : "Hawa", + "No" : "Ýok" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/tk.json b/l10n/tk.json index 30ff4b2b..0f16f7b9 100644 --- a/l10n/tk.json +++ b/l10n/tk.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Göçürip almak", "Settings" : "Sazlamalar", "Favorites" : "Halanýanlar", "Videos" : "Wideo", @@ -7,19 +8,21 @@ "Photos" : "Suratlar", "Cancel" : "ýatyrmak", "Delete" : "Pozmak", - "Download" : "Göçürip almak", "Favorite" : "Halaýan", + "Move" : "Göçüriň", "General" : "Esasy", "Close" : "Ýap", "Unknown" : "Näbelli", "Back" : "Yzyna", "Save" : "Saklamak", - "Name" : "Ady", "Search" : "Gözlemek", + "Name" : "Ady", "Remove" : "Aýyrmak", "Share link" : "Baglanyşyk paýlaş", "Refresh" : "Täzelemek", "Read only" : "Diňe okaň", - "Share" : "Paýlaş" + "Share" : "Paýlaş", + "Yes" : "Hawa", + "No" : "Ýok" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/tr.js b/l10n/tr.js index cc1779f2..9557179f 100644 --- a/l10n/tr.js +++ b/l10n/tr.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "İndir", "Memories" : "Anılar", "Fast, modern and advanced photo management suite" : "Hızlı, modern ve gelişmiş fotoğraf yönetimi uygulaması", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Anılar: Nextcloud için fotoğraf yönetimi\n\nAnılar, Nextcloud için *pilleriyle birlikte* gelen ve aşağıdaki gibi gelişmiş özellikleri bulunan bir fotoğraf yönetimi uygulamasıdır:\n\n- **📸 Zaman tüneli**: Fotoğrafları ve görüntüleri çekildikleri tarihe göre sıralayabilir, EXIF verilerine göre ayrıştırabilirsiniz.\n- **⏪ Geri sarma**: Geçmişte herhangi bir zamana atlayabilir ve anılarınızı yeniden yaşayabilirsiniz.\n- **🤖 Yapay zeka ile etiketleme**: [recognize](https://github.com/nextcloud/recognize) tarafından desteklenen yapay zeka ile fotoğrafları insanlara ve nesnelere göre gruplayabilirsiniz.\n- **🖼️ Albümler**: Fotoğrafları ve görüntüleri birlikte gruplandırmak için albümler oluşturabilirsiniz. Daha sonra bu albümleri başkalarıyla paylaşabilirsiniz.\n- **🫱🏻‍🫲🏻 Dış paylaşım**: Fotoğrafları ve görüntüleri Nextcloud bulut sunucunuzun dışındaki kişilerle paylaşabilirsiniz.\n- **📱 Mobil desteği**: Web uygulaması üzerinden her aygtta her şekil ve boyuttaki aygıtlarda kullanabilirsiniz.\n- **✏️ Üst verileri düzenleme**: Fotoğraflardaki tarihleri ve diğer üst verileri ​​hızlı ve kolay bir şekilde toplu olarak düzenleyebilirsiniz.\n- **📦 Arşiv**: Zaman tünelinizde görmek istemediğiniz fotoğrafları ayrı bir klasörde saklayabilirsiniz.\n- **📹 Görüntü dönüştürme**: Görüntüleri dönüştürebilir ve en iyi başarım için HLS kullanabilirsiniz.\n- **🗺️ Harita**: Fotoğraflarınızı harita üzerinde coğrafi kodu ile etiketlenmiş olarak görüntüleyebilirsiniz.\n- **📦 Aktarım**: fotoğrafları Nextcloud ve Google Takeout üzerinden kolayca aktarabilirsiniz.\n- **⚡️ Başarım**: Bunların tümünü çok hızlı yapabilirsiniz.\n\n## 🚀 Kurulum\n\n1. Uygulamayı Nextcloud uygulama mağazasından yükleyin ([buradan](https://demo.memories.gallery/apps/memories/) deneyebilirsiniz).\n2. Önerilen [yapılandırma adımlarını](https://memories.gallery/config/) gerçekleştirin.\n3. Var olan fotoğrafların üst veri dizinlerini oluşturmak için `php ./occ memory:index` komutunu yürütün.\n4. Nextcloud üzerinde 📷 Anılar uygulamasını açın ve fotoğraflarınızın bulunduğu klasörü ayarlayın.", @@ -24,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "Yüz tanıma", "A better photos experience awaits you" : "Daha iyi bir fotoğraf deneyimi sizi bekliyor", "Choose the root folder of your timeline to begin" : "Zaman tünelinizin başlangıç kök klasörünü seçin", - "If you just installed Memories, run:" : "Anılar uygulamasını yeni kurduysanız şunu çalıştırın:", "Continue to Memories" : "Anılar uygulamasına geç", "Choose again" : "Yeniden seçin", "Click here to start" : "Başlamak için buraya tıklayın", "You can always change this later in settings" : "Bunu daha sonra istediğiniz zaman ayarlar bölümünden değiştirebilirsiniz", + "If you just installed Memories, visit the admin panel first." : "Anılar uygulamasını yeni kurduysanız önce yönetim panosuna gidin.", "Choose the root of your timeline" : "Zaman tünelinizin kök klasörünü seçin", "The selected folder does not seem to be valid. Try again." : "Seçilmiş klasör geçersiz gibi görünüyor. Yeniden deneyin.", + "No photos were found in the selected folder." : "Seçilmiş klasörde herhangi bir fotoğraf bulunamadı.", + "This can happen because your media is still indexing." : "Ortamlarınızın dizine eklenme işlemi sürüyorsa bu durum görülebilir.", + "Visit the admin panel to make sure Memories is configured correctly." : "Yönetim panosuna giderek Anılar uygulamasının doğru yapılandırıldığından emin olun.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{path} yolunda {n} öge bulundu","{path} yolunda {n} öge bulundu"], + "Metadata" : "Üst veriler", "Edit" : "Düzenle", - "No title" : "Başlık yok", - "No description" : "Açıklama yok", + "Failed to load metadata" : "Üst veriler yüklenemedi", "No coordinates" : "Herhangi bir koordinat yok", "Click edit to set location" : "Konumu ayarlamak için düzenle üzerine tıklayın", "Photos" : "Fotoğraflar", @@ -42,7 +46,6 @@ OC.L10N.register( "Cancel" : "İptal", "Delete" : "Sil", "Remove from album" : "Albümden kaldır", - "Download" : "İndir", "Favorite" : "Sık kullanılanlara ekle", "Unarchive" : "Arşivden çıkar", "Edit metadata" : "Üst verileri düzenle", @@ -51,9 +54,12 @@ OC.L10N.register( "Add to album" : "Albüme ekle", "Move to person" : "Kişiye taşı", "Remove from person" : "Kişiden kaldır", - "You are about to download a large number of files. Are you sure?" : "Çok sayıda dosyayı indirmek üzeresiniz. Bunu yapmak istediğinize emin misiniz?", - "You are about to delete a large number of files. Are you sure?" : "Çok sayıda dosyayı silmek üzeresiniz. Bunu yapmak istediğinize emin misiniz?", - "You are about to touch a large number of files. Are you sure?" : "Çok sayıda dosyayı güncellemek üzeresiniz. Bunu yapmak istediğinize emin misiniz?", + "You are about to download a large number of files." : "Çok sayıda dosyayı indirmek üzeresiniz", + "Continue" : "Sürdür", + "You are about to delete a large number of files" : "Çok sayıda dosyayı silmek üzeresiniz", + "Failed to delete files" : "Dosyalar silinemedi", + "Move" : "Taşı", + "You are about to move a large number of files" : "Çok sayıda dosyayı taşımak üzeresiniz", "You must enable \"Mark person in preview\" to use this feature" : "Bu özelliği kullanabilmek için \"Kişiyi ön izlemede işaretle\" seçeneğini etkinleştirmelisiniz", "Only user \"{user}\" can update this person" : "Bu kişiyi yalnızca \"{user}\" kullanıcısı güncelleyebilir", "_{n} selected_::_{n} selected_" : ["{n} seçilmiş","{n} seçilmiş"], @@ -62,31 +68,72 @@ OC.L10N.register( "Timeline Path" : "Zaman tüneli yolu", "Square grid mode" : "Kare tablo kipi", "Show past photos on top of timeline" : "Geçmiş fotoğraflar zaman akışının üzerinde görüntülensin", + "Viewer" : "Görüntüleyici", + "Autoplay Live Photos" : "Live fotoğraflar otomatik oynatılsın", "Load full size image on zoom" : "Yakınlaştırıldığında tam boyutlu görsel yüklensin", "Always load full size image (not recommended)" : "Her zaman tam boyutlu görsel yüklensin (önerilmez)", + "Account" : "Hesap", + "Logged in as {user}" : "{user} olarak oturum açıldı", + "Sign out" : "Oturumu kapat", + "Device Folders" : "Aygıt klasörleri", + "Local folders to include in the timeline view" : "Zaman tüneli görünümüne katılacak yerel klasörler", "Folders Path" : "Klasörlerin yolu", "Show hidden folders" : "Gizli klasörleri görüntüle", "Sort folders oldest-first" : "Klasörleri eskiden yeniye sırala", "Sort albums oldest-first" : "Albümleri eskiden yeniye sırala", "Choose Timeline Paths" : "Zaman tüneli yollarını seçin", "Choose the root for the folders view" : "Klasörler görünümünün kök klasörünü seçin", + "Are you sure you want to log out {user}?" : "{user} kullanıcısının oturumunu kapatmak istediğinize emin misiniz?", "Close" : "Kapat", "{photoCount} photos" : "{photoCount} fotoğraf", "Failed to load some photos" : "Bazı fotoğraflar yüklenemedi", "Failed to update setting" : "Ayar güncellenemedi", - "EXIF Extraction" : "EXIF ayıklama", + "Albums support is enabled through the Photos app." : "Albüm desteği Fotoğraflar uygulamasından açılmış.", + "Albums are disabled because the Photos app is not available." : "Fotoğraflar uygulaması kullanılamadığından albümler de kullanılamıyor.", + "Face Recognition is installed and enabled" : "Yüz tanıma kurulmuş ve etkinleştirilmiş", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Ön izleme oluşturucu kurulmuş ve etkinleştirilmiş. Ek yapılandırma işlemleri gerekli olabilir.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Ön izleme oluşturucu kurulmamış ve yapılandırılmamış. Bu nedenle Anılar uygulaması çok yavaş çalışabilir.", + "Recommended Apps" : "Önerilen uygulamalar", "Path to packaged exiftool binary" : "Paketlenmiş exiftool dosyasının yolu", "You need perl only if the packaged exiftool binary does not work for some reason." : "Perl, yalnızca paketlenmiş exiftool dosyası herhangi bir nedenle çalışmazsa gereklidir.", "Use system perl (only if exiftool binary does not work)" : "Sistem Perl dosyası kullanılsın (yalnızca paketteki exiftool dosyası çalışmıyorsa)", - "Media Indexing" : "Ortam dizini", + "EXIF Extraction" : "EXIF ayıklama", + "You can configure the enabled Nextcloud preview providers below." : "Etkinleştirilmiş Nextcloud ön izleme hizmetlerini aşağıdan yapılandırabilirsiniz.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Ön izlemeler için Imaginary kullanıyorsanız bu bölümü atlayabilirsiniz.", + "To enable RAW support, install the Camera RAW Previews app." : "RAW desteğini etkinleştirmek için Camera RAW Previews uygulamasını kurun.", + "Documentation." : "Belgeler.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick kullanılabilir [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick kullanılamıyor.", + "Image editing will not work correctly." : "Görsel düzenleme özelliği düzgün çalışmayacak.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Küçük görseller bazı biçimlerde (HEIC, TIFF) oluşturulamayabilir.", + "Thumbnails for videos will be generated with this binary." : "Görüntülerin küçük görselleri bu binary dosyasıyla oluşturulur.", + "Thumbnail generation may not work for videos." : "Görüntülerin küçük görselleri oluşturulamayabilir.", + "The following MIME types are configured for preview generation." : "Aşağıdaki MIME türleri, ön izleme için yapılandırılmış.", + "Max preview size (trade-off between quality and storage requirements)." : "En fazla ön izleme boyutu (kalite ile depolama alanı dengesi için)", + "Max memory for preview generation (MB)" : "Ön izleme için kullanılacak en fazla bellek (MB)", + "Max size of preview files (MB)" : "Ön izleme dosyalarının en fazla boyutu (MB)", + "File Support" : "Dosya desteği", + "Images (JPEG, PNG, GIF, BMP)" : "Görseller (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Görüntüler (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Önemli verilerinizi saklamak için Nextcloud ve Anılar uygulamasını seçtiğiniz için teşekkürler!", + "Memories is very feature rich and setting it up properly can take some time." : "Anılar uygulamasında pek çok özellik bulunur ve doğru şekilde kurmak biraz zaman alabilir.", + "If you just installed Memories, make sure you read the getting started guide:" : "Anılar uygulamasını yeni kurduysanız kullanmaya başlama rehberini okuduğunuzdan emin olun:", + "External Link" : "Dış bağlantı", + "In case you run into any issues or bugs, you can get help through several channels." : "Herhangi bir sorun veya hatayla karşılaşmanız durumunda, birkaç kanaldan yardım alabilirsiniz.", + "Memories is a completely free and open source app under active development." : "Anılar, etkin olarak geliştirilen tümüyle ücretsiz ve açık kaynaklı bir uygulamadır.", + "You can contribute in several ways. See the project page for more details:" : "Birkaç şekilde katkıda bulunabilirsiniz. Ayrıntılı bilgi almak için proje sayfasına bakın:", + "Help & Support" : "Yardım ve destek", "{n} media files have been indexed" : "{n} ortam dosyası dizine eklendi", "Automatic Indexing status: {status}" : "Otomatik dizine ekleme durumu: {status}", "Last index job was run {t} seconds ago." : "Son dizine ekleme görevi {t} saniye önce çalıştırıldı.", "It took {t} seconds to complete." : "Görevin tamamlanması {t} saniye sürdü.", "It is still running or was interrupted." : "Görev hala çalışıyor ya da kesintiye uğramış.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Son dizine ekleme görevinin çalıştırılmasından bu yana bir saatten fazla zaman geçmiş gibi görünüyor. Nextcloud zamanlanmış görevinin doğru yapılandırıldığından emin olun.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Yalnızca sunucu tarafında şifreleme (OC_DEFAULT_MODULE) desteklenir. Ancak başka bir şifreleme modülü etkinleştirilmiş.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF dizinleri, düzenli çalıştırılan bir arka plan görevi tarafından oluşturulur ve denetlenir. Otomatik dizine ekleme dışında bir şey seçerken dikkatli olun. Örneğin, dizine eklemeyi yalnızca zaman tüneli klasörlerine ayarlamak, kullanıcı zaman çizelgesi yalnızca oturum açıldıktan sonra yapılandırdığından, ortamın kullanıcılar tarafından kullanılabilmesinden önce gecikmelere neden olabilir.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Folders with a \".nomedia\" dosyası bulunan klasörler hiçbir zaman dizine eklenmez.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "İçinde bir \".nomedia\" ya da \".nomemories\" dosyası bulunan klasörler hiçbir zaman dizine eklenmez.", "Index all media automatically (recommended)" : "Tüm ortamlar otomatik olarak dizine eklensin (önerilir)", "Index per-user timeline folders (not recommended)" : "Her kullanıcının zaman tüneli klasörleri dizine eklensin (önerilmez)", "Index a fixed relative path" : "Sabit bir göreli yolu dizine ekle", @@ -97,31 +144,29 @@ OC.L10N.register( "Force re-indexing of all files:" : "Tüm dosyalar yeniden dizine eklensin:", "You can limit indexing by user and/or folder:" : "Dizine ekleme işlemini kullanıcı ve/veya klasörle sınırlayabilirsiniz", "Clear all existing index tables:" : "Var olan tüm dizin tablolarını temizle:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Aşağıdaki MIME türleri, ön izleme için doğru şekilde yapılandırılmış. Ayrıntılı bilgiler:", - "External Link" : "Dış bağlantı", - "Performance" : "Başarım", + "Media Indexing" : "Ortam dizini", "HTTPS is enabled" : "HTTPS etkin", - "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Bu sayfaya güvenli olmayan bir yöntemle erişiyorsunuz. Bazı tarayıcı API uygulamaları kullanılamıyor. Bu durum Anılar uygulamasını çok yavaşlatır. Başarımı artırmak için sunucunuzda HTTPS özelliğini etkinleştirin.", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Bu sayfaya güvenli olmayan bir yöntemle erişiyorsunuz. Bazı tarayıcı API uygulamaları kullanılamıyor. Bu durum Anılar uygulamasını çok yavaşlatır. Başarımı iyileştirmek için sunucunuzda HTTPS özelliğini etkinleştirin.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ya da HTTP/3 etkin", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 ya da HTTP/3 kullanmanız önemle önerilir ({httpVer} algılandı)", + "Performance" : "Başarım", "Unknown" : "Bilinmiyor", - "Reverse Geocoding" : "Ters coğrafi kodlama", "Database is populated with {n} geometries." : "Veri tabanı {n} geometri ile dolduruldu.", "Geometry table has not been created." : "Geometri tablosu oluşturulmamış.", "Looks like the planet data is incomplete." : "Gezegen verileri eksik gibi görünüyor.", "Reverse geocoding has not been configured ({status})." : "Ters coğrafi kodlama yapılandırılmamış ({status}).", - "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Anılar, MySQL ya da Postgres üzerinde OpenStreetMaps verilerini kullanarak çevrimdışı ters coğrafi kodlamayı destekler.", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Anılar, MySQL ya da Postgres üzerinde OpenStreetMaps verilerini kullanarak çevrim dışı ters coğrafi kodlamayı destekler.", "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Gezegen verilerini veri tabanınıza indirmeniz gerekiyor. Bunu yapmanız önemle önerilir ve oluşturacağı yük küçüktür.", "If the button below does not work for importing the planet data, use the following command:" : "Gezegen verilerini içe aktarmak için aşağıdaki düğme çalışmıyorsa, şu komutu kullanın:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Not: Geometri verileri, herhangi bir ön ek olmadan, memory_planet_geometry tablosunda tutulur.", "Download planet database" : "Gezegen verilerini indir", + "Reverse Geocoding" : "Ters coğrafi kodlama", "Geometry support was not detected in your database" : "Veri tabanınızda geometri desteği bulunamadı", "MySQL-like geometry support was detected " : "MySQL benzeri geometri desteği var", "Postgres native geometry support was detected" : "Postgres doğal geometri desteği var", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Görünüşe göre veri tabanı zaten kurulmuş. Gezegen verilerini yeniden indirmek istediğinize emin misiniz?", "You are about to download the planet database. This may take a while." : "Gezegen veri tabanını indirmek üzeresiniz. Bu işlem biraz zaman alabilir.", "This may also cause all photos to be re-indexed!" : "Bu işlem aynı zamanda tüm fotoğrafların yeniden dizine eklenmesine neden olabilir!", - "Video Streaming" : "Görüntü akışı", "Live transcoding provides for adaptive streaming of videos using HLS." : "Canlı kod dömüştürme HLS kullanarak uyumlu görüntü akışı sağlar.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Bunun, donanım hızlandırması olmadan fazla işlemci yükü oluşturabileceğini ve kod dönüştürmenin dış depolama için kullanılmayacağını unutmayın.", "Enable Transcoding" : "Dönüştürme kullanılsın", @@ -131,14 +176,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "Otomatik (uyumlu dönüştürme)", "Original (transcode with max quality)" : "Özgün (en yüksek kalitede dönüşüm)", "Direct (original video file without transcode)" : "Doğrudan (dönüştürülmemiş özgün görüntü)", - "Hardware Acceleration" : "Donanımsal hızlandırma", + "Video Streaming" : "Görüntü akışı", "You must first make sure the correct drivers are installed before configuring acceleration." : "Hızlandırmayı yapılandırmadan önce doğru sürücülerin kurulduğundan emin olmalısınız.", "Make sure you test hardware acceleration with various options after enabling." : "Donanım hızlandırmayı etkinleştirdikten sonra çeşitli seçenekleri sınadığınızdan emin olun.", "Do not enable multiple types of hardware acceleration simultaneously." : "Birden fazla donanım hızlandırmasını aynı anda etkinleştirmeyin.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "QuickSync Video (QSV) destekleyen Intel işlemciler ve bazı AMD grafik işlemcileri VA-API hızlandırması ile kod dönüştürme için kullanılabilir.", "For more details on driver installation, check the documentation:" : "Sürücü kurulumu hakkında ayrıntılı bilgi almak için belgelere bakın:", "Enable acceleration with VA-API" : "VA-API hızlandırması kullanılsın", - "Enable low-power mode (QSV)" : "Düşük güç kipi kullanılsın (QSV)", + "Enable low-power mode (QSV only)" : "Düşük güç kipi kullanılsın (yalnızca QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA grafik işlemcileri uygun sürücülerle NVENC kodlayıcı ile kod dönüştürme için kullanılabilir.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Kurulu SDK ve ffmpeg sürümlerine bağlı olarak, kullanılacak ölçekleyiciyi belirtmeniz gerekir.", "No automated tests are available for NVIDIA acceleration." : "NVIDIA hızlandırması için herhangi bir otomatik sınama yoktur.", @@ -146,17 +191,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "NVENC Temporal AQ kullanılsın", "NPP scaler" : "NPP ölçekleyici", "CUDA scaler" : "CUDA ölçekleyici", + "not recommended" : "önerilmez", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Belirli donanım sürücülerindeki bir sorun nedeniyle, akış sırasında görüntülerin doğrultusu yanlış olabilir. Bu sorun, bazı durumlarda görüntüyü hızlandırıcı üzerinde döndürerek çözülebilir.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Bu seçeneği yalnızca oynatma sırasında görüntülerin doğrultusu yanlış oluyorsa etkinleştirin.", + "Enable streaming transpose workaround" : "Akış doğrultusunu düzeltmek için geçici çözüm kullanılsın", + "HW Acceleration" : "Donanımsal hızlandırma", "VA-API device ({dev}) is readable" : "VA-API aygıtı ({dev}) okunabilir", "VA-API device ({dev}) not found" : "VA-API aygıtı ({dev}) bulunamadı", "VA-API device ({dev}) has incorrect permissions" : "VA-API aygıtının ({dev}) izinleri doğru değil", "VA-API device status: {status}" : "VA-API aygıtının durumu: {status}", - "Transcoder configuration" : "Dönüştürücü yapılandırması", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Anılar, go-vod kod çözücüsünü kullanır. Go-vod dışarıdan çalıştırılabilir (örneğin, donanım hızlandırması için ayrı bir Docker kapsayıcısında) ya da yerleşik kod çözücü kullanılabilir. Bir dış kod çözücü kullanmak için aşağıdaki seçeneği etkinleştirin ve belgelerdeki yönergeleri izleyin:", "Enable external transcoder (go-vod)" : "Dış dönüştürücü kullanılsın (go-vod)", "Binary path (local only)" : "Dosya yolu (yalnızca yerel)", "Bind address (local only)" : "Bağlanma adresi (yalnızca yerel)", "Connection address (same as bind if local)" : "Bağlantı adresi (yerel ise bağlanma ile aynı)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} öge albüme eklendi","{n} öge albüme eklendi"], + "Transcoder" : "Dönüştürücü", + "Template" : "Kalıp", + "No items" : "Herhangi bir öge yok", + "Shared by {user}" : "{user} tarafından paylaşıldı", + "_{n} item_::_{n} items_" : ["{n} öge","{n} öge"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} fotoğraf gönderildi","{n} fotoğraf gönderildi"], "Add people or groups who can edit your album" : "Albümünüzü düzenleyebilecek kişi ya da grupları ekleyin", "Search for collaborators" : "Katılımcı ara", "Search people or groups" : "Kişi ya da grup arama", @@ -178,7 +232,6 @@ OC.L10N.register( "Could not load the selected album" : "Seçilmiş albüm yüklenemedi", "Remove Album" : "Albümü sil", "Are you sure you want to permanently remove album \"{name}\"?" : "\"{name}\" albümünü silmek istediğinize emin misiniz?", - "Only user \"{user}\" can delete this album" : "Bu albümü yalnızca \"{user}\" kullanıcısı silebilir.", "Failed to delete {name}." : "{name} silinemedi.", "Name of the album" : "Albümün adı", "Location of the album" : "Albümün konumu", @@ -190,12 +243,14 @@ OC.L10N.register( "Save" : "Kaydet", "Create album" : "Albüm ekle", "Invalid album name; should not contain any slashes." : "Albüm adı geçersiz. Albüm adında bölü (/) karakteri bulunamaz.", - "Add selection to album {albumName}" : "Seçilmişleri {albumName} albümüne ekle", - "Create a new album." : "Yeni bir albüm ekler.", - "_%n item_::_%n items_" : ["%n öge","%n öge"], - "_Share with %n user_::_Share with %n users_" : ["%n kullanıcı ile paylaş","%n kullanıcı ile paylaş"], + "Search" : "Arama", + "Create new album." : "Yeni albüm ekle.", + "Save changes" : "Değişiklikleri kaydet", + "_Removed from {n} album_::_Removed from {n} albums_" : ["{n} albümden kaldırıldı","{n} albümden kaldırıldı"], "Share Album" : "Albümü paylaş", "Save collaborators for this album." : "Bu albümün katılımcılarını kaydet.", + "shared by {owner}" : "{owner} tarafından paylaşıldı", + "_%n item_::_%n items_" : ["%n öge","%n öge"], "Newest" : "En yeni", "Year" : "Yıl", "Month" : "Ay", @@ -232,18 +287,19 @@ OC.L10N.register( "Name" : "Ad", "Update" : "Güncelle", "Failed to rename {oldName} to {name}." : "{oldName} adı {name} olarak değiştirilemedi.", - "Search" : "Arama", "Loading …" : "Yükleniyor…", "Enter name of the new face" : "Yeni yüz için bir ad yazın", "Failed to create face" : "Yüz eklenemedi", "Merge {name} with person" : "{name} kişisini kişi ile birleştir", - "Are you sure you want to merge {name} with {newName}?" : "{name} kişisini {newName} kişisi ile birleştirmek istediğinize emin misiniz?", + "Merge faces" : "Yüzleri birleştir", + "Merge {name} with {newName}?" : "{name} kişisi {newName} kişisi ile birleştirilsin mi?", + "unnamed person" : "adlandırılmamış kişi", "Too many failures, aborting" : "Çok sayıda sorun çıktı, vazgeçiliyor", "Error while moving {basename}" : "{basename} taşınırken sorun çıktı", "Failed to move {name}." : "{name} taşınamadı.", "Move selected photos to person" : "Seçilmiş fotoğrafları kişiye taşı", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Seçilmiş fotoğrafları {name} üzerinden {target} üzerine taşımak istediğinize emin misiniz?", - "An error occured while moving photos from {name}." : "Fotoğraflar {name} üzerinden taşınırken bir sorun çıktı.", + "Move the selected photos to {target}?" : "Seçilmiş fotoğraflar {target} üzerine taşınsın mı?", + "An error occurred while moving photos from {name}." : "Fotoğraflar {name} üzerinden taşınırken bir sorun çıktı.", "Choose a folder" : "Bir klasör seçin", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} öge klasöre taşındı","{n} öge klasöre taşındı"], "Remove" : "Kaldır", @@ -278,10 +334,11 @@ OC.L10N.register( "Sort by name" : "Ada göre sırala", "Share album" : "Albümü paylaş", "Download album" : "Albümü indir", - "Delete album" : "Albümü sil", "Nothing to show here" : "Burada görüntülenebilecek bir şey yok", + "Unassigned faces" : "İlişkilendirilmemiş yüzler", "Merge with different person" : "Başka bir kişi ile birleştir", "Mark person in preview" : "Kişiyi ön izlemede işaretle", + "Unnamed person" : "Adlandırılmamış kişi", "Folder View" : "Klasör görünümü", "Timeline View" : "Zaman tüneli görünümü", "Share folder" : "Klasör paylaş", @@ -293,13 +350,13 @@ OC.L10N.register( "Drop changes" : "Değişiklikleri yok say", "Share" : "Paylaş", "Play Live Photo" : "Live Photo oynat", - "Sidebar" : "Yan çubuk", "Download Video" : "Görüntüyü indir", "Slideshow" : "Slayt sunumu", "Previous" : "Önceki", "Next" : "Sonraki", "Editing is currently disabled for Live Photos" : "Live Photos üzerinde düzenleme şu anda devre dışı", "Are you sure you want to delete?" : "Silmek istediğinize emin misiniz?", + "Failed to delete photo" : "Fotoğraf silinemedi", "{name} binary exists and is executable." : "{name} dosyası var ve çalıştırılabilir.", "{name} binary not found." : "{name} dosyası bulunamadı.", "{name} binary is not executable." : "{name} dosyası çalıştırılabilir değil.", @@ -309,7 +366,6 @@ OC.L10N.register( "Save as" : "Farklı kaydet", "All changes will be lost." : "Tüm değişiklikler kaybolacak.", "Are you sure you want to continue?" : "İşlemi sürdürmek istediğinize emin misiniz?", - "Continue" : "Sürdür", "Undo" : "Geri al", "Redo" : "Yinele", "Show original image" : "Özgün görseli görüntüle", @@ -394,6 +450,7 @@ OC.L10N.register( "Auto" : "Otomatik", "Shared Folder" : "Paylaşılmış klasör", "Shared Album" : "Paylaşılmış albüm", + "Failed to remove {filename}." : "{filename} dosyası kaldırılamadı.", "Failed to create {albumName}." : "{albumName} albümü oluşturulamadı.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} albümünün adı {newAlbumName} olarak değiştirilemedi.", "General Failure" : "Genel sorun", @@ -406,6 +463,9 @@ OC.L10N.register( "Failed to favorite files." : "Dosyalar sık kullanılanlara eklenemedi.", "Failed to favorite some files." : "Bazı dosyalar sık kullanılanlara eklenemedi.", "Failed to favorite {fileName}." : "{fileName} sık kullanılanlara eklenemedi.", + "No content-location header found" : "content-location üst bilgisi bulunamadı", + "Failed to create tag {name}: {error}" : "{name} etiketi oluşturulamadı: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Anılar uygulaması {version} sürümüne güncellendi. Yeni sürümü kullanmak için sayfayı yeniden yükleyin.", "Upload some photos and make sure the timeline path is configured" : "Bazı fotoğraflar yükleyin ve zaman tüneli yolunun yapılandırılmış olduğundan emin olun", "Mark photos as favorite to find them easily" : "Fotoğrafları kolayca bulabilmek için beğenilen olarak işaretleyin", "Memories from past years will appear here" : "Geçmiş yılların anıları burada görüntülenir", @@ -418,6 +478,7 @@ OC.L10N.register( "Tag photos to find them easily" : "Fotoğrafları kolayca bulabilmek için etiketleyin", "Recognize is still working on your photos" : "Recognize fotoğraflarınız üzerinde çalışmayı bitirmedi", "Places you have been to will appear here" : "Bulunduğunuz yerler burada görüntülenecek", - "Your Timeline" : "Zaman tüneliniz" + "Yes" : "Evet", + "No" : "Hayır" }, "nplurals=2; plural=(n > 1);"); diff --git a/l10n/tr.json b/l10n/tr.json index 24799707..dcf7b8ca 100644 --- a/l10n/tr.json +++ b/l10n/tr.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "İndir", "Memories" : "Anılar", "Fast, modern and advanced photo management suite" : "Hızlı, modern ve gelişmiş fotoğraf yönetimi uygulaması", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# Anılar: Nextcloud için fotoğraf yönetimi\n\nAnılar, Nextcloud için *pilleriyle birlikte* gelen ve aşağıdaki gibi gelişmiş özellikleri bulunan bir fotoğraf yönetimi uygulamasıdır:\n\n- **📸 Zaman tüneli**: Fotoğrafları ve görüntüleri çekildikleri tarihe göre sıralayabilir, EXIF verilerine göre ayrıştırabilirsiniz.\n- **⏪ Geri sarma**: Geçmişte herhangi bir zamana atlayabilir ve anılarınızı yeniden yaşayabilirsiniz.\n- **🤖 Yapay zeka ile etiketleme**: [recognize](https://github.com/nextcloud/recognize) tarafından desteklenen yapay zeka ile fotoğrafları insanlara ve nesnelere göre gruplayabilirsiniz.\n- **🖼️ Albümler**: Fotoğrafları ve görüntüleri birlikte gruplandırmak için albümler oluşturabilirsiniz. Daha sonra bu albümleri başkalarıyla paylaşabilirsiniz.\n- **🫱🏻‍🫲🏻 Dış paylaşım**: Fotoğrafları ve görüntüleri Nextcloud bulut sunucunuzun dışındaki kişilerle paylaşabilirsiniz.\n- **📱 Mobil desteği**: Web uygulaması üzerinden her aygtta her şekil ve boyuttaki aygıtlarda kullanabilirsiniz.\n- **✏️ Üst verileri düzenleme**: Fotoğraflardaki tarihleri ve diğer üst verileri ​​hızlı ve kolay bir şekilde toplu olarak düzenleyebilirsiniz.\n- **📦 Arşiv**: Zaman tünelinizde görmek istemediğiniz fotoğrafları ayrı bir klasörde saklayabilirsiniz.\n- **📹 Görüntü dönüştürme**: Görüntüleri dönüştürebilir ve en iyi başarım için HLS kullanabilirsiniz.\n- **🗺️ Harita**: Fotoğraflarınızı harita üzerinde coğrafi kodu ile etiketlenmiş olarak görüntüleyebilirsiniz.\n- **📦 Aktarım**: fotoğrafları Nextcloud ve Google Takeout üzerinden kolayca aktarabilirsiniz.\n- **⚡️ Başarım**: Bunların tümünü çok hızlı yapabilirsiniz.\n\n## 🚀 Kurulum\n\n1. Uygulamayı Nextcloud uygulama mağazasından yükleyin ([buradan](https://demo.memories.gallery/apps/memories/) deneyebilirsiniz).\n2. Önerilen [yapılandırma adımlarını](https://memories.gallery/config/) gerçekleştirin.\n3. Var olan fotoğrafların üst veri dizinlerini oluşturmak için `php ./occ memory:index` komutunu yürütün.\n4. Nextcloud üzerinde 📷 Anılar uygulamasını açın ve fotoğraflarınızın bulunduğu klasörü ayarlayın.", @@ -22,17 +23,20 @@ "Face Recognition" : "Yüz tanıma", "A better photos experience awaits you" : "Daha iyi bir fotoğraf deneyimi sizi bekliyor", "Choose the root folder of your timeline to begin" : "Zaman tünelinizin başlangıç kök klasörünü seçin", - "If you just installed Memories, run:" : "Anılar uygulamasını yeni kurduysanız şunu çalıştırın:", "Continue to Memories" : "Anılar uygulamasına geç", "Choose again" : "Yeniden seçin", "Click here to start" : "Başlamak için buraya tıklayın", "You can always change this later in settings" : "Bunu daha sonra istediğiniz zaman ayarlar bölümünden değiştirebilirsiniz", + "If you just installed Memories, visit the admin panel first." : "Anılar uygulamasını yeni kurduysanız önce yönetim panosuna gidin.", "Choose the root of your timeline" : "Zaman tünelinizin kök klasörünü seçin", "The selected folder does not seem to be valid. Try again." : "Seçilmiş klasör geçersiz gibi görünüyor. Yeniden deneyin.", + "No photos were found in the selected folder." : "Seçilmiş klasörde herhangi bir fotoğraf bulunamadı.", + "This can happen because your media is still indexing." : "Ortamlarınızın dizine eklenme işlemi sürüyorsa bu durum görülebilir.", + "Visit the admin panel to make sure Memories is configured correctly." : "Yönetim panosuna giderek Anılar uygulamasının doğru yapılandırıldığından emin olun.", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["{path} yolunda {n} öge bulundu","{path} yolunda {n} öge bulundu"], + "Metadata" : "Üst veriler", "Edit" : "Düzenle", - "No title" : "Başlık yok", - "No description" : "Açıklama yok", + "Failed to load metadata" : "Üst veriler yüklenemedi", "No coordinates" : "Herhangi bir koordinat yok", "Click edit to set location" : "Konumu ayarlamak için düzenle üzerine tıklayın", "Photos" : "Fotoğraflar", @@ -40,7 +44,6 @@ "Cancel" : "İptal", "Delete" : "Sil", "Remove from album" : "Albümden kaldır", - "Download" : "İndir", "Favorite" : "Sık kullanılanlara ekle", "Unarchive" : "Arşivden çıkar", "Edit metadata" : "Üst verileri düzenle", @@ -49,9 +52,12 @@ "Add to album" : "Albüme ekle", "Move to person" : "Kişiye taşı", "Remove from person" : "Kişiden kaldır", - "You are about to download a large number of files. Are you sure?" : "Çok sayıda dosyayı indirmek üzeresiniz. Bunu yapmak istediğinize emin misiniz?", - "You are about to delete a large number of files. Are you sure?" : "Çok sayıda dosyayı silmek üzeresiniz. Bunu yapmak istediğinize emin misiniz?", - "You are about to touch a large number of files. Are you sure?" : "Çok sayıda dosyayı güncellemek üzeresiniz. Bunu yapmak istediğinize emin misiniz?", + "You are about to download a large number of files." : "Çok sayıda dosyayı indirmek üzeresiniz", + "Continue" : "Sürdür", + "You are about to delete a large number of files" : "Çok sayıda dosyayı silmek üzeresiniz", + "Failed to delete files" : "Dosyalar silinemedi", + "Move" : "Taşı", + "You are about to move a large number of files" : "Çok sayıda dosyayı taşımak üzeresiniz", "You must enable \"Mark person in preview\" to use this feature" : "Bu özelliği kullanabilmek için \"Kişiyi ön izlemede işaretle\" seçeneğini etkinleştirmelisiniz", "Only user \"{user}\" can update this person" : "Bu kişiyi yalnızca \"{user}\" kullanıcısı güncelleyebilir", "_{n} selected_::_{n} selected_" : ["{n} seçilmiş","{n} seçilmiş"], @@ -60,31 +66,72 @@ "Timeline Path" : "Zaman tüneli yolu", "Square grid mode" : "Kare tablo kipi", "Show past photos on top of timeline" : "Geçmiş fotoğraflar zaman akışının üzerinde görüntülensin", + "Viewer" : "Görüntüleyici", + "Autoplay Live Photos" : "Live fotoğraflar otomatik oynatılsın", "Load full size image on zoom" : "Yakınlaştırıldığında tam boyutlu görsel yüklensin", "Always load full size image (not recommended)" : "Her zaman tam boyutlu görsel yüklensin (önerilmez)", + "Account" : "Hesap", + "Logged in as {user}" : "{user} olarak oturum açıldı", + "Sign out" : "Oturumu kapat", + "Device Folders" : "Aygıt klasörleri", + "Local folders to include in the timeline view" : "Zaman tüneli görünümüne katılacak yerel klasörler", "Folders Path" : "Klasörlerin yolu", "Show hidden folders" : "Gizli klasörleri görüntüle", "Sort folders oldest-first" : "Klasörleri eskiden yeniye sırala", "Sort albums oldest-first" : "Albümleri eskiden yeniye sırala", "Choose Timeline Paths" : "Zaman tüneli yollarını seçin", "Choose the root for the folders view" : "Klasörler görünümünün kök klasörünü seçin", + "Are you sure you want to log out {user}?" : "{user} kullanıcısının oturumunu kapatmak istediğinize emin misiniz?", "Close" : "Kapat", "{photoCount} photos" : "{photoCount} fotoğraf", "Failed to load some photos" : "Bazı fotoğraflar yüklenemedi", "Failed to update setting" : "Ayar güncellenemedi", - "EXIF Extraction" : "EXIF ayıklama", + "Albums support is enabled through the Photos app." : "Albüm desteği Fotoğraflar uygulamasından açılmış.", + "Albums are disabled because the Photos app is not available." : "Fotoğraflar uygulaması kullanılamadığından albümler de kullanılamıyor.", + "Face Recognition is installed and enabled" : "Yüz tanıma kurulmuş ve etkinleştirilmiş", + "Preview generator is installed and enabled. Additional configuration may still be required." : "Ön izleme oluşturucu kurulmuş ve etkinleştirilmiş. Ek yapılandırma işlemleri gerekli olabilir.", + "Preview generator is not installed and configured. This may make Memories very slow." : "Ön izleme oluşturucu kurulmamış ve yapılandırılmamış. Bu nedenle Anılar uygulaması çok yavaş çalışabilir.", + "Recommended Apps" : "Önerilen uygulamalar", "Path to packaged exiftool binary" : "Paketlenmiş exiftool dosyasının yolu", "You need perl only if the packaged exiftool binary does not work for some reason." : "Perl, yalnızca paketlenmiş exiftool dosyası herhangi bir nedenle çalışmazsa gereklidir.", "Use system perl (only if exiftool binary does not work)" : "Sistem Perl dosyası kullanılsın (yalnızca paketteki exiftool dosyası çalışmıyorsa)", - "Media Indexing" : "Ortam dizini", + "EXIF Extraction" : "EXIF ayıklama", + "You can configure the enabled Nextcloud preview providers below." : "Etkinleştirilmiş Nextcloud ön izleme hizmetlerini aşağıdan yapılandırabilirsiniz.", + "If you are using Imaginary for preview generation, you can ignore this section." : "Ön izlemeler için Imaginary kullanıyorsanız bu bölümü atlayabilirsiniz.", + "To enable RAW support, install the Camera RAW Previews app." : "RAW desteğini etkinleştirmek için Camera RAW Previews uygulamasını kurun.", + "Documentation." : "Belgeler.", + "PHP-Imagick is available [{version}]." : "PHP-Imagick kullanılabilir [{version}].", + "PHP-Imagick is not available." : "PHP-Imagick kullanılamıyor.", + "Image editing will not work correctly." : "Görsel düzenleme özelliği düzgün çalışmayacak.", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "Küçük görseller bazı biçimlerde (HEIC, TIFF) oluşturulamayabilir.", + "Thumbnails for videos will be generated with this binary." : "Görüntülerin küçük görselleri bu binary dosyasıyla oluşturulur.", + "Thumbnail generation may not work for videos." : "Görüntülerin küçük görselleri oluşturulamayabilir.", + "The following MIME types are configured for preview generation." : "Aşağıdaki MIME türleri, ön izleme için yapılandırılmış.", + "Max preview size (trade-off between quality and storage requirements)." : "En fazla ön izleme boyutu (kalite ile depolama alanı dengesi için)", + "Max memory for preview generation (MB)" : "Ön izleme için kullanılacak en fazla bellek (MB)", + "Max size of preview files (MB)" : "Ön izleme dosyalarının en fazla boyutu (MB)", + "File Support" : "Dosya desteği", + "Images (JPEG, PNG, GIF, BMP)" : "Görseller (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "Görüntüler (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "Önemli verilerinizi saklamak için Nextcloud ve Anılar uygulamasını seçtiğiniz için teşekkürler!", + "Memories is very feature rich and setting it up properly can take some time." : "Anılar uygulamasında pek çok özellik bulunur ve doğru şekilde kurmak biraz zaman alabilir.", + "If you just installed Memories, make sure you read the getting started guide:" : "Anılar uygulamasını yeni kurduysanız kullanmaya başlama rehberini okuduğunuzdan emin olun:", + "External Link" : "Dış bağlantı", + "In case you run into any issues or bugs, you can get help through several channels." : "Herhangi bir sorun veya hatayla karşılaşmanız durumunda, birkaç kanaldan yardım alabilirsiniz.", + "Memories is a completely free and open source app under active development." : "Anılar, etkin olarak geliştirilen tümüyle ücretsiz ve açık kaynaklı bir uygulamadır.", + "You can contribute in several ways. See the project page for more details:" : "Birkaç şekilde katkıda bulunabilirsiniz. Ayrıntılı bilgi almak için proje sayfasına bakın:", + "Help & Support" : "Yardım ve destek", "{n} media files have been indexed" : "{n} ortam dosyası dizine eklendi", "Automatic Indexing status: {status}" : "Otomatik dizine ekleme durumu: {status}", "Last index job was run {t} seconds ago." : "Son dizine ekleme görevi {t} saniye önce çalıştırıldı.", "It took {t} seconds to complete." : "Görevin tamamlanması {t} saniye sürdü.", "It is still running or was interrupted." : "Görev hala çalışıyor ya da kesintiye uğramış.", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "Son dizine ekleme görevinin çalıştırılmasından bu yana bir saatten fazla zaman geçmiş gibi görünüyor. Nextcloud zamanlanmış görevinin doğru yapılandırıldığından emin olun.", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "Yalnızca sunucu tarafında şifreleme (OC_DEFAULT_MODULE) desteklenir. Ancak başka bir şifreleme modülü etkinleştirilmiş.", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF dizinleri, düzenli çalıştırılan bir arka plan görevi tarafından oluşturulur ve denetlenir. Otomatik dizine ekleme dışında bir şey seçerken dikkatli olun. Örneğin, dizine eklemeyi yalnızca zaman tüneli klasörlerine ayarlamak, kullanıcı zaman çizelgesi yalnızca oturum açıldıktan sonra yapılandırdığından, ortamın kullanıcılar tarafından kullanılabilmesinden önce gecikmelere neden olabilir.", - "Folders with a \".nomedia\" file are always excluded from indexing." : "Folders with a \".nomedia\" dosyası bulunan klasörler hiçbir zaman dizine eklenmez.", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "İçinde bir \".nomedia\" ya da \".nomemories\" dosyası bulunan klasörler hiçbir zaman dizine eklenmez.", "Index all media automatically (recommended)" : "Tüm ortamlar otomatik olarak dizine eklensin (önerilir)", "Index per-user timeline folders (not recommended)" : "Her kullanıcının zaman tüneli klasörleri dizine eklensin (önerilmez)", "Index a fixed relative path" : "Sabit bir göreli yolu dizine ekle", @@ -95,31 +142,29 @@ "Force re-indexing of all files:" : "Tüm dosyalar yeniden dizine eklensin:", "You can limit indexing by user and/or folder:" : "Dizine ekleme işlemini kullanıcı ve/veya klasörle sınırlayabilirsiniz", "Clear all existing index tables:" : "Var olan tüm dizin tablolarını temizle:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "Aşağıdaki MIME türleri, ön izleme için doğru şekilde yapılandırılmış. Ayrıntılı bilgiler:", - "External Link" : "Dış bağlantı", - "Performance" : "Başarım", + "Media Indexing" : "Ortam dizini", "HTTPS is enabled" : "HTTPS etkin", - "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Bu sayfaya güvenli olmayan bir yöntemle erişiyorsunuz. Bazı tarayıcı API uygulamaları kullanılamıyor. Bu durum Anılar uygulamasını çok yavaşlatır. Başarımı artırmak için sunucunuzda HTTPS özelliğini etkinleştirin.", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "Bu sayfaya güvenli olmayan bir yöntemle erişiyorsunuz. Bazı tarayıcı API uygulamaları kullanılamıyor. Bu durum Anılar uygulamasını çok yavaşlatır. Başarımı iyileştirmek için sunucunuzda HTTPS özelliğini etkinleştirin.", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 ya da HTTP/3 etkin", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "HTTP/2 ya da HTTP/3 kullanmanız önemle önerilir ({httpVer} algılandı)", + "Performance" : "Başarım", "Unknown" : "Bilinmiyor", - "Reverse Geocoding" : "Ters coğrafi kodlama", "Database is populated with {n} geometries." : "Veri tabanı {n} geometri ile dolduruldu.", "Geometry table has not been created." : "Geometri tablosu oluşturulmamış.", "Looks like the planet data is incomplete." : "Gezegen verileri eksik gibi görünüyor.", "Reverse geocoding has not been configured ({status})." : "Ters coğrafi kodlama yapılandırılmamış ({status}).", - "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Anılar, MySQL ya da Postgres üzerinde OpenStreetMaps verilerini kullanarak çevrimdışı ters coğrafi kodlamayı destekler.", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Anılar, MySQL ya da Postgres üzerinde OpenStreetMaps verilerini kullanarak çevrim dışı ters coğrafi kodlamayı destekler.", "You need to download the planet data into your database. This is highly recommended and has low overhead." : "Gezegen verilerini veri tabanınıza indirmeniz gerekiyor. Bunu yapmanız önemle önerilir ve oluşturacağı yük küçüktür.", "If the button below does not work for importing the planet data, use the following command:" : "Gezegen verilerini içe aktarmak için aşağıdaki düğme çalışmıyorsa, şu komutu kullanın:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "Not: Geometri verileri, herhangi bir ön ek olmadan, memory_planet_geometry tablosunda tutulur.", "Download planet database" : "Gezegen verilerini indir", + "Reverse Geocoding" : "Ters coğrafi kodlama", "Geometry support was not detected in your database" : "Veri tabanınızda geometri desteği bulunamadı", "MySQL-like geometry support was detected " : "MySQL benzeri geometri desteği var", "Postgres native geometry support was detected" : "Postgres doğal geometri desteği var", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "Görünüşe göre veri tabanı zaten kurulmuş. Gezegen verilerini yeniden indirmek istediğinize emin misiniz?", "You are about to download the planet database. This may take a while." : "Gezegen veri tabanını indirmek üzeresiniz. Bu işlem biraz zaman alabilir.", "This may also cause all photos to be re-indexed!" : "Bu işlem aynı zamanda tüm fotoğrafların yeniden dizine eklenmesine neden olabilir!", - "Video Streaming" : "Görüntü akışı", "Live transcoding provides for adaptive streaming of videos using HLS." : "Canlı kod dömüştürme HLS kullanarak uyumlu görüntü akışı sağlar.", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "Bunun, donanım hızlandırması olmadan fazla işlemci yükü oluşturabileceğini ve kod dönüştürmenin dış depolama için kullanılmayacağını unutmayın.", "Enable Transcoding" : "Dönüştürme kullanılsın", @@ -129,14 +174,14 @@ "Auto (adaptive transcode)" : "Otomatik (uyumlu dönüştürme)", "Original (transcode with max quality)" : "Özgün (en yüksek kalitede dönüşüm)", "Direct (original video file without transcode)" : "Doğrudan (dönüştürülmemiş özgün görüntü)", - "Hardware Acceleration" : "Donanımsal hızlandırma", + "Video Streaming" : "Görüntü akışı", "You must first make sure the correct drivers are installed before configuring acceleration." : "Hızlandırmayı yapılandırmadan önce doğru sürücülerin kurulduğundan emin olmalısınız.", "Make sure you test hardware acceleration with various options after enabling." : "Donanım hızlandırmayı etkinleştirdikten sonra çeşitli seçenekleri sınadığınızdan emin olun.", "Do not enable multiple types of hardware acceleration simultaneously." : "Birden fazla donanım hızlandırmasını aynı anda etkinleştirmeyin.", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "QuickSync Video (QSV) destekleyen Intel işlemciler ve bazı AMD grafik işlemcileri VA-API hızlandırması ile kod dönüştürme için kullanılabilir.", "For more details on driver installation, check the documentation:" : "Sürücü kurulumu hakkında ayrıntılı bilgi almak için belgelere bakın:", "Enable acceleration with VA-API" : "VA-API hızlandırması kullanılsın", - "Enable low-power mode (QSV)" : "Düşük güç kipi kullanılsın (QSV)", + "Enable low-power mode (QSV only)" : "Düşük güç kipi kullanılsın (yalnızca QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA grafik işlemcileri uygun sürücülerle NVENC kodlayıcı ile kod dönüştürme için kullanılabilir.", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "Kurulu SDK ve ffmpeg sürümlerine bağlı olarak, kullanılacak ölçekleyiciyi belirtmeniz gerekir.", "No automated tests are available for NVIDIA acceleration." : "NVIDIA hızlandırması için herhangi bir otomatik sınama yoktur.", @@ -144,17 +189,26 @@ "Enable NVENC Temporal AQ" : "NVENC Temporal AQ kullanılsın", "NPP scaler" : "NPP ölçekleyici", "CUDA scaler" : "CUDA ölçekleyici", + "not recommended" : "önerilmez", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "Belirli donanım sürücülerindeki bir sorun nedeniyle, akış sırasında görüntülerin doğrultusu yanlış olabilir. Bu sorun, bazı durumlarda görüntüyü hızlandırıcı üzerinde döndürerek çözülebilir.", + "Enable the following option only if you have incorrectly oriented videos during playback." : "Bu seçeneği yalnızca oynatma sırasında görüntülerin doğrultusu yanlış oluyorsa etkinleştirin.", + "Enable streaming transpose workaround" : "Akış doğrultusunu düzeltmek için geçici çözüm kullanılsın", + "HW Acceleration" : "Donanımsal hızlandırma", "VA-API device ({dev}) is readable" : "VA-API aygıtı ({dev}) okunabilir", "VA-API device ({dev}) not found" : "VA-API aygıtı ({dev}) bulunamadı", "VA-API device ({dev}) has incorrect permissions" : "VA-API aygıtının ({dev}) izinleri doğru değil", "VA-API device status: {status}" : "VA-API aygıtının durumu: {status}", - "Transcoder configuration" : "Dönüştürücü yapılandırması", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Anılar, go-vod kod çözücüsünü kullanır. Go-vod dışarıdan çalıştırılabilir (örneğin, donanım hızlandırması için ayrı bir Docker kapsayıcısında) ya da yerleşik kod çözücü kullanılabilir. Bir dış kod çözücü kullanmak için aşağıdaki seçeneği etkinleştirin ve belgelerdeki yönergeleri izleyin:", "Enable external transcoder (go-vod)" : "Dış dönüştürücü kullanılsın (go-vod)", "Binary path (local only)" : "Dosya yolu (yalnızca yerel)", "Bind address (local only)" : "Bağlanma adresi (yalnızca yerel)", "Connection address (same as bind if local)" : "Bağlantı adresi (yerel ise bağlanma ile aynı)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} öge albüme eklendi","{n} öge albüme eklendi"], + "Transcoder" : "Dönüştürücü", + "Template" : "Kalıp", + "No items" : "Herhangi bir öge yok", + "Shared by {user}" : "{user} tarafından paylaşıldı", + "_{n} item_::_{n} items_" : ["{n} öge","{n} öge"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} fotoğraf gönderildi","{n} fotoğraf gönderildi"], "Add people or groups who can edit your album" : "Albümünüzü düzenleyebilecek kişi ya da grupları ekleyin", "Search for collaborators" : "Katılımcı ara", "Search people or groups" : "Kişi ya da grup arama", @@ -176,7 +230,6 @@ "Could not load the selected album" : "Seçilmiş albüm yüklenemedi", "Remove Album" : "Albümü sil", "Are you sure you want to permanently remove album \"{name}\"?" : "\"{name}\" albümünü silmek istediğinize emin misiniz?", - "Only user \"{user}\" can delete this album" : "Bu albümü yalnızca \"{user}\" kullanıcısı silebilir.", "Failed to delete {name}." : "{name} silinemedi.", "Name of the album" : "Albümün adı", "Location of the album" : "Albümün konumu", @@ -188,12 +241,14 @@ "Save" : "Kaydet", "Create album" : "Albüm ekle", "Invalid album name; should not contain any slashes." : "Albüm adı geçersiz. Albüm adında bölü (/) karakteri bulunamaz.", - "Add selection to album {albumName}" : "Seçilmişleri {albumName} albümüne ekle", - "Create a new album." : "Yeni bir albüm ekler.", - "_%n item_::_%n items_" : ["%n öge","%n öge"], - "_Share with %n user_::_Share with %n users_" : ["%n kullanıcı ile paylaş","%n kullanıcı ile paylaş"], + "Search" : "Arama", + "Create new album." : "Yeni albüm ekle.", + "Save changes" : "Değişiklikleri kaydet", + "_Removed from {n} album_::_Removed from {n} albums_" : ["{n} albümden kaldırıldı","{n} albümden kaldırıldı"], "Share Album" : "Albümü paylaş", "Save collaborators for this album." : "Bu albümün katılımcılarını kaydet.", + "shared by {owner}" : "{owner} tarafından paylaşıldı", + "_%n item_::_%n items_" : ["%n öge","%n öge"], "Newest" : "En yeni", "Year" : "Yıl", "Month" : "Ay", @@ -230,18 +285,19 @@ "Name" : "Ad", "Update" : "Güncelle", "Failed to rename {oldName} to {name}." : "{oldName} adı {name} olarak değiştirilemedi.", - "Search" : "Arama", "Loading …" : "Yükleniyor…", "Enter name of the new face" : "Yeni yüz için bir ad yazın", "Failed to create face" : "Yüz eklenemedi", "Merge {name} with person" : "{name} kişisini kişi ile birleştir", - "Are you sure you want to merge {name} with {newName}?" : "{name} kişisini {newName} kişisi ile birleştirmek istediğinize emin misiniz?", + "Merge faces" : "Yüzleri birleştir", + "Merge {name} with {newName}?" : "{name} kişisi {newName} kişisi ile birleştirilsin mi?", + "unnamed person" : "adlandırılmamış kişi", "Too many failures, aborting" : "Çok sayıda sorun çıktı, vazgeçiliyor", "Error while moving {basename}" : "{basename} taşınırken sorun çıktı", "Failed to move {name}." : "{name} taşınamadı.", "Move selected photos to person" : "Seçilmiş fotoğrafları kişiye taşı", - "Are you sure you want to move the selected photos from {name} to {target}?" : "Seçilmiş fotoğrafları {name} üzerinden {target} üzerine taşımak istediğinize emin misiniz?", - "An error occured while moving photos from {name}." : "Fotoğraflar {name} üzerinden taşınırken bir sorun çıktı.", + "Move the selected photos to {target}?" : "Seçilmiş fotoğraflar {target} üzerine taşınsın mı?", + "An error occurred while moving photos from {name}." : "Fotoğraflar {name} üzerinden taşınırken bir sorun çıktı.", "Choose a folder" : "Bir klasör seçin", "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n} öge klasöre taşındı","{n} öge klasöre taşındı"], "Remove" : "Kaldır", @@ -276,10 +332,11 @@ "Sort by name" : "Ada göre sırala", "Share album" : "Albümü paylaş", "Download album" : "Albümü indir", - "Delete album" : "Albümü sil", "Nothing to show here" : "Burada görüntülenebilecek bir şey yok", + "Unassigned faces" : "İlişkilendirilmemiş yüzler", "Merge with different person" : "Başka bir kişi ile birleştir", "Mark person in preview" : "Kişiyi ön izlemede işaretle", + "Unnamed person" : "Adlandırılmamış kişi", "Folder View" : "Klasör görünümü", "Timeline View" : "Zaman tüneli görünümü", "Share folder" : "Klasör paylaş", @@ -291,13 +348,13 @@ "Drop changes" : "Değişiklikleri yok say", "Share" : "Paylaş", "Play Live Photo" : "Live Photo oynat", - "Sidebar" : "Yan çubuk", "Download Video" : "Görüntüyü indir", "Slideshow" : "Slayt sunumu", "Previous" : "Önceki", "Next" : "Sonraki", "Editing is currently disabled for Live Photos" : "Live Photos üzerinde düzenleme şu anda devre dışı", "Are you sure you want to delete?" : "Silmek istediğinize emin misiniz?", + "Failed to delete photo" : "Fotoğraf silinemedi", "{name} binary exists and is executable." : "{name} dosyası var ve çalıştırılabilir.", "{name} binary not found." : "{name} dosyası bulunamadı.", "{name} binary is not executable." : "{name} dosyası çalıştırılabilir değil.", @@ -307,7 +364,6 @@ "Save as" : "Farklı kaydet", "All changes will be lost." : "Tüm değişiklikler kaybolacak.", "Are you sure you want to continue?" : "İşlemi sürdürmek istediğinize emin misiniz?", - "Continue" : "Sürdür", "Undo" : "Geri al", "Redo" : "Yinele", "Show original image" : "Özgün görseli görüntüle", @@ -392,6 +448,7 @@ "Auto" : "Otomatik", "Shared Folder" : "Paylaşılmış klasör", "Shared Album" : "Paylaşılmış albüm", + "Failed to remove {filename}." : "{filename} dosyası kaldırılamadı.", "Failed to create {albumName}." : "{albumName} albümü oluşturulamadı.", "Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} albümünün adı {newAlbumName} olarak değiştirilemedi.", "General Failure" : "Genel sorun", @@ -404,6 +461,9 @@ "Failed to favorite files." : "Dosyalar sık kullanılanlara eklenemedi.", "Failed to favorite some files." : "Bazı dosyalar sık kullanılanlara eklenemedi.", "Failed to favorite {fileName}." : "{fileName} sık kullanılanlara eklenemedi.", + "No content-location header found" : "content-location üst bilgisi bulunamadı", + "Failed to create tag {name}: {error}" : "{name} etiketi oluşturulamadı: {error}", + "Memories has been updated to {version}. Reload to get the new version." : "Anılar uygulaması {version} sürümüne güncellendi. Yeni sürümü kullanmak için sayfayı yeniden yükleyin.", "Upload some photos and make sure the timeline path is configured" : "Bazı fotoğraflar yükleyin ve zaman tüneli yolunun yapılandırılmış olduğundan emin olun", "Mark photos as favorite to find them easily" : "Fotoğrafları kolayca bulabilmek için beğenilen olarak işaretleyin", "Memories from past years will appear here" : "Geçmiş yılların anıları burada görüntülenir", @@ -416,6 +476,7 @@ "Tag photos to find them easily" : "Fotoğrafları kolayca bulabilmek için etiketleyin", "Recognize is still working on your photos" : "Recognize fotoğraflarınız üzerinde çalışmayı bitirmedi", "Places you have been to will appear here" : "Bulunduğunuz yerler burada görüntülenecek", - "Your Timeline" : "Zaman tüneliniz" + "Yes" : "Evet", + "No" : "Hayır" },"pluralForm" :"nplurals=2; plural=(n > 1);" } \ No newline at end of file diff --git a/l10n/ug.js b/l10n/ug.js index d6e4a395..0fa3a8ad 100644 --- a/l10n/ug.js +++ b/l10n/ug.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "چۈشۈر", "Settings" : "تەڭشەكلەر", "Info" : "Info", "Favorites" : "يىغقۇچ", @@ -8,18 +9,18 @@ OC.L10N.register( "Edit" : "تەھرىر", "Cancel" : "ۋاز كەچ", "Delete" : "ئۆچۈر", - "Download" : "چۈشۈر", "Favorite" : "يىغقۇچ", + "Move" : "Move", "General" : "ئادەتتىكى", "Close" : "ياپ", "Save" : "ساقلا", + "Search" : "Search", "Month" : "ئاي", "Time" : "ۋاقىت", "Title" : "ماۋزۇ", "Description" : "چۈشەندۈرۈش", "Name" : "ئاتى", "Update" : "يېڭىلا", - "Search" : "Search", "Remove" : "چىقىرىۋەت", "Share link" : "Share link", "Refresh" : "يېڭىلا", @@ -28,6 +29,8 @@ OC.L10N.register( "Share" : "ھەمبەھىر", "Previous" : "ئالدىنقى", "Next" : "كېيىنكى", - "Size" : "چوڭلۇقى" + "Size" : "چوڭلۇقى", + "Yes" : "ھەئە", + "No" : "ياق" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/ug.json b/l10n/ug.json index 37b9c34e..37746443 100644 --- a/l10n/ug.json +++ b/l10n/ug.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "چۈشۈر", "Settings" : "تەڭشەكلەر", "Info" : "Info", "Favorites" : "يىغقۇچ", @@ -6,18 +7,18 @@ "Edit" : "تەھرىر", "Cancel" : "ۋاز كەچ", "Delete" : "ئۆچۈر", - "Download" : "چۈشۈر", "Favorite" : "يىغقۇچ", + "Move" : "Move", "General" : "ئادەتتىكى", "Close" : "ياپ", "Save" : "ساقلا", + "Search" : "Search", "Month" : "ئاي", "Time" : "ۋاقىت", "Title" : "ماۋزۇ", "Description" : "چۈشەندۈرۈش", "Name" : "ئاتى", "Update" : "يېڭىلا", - "Search" : "Search", "Remove" : "چىقىرىۋەت", "Share link" : "Share link", "Refresh" : "يېڭىلا", @@ -26,6 +27,8 @@ "Share" : "ھەمبەھىر", "Previous" : "ئالدىنقى", "Next" : "كېيىنكى", - "Size" : "چوڭلۇقى" + "Size" : "چوڭلۇقى", + "Yes" : "ھەئە", + "No" : "ياق" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/uk.js b/l10n/uk.js index 38bf45cf..a89c2d01 100644 --- a/l10n/uk.js +++ b/l10n/uk.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Звантажити", "Memories" : "Спогади", "Settings" : "Налаштування", "People" : "Люди", @@ -17,24 +18,29 @@ OC.L10N.register( "Tags" : "Мітки", "A better photos experience awaits you" : "На вас чекає краща якість фотографій", "Choose the root folder of your timeline to begin" : "Виберіть кореневу папку вашої шкали часу для початку ", + "Metadata" : "Метадані", "Edit" : "Редагувати", "Photos" : "Світлини", "Explore" : "Дослідити", "Cancel" : "Скасувати", "Delete" : "Вилучити", - "Download" : "Звантажити", - "Favorite" : "Вподобати", + "Favorite" : "Додати зірочку", "Unarchive" : "Розархівувати", "View in folder" : "Переглянути у каталозі", "Add to album" : "Додати в альбом", - "You are about to download a large number of files. Are you sure?" : "Ви збираєтеся завантажити велику кількість файлів. Ти впевнений?", - "You are about to delete a large number of files. Are you sure?" : "Ви збираєтеся вилучити велику кількість файлів. Чи ви впевнені?", + "Continue" : "Продовжити", + "Move" : "Перемістити", "General" : "Загальне", "Timeline Path" : "Шлях шкали часу", + "Viewer" : "Переглядач", + "Account" : "Обліковий запис", "Show hidden folders" : "Показати приховані каталоги", "Close" : "Закрити", "Failed to load some photos" : "Не вдалося завантажити деякі фотографії", "Unknown" : "Невідомо", + "Template" : "Шаблон", + "No items" : "Відсутні елементи", + "Shared by {user}" : "{user} надав(-ла) доступ", "Add people or groups who can edit your album" : "Додайте людей або групи, які можуть редагувати ваш альбом", "Search for collaborators" : "Пошук співавторів", "Search people or groups" : "Пошук людей або груп", @@ -62,8 +68,7 @@ OC.L10N.register( "Back to the new album form." : "Повернутися до форми нового альбому.", "Save" : "Зберегти", "Create album" : "Створити альбом", - "Add selection to album {albumName}" : "Додати виділення до альбому {albumName}", - "Create a new album." : "Створіть новий альбом.", + "Search" : "Пошук", "Save collaborators for this album." : "Зберегти співавторів для цього альбому.", "Year" : "Рік", "Month" : "Місяць", @@ -76,11 +81,11 @@ OC.L10N.register( "Copyright" : "Права на копіюівння", "Empty" : "Порожньо", "Reset" : "Скидання", + "Collaborative Tags" : "Мітки для співпраці", "Remove person" : "Вилучити особу", "Rename person" : "Перейменувати особу", "Name" : "Назва", "Update" : "Оновлення", - "Search" : "Пошук", "Loading …" : "Завантаження …", "Remove" : "Вилучити", "Share link" : "Поділитися посиланням", @@ -90,20 +95,18 @@ OC.L10N.register( "Read only" : "Тільки читання", "Sort by date" : "Впорядкувати за датою", "Sort by name" : "Впорядкувати за ім’ям", - "Delete album" : "Вилучити альбом", + "Unassigned faces" : "Неідентифіковані обличчя", "Merge with different person" : "Злитися з іншою людиною", "Share folder" : "Спільний доступ для каталогу", "Error saving image" : "Помилка збереження зображення", "Unsaved changes" : "Незбережені зміни", "Drop changes" : "Відкинути зміни", "Share" : "Спільний доступ", - "Sidebar" : "Бокове меню", "Previous" : "Назад", "Next" : "Далі", "Save as" : "Зберегти як", "All changes will be lost." : "Усі зміни буде втрачено.", "Are you sure you want to continue?" : "Ви впевнені, що бажаєте продовжити?", - "Continue" : "Продовжити", "Undo" : "Скасувати", "Redo" : "Повторити", "Show original image" : "Показати вихідне зображення", @@ -174,7 +177,7 @@ OC.L10N.register( "Vertical" : "Вертикальний", "Opacity" : "Непрозорість", "Position" : "Позиція", - "Stroke" : "Інсульт", + "Stroke" : "Товщина", "Save image as" : "Зберегти зображення як", "Extension" : "Розширення", "Name is required." : "Ім'я є обов'язковим.", diff --git a/l10n/uk.json b/l10n/uk.json index d3a24df0..0cf59950 100644 --- a/l10n/uk.json +++ b/l10n/uk.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Звантажити", "Memories" : "Спогади", "Settings" : "Налаштування", "People" : "Люди", @@ -15,24 +16,29 @@ "Tags" : "Мітки", "A better photos experience awaits you" : "На вас чекає краща якість фотографій", "Choose the root folder of your timeline to begin" : "Виберіть кореневу папку вашої шкали часу для початку ", + "Metadata" : "Метадані", "Edit" : "Редагувати", "Photos" : "Світлини", "Explore" : "Дослідити", "Cancel" : "Скасувати", "Delete" : "Вилучити", - "Download" : "Звантажити", - "Favorite" : "Вподобати", + "Favorite" : "Додати зірочку", "Unarchive" : "Розархівувати", "View in folder" : "Переглянути у каталозі", "Add to album" : "Додати в альбом", - "You are about to download a large number of files. Are you sure?" : "Ви збираєтеся завантажити велику кількість файлів. Ти впевнений?", - "You are about to delete a large number of files. Are you sure?" : "Ви збираєтеся вилучити велику кількість файлів. Чи ви впевнені?", + "Continue" : "Продовжити", + "Move" : "Перемістити", "General" : "Загальне", "Timeline Path" : "Шлях шкали часу", + "Viewer" : "Переглядач", + "Account" : "Обліковий запис", "Show hidden folders" : "Показати приховані каталоги", "Close" : "Закрити", "Failed to load some photos" : "Не вдалося завантажити деякі фотографії", "Unknown" : "Невідомо", + "Template" : "Шаблон", + "No items" : "Відсутні елементи", + "Shared by {user}" : "{user} надав(-ла) доступ", "Add people or groups who can edit your album" : "Додайте людей або групи, які можуть редагувати ваш альбом", "Search for collaborators" : "Пошук співавторів", "Search people or groups" : "Пошук людей або груп", @@ -60,8 +66,7 @@ "Back to the new album form." : "Повернутися до форми нового альбому.", "Save" : "Зберегти", "Create album" : "Створити альбом", - "Add selection to album {albumName}" : "Додати виділення до альбому {albumName}", - "Create a new album." : "Створіть новий альбом.", + "Search" : "Пошук", "Save collaborators for this album." : "Зберегти співавторів для цього альбому.", "Year" : "Рік", "Month" : "Місяць", @@ -74,11 +79,11 @@ "Copyright" : "Права на копіюівння", "Empty" : "Порожньо", "Reset" : "Скидання", + "Collaborative Tags" : "Мітки для співпраці", "Remove person" : "Вилучити особу", "Rename person" : "Перейменувати особу", "Name" : "Назва", "Update" : "Оновлення", - "Search" : "Пошук", "Loading …" : "Завантаження …", "Remove" : "Вилучити", "Share link" : "Поділитися посиланням", @@ -88,20 +93,18 @@ "Read only" : "Тільки читання", "Sort by date" : "Впорядкувати за датою", "Sort by name" : "Впорядкувати за ім’ям", - "Delete album" : "Вилучити альбом", + "Unassigned faces" : "Неідентифіковані обличчя", "Merge with different person" : "Злитися з іншою людиною", "Share folder" : "Спільний доступ для каталогу", "Error saving image" : "Помилка збереження зображення", "Unsaved changes" : "Незбережені зміни", "Drop changes" : "Відкинути зміни", "Share" : "Спільний доступ", - "Sidebar" : "Бокове меню", "Previous" : "Назад", "Next" : "Далі", "Save as" : "Зберегти як", "All changes will be lost." : "Усі зміни буде втрачено.", "Are you sure you want to continue?" : "Ви впевнені, що бажаєте продовжити?", - "Continue" : "Продовжити", "Undo" : "Скасувати", "Redo" : "Повторити", "Show original image" : "Показати вихідне зображення", @@ -172,7 +175,7 @@ "Vertical" : "Вертикальний", "Opacity" : "Непрозорість", "Position" : "Позиція", - "Stroke" : "Інсульт", + "Stroke" : "Товщина", "Save image as" : "Зберегти зображення як", "Extension" : "Розширення", "Name is required." : "Ім'я є обов'язковим.", diff --git a/l10n/ur_PK.js b/l10n/ur_PK.js index c59a42cd..ec989e97 100644 --- a/l10n/ur_PK.js +++ b/l10n/ur_PK.js @@ -1,27 +1,30 @@ OC.L10N.register( "memories", { + "Download" : "ڈاؤن لوڈ", "Settings" : "سیٹینگز", "Info" : "Info", "Favorites" : "Favorites", "Edit" : "تدوین کریں", "Cancel" : "منسوخ کریں", "Delete" : "حذف کریں", - "Download" : "ڈاؤن لوڈ", + "Continue" : "جاری", + "Move" : "Move", "Close" : "بند ", "Save" : "حفظ", + "Search" : "Search", "Month" : "ماہ", "Title" : "عنوان", "Description" : "تصریح", "Reset" : "ری سیٹ", "Name" : "اسم", - "Search" : "Search", "Share link" : "اشتراک لنک", "Password protected" : "پاسورڈ سے محفوظ کیا گیا ہے", "Sort by date" : "Order by date", "Sort by name" : "Order by name", "Share" : "تقسیم", "Next" : "اگلا", - "Continue" : "جاری" + "Yes" : "ہاں", + "No" : "نہیں" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/ur_PK.json b/l10n/ur_PK.json index 70d61c90..a0545a60 100644 --- a/l10n/ur_PK.json +++ b/l10n/ur_PK.json @@ -1,25 +1,28 @@ { "translations": { + "Download" : "ڈاؤن لوڈ", "Settings" : "سیٹینگز", "Info" : "Info", "Favorites" : "Favorites", "Edit" : "تدوین کریں", "Cancel" : "منسوخ کریں", "Delete" : "حذف کریں", - "Download" : "ڈاؤن لوڈ", + "Continue" : "جاری", + "Move" : "Move", "Close" : "بند ", "Save" : "حفظ", + "Search" : "Search", "Month" : "ماہ", "Title" : "عنوان", "Description" : "تصریح", "Reset" : "ری سیٹ", "Name" : "اسم", - "Search" : "Search", "Share link" : "اشتراک لنک", "Password protected" : "پاسورڈ سے محفوظ کیا گیا ہے", "Sort by date" : "Order by date", "Sort by name" : "Order by name", "Share" : "تقسیم", "Next" : "اگلا", - "Continue" : "جاری" + "Yes" : "ہاں", + "No" : "نہیں" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/uz.js b/l10n/uz.js index 1e774303..b0e939cc 100644 --- a/l10n/uz.js +++ b/l10n/uz.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Download", "Settings" : "Sozlamalar", "Favorites" : "Favorites", "Videos" : "Videos", @@ -8,19 +9,22 @@ OC.L10N.register( "Photos" : "Photos", "Cancel" : "Cancel", "Delete" : "Delete", - "Download" : "Download", "Favorite" : "Favorite", + "Continue" : "Continue", + "Move" : "Move", "General" : "General", "Close" : "Close", "Save" : "Save", + "Search" : "Search", + "Save changes" : "Save changes", "Name" : "Name", "Update" : "Update", - "Search" : "Search", "Remove" : "Remove", "Share link" : "Share link", "Refresh" : "Refresh", "Read only" : "Read only", - "Continue" : "Continue", - "Size" : "Size" + "Size" : "Size", + "Yes" : "Yes", + "No" : "No" }, "nplurals=1; plural=0;"); diff --git a/l10n/uz.json b/l10n/uz.json index 08ef0ecf..08617eb1 100644 --- a/l10n/uz.json +++ b/l10n/uz.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Download", "Settings" : "Sozlamalar", "Favorites" : "Favorites", "Videos" : "Videos", @@ -6,19 +7,22 @@ "Photos" : "Photos", "Cancel" : "Cancel", "Delete" : "Delete", - "Download" : "Download", "Favorite" : "Favorite", + "Continue" : "Continue", + "Move" : "Move", "General" : "General", "Close" : "Close", "Save" : "Save", + "Search" : "Search", + "Save changes" : "Save changes", "Name" : "Name", "Update" : "Update", - "Search" : "Search", "Remove" : "Remove", "Share link" : "Share link", "Refresh" : "Refresh", "Read only" : "Read only", - "Continue" : "Continue", - "Size" : "Size" + "Size" : "Size", + "Yes" : "Yes", + "No" : "No" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/vi.js b/l10n/vi.js index 74b8660e..887b65b7 100644 --- a/l10n/vi.js +++ b/l10n/vi.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "Tải xuống", "Settings" : "Cài đặt", "Info" : "Thông tin", "Folders" : "Thư mục", @@ -12,16 +13,21 @@ OC.L10N.register( "Photos" : "Ảnh", "Cancel" : "Hủy", "Delete" : "Xóa", - "Download" : "Tải xuống", "Favorite" : "Ưa thích", "Unarchive" : "Bỏ lưu trữ", "View in folder" : "Xem trong thư mục", + "Continue" : "Tiếp tục", + "Move" : "Dịch chuyển", "General" : "Cài đặt chung", + "Viewer" : "Trình xem", + "Account" : "Tài khoản", "Close" : "Đóng", "Unknown" : "Không xác định", "Copy public link" : "Sao chép liên kết công khai", "Back" : "Quay lại", "Save" : "Lưu", + "Search" : "Tìm kiếm", + "Save changes" : "Lưu thay đổi", "Year" : "Năm", "Month" : "Tháng", "Day" : "Ngày", @@ -34,7 +40,6 @@ OC.L10N.register( "Reset" : "Đặt lại", "Name" : "Tên", "Update" : "Cập nhật", - "Search" : "Tìm kiếm", "Loading …" : "Đang tải …", "Remove" : "Xoá", "Share link" : "Chia sẻ liên kết", @@ -47,7 +52,6 @@ OC.L10N.register( "Share" : "Chia sẻ", "Previous" : "Trước", "Next" : "Tiếp theo", - "Continue" : "Tiếp tục", "Undo" : "Hoàn tác", "Redo" : "Làm lại", "Custom" : "Tùy chỉnh", @@ -57,6 +61,7 @@ OC.L10N.register( "Text" : "Văn bản", "Size" : "Kích cỡ", "Name is required." : "Tên là bắt buộc.", - "Auto" : "Tự động" + "Auto" : "Tự động", + "Yes" : "Có" }, "nplurals=1; plural=0;"); diff --git a/l10n/vi.json b/l10n/vi.json index b0bbe7bd..363c9b3a 100644 --- a/l10n/vi.json +++ b/l10n/vi.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "Tải xuống", "Settings" : "Cài đặt", "Info" : "Thông tin", "Folders" : "Thư mục", @@ -10,16 +11,21 @@ "Photos" : "Ảnh", "Cancel" : "Hủy", "Delete" : "Xóa", - "Download" : "Tải xuống", "Favorite" : "Ưa thích", "Unarchive" : "Bỏ lưu trữ", "View in folder" : "Xem trong thư mục", + "Continue" : "Tiếp tục", + "Move" : "Dịch chuyển", "General" : "Cài đặt chung", + "Viewer" : "Trình xem", + "Account" : "Tài khoản", "Close" : "Đóng", "Unknown" : "Không xác định", "Copy public link" : "Sao chép liên kết công khai", "Back" : "Quay lại", "Save" : "Lưu", + "Search" : "Tìm kiếm", + "Save changes" : "Lưu thay đổi", "Year" : "Năm", "Month" : "Tháng", "Day" : "Ngày", @@ -32,7 +38,6 @@ "Reset" : "Đặt lại", "Name" : "Tên", "Update" : "Cập nhật", - "Search" : "Tìm kiếm", "Loading …" : "Đang tải …", "Remove" : "Xoá", "Share link" : "Chia sẻ liên kết", @@ -45,7 +50,6 @@ "Share" : "Chia sẻ", "Previous" : "Trước", "Next" : "Tiếp theo", - "Continue" : "Tiếp tục", "Undo" : "Hoàn tác", "Redo" : "Làm lại", "Custom" : "Tùy chỉnh", @@ -55,6 +59,7 @@ "Text" : "Văn bản", "Size" : "Kích cỡ", "Name is required." : "Tên là bắt buộc.", - "Auto" : "Tự động" + "Auto" : "Tự động", + "Yes" : "Có" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js index 910338c2..7793c608 100644 --- a/l10n/zh_CN.js +++ b/l10n/zh_CN.js @@ -1,9 +1,14 @@ OC.L10N.register( "memories", { + "Download" : "下载", "Memories" : "记忆", + "Fast, modern and advanced photo management suite" : "快速、现代和先进的照片管理套件", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "Memories是一个全功能的照片管理解決方案,专为Nextcloud设计,具有高级功能,包括:\n\n- **📸 时间线**:按拍摄日期(从Exif数据解析)对照片和视频排序。\n- **⏪ 倒带**:立即跳转到过去的任何时间,重温您的记忆。\n- **🤖 AI标签**:通过[recognize](https://github.com/nextcloud/recognize) 和 [facerecognition](https://github.com/matiasdelellis/facerecognition) 驱动,将照片按人和物体分组。\n- **🖼️ 相册**:创建相册,将照片和视频组合在一起。然后与他人分享这些相册。\n- **🫱🏻‍🫲🏻 外部共享**:与Nextcloud实例之外的人分享照片和视频。\n- **📱 手机支持**:通过web应用程序可以在任何形状和大小的设备上工作。\n- **✏️ 编辑元数据**:快速批量编辑照片的日期和其他元数据。\n- **📦 归档**:将您不想在时间线上看到的照片存储在单独的文件夹中。\n- **📹 视频转码**:转码视频并使用HLS实现最大性能。\n- **🗺️ 地图**:通过精确的反向地理编码标记,您可以在地图上查看照片。\n- **📦 迁移**: 可以轻松的从Nextcloud Photos和Google Takeout迁移。\n- **⚡️ 性能**:所有这些都非常快速。\n\n## 🚀 安装\n\n1. 从Nextcloud应用商店安装应用程序(演示版 [here](https://memories-demo.radialapps.com/apps/memories/))。\n1. 执行推荐的操作 [配置步骤](https://memories.gallery/config/)。\n1. 执行 `php occ memories:index` 为现有照片生成元数据索引。\n1. 在 Nextcloud 中打开 📷 Memories(记忆)应用程序,设置包含照片的目录。", "Settings" : "设置", + "People (Recognize)" : "人物(Recognize)", "People" : "人物", + "People (Face Recognition)" : "人物(人脸识别)", "Info" : "信息", "Timeline" : "时间线", "Folders" : "文件夹", @@ -12,21 +17,190 @@ OC.L10N.register( "Albums" : "专辑", "Archive" : "归档", "On this day" : "当年今日", + "Places" : "地点", + "Map" : "地图", "Tags" : "标签", + "View all" : "查看全部", "Recognize" : "识别", + "Face Recognition" : "人脸识别", + "A better photos experience awaits you" : "更好的照片体验等待着您", + "Choose the root folder of your timeline to begin" : "选择您初始时间线的根文件夹", + "Continue to Memories" : "继续使用“记忆”", + "Choose again" : "再次选择", + "Click here to start" : "单击此处开始", + "You can always change this later in settings" : "您可以稍后在设置中更改它", + "If you just installed Memories, visit the admin panel first." : "如果你刚刚安装了“记忆”,请先访问管理面板。", + "Choose the root of your timeline" : "选择时间线的根", + "The selected folder does not seem to be valid. Try again." : "所选文件夹似乎无效。请再试一次。", + "No photos were found in the selected folder." : "在所选的文件夹中没有找到照片。", + "This can happen because your media is still indexing." : "这种情况可能发生,因为您的媒体仍在索引中。", + "Visit the admin panel to make sure Memories is configured correctly." : "访问管理面板,确保“记忆”配置正确。", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["在 {path} 中找到 {n} 个项目"], + "Metadata" : "元数据", "Edit" : "编辑", + "Failed to load metadata" : "载入元数据失败", + "No coordinates" : "没有坐标", + "Click edit to set location" : "单击编辑以设置位置", + "Photos" : "照片", "Explore" : "探索", "Cancel" : "取消", "Delete" : "删除", - "Download" : "下载", + "Remove from album" : "从相册中移除", "Favorite" : "收藏", "Unarchive" : "取消归档", + "Edit metadata" : "编辑元数据", "View in folder" : "在文件夹中查看", + "Move to folder" : "移动到文件夹", "Add to album" : "添加至相册", + "Move to person" : "移动到人", + "Remove from person" : "从人中移除", + "Continue" : "继续", + "Failed to delete files" : "删除文件失败", + "Move" : "移动", + "You must enable \"Mark person in preview\" to use this feature" : "您必须启用“在预览中标记人”才能使用此功能", + "Only user \"{user}\" can update this person" : "仅用户“{user}”可以更新此人", + "_{n} selected_::_{n} selected_" : ["已选择 {n} 个"], + "Memories Settings" : "记忆设置", "General" : "常规", + "Timeline Path" : "时间线路径", + "Square grid mode" : "方形网格模式", + "Show past photos on top of timeline" : "在时间线顶部显示过去的照片", + "Viewer" : "查看器", + "Autoplay Live Photos" : "自动播放实时照片", + "Load full size image on zoom" : "在缩放时加载全尺寸图片", + "Always load full size image (not recommended)" : "总是加载全尺寸的图片(不推荐)", + "Account" : "账户", + "Logged in as {user}" : "以 {user} 登录", + "Sign out" : "登出", + "Device Folders" : "设备文件夹", + "Local folders to include in the timeline view" : "要包含在时间线视图中的本地文件夹", + "Folders Path" : "文件夹路径", + "Show hidden folders" : "显示隐藏文件夹", + "Sort folders oldest-first" : "将文件夹从最旧开始排序", + "Sort albums oldest-first" : "将相册从最旧开始排序", + "Choose Timeline Paths" : "选择时间线路径", + "Choose the root for the folders view" : "为文件夹视图选择根目录", + "Are you sure you want to log out {user}?" : "您确定要注销 {user} 吗?", "Close" : "关闭", + "{photoCount} photos" : "{photoCount} 张照片", + "Failed to load some photos" : "载入部分照片失败", + "Failed to update setting" : "更新设置失败", + "Albums support is enabled through the Photos app." : "相册支持通过“照片”应用启用。", + "Albums are disabled because the Photos app is not available." : "相册已禁用,因为“照片”应用不可用。", + "Face Recognition is installed and enabled" : "人脸识别已安装并启用", + "Preview generator is installed and enabled. Additional configuration may still be required." : "预览生成器已安装并启用。可能还需要额外的配置。", + "Preview generator is not installed and configured. This may make Memories very slow." : "预览生成器未安装和配置。这可能会使“记忆”非常缓慢。", + "Recommended Apps" : "推荐应用", + "Path to packaged exiftool binary" : "exiftool binary文件包路径", + "You need perl only if the packaged exiftool binary does not work for some reason." : "仅当exiftool binary文件包由于某种原因不可用时才需要PERL。", + "Use system perl (only if exiftool binary does not work)" : "使用系统 PERL(仅当exiftool binary文件不可用时)", + "EXIF Extraction" : "EXIF 解压缩", + "You can configure the enabled Nextcloud preview providers below." : "您可以在下面配置已启用的Nextcloud预览提供者。", + "If you are using Imaginary for preview generation, you can ignore this section." : "如果您正在使用Imaginary生成预览,则可以忽略此部分。", + "To enable RAW support, install the Camera RAW Previews app." : "要启用RAW支持,请安装Camera RAW Previews应用。", + "Documentation." : "文档", + "The following MIME types are configured for preview generation." : "为生成预览配置了以下MIME类型。", + "Max preview size (trade-off between quality and storage requirements)." : "最大预览大小(质量和存储需求之间的权衡)", + "Max memory for preview generation (MB)" : "生成预览时的最大内存(MB)", + "Max size of preview files (MB)" : "最大预览文件大小(MB)", + "File Support" : "文件支持", + "Images (JPEG, PNG, GIF, BMP)" : "图片 (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "视频 (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "感谢您选择Nextcloud和Memories存储您的宝贵数据!", + "Memories is very feature rich and setting it up properly can take some time." : "“记忆”功能非常丰富,正确设置它需要一些时间。", + "If you just installed Memories, make sure you read the getting started guide:" : "如果您刚刚安装了“记忆”,请务必阅读入门指南:", + "External Link" : "外部链接", + "In case you run into any issues or bugs, you can get help through several channels." : "如果您遇到任何问题或错误,您可以通过多种渠道获得帮助。", + "Memories is a completely free and open source app under active development." : "“记忆”是一个完全免费的开源应用程序,正在积极开发中。", + "You can contribute in several ways. See the project page for more details:" : "你可以通过多种方式做出贡献。更多详细信息请参见项目页面:", + "Help & Support" : "帮助 & 支持", + "{n} media files have been indexed" : "{n}个媒体文件已被索引", + "Automatic Indexing status: {status}" : "自动索引状态: {status}", + "Last index job was run {t} seconds ago." : "最后一个索引作业在{t}秒前运行。", + "It took {t} seconds to complete." : "耗时{t}秒完成", + "It is still running or was interrupted." : "它仍在运行或被中断。", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "自上次运行索引作业以来已经一个多小时了。 确保 Nextcloud cron 配置正确。", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "仅支持服务器端加密(OC_DEFAULT_MODULE),但已启用另一个加密模块。", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF索引是在定期后台任务中构建和检查的。在选择自动索引以外的其他选项时要小心。例如,将索引仅设置为时间线文件夹可能会导致媒体对用户可用之前的延迟,因为用户只有在登录后才能配置时间线。", + "Index all media automatically (recommended)" : "自动索引所有媒体(推荐)", + "Index per-user timeline folders (not recommended)" : "索引每个用户的时间线文件夹(不推荐)", + "Index a fixed relative path" : "索引一个固定的相对路径", + "Disable background indexing" : "禁用后台索引", + "Indexing path (relative, all users)" : "索引路径(相对,所有用户)", + "For advanced usage, perform a run of indexing by running:" : "高级用法,通过运行以下命令执行一次索引:", + "Run index in parallel with 4 threads:" : "用4个线程并行运行索引:", + "Force re-indexing of all files:" : "强制重新索引所有文件:", + "You can limit indexing by user and/or folder:" : "您可以根据用户和/或文件夹限制索引:", + "Clear all existing index tables:" : "清除所有已存在的数据库索引表:", + "Media Indexing" : "媒体索引", + "HTTPS is enabled" : "已启用HTTPS", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "您正在通过不安全的环境访问此页。一些浏览器api不可用,这将使“记忆”非常慢。在服务器上启用HTTPS可以提高性能。", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 或 HTTP/3 已启用", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "强烈建议使用 HTTP/2 或 HTTP/3 (检测到 {httpVer})", "Performance" : "性能", "Unknown" : "未知", + "Database is populated with {n} geometries." : "数据库中自动增加了 {n} 个 geometries。", + "Geometry table has not been created." : "尚未创建 geometry 数据库表。", + "Looks like the planet data is incomplete." : "看起来地球数据是不完整的。", + "Reverse geocoding has not been configured ({status})." : "未配置反向地理编码 ({status})。", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "“记忆”支持使用MySQL和Postgres上的OpenStreetMaps数据进行离线反向地理编码。", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "你需要将地球数据下载到你的数据库中。强烈推荐而且开销很低。", + "If the button below does not work for importing the planet data, use the following command:" : "如果下面的按钮无法导入地球数据,请使用以下命令:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "注意:geometry数据存储在memores_planet_geometry表中,没有前缀。", + "Download planet database" : "下载地球数据库", + "Reverse Geocoding" : "反向地理编码", + "Geometry support was not detected in your database" : "在数据库中未检测到Geometry支持", + "MySQL-like geometry support was detected " : "检测到类似mysql的Geometry支持", + "Postgres native geometry support was detected" : "检测到Postgres原生Geometry支持", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起来数据库已经设置好了。你确定要重新下载地球数据吗?", + "You are about to download the planet database. This may take a while." : "您即将下载地球数据库。这可能需要一段时间。", + "This may also cause all photos to be re-indexed!" : "这也可能导致所有的照片被重新索引!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "实时转码使用HLS提供自适应串流。", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "请注意,如果没有硬件加速,这可能会非常占用CPU资源,并且外部存储无法使用转码。", + "Enable Transcoding" : "启用转码", + "ffmpeg path" : "ffmpeg路径", + "ffprobe path" : "ffprobe路径", + "Global default video quality (user may override)" : "全局默认视频质量(用户可以修改)", + "Auto (adaptive transcode)" : "自动(自适应转码)", + "Original (transcode with max quality)" : "原始(以最高质量转码)", + "Direct (original video file without transcode)" : "直接(不带转码的原始视频文件)", + "Video Streaming" : "视频串流", + "You must first make sure the correct drivers are installed before configuring acceleration." : "在配置硬件加速之前,必须首先确保安装了正确的驱动程序。", + "Make sure you test hardware acceleration with various options after enabling." : "确保在启用后使用各种选项测试硬件加速。", + "Do not enable multiple types of hardware acceleration simultaneously." : "请勿同时启用多种类型的硬件加速。", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "支持QuickSync Video (QSV)的Intel处理器以及一些AMD GPU可以使用VA-API加速进行转码。", + "For more details on driver installation, check the documentation:" : "有关驱动程序安装的更多详细信息,请查看文档:", + "Enable acceleration with VA-API" : "启用VA-API加速", + "Enable low-power mode (QSV only)" : "启用低功耗模式(仅QSV)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU可以使用带有适当驱动程序的NVENC编码器进行转码。", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "根据安装的SDK和ffmpeg的版本,您需要指定要使用的scaler", + "No automated tests are available for NVIDIA acceleration." : "没有可用于NVIDIA加速的自动测试。", + "Enable acceleration with NVENC" : "启用NVENC加速", + "Enable NVENC Temporal AQ" : "启用NVENC临时AQ", + "NPP scaler" : "NPP scaler", + "CUDA scaler" : "CUDA scaler", + "not recommended" : "不推荐", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "由于某些硬件驱动程序中的错误,视频在流式传输时可能会以不正确的方向显示。在某些情况下,可以通过旋转加速器上的视频来解决此问题。", + "Enable the following option only if you have incorrectly oriented videos during playback." : "仅当播放过程中视频方向不正确时,才启用以下选项。", + "Enable streaming transpose workaround" : "启用流转置解决方案", + "HW Acceleration" : "硬件加速", + "VA-API device ({dev}) is readable" : "VA-API设备({dev})可读", + "VA-API device ({dev}) not found" : "未找到VA-API设备({dev})", + "VA-API device ({dev}) has incorrect permissions" : "VA-API设备({dev})权限不正确", + "VA-API device status: {status}" : "VA-API设备状态:{status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "“记忆”使用go-vod转码器。你可以在外部运行go-vod(例如,在一个独立的Docker容器中进行硬件加速)或使用内置的转码器。要使用外部转码器,请启用以下选项并按照文档中的说明操作:", + "Enable external transcoder (go-vod)" : "启用外部转码器(go-vod)", + "Binary path (local only)" : "Binary路径(仅本地)", + "Bind address (local only)" : "绑定地址(仅本地)", + "Connection address (same as bind if local)" : "连接地址(如果是本地,则与绑定地址相同)", + "Transcoder" : "转码器", + "Template" : "模板", + "No items" : "没有项目", + "Shared by {user}" : "由{user} 共享", + "_{n} item_::_{n} items_" : ["{n} 个项目"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} 张照片已更新 "], "Add people or groups who can edit your album" : "添加可以编辑您相册的用户与群组", "Search for collaborators" : "搜索协作者", "Search people or groups" : "搜索用户或群组", @@ -38,13 +212,17 @@ OC.L10N.register( "Copy public link" : "复制公开链接", "Delete the public link" : "删除公开链接", "Share via public link" : "通过公开链接分享", - "Failed to fetch collaborators list." : "无法获取协作者列表。", + "Failed to fetch collaborators list." : "获取协作者列表失败。", "Public link" : "公开链接", - "Failed to fetch album." : "无法获取相册。", - "Failed to update album." : "无法更新相册。", + "Failed to fetch album." : "获取相册失败。", + "Failed to update album." : "更新相册失败。", "Create new album" : "创建新相册", "Edit album details" : "编辑相册详情", "New album" : "新相册", + "Could not load the selected album" : "无法加载所选相册", + "Remove Album" : "移除相册", + "Are you sure you want to permanently remove album \"{name}\"?" : "确定要永久删除相册“{name}”吗?", + "Failed to delete {name}." : "删除{name}失败。", "Name of the album" : "相册名称", "Location of the album" : "相册位置", "Go back to the previous view." : "返回上一个视图。", @@ -54,9 +232,15 @@ OC.L10N.register( "Back to the new album form." : "回到创建新相册表单。", "Save" : "保存", "Create album" : "创建相册", - "Add selection to album {albumName}" : "将所选项加入相册 {ablumName}", - "Create a new album." : "创建新相册。", + "Invalid album name; should not contain any slashes." : "无效的相册名称;不应该包含任何斜杠。", + "Search" : "搜索", + "Create new album." : "创建新相册。", + "Save changes" : "保存更改", + "_Removed from {n} album_::_Removed from {n} albums_" : ["已从 {n} 个相册中删除"], + "Share Album" : "分享相册", "Save collaborators for this album." : "保存此相册的协作者。", + "shared by {owner}" : "由 {owner} 分享", + "_%n item_::_%n items_" : ["%n 个项目"], "Newest" : "最新", "Year" : "年", "Month" : "月", @@ -64,59 +248,223 @@ OC.L10N.register( "Time" : "时间", "Hour" : "小时", "Minute" : "分钟", + "Oldest" : "最旧", + "Invalid Date" : "日期无效", + "Newest date is older than oldest date" : "最新日期比最旧日期更早", "Title" : "标题", "Description" : "描述", "Label" : "标签", + "Camera Make" : "相机品牌", + "Camera Model" : "相机型号", + "Lens Model" : "镜头型号", "Copyright" : "版权", "Empty" : "空", + "Unchanged" : "未变更", "Reset" : "重置", + "Remove location" : "移除位置", + "Search location / landmark" : "搜索位置/地标", + "Failed to search for location with Nominatim." : "使用Nominatim搜索位置失败。", + "Date / Time" : "日期/时间", + "Collaborative Tags" : "协作标签", + "EXIF Fields" : "EXIF字段", + "Geolocation" : "地理位置", + "Failed to load metadata for {n} photos." : "{n}张照片加载元数据失败。", + "{n} photos cannot be edited (permissions error)." : "{n}张照片无法编辑(权限错误)。", "Remove person" : "移除这个人", + "Are you sure you want to remove {name}?" : "您确定要移除 {name} 吗?", + "Only user \"{user}\" can delete this person" : "仅用户“{user}”可以删除此人", "Rename person" : "重命名用户", "Name" : "名称", "Update" : "更新", - "Search" : "搜索", + "Failed to rename {oldName} to {name}." : "将 {oldName} 重命名为 {name} 失败。", "Loading …" : "正在加载 …", + "Enter name of the new face" : "输入新人脸的名称", + "Failed to create face" : "创建人脸失败", + "Merge {name} with person" : "将 {name} 与人合并", + "Too many failures, aborting" : "失败次数过多,中止", "Error while moving {basename}" : "移动{basename}时出错。", - "Failed to move {name}." : "{name}移动失败。", + "Failed to move {name}." : "移动{name}失败。", + "Move selected photos to person" : "移动选择的照片到人", + "Move the selected photos to {target}?" : "移动选择的照片到 {target}?", + "An error occurred while moving photos from {name}." : "从 {name} 移动照片时发生错误。", + "Choose a folder" : "选择一个文件夹", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n}个项目已移动至文件夹"], "Remove" : "移除", + "Add Path" : "添加路径", + "Add a root to your timeline" : "添加您时间线的根", + "Link Sharing" : "链接分享", + "You cannot share the root folder" : "不能分享根目录", + "Public link shares are available to people outside Nextcloud." : "Nextcloud以外的人可以使用公共链接分享。", + "You may create or update permissions on public links using the sidebar." : "您可以使用侧边栏创建或更新公共链接的权限。", + "Click a link to copy to clipboard." : "单击链接复制到剪贴板。", "Share link" : "共享链接", "Create Link" : "创建链接", "Refresh" : "刷新", "Password protected" : "受密码保护", "Expires" : "过期", + "Editable" : "可编辑", "Read only" : "只读", "Link copied to clipboard" : "链接已复制到剪贴板", + "Share File" : "分享文件", + "Reduced Size" : "减少尺寸", + "Share a lower resolution image preview" : "分享较低分辨率的图片预览", + "High Resolution" : "高分辨率", + "Share the video as a high quality MOV" : "以高质量MOV格式分享视频", + "Share the image as a high quality JPEG" : "以高质量JPEG格式分享图片", + "Original File" : "原始文件", + "Share the original image / video file" : "分享原始图片/视频文件", + "Public Link" : "公共链接", + "Share an external Nextcloud link" : "分享外部Nextcloud链接", + "Failed to download file" : "下载文件失败", + "Cannot share this type of data" : "无法分享此类型的数据", "Sort by date" : "按日期排序", "Sort by name" : "按名称排序", - "Delete album" : "删除相册", + "Share album" : "分享相册", + "Download album" : "下载相册", + "Nothing to show here" : "这里没什么可展示的", + "Unassigned faces" : "未指派的人脸", "Merge with different person" : "与另一个人合并为同一人", + "Mark person in preview" : "在预览中标记人", + "Folder View" : "文件夹视图", + "Timeline View" : "时间线视图", "Share folder" : "共享文件夹", + "Move left" : "向左移动", + "Move right" : "向右移动", + "Image saved successfully" : "图片保存成功", + "Error saving image" : "图片保存错误", "Unsaved changes" : "未保存的更改", + "Drop changes" : "取消更改", "Share" : "共享", - "Sidebar" : "侧边栏", + "Play Live Photo" : "播放实时照片", + "Download Video" : "下载视频", + "Slideshow" : "幻灯片", "Previous" : "上一个", "Next" : "下一个", - "Continue" : "继续", + "Editing is currently disabled for Live Photos" : "实时照片的編輯功能目前已禁用", + "Are you sure you want to delete?" : "您确定要删除吗?", + "Failed to delete photo" : "删除照片失败", + "{name} binary exists and is executable." : "{name} binary文件存在且可执行。", + "{name} binary not found." : "找不到 {name} binary文件。", + "{name} binary is not executable." : "{name} binary不可执行。", + "{name} failed test: {info}." : "{name} 测试失败:{info}。", + "{name} binary exists and is usable ({info})." : "{name} binary文件存在且可使用({info})。", + "{name} binary status: {status}." : "{name} binary 状态:{status}。", + "Save as" : "另存为", + "All changes will be lost." : "所有更改都将丢失。", + "Are you sure you want to continue?" : "您确定要继续吗?", "Undo" : "撤销操作", "Redo" : "恢复上个操作", + "Show original image" : "显示原始图片", "Zoom in" : "放大", + "Zoom out" : "缩小", + "Toggle zoom menu" : "切换缩放菜单", + "Adjust" : "调整", + "Fine-tune" : "微调", + "Filters" : "过滤器", + "Watermark" : "水印", + "Draw" : "绘图", + "Resize" : "调整大小", + "Invalid image." : "无效图片", + "Error while uploading the image." : "上传图片时出错。", + "are not images" : "不是图片", + "is not an image" : "不是图片", + "to be uploaded" : "待上传", + "Crop" : "裁剪", "Original" : "原图", "Custom" : "自定义", - "Landscape" : "风景", - "Portrait" : "肖像", + "Square" : "方形", + "Landscape" : "横向", + "Portrait" : "纵向", + "Ellipse" : "椭圆", + "Classic TV" : "经典电视", + "CinemaScope" : "CinemaScope", + "Arrow" : "箭头", + "Blur" : "模糊", + "Brightness" : "亮度", + "Contrast" : "对比", + "Un-flip X" : "取消翻转 X", + "Flip X" : "翻转 X", + "Un-flip Y" : "取消翻转 Y", + "Flip Y" : "翻转 Y", + "HSV" : "HSV", + "Hue" : "色调", + "Saturation" : "饱和", "Value" : "值", "Image" : "图片", + "Importing …" : "导入中...", + "+ Add image" : "+ 添加图片", "Line" : "线段", + "Pen" : "笔", + "Polygon" : "多边形", + "Sides" : "边", + "Rectangle" : "矩形", + "Corner Radius" : "圆角半径", + "Width in pixels" : "宽度像素", + "Height in pixels" : "高度像素", + "Toggle ratio lock" : "切换比例锁定", + "Reset to original image size" : "重置为原始图像大小", + "Rotate" : "旋转", "Text" : "文本 ", + "Text spacing" : "文本间距", + "Text alignment" : "文本对齐方式", + "Font family" : "字体", "Size" : "尺寸", + "Letter spacing" : "字符间距", + "Line height" : "行高", + "Warmth" : "暖度", + "+ Add watermark" : "+ 添加水印", + "Choose watermark type" : "选择水印类型", + "Upload watermark" : "上传水印", + "Add as text" : "添加为文本", + "Padding" : "填充", + "Shadow" : "阴影", + "Horizontal" : "水平", + "Vertical" : "垂直", + "Opacity" : "透明度", "Position" : "位置", + "Stroke" : "描边", + "Save image as" : "保存图像为", "Extension" : "扩展", "Name is required." : "名称是必填项。", "Quality" : "质量", + "Saved image size (width x height)" : "已保存的图像大小(宽度 x 高度)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "请注意,选择的裁剪面积低于应用的调整大小,这可能会导致质量下降", + "Actual size (100%)" : "实际尺寸(100%)", + "Fit size" : "适合尺寸", + "Transcoding failed, check Nextcloud logs." : "转码失败,检查Nextcloud日志。", "Direct" : "私信", "Auto" : "自动", - "Failed to create {albumName}." : "创建 {albumName} 失败", - "Failed to rename {currentAlbumName} to {newAlbumName}." : "重命名 {currentAlbumName} 为 {newAlbumName} 的操作失败", - "Failed to delete {fileName}." : "删除 {fileName} 失败" + "Shared Folder" : "已分享文件夹", + "Shared Album" : "已分享相册", + "Failed to remove {filename}." : "删除 {filename} 失败。", + "Failed to create {albumName}." : "创建{albumName}失败", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "重命名{currentAlbumName}为{newAlbumName}失败。", + "General Failure" : "一般故障", + "Error: {msg}" : "错误:{msg}", + "Failed to delete {fileName}." : "删除 {fileName} 失败", + "Failed to move files." : "移动文件失败", + "Could not move {fileName}, target exists." : "无法移动 {fileName},目标已存在。", + "Failed to move {fileName}." : "移动 {fileName} 失败。", + "Failed to download files" : "下载文件失败", + "Failed to favorite files." : "下载收藏文件失败。", + "Failed to favorite some files." : "未能收藏某些文件。", + "Failed to favorite {fileName}." : "未能收藏 {fileName}。", + "No content-location header found" : "找不到内容位置标头", + "Failed to create tag {name}: {error}" : "创建标签“{name}”失败:{error}", + "Memories has been updated to {version}. Reload to get the new version." : "“记忆”已更新至 {version}。重新加载以获得新版本。", + "Upload some photos and make sure the timeline path is configured" : "上传一些照片,并确保已配置时间线路径", + "Mark photos as favorite to find them easily" : "将照片标记为收藏,以便轻松找到它们", + "Memories from past years will appear here" : "过往的记忆会在这里出现", + "You will find your friends soon. Please be patient" : "你很快就会找到你的朋友。请耐心等待", + "Face Recognition is disabled. Enable in settings to find your friends" : "人脸识别功能已禁用。在设置中启用以查找您的朋友", + "Your videos will appear here" : "您的视频将出现在这里", + "No photos in this album yet" : "此相册中还没有照片", + "Create an album to get started" : "首先创建一个相册", + "Archive photos you don't want to see in your timeline" : "归档您不想在时间线中看到的照片", + "Tag photos to find them easily" : "给照片打上标签以便于查找", + "Recognize is still working on your photos" : "“识别”仍在处理您的照片", + "Places you have been to will appear here" : "您去过的地方会出现在这里", + "Yes" : "是", + "No" : "否" }, "nplurals=1; plural=0;"); diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json index 3ef99b1a..070b012c 100644 --- a/l10n/zh_CN.json +++ b/l10n/zh_CN.json @@ -1,7 +1,12 @@ { "translations": { + "Download" : "下载", "Memories" : "记忆", + "Fast, modern and advanced photo management suite" : "快速、现代和先进的照片管理套件", + "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "Memories是一个全功能的照片管理解決方案,专为Nextcloud设计,具有高级功能,包括:\n\n- **📸 时间线**:按拍摄日期(从Exif数据解析)对照片和视频排序。\n- **⏪ 倒带**:立即跳转到过去的任何时间,重温您的记忆。\n- **🤖 AI标签**:通过[recognize](https://github.com/nextcloud/recognize) 和 [facerecognition](https://github.com/matiasdelellis/facerecognition) 驱动,将照片按人和物体分组。\n- **🖼️ 相册**:创建相册,将照片和视频组合在一起。然后与他人分享这些相册。\n- **🫱🏻‍🫲🏻 外部共享**:与Nextcloud实例之外的人分享照片和视频。\n- **📱 手机支持**:通过web应用程序可以在任何形状和大小的设备上工作。\n- **✏️ 编辑元数据**:快速批量编辑照片的日期和其他元数据。\n- **📦 归档**:将您不想在时间线上看到的照片存储在单独的文件夹中。\n- **📹 视频转码**:转码视频并使用HLS实现最大性能。\n- **🗺️ 地图**:通过精确的反向地理编码标记,您可以在地图上查看照片。\n- **📦 迁移**: 可以轻松的从Nextcloud Photos和Google Takeout迁移。\n- **⚡️ 性能**:所有这些都非常快速。\n\n## 🚀 安装\n\n1. 从Nextcloud应用商店安装应用程序(演示版 [here](https://memories-demo.radialapps.com/apps/memories/))。\n1. 执行推荐的操作 [配置步骤](https://memories.gallery/config/)。\n1. 执行 `php occ memories:index` 为现有照片生成元数据索引。\n1. 在 Nextcloud 中打开 📷 Memories(记忆)应用程序,设置包含照片的目录。", "Settings" : "设置", + "People (Recognize)" : "人物(Recognize)", "People" : "人物", + "People (Face Recognition)" : "人物(人脸识别)", "Info" : "信息", "Timeline" : "时间线", "Folders" : "文件夹", @@ -10,21 +15,190 @@ "Albums" : "专辑", "Archive" : "归档", "On this day" : "当年今日", + "Places" : "地点", + "Map" : "地图", "Tags" : "标签", + "View all" : "查看全部", "Recognize" : "识别", + "Face Recognition" : "人脸识别", + "A better photos experience awaits you" : "更好的照片体验等待着您", + "Choose the root folder of your timeline to begin" : "选择您初始时间线的根文件夹", + "Continue to Memories" : "继续使用“记忆”", + "Choose again" : "再次选择", + "Click here to start" : "单击此处开始", + "You can always change this later in settings" : "您可以稍后在设置中更改它", + "If you just installed Memories, visit the admin panel first." : "如果你刚刚安装了“记忆”,请先访问管理面板。", + "Choose the root of your timeline" : "选择时间线的根", + "The selected folder does not seem to be valid. Try again." : "所选文件夹似乎无效。请再试一次。", + "No photos were found in the selected folder." : "在所选的文件夹中没有找到照片。", + "This can happen because your media is still indexing." : "这种情况可能发生,因为您的媒体仍在索引中。", + "Visit the admin panel to make sure Memories is configured correctly." : "访问管理面板,确保“记忆”配置正确。", + "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["在 {path} 中找到 {n} 个项目"], + "Metadata" : "元数据", "Edit" : "编辑", + "Failed to load metadata" : "载入元数据失败", + "No coordinates" : "没有坐标", + "Click edit to set location" : "单击编辑以设置位置", + "Photos" : "照片", "Explore" : "探索", "Cancel" : "取消", "Delete" : "删除", - "Download" : "下载", + "Remove from album" : "从相册中移除", "Favorite" : "收藏", "Unarchive" : "取消归档", + "Edit metadata" : "编辑元数据", "View in folder" : "在文件夹中查看", + "Move to folder" : "移动到文件夹", "Add to album" : "添加至相册", + "Move to person" : "移动到人", + "Remove from person" : "从人中移除", + "Continue" : "继续", + "Failed to delete files" : "删除文件失败", + "Move" : "移动", + "You must enable \"Mark person in preview\" to use this feature" : "您必须启用“在预览中标记人”才能使用此功能", + "Only user \"{user}\" can update this person" : "仅用户“{user}”可以更新此人", + "_{n} selected_::_{n} selected_" : ["已选择 {n} 个"], + "Memories Settings" : "记忆设置", "General" : "常规", + "Timeline Path" : "时间线路径", + "Square grid mode" : "方形网格模式", + "Show past photos on top of timeline" : "在时间线顶部显示过去的照片", + "Viewer" : "查看器", + "Autoplay Live Photos" : "自动播放实时照片", + "Load full size image on zoom" : "在缩放时加载全尺寸图片", + "Always load full size image (not recommended)" : "总是加载全尺寸的图片(不推荐)", + "Account" : "账户", + "Logged in as {user}" : "以 {user} 登录", + "Sign out" : "登出", + "Device Folders" : "设备文件夹", + "Local folders to include in the timeline view" : "要包含在时间线视图中的本地文件夹", + "Folders Path" : "文件夹路径", + "Show hidden folders" : "显示隐藏文件夹", + "Sort folders oldest-first" : "将文件夹从最旧开始排序", + "Sort albums oldest-first" : "将相册从最旧开始排序", + "Choose Timeline Paths" : "选择时间线路径", + "Choose the root for the folders view" : "为文件夹视图选择根目录", + "Are you sure you want to log out {user}?" : "您确定要注销 {user} 吗?", "Close" : "关闭", + "{photoCount} photos" : "{photoCount} 张照片", + "Failed to load some photos" : "载入部分照片失败", + "Failed to update setting" : "更新设置失败", + "Albums support is enabled through the Photos app." : "相册支持通过“照片”应用启用。", + "Albums are disabled because the Photos app is not available." : "相册已禁用,因为“照片”应用不可用。", + "Face Recognition is installed and enabled" : "人脸识别已安装并启用", + "Preview generator is installed and enabled. Additional configuration may still be required." : "预览生成器已安装并启用。可能还需要额外的配置。", + "Preview generator is not installed and configured. This may make Memories very slow." : "预览生成器未安装和配置。这可能会使“记忆”非常缓慢。", + "Recommended Apps" : "推荐应用", + "Path to packaged exiftool binary" : "exiftool binary文件包路径", + "You need perl only if the packaged exiftool binary does not work for some reason." : "仅当exiftool binary文件包由于某种原因不可用时才需要PERL。", + "Use system perl (only if exiftool binary does not work)" : "使用系统 PERL(仅当exiftool binary文件不可用时)", + "EXIF Extraction" : "EXIF 解压缩", + "You can configure the enabled Nextcloud preview providers below." : "您可以在下面配置已启用的Nextcloud预览提供者。", + "If you are using Imaginary for preview generation, you can ignore this section." : "如果您正在使用Imaginary生成预览,则可以忽略此部分。", + "To enable RAW support, install the Camera RAW Previews app." : "要启用RAW支持,请安装Camera RAW Previews应用。", + "Documentation." : "文档", + "The following MIME types are configured for preview generation." : "为生成预览配置了以下MIME类型。", + "Max preview size (trade-off between quality and storage requirements)." : "最大预览大小(质量和存储需求之间的权衡)", + "Max memory for preview generation (MB)" : "生成预览时的最大内存(MB)", + "Max size of preview files (MB)" : "最大预览文件大小(MB)", + "File Support" : "文件支持", + "Images (JPEG, PNG, GIF, BMP)" : "图片 (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "视频 (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "感谢您选择Nextcloud和Memories存储您的宝贵数据!", + "Memories is very feature rich and setting it up properly can take some time." : "“记忆”功能非常丰富,正确设置它需要一些时间。", + "If you just installed Memories, make sure you read the getting started guide:" : "如果您刚刚安装了“记忆”,请务必阅读入门指南:", + "External Link" : "外部链接", + "In case you run into any issues or bugs, you can get help through several channels." : "如果您遇到任何问题或错误,您可以通过多种渠道获得帮助。", + "Memories is a completely free and open source app under active development." : "“记忆”是一个完全免费的开源应用程序,正在积极开发中。", + "You can contribute in several ways. See the project page for more details:" : "你可以通过多种方式做出贡献。更多详细信息请参见项目页面:", + "Help & Support" : "帮助 & 支持", + "{n} media files have been indexed" : "{n}个媒体文件已被索引", + "Automatic Indexing status: {status}" : "自动索引状态: {status}", + "Last index job was run {t} seconds ago." : "最后一个索引作业在{t}秒前运行。", + "It took {t} seconds to complete." : "耗时{t}秒完成", + "It is still running or was interrupted." : "它仍在运行或被中断。", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "自上次运行索引作业以来已经一个多小时了。 确保 Nextcloud cron 配置正确。", + "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "仅支持服务器端加密(OC_DEFAULT_MODULE),但已启用另一个加密模块。", + "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF索引是在定期后台任务中构建和检查的。在选择自动索引以外的其他选项时要小心。例如,将索引仅设置为时间线文件夹可能会导致媒体对用户可用之前的延迟,因为用户只有在登录后才能配置时间线。", + "Index all media automatically (recommended)" : "自动索引所有媒体(推荐)", + "Index per-user timeline folders (not recommended)" : "索引每个用户的时间线文件夹(不推荐)", + "Index a fixed relative path" : "索引一个固定的相对路径", + "Disable background indexing" : "禁用后台索引", + "Indexing path (relative, all users)" : "索引路径(相对,所有用户)", + "For advanced usage, perform a run of indexing by running:" : "高级用法,通过运行以下命令执行一次索引:", + "Run index in parallel with 4 threads:" : "用4个线程并行运行索引:", + "Force re-indexing of all files:" : "强制重新索引所有文件:", + "You can limit indexing by user and/or folder:" : "您可以根据用户和/或文件夹限制索引:", + "Clear all existing index tables:" : "清除所有已存在的数据库索引表:", + "Media Indexing" : "媒体索引", + "HTTPS is enabled" : "已启用HTTPS", + "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "您正在通过不安全的环境访问此页。一些浏览器api不可用,这将使“记忆”非常慢。在服务器上启用HTTPS可以提高性能。", + "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 或 HTTP/3 已启用", + "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "强烈建议使用 HTTP/2 或 HTTP/3 (检测到 {httpVer})", "Performance" : "性能", "Unknown" : "未知", + "Database is populated with {n} geometries." : "数据库中自动增加了 {n} 个 geometries。", + "Geometry table has not been created." : "尚未创建 geometry 数据库表。", + "Looks like the planet data is incomplete." : "看起来地球数据是不完整的。", + "Reverse geocoding has not been configured ({status})." : "未配置反向地理编码 ({status})。", + "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "“记忆”支持使用MySQL和Postgres上的OpenStreetMaps数据进行离线反向地理编码。", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "你需要将地球数据下载到你的数据库中。强烈推荐而且开销很低。", + "If the button below does not work for importing the planet data, use the following command:" : "如果下面的按钮无法导入地球数据,请使用以下命令:", + "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "注意:geometry数据存储在memores_planet_geometry表中,没有前缀。", + "Download planet database" : "下载地球数据库", + "Reverse Geocoding" : "反向地理编码", + "Geometry support was not detected in your database" : "在数据库中未检测到Geometry支持", + "MySQL-like geometry support was detected " : "检测到类似mysql的Geometry支持", + "Postgres native geometry support was detected" : "检测到Postgres原生Geometry支持", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起来数据库已经设置好了。你确定要重新下载地球数据吗?", + "You are about to download the planet database. This may take a while." : "您即将下载地球数据库。这可能需要一段时间。", + "This may also cause all photos to be re-indexed!" : "这也可能导致所有的照片被重新索引!", + "Live transcoding provides for adaptive streaming of videos using HLS." : "实时转码使用HLS提供自适应串流。", + "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "请注意,如果没有硬件加速,这可能会非常占用CPU资源,并且外部存储无法使用转码。", + "Enable Transcoding" : "启用转码", + "ffmpeg path" : "ffmpeg路径", + "ffprobe path" : "ffprobe路径", + "Global default video quality (user may override)" : "全局默认视频质量(用户可以修改)", + "Auto (adaptive transcode)" : "自动(自适应转码)", + "Original (transcode with max quality)" : "原始(以最高质量转码)", + "Direct (original video file without transcode)" : "直接(不带转码的原始视频文件)", + "Video Streaming" : "视频串流", + "You must first make sure the correct drivers are installed before configuring acceleration." : "在配置硬件加速之前,必须首先确保安装了正确的驱动程序。", + "Make sure you test hardware acceleration with various options after enabling." : "确保在启用后使用各种选项测试硬件加速。", + "Do not enable multiple types of hardware acceleration simultaneously." : "请勿同时启用多种类型的硬件加速。", + "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "支持QuickSync Video (QSV)的Intel处理器以及一些AMD GPU可以使用VA-API加速进行转码。", + "For more details on driver installation, check the documentation:" : "有关驱动程序安装的更多详细信息,请查看文档:", + "Enable acceleration with VA-API" : "启用VA-API加速", + "Enable low-power mode (QSV only)" : "启用低功耗模式(仅QSV)", + "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU可以使用带有适当驱动程序的NVENC编码器进行转码。", + "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "根据安装的SDK和ffmpeg的版本,您需要指定要使用的scaler", + "No automated tests are available for NVIDIA acceleration." : "没有可用于NVIDIA加速的自动测试。", + "Enable acceleration with NVENC" : "启用NVENC加速", + "Enable NVENC Temporal AQ" : "启用NVENC临时AQ", + "NPP scaler" : "NPP scaler", + "CUDA scaler" : "CUDA scaler", + "not recommended" : "不推荐", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "由于某些硬件驱动程序中的错误,视频在流式传输时可能会以不正确的方向显示。在某些情况下,可以通过旋转加速器上的视频来解决此问题。", + "Enable the following option only if you have incorrectly oriented videos during playback." : "仅当播放过程中视频方向不正确时,才启用以下选项。", + "Enable streaming transpose workaround" : "启用流转置解决方案", + "HW Acceleration" : "硬件加速", + "VA-API device ({dev}) is readable" : "VA-API设备({dev})可读", + "VA-API device ({dev}) not found" : "未找到VA-API设备({dev})", + "VA-API device ({dev}) has incorrect permissions" : "VA-API设备({dev})权限不正确", + "VA-API device status: {status}" : "VA-API设备状态:{status}", + "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "“记忆”使用go-vod转码器。你可以在外部运行go-vod(例如,在一个独立的Docker容器中进行硬件加速)或使用内置的转码器。要使用外部转码器,请启用以下选项并按照文档中的说明操作:", + "Enable external transcoder (go-vod)" : "启用外部转码器(go-vod)", + "Binary path (local only)" : "Binary路径(仅本地)", + "Bind address (local only)" : "绑定地址(仅本地)", + "Connection address (same as bind if local)" : "连接地址(如果是本地,则与绑定地址相同)", + "Transcoder" : "转码器", + "Template" : "模板", + "No items" : "没有项目", + "Shared by {user}" : "由{user} 共享", + "_{n} item_::_{n} items_" : ["{n} 个项目"], + "_{n} photo updated_::_{n} photos updated_" : ["{n} 张照片已更新 "], "Add people or groups who can edit your album" : "添加可以编辑您相册的用户与群组", "Search for collaborators" : "搜索协作者", "Search people or groups" : "搜索用户或群组", @@ -36,13 +210,17 @@ "Copy public link" : "复制公开链接", "Delete the public link" : "删除公开链接", "Share via public link" : "通过公开链接分享", - "Failed to fetch collaborators list." : "无法获取协作者列表。", + "Failed to fetch collaborators list." : "获取协作者列表失败。", "Public link" : "公开链接", - "Failed to fetch album." : "无法获取相册。", - "Failed to update album." : "无法更新相册。", + "Failed to fetch album." : "获取相册失败。", + "Failed to update album." : "更新相册失败。", "Create new album" : "创建新相册", "Edit album details" : "编辑相册详情", "New album" : "新相册", + "Could not load the selected album" : "无法加载所选相册", + "Remove Album" : "移除相册", + "Are you sure you want to permanently remove album \"{name}\"?" : "确定要永久删除相册“{name}”吗?", + "Failed to delete {name}." : "删除{name}失败。", "Name of the album" : "相册名称", "Location of the album" : "相册位置", "Go back to the previous view." : "返回上一个视图。", @@ -52,9 +230,15 @@ "Back to the new album form." : "回到创建新相册表单。", "Save" : "保存", "Create album" : "创建相册", - "Add selection to album {albumName}" : "将所选项加入相册 {ablumName}", - "Create a new album." : "创建新相册。", + "Invalid album name; should not contain any slashes." : "无效的相册名称;不应该包含任何斜杠。", + "Search" : "搜索", + "Create new album." : "创建新相册。", + "Save changes" : "保存更改", + "_Removed from {n} album_::_Removed from {n} albums_" : ["已从 {n} 个相册中删除"], + "Share Album" : "分享相册", "Save collaborators for this album." : "保存此相册的协作者。", + "shared by {owner}" : "由 {owner} 分享", + "_%n item_::_%n items_" : ["%n 个项目"], "Newest" : "最新", "Year" : "年", "Month" : "月", @@ -62,59 +246,223 @@ "Time" : "时间", "Hour" : "小时", "Minute" : "分钟", + "Oldest" : "最旧", + "Invalid Date" : "日期无效", + "Newest date is older than oldest date" : "最新日期比最旧日期更早", "Title" : "标题", "Description" : "描述", "Label" : "标签", + "Camera Make" : "相机品牌", + "Camera Model" : "相机型号", + "Lens Model" : "镜头型号", "Copyright" : "版权", "Empty" : "空", + "Unchanged" : "未变更", "Reset" : "重置", + "Remove location" : "移除位置", + "Search location / landmark" : "搜索位置/地标", + "Failed to search for location with Nominatim." : "使用Nominatim搜索位置失败。", + "Date / Time" : "日期/时间", + "Collaborative Tags" : "协作标签", + "EXIF Fields" : "EXIF字段", + "Geolocation" : "地理位置", + "Failed to load metadata for {n} photos." : "{n}张照片加载元数据失败。", + "{n} photos cannot be edited (permissions error)." : "{n}张照片无法编辑(权限错误)。", "Remove person" : "移除这个人", + "Are you sure you want to remove {name}?" : "您确定要移除 {name} 吗?", + "Only user \"{user}\" can delete this person" : "仅用户“{user}”可以删除此人", "Rename person" : "重命名用户", "Name" : "名称", "Update" : "更新", - "Search" : "搜索", + "Failed to rename {oldName} to {name}." : "将 {oldName} 重命名为 {name} 失败。", "Loading …" : "正在加载 …", + "Enter name of the new face" : "输入新人脸的名称", + "Failed to create face" : "创建人脸失败", + "Merge {name} with person" : "将 {name} 与人合并", + "Too many failures, aborting" : "失败次数过多,中止", "Error while moving {basename}" : "移动{basename}时出错。", - "Failed to move {name}." : "{name}移动失败。", + "Failed to move {name}." : "移动{name}失败。", + "Move selected photos to person" : "移动选择的照片到人", + "Move the selected photos to {target}?" : "移动选择的照片到 {target}?", + "An error occurred while moving photos from {name}." : "从 {name} 移动照片时发生错误。", + "Choose a folder" : "选择一个文件夹", + "_{n} item moved to folder_::_{n} items moved to folder_" : ["{n}个项目已移动至文件夹"], "Remove" : "移除", + "Add Path" : "添加路径", + "Add a root to your timeline" : "添加您时间线的根", + "Link Sharing" : "链接分享", + "You cannot share the root folder" : "不能分享根目录", + "Public link shares are available to people outside Nextcloud." : "Nextcloud以外的人可以使用公共链接分享。", + "You may create or update permissions on public links using the sidebar." : "您可以使用侧边栏创建或更新公共链接的权限。", + "Click a link to copy to clipboard." : "单击链接复制到剪贴板。", "Share link" : "共享链接", "Create Link" : "创建链接", "Refresh" : "刷新", "Password protected" : "受密码保护", "Expires" : "过期", + "Editable" : "可编辑", "Read only" : "只读", "Link copied to clipboard" : "链接已复制到剪贴板", + "Share File" : "分享文件", + "Reduced Size" : "减少尺寸", + "Share a lower resolution image preview" : "分享较低分辨率的图片预览", + "High Resolution" : "高分辨率", + "Share the video as a high quality MOV" : "以高质量MOV格式分享视频", + "Share the image as a high quality JPEG" : "以高质量JPEG格式分享图片", + "Original File" : "原始文件", + "Share the original image / video file" : "分享原始图片/视频文件", + "Public Link" : "公共链接", + "Share an external Nextcloud link" : "分享外部Nextcloud链接", + "Failed to download file" : "下载文件失败", + "Cannot share this type of data" : "无法分享此类型的数据", "Sort by date" : "按日期排序", "Sort by name" : "按名称排序", - "Delete album" : "删除相册", + "Share album" : "分享相册", + "Download album" : "下载相册", + "Nothing to show here" : "这里没什么可展示的", + "Unassigned faces" : "未指派的人脸", "Merge with different person" : "与另一个人合并为同一人", + "Mark person in preview" : "在预览中标记人", + "Folder View" : "文件夹视图", + "Timeline View" : "时间线视图", "Share folder" : "共享文件夹", + "Move left" : "向左移动", + "Move right" : "向右移动", + "Image saved successfully" : "图片保存成功", + "Error saving image" : "图片保存错误", "Unsaved changes" : "未保存的更改", + "Drop changes" : "取消更改", "Share" : "共享", - "Sidebar" : "侧边栏", + "Play Live Photo" : "播放实时照片", + "Download Video" : "下载视频", + "Slideshow" : "幻灯片", "Previous" : "上一个", "Next" : "下一个", - "Continue" : "继续", + "Editing is currently disabled for Live Photos" : "实时照片的編輯功能目前已禁用", + "Are you sure you want to delete?" : "您确定要删除吗?", + "Failed to delete photo" : "删除照片失败", + "{name} binary exists and is executable." : "{name} binary文件存在且可执行。", + "{name} binary not found." : "找不到 {name} binary文件。", + "{name} binary is not executable." : "{name} binary不可执行。", + "{name} failed test: {info}." : "{name} 测试失败:{info}。", + "{name} binary exists and is usable ({info})." : "{name} binary文件存在且可使用({info})。", + "{name} binary status: {status}." : "{name} binary 状态:{status}。", + "Save as" : "另存为", + "All changes will be lost." : "所有更改都将丢失。", + "Are you sure you want to continue?" : "您确定要继续吗?", "Undo" : "撤销操作", "Redo" : "恢复上个操作", + "Show original image" : "显示原始图片", "Zoom in" : "放大", + "Zoom out" : "缩小", + "Toggle zoom menu" : "切换缩放菜单", + "Adjust" : "调整", + "Fine-tune" : "微调", + "Filters" : "过滤器", + "Watermark" : "水印", + "Draw" : "绘图", + "Resize" : "调整大小", + "Invalid image." : "无效图片", + "Error while uploading the image." : "上传图片时出错。", + "are not images" : "不是图片", + "is not an image" : "不是图片", + "to be uploaded" : "待上传", + "Crop" : "裁剪", "Original" : "原图", "Custom" : "自定义", - "Landscape" : "风景", - "Portrait" : "肖像", + "Square" : "方形", + "Landscape" : "横向", + "Portrait" : "纵向", + "Ellipse" : "椭圆", + "Classic TV" : "经典电视", + "CinemaScope" : "CinemaScope", + "Arrow" : "箭头", + "Blur" : "模糊", + "Brightness" : "亮度", + "Contrast" : "对比", + "Un-flip X" : "取消翻转 X", + "Flip X" : "翻转 X", + "Un-flip Y" : "取消翻转 Y", + "Flip Y" : "翻转 Y", + "HSV" : "HSV", + "Hue" : "色调", + "Saturation" : "饱和", "Value" : "值", "Image" : "图片", + "Importing …" : "导入中...", + "+ Add image" : "+ 添加图片", "Line" : "线段", + "Pen" : "笔", + "Polygon" : "多边形", + "Sides" : "边", + "Rectangle" : "矩形", + "Corner Radius" : "圆角半径", + "Width in pixels" : "宽度像素", + "Height in pixels" : "高度像素", + "Toggle ratio lock" : "切换比例锁定", + "Reset to original image size" : "重置为原始图像大小", + "Rotate" : "旋转", "Text" : "文本 ", + "Text spacing" : "文本间距", + "Text alignment" : "文本对齐方式", + "Font family" : "字体", "Size" : "尺寸", + "Letter spacing" : "字符间距", + "Line height" : "行高", + "Warmth" : "暖度", + "+ Add watermark" : "+ 添加水印", + "Choose watermark type" : "选择水印类型", + "Upload watermark" : "上传水印", + "Add as text" : "添加为文本", + "Padding" : "填充", + "Shadow" : "阴影", + "Horizontal" : "水平", + "Vertical" : "垂直", + "Opacity" : "透明度", "Position" : "位置", + "Stroke" : "描边", + "Save image as" : "保存图像为", "Extension" : "扩展", "Name is required." : "名称是必填项。", "Quality" : "质量", + "Saved image size (width x height)" : "已保存的图像大小(宽度 x 高度)", + "Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "请注意,选择的裁剪面积低于应用的调整大小,这可能会导致质量下降", + "Actual size (100%)" : "实际尺寸(100%)", + "Fit size" : "适合尺寸", + "Transcoding failed, check Nextcloud logs." : "转码失败,检查Nextcloud日志。", "Direct" : "私信", "Auto" : "自动", - "Failed to create {albumName}." : "创建 {albumName} 失败", - "Failed to rename {currentAlbumName} to {newAlbumName}." : "重命名 {currentAlbumName} 为 {newAlbumName} 的操作失败", - "Failed to delete {fileName}." : "删除 {fileName} 失败" + "Shared Folder" : "已分享文件夹", + "Shared Album" : "已分享相册", + "Failed to remove {filename}." : "删除 {filename} 失败。", + "Failed to create {albumName}." : "创建{albumName}失败", + "Failed to rename {currentAlbumName} to {newAlbumName}." : "重命名{currentAlbumName}为{newAlbumName}失败。", + "General Failure" : "一般故障", + "Error: {msg}" : "错误:{msg}", + "Failed to delete {fileName}." : "删除 {fileName} 失败", + "Failed to move files." : "移动文件失败", + "Could not move {fileName}, target exists." : "无法移动 {fileName},目标已存在。", + "Failed to move {fileName}." : "移动 {fileName} 失败。", + "Failed to download files" : "下载文件失败", + "Failed to favorite files." : "下载收藏文件失败。", + "Failed to favorite some files." : "未能收藏某些文件。", + "Failed to favorite {fileName}." : "未能收藏 {fileName}。", + "No content-location header found" : "找不到内容位置标头", + "Failed to create tag {name}: {error}" : "创建标签“{name}”失败:{error}", + "Memories has been updated to {version}. Reload to get the new version." : "“记忆”已更新至 {version}。重新加载以获得新版本。", + "Upload some photos and make sure the timeline path is configured" : "上传一些照片,并确保已配置时间线路径", + "Mark photos as favorite to find them easily" : "将照片标记为收藏,以便轻松找到它们", + "Memories from past years will appear here" : "过往的记忆会在这里出现", + "You will find your friends soon. Please be patient" : "你很快就会找到你的朋友。请耐心等待", + "Face Recognition is disabled. Enable in settings to find your friends" : "人脸识别功能已禁用。在设置中启用以查找您的朋友", + "Your videos will appear here" : "您的视频将出现在这里", + "No photos in this album yet" : "此相册中还没有照片", + "Create an album to get started" : "首先创建一个相册", + "Archive photos you don't want to see in your timeline" : "归档您不想在时间线中看到的照片", + "Tag photos to find them easily" : "给照片打上标签以便于查找", + "Recognize is still working on your photos" : "“识别”仍在处理您的照片", + "Places you have been to will appear here" : "您去过的地方会出现在这里", + "Yes" : "是", + "No" : "否" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/zh_HK.js b/l10n/zh_HK.js index d745b1f3..899f0d35 100644 --- a/l10n/zh_HK.js +++ b/l10n/zh_HK.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "下載", "Memories" : "回憶", "Fast, modern and advanced photo management suite" : "快速、現代且進階的照片管理套裝軟體", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "Memories 是一個全功能的照片管理解決方案,專為 Nextcloud 設計,具有高級功能,包括:\n\n- **📸時間軸**:按拍攝日期排序照片和視頻,從Exif數據中解析。\n- **⏪ 倒帶**:立即跳轉到過去的任何時間並重溫您的回憶。\n- **🤖 AI 標記**:通過[recognize](https://github.com/nextcloud/recognize) 和 [facerecognition](https://github.com/matiasdelellis/facerecognition) 驅動,將照片按人和物體分組。\n- **🖼️相冊**:創建相冊以將照片和視頻分組在一起。然後與其他人分享這些相冊。\n- **🫱🏻‍🫲🏻外部共享**:與 Nextcloud 實例外的人分享照片和視頻。\n- **📱 手機支持**:通過 Web 應用程序從任何形狀和大小的設備工作。\n- **✏️ 編輯元數據**:快速批量編輯照片的日期和其他元數據。\n- **📦 遷移**:從 Nextcloud 照片和 Google Takeout 輕鬆遷移。\n- **📹 視頻轉碼**:轉碼視頻並使用 HLS 實現最大效果。\n- **🗺️ 地圖**:在地圖上查看照片,標記準確的反向地理編碼。\n- **⚡️ 性能**:所有這些都非常快速。\n\n## 🚀 安裝\n\n1. 從 Nextcloud 應用商店安裝應用程序(在此處嘗試演示版 [here](https://memories-demo.radialapps.com/apps/memories/))。\n1. 執行建議的 [配置步驟](https://memories.gallery/config/)。\n1. 執行 `php occ memories:index` 以生成現有照片的元數據索引。\n1. 在 Nextcloud 中打開 📷 Memories 應用程序,並設置包含您的照片的目錄。", @@ -24,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "人臉識別", "A better photos experience awaits you" : "更好的照片體驗正等著您", "Choose the root folder of your timeline to begin" : "選擇您時間軸的根資料夾以開始", - "If you just installed Memories, run:" : "若您安裝了 Memories,請執行:", "Continue to Memories" : "繼續使用 Memories", "Choose again" : "再次選擇", "Click here to start" : "點擊此處以開始", "You can always change this later in settings" : "您總是可以稍後在設定中變更此選項", + "If you just installed Memories, visit the admin panel first." : "若您剛安裝 Memories,請先造訪管理面板。", "Choose the root of your timeline" : "選擇您時間線的根", "The selected folder does not seem to be valid. Try again." : "選定的資料夾似乎是無效的。請再試一次。", + "No photos were found in the selected folder." : "選定的資料夾中找不到照片。", + "This can happen because your media is still indexing." : "因為仍在製作您媒體的索引,因此這可能會發生。", + "Visit the admin panel to make sure Memories is configured correctly." : "造訪管理面板以確保 Memories 正確設定。", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["在 {path} 中找到 {n} 個項目"], + "Metadata" : "元數據", "Edit" : "編輯", - "No title" : "沒有標題", - "No description" : "沒有描述", + "Failed to load metadata" : "載入元數據失敗", "No coordinates" : "無座標", "Click edit to set location" : "點擊編輯以設定位置", "Photos" : "照片", @@ -42,7 +46,6 @@ OC.L10N.register( "Cancel" : "取消", "Delete" : "刪除", "Remove from album" : "從相簿移除", - "Download" : "下載", "Favorite" : "我的最愛", "Unarchive" : "取消封存", "Edit metadata" : "編輯元數據", @@ -51,9 +54,12 @@ OC.L10N.register( "Add to album" : "添加至相簿", "Move to person" : "移動到人", "Remove from person" : "從人中刪除", - "You are about to download a large number of files. Are you sure?" : "您即將下載大量檔案。你確定嗎?", - "You are about to delete a large number of files. Are you sure?" : "您即將刪除大量檔案。你確定嗎?", - "You are about to touch a large number of files. Are you sure?" : "您將要處理大量檔案。你確定嗎?", + "You are about to download a large number of files." : "您即將下載大量檔案。", + "Continue" : "繼續", + "You are about to delete a large number of files" : "您即將刪除大量檔案。", + "Failed to delete files" : "刪除檔案失敗", + "Move" : "移動", + "You are about to move a large number of files" : "您將要移動大量檔案。", "You must enable \"Mark person in preview\" to use this feature" : "您必須啟用「在預覽中標記人」以使用此功能", "Only user \"{user}\" can update this person" : "僅用戶「{user}」可以更新此人", "_{n} selected_::_{n} selected_" : ["已選擇 {n} 個"], @@ -62,31 +68,72 @@ OC.L10N.register( "Timeline Path" : "時間線途徑", "Square grid mode" : "方形網格模式", "Show past photos on top of timeline" : "在時間軸頂部顯示過去的照片", + "Viewer" : "檢視器", + "Autoplay Live Photos" : "自動播放 Live Photos", "Load full size image on zoom" : "在縮放時加載全尺寸圖像", "Always load full size image (not recommended)" : "一律加載全尺寸圖像(不推薦)", + "Account" : "賬戶", + "Logged in as {user}" : "以 {user} 登入", + "Sign out" : "登出", + "Device Folders" : "裝置資料夾", + "Local folders to include in the timeline view" : "要包含在時間軸檢視中的近端資料夾", "Folders Path" : "資料夾路徑", "Show hidden folders" : "顯示隱藏資料夾", "Sort folders oldest-first" : "將資料夾從最舊開始排序", "Sort albums oldest-first" : "將相簿從最舊開始排序", "Choose Timeline Paths" : "選擇時間線途徑", "Choose the root for the folders view" : "選擇資料夾檢視的根", + "Are you sure you want to log out {user}?" : "{user} 您確定要登出嗎?", "Close" : "關閉", "{photoCount} photos" : "{photoCount} 張照片", "Failed to load some photos" : "未能加載一些照片", "Failed to update setting" : "更新設定失敗", - "EXIF Extraction" : "EXIF 解壓縮", + "Albums support is enabled through the Photos app." : "相簿支援通過照片應用程式啟用。", + "Albums are disabled because the Photos app is not available." : "由於“照片”應用程式不可用,因此相簿已停用。", + "Face Recognition is installed and enabled" : "人臉識別已安裝並啟用。", + "Preview generator is installed and enabled. Additional configuration may still be required." : "預覽生成器已安裝並啟用。可能仍需要額外的配置。", + "Preview generator is not installed and configured. This may make Memories very slow." : "未安裝和配置預覽生成器。這可能會讓 Memories 變得非常慢。", + "Recommended Apps" : "推薦應用程式", "Path to packaged exiftool binary" : "包裝好的 exiftool 二進製檔案的途徑。", "You need perl only if the packaged exiftool binary does not work for some reason." : "僅當 exiftool 二進製檔案由於某種原因不起作用時才需要 PERL。", "Use system perl (only if exiftool binary does not work)" : "使用系統 PERL(僅當 exiftool 二進製檔案不起作用時)", - "Media Indexing" : "媒體索引", + "EXIF Extraction" : "EXIF 解壓縮", + "You can configure the enabled Nextcloud preview providers below." : "您可以在下方設定已啟用的 Nextcloud 預覽提供者。", + "If you are using Imaginary for preview generation, you can ignore this section." : "若您正在使用 Imaginary 作為預覽產生程式,您可以忽略此區塊。", + "To enable RAW support, install the Camera RAW Previews app." : "要啟用 RAW 支援,請安裝 Camera RAW Previews 應用程式。", + "Documentation." : "說明書。", + "PHP-Imagick is available [{version}]." : "PHP-Imagick 可用 [{version}]。", + "PHP-Imagick is not available." : "PHP-Imagick 不可用。", + "Image editing will not work correctly." : "圖像編輯將無法正常工作。", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "縮略圖生成可能不適用於某些格式(HEIC、TIFF)。", + "Thumbnails for videos will be generated with this binary." : "視頻的縮略圖將使用此二進製文件生成。", + "Thumbnail generation may not work for videos." : "縮略圖生成可能不適用於視頻。", + "The following MIME types are configured for preview generation." : "以下的 MIME 類型已正確設定可讓預覽產生。", + "Max preview size (trade-off between quality and storage requirements)." : "最大預覽大小(品質與儲存空間要求間的權衡)。", + "Max memory for preview generation (MB)" : "預覽產生的最大記憶體 (MB)", + "Max size of preview files (MB)" : "最大預覽檔案大小 (MB)", + "File Support" : "檔案支援", + "Images (JPEG, PNG, GIF, BMP)" : "圖像 (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "視像 (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "感謝您選擇 Nextcloud 和 Memories 來存儲您的寶貴數據!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories 功能非常豐富,正確設置它可能需要一些時間。", + "If you just installed Memories, make sure you read the getting started guide:" : "如果您剛剛安裝了 Memories,請務必閱讀入門指南:", + "External Link" : "外部連結", + "In case you run into any issues or bugs, you can get help through several channels." : "如果您遇到任何問題或錯誤,您可以通過多種渠道獲得幫助。", + "Memories is a completely free and open source app under active development." : "Memories 是一款完全免費的開源應用程式,正在積極開發中。", + "You can contribute in several ways. See the project page for more details:" : "您可以通過多種方式做出貢獻。請參閱項目頁面了解更多詳細信息:", + "Help & Support" : "幫助 & 支援", "{n} media files have been indexed" : "{n} 個媒體檔案已被索引", "Automatic Indexing status: {status}" : "自動索引狀態:{status}", "Last index job was run {t} seconds ago." : "最後一個索引作業在 {t} 秒前運行。", "It took {t} seconds to complete." : "需要 {t} 秒完成。", "It is still running or was interrupted." : "它仍在運行或被中斷。", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "看起來距離上次運行索引作業已經過去一個多小時了。 確保 Nextcloud cron 配置正確。", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "僅支持伺服器端加密(OC_DEFAULT_MODULE),但已啟用另一個加密模塊。", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF 索引是在定期後台任務中建立和檢查的。選擇自動索引以外的任何內容時要小心。例如,將索引設置為僅時間線資料夾可能會導致媒體在用戶可用之前出現延遲,因為用戶僅在登錄後配置時間線。", - "Folders with a \".nomedia\" file are always excluded from indexing." : "帶有 “.nomedia” 檔案的資料夾總是被排除在索引之外。", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "具有“.nomedia”或“.nomemories”檔案的資料夾始終從索引中排除。", "Index all media automatically (recommended)" : "自動索引所有媒體(推薦)", "Index per-user timeline folders (not recommended)" : "索引每個用戶的時間線資料夾(不推薦)", "Index a fixed relative path" : "索引一個固定的相對途徑", @@ -97,15 +144,13 @@ OC.L10N.register( "Force re-indexing of all files:" : "強制重新索引所有檔案:", "You can limit indexing by user and/or folder:" : "您可以按用戶和/或資料夾限制索引:", "Clear all existing index tables:" : "清除所有現有的索引數據庫表:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "以下 MIME 類型已為預覽生成正確配置。更多說明書:", - "External Link" : "外部連結", - "Performance" : "效能", + "Media Indexing" : "媒體索引", "HTTPS is enabled" : "已啟用 HTTPS", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "您正在通過不安全的上下文訪問此頁面。 有幾個瀏覽器 API 不可用,這會使 Memories 非常慢。 在您的服務器上啟用 HTTPS 以提高性能。", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 或 HTTP/3 已啟用", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "強烈建議使用 HTTP/2 或 HTTP/3(檢測到 {httpVer})", + "Performance" : "效能", "Unknown" : "不詳", - "Reverse Geocoding" : "反向地理編碼", "Database is populated with {n} geometries." : "數據庫中自動增加了 {n} 個 geometries。", "Geometry table has not been created." : "尚未創建 geometry 數據庫表", "Looks like the planet data is incomplete." : "看起來行星數據不完整。", @@ -115,13 +160,13 @@ OC.L10N.register( "If the button below does not work for importing the planet data, use the following command:" : "若下方按鈕無法匯入地球資料,請使用以下指令:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "注意:geometry 數據存儲在 memories_planet_geometry 表中,沒有前綴。", "Download planet database" : "下載地球數據庫", + "Reverse Geocoding" : "反向地理編碼", "Geometry support was not detected in your database" : "您的數據庫中並未偵測到 geometry 支援", "MySQL-like geometry support was detected " : "檢測到類似 MySQL 的 geometry 支援", "Postgres native geometry support was detected" : "偵測到 Postgres 的原生 geometry 支援", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起來數據庫已經設置好了。您確定要重新下載行星數據嗎?", "You are about to download the planet database. This may take a while." : "您即將下載行星數據庫。下載可能需要一段時間。", "This may also cause all photos to be re-indexed!" : "這也可能導致所有照片被重新索引!", - "Video Streaming" : "視像串流", "Live transcoding provides for adaptive streaming of videos using HLS." : "即時轉換編碼使用 HLS 提供自動調整串流。", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "請注意,若無硬體加速,這可能會讓 CPU 有非常高的使用率,且轉換編碼不會用於外部儲存空間。", "Enable Transcoding" : "啟用轉換編碼", @@ -131,14 +176,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "自動(自動調整轉碼)", "Original (transcode with max quality)" : "原先的(使用最高質素轉碼)", "Direct (original video file without transcode)" : "直接(沒有轉碼的原先的視像檔案)", - "Hardware Acceleration" : "硬體加速", + "Video Streaming" : "視像串流", "You must first make sure the correct drivers are installed before configuring acceleration." : "在配置加速之前,您必須先確保安裝了正確的驅動程式。", "Make sure you test hardware acceleration with various options after enabling." : "確保在啟用後使用各種選項測試硬件加速。", "Do not enable multiple types of hardware acceleration simultaneously." : "不要同時啟用多種類型的硬件加速。", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "支援 QuickSync Video (QSV) 的 Intel 處理器以及一些 AMD GPU 可使用 VA-API 加速進行轉碼。", "For more details on driver installation, check the documentation:" : "關於更多驅動程式安裝的資訊,請看說明書:", "Enable acceleration with VA-API" : "啟用 VA-API 加速", - "Enable low-power mode (QSV)" : "啟用低功率模式 (QSV)", + "Enable low-power mode (QSV only)" : "啟用低功率模式 (僅QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU 可用於使用帶有適當驅動程式的 NVENC 編碼器進行轉碼。", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "取決於安裝的 SDK 與 ffmpeg 版本,您可能需要指定要使用的 scaler", "No automated tests are available for NVIDIA acceleration." : "未提供 NVIDIA 加速的自動化測試", @@ -146,17 +191,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "啟用 NVENC 臨時 AQ", "NPP scaler" : "NPP scaler", "CUDA scaler" : "CUDA scaler", + "not recommended" : "不推薦", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "由於某些硬件驅動程序中的錯誤,視頻在流式傳輸時可能會出現錯誤的方向。在某些情況下,可以通過在加速器上旋轉視頻來解決此問題。", + "Enable the following option only if you have incorrectly oriented videos during playback." : "僅當您在播放過程中視頻方向不正確時才啟用以下選項。", + "Enable streaming transpose workaround" : "啟用流轉置解決方法", + "HW Acceleration" : "硬體加速", "VA-API device ({dev}) is readable" : "VA-API 裝置({dev})可讀", "VA-API device ({dev}) not found" : "找不到 VA-API 裝置({dev})", "VA-API device ({dev}) has incorrect permissions" : "VA-API 裝置({dev})權限不正確", "VA-API device status: {status}" : "VA-API 裝置狀態:{status}", - "Transcoder configuration" : "轉碼器配置", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories 使用 go-vod 轉碼器。您可以在外部執行 go-vod(例如,在單獨的 Docker 容器中進行硬體加速)或使用內建的轉碼器。要使用外部轉碼器,請啟用以下選項並按照說明書進行操作:", "Enable external transcoder (go-vod)" : "啟用外部轉碼器 (go-vod)", "Binary path (local only)" : "二進製檔案的途徑(僅近端)", "Bind address (local only)" : "綁定地址(僅近端)", "Connection address (same as bind if local)" : "連線地址(若為近端的話,則與綁定相同)", - "_{n} item added to album_::_{n} items added to album_" : ["已新增 {n} 個項目至相簿"], + "Transcoder" : "轉碼器", + "Template" : "模板", + "No items" : "沒有項目", + "Shared by {user}" : "由 {user} 分享", + "_{n} item_::_{n} items_" : ["{n} 個項目"], + "_{n} photo updated_::_{n} photos updated_" : ["更新了 {n} 張照片"], "Add people or groups who can edit your album" : "添加可以編輯您的相簿的用戶或群組", "Search for collaborators" : "尋找協作者", "Search people or groups" : "搜尋人或群組", @@ -178,7 +232,6 @@ OC.L10N.register( "Could not load the selected album" : "無法載入選定的相簿", "Remove Album" : "移除相簿", "Are you sure you want to permanently remove album \"{name}\"?" : "您確定要永久刪除相冊 “{name}” 嗎?", - "Only user \"{user}\" can delete this album" : "僅用戶「{user}」可以刪除此人", "Failed to delete {name}." : "刪除 {name} 失敗。", "Name of the album" : "相簿名稱", "Location of the album" : "相簿位置", @@ -190,12 +243,14 @@ OC.L10N.register( "Save" : "保存", "Create album" : "創建相簿", "Invalid album name; should not contain any slashes." : "相簿名稱無效; 不應包含任何斜線。", - "Add selection to album {albumName}" : "將選擇添加至相簿 {albumName}", - "Create a new album." : "創建新相簿。", - "_%n item_::_%n items_" : ["%n 個項目"], - "_Share with %n user_::_Share with %n users_" : ["與 %n 個用戶分享"], + "Search" : "搜尋", + "Create new album." : "創建新相簿。", + "Save changes" : "保存更改", + "_Removed from {n} album_::_Removed from {n} albums_" : ["從 {n} 個相簿移除了"], "Share Album" : "分享相簿", "Save collaborators for this album." : "保存此相簿的協作者。", + "shared by {owner}" : "由 {owner} 分享", + "_%n item_::_%n items_" : ["%n 個項目"], "Newest" : "最新", "Year" : "年", "Month" : "月", @@ -232,18 +287,19 @@ OC.L10N.register( "Name" : "名字", "Update" : "更新", "Failed to rename {oldName} to {name}." : "重新命名 {oldName} 為 {name} 失敗。", - "Search" : "搜尋", "Loading …" : "加載中 …", "Enter name of the new face" : "輸入新面孔的名字", "Failed to create face" : "創建面孔失敗", "Merge {name} with person" : "將 {name} 與人合併", - "Are you sure you want to merge {name} with {newName}?" : "您確定要將 {name} 與 {newName} 合併嗎?", + "Merge faces" : "合併面孔", + "Merge {name} with {newName}?" : "將 {name} 與 {newName} 合併?", + "unnamed person" : "未命名的人", "Too many failures, aborting" : "失敗次數過多,中止", "Error while moving {basename}" : "移動 {basename} 時出錯", "Failed to move {name}." : "移動 {name} 失敗。", "Move selected photos to person" : "移動選定的照片到人", - "Are you sure you want to move the selected photos from {name} to {target}?" : "您確定您想要從 {name} 移動選定的照片至 {target} 嗎?", - "An error occured while moving photos from {name}." : "從 {name} 移動照片時出錯。", + "Move the selected photos to {target}?" : "移動選定的照片到 {target}?", + "An error occurred while moving photos from {name}." : "從 {name} 移動照片時出錯。", "Choose a folder" : "選擇資料夾", "_{n} item moved to folder_::_{n} items moved to folder_" : ["已移動 {n} 個項目至資料夾"], "Remove" : "移除", @@ -278,10 +334,11 @@ OC.L10N.register( "Sort by name" : "依名稱排序", "Share album" : "分享相簿", "Download album" : "下載相簿", - "Delete album" : "刪除相簿", "Nothing to show here" : "此處無可顯示之物", + "Unassigned faces" : "未指派的臉孔", "Merge with different person" : "與其他人合併", "Mark person in preview" : "在預覽中標記人", + "Unnamed person" : "未命名的人", "Folder View" : "資料夾檢視", "Timeline View" : "時間線檢視", "Share folder" : "分享資料夾", @@ -292,14 +349,14 @@ OC.L10N.register( "Unsaved changes" : "未儲存變更", "Drop changes" : "取消更改", "Share" : "分享", - "Play Live Photo" : "播放實況照片", - "Sidebar" : "側邊欄", + "Play Live Photo" : "播放 Live Photo", "Download Video" : "下載視像", "Slideshow" : "圖片播放", "Previous" : "上一", "Next" : "下一", "Editing is currently disabled for Live Photos" : "Live Photos 的編輯功能目前已停用", "Are you sure you want to delete?" : "您確定要刪除嗎?", + "Failed to delete photo" : "刪除照片失敗", "{name} binary exists and is executable." : "{name} 二進製檔案存在且可執行", "{name} binary not found." : "找不到 {name} 二進製檔案。", "{name} binary is not executable." : "{name} 二進製檔案不是可執行檔案。", @@ -309,7 +366,6 @@ OC.L10N.register( "Save as" : "另存為", "All changes will be lost." : "所有的更改將被掉棄。", "Are you sure you want to continue?" : "您確定要繼續嗎?", - "Continue" : "繼續", "Undo" : "撤消", "Redo" : "重作", "Show original image" : "顯示原始圖像", @@ -394,6 +450,7 @@ OC.L10N.register( "Auto" : "自動", "Shared Folder" : "分享資料夾", "Shared Album" : "已分享了的相簿", + "Failed to remove {filename}." : "移除 {fileName} 失敗。", "Failed to create {albumName}." : "創建 {albumName} 失敗。", "Failed to rename {currentAlbumName} to {newAlbumName}." : "重新命名 {currentAlbumName} 為 {newAlbumName} 失敗。", "General Failure" : "一般故障", @@ -406,6 +463,9 @@ OC.L10N.register( "Failed to favorite files." : "加入最愛失敗。", "Failed to favorite some files." : "將部份檔案加入最愛失敗。", "Failed to favorite {fileName}." : "將 {fileName} 加入最愛失敗。", + "No content-location header found" : "找不到內容位置標頭", + "Failed to create tag {name}: {error}" : "未能創建標籤 “{name}”:{error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories 已更新至 {version}。重新整理以取得新版本。", "Upload some photos and make sure the timeline path is configured" : "上傳一些照片並確保已設定時間軸路徑", "Mark photos as favorite to find them easily" : "將照片標記為最愛以輕鬆找到它們", "Memories from past years will appear here" : "往年的照片會出現在這裡", @@ -418,6 +478,7 @@ OC.L10N.register( "Tag photos to find them easily" : "為照片加上標籤以輕鬆地找到它們", "Recognize is still working on your photos" : "Recognize 仍在處理您的照片", "Places you have been to will appear here" : "您去過的地方會出現在此處", - "Your Timeline" : "您的時間線" + "Yes" : "是", + "No" : "否" }, "nplurals=1; plural=0;"); diff --git a/l10n/zh_HK.json b/l10n/zh_HK.json index f597ed86..85031ee8 100644 --- a/l10n/zh_HK.json +++ b/l10n/zh_HK.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "下載", "Memories" : "回憶", "Fast, modern and advanced photo management suite" : "快速、現代且進階的照片管理套裝軟體", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "Memories 是一個全功能的照片管理解決方案,專為 Nextcloud 設計,具有高級功能,包括:\n\n- **📸時間軸**:按拍攝日期排序照片和視頻,從Exif數據中解析。\n- **⏪ 倒帶**:立即跳轉到過去的任何時間並重溫您的回憶。\n- **🤖 AI 標記**:通過[recognize](https://github.com/nextcloud/recognize) 和 [facerecognition](https://github.com/matiasdelellis/facerecognition) 驅動,將照片按人和物體分組。\n- **🖼️相冊**:創建相冊以將照片和視頻分組在一起。然後與其他人分享這些相冊。\n- **🫱🏻‍🫲🏻外部共享**:與 Nextcloud 實例外的人分享照片和視頻。\n- **📱 手機支持**:通過 Web 應用程序從任何形狀和大小的設備工作。\n- **✏️ 編輯元數據**:快速批量編輯照片的日期和其他元數據。\n- **📦 遷移**:從 Nextcloud 照片和 Google Takeout 輕鬆遷移。\n- **📹 視頻轉碼**:轉碼視頻並使用 HLS 實現最大效果。\n- **🗺️ 地圖**:在地圖上查看照片,標記準確的反向地理編碼。\n- **⚡️ 性能**:所有這些都非常快速。\n\n## 🚀 安裝\n\n1. 從 Nextcloud 應用商店安裝應用程序(在此處嘗試演示版 [here](https://memories-demo.radialapps.com/apps/memories/))。\n1. 執行建議的 [配置步驟](https://memories.gallery/config/)。\n1. 執行 `php occ memories:index` 以生成現有照片的元數據索引。\n1. 在 Nextcloud 中打開 📷 Memories 應用程序,並設置包含您的照片的目錄。", @@ -22,17 +23,20 @@ "Face Recognition" : "人臉識別", "A better photos experience awaits you" : "更好的照片體驗正等著您", "Choose the root folder of your timeline to begin" : "選擇您時間軸的根資料夾以開始", - "If you just installed Memories, run:" : "若您安裝了 Memories,請執行:", "Continue to Memories" : "繼續使用 Memories", "Choose again" : "再次選擇", "Click here to start" : "點擊此處以開始", "You can always change this later in settings" : "您總是可以稍後在設定中變更此選項", + "If you just installed Memories, visit the admin panel first." : "若您剛安裝 Memories,請先造訪管理面板。", "Choose the root of your timeline" : "選擇您時間線的根", "The selected folder does not seem to be valid. Try again." : "選定的資料夾似乎是無效的。請再試一次。", + "No photos were found in the selected folder." : "選定的資料夾中找不到照片。", + "This can happen because your media is still indexing." : "因為仍在製作您媒體的索引,因此這可能會發生。", + "Visit the admin panel to make sure Memories is configured correctly." : "造訪管理面板以確保 Memories 正確設定。", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["在 {path} 中找到 {n} 個項目"], + "Metadata" : "元數據", "Edit" : "編輯", - "No title" : "沒有標題", - "No description" : "沒有描述", + "Failed to load metadata" : "載入元數據失敗", "No coordinates" : "無座標", "Click edit to set location" : "點擊編輯以設定位置", "Photos" : "照片", @@ -40,7 +44,6 @@ "Cancel" : "取消", "Delete" : "刪除", "Remove from album" : "從相簿移除", - "Download" : "下載", "Favorite" : "我的最愛", "Unarchive" : "取消封存", "Edit metadata" : "編輯元數據", @@ -49,9 +52,12 @@ "Add to album" : "添加至相簿", "Move to person" : "移動到人", "Remove from person" : "從人中刪除", - "You are about to download a large number of files. Are you sure?" : "您即將下載大量檔案。你確定嗎?", - "You are about to delete a large number of files. Are you sure?" : "您即將刪除大量檔案。你確定嗎?", - "You are about to touch a large number of files. Are you sure?" : "您將要處理大量檔案。你確定嗎?", + "You are about to download a large number of files." : "您即將下載大量檔案。", + "Continue" : "繼續", + "You are about to delete a large number of files" : "您即將刪除大量檔案。", + "Failed to delete files" : "刪除檔案失敗", + "Move" : "移動", + "You are about to move a large number of files" : "您將要移動大量檔案。", "You must enable \"Mark person in preview\" to use this feature" : "您必須啟用「在預覽中標記人」以使用此功能", "Only user \"{user}\" can update this person" : "僅用戶「{user}」可以更新此人", "_{n} selected_::_{n} selected_" : ["已選擇 {n} 個"], @@ -60,31 +66,72 @@ "Timeline Path" : "時間線途徑", "Square grid mode" : "方形網格模式", "Show past photos on top of timeline" : "在時間軸頂部顯示過去的照片", + "Viewer" : "檢視器", + "Autoplay Live Photos" : "自動播放 Live Photos", "Load full size image on zoom" : "在縮放時加載全尺寸圖像", "Always load full size image (not recommended)" : "一律加載全尺寸圖像(不推薦)", + "Account" : "賬戶", + "Logged in as {user}" : "以 {user} 登入", + "Sign out" : "登出", + "Device Folders" : "裝置資料夾", + "Local folders to include in the timeline view" : "要包含在時間軸檢視中的近端資料夾", "Folders Path" : "資料夾路徑", "Show hidden folders" : "顯示隱藏資料夾", "Sort folders oldest-first" : "將資料夾從最舊開始排序", "Sort albums oldest-first" : "將相簿從最舊開始排序", "Choose Timeline Paths" : "選擇時間線途徑", "Choose the root for the folders view" : "選擇資料夾檢視的根", + "Are you sure you want to log out {user}?" : "{user} 您確定要登出嗎?", "Close" : "關閉", "{photoCount} photos" : "{photoCount} 張照片", "Failed to load some photos" : "未能加載一些照片", "Failed to update setting" : "更新設定失敗", - "EXIF Extraction" : "EXIF 解壓縮", + "Albums support is enabled through the Photos app." : "相簿支援通過照片應用程式啟用。", + "Albums are disabled because the Photos app is not available." : "由於“照片”應用程式不可用,因此相簿已停用。", + "Face Recognition is installed and enabled" : "人臉識別已安裝並啟用。", + "Preview generator is installed and enabled. Additional configuration may still be required." : "預覽生成器已安裝並啟用。可能仍需要額外的配置。", + "Preview generator is not installed and configured. This may make Memories very slow." : "未安裝和配置預覽生成器。這可能會讓 Memories 變得非常慢。", + "Recommended Apps" : "推薦應用程式", "Path to packaged exiftool binary" : "包裝好的 exiftool 二進製檔案的途徑。", "You need perl only if the packaged exiftool binary does not work for some reason." : "僅當 exiftool 二進製檔案由於某種原因不起作用時才需要 PERL。", "Use system perl (only if exiftool binary does not work)" : "使用系統 PERL(僅當 exiftool 二進製檔案不起作用時)", - "Media Indexing" : "媒體索引", + "EXIF Extraction" : "EXIF 解壓縮", + "You can configure the enabled Nextcloud preview providers below." : "您可以在下方設定已啟用的 Nextcloud 預覽提供者。", + "If you are using Imaginary for preview generation, you can ignore this section." : "若您正在使用 Imaginary 作為預覽產生程式,您可以忽略此區塊。", + "To enable RAW support, install the Camera RAW Previews app." : "要啟用 RAW 支援,請安裝 Camera RAW Previews 應用程式。", + "Documentation." : "說明書。", + "PHP-Imagick is available [{version}]." : "PHP-Imagick 可用 [{version}]。", + "PHP-Imagick is not available." : "PHP-Imagick 不可用。", + "Image editing will not work correctly." : "圖像編輯將無法正常工作。", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "縮略圖生成可能不適用於某些格式(HEIC、TIFF)。", + "Thumbnails for videos will be generated with this binary." : "視頻的縮略圖將使用此二進製文件生成。", + "Thumbnail generation may not work for videos." : "縮略圖生成可能不適用於視頻。", + "The following MIME types are configured for preview generation." : "以下的 MIME 類型已正確設定可讓預覽產生。", + "Max preview size (trade-off between quality and storage requirements)." : "最大預覽大小(品質與儲存空間要求間的權衡)。", + "Max memory for preview generation (MB)" : "預覽產生的最大記憶體 (MB)", + "Max size of preview files (MB)" : "最大預覽檔案大小 (MB)", + "File Support" : "檔案支援", + "Images (JPEG, PNG, GIF, BMP)" : "圖像 (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "視像 (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "感謝您選擇 Nextcloud 和 Memories 來存儲您的寶貴數據!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories 功能非常豐富,正確設置它可能需要一些時間。", + "If you just installed Memories, make sure you read the getting started guide:" : "如果您剛剛安裝了 Memories,請務必閱讀入門指南:", + "External Link" : "外部連結", + "In case you run into any issues or bugs, you can get help through several channels." : "如果您遇到任何問題或錯誤,您可以通過多種渠道獲得幫助。", + "Memories is a completely free and open source app under active development." : "Memories 是一款完全免費的開源應用程式,正在積極開發中。", + "You can contribute in several ways. See the project page for more details:" : "您可以通過多種方式做出貢獻。請參閱項目頁面了解更多詳細信息:", + "Help & Support" : "幫助 & 支援", "{n} media files have been indexed" : "{n} 個媒體檔案已被索引", "Automatic Indexing status: {status}" : "自動索引狀態:{status}", "Last index job was run {t} seconds ago." : "最後一個索引作業在 {t} 秒前運行。", "It took {t} seconds to complete." : "需要 {t} 秒完成。", "It is still running or was interrupted." : "它仍在運行或被中斷。", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "看起來距離上次運行索引作業已經過去一個多小時了。 確保 Nextcloud cron 配置正確。", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "僅支持伺服器端加密(OC_DEFAULT_MODULE),但已啟用另一個加密模塊。", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF 索引是在定期後台任務中建立和檢查的。選擇自動索引以外的任何內容時要小心。例如,將索引設置為僅時間線資料夾可能會導致媒體在用戶可用之前出現延遲,因為用戶僅在登錄後配置時間線。", - "Folders with a \".nomedia\" file are always excluded from indexing." : "帶有 “.nomedia” 檔案的資料夾總是被排除在索引之外。", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "具有“.nomedia”或“.nomemories”檔案的資料夾始終從索引中排除。", "Index all media automatically (recommended)" : "自動索引所有媒體(推薦)", "Index per-user timeline folders (not recommended)" : "索引每個用戶的時間線資料夾(不推薦)", "Index a fixed relative path" : "索引一個固定的相對途徑", @@ -95,15 +142,13 @@ "Force re-indexing of all files:" : "強制重新索引所有檔案:", "You can limit indexing by user and/or folder:" : "您可以按用戶和/或資料夾限制索引:", "Clear all existing index tables:" : "清除所有現有的索引數據庫表:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "以下 MIME 類型已為預覽生成正確配置。更多說明書:", - "External Link" : "外部連結", - "Performance" : "效能", + "Media Indexing" : "媒體索引", "HTTPS is enabled" : "已啟用 HTTPS", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "您正在通過不安全的上下文訪問此頁面。 有幾個瀏覽器 API 不可用,這會使 Memories 非常慢。 在您的服務器上啟用 HTTPS 以提高性能。", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 或 HTTP/3 已啟用", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "強烈建議使用 HTTP/2 或 HTTP/3(檢測到 {httpVer})", + "Performance" : "效能", "Unknown" : "不詳", - "Reverse Geocoding" : "反向地理編碼", "Database is populated with {n} geometries." : "數據庫中自動增加了 {n} 個 geometries。", "Geometry table has not been created." : "尚未創建 geometry 數據庫表", "Looks like the planet data is incomplete." : "看起來行星數據不完整。", @@ -113,13 +158,13 @@ "If the button below does not work for importing the planet data, use the following command:" : "若下方按鈕無法匯入地球資料,請使用以下指令:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "注意:geometry 數據存儲在 memories_planet_geometry 表中,沒有前綴。", "Download planet database" : "下載地球數據庫", + "Reverse Geocoding" : "反向地理編碼", "Geometry support was not detected in your database" : "您的數據庫中並未偵測到 geometry 支援", "MySQL-like geometry support was detected " : "檢測到類似 MySQL 的 geometry 支援", "Postgres native geometry support was detected" : "偵測到 Postgres 的原生 geometry 支援", "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起來數據庫已經設置好了。您確定要重新下載行星數據嗎?", "You are about to download the planet database. This may take a while." : "您即將下載行星數據庫。下載可能需要一段時間。", "This may also cause all photos to be re-indexed!" : "這也可能導致所有照片被重新索引!", - "Video Streaming" : "視像串流", "Live transcoding provides for adaptive streaming of videos using HLS." : "即時轉換編碼使用 HLS 提供自動調整串流。", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "請注意,若無硬體加速,這可能會讓 CPU 有非常高的使用率,且轉換編碼不會用於外部儲存空間。", "Enable Transcoding" : "啟用轉換編碼", @@ -129,14 +174,14 @@ "Auto (adaptive transcode)" : "自動(自動調整轉碼)", "Original (transcode with max quality)" : "原先的(使用最高質素轉碼)", "Direct (original video file without transcode)" : "直接(沒有轉碼的原先的視像檔案)", - "Hardware Acceleration" : "硬體加速", + "Video Streaming" : "視像串流", "You must first make sure the correct drivers are installed before configuring acceleration." : "在配置加速之前,您必須先確保安裝了正確的驅動程式。", "Make sure you test hardware acceleration with various options after enabling." : "確保在啟用後使用各種選項測試硬件加速。", "Do not enable multiple types of hardware acceleration simultaneously." : "不要同時啟用多種類型的硬件加速。", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "支援 QuickSync Video (QSV) 的 Intel 處理器以及一些 AMD GPU 可使用 VA-API 加速進行轉碼。", "For more details on driver installation, check the documentation:" : "關於更多驅動程式安裝的資訊,請看說明書:", "Enable acceleration with VA-API" : "啟用 VA-API 加速", - "Enable low-power mode (QSV)" : "啟用低功率模式 (QSV)", + "Enable low-power mode (QSV only)" : "啟用低功率模式 (僅QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU 可用於使用帶有適當驅動程式的 NVENC 編碼器進行轉碼。", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "取決於安裝的 SDK 與 ffmpeg 版本,您可能需要指定要使用的 scaler", "No automated tests are available for NVIDIA acceleration." : "未提供 NVIDIA 加速的自動化測試", @@ -144,17 +189,26 @@ "Enable NVENC Temporal AQ" : "啟用 NVENC 臨時 AQ", "NPP scaler" : "NPP scaler", "CUDA scaler" : "CUDA scaler", + "not recommended" : "不推薦", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "由於某些硬件驅動程序中的錯誤,視頻在流式傳輸時可能會出現錯誤的方向。在某些情況下,可以通過在加速器上旋轉視頻來解決此問題。", + "Enable the following option only if you have incorrectly oriented videos during playback." : "僅當您在播放過程中視頻方向不正確時才啟用以下選項。", + "Enable streaming transpose workaround" : "啟用流轉置解決方法", + "HW Acceleration" : "硬體加速", "VA-API device ({dev}) is readable" : "VA-API 裝置({dev})可讀", "VA-API device ({dev}) not found" : "找不到 VA-API 裝置({dev})", "VA-API device ({dev}) has incorrect permissions" : "VA-API 裝置({dev})權限不正確", "VA-API device status: {status}" : "VA-API 裝置狀態:{status}", - "Transcoder configuration" : "轉碼器配置", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories 使用 go-vod 轉碼器。您可以在外部執行 go-vod(例如,在單獨的 Docker 容器中進行硬體加速)或使用內建的轉碼器。要使用外部轉碼器,請啟用以下選項並按照說明書進行操作:", "Enable external transcoder (go-vod)" : "啟用外部轉碼器 (go-vod)", "Binary path (local only)" : "二進製檔案的途徑(僅近端)", "Bind address (local only)" : "綁定地址(僅近端)", "Connection address (same as bind if local)" : "連線地址(若為近端的話,則與綁定相同)", - "_{n} item added to album_::_{n} items added to album_" : ["已新增 {n} 個項目至相簿"], + "Transcoder" : "轉碼器", + "Template" : "模板", + "No items" : "沒有項目", + "Shared by {user}" : "由 {user} 分享", + "_{n} item_::_{n} items_" : ["{n} 個項目"], + "_{n} photo updated_::_{n} photos updated_" : ["更新了 {n} 張照片"], "Add people or groups who can edit your album" : "添加可以編輯您的相簿的用戶或群組", "Search for collaborators" : "尋找協作者", "Search people or groups" : "搜尋人或群組", @@ -176,7 +230,6 @@ "Could not load the selected album" : "無法載入選定的相簿", "Remove Album" : "移除相簿", "Are you sure you want to permanently remove album \"{name}\"?" : "您確定要永久刪除相冊 “{name}” 嗎?", - "Only user \"{user}\" can delete this album" : "僅用戶「{user}」可以刪除此人", "Failed to delete {name}." : "刪除 {name} 失敗。", "Name of the album" : "相簿名稱", "Location of the album" : "相簿位置", @@ -188,12 +241,14 @@ "Save" : "保存", "Create album" : "創建相簿", "Invalid album name; should not contain any slashes." : "相簿名稱無效; 不應包含任何斜線。", - "Add selection to album {albumName}" : "將選擇添加至相簿 {albumName}", - "Create a new album." : "創建新相簿。", - "_%n item_::_%n items_" : ["%n 個項目"], - "_Share with %n user_::_Share with %n users_" : ["與 %n 個用戶分享"], + "Search" : "搜尋", + "Create new album." : "創建新相簿。", + "Save changes" : "保存更改", + "_Removed from {n} album_::_Removed from {n} albums_" : ["從 {n} 個相簿移除了"], "Share Album" : "分享相簿", "Save collaborators for this album." : "保存此相簿的協作者。", + "shared by {owner}" : "由 {owner} 分享", + "_%n item_::_%n items_" : ["%n 個項目"], "Newest" : "最新", "Year" : "年", "Month" : "月", @@ -230,18 +285,19 @@ "Name" : "名字", "Update" : "更新", "Failed to rename {oldName} to {name}." : "重新命名 {oldName} 為 {name} 失敗。", - "Search" : "搜尋", "Loading …" : "加載中 …", "Enter name of the new face" : "輸入新面孔的名字", "Failed to create face" : "創建面孔失敗", "Merge {name} with person" : "將 {name} 與人合併", - "Are you sure you want to merge {name} with {newName}?" : "您確定要將 {name} 與 {newName} 合併嗎?", + "Merge faces" : "合併面孔", + "Merge {name} with {newName}?" : "將 {name} 與 {newName} 合併?", + "unnamed person" : "未命名的人", "Too many failures, aborting" : "失敗次數過多,中止", "Error while moving {basename}" : "移動 {basename} 時出錯", "Failed to move {name}." : "移動 {name} 失敗。", "Move selected photos to person" : "移動選定的照片到人", - "Are you sure you want to move the selected photos from {name} to {target}?" : "您確定您想要從 {name} 移動選定的照片至 {target} 嗎?", - "An error occured while moving photos from {name}." : "從 {name} 移動照片時出錯。", + "Move the selected photos to {target}?" : "移動選定的照片到 {target}?", + "An error occurred while moving photos from {name}." : "從 {name} 移動照片時出錯。", "Choose a folder" : "選擇資料夾", "_{n} item moved to folder_::_{n} items moved to folder_" : ["已移動 {n} 個項目至資料夾"], "Remove" : "移除", @@ -276,10 +332,11 @@ "Sort by name" : "依名稱排序", "Share album" : "分享相簿", "Download album" : "下載相簿", - "Delete album" : "刪除相簿", "Nothing to show here" : "此處無可顯示之物", + "Unassigned faces" : "未指派的臉孔", "Merge with different person" : "與其他人合併", "Mark person in preview" : "在預覽中標記人", + "Unnamed person" : "未命名的人", "Folder View" : "資料夾檢視", "Timeline View" : "時間線檢視", "Share folder" : "分享資料夾", @@ -290,14 +347,14 @@ "Unsaved changes" : "未儲存變更", "Drop changes" : "取消更改", "Share" : "分享", - "Play Live Photo" : "播放實況照片", - "Sidebar" : "側邊欄", + "Play Live Photo" : "播放 Live Photo", "Download Video" : "下載視像", "Slideshow" : "圖片播放", "Previous" : "上一", "Next" : "下一", "Editing is currently disabled for Live Photos" : "Live Photos 的編輯功能目前已停用", "Are you sure you want to delete?" : "您確定要刪除嗎?", + "Failed to delete photo" : "刪除照片失敗", "{name} binary exists and is executable." : "{name} 二進製檔案存在且可執行", "{name} binary not found." : "找不到 {name} 二進製檔案。", "{name} binary is not executable." : "{name} 二進製檔案不是可執行檔案。", @@ -307,7 +364,6 @@ "Save as" : "另存為", "All changes will be lost." : "所有的更改將被掉棄。", "Are you sure you want to continue?" : "您確定要繼續嗎?", - "Continue" : "繼續", "Undo" : "撤消", "Redo" : "重作", "Show original image" : "顯示原始圖像", @@ -392,6 +448,7 @@ "Auto" : "自動", "Shared Folder" : "分享資料夾", "Shared Album" : "已分享了的相簿", + "Failed to remove {filename}." : "移除 {fileName} 失敗。", "Failed to create {albumName}." : "創建 {albumName} 失敗。", "Failed to rename {currentAlbumName} to {newAlbumName}." : "重新命名 {currentAlbumName} 為 {newAlbumName} 失敗。", "General Failure" : "一般故障", @@ -404,6 +461,9 @@ "Failed to favorite files." : "加入最愛失敗。", "Failed to favorite some files." : "將部份檔案加入最愛失敗。", "Failed to favorite {fileName}." : "將 {fileName} 加入最愛失敗。", + "No content-location header found" : "找不到內容位置標頭", + "Failed to create tag {name}: {error}" : "未能創建標籤 “{name}”:{error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories 已更新至 {version}。重新整理以取得新版本。", "Upload some photos and make sure the timeline path is configured" : "上傳一些照片並確保已設定時間軸路徑", "Mark photos as favorite to find them easily" : "將照片標記為最愛以輕鬆找到它們", "Memories from past years will appear here" : "往年的照片會出現在這裡", @@ -416,6 +476,7 @@ "Tag photos to find them easily" : "為照片加上標籤以輕鬆地找到它們", "Recognize is still working on your photos" : "Recognize 仍在處理您的照片", "Places you have been to will appear here" : "您去過的地方會出現在此處", - "Your Timeline" : "您的時間線" + "Yes" : "是", + "No" : "否" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/l10n/zh_TW.js b/l10n/zh_TW.js index ad33c0f9..f0b3119b 100644 --- a/l10n/zh_TW.js +++ b/l10n/zh_TW.js @@ -1,6 +1,7 @@ OC.L10N.register( "memories", { + "Download" : "下載", "Memories" : "回憶", "Fast, modern and advanced photo management suite" : "快速、現代且進階的照片管理套裝軟體", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# 回憶:Nextcloud 的照片管理程式\n\n回憶是一個有進階功能的 *超強* Nextcloud 相片管理解決方案,包含了以下功能:\n\n- **📸 時間軸**:從 Exif 資料中按拍攝日期對照片與影片進行排序。\n- **⏪ 倒帶**:立刻跳回過去的任何時間,重溫您的回憶。\n- **🤖 AI 標記**:使用 [recognize](https://github.com/nextcloud/recognize) 與 [facerecognition](https://github.com/matiasdelellis/facerecognition) 應用程式提供的按人物與物體對照片進行分組。\n- **🖼️ 相簿**:建立相簿以將照片與影片分組。然後將這些相簿與其他人分享。\n- **🫱🏻‍🫲🏻 外部分享**:與您 Nextcloud 站台以外的人們分享照片與影片。\n- **📱 行動裝置支援**:透過網路應用程式在任何形狀與大小的裝置上運作。\n- **✏️ 編輯詮釋資料**:快速輕鬆地批次編輯照片上的日期與其他詮釋資料。\n- **📦 封存**:將您不想在時間軸中看到的照片儲存在單獨的資料夾中。\n- **📹 視訊轉換編碼**:轉換視訊編碼並使用 HLS 來取得最大效能。\n- **🗺️ 地圖**:在地圖上檢視您的照片,並使用準確的反向地理編碼來標記。\n- **📦 遷移**:從 Nextcloud Photos 與 Google Takeout 簡易遷移。\n- **⚡️ 效能**:這些功能都超快。\n\n## 🚀 安裝\n\n- 想看看本應用程式的外觀與感覺,請見[公開展示](https://memories-demo.radialapps.com/apps/memories/).\n- 展示站是唯讀的,可能會有點慢(來自 [Oracle Cloud](https://www.oracle.com/cloud/free/) 的免費層級虛擬機器)。\n- 照片則歸功於 [Unsplash](https://unsplash.com/)(若要檢視單獨的署名,請參見每個資料夾中的資訊)。\n\n\n## 🚀 安裝\n1. 從 Nextcloud 應用程式商店安裝應用程式([在此](https://demo.memories.gallery/apps/memories/)試用展示版本)。\n1. 執行建議的[設定步驟](https://memories.gallery/config/)。\n1. 執行 `php occ memories:index` 以產生既有照片的詮釋資料索引。\n1. 在 Nextcloud 中開啟 📷 回憶應用程式,並設定包含您照片的目錄。", @@ -13,8 +14,8 @@ OC.L10N.register( "Folders" : "資料夾", "Favorites" : "最愛", "Videos" : "影片", - "Albums" : "專輯", - "Archive" : "壓縮檔", + "Albums" : "相簿", + "Archive" : "封存", "On this day" : "在這天", "Places" : "地點", "Map" : "地圖", @@ -24,17 +25,20 @@ OC.L10N.register( "Face Recognition" : "臉部識別", "A better photos experience awaits you" : "更好的照片體驗正等著您", "Choose the root folder of your timeline to begin" : "選擇您時間軸的根資料夾以開始", - "If you just installed Memories, run:" : "若您安裝了 Memories,請執行:", "Continue to Memories" : "繼續使用 Memories", "Choose again" : "再次選擇", "Click here to start" : "點擊此處以開始", "You can always change this later in settings" : "您總是可以稍後在設定中變更此選項", + "If you just installed Memories, visit the admin panel first." : "若您剛安裝 Memories,請先造訪管理面板。", "Choose the root of your timeline" : "選擇您時間軸的根", "The selected folder does not seem to be valid. Try again." : "選定的資料夾似乎是無效的。請再試一次。", + "No photos were found in the selected folder." : "選定的資料夾中找不到照片。", + "This can happen because your media is still indexing." : "因為仍在製作您媒體的索引,因此這可能會發生。", + "Visit the admin panel to make sure Memories is configured correctly." : "造訪管理面板以確保 Memories 正確設定。", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["在 {path} 中找到 {n} 個項目"], + "Metadata" : "詮釋資料", "Edit" : "編輯", - "No title" : "無標題", - "No description" : "無描述", + "Failed to load metadata" : "載入詮釋資料失敗", "No coordinates" : "無座標", "Click edit to set location" : "點擊編輯以設定位置", "Photos" : "照片", @@ -42,7 +46,6 @@ OC.L10N.register( "Cancel" : "取消", "Delete" : "刪除", "Remove from album" : "從相簿移除", - "Download" : "下載", "Favorite" : "收藏", "Unarchive" : "取消封存", "Edit metadata" : "編輯詮釋資料", @@ -51,10 +54,12 @@ OC.L10N.register( "Add to album" : "新增至相簿", "Move to person" : "移動到人", "Remove from person" : "從人中移除", - "You are about to download a large number of files. Are you sure?" : "您將要下載大量檔案。您確定嗎?", - "You are about to delete a large number of files. Are you sure?" : "您將要刪除大量檔案。您確定嗎?", + "You are about to download a large number of files." : "您將要下載大量檔案。", + "Continue" : "繼續", + "You are about to delete a large number of files" : "您將要刪除大量檔案", "Failed to delete files" : "刪除檔案失敗", - "You are about to touch a large number of files. Are you sure?" : "您將要處理大量檔案。您確定嗎?", + "Move" : "移動", + "You are about to move a large number of files" : "您將要移動大量檔案", "You must enable \"Mark person in preview\" to use this feature" : "您必須啟用「在預覽中標記人」以使用此功能", "Only user \"{user}\" can update this person" : "僅使用者「{user}」可以更新此人", "_{n} selected_::_{n} selected_" : ["已選取 {n} 個"], @@ -63,31 +68,72 @@ OC.L10N.register( "Timeline Path" : "時間軸路徑", "Square grid mode" : "方形網格模式", "Show past photos on top of timeline" : "在時間軸頂部顯示過去的照片", + "Viewer" : "檢視器", + "Autoplay Live Photos" : "自動播放 Live Photos", "Load full size image on zoom" : "在縮放時載入全尺寸的圖片", "Always load full size image (not recommended)" : "一律載入全尺寸的圖片(不建議)", + "Account" : "帳號", + "Logged in as {user}" : "登入為 {user}", + "Sign out" : "登出", + "Device Folders" : "裝置資料夾", + "Local folders to include in the timeline view" : "要包含在時間軸檢視中的本機資料夾", "Folders Path" : "資料夾路徑", "Show hidden folders" : "顯示隱藏的資料夾", "Sort folders oldest-first" : "將資料夾從最舊開始排序", "Sort albums oldest-first" : "將相簿從最舊開始排序", "Choose Timeline Paths" : "選擇時間軸路徑", "Choose the root for the folders view" : "選擇資料夾檢視的根", + "Are you sure you want to log out {user}?" : "您確定要登出 {user}?", "Close" : "關閉", "{photoCount} photos" : "{photoCount} 張照片", "Failed to load some photos" : "載入部份照片時失敗", "Failed to update setting" : "更新設定失敗", - "EXIF Extraction" : "EXIF 解壓縮", + "Albums support is enabled through the Photos app." : "相簿支援透過照片應用程式啟用。", + "Albums are disabled because the Photos app is not available." : "因為「照片」應用程式不可用,因此已停用相簿。", + "Face Recognition is installed and enabled" : "臉部辨識已安裝並啟用", + "Preview generator is installed and enabled. Additional configuration may still be required." : "預覽產生器已安裝並啟用。可能仍需要額外的設定。", + "Preview generator is not installed and configured. This may make Memories very slow." : "未安裝並設定預覽產生器。這可能會讓 Memories 變得非常慢。", + "Recommended Apps" : "建議的應用程式", "Path to packaged exiftool binary" : "打包好的 exiftool 二進位檔路徑", "You need perl only if the packaged exiftool binary does not work for some reason." : "僅當打包好的 exiftool 二進位檔案因為某種原因無法運作時才需要 perl。", "Use system perl (only if exiftool binary does not work)" : "使用系統 perl(僅當 exiftool 二進位檔案無法運作時)", - "Media Indexing" : "媒體索引", + "EXIF Extraction" : "EXIF 解壓縮", + "You can configure the enabled Nextcloud preview providers below." : "您可以在下方設定已啟用的 Nextcloud 預覽提供者。", + "If you are using Imaginary for preview generation, you can ignore this section." : "若您正在使用 Imaginary 作為預覽產生程式,您可以忽略此區塊。", + "To enable RAW support, install the Camera RAW Previews app." : "要啟用 RAW 支援,請安裝 Camera RAW Previews 應用程式。", + "Documentation." : "文件。", + "PHP-Imagick is available [{version}]." : "PHP-Imagick 可用 [{version}]。", + "PHP-Imagick is not available." : "PHP-Imagick 不可用。", + "Image editing will not work correctly." : "影像編輯將無法正常運作。", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "縮圖產生可能不適用於某些格式 (HEIC, TIFF)。", + "Thumbnails for videos will be generated with this binary." : "影片的縮圖將使用此二進位檔案產生。", + "Thumbnail generation may not work for videos." : "縮圖產生可能無法在影片運作。", + "The following MIME types are configured for preview generation." : "以下的 MIME 類型已正確設定可讓預覽產生。", + "Max preview size (trade-off between quality and storage requirements)." : "最大預覽大小(品質與儲存空間要求間的權衡)。", + "Max memory for preview generation (MB)" : "預覽產生的最大記憶體 (MB)", + "Max size of preview files (MB)" : "最大預覽檔案大小 (MB)", + "File Support" : "檔案支援", + "Images (JPEG, PNG, GIF, BMP)" : "影像 (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "影片 (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "感謝您選擇 Nextcloud 與 Memories 來儲存您的寶貴資料!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories 功能非常豐富,正確設定它可能需要一點時間。", + "If you just installed Memories, make sure you read the getting started guide:" : "若您剛安裝 Memories,請務必閱讀入門指南:", + "External Link" : "外部連結", + "In case you run into any issues or bugs, you can get help through several channels." : "若您遇到任何問題或錯誤,您可以透過多種管道取得協助。", + "Memories is a completely free and open source app under active development." : "Memories 是一款完全自由且開放原始碼的應用程式,正在積極開發中。", + "You can contribute in several ways. See the project page for more details:" : "您可以透過多種方式做出貢獻。請參閱專案頁面了解更多詳細資訊:", + "Help & Support" : "協助與支援", "{n} media files have been indexed" : "已索引 {n} 個媒體檔案", "Automatic Indexing status: {status}" : "自動索引狀態:{status}", "Last index job was run {t} seconds ago." : "最後一次索引作業於{t}秒前執行。", "It took {t} seconds to complete." : "需要{t}秒完成。", "It is still running or was interrupted." : "其仍在執行或被中斷。", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "看起來距離上次執行索引作業已經過去一個多小時了。請確保 Nextcloud cron 設定正確。", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "僅支援伺服器端加密 (OC_DEFAULT_MODULE),但已啟用另一個加密模組。", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF 索引是在定期的背景工作中建立與檢查的。選擇自動索引以外的內容內容時必須小心。例如,將索引設定為僅時間軸資料夾可能會導致媒體在使用者可用前出現延遲,因為使用者僅會在登入後設定時間軸。", - "Folders with a \".nomedia\" file are always excluded from indexing." : "包含「.nomedia」檔案的資料夾一律會被排除在索引之外。", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "包含「.nomedia」或「.nomemories」檔案的資料夾一律會被排除在索引之外。", "Index all media automatically (recommended)" : "自動索引所有媒體(推薦)", "Index per-user timeline folders (not recommended)" : "索引每個使用者的時間軸資料夾(不推薦)", "Index a fixed relative path" : "索引一個固定的相對路徑", @@ -98,31 +144,29 @@ OC.L10N.register( "Force re-indexing of all files:" : "強制重新索引所有檔案:", "You can limit indexing by user and/or folder:" : "您可以按使用者及/或資料夾限制索引:", "Clear all existing index tables:" : "清除所有既有的索引資料表:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "以下 MIME 類型已正確設定為可讓預設產生。更多文件:", - "External Link" : "外部連結", - "Performance" : "效能", + "Media Indexing" : "媒體索引", "HTTPS is enabled" : "已啟用 HTTPS", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "您正在透過不安全的環境存取此頁面。有幾個瀏覽器 API 無法使用,這可能會導致 Memories 非常慢。在您的伺服器上啟用 HTTPS 以改善效能。", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 或 HTTP/3 已啟用", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "強烈建議使用 HTTP/2 或 HTTP/3(偵測到 {httpVer})", + "Performance" : "效能", "Unknown" : "未知", - "Reverse Geocoding" : "反向地理編碼", "Database is populated with {n} geometries." : "資料庫中填充了 {n} 個幾何圖形。", "Geometry table has not been created." : "尚未建立幾何圖形表格。", "Looks like the planet data is incomplete." : "看起來行星資料不完整。", "Reverse geocoding has not been configured ({status})." : "尚未設定反向地理編碼({status})。", "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories 支援使用 MySQL 與 Postgres 上的 OpenStreetMap 資料進行離線反向地理編碼。", - "You need to download the planet data into your database. This is highly recommended and has low overhead." : "您需要將地球資料下載到您的資料庫中。強烈推薦此方式且其開銷很低。", - "If the button below does not work for importing the planet data, use the following command:" : "若下方案鈕無法匯入地球資料,請使用以下指令:", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "您需要將地圖資料下載到您的資料庫中。強烈推薦此方式且其開銷很低。", + "If the button below does not work for importing the planet data, use the following command:" : "若下方按鈕無法匯入地圖資料,請使用以下指令:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "注意:幾何資料儲存在 memories_planet_geometry 資料表中,沒有前綴。", - "Download planet database" : "下載地球資料庫", + "Download planet database" : "下載地圖資料庫", + "Reverse Geocoding" : "反向地理編碼", "Geometry support was not detected in your database" : "您的資料庫中並未偵測到幾何支援", "MySQL-like geometry support was detected " : "偵測到類 MySQL 的幾何支援", "Postgres native geometry support was detected" : "偵測到 Postgres 的原生幾何支援", - "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起來資料庫已經設定好了。您確定要重新下載行星資料嗎?", - "You are about to download the planet database. This may take a while." : "您將要下載行星資料庫。這可能需要一段時間。", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起來資料庫已經設定好了。您確定要重新下載地圖資料嗎?", + "You are about to download the planet database. This may take a while." : "您將要下載地圖資料庫。這可能需要一段時間。", "This may also cause all photos to be re-indexed!" : "這也可能導致所有照片被重新索引!", - "Video Streaming" : "視訊串流", "Live transcoding provides for adaptive streaming of videos using HLS." : "即時轉換編碼使用 HLS 提供自動調整串流。", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "請注意,若無硬體加速,這可能會讓 CPU 有非常高的使用率,且轉換編碼不會用於外部儲存空間。", "Enable Transcoding" : "啟用轉換編碼", @@ -132,14 +176,14 @@ OC.L10N.register( "Auto (adaptive transcode)" : "自動(自動調整轉碼)", "Original (transcode with max quality)" : "原始(使用最高品質轉碼)", "Direct (original video file without transcode)" : "直接(沒有轉碼的原始影片檔案)", - "Hardware Acceleration" : "硬體加速", + "Video Streaming" : "視訊串流", "You must first make sure the correct drivers are installed before configuring acceleration." : "在設定加速之前,您必須先確保安裝了正確的驅動程式。", "Make sure you test hardware acceleration with various options after enabling." : "確保在啟用後使用各種選項測試硬體加速。", "Do not enable multiple types of hardware acceleration simultaneously." : "不要同時啟用多種類型的硬體加速。", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "支援 QuickSync Video (QSV) 的 Intel 處理器以及一些 AMD GPU 可使用 VA-API 加速進行轉碼。", "For more details on driver installation, check the documentation:" : "關於更多驅動程式安裝的資訊,請見文件:", "Enable acceleration with VA-API" : "啟用 VA-API 加速", - "Enable low-power mode (QSV)" : "啟用低功率模式 (QSV)", + "Enable low-power mode (QSV only)" : "啟用低功率模式(僅 QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU 可用於使用帶有適當驅動程式的 NVENC 編碼器進行轉碼。", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "取決於安裝的 SDK 與 ffmpeg 版本,您可能需要指定要使用的 scaler", "No automated tests are available for NVIDIA acceleration." : "未提供 NVIDIA 加速的自動化測試", @@ -147,17 +191,26 @@ OC.L10N.register( "Enable NVENC Temporal AQ" : "啟用 NVENC 臨時 AQ", "NPP scaler" : "NPP scaler", "CUDA scaler" : "CUDA scaler", + "not recommended" : "不建議", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "因為某些硬體驅動程式的臭蟲,視訊在串流時可能會出現錯誤的方向。在某些情況下,可以透過在加速器上旋轉視訊來解決此問題。", + "Enable the following option only if you have incorrectly oriented videos during playback." : "僅當您在播放過程中視訊方向不正確時才啟用以下選項。", + "Enable streaming transpose workaround" : "啟用串流轉置臨時解決方案", + "HW Acceleration" : "硬體加速", "VA-API device ({dev}) is readable" : "VA-API 裝置({dev})可讀", "VA-API device ({dev}) not found" : "找不到 VA-API 裝置({dev})", "VA-API device ({dev}) has incorrect permissions" : "VA-API 裝置({dev})權限不正確", "VA-API device status: {status}" : "VA-API 裝置狀態:{status}", - "Transcoder configuration" : "轉碼器設定", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories 使用 go-vod 轉碼器。您可以在外部執行 go-vod(例如,在單獨的 Docker 容器中進行硬體加速)或使用內建的轉碼器。要使用外部轉碼器,請啟用以下選項並按照文件中的說明進行操作:", "Enable external transcoder (go-vod)" : "啟用外部轉碼器 (go-vod)", "Binary path (local only)" : "二進位檔路徑(僅本機)", "Bind address (local only)" : "綁定地址(僅本機)", "Connection address (same as bind if local)" : "連線地址(若為本機的話,則與綁定相同)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} 個項目已新增至相簿"], + "Transcoder" : "轉碼器", + "Template" : "範本", + "No items" : "無項目", + "Shared by {user}" : "由 {user} 分享", + "_{n} item_::_{n} items_" : ["{n} 個項目"], + "_{n} photo updated_::_{n} photos updated_" : ["已更新 {n} 張照片"], "Add people or groups who can edit your album" : "新增可以編輯您的相簿的使用者或群組", "Search for collaborators" : "搜尋協作者", "Search people or groups" : "搜尋使用者或群組", @@ -179,7 +232,6 @@ OC.L10N.register( "Could not load the selected album" : "無法載入選定的相簿", "Remove Album" : "移除相簿", "Are you sure you want to permanently remove album \"{name}\"?" : "您確定要永久移除相簿「{name}」嗎?", - "Only user \"{user}\" can delete this album" : "僅使用者「{user}」可以刪除此相簿", "Failed to delete {name}." : "刪除 {name} 失敗。", "Name of the album" : "相簿名稱", "Location of the album" : "相簿位置", @@ -191,12 +243,14 @@ OC.L10N.register( "Save" : "儲存", "Create album" : "建立相簿", "Invalid album name; should not contain any slashes." : "無效的相簿名稱;不應包含任何斜線。", - "Add selection to album {albumName}" : "新增選取範圍至相簿 {albumName}", - "Create a new album." : "建立新相簿。", - "_%n item_::_%n items_" : ["%n 個項目"], - "_Share with %n user_::_Share with %n users_" : ["與 %n 個使用者分享"], + "Search" : "搜尋", + "Create new album." : "建立新相簿。", + "Save changes" : "保存變更", + "_Removed from {n} album_::_Removed from {n} albums_" : ["已從 {n} 個相簿中移除"], "Share Album" : "分享相簿", "Save collaborators for this album." : "儲存此相簿的協作者。", + "shared by {owner}" : "由 {owner} 分享", + "_%n item_::_%n items_" : ["%n 個項目"], "Newest" : "最新", "Year" : "年", "Month" : "月", @@ -233,18 +287,19 @@ OC.L10N.register( "Name" : "名稱", "Update" : "更新", "Failed to rename {oldName} to {name}." : "將 {oldName} 重新命名為 {name} 失敗。", - "Search" : "搜尋", "Loading …" : "正在載入……", "Enter name of the new face" : "輸入新臉孔的名字", "Failed to create face" : "建立臉孔失敗", "Merge {name} with person" : "將 {name} 與人合併", - "Are you sure you want to merge {name} with {newName}?" : "您真的想要將 {name} 與 {newName} 合併嗎?", + "Merge faces" : "合併臉孔", + "Merge {name} with {newName}?" : "將 {name} 與 {newName} 合併?", + "unnamed person" : "未命名的人", "Too many failures, aborting" : "失敗次數過多,中止", "Error while moving {basename}" : "移動 {basename} 時發生錯誤", "Failed to move {name}." : "移動 {name} 失敗。", "Move selected photos to person" : "移動選定的照片到人", - "Are you sure you want to move the selected photos from {name} to {target}?" : "您確定您想要從 {name} 移動選定的照片到 {target} 嗎?", - "An error occured while moving photos from {name}." : "從 {name} 移動照片時發生錯誤。", + "Move the selected photos to {target}?" : "移動選定的照片到 {target}?", + "An error occurred while moving photos from {name}." : "從 {name} 移動照片時發生錯誤。", "Choose a folder" : "選擇資料夾", "_{n} item moved to folder_::_{n} items moved to folder_" : ["已移動 {n} 個項目至資料夾"], "Remove" : "移除", @@ -279,10 +334,11 @@ OC.L10N.register( "Sort by name" : "依名稱排序", "Share album" : "分享相簿", "Download album" : "下載相簿", - "Delete album" : "刪除相簿", "Nothing to show here" : "此處無可顯示之物", + "Unassigned faces" : "未指派的臉孔", "Merge with different person" : "與其他人合併", "Mark person in preview" : "在預覽中標記人", + "Unnamed person" : "未命名的人", "Folder View" : "資料夾檢視", "Timeline View" : "時間軸檢視", "Share folder" : "分享資料夾", @@ -294,7 +350,6 @@ OC.L10N.register( "Drop changes" : "放棄變更", "Share" : "分享", "Play Live Photo" : "播放 Live Photo", - "Sidebar" : "側邊欄", "Download Video" : "下載影片", "Slideshow" : "幻燈片", "Previous" : "上一步", @@ -311,7 +366,6 @@ OC.L10N.register( "Save as" : "另存新檔", "All changes will be lost." : "所有變更都將會遺失。", "Are you sure you want to continue?" : "您確定您想要繼續嗎?", - "Continue" : "繼續", "Undo" : "復原", "Redo" : "重作", "Show original image" : "顯示原始影像", @@ -396,6 +450,7 @@ OC.L10N.register( "Auto" : "自動", "Shared Folder" : "已分享的資料夾", "Shared Album" : "已分享的相簿", + "Failed to remove {filename}." : "移除 {filename} 失敗。", "Failed to create {albumName}." : "建立 {albumName} 失敗。", "Failed to rename {currentAlbumName} to {newAlbumName}." : "重新命名 {currentAlbumName} 為 {newAlbumName} 失敗。", "General Failure" : "一般失敗", @@ -408,6 +463,9 @@ OC.L10N.register( "Failed to favorite files." : "加入最愛檔案失敗。", "Failed to favorite some files." : "將部份檔案加入最愛失敗。", "Failed to favorite {fileName}." : "將 {fileName} 加入最愛失敗。", + "No content-location header found" : "找不到內容位置標頭", + "Failed to create tag {name}: {error}" : "建立標籤 {name} 失敗:{error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories 已更新至 {version}。重新整理以取得新版本。", "Upload some photos and make sure the timeline path is configured" : "上傳一些照片並確保已設定時間軸路徑", "Mark photos as favorite to find them easily" : "將照片標記為最愛以輕鬆找到它們", "Memories from past years will appear here" : "往年的回憶會出現在這裡", @@ -420,6 +478,7 @@ OC.L10N.register( "Tag photos to find them easily" : "為照片加上標籤以輕鬆地找到它們", "Recognize is still working on your photos" : "Recognize 仍在處理您的照片", "Places you have been to will appear here" : "您去過的地方會出現在此處", - "Your Timeline" : "您的時間軸" + "Yes" : "是", + "No" : "否" }, "nplurals=1; plural=0;"); diff --git a/l10n/zh_TW.json b/l10n/zh_TW.json index b53e22f7..92ffab8b 100644 --- a/l10n/zh_TW.json +++ b/l10n/zh_TW.json @@ -1,4 +1,5 @@ { "translations": { + "Download" : "下載", "Memories" : "回憶", "Fast, modern and advanced photo management suite" : "快速、現代且進階的照片管理套裝軟體", "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos." : "# 回憶:Nextcloud 的照片管理程式\n\n回憶是一個有進階功能的 *超強* Nextcloud 相片管理解決方案,包含了以下功能:\n\n- **📸 時間軸**:從 Exif 資料中按拍攝日期對照片與影片進行排序。\n- **⏪ 倒帶**:立刻跳回過去的任何時間,重溫您的回憶。\n- **🤖 AI 標記**:使用 [recognize](https://github.com/nextcloud/recognize) 與 [facerecognition](https://github.com/matiasdelellis/facerecognition) 應用程式提供的按人物與物體對照片進行分組。\n- **🖼️ 相簿**:建立相簿以將照片與影片分組。然後將這些相簿與其他人分享。\n- **🫱🏻‍🫲🏻 外部分享**:與您 Nextcloud 站台以外的人們分享照片與影片。\n- **📱 行動裝置支援**:透過網路應用程式在任何形狀與大小的裝置上運作。\n- **✏️ 編輯詮釋資料**:快速輕鬆地批次編輯照片上的日期與其他詮釋資料。\n- **📦 封存**:將您不想在時間軸中看到的照片儲存在單獨的資料夾中。\n- **📹 視訊轉換編碼**:轉換視訊編碼並使用 HLS 來取得最大效能。\n- **🗺️ 地圖**:在地圖上檢視您的照片,並使用準確的反向地理編碼來標記。\n- **📦 遷移**:從 Nextcloud Photos 與 Google Takeout 簡易遷移。\n- **⚡️ 效能**:這些功能都超快。\n\n## 🚀 安裝\n\n- 想看看本應用程式的外觀與感覺,請見[公開展示](https://memories-demo.radialapps.com/apps/memories/).\n- 展示站是唯讀的,可能會有點慢(來自 [Oracle Cloud](https://www.oracle.com/cloud/free/) 的免費層級虛擬機器)。\n- 照片則歸功於 [Unsplash](https://unsplash.com/)(若要檢視單獨的署名,請參見每個資料夾中的資訊)。\n\n\n## 🚀 安裝\n1. 從 Nextcloud 應用程式商店安裝應用程式([在此](https://demo.memories.gallery/apps/memories/)試用展示版本)。\n1. 執行建議的[設定步驟](https://memories.gallery/config/)。\n1. 執行 `php occ memories:index` 以產生既有照片的詮釋資料索引。\n1. 在 Nextcloud 中開啟 📷 回憶應用程式,並設定包含您照片的目錄。", @@ -11,8 +12,8 @@ "Folders" : "資料夾", "Favorites" : "最愛", "Videos" : "影片", - "Albums" : "專輯", - "Archive" : "壓縮檔", + "Albums" : "相簿", + "Archive" : "封存", "On this day" : "在這天", "Places" : "地點", "Map" : "地圖", @@ -22,17 +23,20 @@ "Face Recognition" : "臉部識別", "A better photos experience awaits you" : "更好的照片體驗正等著您", "Choose the root folder of your timeline to begin" : "選擇您時間軸的根資料夾以開始", - "If you just installed Memories, run:" : "若您安裝了 Memories,請執行:", "Continue to Memories" : "繼續使用 Memories", "Choose again" : "再次選擇", "Click here to start" : "點擊此處以開始", "You can always change this later in settings" : "您總是可以稍後在設定中變更此選項", + "If you just installed Memories, visit the admin panel first." : "若您剛安裝 Memories,請先造訪管理面板。", "Choose the root of your timeline" : "選擇您時間軸的根", "The selected folder does not seem to be valid. Try again." : "選定的資料夾似乎是無效的。請再試一次。", + "No photos were found in the selected folder." : "選定的資料夾中找不到照片。", + "This can happen because your media is still indexing." : "因為仍在製作您媒體的索引,因此這可能會發生。", + "Visit the admin panel to make sure Memories is configured correctly." : "造訪管理面板以確保 Memories 正確設定。", "_Found {n} item in {path}_::_Found {n} items in {path}_" : ["在 {path} 中找到 {n} 個項目"], + "Metadata" : "詮釋資料", "Edit" : "編輯", - "No title" : "無標題", - "No description" : "無描述", + "Failed to load metadata" : "載入詮釋資料失敗", "No coordinates" : "無座標", "Click edit to set location" : "點擊編輯以設定位置", "Photos" : "照片", @@ -40,7 +44,6 @@ "Cancel" : "取消", "Delete" : "刪除", "Remove from album" : "從相簿移除", - "Download" : "下載", "Favorite" : "收藏", "Unarchive" : "取消封存", "Edit metadata" : "編輯詮釋資料", @@ -49,10 +52,12 @@ "Add to album" : "新增至相簿", "Move to person" : "移動到人", "Remove from person" : "從人中移除", - "You are about to download a large number of files. Are you sure?" : "您將要下載大量檔案。您確定嗎?", - "You are about to delete a large number of files. Are you sure?" : "您將要刪除大量檔案。您確定嗎?", + "You are about to download a large number of files." : "您將要下載大量檔案。", + "Continue" : "繼續", + "You are about to delete a large number of files" : "您將要刪除大量檔案", "Failed to delete files" : "刪除檔案失敗", - "You are about to touch a large number of files. Are you sure?" : "您將要處理大量檔案。您確定嗎?", + "Move" : "移動", + "You are about to move a large number of files" : "您將要移動大量檔案", "You must enable \"Mark person in preview\" to use this feature" : "您必須啟用「在預覽中標記人」以使用此功能", "Only user \"{user}\" can update this person" : "僅使用者「{user}」可以更新此人", "_{n} selected_::_{n} selected_" : ["已選取 {n} 個"], @@ -61,31 +66,72 @@ "Timeline Path" : "時間軸路徑", "Square grid mode" : "方形網格模式", "Show past photos on top of timeline" : "在時間軸頂部顯示過去的照片", + "Viewer" : "檢視器", + "Autoplay Live Photos" : "自動播放 Live Photos", "Load full size image on zoom" : "在縮放時載入全尺寸的圖片", "Always load full size image (not recommended)" : "一律載入全尺寸的圖片(不建議)", + "Account" : "帳號", + "Logged in as {user}" : "登入為 {user}", + "Sign out" : "登出", + "Device Folders" : "裝置資料夾", + "Local folders to include in the timeline view" : "要包含在時間軸檢視中的本機資料夾", "Folders Path" : "資料夾路徑", "Show hidden folders" : "顯示隱藏的資料夾", "Sort folders oldest-first" : "將資料夾從最舊開始排序", "Sort albums oldest-first" : "將相簿從最舊開始排序", "Choose Timeline Paths" : "選擇時間軸路徑", "Choose the root for the folders view" : "選擇資料夾檢視的根", + "Are you sure you want to log out {user}?" : "您確定要登出 {user}?", "Close" : "關閉", "{photoCount} photos" : "{photoCount} 張照片", "Failed to load some photos" : "載入部份照片時失敗", "Failed to update setting" : "更新設定失敗", - "EXIF Extraction" : "EXIF 解壓縮", + "Albums support is enabled through the Photos app." : "相簿支援透過照片應用程式啟用。", + "Albums are disabled because the Photos app is not available." : "因為「照片」應用程式不可用,因此已停用相簿。", + "Face Recognition is installed and enabled" : "臉部辨識已安裝並啟用", + "Preview generator is installed and enabled. Additional configuration may still be required." : "預覽產生器已安裝並啟用。可能仍需要額外的設定。", + "Preview generator is not installed and configured. This may make Memories very slow." : "未安裝並設定預覽產生器。這可能會讓 Memories 變得非常慢。", + "Recommended Apps" : "建議的應用程式", "Path to packaged exiftool binary" : "打包好的 exiftool 二進位檔路徑", "You need perl only if the packaged exiftool binary does not work for some reason." : "僅當打包好的 exiftool 二進位檔案因為某種原因無法運作時才需要 perl。", "Use system perl (only if exiftool binary does not work)" : "使用系統 perl(僅當 exiftool 二進位檔案無法運作時)", - "Media Indexing" : "媒體索引", + "EXIF Extraction" : "EXIF 解壓縮", + "You can configure the enabled Nextcloud preview providers below." : "您可以在下方設定已啟用的 Nextcloud 預覽提供者。", + "If you are using Imaginary for preview generation, you can ignore this section." : "若您正在使用 Imaginary 作為預覽產生程式,您可以忽略此區塊。", + "To enable RAW support, install the Camera RAW Previews app." : "要啟用 RAW 支援,請安裝 Camera RAW Previews 應用程式。", + "Documentation." : "文件。", + "PHP-Imagick is available [{version}]." : "PHP-Imagick 可用 [{version}]。", + "PHP-Imagick is not available." : "PHP-Imagick 不可用。", + "Image editing will not work correctly." : "影像編輯將無法正常運作。", + "Thumbnail generation may not work for some formats (HEIC, TIFF)." : "縮圖產生可能不適用於某些格式 (HEIC, TIFF)。", + "Thumbnails for videos will be generated with this binary." : "影片的縮圖將使用此二進位檔案產生。", + "Thumbnail generation may not work for videos." : "縮圖產生可能無法在影片運作。", + "The following MIME types are configured for preview generation." : "以下的 MIME 類型已正確設定可讓預覽產生。", + "Max preview size (trade-off between quality and storage requirements)." : "最大預覽大小(品質與儲存空間要求間的權衡)。", + "Max memory for preview generation (MB)" : "預覽產生的最大記憶體 (MB)", + "Max size of preview files (MB)" : "最大預覽檔案大小 (MB)", + "File Support" : "檔案支援", + "Images (JPEG, PNG, GIF, BMP)" : "影像 (JPEG, PNG, GIF, BMP)", + "HEIC (Imagick)" : "HEIC (Imagick)", + "TIFF (Imagick)" : "TIFF (Imagick)", + "Videos (ffmpeg)" : "影片 (ffmpeg)", + "Thank you for choosing Nextcloud and Memories to store your precious data!" : "感謝您選擇 Nextcloud 與 Memories 來儲存您的寶貴資料!", + "Memories is very feature rich and setting it up properly can take some time." : "Memories 功能非常豐富,正確設定它可能需要一點時間。", + "If you just installed Memories, make sure you read the getting started guide:" : "若您剛安裝 Memories,請務必閱讀入門指南:", + "External Link" : "外部連結", + "In case you run into any issues or bugs, you can get help through several channels." : "若您遇到任何問題或錯誤,您可以透過多種管道取得協助。", + "Memories is a completely free and open source app under active development." : "Memories 是一款完全自由且開放原始碼的應用程式,正在積極開發中。", + "You can contribute in several ways. See the project page for more details:" : "您可以透過多種方式做出貢獻。請參閱專案頁面了解更多詳細資訊:", + "Help & Support" : "協助與支援", "{n} media files have been indexed" : "已索引 {n} 個媒體檔案", "Automatic Indexing status: {status}" : "自動索引狀態:{status}", "Last index job was run {t} seconds ago." : "最後一次索引作業於{t}秒前執行。", "It took {t} seconds to complete." : "需要{t}秒完成。", "It is still running or was interrupted." : "其仍在執行或被中斷。", + "Looks like it has been more than an hour since the last index job was run. Make sure Nextcloud cron is configured correctly." : "看起來距離上次執行索引作業已經過去一個多小時了。請確保 Nextcloud cron 設定正確。", "Only server-side encryption (OC_DEFAULT_MODULE) is supported, but another encryption module is enabled." : "僅支援伺服器端加密 (OC_DEFAULT_MODULE),但已啟用另一個加密模組。", "The EXIF indexes are built and checked in a periodic background task. Be careful when selecting anything other than automatic indexing. For example, setting the indexing to only timeline folders may cause delays before media becomes available to users, since the user configures the timeline only after logging in." : "EXIF 索引是在定期的背景工作中建立與檢查的。選擇自動索引以外的內容內容時必須小心。例如,將索引設定為僅時間軸資料夾可能會導致媒體在使用者可用前出現延遲,因為使用者僅會在登入後設定時間軸。", - "Folders with a \".nomedia\" file are always excluded from indexing." : "包含「.nomedia」檔案的資料夾一律會被排除在索引之外。", + "Folders with a \".nomedia\" or a \".nomemories\" file are always excluded from indexing." : "包含「.nomedia」或「.nomemories」檔案的資料夾一律會被排除在索引之外。", "Index all media automatically (recommended)" : "自動索引所有媒體(推薦)", "Index per-user timeline folders (not recommended)" : "索引每個使用者的時間軸資料夾(不推薦)", "Index a fixed relative path" : "索引一個固定的相對路徑", @@ -96,31 +142,29 @@ "Force re-indexing of all files:" : "強制重新索引所有檔案:", "You can limit indexing by user and/or folder:" : "您可以按使用者及/或資料夾限制索引:", "Clear all existing index tables:" : "清除所有既有的索引資料表:", - "The following MIME types are configured for preview generation correctly. More documentation:" : "以下 MIME 類型已正確設定為可讓預設產生。更多文件:", - "External Link" : "外部連結", - "Performance" : "效能", + "Media Indexing" : "媒體索引", "HTTPS is enabled" : "已啟用 HTTPS", "You are accessing this page over an insecure context. Several browser APIs are not available, which will make Memories very slow. Enable HTTPS on your server to improve performance." : "您正在透過不安全的環境存取此頁面。有幾個瀏覽器 API 無法使用,這可能會導致 Memories 非常慢。在您的伺服器上啟用 HTTPS 以改善效能。", "HTTP/2 or HTTP/3 is enabled" : "HTTP/2 或 HTTP/3 已啟用", "HTTP/2 or HTTP/3 is strongly recommended ({httpVer} detected)" : "強烈建議使用 HTTP/2 或 HTTP/3(偵測到 {httpVer})", + "Performance" : "效能", "Unknown" : "未知", - "Reverse Geocoding" : "反向地理編碼", "Database is populated with {n} geometries." : "資料庫中填充了 {n} 個幾何圖形。", "Geometry table has not been created." : "尚未建立幾何圖形表格。", "Looks like the planet data is incomplete." : "看起來行星資料不完整。", "Reverse geocoding has not been configured ({status})." : "尚未設定反向地理編碼({status})。", "Memories supports offline reverse geocoding using the OpenStreetMaps data on MySQL and Postgres." : "Memories 支援使用 MySQL 與 Postgres 上的 OpenStreetMap 資料進行離線反向地理編碼。", - "You need to download the planet data into your database. This is highly recommended and has low overhead." : "您需要將地球資料下載到您的資料庫中。強烈推薦此方式且其開銷很低。", - "If the button below does not work for importing the planet data, use the following command:" : "若下方案鈕無法匯入地球資料,請使用以下指令:", + "You need to download the planet data into your database. This is highly recommended and has low overhead." : "您需要將地圖資料下載到您的資料庫中。強烈推薦此方式且其開銷很低。", + "If the button below does not work for importing the planet data, use the following command:" : "若下方按鈕無法匯入地圖資料,請使用以下指令:", "Note: the geometry data is stored in the memories_planet_geometry table, with no prefix." : "注意:幾何資料儲存在 memories_planet_geometry 資料表中,沒有前綴。", - "Download planet database" : "下載地球資料庫", + "Download planet database" : "下載地圖資料庫", + "Reverse Geocoding" : "反向地理編碼", "Geometry support was not detected in your database" : "您的資料庫中並未偵測到幾何支援", "MySQL-like geometry support was detected " : "偵測到類 MySQL 的幾何支援", "Postgres native geometry support was detected" : "偵測到 Postgres 的原生幾何支援", - "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起來資料庫已經設定好了。您確定要重新下載行星資料嗎?", - "You are about to download the planet database. This may take a while." : "您將要下載行星資料庫。這可能需要一段時間。", + "Looks like the database is already setup. Are you sure you want to redownload planet data?" : "看起來資料庫已經設定好了。您確定要重新下載地圖資料嗎?", + "You are about to download the planet database. This may take a while." : "您將要下載地圖資料庫。這可能需要一段時間。", "This may also cause all photos to be re-indexed!" : "這也可能導致所有照片被重新索引!", - "Video Streaming" : "視訊串流", "Live transcoding provides for adaptive streaming of videos using HLS." : "即時轉換編碼使用 HLS 提供自動調整串流。", "Note that this may be very CPU intensive without hardware acceleration, and transcoding will not be used for external storage." : "請注意,若無硬體加速,這可能會讓 CPU 有非常高的使用率,且轉換編碼不會用於外部儲存空間。", "Enable Transcoding" : "啟用轉換編碼", @@ -130,14 +174,14 @@ "Auto (adaptive transcode)" : "自動(自動調整轉碼)", "Original (transcode with max quality)" : "原始(使用最高品質轉碼)", "Direct (original video file without transcode)" : "直接(沒有轉碼的原始影片檔案)", - "Hardware Acceleration" : "硬體加速", + "Video Streaming" : "視訊串流", "You must first make sure the correct drivers are installed before configuring acceleration." : "在設定加速之前,您必須先確保安裝了正確的驅動程式。", "Make sure you test hardware acceleration with various options after enabling." : "確保在啟用後使用各種選項測試硬體加速。", "Do not enable multiple types of hardware acceleration simultaneously." : "不要同時啟用多種類型的硬體加速。", "Intel processors supporting QuickSync Video (QSV) as well as some AMD GPUs can be used for transcoding using VA-API acceleration." : "支援 QuickSync Video (QSV) 的 Intel 處理器以及一些 AMD GPU 可使用 VA-API 加速進行轉碼。", "For more details on driver installation, check the documentation:" : "關於更多驅動程式安裝的資訊,請見文件:", "Enable acceleration with VA-API" : "啟用 VA-API 加速", - "Enable low-power mode (QSV)" : "啟用低功率模式 (QSV)", + "Enable low-power mode (QSV only)" : "啟用低功率模式(僅 QSV)", "NVIDIA GPUs can be used for transcoding using the NVENC encoder with the proper drivers." : "NVIDIA GPU 可用於使用帶有適當驅動程式的 NVENC 編碼器進行轉碼。", "Depending on the versions of the installed SDK and ffmpeg, you need to specify the scaler to use" : "取決於安裝的 SDK 與 ffmpeg 版本,您可能需要指定要使用的 scaler", "No automated tests are available for NVIDIA acceleration." : "未提供 NVIDIA 加速的自動化測試", @@ -145,17 +189,26 @@ "Enable NVENC Temporal AQ" : "啟用 NVENC 臨時 AQ", "NPP scaler" : "NPP scaler", "CUDA scaler" : "CUDA scaler", + "not recommended" : "不建議", + "Due to a bug in certain hardware drivers, videos may appear in incorrect orientations when streaming. This can be resolved in some cases by rotating the video on the accelerator." : "因為某些硬體驅動程式的臭蟲,視訊在串流時可能會出現錯誤的方向。在某些情況下,可以透過在加速器上旋轉視訊來解決此問題。", + "Enable the following option only if you have incorrectly oriented videos during playback." : "僅當您在播放過程中視訊方向不正確時才啟用以下選項。", + "Enable streaming transpose workaround" : "啟用串流轉置臨時解決方案", + "HW Acceleration" : "硬體加速", "VA-API device ({dev}) is readable" : "VA-API 裝置({dev})可讀", "VA-API device ({dev}) not found" : "找不到 VA-API 裝置({dev})", "VA-API device ({dev}) has incorrect permissions" : "VA-API 裝置({dev})權限不正確", "VA-API device status: {status}" : "VA-API 裝置狀態:{status}", - "Transcoder configuration" : "轉碼器設定", "Memories uses the go-vod transcoder. You can run go-vod exernally (e.g. in a separate Docker container for hardware acceleration) or use the built-in transcoder. To use an external transcoder, enable the following option and follow the instructions in the documentation:" : "Memories 使用 go-vod 轉碼器。您可以在外部執行 go-vod(例如,在單獨的 Docker 容器中進行硬體加速)或使用內建的轉碼器。要使用外部轉碼器,請啟用以下選項並按照文件中的說明進行操作:", "Enable external transcoder (go-vod)" : "啟用外部轉碼器 (go-vod)", "Binary path (local only)" : "二進位檔路徑(僅本機)", "Bind address (local only)" : "綁定地址(僅本機)", "Connection address (same as bind if local)" : "連線地址(若為本機的話,則與綁定相同)", - "_{n} item added to album_::_{n} items added to album_" : ["{n} 個項目已新增至相簿"], + "Transcoder" : "轉碼器", + "Template" : "範本", + "No items" : "無項目", + "Shared by {user}" : "由 {user} 分享", + "_{n} item_::_{n} items_" : ["{n} 個項目"], + "_{n} photo updated_::_{n} photos updated_" : ["已更新 {n} 張照片"], "Add people or groups who can edit your album" : "新增可以編輯您的相簿的使用者或群組", "Search for collaborators" : "搜尋協作者", "Search people or groups" : "搜尋使用者或群組", @@ -177,7 +230,6 @@ "Could not load the selected album" : "無法載入選定的相簿", "Remove Album" : "移除相簿", "Are you sure you want to permanently remove album \"{name}\"?" : "您確定要永久移除相簿「{name}」嗎?", - "Only user \"{user}\" can delete this album" : "僅使用者「{user}」可以刪除此相簿", "Failed to delete {name}." : "刪除 {name} 失敗。", "Name of the album" : "相簿名稱", "Location of the album" : "相簿位置", @@ -189,12 +241,14 @@ "Save" : "儲存", "Create album" : "建立相簿", "Invalid album name; should not contain any slashes." : "無效的相簿名稱;不應包含任何斜線。", - "Add selection to album {albumName}" : "新增選取範圍至相簿 {albumName}", - "Create a new album." : "建立新相簿。", - "_%n item_::_%n items_" : ["%n 個項目"], - "_Share with %n user_::_Share with %n users_" : ["與 %n 個使用者分享"], + "Search" : "搜尋", + "Create new album." : "建立新相簿。", + "Save changes" : "保存變更", + "_Removed from {n} album_::_Removed from {n} albums_" : ["已從 {n} 個相簿中移除"], "Share Album" : "分享相簿", "Save collaborators for this album." : "儲存此相簿的協作者。", + "shared by {owner}" : "由 {owner} 分享", + "_%n item_::_%n items_" : ["%n 個項目"], "Newest" : "最新", "Year" : "年", "Month" : "月", @@ -231,18 +285,19 @@ "Name" : "名稱", "Update" : "更新", "Failed to rename {oldName} to {name}." : "將 {oldName} 重新命名為 {name} 失敗。", - "Search" : "搜尋", "Loading …" : "正在載入……", "Enter name of the new face" : "輸入新臉孔的名字", "Failed to create face" : "建立臉孔失敗", "Merge {name} with person" : "將 {name} 與人合併", - "Are you sure you want to merge {name} with {newName}?" : "您真的想要將 {name} 與 {newName} 合併嗎?", + "Merge faces" : "合併臉孔", + "Merge {name} with {newName}?" : "將 {name} 與 {newName} 合併?", + "unnamed person" : "未命名的人", "Too many failures, aborting" : "失敗次數過多,中止", "Error while moving {basename}" : "移動 {basename} 時發生錯誤", "Failed to move {name}." : "移動 {name} 失敗。", "Move selected photos to person" : "移動選定的照片到人", - "Are you sure you want to move the selected photos from {name} to {target}?" : "您確定您想要從 {name} 移動選定的照片到 {target} 嗎?", - "An error occured while moving photos from {name}." : "從 {name} 移動照片時發生錯誤。", + "Move the selected photos to {target}?" : "移動選定的照片到 {target}?", + "An error occurred while moving photos from {name}." : "從 {name} 移動照片時發生錯誤。", "Choose a folder" : "選擇資料夾", "_{n} item moved to folder_::_{n} items moved to folder_" : ["已移動 {n} 個項目至資料夾"], "Remove" : "移除", @@ -277,10 +332,11 @@ "Sort by name" : "依名稱排序", "Share album" : "分享相簿", "Download album" : "下載相簿", - "Delete album" : "刪除相簿", "Nothing to show here" : "此處無可顯示之物", + "Unassigned faces" : "未指派的臉孔", "Merge with different person" : "與其他人合併", "Mark person in preview" : "在預覽中標記人", + "Unnamed person" : "未命名的人", "Folder View" : "資料夾檢視", "Timeline View" : "時間軸檢視", "Share folder" : "分享資料夾", @@ -292,7 +348,6 @@ "Drop changes" : "放棄變更", "Share" : "分享", "Play Live Photo" : "播放 Live Photo", - "Sidebar" : "側邊欄", "Download Video" : "下載影片", "Slideshow" : "幻燈片", "Previous" : "上一步", @@ -309,7 +364,6 @@ "Save as" : "另存新檔", "All changes will be lost." : "所有變更都將會遺失。", "Are you sure you want to continue?" : "您確定您想要繼續嗎?", - "Continue" : "繼續", "Undo" : "復原", "Redo" : "重作", "Show original image" : "顯示原始影像", @@ -394,6 +448,7 @@ "Auto" : "自動", "Shared Folder" : "已分享的資料夾", "Shared Album" : "已分享的相簿", + "Failed to remove {filename}." : "移除 {filename} 失敗。", "Failed to create {albumName}." : "建立 {albumName} 失敗。", "Failed to rename {currentAlbumName} to {newAlbumName}." : "重新命名 {currentAlbumName} 為 {newAlbumName} 失敗。", "General Failure" : "一般失敗", @@ -406,6 +461,9 @@ "Failed to favorite files." : "加入最愛檔案失敗。", "Failed to favorite some files." : "將部份檔案加入最愛失敗。", "Failed to favorite {fileName}." : "將 {fileName} 加入最愛失敗。", + "No content-location header found" : "找不到內容位置標頭", + "Failed to create tag {name}: {error}" : "建立標籤 {name} 失敗:{error}", + "Memories has been updated to {version}. Reload to get the new version." : "Memories 已更新至 {version}。重新整理以取得新版本。", "Upload some photos and make sure the timeline path is configured" : "上傳一些照片並確保已設定時間軸路徑", "Mark photos as favorite to find them easily" : "將照片標記為最愛以輕鬆找到它們", "Memories from past years will appear here" : "往年的回憶會出現在這裡", @@ -418,6 +476,7 @@ "Tag photos to find them easily" : "為照片加上標籤以輕鬆地找到它們", "Recognize is still working on your photos" : "Recognize 仍在處理您的照片", "Places you have been to will appear here" : "您去過的地方會出現在此處", - "Your Timeline" : "您的時間軸" + "Yes" : "是", + "No" : "否" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 91a46cbb..236eb071 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -24,16 +24,20 @@ declare(strict_types=1); namespace OCA\Memories\AppInfo; use OCA\Memories\ClustersBackend; +use OCA\Memories\Listeners\BeforeTemplateListener; use OCA\Memories\Listeners\PostDeleteListener; +use OCA\Memories\Listeners\PostLogoutListener; use OCA\Memories\Listeners\PostWriteListener; use OCA\Memories\Util; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; +use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; use OCP\Files\Events\Node\NodeDeletedEvent; use OCP\Files\Events\Node\NodeTouchedEvent; use OCP\Files\Events\Node\NodeWrittenEvent; +use OCP\User\Events\UserLoggedOutEvent; const AUTH_HEADER = 'HTTP_AUTHORIZATION'; @@ -77,6 +81,10 @@ class Application extends App implements IBootstrap $context->registerEventListener(NodeTouchedEvent::class, PostWriteListener::class); $context->registerEventListener(NodeDeletedEvent::class, PostDeleteListener::class); + // Register other global hooks + $context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateListener::class); + $context->registerEventListener(UserLoggedOutEvent::class, PostLogoutListener::class); + // Register clusters backends ClustersBackend\AlbumsBackend::register(); ClustersBackend\TagsBackend::register(); diff --git a/lib/ClustersBackend/AlbumsBackend.php b/lib/ClustersBackend/AlbumsBackend.php index 6f8c3226..452fe699 100644 --- a/lib/ClustersBackend/AlbumsBackend.php +++ b/lib/ClustersBackend/AlbumsBackend.php @@ -67,7 +67,7 @@ class AlbumsBackend extends Backend public function transformDayQuery(&$query, bool $aggregate): void { - $albumId = (string) $this->request->getParam('albums'); + $albumId = (string) $this->request->getParam(self::clusterType()); // Get album object $album = $this->albumsQuery->getIfAllowed($this->getUID(), $albumId); @@ -87,20 +87,15 @@ class AlbumsBackend extends Backend $this->tq->allowEmptyRoot(); } - public function getClusters(): array + public function getClustersInternal(int $fileid = 0): array { - /** @var \OCP\IRequest $request */ - $request = \OC::$server->get(\OCP\IRequest::class); - - // Run actual query + // Run actual queries $list = []; - $t = (int) $request->getParam('t', 0); - if ($t & 1) { // personal - $list = array_merge($list, $this->albumsQuery->getList(Util::getUID())); - } - if ($t & 2) { // shared - $list = array_merge($list, $this->albumsQuery->getList(Util::getUID(), true)); - } + + // Personal albums + $list = array_merge($list, $this->albumsQuery->getList(Util::getUID(), false, $fileid)); + // Shared albums + $list = array_merge($list, $this->albumsQuery->getList(Util::getUID(), true, $fileid)); // Remove elements with duplicate album_id $seenIds = []; @@ -113,6 +108,13 @@ class AlbumsBackend extends Backend return true; }); + // Add display names for users + $userManager = \OC::$server->get(\OCP\IUserManager::class); + array_walk($list, function (&$item) use ($userManager) { + $user = $userManager->get($item['user']); + $item['user_display'] = $user ? $user->getDisplayName() : null; + }); + // Convert $list to sequential array return array_values($list); } diff --git a/lib/ClustersBackend/Backend.php b/lib/ClustersBackend/Backend.php index 27f406d4..85e31ec2 100644 --- a/lib/ClustersBackend/Backend.php +++ b/lib/ClustersBackend/Backend.php @@ -60,8 +60,13 @@ abstract class Backend /** * Get the cluster list for the current user. + * + * If the signature of this function changes, the + * getClusters function must be updated to match. + * + * @param int $fileid Filter clusters by file ID (optional) */ - abstract public function getClusters(): array; + abstract public function getClustersInternal(int $fileid = 0): array; /** * Get a cluster ID for the given cluster. @@ -123,10 +128,28 @@ abstract class Backend return (int) $photo['fileid']; } + /** + * Calls the getClusters implementation and appends the + * result with the cluster_id and cluster_type values. + * + * @param int $fileid Filter clusters by file ID (optional) + */ + final public function getClusters(int $fileid): array + { + $list = $this->getClustersInternal($fileid); + + foreach ($list as &$cluster) { + $cluster['cluster_id'] = $this->getClusterId($cluster); + $cluster['cluster_type'] = $this->clusterType(); + } + + return $list; + } + /** * Register the backend. Do not override. */ - public static function register(): void + final public static function register(): void { Manager::register(static::clusterType(), static::class); } diff --git a/lib/ClustersBackend/FaceRecognitionBackend.php b/lib/ClustersBackend/FaceRecognitionBackend.php index 7003becc..b593d3aa 100644 --- a/lib/ClustersBackend/FaceRecognitionBackend.php +++ b/lib/ClustersBackend/FaceRecognitionBackend.php @@ -94,14 +94,13 @@ class FaceRecognitionBackend extends Backend // Add face rect if (!$aggregate && $this->request->getParam('facerect')) { - $query->addSelect( - 'frf.x AS face_x', - 'frf.y AS face_y', - 'frf.width AS face_width', - 'frf.height AS face_height', - 'm.w AS image_width', - 'm.h AS image_height', - ); + $query->selectAlias('frf.x', 'face_x') + ->selectAlias('frf.y', 'face_y') + ->selectAlias('frf.width', 'face_width') + ->selectAlias('frf.height', 'face_height') + ->selectAlias('m.w', 'image_width') + ->selectAlias('m.h', 'image_height') + ; } } @@ -120,14 +119,14 @@ class FaceRecognitionBackend extends Backend 'y' => (float) $row['face_y'] / $row['image_height'], ]; - unset($row['face_x'], $row['face_y'], $row['face_w'], $row['face_h'], $row['image_height'], $row['image_width']); + unset($row['face_x'], $row['face_y'], $row['face_width'], $row['face_height'], $row['image_height'], $row['image_width']); } - public function getClusters(): array + public function getClustersInternal(int $fileid = 0): array { $faces = array_merge( - $this->getFaceRecognitionPersons(), - $this->getFaceRecognitionClusters() + $this->getFaceRecognitionPersons($fileid), + $this->getFaceRecognitionClusters($fileid) ); // Post process @@ -157,7 +156,6 @@ class FaceRecognitionBackend extends Backend 'frf.height', 'm.w as image_width', // Scoring 'm.h as image_height', - 'frf.confidence', 'm.fileid', 'm.datetaken', // Just in case, for postgres )->from('facerecog_faces', 'frf'); @@ -221,7 +219,12 @@ class FaceRecognitionBackend extends Backend return (int) $this->config->getAppValue('facerecognition', 'model', -1); } - private function getFaceRecognitionClusters(bool $show_singles = false, bool $show_hidden = false) + private function minFaceInClusters(): int + { + return (int) $this->config->getAppValue('facerecognition', 'min_faces_in_cluster', 5); + } + + private function getFaceRecognitionClusters(int $fileid = 0) { $query = $this->tq->getBuilder(); @@ -251,13 +254,14 @@ class FaceRecognitionBackend extends Backend $query->addGroupBy('frp.user'); $query->where($query->expr()->isNull('frp.name')); - // By default hides individual faces when they have no name. - if (!$show_singles) { - $query->having($query->expr()->gt($count, $query->expr()->literal(1, \PDO::PARAM_INT))); - } - - // By default it shows the people who were not hidden - if (!$show_hidden) { + // The query change if we want the people in an fileid, or the unnamed clusters + if ($fileid > 0) { + // WHERE these clusters contain fileid if specified + $query->andWhere($query->expr()->eq('fri.file', $query->createNamedParameter($fileid))); + } else { + // WHERE these clusters has a minimum number of faces + $query->having($query->expr()->gte($count, $query->expr()->literal($this->minFaceInClusters(), \PDO::PARAM_INT))); + // WHERE these clusters were not hidden due inconsistencies $query->andWhere($query->expr()->eq('frp.is_visible', $query->expr()->literal(1))); } @@ -272,7 +276,7 @@ class FaceRecognitionBackend extends Backend return $this->tq->executeQueryWithCTEs($query)->fetchAll() ?: []; } - private function getFaceRecognitionPersons() + private function getFaceRecognitionPersons(int $fileid = 0) { $query = $this->tq->getBuilder(); @@ -299,6 +303,12 @@ class FaceRecognitionBackend extends Backend // GROUP by name of face clusters $query->where($query->expr()->isNotNull('frp.name')); + + // WHERE these clusters contain fileid if specified + if ($fileid > 0) { + $query->andWhere($query->expr()->eq('fri.file', $query->createNamedParameter($fileid))); + } + $query->groupBy('frp.user'); $query->addGroupBy('frp.name'); diff --git a/lib/ClustersBackend/PeopleBackendUtils.php b/lib/ClustersBackend/PeopleBackendUtils.php index c5d89920..8cef941f 100644 --- a/lib/ClustersBackend/PeopleBackendUtils.php +++ b/lib/ClustersBackend/PeopleBackendUtils.php @@ -84,7 +84,7 @@ trait PeopleBackendUtils * - height: height of the face in the image (percentage) * * @param \OCP\Files\SimpleFS\ISimpleFile $file Actual file containing the image - * @param array $object The face object + * @param array $photo The face object * @param float $padding The padding to add around the face * * @return [Blob, mimetype] of resulting image diff --git a/lib/ClustersBackend/PlacesBackend.php b/lib/ClustersBackend/PlacesBackend.php index 75992f58..de3ca48d 100644 --- a/lib/ClustersBackend/PlacesBackend.php +++ b/lib/ClustersBackend/PlacesBackend.php @@ -63,8 +63,15 @@ class PlacesBackend extends Backend )); } - public function getClusters(): array + public function getClustersInternal(int $fileid = 0): array { + if ($fileid) { + throw new \Exception('PlacesBackend: fileid filter not implemented'); + } + + $inside = (int) $this->request->getParam('inside', 0); + $marked = (int) $this->request->getParam('mark', 1); + $query = $this->tq->getBuilder(); // SELECT location name and count of photos @@ -75,7 +82,41 @@ class PlacesBackend extends Backend $query->where($query->expr()->gt('e.admin_level', $query->expr()->literal(0, \PDO::PARAM_INT))); // WHERE there are items with this osm_id - $query->innerJoin('e', 'memories_places', 'mp', $query->expr()->eq('mp.osm_id', 'e.osm_id')); + $mpJoinOn = [$query->expr()->eq('mp.osm_id', 'e.osm_id')]; + + // AND these items are inside the requested place + if ($inside > 0) { + $sub = $this->tq->getBuilder(); + $sub->select($query->expr()->literal(1))->from('memories_places', 'mp_sq') + ->where($sub->expr()->eq('mp_sq.osm_id', $query->createNamedParameter($inside, \PDO::PARAM_INT))) + ->andWhere($sub->expr()->eq('mp_sq.fileid', 'mp.fileid')) + ; + $mpJoinOn[] = $query->createFunction("EXISTS ({$sub->getSQL()})"); + + // Add WHERE clauses to main query to filter out admin_levels + $sub = $this->tq->getBuilder(); + $sub->select('e_sq.admin_level') + ->from('memories_planet', 'e_sq') + ->where($sub->expr()->eq('e_sq.osm_id', $query->createNamedParameter($inside, \PDO::PARAM_INT))) + ; + $adminSql = "({$sub->getSQL()})"; + $query->andWhere($query->expr()->gt('e.admin_level', $query->createFunction($adminSql))) + ->andWhere($query->expr()->lte('e.admin_level', $query->createFunction("{$adminSql} + 3"))) + ; + } + + // Else if we are looking for countries + elseif (-1 === $inside) { + $query->andWhere($query->expr()->eq('e.admin_level', $query->expr()->literal(2, \PDO::PARAM_INT))); + } + + // AND these items are marked (only if not inside) + elseif ($marked > 0) { + $mpJoinOn[] = $query->expr()->eq('mp.mark', $query->expr()->literal(1, \PDO::PARAM_INT)); + } + + // JOIN on memories_places + $query->innerJoin('e', 'memories_places', 'mp', $query->expr()->andX(...$mpJoinOn)); // WHERE these items are memories indexed photos $query->innerJoin('mp', 'memories', 'm', $query->expr()->eq('m.fileid', 'mp.fileid')); @@ -104,8 +145,14 @@ class PlacesBackend extends Backend // INNER JOIN back on the planet table to get the names $query->innerJoin('sub', 'memories_planet', 'e', $query->expr()->eq('e.osm_id', 'sub.osm_id')); + // WHERE at least 3 photos if want marked clusters + if ($marked) { + $query->andWhere($query->expr()->gte('sub.count', $query->expr()->literal(3, \PDO::PARAM_INT))); + } + // ORDER BY name and osm_id - $query->orderBy($query->createFunction('LOWER(e.name)'), 'ASC'); + $query->orderBy($query->createFunction('sub.count'), 'DESC'); + $query->addOrderBy('e.name'); $query->addOrderBy('e.osm_id'); // tie-breaker // FETCH all tags @@ -115,7 +162,7 @@ class PlacesBackend extends Backend $lang = Util::getUserLang(); foreach ($places as &$row) { $row['osm_id'] = (int) $row['osm_id']; - $row['count'] = (int) $row['count']; + $row['count'] = $marked ? 0 : (int) $row['count']; // the count is incorrect self::choosePlaceLang($row, $lang); } diff --git a/lib/ClustersBackend/RecognizeBackend.php b/lib/ClustersBackend/RecognizeBackend.php index 5266c8f3..a36607a7 100644 --- a/lib/ClustersBackend/RecognizeBackend.php +++ b/lib/ClustersBackend/RecognizeBackend.php @@ -78,23 +78,25 @@ class RecognizeBackend extends Backend if (!$aggregate) { // Multiple detections for the same image - $query->addSelect('rfd.id AS faceid'); + $query->selectAlias('rfd.id', 'faceid'); // Face Rect if ($this->request->getParam('facerect')) { - $query->addSelect( - 'rfd.width AS face_w', - 'rfd.height AS face_h', - 'rfd.x AS face_x', - 'rfd.y AS face_y', - ); + $query->selectAlias('rfd.width', 'face_w') + ->selectAlias('rfd.height', 'face_h') + ->selectAlias('rfd.x', 'face_x') + ->selectAlias('rfd.y', 'face_y') + ; } } // Join with cluster $clusterQuery = null; if ('NULL' === $faceName) { - $clusterQuery = $query->expr()->isNull('rfd.cluster_id'); + $clusterQuery = $query->expr()->andX( + $query->expr()->eq('rfd.user_id', $query->createNamedParameter(Util::getUID())), + $query->expr()->eq('rfd.cluster_id', $query->expr()->literal(-1)) + ); } else { $nameField = is_numeric($faceName) ? 'rfc.id' : 'rfc.title'; $query->innerJoin('m', 'recognize_face_clusters', 'rfc', $query->expr()->andX( @@ -129,7 +131,7 @@ class RecognizeBackend extends Backend unset($row['face_w'], $row['face_h'], $row['face_x'], $row['face_y']); } - public function getClusters(): array + public function getClustersInternal(int $fileid = 0): array { $query = $this->tq->getBuilder(); @@ -149,6 +151,20 @@ class RecognizeBackend extends Backend // WHERE this cluster belongs to the user $query->where($query->expr()->eq('rfc.user_id', $query->createNamedParameter(Util::getUID()))); + // WHERE these clusters contain fileid if specified + if ($fileid > 0) { + $fSq = $this->tq->getBuilder() + ->select('rfd.file_id') + ->from('recognize_face_detections', 'rfd') + ->where($query->expr()->andX( + $query->expr()->eq('rfd.cluster_id', 'rfc.id'), + $query->expr()->eq('rfd.file_id', $query->createNamedParameter($fileid, \PDO::PARAM_INT)), + )) + ->getSQL() + ; + $query->andWhere($query->createFunction("EXISTS ({$fSq})")); + } + // GROUP by ID of face cluster $query->groupBy('rfc.id'); diff --git a/lib/ClustersBackend/TagsBackend.php b/lib/ClustersBackend/TagsBackend.php index a228436f..1a19f7c3 100644 --- a/lib/ClustersBackend/TagsBackend.php +++ b/lib/ClustersBackend/TagsBackend.php @@ -67,8 +67,12 @@ class TagsBackend extends Backend )); } - public function getClusters(): array + public function getClustersInternal(int $fileid = 0): array { + if ($fileid) { + throw new \Exception('TagsBackend: fileid filter not implemented'); + } + $query = $this->tq->getBuilder(); // SELECT visible tag name and count of photos diff --git a/lib/Command/MigrateGoogleTakeout.php b/lib/Command/MigrateGoogleTakeout.php index 575620cd..a5a66354 100644 --- a/lib/Command/MigrateGoogleTakeout.php +++ b/lib/Command/MigrateGoogleTakeout.php @@ -161,7 +161,7 @@ class MigrateGoogleTakeout extends Command protected function migrateFolder(Folder $folder): void { // Check for .nomedia - if ($folder->nodeExists('.nomedia')) { + if ($folder->nodeExists('.nomedia') || $folder->nodeExists('.nomemories')) { return; } diff --git a/lib/Command/PlacesSetup.php b/lib/Command/PlacesSetup.php index d96a1707..09fdea10 100644 --- a/lib/Command/PlacesSetup.php +++ b/lib/Command/PlacesSetup.php @@ -26,6 +26,7 @@ namespace OCA\Memories\Command; use OCA\Memories\Service\Places; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class PlacesSetup extends Command @@ -45,12 +46,14 @@ class PlacesSetup extends Command $this ->setName('memories:places-setup') ->setDescription('Setup reverse geocoding') + ->addOption('recalculate', 'r', InputOption::VALUE_NONE, 'Only recalculate places for existing files') ; } protected function execute(InputInterface $input, OutputInterface $output): int { $this->output = $output; + $recalculate = $input->getOption('recalculate'); $this->output->writeln('Attempting to set up reverse geocoding'); @@ -63,35 +66,18 @@ class PlacesSetup extends Command $this->output->writeln('Database support was detected'); // Check if database is already set up - if ($this->places->geomCount() > 0) { - $this->output->writeln(''); - $this->output->writeln('Database is already set up'); - $this->output->writeln('This will drop and re-download the planet database'); - $this->output->writeln('This is generally not necessary to do frequently '); - - // Ask confirmation - $this->output->writeln(''); - $this->output->writeln('Are you sure you want to download the planet database?'); - $this->output->write('Proceed? [y/N] '); - $handle = fopen('php://stdin', 'r'); - $line = fgets($handle); - if (false === $line) { - $this->output->writeln('You need an interactive terminal to run this command'); - - return 1; - } - if ('y' !== trim($line)) { - $this->output->writeln('Aborting'); - - return 1; - } + if ($this->places->geomCount() > 0 && !$recalculate && !$this->warnDownloaded()) { + return 1; } - // Download the planet database - $datafile = $this->places->downloadPlanet(); + // Check if we only need to recalculate + if (!$recalculate) { + // Download the planet database + $datafile = $this->places->downloadPlanet(); - // Import the planet database - $this->places->importPlanet($datafile); + // Import the planet database + $this->places->importPlanet($datafile); + } // Recalculate all places $this->places->recalculateAll(); @@ -100,4 +86,31 @@ class PlacesSetup extends Command return 0; } + + protected function warnDownloaded(): bool + { + $this->output->writeln(''); + $this->output->writeln('Database is already set up'); + $this->output->writeln('This will drop and re-download the planet database'); + $this->output->writeln('This is generally not necessary to do frequently '); + + // Ask confirmation + $this->output->writeln(''); + $this->output->writeln('Are you sure you want to download the planet database?'); + $this->output->write('Proceed? [y/N] '); + $handle = fopen('php://stdin', 'r'); + $line = fgets($handle); + if (false === $line) { + $this->output->writeln('You need an interactive terminal to run this command'); + + return false; + } + if ('y' !== trim($line)) { + $this->output->writeln('Aborting'); + + return false; + } + + return true; + } } diff --git a/lib/Controller/AdminController.php b/lib/Controller/AdminController.php index cbeef9cf..2dbb589a 100644 --- a/lib/Controller/AdminController.php +++ b/lib/Controller/AdminController.php @@ -115,6 +115,9 @@ class AdminController extends GenericApiController // Check supported preview mimes $status['mimes'] = $index->getPreviewMimes($index->getAllMimes()); + // Check for PHP Imagick + $status['imagick'] = class_exists('\Imagick') ? \Imagick::getVersion()['versionString'] : false; + // Check for bad encryption module $status['bad_encryption'] = \OCA\Memories\Util::isEncryptionEnabled(); @@ -128,7 +131,14 @@ class AdminController extends GenericApiController $status['gis_type'] = $e->getMessage(); } - // Check ffmpeg and ffprobe binaries + // Check for FFmpeg for preview generation + $status['ffmpeg_preview'] = $this->getExecutableStatus( + Util::getSystemConfig('preview_ffmpeg_path', null, true) + ?: trim(shell_exec('which ffmpeg') ?: ''), + fn ($p) => BinExt::testFFmpeg($p, 'ffmpeg'), + ); + + // Check ffmpeg and ffprobe binaries for transcoding $status['ffmpeg'] = $this->getExecutableStatus( Util::getSystemConfig('memories.vod.ffmpeg'), fn ($p) => BinExt::testFFmpeg($p, 'ffmpeg'), @@ -141,7 +151,7 @@ class AdminController extends GenericApiController // Check go-vod binary $extGoVod = Util::getSystemConfig('memories.vod.external'); $status['govod'] = $this->getExecutableStatus( - Util::getSystemConfig('memories.vod.path'), + fn () => BinExt::getGoVodBin(), fn ($p) => BinExt::testStartGoVod(), !$extGoVod, !$extGoVod, diff --git a/lib/Controller/ClustersController.php b/lib/Controller/ClustersController.php index b3dd6a2d..f4bf246b 100644 --- a/lib/Controller/ClustersController.php +++ b/lib/Controller/ClustersController.php @@ -40,18 +40,12 @@ class ClustersController extends GenericApiController * * Get list of clusters */ - public function list(string $backend): Http\Response + public function list(string $backend, int $fileid = 0): Http\Response { - return Util::guardEx(function () use ($backend) { + return Util::guardEx(function () use ($backend, $fileid) { $this->init($backend); - $list = $this->backend->getClusters(); - - // Set cluster_id and cluster_type for each cluster - foreach ($list as &$cluster) { - $cluster['cluster_id'] = $this->backend->getClusterId($cluster); - $cluster['cluster_type'] = $this->backend->clusterType(); - } + $list = $this->backend->getClusters($fileid); return new JSONResponse($list, Http::STATUS_OK); }); @@ -74,7 +68,9 @@ class ClustersController extends GenericApiController // If no photos found then return 404 if (0 === \count($photos)) { - return new JSONResponse([], Http::STATUS_NOT_FOUND); + return new JSONResponse([ + 'message' => 'No photos found in this cluster', + ], Http::STATUS_NOT_FOUND); } // Put the photos in the correct order diff --git a/lib/Controller/DaysController.php b/lib/Controller/DaysController.php index 45d81306..c0ec0360 100644 --- a/lib/Controller/DaysController.php +++ b/lib/Controller/DaysController.php @@ -166,6 +166,11 @@ class DaysController extends GenericApiController $transforms[] = [$this->timelineQuery, 'transformLimit', (int) $limit]; } + // Add extra fields for native callers + if (Util::callerIsNative()) { + $transforms[] = [$this->timelineQuery, 'transformNativeQuery']; + } + return $transforms; } diff --git a/lib/Controller/DownloadController.php b/lib/Controller/DownloadController.php index ae4825ed..bf95843b 100644 --- a/lib/Controller/DownloadController.php +++ b/lib/Controller/DownloadController.php @@ -41,12 +41,13 @@ class DownloadController extends GenericApiController * @UseSession * * Request to download one or more files + * + * @param mixed $files */ - public function request(): Http\Response + public function request($files): Http\Response { - return Util::guardEx(function () { + return Util::guardEx(function () use ($files) { // Get ids from body - $files = $this->request->getParam('files'); if (null === $files || !\is_array($files)) { throw Exceptions::MissingParameter('files'); } diff --git a/lib/Controller/ImageController.php b/lib/Controller/ImageController.php index 73378f13..a8c555af 100644 --- a/lib/Controller/ImageController.php +++ b/lib/Controller/ImageController.php @@ -177,34 +177,22 @@ class ImageController extends GenericApiController * @param string fileid */ public function info( - string $id, + int $id, bool $basic = false, bool $current = false, - bool $tags = false + bool $tags = false, + string $clusters = '' ): Http\Response { - return Util::guardEx(function () use ($id, $basic, $current, $tags) { - $file = $this->fs->getUserFile((int) $id); + return Util::guardEx(function () use ($id, $basic, $current, $tags, $clusters) { + $file = $this->fs->getUserFile($id); // Get the image info - $info = $this->timelineQuery->getInfoById($file->getId(), $basic); + $info = $this->timelineQuery->getInfoById($id, $basic); // Add fileid and etag $info['fileid'] = $file->getId(); $info['etag'] = $file->getEtag(); - // Allow these ony for logged in users - if (null !== $this->userSession->getUser()) { - // Get list of tags for this file - if ($tags) { - $info['tags'] = $this->getTags($file->getId()); - } - - // Get latest exif data if requested - if ($current) { - $info['current'] = Exif::getExifFromFile($file); - } - } - // Inject permissions and convert to string $info['permissions'] = \OCA\Memories\Util::permissionsToStr($file->getPermissions()); @@ -213,6 +201,39 @@ class ImageController extends GenericApiController $info['size'] = $file->getSize(); $info['basename'] = $file->getName(); + // Allow these ony for logged in users + $user = $this->userSession->getUser(); + if (null !== $user) { + // Get the path of the file relative to current user + // "/admin/files/Photos/Camera/20230821_135017.jpg" => "/Photos/..." + $parts = explode('/', $file->getPath()); + if (\count($parts) > 3 && 'files' === $parts[2] && $parts[1] === $user->getUID()) { + $info['filename'] = '/'.implode('/', \array_slice($parts, 3)); + } + + // Get list of tags for this file + if ($tags) { + $info['tags'] = $this->getTags($id); + } + + // Get latest exif data if requested + if ($current) { + $info['current'] = Exif::getExifFromFile($file); + } + + // Get clusters for this file + if ($clusters) { + $clist = []; + foreach (explode(',', $clusters) as $type) { + $backend = \OC::$server->get(\OCA\Memories\ClustersBackend\Manager::class)->get($type); + if ($backend->isEnabled()) { + $clist[$type] = $backend->getClusters($id); + } + } + $info['clusters'] = $clist; + } + } + return new JSONResponse($info, Http::STATUS_OK); }); } @@ -222,13 +243,13 @@ class ImageController extends GenericApiController * * Set the exif data for a file. * - * @param string fileid + * @param int fileid * @param array raw exif data */ - public function setExif(string $id, array $raw): Http\Response + public function setExif(int $id, array $raw): Http\Response { return Util::guardEx(function () use ($id, $raw) { - $file = $this->fs->getUserFile((int) $id); + $file = $this->fs->getUserFile($id); // Check if user has permissions if (!$file->isUpdateable() || Util::isEncryptionEnabled()) { @@ -313,7 +334,7 @@ class ImageController extends GenericApiController string $name, int $width, int $height, - float $quality, + ?float $quality, string $extension, array $state ): Http\Response { @@ -343,17 +364,35 @@ class ImageController extends GenericApiController $image = new \Imagick(); $image->readImageBlob($file->getContent()); + // Due to a bug in filerobot, the provided width and height may be swapped + // 1. If the user does not rotate the image, we're fine + // 2. If image is rotated and user doesn't change the save resolution, + // the wxh corresponds to the original image, not the rotated one + // 3. If image is rotated and user changes the save resolution, + // the wxh corresponds to the rotated image. + $iw = $image->getImageWidth(); + $ih = $image->getImageHeight(); + $shouldResize = $width !== $iw || $height !== $ih; + // Apply the edits (new Service\FileRobotMagick($image, $state))->apply(); // Resize the image - if ($width > 0 && $height > 0 && ($width !== $image->getImageWidth() || $height !== $image->getImageHeight())) { + $iw = $image->getImageWidth(); + $ih = $image->getImageHeight(); + if ($shouldResize && $width && $height && ($iw !== $width || $ih !== $height)) { $image->resizeImage($width, $height, \Imagick::FILTER_LANCZOS, 1, true); } - // Save the image + // Set image format $image->setImageFormat($extension); - $image->setImageCompressionQuality((int) round(100 * $quality)); + + // Set quality if specified + if (null !== $quality && $quality >= 0 && $quality <= 1) { + $image->setImageCompressionQuality((int) round(100 * $quality)); + } + + // Save the image $blob = $image->getImageBlob(); // Save the file @@ -366,7 +405,7 @@ class ImageController extends GenericApiController // Make sure the preview is updated \OC::$server->get(\OCP\IPreview::class)->getPreview($file); - return $this->info((string) $file->getId(), true); + return $this->info($file->getId(), true); }); } @@ -397,6 +436,7 @@ class ImageController extends GenericApiController // Convert to JPEG try { $image->autoOrient(); + $format = $this->config->getSystemValueString('memories.image.highres.format', 'jpeg'); $image->setImageFormat($format); @@ -417,12 +457,14 @@ class ImageController extends GenericApiController $image->scaleImage((int)$maxWidth, (int)$maxHeight, true); } } - + $blob = $image->getImageBlob(); $mimetype = $image->getImageMimeType(); } catch (\ImagickException $e) { throw Exceptions::Forbidden('Imagick failed to convert image: '.$e->getMessage()); + } finally { + $image->clear(); } return [$blob, $mimetype]; diff --git a/lib/Controller/OtherController.php b/lib/Controller/OtherController.php index 74ce4812..f17ef0d0 100644 --- a/lib/Controller/OtherController.php +++ b/lib/Controller/OtherController.php @@ -64,36 +64,54 @@ class OtherController extends GenericApiController public function getUserConfig(): Http\Response { return Util::guardEx(function () { - $appManager = \OC::$server->get(\OCP\App\IAppManager::class); + // get memories version + $version = \OC::$server->get(\OCP\App\IAppManager::class) + ->getAppInfo('memories')['version'] + ; + // get user if logged in try { $uid = Util::getUID(); } catch (\Exception $e) { $uid = null; } + // helper function to get user config values $getAppConfig = function ($key, $default) use ($uid) { return $this->config->getUserValue($uid, Application::APPNAME, $key, $default); }; return new JSONResponse([ - 'version' => $appManager->getAppInfo('memories')['version'], + // general stuff + 'version' => $version, 'vod_disable' => Util::getSystemConfig('memories.vod.disable'), 'video_default_quality' => Util::getSystemConfig('memories.video_default_quality'), 'places_gis' => Util::getSystemConfig('memories.gis_type'), + // enabled apps 'systemtags_enabled' => Util::tagsIsEnabled(), - 'recognize_enabled' => Util::recognizeIsEnabled(), 'albums_enabled' => Util::albumsIsEnabled(), + 'recognize_installed' => Util::recognizeIsInstalled(), + 'recognize_enabled' => Util::recognizeIsEnabled(), 'facerecognition_installed' => Util::facerecognitionIsInstalled(), 'facerecognition_enabled' => Util::facerecognitionIsEnabled(), + 'preview_generator_enabled' => Util::previewGeneratorIsEnabled(), + // general settings 'timeline_path' => $getAppConfig('timelinePath', 'EMPTY'), + 'enable_top_memories' => 'true' === $getAppConfig('enableTopMemories', 'true'), + + // viewer settings + 'livephoto_autoplay' => 'true' === $getAppConfig('livephotoAutoplay', 'true'), + 'sidebar_filepath' => 'true' === $getAppConfig('sidebarFilepath', false), + + // folder settings 'folders_path' => $getAppConfig('foldersPath', '/'), 'show_hidden_folders' => 'true' === $getAppConfig('showHidden', false), 'sort_folder_month' => 'true' === $getAppConfig('sortFolderMonth', false), + + // album settings 'sort_album_month' => 'true' === $getAppConfig('sortAlbumMonth', 'true'), - 'enable_top_memories' => 'true' === $getAppConfig('enableTopMemories', 'true'), ], Http::STATUS_OK); }); } @@ -111,13 +129,20 @@ class OtherController extends GenericApiController $appManager = \OC::$server->get(\OCP\App\IAppManager::class); $urlGenerator = \OC::$server->get(\OCP\IURLGenerator::class); - $res = new JSONResponse([ + $info = [ 'version' => $appManager->getAppInfo('memories')['version'], 'baseUrl' => $urlGenerator->linkToRouteAbsolute('memories.Page.main'), 'loginFlowUrl' => $urlGenerator->linkToRouteAbsolute('core.ClientFlowLoginV2.init'), - ]); + ]; + + try { + $info['uid'] = Util::getUID(); + } catch (\Exception $e) { + $info['uid'] = null; + } // This is public information + $res = new JSONResponse($info); $res->addHeader('Access-Control-Allow-Origin', '*'); return $res; diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 1933e738..f8edee2a 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -3,34 +3,31 @@ namespace OCA\Memories\Controller; use OCA\Files\Event\LoadSidebar; +use OCA\Memories\Service\BinExt; use OCA\Memories\Util; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\ContentSecurityPolicy; +use OCP\AppFramework\Http\Template\PublicTemplateResponse; use OCP\AppFramework\Http\TemplateResponse; use OCP\EventDispatcher\IEventDispatcher; use OCP\IRequest; -use OCP\IUserSession; -use OCP\Util as OCPUtil; class PageController extends Controller { protected $userId; protected $appName; protected IEventDispatcher $eventDispatcher; - private IUserSession $userSession; public function __construct( string $AppName, IRequest $request, $UserId, - IEventDispatcher $eventDispatcher, - IUserSession $userSession + IEventDispatcher $eventDispatcher ) { parent::__construct($AppName, $request); $this->userId = $UserId; $this->appName = $AppName; $this->eventDispatcher = $eventDispatcher; - $this->userSession = $userSession; } /** @@ -40,21 +37,22 @@ class PageController extends Controller */ public function main() { - $user = $this->userSession->getUser(); - if (null === $user) { - return null; + // Check native version if available + $nativeVer = Util::callerNativeVersion(); + if (null !== $nativeVer && version_compare($nativeVer, BinExt::NX_VER_MIN, '<')) { + return new PublicTemplateResponse($this->appName, 'native-old'); } // Scripts - OCPUtil::addScript($this->appName, 'memories-main'); + \OCP\Util::addScript($this->appName, 'memories-main'); // Extra translations if (Util::recognizeIsEnabled()) { // Auto translation for tags - OCPUtil::addTranslations('recognize'); + \OCP\Util::addTranslations('recognize'); } - $response = new TemplateResponse($this->appName, 'main'); + $response = new TemplateResponse($this->appName, 'main', self::getMainParams()); $response->setContentSecurityPolicy(self::getCSP()); $response->cacheFor(0); @@ -107,6 +105,16 @@ class PageController extends Controller return $policy; } + /** + * Get params for main.php template. + */ + public static function getMainParams() + { + return [ + 'native' => Util::callerIsNative(), + ]; + } + /** * @NoAdminRequired * diff --git a/lib/Controller/PublicAlbumController.php b/lib/Controller/PublicAlbumController.php index 89dc9e51..47261b99 100644 --- a/lib/Controller/PublicAlbumController.php +++ b/lib/Controller/PublicAlbumController.php @@ -6,12 +6,14 @@ use OCA\Memories\Db\AlbumsQuery; use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\RedirectResponse; +use OCP\AppFramework\Http\Template\LinkMenuAction; use OCP\AppFramework\Http\Template\PublicTemplateResponse; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState; use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\IRootFolder; use OCP\IConfig; +use OCP\IL10N; use OCP\IURLGenerator; use OCP\IUserSession; use OCP\Util; @@ -27,6 +29,7 @@ class PublicAlbumController extends Controller protected IRootFolder $rootFolder; protected IURLGenerator $urlGenerator; protected AlbumsQuery $albumsQuery; + protected IL10N $l10n; public function __construct( string $appName, @@ -37,7 +40,8 @@ class PublicAlbumController extends Controller IUserSession $userSession, IRootFolder $rootFolder, IURLGenerator $urlGenerator, - AlbumsQuery $albumsQuery + AlbumsQuery $albumsQuery, + IL10N $l10n ) { $this->appName = $appName; $this->eventDispatcher = $eventDispatcher; @@ -48,6 +52,7 @@ class PublicAlbumController extends Controller $this->rootFolder = $rootFolder; $this->urlGenerator = $urlGenerator; $this->albumsQuery = $albumsQuery; + $this->l10n = $l10n; } /** @@ -71,7 +76,10 @@ class PublicAlbumController extends Controller if ($uid === $album['user'] || $this->albumsQuery->userIsCollaborator($uid, $albumId)) { $idStr = $album['user'].'/'.$album['name']; - $url = $this->urlGenerator->linkToRoute('memories.Page.albums', ['id' => $idStr]); + $url = $this->urlGenerator->linkToRoute('memories.Page.albums', [ + 'id' => $idStr, // id of album + 'noinit' => 1, // prevent showing first-start page + ]); return new RedirectResponse($url); } @@ -86,14 +94,51 @@ class PublicAlbumController extends Controller // Scripts Util::addScript($this->appName, 'memories-main'); - $response = new PublicTemplateResponse($this->appName, 'main'); + // Share info + $this->initialState->provideInitialState('share_title', $album['name']); + + // Render main template + $response = new PublicTemplateResponse($this->appName, 'main', PageController::getMainParams()); $response->setHeaderTitle($album['name']); $response->setFooterVisible(false); // wth is that anyway? $response->setContentSecurityPolicy(PageController::getCSP()); + // Add download link + $dlUrl = $this->urlGenerator->linkToRoute('memories.PublicAlbum.download', [ + 'token' => $token, // share identification + 'albums' => 1, // identify backend for share + ]); + $dlAction = new LinkMenuAction($this->l10n->t('Download'), 'icon-download', $dlUrl); + $response->setHeaderActions([$dlAction]); + return $response; } + /** + * @PublicPage + * + * @NoCSRFRequired + */ + public function download(string $token) + { + $album = $this->albumsQuery->getAlbumByLink($token); + if (!$album) { + return new TemplateResponse('core', '404', [], 'guest'); + } + + // Get list of files + $albumId = (int) $album['album_id']; + $files = $this->albumsQuery->getAlbumPhotos($albumId, null) ?? []; + $fileIds = array_map(fn ($file) => (int) $file['file_id'], $files); + + // Get download handle + $downloadController = \OC::$server->get(\OCA\Memories\Controller\DownloadController::class); + $handle = $downloadController::createHandle($album['name'], $fileIds); + + // Start download + return $downloadController->file($handle); + } + private function addOgMetadata(array $album, string $token) { $fileId = (int) $album['last_added_photo']; diff --git a/lib/Controller/PublicController.php b/lib/Controller/PublicController.php index 209a36c4..f0b022ab 100644 --- a/lib/Controller/PublicController.php +++ b/lib/Controller/PublicController.php @@ -119,6 +119,10 @@ class PublicController extends AuthPublicShareController $node = $share->getNode(); if ($node instanceof \OCP\Files\File) { $this->initialState->provideInitialState('single_item', $this->getSingleItemInitialState($node)); + } elseif ($node instanceof \OCP\Files\Folder) { + $this->initialState->provideInitialState('share_title', $node->getName()); + } else { + throw new NotFoundException(); } // Add OG metadata @@ -127,7 +131,7 @@ class PublicController extends AuthPublicShareController Util::addOgMetadata($node, $node->getName(), $url, $params); // Render the template - $response = new PublicTemplateResponse($this->appName, 'main'); + $response = new PublicTemplateResponse($this->appName, 'main', PageController::getMainParams()); $response->setHeaderTitle($node->getName()); $response->setFooterVisible(false); // wth is that anyway? $response->setContentSecurityPolicy(PageController::getCSP()); @@ -205,7 +209,10 @@ class PublicController extends AuthPublicShareController $relPath = substr($relPath, \strlen($foldersPath)); // Redirect to the local path - $url = $this->urlGenerator->linkToRouteAbsolute('memories.Page.folder', ['path' => $relPath]); + $url = $this->urlGenerator->linkToRouteAbsolute('memories.Page.folder', [ + 'path' => $relPath, // path to folder + 'noinit' => 1, // prevent showing first-start page + ]); // Cannot send a redirect response here because the return // type is a template response for the base class @@ -215,9 +222,18 @@ class PublicController extends AuthPublicShareController exit; // no other way to do this due to typing of super class } - /** Get initial state of single item */ + /** + * Get initial state of single item. + * + * @throws NotFoundException if file not found in index + */ private function getSingleItemInitialState(\OCP\Files\File $file): array { - return $this->timelineQuery->getSingleItem($file->getId()); + $data = $this->timelineQuery->getSingleItem($file->getId()); + if (null === $data) { + throw new NotFoundException(); + } + + return $data; } } diff --git a/lib/Db/AlbumsQuery.php b/lib/Db/AlbumsQuery.php index dd1fd26d..8254d388 100644 --- a/lib/Db/AlbumsQuery.php +++ b/lib/Db/AlbumsQuery.php @@ -16,14 +16,28 @@ class AlbumsQuery $this->connection = $connection; } - /** Get list of albums */ - public function getList(string $uid, bool $shared = false) + /** + * Get list of albums. + * + * @param bool $shared Whether to get shared albums + * @param int $fileid File to filter by + */ + public function getList(string $uid, bool $shared = false, int $fileid = 0) { $query = $this->connection->getQueryBuilder(); // SELECT everything from albums $count = $query->func()->count($query->createFunction('DISTINCT m.fileid'), 'count'); - $query->select('pa.*', $count)->from('photos_albums', 'pa'); + $query->select( + 'pa.album_id', + 'pa.name', + 'pa.user', + 'pa.created', + 'pa.created', + 'pa.location', + 'pa.last_added_photo', + $count + )->from('photos_albums', 'pa'); if ($shared) { $ids = $this->getSelfCollaborators($uid); @@ -50,8 +64,20 @@ class AlbumsQuery // GROUP and ORDER by $query->groupBy('pa.album_id'); - $query->orderBy('pa.created', 'DESC'); - $query->addOrderBy('pa.album_id', 'DESC'); // tie-breaker + + // WHERE these albums contain fileid if specified + if ($fileid) { + $fSq = $this->connection->getQueryBuilder() + ->select('paf.file_id') + ->from('photos_albums_files', 'paf') + ->where($query->expr()->andX( + $query->expr()->eq('paf.album_id', 'pa.album_id'), + $query->expr()->eq('paf.file_id', $query->createNamedParameter($fileid, IQueryBuilder::PARAM_INT)), + )) + ->getSQL() + ; + $query->andWhere($query->createFunction("EXISTS ({$fSq})")); + } // FETCH all albums $albums = $query->executeQuery()->fetchAll(); diff --git a/lib/Db/FsManager.php b/lib/Db/FsManager.php index 0beef432..4335228b 100644 --- a/lib/Db/FsManager.php +++ b/lib/Db/FsManager.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace OCA\Memories\Db; +use OC\Files\Search\SearchBinaryOperator; use OC\Files\Search\SearchComparison; use OC\Files\Search\SearchQuery; use OCA\Memories\Exceptions; @@ -31,6 +32,7 @@ use OCP\Files\File; use OCP\Files\Folder; use OCP\Files\IRootFolder; use OCP\Files\Node; +use OCP\Files\Search\ISearchBinaryOperator; use OCP\Files\Search\ISearchComparison; use OCP\ICache; use OCP\ICacheFactory; @@ -71,7 +73,7 @@ class FsManager $user = $this->userSession->getUser(); // Albums have no folder - if ($this->request->getParam('albums') && Util::albumsIsEnabled()) { + if ($this->hasAlbumToken() && Util::albumsIsEnabled()) { if (null !== $user) { return $root; } @@ -129,6 +131,16 @@ class FsManager $root->addMountPoints(); // Exclude .nomedia folders + // + // This is needed to be done despite the exlusion in the CTE to account + // for mount points inside folders with a .nomedia file. For example: + // /user/files/timeline-path/ + // => subfolder1 + // => photo1 + // => subfolder2 + // => .nomedia + // => external-mount <-- this is a separate topFolder in the CTE + // => photo2 <-- this should be excluded, but CTE cannot find this $root->excludePaths($this->getNoMediaFolders($userFolder, md5($etag))); } } catch (\OCP\Files\NotFoundException $e) { @@ -152,10 +164,13 @@ class FsManager return $paths; } - $comp = new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'name', '.nomedia'); + $comp = new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_OR, [ + new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'name', '.nomedia'), + new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'name', '.nomemories'), + ]); $search = $root->search(new SearchQuery($comp, 0, 0, [], Util::getUser())); - $paths = array_map(fn (Node $node) => \dirname($node->getPath()), $search); + $paths = array_unique(array_map(fn (Node $node) => \dirname($node->getPath()), $search)); $this->nomediaCache->set($key, $paths, 60 * 60); // 1 hour return $paths; @@ -243,7 +258,7 @@ class FsManager { try { // Album share - if ($this->request->getParam('albums')) { + if ($this->hasAlbumToken()) { $album = $this->albumsQuery->getAlbumByLink($this->getShareToken()); if (null === $album) { return null; @@ -394,6 +409,11 @@ class FsManager return $file; } + private function hasAlbumToken(): bool + { + return null !== $this->request->getParam(\OCA\Memories\ClustersBackend\AlbumsBackend::clusterType(), null); + } + private function getShareToken() { return $this->request->getParam('token'); diff --git a/lib/Db/TimelineQuery.php b/lib/Db/TimelineQuery.php index f94b92b2..13f98f0e 100644 --- a/lib/Db/TimelineQuery.php +++ b/lib/Db/TimelineQuery.php @@ -15,11 +15,15 @@ class TimelineQuery use TimelineQueryFolders; use TimelineQueryLivePhoto; use TimelineQueryMap; + use TimelineQueryNativeX; use TimelineQuerySingleItem; public const TIMELINE_SELECT = [ - 'm.isvideo', 'm.video_duration', 'm.datetaken', 'm.dayid', 'm.w', 'm.h', 'm.liveid', - 'f.etag', 'f.name AS basename', 'mimetypes.mimetype', + 'm.datetaken', 'm.dayid', + 'm.w', 'm.h', 'm.liveid', + 'm.isvideo', 'm.video_duration', + 'f.etag', 'f.name AS basename', + 'mimetypes.mimetype', ]; protected IDBConnection $connection; diff --git a/lib/Db/TimelineQueryCTE.php b/lib/Db/TimelineQueryCTE.php index 6da450c1..2faafe17 100644 --- a/lib/Db/TimelineQueryCTE.php +++ b/lib/Db/TimelineQueryCTE.php @@ -21,7 +21,9 @@ trait TimelineQueryCTE $CLS_TOP_FOLDER = 'f.fileid IN (:topFolderIds)'; // Select 1 if there is a .nomedia file in the folder - $SEL_NOMEDIA = "SELECT 1 FROM *PREFIX*filecache f2 WHERE f2.parent = f.fileid AND f2.name = '.nomedia'"; + $SEL_NOMEDIA = "SELECT 1 FROM *PREFIX*filecache f2 + WHERE (f2.parent = f.fileid) + AND (f2.name = '.nomedia' OR f2.name = '.nomemories')"; // Check no nomedia file exists in the folder $CLS_NOMEDIA = "NOT EXISTS ({$SEL_NOMEDIA})"; diff --git a/lib/Db/TimelineQueryDays.php b/lib/Db/TimelineQueryDays.php index 5b525ace..df8f474d 100644 --- a/lib/Db/TimelineQueryDays.php +++ b/lib/Db/TimelineQueryDays.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace OCA\Memories\Db; use OCA\Memories\ClustersBackend; -use OCA\Memories\Util; +use OCA\Memories\Exif; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; @@ -57,12 +57,10 @@ trait TimelineQueryDays /** * Get the day response from the database for the timeline. * - * @param string $uid The user id - * @param int[] $day_ids The day ids to fetch - * @param bool $recursive If the query should be recursive - * @param bool $archive If the query should include only the archive folder - * @param array $queryTransforms The query transformations to apply - * @param mixed $day_ids + * @param int[] $day_ids The day ids to fetch + * @param bool $recursive If the query should be recursive + * @param bool $archive If the query should include only the archive folder + * @param array $queryTransforms The query transformations to apply * * @return array An array of day responses */ @@ -223,11 +221,14 @@ trait TimelineQueryDays // All cluster transformations ClustersBackend\Manager::applyDayPostTransforms($this->request, $row); - // Remove datetaken unless native (for sorting) - if (Util::callerIsNative()) { - $row['datetaken'] = Util::sqlUtcToTimestamp($row['datetaken']); - } else { - unset($row['datetaken']); + // This field is only required due to the GROUP BY clause + unset($row['datetaken']); + + // Calculate the AUID if we can + if (\array_key_exists('epoch', $row) && \array_key_exists('size', $row) + && ($epoch = (int) $row['epoch']) && ($size = (int) $row['size'])) { + // compute AUID and discard epoch and size + $row['auid'] = Exif::getAUID($epoch, $size); } } diff --git a/lib/Db/TimelineQueryMap.php b/lib/Db/TimelineQueryMap.php index 870d9687..58a66bef 100644 --- a/lib/Db/TimelineQueryMap.php +++ b/lib/Db/TimelineQueryMap.php @@ -40,19 +40,18 @@ trait TimelineQueryMap $query = $this->connection->getQueryBuilder(); // Get the average location of each cluster - $id = $query->createFunction('MAX(c.id) as id'); - $ct = $query->createFunction('COUNT(m.fileid) AS count'); - $lat = $query->createFunction('AVG(c.lat) AS lat'); - $lon = $query->createFunction('AVG(c.lon) AS lon'); - - $query->select($id, $ct, $lat, $lon) + $query->selectAlias($query->createFunction('MAX(c.id)'), 'id') + ->selectAlias($query->createFunction('COUNT(m.fileid)'), 'count') + ->selectAlias($query->createFunction('AVG(c.lat)'), 'lat') + ->selectAlias($query->createFunction('AVG(c.lon)'), 'lon') ->from('memories_mapclusters', 'c') ; // Coarse grouping $gridParam = $query->createNamedParameter($gridLen, IQueryBuilder::PARAM_STR); - $query->addGroupBy($query->createFunction("FLOOR(c.lat / {$gridParam})")); - $query->addGroupBy($query->createFunction("FLOOR(c.lon / {$gridParam})")); + $query->addGroupBy($query->createFunction("FLOOR(c.lat / {$gridParam})")) + ->addGroupBy($query->createFunction("FLOOR(c.lon / {$gridParam})")) + ; // JOIN with memories for files from the current user $query->innerJoin('c', 'memories', 'm', $query->expr()->eq('c.id', 'm.mapcluster')); @@ -90,10 +89,13 @@ trait TimelineQueryMap $query = $this->connection->getQueryBuilder(); // SELECT all photos with this tag - $fileid = $query->createFunction('MAX(m.fileid) AS fileid'); - $query->select($fileid)->from('memories', 'm')->where( - $query->expr()->in('m.mapcluster', $query->createNamedParameter($clusterIds, IQueryBuilder::PARAM_INT_ARRAY)) - ); + $query->selectAlias($query->createFunction('MAX(m.fileid)'), 'fileid') + ->from('memories', 'm') + ->where($query->expr()->in('m.mapcluster', $query->createNamedParameter( + $clusterIds, + IQueryBuilder::PARAM_INT_ARRAY + ))) + ; // WHERE these photos are in the user's requested folder recursively $query = $this->joinFilecache($query); @@ -107,7 +109,7 @@ trait TimelineQueryMap // SELECT these files from the filecache $query = $this->connection->getQueryBuilder(); - $query->select('m.fileid', 'm.dayid', 'm.mapcluster', 'f.etag') + $query->select('m.fileid', 'm.dayid', 'm.mapcluster', 'm.h', 'm.w', 'f.etag') ->from('memories', 'm') ->innerJoin('m', 'filecache', 'f', $query->expr()->eq('m.fileid', 'f.fileid')) ->where($query->expr()->in('m.fileid', $query->createNamedParameter($fileIds, IQueryBuilder::PARAM_INT_ARRAY))) @@ -119,6 +121,8 @@ trait TimelineQueryMap $row['fileid'] = (int) $row['fileid']; $row['mapcluster'] = (int) $row['mapcluster']; $row['dayid'] = (int) $row['dayid']; + $row['h'] = (int) $row['h']; + $row['w'] = (int) $row['w']; } return $files; diff --git a/lib/Db/TimelineQueryNativeX.php b/lib/Db/TimelineQueryNativeX.php new file mode 100644 index 00000000..68378b0d --- /dev/null +++ b/lib/Db/TimelineQueryNativeX.php @@ -0,0 +1,17 @@ +addSelect('m.epoch', 'f.size'); + } + } +} diff --git a/lib/Db/TimelineQuerySingleItem.php b/lib/Db/TimelineQuerySingleItem.php index 54b79910..97925b9f 100644 --- a/lib/Db/TimelineQuerySingleItem.php +++ b/lib/Db/TimelineQuerySingleItem.php @@ -13,7 +13,7 @@ trait TimelineQuerySingleItem { protected IDBConnection $connection; - public function getSingleItem(int $fileId) + public function getSingleItem(int $fileId): ?array { $query = $this->connection->getQueryBuilder(); $query->select('m.fileid', ...TimelineQuery::TIMELINE_SELECT) @@ -30,6 +30,11 @@ trait TimelineQuerySingleItem // FETCH the photo $photo = $query->executeQuery()->fetch(); + // Check if photo was found + if (false === $photo) { + return null; + } + // Post process the record $this->processDayPhoto($photo); diff --git a/lib/Db/TimelineRoot.php b/lib/Db/TimelineRoot.php index 38bcc51e..a152fe54 100644 --- a/lib/Db/TimelineRoot.php +++ b/lib/Db/TimelineRoot.php @@ -64,7 +64,10 @@ class TimelineRoot { foreach ($paths as $path) { foreach ($this->folderPaths as $id => $folderPath) { - if (str_starts_with($folderPath, $path)) { + // dirname strips the trailing slash, so we can directly add a + // trailing slash to folderPath and path to prevent false matches. + // https://github.com/pulsejet/memories/issues/668 + if (str_starts_with($folderPath.'/', $path.'/')) { unset($this->folderPaths[$id], $this->folders[$id]); } } diff --git a/lib/Db/TimelineWrite.php b/lib/Db/TimelineWrite.php index 9b79fe17..9cab29bd 100644 --- a/lib/Db/TimelineWrite.php +++ b/lib/Db/TimelineWrite.php @@ -122,7 +122,7 @@ class TimelineWrite $dateTaken = Exif::getDateTaken($file, $exif); // Store the acutal epoch with the EXIF data - $exif['DateTimeEpoch'] = $dateTaken->getTimestamp(); + $epoch = $exif['DateTimeEpoch'] = $dateTaken->getTimestamp(); // Store the date taken in the database as UTC (local date) only // Basically, assume everything happens in Greenwich @@ -150,6 +150,7 @@ class TimelineWrite 'objectid' => $query->createNamedParameter((string) $fileId, IQueryBuilder::PARAM_STR), 'dayid' => $query->createNamedParameter($dayId, IQueryBuilder::PARAM_INT), 'datetaken' => $query->createNamedParameter($dateTakenStr, IQueryBuilder::PARAM_STR), + 'epoch' => $query->createNamedParameter($epoch, IQueryBuilder::PARAM_INT), 'mtime' => $query->createNamedParameter($mtime, IQueryBuilder::PARAM_INT), 'isvideo' => $query->createNamedParameter($isvideo, IQueryBuilder::PARAM_INT), 'video_duration' => $query->createNamedParameter($videoDuration, IQueryBuilder::PARAM_INT), @@ -245,8 +246,6 @@ class TimelineWrite /** * Clear the entire index. Does not need confirmation! - * - * @param File $file */ public function clear() { diff --git a/lib/Db/TimelineWritePlaces.php b/lib/Db/TimelineWritePlaces.php index 2c9c113d..fb6e1390 100644 --- a/lib/Db/TimelineWritePlaces.php +++ b/lib/Db/TimelineWritePlaces.php @@ -46,42 +46,26 @@ trait TimelineWritePlaces return []; } - // Construct WHERE clause depending on GIS type - $where = null; - if (1 === $gisType) { - $where = "ST_Contains(geometry, ST_GeomFromText('POINT({$lon} {$lat})'))"; - } elseif (2 === $gisType) { - $where = "POINT('{$lon},{$lat}') <@ geometry"; - } else { - return []; - } + // Get places + $rows = \OC::$server->get(\OCA\Memories\Service\Places::class)->queryPoint($lat, $lon); - // Make query to memories_planet table - $query = $this->connection->getQueryBuilder(); - $query->select($query->createFunction('DISTINCT(osm_id)')) - ->from('memories_planet_geometry') - ->where($query->createFunction($where)) - ; - - // Cancel out inner rings - $query->groupBy('poly_id', 'osm_id'); - $query->having($query->createFunction('SUM(type_id) > 0')); - - // memories_planet_geometry has no *PREFIX* - $sql = str_replace('*PREFIX*memories_planet_geometry', 'memories_planet_geometry', $query->getSQL()); - - // Run query - $rows = $this->connection->executeQuery($sql)->fetchAll(); + // Get last ID, i.e. the ID with highest admin_level but <= 8 + $crows = array_filter($rows, fn ($row) => $row['admin_level'] <= 8); + $markRow = array_pop($crows); // Insert records in transaction $this->connection->beginTransaction(); foreach ($rows as $row) { + $isMark = $markRow && $row['osm_id'] === $markRow['osm_id']; + + // Insert the place $query = $this->connection->getQueryBuilder(); $query->insert('memories_places') ->values([ 'fileid' => $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT), 'osm_id' => $query->createNamedParameter($row['osm_id'], IQueryBuilder::PARAM_INT), + 'mark' => $query->createNamedParameter($isMark, IQueryBuilder::PARAM_BOOL), ]) ; $query->executeStatement(); diff --git a/lib/Exif.php b/lib/Exif.php index 04052784..93e84732 100644 --- a/lib/Exif.php +++ b/lib/Exif.php @@ -202,14 +202,16 @@ class Exif } // Fall back to modification time - try { - $parseTz = new \DateTimeZone(getenv('TZ')); // debian - } catch (\Error $e) { - $parseTz = new \DateTimeZone('UTC'); - } + $dt = new \DateTime('@'.$file->getMtime()); - $dt = new \DateTime('@'.$file->getMtime(), $parseTz); - $dt->setTimezone($parseTz); + // Set timezone to system timezone + $tz = getenv('TZ') ?: date_default_timezone_get(); + + try { + $dt->setTimezone(new \DateTimeZone($tz)); + } catch (\Exception $e) { + throw new \Error("FATAL: system timezone is invalid (TZ): {$tz}"); + } return self::forgetTimezone($dt); } @@ -246,6 +248,17 @@ class Exif return [$width, $height]; } + /** + * Get the Approximate Unique ID (AUID) from parameters. + * + * @param int $epoch the date taken as a unix timestamp (seconds) + * @param int $size the file size in bytes + */ + public static function getAUID(int $epoch, int $size): int + { + return crc32($epoch.$size); + } + /** * Get the list of MIME Types that are allowed to be edited. */ @@ -265,8 +278,12 @@ class Exif public static function setExif(string $path, array $data) { $data['SourceFile'] = $path; - $raw = json_encode([$data]); - $cmd = array_merge(self::getExiftool(), ['-json=-', $path]); + $raw = json_encode([$data], JSON_UNESCAPED_UNICODE); + $cmd = array_merge(self::getExiftool(), [ + '-overwrite_original', + '-api', 'LargeFileSupport=1', + '-json=-', $path, + ]); $proc = proc_open($cmd, [ 0 => ['pipe', 'r'], 1 => ['pipe', 'w'], @@ -280,6 +297,7 @@ class Exif fclose($pipes[1]); fclose($pipes[2]); proc_terminate($proc); + proc_close($proc); if (false !== strpos($stdout, 'error')) { error_log("Exiftool error: {$stdout}"); @@ -323,6 +341,7 @@ class Exif fclose($pipes[1]); fclose($pipes[2]); proc_terminate($proc); + proc_close($proc); } } @@ -421,6 +440,7 @@ class Exif fclose($pipes[1]); fclose($pipes[2]); proc_terminate($proc); + proc_close($proc); } } diff --git a/lib/Listeners/BeforeTemplateListener.php b/lib/Listeners/BeforeTemplateListener.php new file mode 100644 index 00000000..fd8f20b7 --- /dev/null +++ b/lib/Listeners/BeforeTemplateListener.php @@ -0,0 +1,45 @@ +. + */ + +namespace OCA\Memories\Listeners; + +use OCA\Memories\AppInfo\Application; +use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IEventListener; +use OCP\ISession; + +class BeforeTemplateListener implements IEventListener +{ + private ISession $session; + + public function __construct(ISession $session) + { + $this->session = $session; + } + + public function handle(Event $event): void + { + if (null !== $this->session->get(PostLogoutListener::CLEAR_CACHE_KEY)) { + $this->session->remove(PostLogoutListener::CLEAR_CACHE_KEY); + \OCP\Util::addScript(Application::APPNAME, 'memories-hooks-clear-cache'); + } + } +} diff --git a/lib/Listeners/PostLogoutListener.php b/lib/Listeners/PostLogoutListener.php new file mode 100644 index 00000000..a4d1d131 --- /dev/null +++ b/lib/Listeners/PostLogoutListener.php @@ -0,0 +1,43 @@ +. + */ + +namespace OCA\Memories\Listeners; + +use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IEventListener; +use OCP\ISession; + +class PostLogoutListener implements IEventListener +{ + public const CLEAR_CACHE_KEY = 'memories_clear_cache'; + + private ISession $session; + + public function __construct(ISession $session) + { + $this->session = $session; + } + + public function handle(Event $event): void + { + $this->session->set(self::CLEAR_CACHE_KEY, '1'); + } +} diff --git a/lib/Listeners/PostWriteListener.php b/lib/Listeners/PostWriteListener.php index cfabffdb..9fca2e6e 100644 --- a/lib/Listeners/PostWriteListener.php +++ b/lib/Listeners/PostWriteListener.php @@ -60,7 +60,7 @@ class PostWriteListener implements IEventListener try { $parent = $node; while ($parent = $parent->getParent()) { - if ($parent->nodeExists('.nomedia')) { + if ($parent->nodeExists('.nomedia') || $parent->nodeExists('.nomemories')) { return; } } diff --git a/lib/Migration/Version200000Date20220924015634.php b/lib/Migration/Version200000Date20220924015634.php index cc3d8d67..aeb724b6 100644 --- a/lib/Migration/Version200000Date20220924015634.php +++ b/lib/Migration/Version200000Date20220924015634.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version400000Date20221015121115.php b/lib/Migration/Version400000Date20221015121115.php index b911b61f..075ef368 100644 --- a/lib/Migration/Version400000Date20221015121115.php +++ b/lib/Migration/Version400000Date20221015121115.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version400307Date20221025002524.php b/lib/Migration/Version400307Date20221025002524.php index 694aae6e..dd129702 100644 --- a/lib/Migration/Version400307Date20221025002524.php +++ b/lib/Migration/Version400307Date20221025002524.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version400308Date20221026151748.php b/lib/Migration/Version400308Date20221026151748.php index e2926f7c..693ca11d 100644 --- a/lib/Migration/Version400308Date20221026151748.php +++ b/lib/Migration/Version400308Date20221026151748.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version400503Date20221101033144.php b/lib/Migration/Version400503Date20221101033144.php index c6b9e470..3b7f2567 100644 --- a/lib/Migration/Version400503Date20221101033144.php +++ b/lib/Migration/Version400503Date20221101033144.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version400604Date20221107205439.php b/lib/Migration/Version400604Date20221107205439.php index c978652f..f96de979 100644 --- a/lib/Migration/Version400604Date20221107205439.php +++ b/lib/Migration/Version400604Date20221107205439.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version400700Date20221110030909.php b/lib/Migration/Version400700Date20221110030909.php index 4420c82b..e1850f83 100644 --- a/lib/Migration/Version400700Date20221110030909.php +++ b/lib/Migration/Version400700Date20221110030909.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version400800Date20221122105007.php b/lib/Migration/Version400800Date20221122105007.php index 8b7883d4..f0cd6efa 100644 --- a/lib/Migration/Version400800Date20221122105007.php +++ b/lib/Migration/Version400800Date20221122105007.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2022 Your name - * @author Your name + * @copyright Copyright (c) 2022 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version401000Date20230118043813.php b/lib/Migration/Version401000Date20230118043813.php index 7eec413c..6b44d775 100644 --- a/lib/Migration/Version401000Date20230118043813.php +++ b/lib/Migration/Version401000Date20230118043813.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2023 Your name - * @author Your name + * @copyright Copyright (c) 2023 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version401100Date20230206002744.php b/lib/Migration/Version401100Date20230206002744.php index caf9784e..4d96dbc5 100644 --- a/lib/Migration/Version401100Date20230206002744.php +++ b/lib/Migration/Version401100Date20230206002744.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2023 Your name - * @author Your name + * @copyright Copyright (c) 2023 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version401100Date20230208181533.php b/lib/Migration/Version401100Date20230208181533.php index e11ad4a5..321e6448 100644 --- a/lib/Migration/Version401100Date20230208181533.php +++ b/lib/Migration/Version401100Date20230208181533.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2023 Your name - * @author Your name + * @copyright Copyright (c) 2023 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version401300Date20230328012131.php b/lib/Migration/Version401300Date20230328012131.php index 09c3ddac..94a4c122 100644 --- a/lib/Migration/Version401300Date20230328012131.php +++ b/lib/Migration/Version401300Date20230328012131.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2023 Your name - * @author Your name + * @copyright Copyright (c) 2023 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version500000Date20230414042534.php b/lib/Migration/Version500000Date20230414042534.php index e51ec3d4..614d0358 100644 --- a/lib/Migration/Version500000Date20230414042534.php +++ b/lib/Migration/Version500000Date20230414042534.php @@ -3,8 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2023 Your name - * @author Your name + * @copyright Copyright (c) 2023 Varun Patil + * @author Varun Patil * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/Migration/Version502000Date20230530052850.php b/lib/Migration/Version502000Date20230530052850.php new file mode 100644 index 00000000..43290a84 --- /dev/null +++ b/lib/Migration/Version502000Date20230530052850.php @@ -0,0 +1,66 @@ +. + */ + +namespace OCA\Memories\Migration; + +use OCP\DB\ISchemaWrapper; +use OCP\DB\Types; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version502000Date20230530052850 extends SimpleMigrationStep +{ + /** + * @param \Closure(): ISchemaWrapper $schemaClosure + */ + public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options): void + { + } + + /** + * @param \Closure(): ISchemaWrapper $schemaClosure + */ + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options): ?ISchemaWrapper + { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + $table = $schema->getTable('memories_places'); + $table->addColumn('mark', Types::BOOLEAN, [ + 'notnull' => false, + 'default' => false, + ]); + + $table->addIndex(['osm_id', 'mark'], 'memories_places_id_mk_idx'); + + return $schema; + } + + /** + * @param \Closure(): ISchemaWrapper $schemaClosure + */ + public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options): void + { + } +} diff --git a/lib/Migration/Version505000Date20230821044807.php b/lib/Migration/Version505000Date20230821044807.php new file mode 100644 index 00000000..c1578fa9 --- /dev/null +++ b/lib/Migration/Version505000Date20230821044807.php @@ -0,0 +1,128 @@ + + * @author Varun Patil + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace OCA\Memories\Migration; + +use OCP\DB\ISchemaWrapper; +use OCP\DB\Types; +use OCP\IDBConnection; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version505000Date20230821044807 extends SimpleMigrationStep +{ + /** @var IDBConnection */ + private $dbc; + + public function __construct(IDBConnection $dbc) + { + $this->dbc = $dbc; + } + + /** + * @param \Closure(): ISchemaWrapper $schemaClosure + */ + public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options): void + { + } + + /** + * @param \Closure(): ISchemaWrapper $schemaClosure + */ + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options): ?ISchemaWrapper + { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + $table = $schema->getTable('memories'); + $table->addColumn('epoch', Types::BIGINT, [ + 'notnull' => true, + 'default' => 0, + ]); + + return $schema; + } + + /** + * @param \Closure(): ISchemaWrapper $schemaClosure + */ + public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options): void + { + // extracts the epoch value from the EXIF json and stores it in the epoch column + try { + // get the required records + $result = $this->dbc->getQueryBuilder() + ->select('m.id', 'm.exif') + ->from('memories', 'm') + ->executeQuery() + ; + $count = 0; + + // iterate the memories table and update the epoch column + $this->dbc->beginTransaction(); + while ($row = $result->fetch()) { + try { + // get the epoch from the exif data + $exif = json_decode($row['exif'], true); + if (!\is_array($exif) || !\array_key_exists('DateTimeEpoch', $exif)) { + continue; + } + + // get epoch from exif if available + if ($epoch = (int) $exif['DateTimeEpoch']) { + // update the epoch column + $query = $this->dbc->getQueryBuilder(); + $query->update('memories') + ->set('epoch', $query->createNamedParameter($epoch)) + ->where($query->expr()->eq('id', $query->createNamedParameter((int) $row['id'], \PDO::PARAM_INT))) + ->executeStatement() + ; + + // increment the counter + ++$count; + } + } catch (\Exception $e) { + continue; + } + + // commit every 50 rows + if (0 === $count % 50) { + $this->dbc->commit(); + $this->dbc->beginTransaction(); + } + } + + // commit the remaining rows + $this->dbc->commit(); + + // close the cursor + $result->closeCursor(); + } catch (\Exception $e) { + error_log('Automatic migration failed: '.$e->getMessage()); + error_log('Please run occ memories:index -f'); + } + } +} diff --git a/lib/Service/BinExt.php b/lib/Service/BinExt.php index a72e2ae0..fc4ef668 100644 --- a/lib/Service/BinExt.php +++ b/lib/Service/BinExt.php @@ -9,7 +9,8 @@ use OCA\Memories\Util; class BinExt { public const EXIFTOOL_VER = '12.60'; - public const GOVOD_VER = '0.1.5'; + public const GOVOD_VER = '0.1.12'; + public const NX_VER_MIN = '1.0'; /** Copy a binary to temp dir for execution */ public static function getTempBin(string $path, string $name, bool $copy = true): string @@ -167,6 +168,8 @@ class BinExt 'nvenc' => Util::getSystemConfig('memories.vod.nvenc', false), 'nvencTemporalAQ' => Util::getSystemConfig('memories.vod.nvenc.temporal_aq'), 'nvencScale' => Util::getSystemConfig('memories.vod.nvenc.scale'), + + 'useTranspose' => Util::getSystemConfig('memories.vod.use_transpose'), ]; if (!$local) { diff --git a/lib/Service/Index.php b/lib/Service/Index.php index 9e32a7bf..0e5aea93 100644 --- a/lib/Service/Index.php +++ b/lib/Service/Index.php @@ -120,8 +120,8 @@ class Index */ public function indexFolder(Folder $folder): void { - if ($folder->nodeExists('.nomedia')) { - $this->log("Skipping folder {$folder->getPath()} due to .nomedia file\n", true); + if ($folder->nodeExists('.nomedia') || $folder->nodeExists('.nomemories')) { + $this->log("Skipping folder {$folder->getPath()} due to .nomedia or .nomemories file\n", true); return; } diff --git a/lib/Service/Places.php b/lib/Service/Places.php index 4e4ffd66..d9363046 100644 --- a/lib/Service/Places.php +++ b/lib/Service/Places.php @@ -88,6 +88,50 @@ class Places } } + /** + * Get list of osm IDs for a given point. + */ + public function queryPoint(float $lat, float $lon): array + { + // Get GIS type + $gisType = \OCA\Memories\Util::placesGISType(); + + // Construct WHERE clause depending on GIS type + $where = null; + if (1 === $gisType) { + $where = "ST_Contains(geometry, ST_GeomFromText('POINT({$lon} {$lat})'))"; + } elseif (2 === $gisType) { + $where = "POINT('{$lon},{$lat}') <@ geometry"; + } else { + return []; + } + + // Make query to memories_planet table + $query = $this->connection->getQueryBuilder(); + $query->select($query->createFunction('DISTINCT(osm_id)')) + ->from('memories_planet_geometry') + ->where($query->createFunction($where)) + ; + + // Cancel out inner rings + $query->groupBy('poly_id', 'osm_id'); + $query->having($query->createFunction('SUM(type_id) > 0')); + + // memories_planet_geometry has no *PREFIX* + $sql = str_replace('*PREFIX*memories_planet_geometry', 'memories_planet_geometry', $query->getSQL()); + + // Use as subquery to get admin level + $query = $this->connection->getQueryBuilder(); + $query->select('sub.osm_id', 'mp.admin_level') + ->from($query->createFunction("({$sql})"), 'sub') + ->innerJoin('sub', 'memories_planet', 'mp', $query->expr()->eq('sub.osm_id', 'mp.osm_id')) + ->orderBy('mp.admin_level', 'ASC') + ; + + // Run query + return $query->executeQuery()->fetchAll(); + } + /** * Download planet database file and return path to it. */ diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 9387d321..ed774971 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -2,25 +2,17 @@ namespace OCA\Memories\Settings; +use OCA\Memories\Controller\PageController; use OCP\AppFramework\Http\TemplateResponse; -use OCP\IConfig; -use OCP\IL10N; use OCP\Settings\ISettings; class Admin implements ISettings { - /** @var IConfig */ - private $config; + protected $appName; - /** @var IL10N */ - private $l; - - public function __construct( - IConfig $config, - IL10N $l - ) { - $this->config = $config; - $this->l = $l; + public function __construct(string $AppName) + { + $this->appName = $AppName; } /** @@ -28,17 +20,14 @@ class Admin implements ISettings */ public function getForm() { - $parameters = [ - ]; + \OCP\Util::addScript($this->appName, 'memories-admin'); - \OCP\Util::addScript('memories', 'memories-main'); - - return new TemplateResponse('memories', 'admin', $parameters); + return new TemplateResponse('memories', 'main', PageController::getMainParams()); } public function getSection() { - return 'memories'; + return $this->appName; } public function getPriority() diff --git a/lib/SystemConfigDefault.php b/lib/SystemConfigDefault.php new file mode 100644 index 00000000..27a19d3f --- /dev/null +++ b/lib/SystemConfigDefault.php @@ -0,0 +1,75 @@ + '', + + // Do not use packaged binaries of exiftool + // This requires perl to be available + 'memories.exiftool_no_local' => false, + + // How to index user directories + // 0 = auto-index disabled + // 1 = index everything + // 2 = index only user timelines + // 3 = index only configured path + 'memories.index.mode' => '1', + + // Path to index (only used if indexing mode is 3) + 'memories.index.path' => '/', + + // Places database type identifier + 'memories.gis_type' => -1, + + // Disable transcoding + 'memories.vod.disable' => true, + + // VA-API configuration options + 'memories.vod.vaapi' => false, // Transcode with VA-API + 'memories.vod.vaapi.low_power' => false, // Use low_power mode for VA-API + + // NVENC configuration options + 'memories.vod.nvenc' => false, // Transcode with NVIDIA NVENC + 'memories.vod.nvenc.temporal_aq' => false, + 'memories.vod.nvenc.scale' => 'npp', // npp or cuda + + // Extra streaming configuration + 'memories.vod.use_transpose' => false, + + // Paths to ffmpeg and ffprobe binaries + 'memories.vod.ffmpeg' => '', + 'memories.vod.ffprobe' => '', + + // Path to go-vod binary + 'memories.vod.path' => '', + + // Path to use for transcoded files (/tmp/go-vod/instanceid) + // Make sure this has plenty of space + 'memories.vod.tempdir' => '', + + // Bind address to use when starting the transcoding server + 'memories.vod.bind' => '127.0.0.1:47788', + + // Address used to connect to the transcoding server + // If not specified, the bind address above will be used + 'memories.vod.connect' => '127.0.0.1:47788', + + // Mark go-vod as external. If true, Memories will not attempt to + // start go-vod if it is not running already. + 'memories.vod.external' => false, + + // Set the default video quality for a first time user + // 0 => Auto (default) + // -1 => Original (max quality with transcoding) + // -2 => Direct (disable transcoding) + // 1080 => 1080p (and so on) + 'memories.video_default_quality' => '0', + + // Memories only provides an admin interface for these + // https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#previews + 'enabledPreviewProviders' => [], + 'preview_max_x' => 4096, + 'preview_max_y' => 4096, + 'preview_max_memory' => 128, + 'preview_max_filesize_image' => 50, +]; diff --git a/lib/Util.php b/lib/Util.php index 77793989..bd50a32a 100644 --- a/lib/Util.php +++ b/lib/Util.php @@ -84,6 +84,23 @@ class Util * Check if recognize is enabled for this user. */ public static function recognizeIsEnabled(): bool + { + if (!self::recognizeIsInstalled()) { + return false; + } + + $config = \OC::$server->get(IAppConfig::class); + if ('true' !== $config->getValue('recognize', 'faces.enabled', 'false')) { + return false; + } + + return true; + } + + /** + * Check if recognize is installed. + */ + public static function recognizeIsInstalled(): bool { $appManager = \OC::$server->get(IAppManager::class); @@ -96,11 +113,6 @@ class Util return false; } - $c = \OC::$server->get(IAppConfig::class); - if ('true' !== $c->getValue('recognize', 'faces.enabled', 'false')) { - return false; - } - return true; } @@ -109,16 +121,21 @@ class Util */ public static function facerecognitionIsEnabled(): bool { + if (!self::facerecognitionIsInstalled()) { + return false; + } + try { $uid = self::getUID(); } catch (\Exception $e) { return false; } - $config = \OC::$server->get(IConfig::class); - $e = $config->getUserValue($uid, 'facerecognition', 'enabled', 'false'); + $enabled = \OC::$server->get(IConfig::class) + ->getUserValue($uid, 'facerecognition', 'enabled', 'false') + ; - return 'true' === $e; + return 'true' === $enabled; } /** @@ -137,6 +154,16 @@ class Util return version_compare($v, '0.9.10-beta.2', '>='); } + /** + * Check if preview generator is installed. + */ + public static function previewGeneratorIsEnabled(): bool + { + $appManager = \OC::$server->get(IAppManager::class); + + return $appManager->isEnabledForUser('previewgenerator'); + } + /** * Check if link sharing is allowed. */ @@ -370,6 +397,9 @@ class Util throw new \InvalidArgumentException("Invalid system config key: {$key}"); } + // Key belongs to memories namespace + $isAppKey = str_starts_with($key, Application::APPNAME.'.'); + // Check if the value has the correct type if (null !== $value && \gettype($value) !== \gettype($defaults[$key])) { $expected = \gettype($defaults[$key]); @@ -378,7 +408,12 @@ class Util throw new \InvalidArgumentException("Invalid type for system config {$key}, expected {$expected}, got {$got}"); } - if ($value === $defaults[$key] || null === $value) { + // Do not allow null for non-app keys + if (!$isAppKey && null === $value) { + throw new \InvalidArgumentException("Invalid value for system config {$key}, null is not allowed"); + } + + if ($isAppKey && ($value === $defaults[$key] || null === $value)) { $config->deleteSystemValue($key); } else { $config->setSystemValue($key, $value); @@ -388,68 +423,7 @@ class Util /** Get list of defaults for all system config keys. */ public static function systemConfigDefaults(): array { - return [ - // Path to exiftool binary - 'memories.exiftool' => '', - - // Do not use packaged binaries of exiftool - // This requires perl to be available - 'memories.exiftool_no_local' => false, - - // How to index user directories - // 0 = auto-index disabled - // 1 = index everything - // 2 = index only user timelines - // 3 = index only configured path - 'memories.index.mode' => '1', - - // Path to index (only used if indexing mode is 3) - 'memories.index.path' => '/', - - // Places database type identifier - 'memories.gis_type' => -1, - - // Disable transcoding - 'memories.vod.disable' => true, - - // VA-API configuration options - 'memories.vod.vaapi' => false, // Transcode with VA-API - 'memories.vod.vaapi.low_power' => false, // Use low_power mode for VA-API - - // NVENC configuration options - 'memories.vod.nvenc' => false, // Transcode with NVIDIA NVENC - 'memories.vod.nvenc.temporal_aq' => false, - 'memories.vod.nvenc.scale' => 'npp', // npp or cuda - - // Paths to ffmpeg and ffprobe binaries - 'memories.vod.ffmpeg' => '', - 'memories.vod.ffprobe' => '', - - // Path to go-vod binary - 'memories.vod.path' => '', - - // Path to use for transcoded files (/tmp/go-vod/instanceid) - // Make sure this has plenty of space - 'memories.vod.tempdir' => '', - - // Bind address to use when starting the transcoding server - 'memories.vod.bind' => '127.0.0.1:47788', - - // Address used to connect to the transcoding server - // If not specified, the bind address above will be used - 'memories.vod.connect' => '127.0.0.1:47788', - - // Mark go-vod as external. If true, Memories will not attempt to - // start go-vod if it is not running already. - 'memories.vod.external' => false, - - // Set the default video quality for a first time user - // 0 => Auto (default) - // -1 => Original (max quality with transcoding) - // -2 => Direct (disable transcoding) - // 1080 => 1080p (and so on) - 'memories.video_default_quality' => '0', - ]; + return require __DIR__.'/SystemConfigDefault.php'; } /** @@ -465,15 +439,34 @@ class Util */ public static function callerIsNative(): bool { - $request = \OC::$server->get(\OCP\IRequest::class); - $userAgent = $request->getHeader('User-Agent'); + // Should not use IRequest here since this method is called during registration + if (\array_key_exists('HTTP_X_REQUESTED_WITH', $_SERVER)) { + return 'gallery.memories' === $_SERVER['HTTP_X_REQUESTED_WITH']; + } - return false !== strpos($userAgent, 'MemoriesNative'); + return false !== strpos($_SERVER['HTTP_USER_AGENT'] ?? '', 'MemoriesNative'); + } + + /** + * Get the version of the native caller. + */ + public static function callerNativeVersion(): ?string + { + $userAgent = \OC::$server->get(\OCP\IRequest::class)->getHeader('User-Agent'); + + $matches = []; + if (preg_match('/MemoriesNative\/([0-9.]+)/', $userAgent, $matches)) { + return $matches[1]; + } + + return null; } /** * Kill all instances of a process by name. * Similar to pkill, which may not be available on all systems. + * + * @param string $name Process name (only the first 12 characters are used) */ public static function pkill(string $name): void { @@ -482,8 +475,21 @@ class Util return; } + // only use the first 12 characters + $name = substr($name, 0, 12); + + // check if ps or busybox is available + $ps = 'ps'; + if (!shell_exec('which ps')) { + if (!shell_exec('which busybox')) { + return; + } + + $ps = 'busybox ps'; + } + // get pids using ps as array - $pids = shell_exec("ps -ef | grep {$name} | grep -v grep | awk '{print $2}'"); + $pids = shell_exec("{$ps} -eao pid,comm | grep {$name} | awk '{print $1}'"); if (null === $pids || empty($pids)) { return; } diff --git a/lib/UtilController.php b/lib/UtilController.php index 2cdab66b..eb1b5b15 100644 --- a/lib/UtilController.php +++ b/lib/UtilController.php @@ -37,6 +37,7 @@ trait UtilController public function __construct(\Closure $closure) { + parent::__construct(); $this->_closure = $closure; } diff --git a/mkdocs.yml b/mkdocs.yml index db94f55f..e3466a4d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,8 +27,8 @@ theme: toggle: icon: material/brightness-4 name: Switch to light mode - icon: - logo: material/camera + logo: assets/app.svg + favicon: assets/favicon.ico custom_dir: docs/overrides plugins: @@ -42,6 +42,7 @@ nav: - 'config.md' - 'file-types.md' - 'hw-transcoding.md' + - 'troubleshooting.md' - 'system-config.md' - Support: - 'faq.md' diff --git a/package-lock.json b/package-lock.json index 015b170e..b8aa63b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,21 +9,22 @@ "version": "1.0.1", "license": "agpl", "dependencies": { - "@nextcloud/l10n": "^2.1.0", + "@nextcloud/l10n": "^2.2.0", "@nextcloud/paths": "^2.1.0", "@nextcloud/sharing": "^0.1.0", - "@nextcloud/vue": "7.11.2", + "@nextcloud/vue": "7.12.1", "camelcase": "^7.0.1", - "filerobot-image-editor": "^4.4.0", + "filerobot-image-editor": "^4.5.1", "fuse.js": "^6.6.2", "hammerjs": "^2.0.8", "justified-layout": "^4.1.0", - "leaflet": "^1.9.3", + "leaflet": "^1.9.4", "leaflet-edgebuffer": "^1.0.6", "luxon": "^3.3.0", "path-posix": "^1.0.0", - "photoswipe": "^5.3.7", + "photoswipe": "^5.3.8", "plyr": "^3.7.8", + "react-filerobot-image-editor": "^4.5.1", "reflect-metadata": "^0.1.13", "video.js": "^8.3.0", "vue": "^2.7.14", @@ -36,14 +37,15 @@ "devDependencies": { "@nextcloud/browserslist-config": "^2.3.0", "@nextcloud/webpack-vue-config": "^5.5.1", - "@playwright/test": "^1.33.0", + "@playwright/test": "^1.36.1", "@types/hammerjs": "^2.0.41", + "@types/luxon": "^3.3.1", "@types/url-parse": "^1.4.8", "@types/videojs-contrib-quality-levels": "^2.0.1", - "playwright": "^1.33.0", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", - "workbox-webpack-plugin": "^6.5.4" + "playwright": "^1.36.1", + "ts-loader": "^9.4.4", + "typescript": "^5.1.6", + "workbox-webpack-plugin": "^7.0.0" }, "engines": { "node": ">=18.2.0", @@ -64,20 +66,20 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.0.tgz", - "integrity": "sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -140,39 +142,39 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -181,19 +183,36 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6" + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -203,13 +222,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -219,138 +239,124 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", - "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.19.4", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" }, "engines": { "node": ">=6.9.0" @@ -360,91 +366,91 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", - "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.19.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -465,11 +471,11 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -478,9 +484,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", - "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "bin": { "parser": "bin/babel-parser.js" }, @@ -489,12 +495,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -504,14 +510,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -520,232 +526,11 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", - "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", - "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, "engines": { "node": ">=6.9.0" }, @@ -833,12 +618,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -847,6 +632,33 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -961,30 +773,64 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", + "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -994,12 +840,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1009,12 +855,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", - "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1023,20 +869,53 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", - "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.19.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { @@ -1047,12 +926,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1062,12 +942,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", - "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1077,13 +957,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1093,12 +973,28 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1108,13 +1004,29 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1124,12 +1036,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1139,14 +1051,30 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1156,12 +1084,28 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1171,12 +1115,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1186,13 +1130,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1202,14 +1146,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1219,15 +1163,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1237,13 +1181,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1253,13 +1197,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1269,12 +1213,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1284,13 +1279,46 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", + "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1300,12 +1328,46 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1315,12 +1377,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1330,13 +1392,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -1346,12 +1408,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1361,12 +1423,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1376,13 +1438,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1392,12 +1454,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1407,12 +1469,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1422,12 +1484,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1437,12 +1499,28 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1452,13 +1530,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1467,39 +1545,43 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", - "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.19.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", + "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1509,45 +1591,62 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.19.4", - "@babel/plugin-transform-classes": "^7.19.0", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.19.4", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.0", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1557,9 +1656,9 @@ } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -1569,9 +1668,15 @@ "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz", @@ -1584,13 +1689,13 @@ } }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1617,12 +1722,12 @@ } }, "node_modules/@babel/types": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", - "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1923,18 +2028,19 @@ "integrity": "sha512-xmNP30v/RnkJ2z1HcuEo7YfcLJJa+FdWTwgNldXHOlMeMbl/ESpsGkWL2sULrhYurz64L0JpfwEdi/cHcmyuZQ==" }, "node_modules/@nextcloud/l10n": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-2.1.0.tgz", - "integrity": "sha512-rToqXwxcsDTcijvSdgyJAKuOuW7XggDYH00/t3GN5HzO1lNNnVtOj7cc5WmiTknciM+En2oVSMFIUPs6HehjVQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-2.2.0.tgz", + "integrity": "sha512-UAM2NJcl/NR46MANSF7Gr7q8/Up672zRyGrxLpN3k4URNmWQM9upkbRME+1K3T29wPrUyOIbQu710ZjvZafqFA==", "dependencies": { - "@nextcloud/router": "^2.0.0", - "dompurify": "^2.4.1", + "@nextcloud/router": "^2.1.2", + "@nextcloud/typings": "^1.7.0", + "dompurify": "^3.0.3", "escape-html": "^1.0.3", "node-gettext": "^3.0.0" }, "engines": { - "node": "^16.0.0", - "npm": "^7.0.0 || ^8.0.0" + "node": "^20.0.0", + "npm": "^9.0.0" } }, "node_modules/@nextcloud/logger": { @@ -1959,11 +2065,16 @@ } }, "node_modules/@nextcloud/router": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@nextcloud/router/-/router-2.0.0.tgz", - "integrity": "sha512-GyHYNYrYAZRBGD5VxRggcbahdJ/zCkXb8+ERVfuaosT+nHMjJSmenTD6Uyct41qGm0p3Az4xRCXGyZGJM0NEUQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@nextcloud/router/-/router-2.1.2.tgz", + "integrity": "sha512-Jj5fgjeHT1vVIgOyUGOeHfwk2KgaO77QGfqZAT6GWXvpAsN0mkqwljkg4FkHrQRouYqCE4VnJ5o8/w0DAN89tA==", "dependencies": { + "@nextcloud/typings": "^1.0.0", "core-js": "^3.6.4" + }, + "engines": { + "node": "^16.0.0", + "npm": "^7.0.0 || ^8.0.0" } }, "node_modules/@nextcloud/sharing": { @@ -1975,11 +2086,13 @@ } }, "node_modules/@nextcloud/typings": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.6.0.tgz", - "integrity": "sha512-5uIsteFy9Z9/ZaNGE8w8SDgJp+FK8/LeRLgfnakC2pU8eNKTPlQfkiYR163oEI5Xu5YzwdIzf6/roIXdNinhrw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.7.0.tgz", + "integrity": "sha512-fK1i09FYTfSUBdXswyiCr8ng5MwdWjEWOF7hRvNvq5i+XFUSmGjSsRmpQZFM2AONroHqGGQBkvQqpONUshFBJQ==", "dependencies": { - "@types/jquery": "2.0.60" + "@types/jquery": "3.5.16", + "vue": "^2.7.14", + "vue-router": "<4" }, "engines": { "node": "^16.0.0", @@ -1987,9 +2100,9 @@ } }, "node_modules/@nextcloud/vue": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-7.11.2.tgz", - "integrity": "sha512-BK/+IC312Q6iUKrg+aycxPF5w14LT8qcnpqH3iFGykx6V+yyqEAHIwXTqXwnnQ5QzcC5WPtErSxsLN3ydknFzA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-7.12.1.tgz", + "integrity": "sha512-j3wWgUkGEbq6cEdgdiG8VWWgqEd8YvKhK64o1eKbLP3OlVkcrqXfiRmPm1SafPVureGr/Yp/Ty/zIZnHBjxlNg==", "dependencies": { "@floating-ui/dom": "^1.1.0", "@nextcloud/auth": "^2.0.0", @@ -2011,7 +2124,7 @@ "emoji-mart-vue-fast": "^12.0.1", "escape-html": "^1.0.3", "floating-vue": "^1.0.0-beta.19", - "focus-trap": "^7.1.0", + "focus-trap": "^7.4.3", "hammerjs": "^2.0.8", "linkify-string": "^4.0.0", "md5": "^2.3.0", @@ -2108,29 +2221,28 @@ } }, "node_modules/@playwright/test": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.33.0.tgz", - "integrity": "sha512-YunBa2mE7Hq4CfPkGzQRK916a4tuZoVx/EpLjeWlTVOnD4S2+fdaQZE0LJkbfhN5FTSKNLdcl7MoT5XB37bTkg==", + "version": "1.36.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.36.1.tgz", + "integrity": "sha512-YK7yGWK0N3C2QInPU6iaf/L3N95dlGdbsezLya4n0ZCh3IL7VgPGxC6Gnznh9ApWdOmkJeleT2kMTcWPRZvzqg==", "dev": true, "dependencies": { "@types/node": "*", - "playwright-core": "1.33.0" + "playwright-core": "1.36.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=14" + "node": ">=16" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", - "peer": true, + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -2216,10 +2328,9 @@ "dev": true }, "node_modules/@scaleflex/icons": { - "version": "1.0.0-beta.80", - "resolved": "https://registry.npmjs.org/@scaleflex/icons/-/icons-1.0.0-beta.80.tgz", - "integrity": "sha512-QUPwFDmFNlE3GZ5kcr5Fp3KzetcG4FQyOYO76vPi9v0h/+gr9NKfLDhx5AI72XHZrVdp42I4Mu17jGREQy2Q6A==", - "peer": true, + "version": "1.0.0-beta.99", + "resolved": "https://registry.npmjs.org/@scaleflex/icons/-/icons-1.0.0-beta.99.tgz", + "integrity": "sha512-LXFn0/7jbtCxv90yO7dt7Mx/n9f5Fvl9bovf8HABFX1Y2V4Iw+egdnm6LGt+fbl61lq7Ea8aFCr/YKH4jmGpvw==", "engines": { "node": ">=12" }, @@ -2229,13 +2340,12 @@ } }, "node_modules/@scaleflex/ui": { - "version": "1.0.0-beta.80", - "resolved": "https://registry.npmjs.org/@scaleflex/ui/-/ui-1.0.0-beta.80.tgz", - "integrity": "sha512-h4IiShDPcg4F+dLb7Fw6Xk1KmMWTm/NJzJaSeQ84ysCFquFrDgJKs5WKQ0yn/pdnCQfdec4801ACVpybqmA8UQ==", - "peer": true, + "version": "1.0.0-beta.99", + "resolved": "https://registry.npmjs.org/@scaleflex/ui/-/ui-1.0.0-beta.99.tgz", + "integrity": "sha512-PglsU+2xHI7MYiLS9BNbPacXTbsc+Nvj7/p0fQ37E9mhJiM2/rRKCJG4YiyDQRpnc9VjyOIF12GDvHAmiFnrCQ==", "dependencies": { "@popperjs/core": "^2.6.0", - "@scaleflex/icons": "^1.0.0-beta.80", + "@scaleflex/icons": "^1.0.0-beta.99", "lodash.merge": "^4.6.2", "lodash.throttle": "^4.1.1", "polished": "^3.6.6", @@ -2408,9 +2518,12 @@ } }, "node_modules/@types/jquery": { - "version": "2.0.60", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.60.tgz", - "integrity": "sha512-izi6OBEVrAwaHiqWITjOPBbVtcKZKAXTocJqPZsAKA2lvmbpFEyPSAxgcqmisbiMYj9EvrooUEPLHQeQqVMWAg==" + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", + "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", + "dependencies": { + "@types/sizzle": "*" + } }, "node_modules/@types/json-schema": { "version": "7.0.11", @@ -2427,6 +2540,12 @@ "@types/geojson": "*" } }, + "node_modules/@types/luxon": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.1.tgz", + "integrity": "sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA==", + "dev": true + }, "node_modules/@types/mdast": { "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", @@ -2531,6 +2650,11 @@ "@types/node": "*" } }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + }, "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -2542,9 +2666,9 @@ } }, "node_modules/@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", "dev": true }, "node_modules/@types/unist": { @@ -3299,42 +3423,42 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-styled-components": { @@ -3605,9 +3729,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "funding": [ { "type": "opencollective", @@ -3616,13 +3740,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" @@ -3728,9 +3856,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001486", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz", - "integrity": "sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==", + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", "funding": [ { "type": "opencollective", @@ -4071,12 +4199,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", - "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", "dev": true, "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.21.9" }, "funding": { "type": "opencollective", @@ -4332,9 +4460,9 @@ } }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4434,8 +4562,7 @@ "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "peer": true + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, "node_modules/diff": { "version": "5.1.0", @@ -4497,9 +4624,9 @@ } }, "node_modules/dompurify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.3.tgz", - "integrity": "sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.5.tgz", + "integrity": "sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==" }, "node_modules/ee-first": { "version": "1.1.1", @@ -4509,9 +4636,9 @@ "peer": true }, "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -4524,9 +4651,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "version": "1.4.468", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.468.tgz", + "integrity": "sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -4943,9 +5070,9 @@ } }, "node_modules/filerobot-image-editor": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/filerobot-image-editor/-/filerobot-image-editor-4.4.0.tgz", - "integrity": "sha512-B1lqUtPT0iEn+sguJ+XOrTLnjf5adBA60aNW6DPAwGCtHj4NjIHEGT7RMVeleCt9vsHwnTYEZVih0DvLcsVRcw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/filerobot-image-editor/-/filerobot-image-editor-4.5.1.tgz", + "integrity": "sha512-5I1IjfEv4dCfFEub11itje8DAupcverqHZtnEBrKEIYOeg+dUM51agwTKznvo+01tEL7FMem5lklMvQBW2Ebiw==", "dependencies": { "@babel/runtime": "^7.17.2", "react": "18.2.0", @@ -5133,10 +5260,9 @@ } }, "node_modules/focus-lock": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.11.3.tgz", - "integrity": "sha512-4n0pYcPTa/uI7Q66BZna61nRT7lDhnuJ9PJr6wiDjx4uStg491ks41y7uOG+s0umaaa+hulNKSldU9aTg9/yVg==", - "peer": true, + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.11.6.tgz", + "integrity": "sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==", "dependencies": { "tslib": "^2.0.3" }, @@ -5145,11 +5271,11 @@ } }, "node_modules/focus-trap": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.1.0.tgz", - "integrity": "sha512-CuJvwUBfJCWcU6fc4xr3UwMF5vWnox4isXAixCwrPzCsPKOQjP9T+nTlYT2t+vOmQL8MOQ16eim99XhjQHAuiQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", + "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", "dependencies": { - "tabbable": "^6.0.1" + "tabbable": "^6.2.0" } }, "node_modules/follow-redirects": { @@ -5785,9 +5911,9 @@ } }, "node_modules/idb": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.0.tgz", - "integrity": "sha512-Wsk07aAxDsntgYJY4h0knZJuTxM73eQ4reRAO+Z1liOh8eMCJ/MoDS8fCui1vGT9mnjtl1sOu3I2i/W1swPYZg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", "dev": true }, "node_modules/ieee754": { @@ -6316,15 +6442,15 @@ } }, "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" @@ -6569,9 +6695,9 @@ } }, "node_modules/konva": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/konva/-/konva-8.3.2.tgz", - "integrity": "sha512-vWi51qFTFkEIp+HxMek1eH1fA1zFo0DPD3uqUez+v2gy/IfZF2eLu9DcEj7Exk532hxfHJi/2oZ0GQYHlhg/dQ==", + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/konva/-/konva-8.4.3.tgz", + "integrity": "sha512-ARqdgAbdNIougRlOKvkQwHlGhXPRBV4KvhCP+qoPpGoVQwwiJe4Hkdu4HHdRPb9rGUp04jDTAxBzEwBsE272pg==", "funding": [ { "type": "patreon", @@ -6585,8 +6711,7 @@ "type": "github", "url": "https://github.com/sponsors/lavrton" } - ], - "peer": true + ] }, "node_modules/layerr": { "version": "0.1.2", @@ -6594,9 +6719,9 @@ "integrity": "sha512-ob5kTd9H3S4GOG2nVXyQhOu9O8nBgP555XxWPkJI0tR0JeRilfyTp8WtPdIJHLXBmHMSdEq5+KMxiYABeScsIQ==" }, "node_modules/leaflet": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.3.tgz", - "integrity": "sha512-iB2cR9vAkDOu5l3HAay2obcUHZ7xwUBBjph8+PGtmW/2lYhbLizWtG7nTeYht36WfOslixQF9D/uSIzhZgGMfQ==" + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" }, "node_modules/leaflet-edgebuffer": { "version": "1.0.6", @@ -6672,8 +6797,7 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "peer": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/lodash.sortby": { "version": "4.7.0", @@ -7606,9 +7730,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -7637,7 +7761,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -7916,9 +8039,9 @@ } }, "node_modules/photoswipe": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-5.3.7.tgz", - "integrity": "sha512-zsyLsTTLFrj0XR1m4/hO7qNooboFKUrDy+Zt5i2d6qjFPAtBjzaj/Xtydso4uxzcXpcqbTmyxDibb3BcSISseg==", + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-5.3.8.tgz", + "integrity": "sha512-4vTzOQt8GP4Chsm0s+8j2xDtVHAEN252PxrU12A1zXauNn0zD5HRHgjALKO2GKTyBnTnOrJUOxbV8LTrFIMrYw==", "engines": { "node": ">= 0.12.0" } @@ -7964,31 +8087,31 @@ } }, "node_modules/playwright": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.33.0.tgz", - "integrity": "sha512-+zzU3V2TslRX2ETBRgQKsKytYBkJeLZ2xzUj4JohnZnxQnivoUvOvNbRBYWSYykQTO0Y4zb8NwZTYFUO+EpPBQ==", + "version": "1.36.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.36.1.tgz", + "integrity": "sha512-2ZqHpD0U0COKR8bqR3W5IkyIAAM0mT9FgGJB9xWCI1qAUkqLxJskA1ueeQOTH2Qfz3+oxdwwf2EzdOX+RkZmmQ==", "dev": true, "hasInstallScript": true, "dependencies": { - "playwright-core": "1.33.0" + "playwright-core": "1.36.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/playwright-core": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.33.0.tgz", - "integrity": "sha512-aizyPE1Cj62vAECdph1iaMILpT0WUDCq3E6rW6I+dleSbBoGbktvJtzS6VHkZ4DKNEOG9qJpiom/ZxO+S15LAw==", + "version": "1.36.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.36.1.tgz", + "integrity": "sha512-7+tmPuMcEW4xeCL9cp9KxmYpQYHKkyjwoXRnoeTowaeNat8PoBMk/HwCYhqkH2fRkshfKEOiVus/IhID2Pg8kg==", "dev": true, "bin": { - "playwright": "cli.js" + "playwright-core": "cli.js" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/plyr": { @@ -8007,7 +8130,6 @@ "version": "3.7.2", "resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz", "integrity": "sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==", - "peer": true, "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -8168,7 +8290,6 @@ "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -8178,8 +8299,7 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "peer": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/property-information": { "version": "6.2.0", @@ -8358,7 +8478,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", - "peer": true, "dependencies": { "@babel/runtime": "^7.12.13" }, @@ -8379,32 +8498,30 @@ } }, "node_modules/react-filerobot-image-editor": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/react-filerobot-image-editor/-/react-filerobot-image-editor-4.3.7.tgz", - "integrity": "sha512-StUOsbiNj9ssSXgVOZUeNPwd3p8U0hJFVVwUgcb57EZSW2uWjt0cRn74hqhs9S/qJwqjF+D4ve4X3JY/gW4j1A==", - "peer": true, + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/react-filerobot-image-editor/-/react-filerobot-image-editor-4.5.1.tgz", + "integrity": "sha512-QI9UM3iPK59hRxn4aPvSVSw77mP6sPD/smOKf2pJDXINNmZxANOYgB57iipB0glBGQDHjkqWBt2xHV8O/KkV1w==", "dependencies": { "@babel/runtime": "^7.17.2", - "@scaleflex/icons": "1.0.0-beta.80", - "@scaleflex/ui": "1.0.0-beta.80", - "konva": "8.3.2", - "prop-types": "15.7.2", - "react-konva": "18.1.1" + "@scaleflex/icons": "1.0.0-beta.99", + "@scaleflex/ui": "1.0.0-beta.99", + "konva": "8.4.3", + "prop-types": "15.7.2" }, "peerDependencies": { - "react": "18.2.0", - "react-dom": "18.2.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0", + "react-konva": ">=17.0.0", "styled-components": ">=5.3.5" } }, "node_modules/react-focus-lock": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.9.1.tgz", - "integrity": "sha512-pSWOQrUmiKLkffPO6BpMXN7SNKXMsuOakl652IBuALAu1esk+IcpJyM+ALcYzPTTFz1rD0R54aB9A4HuP5t1Wg==", - "peer": true, + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.9.5.tgz", + "integrity": "sha512-h6vrdgUbsH2HeD5I7I3Cx1PPrmwGuKYICS+kB9m+32X/9xHRrAbxgvaBpG7BFBN9h3tO+C3qX1QAVESmi4CiIA==", "dependencies": { "@babel/runtime": "^7.0.0", - "focus-lock": "^0.11.2", + "focus-lock": "^0.11.6", "prop-types": "^15.6.2", "react-clientside-effect": "^1.2.6", "use-callback-ref": "^1.3.0", @@ -8558,9 +8675,9 @@ "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -8583,28 +8700,22 @@ } }, "node_modules/regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -8815,6 +8926,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", @@ -9082,9 +9194,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -9382,6 +9494,7 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", "dev": true }, "node_modules/space-separated-tokens": { @@ -9525,18 +9638,18 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" }, "funding": { @@ -9706,9 +9819,9 @@ } }, "node_modules/tabbable": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.0.1.tgz", - "integrity": "sha512-SYJSIgeyXW7EuX1ytdneO5e8jip42oHWg9xl/o3oTYhmXusZVgiA+VlPvjIN+kHii9v90AmzTZEBcsEvuAY+TA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/tapable": { "version": "2.2.1", @@ -9920,9 +10033,9 @@ } }, "node_modules/ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", + "integrity": "sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -10077,16 +10190,16 @@ } }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/unbox-primitive": { @@ -10126,9 +10239,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" @@ -10320,9 +10433,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "funding": [ { "type": "opencollective", @@ -10331,6 +10444,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -10338,7 +10455,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -10394,7 +10511,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "peer": true, "dependencies": { "tslib": "^2.0.0" }, @@ -10415,7 +10531,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "peer": true, "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -11195,28 +11310,28 @@ "peer": true }, "node_modules/workbox-background-sync": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", - "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz", + "integrity": "sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-broadcast-update": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", - "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.0.0.tgz", + "integrity": "sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==", "dev": true, "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-build": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", - "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.0.0.tgz", + "integrity": "sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -11241,24 +11356,24 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "6.5.4", - "workbox-broadcast-update": "6.5.4", - "workbox-cacheable-response": "6.5.4", - "workbox-core": "6.5.4", - "workbox-expiration": "6.5.4", - "workbox-google-analytics": "6.5.4", - "workbox-navigation-preload": "6.5.4", - "workbox-precaching": "6.5.4", - "workbox-range-requests": "6.5.4", - "workbox-recipes": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4", - "workbox-streams": "6.5.4", - "workbox-sw": "6.5.4", - "workbox-window": "6.5.4" + "workbox-background-sync": "7.0.0", + "workbox-broadcast-update": "7.0.0", + "workbox-cacheable-response": "7.0.0", + "workbox-core": "7.0.0", + "workbox-expiration": "7.0.0", + "workbox-google-analytics": "7.0.0", + "workbox-navigation-preload": "7.0.0", + "workbox-precaching": "7.0.0", + "workbox-range-requests": "7.0.0", + "workbox-recipes": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0", + "workbox-streams": "7.0.0", + "workbox-sw": "7.0.0", + "workbox-window": "7.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=16.0.0" } }, "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { @@ -11279,9 +11394,9 @@ } }, "node_modules/workbox-build/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -11313,133 +11428,133 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", - "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.0.0.tgz", + "integrity": "sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==", "dev": true, "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-core": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", - "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.0.0.tgz", + "integrity": "sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==", "dev": true }, "node_modules/workbox-expiration": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", - "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.0.0.tgz", + "integrity": "sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==", "dev": true, "dependencies": { "idb": "^7.0.1", - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-google-analytics": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", - "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.0.0.tgz", + "integrity": "sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==", "dev": true, "dependencies": { - "workbox-background-sync": "6.5.4", - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" + "workbox-background-sync": "7.0.0", + "workbox-core": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0" } }, "node_modules/workbox-navigation-preload": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", - "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.0.0.tgz", + "integrity": "sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==", "dev": true, "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-precaching": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", - "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.0.0.tgz", + "integrity": "sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==", "dev": true, "dependencies": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" + "workbox-core": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0" } }, "node_modules/workbox-range-requests": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", - "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.0.0.tgz", + "integrity": "sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==", "dev": true, "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-recipes": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", - "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.0.0.tgz", + "integrity": "sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==", "dev": true, "dependencies": { - "workbox-cacheable-response": "6.5.4", - "workbox-core": "6.5.4", - "workbox-expiration": "6.5.4", - "workbox-precaching": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" + "workbox-cacheable-response": "7.0.0", + "workbox-core": "7.0.0", + "workbox-expiration": "7.0.0", + "workbox-precaching": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0" } }, "node_modules/workbox-routing": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", - "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.0.0.tgz", + "integrity": "sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==", "dev": true, "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-strategies": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", - "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.0.0.tgz", + "integrity": "sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==", "dev": true, "dependencies": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/workbox-streams": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", - "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.0.0.tgz", + "integrity": "sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==", "dev": true, "dependencies": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4" + "workbox-core": "7.0.0", + "workbox-routing": "7.0.0" } }, "node_modules/workbox-sw": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", - "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.0.0.tgz", + "integrity": "sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==", "dev": true }, "node_modules/workbox-webpack-plugin": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", - "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-7.0.0.tgz", + "integrity": "sha512-R1ZzCHPfzeJjLK2/TpKUhxSQ3fFDCxlWxgRhhSjMQLz3G2MlBnyw/XeYb34e7SGgSv0qG22zEhMIzjMNqNeKbw==", "dev": true, "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", "upath": "^1.2.0", "webpack-sources": "^1.4.3", - "workbox-build": "6.5.4" + "workbox-build": "7.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=16.0.0" }, "peerDependencies": { "webpack": "^4.4.0 || ^5.9.0" @@ -11456,13 +11571,13 @@ } }, "node_modules/workbox-window": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", - "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.0.0.tgz", + "integrity": "sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "node_modules/wrappy": { @@ -11521,17 +11636,17 @@ } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.5" } }, "@babel/compat-data": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.0.tgz", - "integrity": "sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "dev": true }, "@babel/core": { @@ -11580,230 +11695,233 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.5" } }, "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==" }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, "requires": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-transforms": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", - "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.19.4", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" } }, "@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", - "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "requires": { - "@babel/types": "^7.19.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "requires": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/helpers": { @@ -11818,188 +11936,46 @@ } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "requires": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", - "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==" + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", - "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", - "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } + "requires": {} }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", @@ -12057,12 +12033,30 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-json-strings": { @@ -12146,353 +12140,521 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, - "@babel/plugin-transform-arrow-functions": { + "@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" } }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", + "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", - "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-transform-classes": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", - "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.19.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" } }, "@babel/plugin-transform-destructuring": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", - "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" } }, "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", + "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.1" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/preset-env": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", - "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", + "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.19.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -12502,51 +12664,68 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.19.4", - "@babel/plugin-transform-classes": "^7.19.0", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.19.4", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.0", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -12556,6 +12735,12 @@ "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz", @@ -12565,13 +12750,13 @@ } }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/traverse": { @@ -12592,12 +12777,12 @@ } }, "@babel/types": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", - "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" } }, @@ -12855,12 +13040,13 @@ "integrity": "sha512-xmNP30v/RnkJ2z1HcuEo7YfcLJJa+FdWTwgNldXHOlMeMbl/ESpsGkWL2sULrhYurz64L0JpfwEdi/cHcmyuZQ==" }, "@nextcloud/l10n": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-2.1.0.tgz", - "integrity": "sha512-rToqXwxcsDTcijvSdgyJAKuOuW7XggDYH00/t3GN5HzO1lNNnVtOj7cc5WmiTknciM+En2oVSMFIUPs6HehjVQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@nextcloud/l10n/-/l10n-2.2.0.tgz", + "integrity": "sha512-UAM2NJcl/NR46MANSF7Gr7q8/Up672zRyGrxLpN3k4URNmWQM9upkbRME+1K3T29wPrUyOIbQu710ZjvZafqFA==", "requires": { - "@nextcloud/router": "^2.0.0", - "dompurify": "^2.4.1", + "@nextcloud/router": "^2.1.2", + "@nextcloud/typings": "^1.7.0", + "dompurify": "^3.0.3", "escape-html": "^1.0.3", "node-gettext": "^3.0.0" } @@ -12883,10 +13069,11 @@ } }, "@nextcloud/router": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@nextcloud/router/-/router-2.0.0.tgz", - "integrity": "sha512-GyHYNYrYAZRBGD5VxRggcbahdJ/zCkXb8+ERVfuaosT+nHMjJSmenTD6Uyct41qGm0p3Az4xRCXGyZGJM0NEUQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@nextcloud/router/-/router-2.1.2.tgz", + "integrity": "sha512-Jj5fgjeHT1vVIgOyUGOeHfwk2KgaO77QGfqZAT6GWXvpAsN0mkqwljkg4FkHrQRouYqCE4VnJ5o8/w0DAN89tA==", "requires": { + "@nextcloud/typings": "^1.0.0", "core-js": "^3.6.4" } }, @@ -12899,17 +13086,19 @@ } }, "@nextcloud/typings": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.6.0.tgz", - "integrity": "sha512-5uIsteFy9Z9/ZaNGE8w8SDgJp+FK8/LeRLgfnakC2pU8eNKTPlQfkiYR163oEI5Xu5YzwdIzf6/roIXdNinhrw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@nextcloud/typings/-/typings-1.7.0.tgz", + "integrity": "sha512-fK1i09FYTfSUBdXswyiCr8ng5MwdWjEWOF7hRvNvq5i+XFUSmGjSsRmpQZFM2AONroHqGGQBkvQqpONUshFBJQ==", "requires": { - "@types/jquery": "2.0.60" + "@types/jquery": "3.5.16", + "vue": "^2.7.14", + "vue-router": "<4" } }, "@nextcloud/vue": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-7.11.2.tgz", - "integrity": "sha512-BK/+IC312Q6iUKrg+aycxPF5w14LT8qcnpqH3iFGykx6V+yyqEAHIwXTqXwnnQ5QzcC5WPtErSxsLN3ydknFzA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-7.12.1.tgz", + "integrity": "sha512-j3wWgUkGEbq6cEdgdiG8VWWgqEd8YvKhK64o1eKbLP3OlVkcrqXfiRmPm1SafPVureGr/Yp/Ty/zIZnHBjxlNg==", "requires": { "@floating-ui/dom": "^1.1.0", "@nextcloud/auth": "^2.0.0", @@ -12931,7 +13120,7 @@ "emoji-mart-vue-fast": "^12.0.1", "escape-html": "^1.0.3", "floating-vue": "^1.0.0-beta.19", - "focus-trap": "^7.1.0", + "focus-trap": "^7.4.3", "hammerjs": "^2.0.8", "linkify-string": "^4.0.0", "md5": "^2.3.0", @@ -12996,21 +13185,20 @@ "requires": {} }, "@playwright/test": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.33.0.tgz", - "integrity": "sha512-YunBa2mE7Hq4CfPkGzQRK916a4tuZoVx/EpLjeWlTVOnD4S2+fdaQZE0LJkbfhN5FTSKNLdcl7MoT5XB37bTkg==", + "version": "1.36.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.36.1.tgz", + "integrity": "sha512-YK7yGWK0N3C2QInPU6iaf/L3N95dlGdbsezLya4n0ZCh3IL7VgPGxC6Gnznh9ApWdOmkJeleT2kMTcWPRZvzqg==", "dev": true, "requires": { "@types/node": "*", "fsevents": "2.3.2", - "playwright-core": "1.33.0" + "playwright-core": "1.36.1" } }, "@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", - "peer": true + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, "@rollup/plugin-babel": { "version": "5.3.1", @@ -13066,20 +13254,18 @@ } }, "@scaleflex/icons": { - "version": "1.0.0-beta.80", - "resolved": "https://registry.npmjs.org/@scaleflex/icons/-/icons-1.0.0-beta.80.tgz", - "integrity": "sha512-QUPwFDmFNlE3GZ5kcr5Fp3KzetcG4FQyOYO76vPi9v0h/+gr9NKfLDhx5AI72XHZrVdp42I4Mu17jGREQy2Q6A==", - "peer": true, + "version": "1.0.0-beta.99", + "resolved": "https://registry.npmjs.org/@scaleflex/icons/-/icons-1.0.0-beta.99.tgz", + "integrity": "sha512-LXFn0/7jbtCxv90yO7dt7Mx/n9f5Fvl9bovf8HABFX1Y2V4Iw+egdnm6LGt+fbl61lq7Ea8aFCr/YKH4jmGpvw==", "requires": {} }, "@scaleflex/ui": { - "version": "1.0.0-beta.80", - "resolved": "https://registry.npmjs.org/@scaleflex/ui/-/ui-1.0.0-beta.80.tgz", - "integrity": "sha512-h4IiShDPcg4F+dLb7Fw6Xk1KmMWTm/NJzJaSeQ84ysCFquFrDgJKs5WKQ0yn/pdnCQfdec4801ACVpybqmA8UQ==", - "peer": true, + "version": "1.0.0-beta.99", + "resolved": "https://registry.npmjs.org/@scaleflex/ui/-/ui-1.0.0-beta.99.tgz", + "integrity": "sha512-PglsU+2xHI7MYiLS9BNbPacXTbsc+Nvj7/p0fQ37E9mhJiM2/rRKCJG4YiyDQRpnc9VjyOIF12GDvHAmiFnrCQ==", "requires": { "@popperjs/core": "^2.6.0", - "@scaleflex/icons": "^1.0.0-beta.80", + "@scaleflex/icons": "^1.0.0-beta.99", "lodash.merge": "^4.6.2", "lodash.throttle": "^4.1.1", "polished": "^3.6.6", @@ -13240,9 +13426,12 @@ } }, "@types/jquery": { - "version": "2.0.60", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.60.tgz", - "integrity": "sha512-izi6OBEVrAwaHiqWITjOPBbVtcKZKAXTocJqPZsAKA2lvmbpFEyPSAxgcqmisbiMYj9EvrooUEPLHQeQqVMWAg==" + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", + "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", + "requires": { + "@types/sizzle": "*" + } }, "@types/json-schema": { "version": "7.0.11", @@ -13259,6 +13448,12 @@ "@types/geojson": "*" } }, + "@types/luxon": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.1.tgz", + "integrity": "sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA==", + "dev": true + }, "@types/mdast": { "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", @@ -13363,6 +13558,11 @@ "@types/node": "*" } }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + }, "@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -13374,9 +13574,9 @@ } }, "@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", "dev": true }, "@types/unist": { @@ -13963,33 +14163,33 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.4.2" } }, "babel-plugin-styled-components": { @@ -14224,14 +14424,14 @@ } }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" } }, "buffer": { @@ -14296,9 +14496,9 @@ "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" }, "caniuse-lite": { - "version": "1.0.30001486", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz", - "integrity": "sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==" + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==" }, "chalk": { "version": "2.4.2", @@ -14558,12 +14758,12 @@ "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==" }, "core-js-compat": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", - "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", "dev": true, "requires": { - "browserslist": "^4.21.4" + "browserslist": "^4.21.9" } }, "core-util-is": { @@ -14767,9 +14967,9 @@ } }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, "default-gateway": { @@ -14841,8 +15041,7 @@ "detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "peer": true + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, "diff": { "version": "5.1.0", @@ -14894,9 +15093,9 @@ "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==" }, "dompurify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.3.tgz", - "integrity": "sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.5.tgz", + "integrity": "sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==" }, "ee-first": { "version": "1.1.1", @@ -14906,18 +15105,18 @@ "peer": true }, "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, "requires": { "jake": "^10.8.5" } }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "version": "1.4.468", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.468.tgz", + "integrity": "sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==" }, "elliptic": { "version": "6.5.4", @@ -15258,9 +15457,9 @@ } }, "filerobot-image-editor": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/filerobot-image-editor/-/filerobot-image-editor-4.4.0.tgz", - "integrity": "sha512-B1lqUtPT0iEn+sguJ+XOrTLnjf5adBA60aNW6DPAwGCtHj4NjIHEGT7RMVeleCt9vsHwnTYEZVih0DvLcsVRcw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/filerobot-image-editor/-/filerobot-image-editor-4.5.1.tgz", + "integrity": "sha512-5I1IjfEv4dCfFEub11itje8DAupcverqHZtnEBrKEIYOeg+dUM51agwTKznvo+01tEL7FMem5lklMvQBW2Ebiw==", "requires": { "@babel/runtime": "^7.17.2", "react": "18.2.0", @@ -15390,20 +15589,19 @@ } }, "focus-lock": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.11.3.tgz", - "integrity": "sha512-4n0pYcPTa/uI7Q66BZna61nRT7lDhnuJ9PJr6wiDjx4uStg491ks41y7uOG+s0umaaa+hulNKSldU9aTg9/yVg==", - "peer": true, + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.11.6.tgz", + "integrity": "sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==", "requires": { "tslib": "^2.0.3" } }, "focus-trap": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.1.0.tgz", - "integrity": "sha512-CuJvwUBfJCWcU6fc4xr3UwMF5vWnox4isXAixCwrPzCsPKOQjP9T+nTlYT2t+vOmQL8MOQ16eim99XhjQHAuiQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz", + "integrity": "sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==", "requires": { - "tabbable": "^6.0.1" + "tabbable": "^6.2.0" } }, "follow-redirects": { @@ -15897,9 +16095,9 @@ "requires": {} }, "idb": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.0.tgz", - "integrity": "sha512-Wsk07aAxDsntgYJY4h0knZJuTxM73eQ4reRAO+Z1liOh8eMCJ/MoDS8fCui1vGT9mnjtl1sOu3I2i/W1swPYZg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", "dev": true }, "ieee754": { @@ -16249,15 +16447,15 @@ } }, "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "requires": { "async": "^3.2.3", "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "dependencies": { "ansi-styles": { @@ -16438,10 +16636,9 @@ "peer": true }, "konva": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/konva/-/konva-8.3.2.tgz", - "integrity": "sha512-vWi51qFTFkEIp+HxMek1eH1fA1zFo0DPD3uqUez+v2gy/IfZF2eLu9DcEj7Exk532hxfHJi/2oZ0GQYHlhg/dQ==", - "peer": true + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/konva/-/konva-8.4.3.tgz", + "integrity": "sha512-ARqdgAbdNIougRlOKvkQwHlGhXPRBV4KvhCP+qoPpGoVQwwiJe4Hkdu4HHdRPb9rGUp04jDTAxBzEwBsE272pg==" }, "layerr": { "version": "0.1.2", @@ -16449,9 +16646,9 @@ "integrity": "sha512-ob5kTd9H3S4GOG2nVXyQhOu9O8nBgP555XxWPkJI0tR0JeRilfyTp8WtPdIJHLXBmHMSdEq5+KMxiYABeScsIQ==" }, "leaflet": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.3.tgz", - "integrity": "sha512-iB2cR9vAkDOu5l3HAay2obcUHZ7xwUBBjph8+PGtmW/2lYhbLizWtG7nTeYht36WfOslixQF9D/uSIzhZgGMfQ==" + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" }, "leaflet-edgebuffer": { "version": "1.0.6", @@ -16516,8 +16713,7 @@ "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "peer": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "lodash.sortby": { "version": "4.7.0", @@ -17140,9 +17336,9 @@ } }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "normalize-path": { "version": "3.0.0", @@ -17164,8 +17360,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "peer": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { "version": "1.12.2", @@ -17375,9 +17570,9 @@ } }, "photoswipe": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-5.3.7.tgz", - "integrity": "sha512-zsyLsTTLFrj0XR1m4/hO7qNooboFKUrDy+Zt5i2d6qjFPAtBjzaj/Xtydso4uxzcXpcqbTmyxDibb3BcSISseg==" + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-5.3.8.tgz", + "integrity": "sha512-4vTzOQt8GP4Chsm0s+8j2xDtVHAEN252PxrU12A1zXauNn0zD5HRHgjALKO2GKTyBnTnOrJUOxbV8LTrFIMrYw==" }, "picocolors": { "version": "1.0.0", @@ -17408,18 +17603,18 @@ } }, "playwright": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.33.0.tgz", - "integrity": "sha512-+zzU3V2TslRX2ETBRgQKsKytYBkJeLZ2xzUj4JohnZnxQnivoUvOvNbRBYWSYykQTO0Y4zb8NwZTYFUO+EpPBQ==", + "version": "1.36.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.36.1.tgz", + "integrity": "sha512-2ZqHpD0U0COKR8bqR3W5IkyIAAM0mT9FgGJB9xWCI1qAUkqLxJskA1ueeQOTH2Qfz3+oxdwwf2EzdOX+RkZmmQ==", "dev": true, "requires": { - "playwright-core": "1.33.0" + "playwright-core": "1.36.1" } }, "playwright-core": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.33.0.tgz", - "integrity": "sha512-aizyPE1Cj62vAECdph1iaMILpT0WUDCq3E6rW6I+dleSbBoGbktvJtzS6VHkZ4DKNEOG9qJpiom/ZxO+S15LAw==", + "version": "1.36.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.36.1.tgz", + "integrity": "sha512-7+tmPuMcEW4xeCL9cp9KxmYpQYHKkyjwoXRnoeTowaeNat8PoBMk/HwCYhqkH2fRkshfKEOiVus/IhID2Pg8kg==", "dev": true }, "plyr": { @@ -17438,7 +17633,6 @@ "version": "3.7.2", "resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz", "integrity": "sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==", - "peer": true, "requires": { "@babel/runtime": "^7.12.5" } @@ -17539,7 +17733,6 @@ "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "peer": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -17549,8 +17742,7 @@ "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "peer": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" } } }, @@ -17699,7 +17891,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", - "peer": true, "requires": { "@babel/runtime": "^7.12.13" } @@ -17714,27 +17905,24 @@ } }, "react-filerobot-image-editor": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/react-filerobot-image-editor/-/react-filerobot-image-editor-4.3.7.tgz", - "integrity": "sha512-StUOsbiNj9ssSXgVOZUeNPwd3p8U0hJFVVwUgcb57EZSW2uWjt0cRn74hqhs9S/qJwqjF+D4ve4X3JY/gW4j1A==", - "peer": true, + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/react-filerobot-image-editor/-/react-filerobot-image-editor-4.5.1.tgz", + "integrity": "sha512-QI9UM3iPK59hRxn4aPvSVSw77mP6sPD/smOKf2pJDXINNmZxANOYgB57iipB0glBGQDHjkqWBt2xHV8O/KkV1w==", "requires": { "@babel/runtime": "^7.17.2", - "@scaleflex/icons": "1.0.0-beta.80", - "@scaleflex/ui": "1.0.0-beta.80", - "konva": "8.3.2", - "prop-types": "15.7.2", - "react-konva": "18.1.1" + "@scaleflex/icons": "1.0.0-beta.99", + "@scaleflex/ui": "1.0.0-beta.99", + "konva": "8.4.3", + "prop-types": "15.7.2" } }, "react-focus-lock": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.9.1.tgz", - "integrity": "sha512-pSWOQrUmiKLkffPO6BpMXN7SNKXMsuOakl652IBuALAu1esk+IcpJyM+ALcYzPTTFz1rD0R54aB9A4HuP5t1Wg==", - "peer": true, + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.9.5.tgz", + "integrity": "sha512-h6vrdgUbsH2HeD5I7I3Cx1PPrmwGuKYICS+kB9m+32X/9xHRrAbxgvaBpG7BFBN9h3tO+C3qX1QAVESmi4CiIA==", "requires": { "@babel/runtime": "^7.0.0", - "focus-lock": "^0.11.2", + "focus-lock": "^0.11.6", "prop-types": "^15.6.2", "react-clientside-effect": "^1.2.6", "use-callback-ref": "^1.3.0", @@ -17846,9 +18034,9 @@ "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -17865,25 +18053,19 @@ } }, "regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, "regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -18225,9 +18407,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "send": { @@ -18613,18 +18795,18 @@ } }, "string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" } }, @@ -18739,9 +18921,9 @@ "dev": true }, "tabbable": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.0.1.tgz", - "integrity": "sha512-SYJSIgeyXW7EuX1ytdneO5e8jip42oHWg9xl/o3oTYhmXusZVgiA+VlPvjIN+kHii9v90AmzTZEBcsEvuAY+TA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "tapable": { "version": "2.2.1", @@ -18882,9 +19064,9 @@ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" }, "ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", + "integrity": "sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -18995,9 +19177,9 @@ } }, "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", "dev": true }, "unbox-primitive": { @@ -19028,9 +19210,9 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { @@ -19150,9 +19332,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -19210,7 +19392,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "peer": true, "requires": { "tslib": "^2.0.0" } @@ -19219,7 +19400,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "peer": true, "requires": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -19795,28 +19975,28 @@ "peer": true }, "workbox-background-sync": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", - "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz", + "integrity": "sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-broadcast-update": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", - "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.0.0.tgz", + "integrity": "sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==", "dev": true, "requires": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-build": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", - "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.0.0.tgz", + "integrity": "sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==", "dev": true, "requires": { "@apideck/better-ajv-errors": "^0.3.1", @@ -19841,21 +20021,21 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "6.5.4", - "workbox-broadcast-update": "6.5.4", - "workbox-cacheable-response": "6.5.4", - "workbox-core": "6.5.4", - "workbox-expiration": "6.5.4", - "workbox-google-analytics": "6.5.4", - "workbox-navigation-preload": "6.5.4", - "workbox-precaching": "6.5.4", - "workbox-range-requests": "6.5.4", - "workbox-recipes": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4", - "workbox-streams": "6.5.4", - "workbox-sw": "6.5.4", - "workbox-window": "6.5.4" + "workbox-background-sync": "7.0.0", + "workbox-broadcast-update": "7.0.0", + "workbox-cacheable-response": "7.0.0", + "workbox-core": "7.0.0", + "workbox-expiration": "7.0.0", + "workbox-google-analytics": "7.0.0", + "workbox-navigation-preload": "7.0.0", + "workbox-precaching": "7.0.0", + "workbox-range-requests": "7.0.0", + "workbox-recipes": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0", + "workbox-streams": "7.0.0", + "workbox-sw": "7.0.0", + "workbox-window": "7.0.0" }, "dependencies": { "@apideck/better-ajv-errors": { @@ -19870,9 +20050,9 @@ } }, "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -19899,130 +20079,130 @@ } }, "workbox-cacheable-response": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", - "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.0.0.tgz", + "integrity": "sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==", "dev": true, "requires": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-core": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", - "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.0.0.tgz", + "integrity": "sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==", "dev": true }, "workbox-expiration": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", - "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.0.0.tgz", + "integrity": "sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==", "dev": true, "requires": { "idb": "^7.0.1", - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-google-analytics": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", - "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.0.0.tgz", + "integrity": "sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==", "dev": true, "requires": { - "workbox-background-sync": "6.5.4", - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" + "workbox-background-sync": "7.0.0", + "workbox-core": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0" } }, "workbox-navigation-preload": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", - "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.0.0.tgz", + "integrity": "sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==", "dev": true, "requires": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-precaching": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", - "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.0.0.tgz", + "integrity": "sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==", "dev": true, "requires": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" + "workbox-core": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0" } }, "workbox-range-requests": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", - "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.0.0.tgz", + "integrity": "sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==", "dev": true, "requires": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-recipes": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", - "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.0.0.tgz", + "integrity": "sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==", "dev": true, "requires": { - "workbox-cacheable-response": "6.5.4", - "workbox-core": "6.5.4", - "workbox-expiration": "6.5.4", - "workbox-precaching": "6.5.4", - "workbox-routing": "6.5.4", - "workbox-strategies": "6.5.4" + "workbox-cacheable-response": "7.0.0", + "workbox-core": "7.0.0", + "workbox-expiration": "7.0.0", + "workbox-precaching": "7.0.0", + "workbox-routing": "7.0.0", + "workbox-strategies": "7.0.0" } }, "workbox-routing": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", - "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.0.0.tgz", + "integrity": "sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==", "dev": true, "requires": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-strategies": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", - "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.0.0.tgz", + "integrity": "sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==", "dev": true, "requires": { - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "workbox-streams": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", - "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.0.0.tgz", + "integrity": "sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==", "dev": true, "requires": { - "workbox-core": "6.5.4", - "workbox-routing": "6.5.4" + "workbox-core": "7.0.0", + "workbox-routing": "7.0.0" } }, "workbox-sw": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", - "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.0.0.tgz", + "integrity": "sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==", "dev": true }, "workbox-webpack-plugin": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", - "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-7.0.0.tgz", + "integrity": "sha512-R1ZzCHPfzeJjLK2/TpKUhxSQ3fFDCxlWxgRhhSjMQLz3G2MlBnyw/XeYb34e7SGgSv0qG22zEhMIzjMNqNeKbw==", "dev": true, "requires": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", "upath": "^1.2.0", "webpack-sources": "^1.4.3", - "workbox-build": "6.5.4" + "workbox-build": "7.0.0" }, "dependencies": { "webpack-sources": { @@ -20038,13 +20218,13 @@ } }, "workbox-window": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", - "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.0.0.tgz", + "integrity": "sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==", "dev": true, "requires": { "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.4" + "workbox-core": "7.0.0" } }, "wrappy": { diff --git a/package.json b/package.json index b9dd9107..b688fe2f 100644 --- a/package.json +++ b/package.json @@ -30,21 +30,22 @@ "e2e": "playwright test" }, "dependencies": { - "@nextcloud/l10n": "^2.1.0", + "@nextcloud/l10n": "^2.2.0", "@nextcloud/paths": "^2.1.0", "@nextcloud/sharing": "^0.1.0", - "@nextcloud/vue": "7.11.2", + "@nextcloud/vue": "7.12.1", "camelcase": "^7.0.1", - "filerobot-image-editor": "^4.4.0", + "filerobot-image-editor": "^4.5.1", "fuse.js": "^6.6.2", "hammerjs": "^2.0.8", "justified-layout": "^4.1.0", - "leaflet": "^1.9.3", + "leaflet": "^1.9.4", "leaflet-edgebuffer": "^1.0.6", "luxon": "^3.3.0", "path-posix": "^1.0.0", - "photoswipe": "^5.3.7", + "photoswipe": "^5.3.8", "plyr": "^3.7.8", + "react-filerobot-image-editor": "^4.5.1", "reflect-metadata": "^0.1.13", "video.js": "^8.3.0", "vue": "^2.7.14", @@ -64,13 +65,14 @@ "devDependencies": { "@nextcloud/browserslist-config": "^2.3.0", "@nextcloud/webpack-vue-config": "^5.5.1", - "@playwright/test": "^1.33.0", + "@playwright/test": "^1.36.1", "@types/hammerjs": "^2.0.41", + "@types/luxon": "^3.3.1", "@types/url-parse": "^1.4.8", "@types/videojs-contrib-quality-levels": "^2.0.1", - "playwright": "^1.33.0", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", - "workbox-webpack-plugin": "^6.5.4" + "playwright": "^1.36.1", + "ts-loader": "^9.4.4", + "typescript": "^5.1.6", + "workbox-webpack-plugin": "^7.0.0" } } diff --git a/patches/filerobot-loadImage.js b/patches/filerobot-loadImage.js deleted file mode 100644 index dc602774..00000000 --- a/patches/filerobot-loadImage.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Filerobot has issues with loading images from HTML elements. - * We need to wait for the react object to be created properly before loading. - * This is a monkey patch to select an existing image using a global, but after wait. - */ - -import loadImageOriginal from './loadImageOriginal.js'; - -var loadImage = function() { - const image = globalThis._fileRobotOverrideImage; - if (image) { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(image); - }, 0); - }); - } - - return loadImageOriginal.apply(this, arguments); -} - -export default loadImage; \ No newline at end of file diff --git a/patches/filerobot-patch.sh b/patches/filerobot-patch.sh deleted file mode 100644 index 21fb6914..00000000 --- a/patches/filerobot-patch.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -target="node_modules/react-filerobot-image-editor/lib/utils" - -if [ -f $target/loadImageOriginal.js ]; then - echo "Filerobot is already patched, copying patch again ..." -else - if [ ! -f $target/loadImage.js ]; then - echo "Filerobot not installed or patch outdated" - exit 1 - fi - - echo "Patching filerobot-image-editor ..." - cp $target/loadImage.js $target/loadImageOriginal.js -fi - -cp patches/filerobot-loadImage.js $target/loadImage.js \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index d0609870..b7a4cd2d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,9 +6,10 @@ v-else :class="{ 'remove-gap': removeOuterGap, + 'has-nav': showNavigation, }" > - + @@ -52,6 +55,7 @@ + @@ -69,8 +73,10 @@ import { generateUrl } from '@nextcloud/router'; import { translate as t } from '@nextcloud/l10n'; import { emit, subscribe } from '@nextcloud/event-bus'; -import * as utils from './services/Utils'; +import * as utils from './services/utils'; import * as nativex from './native'; +import router from './router'; +import staticConfig from './services/static-config'; import UserConfig from './mixins/UserConfig'; import Timeline from './components/Timeline.vue'; import Settings from './components/Settings.vue'; @@ -79,6 +85,7 @@ import Viewer from './components/viewer/Viewer.vue'; import Metadata from './components/Metadata.vue'; import Sidebar from './components/Sidebar.vue'; import EditMetadataModal from './components/modal/EditMetadataModal.vue'; +import AddToAlbumModal from './components/modal/AddToAlbumModal.vue'; import NodeShareModal from './components/modal/NodeShareModal.vue'; import ShareModal from './components/modal/ShareModal.vue'; import MobileNav from './components/MobileNav.vue'; @@ -118,6 +125,7 @@ export default defineComponent({ Viewer, Sidebar, EditMetadataModal, + AddToAlbumModal, NodeShareModal, ShareModal, MobileNav, @@ -160,7 +168,7 @@ export default defineComponent({ return false; } - if (this.config.facerecognition_enabled) { + if (this.config.facerecognition_installed) { return t('memories', 'People (Recognize)'); } @@ -180,11 +188,7 @@ export default defineComponent({ }, isFirstStart(): boolean { - return ( - this.config.timeline_path === 'EMPTY' && - this.$route.name !== 'folder-share' && - this.$route.name !== 'album-share' - ); + return this.config.timeline_path === 'EMPTY' && !this.routeIsPublic && !this.$route.query.noinit; }, showAlbums(): boolean { @@ -197,18 +201,18 @@ export default defineComponent({ showNavigation(): boolean { if (this.native) { - return ['timeline', 'explore', 'albums'].includes(this.$route.name ?? ''); + return this.routeIsBase || this.routeIsExplore || (this.routeIsAlbums && !this.$route.params.name); } - return !this.$route.name?.endsWith('-share'); + return !this.routeIsPublic; }, hasMobileHeader(): boolean { - return this.native && this.showNavigation && this.$route.name === 'timeline'; + return this.native && this.showNavigation && this.routeIsBase; }, removeNavGap(): boolean { - return this.$route.name === 'map'; + return this.routeIsMap; }, }, @@ -258,12 +262,15 @@ export default defineComponent({ mount(el, fileInfo, context) { this.metadataComponent?.$destroy?.(); - this.metadataComponent = new Vue(Metadata as any); + this.metadataComponent = new Vue({ + render: (h) => h(Metadata), + router, + }); this.metadataComponent.$mount(el); - this.metadataComponent.update(Number(fileInfo.id)); + this.metadataComponent.$children[0].update(Number(fileInfo.id)); }, update(fileInfo) { - this.metadataComponent.update(Number(fileInfo.id)); + this.metadataComponent.$children[0].update(Number(fileInfo.id)); }, destroy() { this.metadataComponent?.$destroy?.(); @@ -276,10 +283,25 @@ export default defineComponent({ if (this.native) { document.documentElement.classList.add('native'); } + + // Close navigation by default if init is disabled + // This is the case for public folder/album shares + if (this.$route.query.noinit) { + emit('toggle-navigation', { open: false }); + } }, async beforeMount() { if ('serviceWorker' in navigator) { + // Check if dev instance + if (window.location.hostname === 'localhost') { + console.warn('Service Worker is not enabled on localhost.'); + return; + } + + // Get the config before loading + const previousVersion = staticConfig.getSync('version'); + // Use the window load event to keep the page load performant window.addEventListener('load', async () => { try { @@ -288,6 +310,12 @@ export default defineComponent({ scope: generateUrl('/apps/memories'), }); console.log('SW registered: ', registration); + + // Check for updates + const currentVersion = await staticConfig.get('version'); + if (previousVersion !== currentVersion) { + registration.update(); + } } catch (error) { console.error('SW registration failed: ', error); } @@ -371,8 +399,9 @@ export default defineComponent({ }, linkClick() { - const nav: any = this.$refs.nav; - if (globalThis.windowInnerWidth <= 1024) nav?.toggleNavigation(false); + if (globalThis.windowInnerWidth <= 1024) { + emit('toggle-navigation', { open: false }); + } }, doRouteChecks() { @@ -418,11 +447,13 @@ export default defineComponent({ @media (max-width: 768px) { .outer { padding: 0px; - - // Get rid of padding on img-outer (1px on mobile) - // Also need to make sure we don't end up with a scrollbar -- see below - margin-left: -1px; - width: calc(100% + 3px); // 1px extra here because ... reasons } } + +ul.app-navigation__settings { + height: auto !important; + overflow: hidden !important; + padding-top: 0 !important; + flex: 0 0 auto; +} diff --git a/src/admin.ts b/src/admin.ts new file mode 100644 index 00000000..5f03d124 --- /dev/null +++ b/src/admin.ts @@ -0,0 +1,11 @@ +import './bootstrap'; + +import Vue from 'vue'; +import App from './components/admin/AdminMain.vue'; + +globalThis.mode = 'admin'; + +export default new Vue({ + el: '#vue-content', + render: (h) => h(App), +}); diff --git a/src/assets/banner.svg b/src/assets/banner.svg index 8ac2b2bb..199a7d72 100644 --- a/src/assets/banner.svg +++ b/src/assets/banner.svg @@ -1,84 +1,16 @@ - + - - - - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/src/bootstrap.ts b/src/bootstrap.ts new file mode 100644 index 00000000..d42358a6 --- /dev/null +++ b/src/bootstrap.ts @@ -0,0 +1,101 @@ +// Library imports +import 'reflect-metadata'; +import Vue from 'vue'; +import { generateFilePath } from '@nextcloud/router'; +import { getRequestToken } from '@nextcloud/auth'; + +// Global components +import XImg from './components/frame/XImg.vue'; +import XLoadingIcon from './components/XLoadingIcon.vue'; +import GlobalMixin from './mixins/GlobalMixin'; +import VueVirtualScroller from 'vue-virtual-scroller'; + +// Locals +import router from './router'; + +// Types +import type { Route } from 'vue-router'; +import type { IPhoto, IRow } from './types'; +import type PlyrType from 'plyr'; +import type videojsType from 'video.js'; + +// CSS for components +import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'; + +// Global CSS +import './styles/global.scss'; + +// Global exposed variables +declare global { + var mode: 'admin' | 'user'; + + var vueroute: () => Route; + var OC: Nextcloud.v24.OC; + var OCP: Nextcloud.v24.OCP; + + var editMetadata: (photos: IPhoto[], sections?: number[]) => void; + var updateAlbums: (photos: IPhoto[]) => void; + var sharePhoto: (photo: IPhoto) => void; + var shareNodeLink: (path: string, immediate?: boolean) => Promise; + var showSettings: () => void; + + var mSidebar: { + open: (photo: IPhoto | number, filename?: string, forceNative?: boolean) => void; + close: () => void; + setTab: (tab: string) => void; + getWidth: () => number; + }; + + var mViewer: { + open: (anchorPhoto: IPhoto, rows: IRow[]) => Promise; + openStatic(photo: IPhoto, list: IPhoto[], thumbSize?: 256 | 512): Promise; + close: () => void; + isOpen: () => boolean; + }; + + var currentViewerPhoto: IPhoto; + + var windowInnerWidth: number; // cache + var windowInnerHeight: number; // cache + + var __webpack_nonce__: string; + var __webpack_public_path__: string; + + var vidjs: typeof videojsType; + var Plyr: typeof PlyrType; + var videoClientId: string; + var videoClientIdPersistent: string; +} + +// Allow global access to the router +globalThis.vueroute = () => router.currentRoute; + +// Cache these for better performance +globalThis.windowInnerWidth = window.innerWidth; +globalThis.windowInnerHeight = window.innerHeight; + +// CSP config for webpack dynamic chunk loading +__webpack_nonce__ = window.btoa(getRequestToken() ?? ''); + +// Correct the root of the app for chunk loading +// OC.linkTo matches the apps folders +// OC.generateUrl ensure the index.php (or not) +// We do not want the index.php since we're loading files +__webpack_public_path__ = generateFilePath('memories', '', 'js/'); + +// Generate client id for this instance +// Does not need to be cryptographically secure +const getClientId = (): string => Math.random().toString(36).substring(2, 15).padEnd(12, '0'); +globalThis.videoClientId = getClientId(); +globalThis.videoClientIdPersistent = localStorage.getItem('videoClientIdPersistent') ?? getClientId(); +localStorage.setItem('videoClientIdPersistent', globalThis.videoClientIdPersistent); + +// Turn on virtual keyboard support +if ('virtualKeyboard' in navigator) { + (navigator.virtualKeyboard).overlaysContent = true; +} + +Vue.mixin(GlobalMixin as any); +Vue.use(VueVirtualScroller); +Vue.component('XImg', XImg); +Vue.component('XLoadingIcon', XLoadingIcon); diff --git a/src/components/ClusterGrid.vue b/src/components/ClusterGrid.vue index d7b6ec49..e9ff971c 100644 --- a/src/components/ClusterGrid.vue +++ b/src/components/ClusterGrid.vue @@ -4,18 +4,22 @@ type-field="cluster_type" key-field="cluster_id" class="grid-recycler hide-scrollbar-mobile" - :class="{ empty: !items.length }" + :class="classList" :items="clusters" :skipHover="true" :buffer="400" - :itemSize="itemSize" + :itemSize="height" + :itemSecondarySize="width" :gridItems="gridItems" - :updateInterval="100" @resize="resize" > + +
- +
@@ -25,6 +29,7 @@ import { defineComponent } from 'vue'; import Cluster from './frame/Cluster.vue'; import type { ICluster } from '../types'; +import * as utils from '../services/utils'; export default defineComponent({ name: 'ClusterGrid', @@ -42,6 +47,10 @@ export default defineComponent({ type: Number, default: 180, }, + minCols: { + type: Number, + default: 3, + }, link: { type: Boolean, default: true, @@ -53,8 +62,7 @@ export default defineComponent({ }, data: () => ({ - itemSize: 200, - gridItems: 5, + recyclerWidth: 300, }), mounted() { @@ -62,6 +70,42 @@ export default defineComponent({ }, computed: { + /** Height of the cluster */ + height() { + if (this.routeIsAlbums) { + // album view: add gap for text below album + // 4px extra on mobile for mark#2147915 + return this.width + (utils.isMobile() ? 46 : 42); + } + + return this.width; + }, + + /** Width of the cluster */ + width() { + return utils.round(this.recyclerWidth / this.gridItems, 2); + }, + + /** Number of items horizontally */ + gridItems() { + // Restrict the number of columns between minCols and the size cap + return Math.max(Math.floor(this.recyclerWidth / this.maxSize), this.minCols); + }, + + /** Classes list on object */ + classList() { + return { + empty: !this.items.length, + 'cluster--album': this.routeIsAlbums, + }; + }, + + /** Whether the clusters should show counters */ + counters() { + return !this.routeIsAlbums; + }, + + /** List of clusters to display */ clusters() { const items = [...this.items]; @@ -91,9 +135,7 @@ export default defineComponent({ }, resize() { - const w = (this.$refs.recycler).$el.clientWidth; - this.gridItems = Math.max(Math.floor(w / this.maxSize), 3); - this.itemSize = Math.floor(w / this.gridItems); + this.recyclerWidth = (this.$refs.recycler).$el.clientWidth; }, }, }); @@ -101,15 +143,23 @@ export default defineComponent({ diff --git a/src/components/ClusterHList.vue b/src/components/ClusterHList.vue index 3fec2926..43c5ffd9 100644 --- a/src/components/ClusterHList.vue +++ b/src/components/ClusterHList.vue @@ -8,8 +8,13 @@
-
- +
+
@@ -41,6 +46,18 @@ export default defineComponent({ required: false, }, }, + + methods: { + circle(cluster: ICluster): boolean { + switch (cluster.cluster_type) { + case 'recognize': + case 'facerecognition': + return true; + default: + return false; + } + }, + }, }); @@ -49,7 +66,7 @@ export default defineComponent({ width: 100%; > .title { - padding: 4px 18px 8px 16px; + padding: 4px 16px 8px 14px; display: flex; > .name { @@ -69,14 +86,23 @@ export default defineComponent({ width: 100%; overflow-x: auto; white-space: nowrap; - padding: 0 8px; + padding: 0 6px; > .item { display: inline-block; margin: 0 2px; - height: 120px; + width: 120px; aspect-ratio: 1; position: relative; + + &.cluster--circle { + height: 156px; + aspect-ratio: unset; + + @media (max-width: 768px) { + height: 152px; // font-size: 0.9em; + } + } } } } diff --git a/src/components/ClusterView.vue b/src/components/ClusterView.vue index f7dd8589..45946afb 100644 --- a/src/components/ClusterView.vue +++ b/src/components/ClusterView.vue @@ -1,12 +1,16 @@