diff --git a/Dockerfile b/Dockerfile index 14d5576e..bf14bbb7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,11 @@ FROM debian:bullseye-slim # libpng-dev libjpeg-dev libfreetype6-dev gnupg zip libzip-dev libjpeg62-turbo-dev libonig-dev libxslt-dev libwebp-dev vim \ # && apt-get -y autoremove && apt-get clean autoclean && rm -rf /var/lib/apt/lists/* -RUN apt-get update && apt-get -y install apt-transport-https lsb-release ca-certificates curl zip mariadb-client \ +RUN apt-get update && apt-get -y install apt-transport-https lsb-release ca-certificates curl zip mariadb-client postgresql-client \ && curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg \ && sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' \ && apt-get update && apt-get upgrade -y \ - && apt-get install -y apache2 php8.1 php8.1-fpm php8.1-opcache php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-bcmath php8.1-intl php8.1-zip php8.1-xsl php8.1-sqlite3 php8.1-mysql gpg sudo \ + && apt-get install -y apache2 php8.1 php8.1-fpm php8.1-opcache php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-bcmath php8.1-intl php8.1-zip php8.1-xsl php8.1-sqlite3 php8.1-mysql php8.1-pgsql gpg sudo \ && apt-get -y autoremove && apt-get clean autoclean && rm -rf /var/lib/apt/lists/*; ENV APACHE_CONFDIR /etc/apache2 diff --git a/Dockerfile-frankenphp b/Dockerfile-frankenphp index a42cd1ed..211bdb27 100644 --- a/Dockerfile-frankenphp +++ b/Dockerfile-frankenphp @@ -1,6 +1,6 @@ FROM dunglas/frankenphp:1-php8.3 AS frankenphp_upstream -RUN apt-get update && apt-get -y install curl zip mariadb-client file acl git gettext ca-certificates gnupg \ +RUN apt-get update && apt-get -y install curl zip mariadb-client postgresql-client file acl git gettext ca-certificates gnupg \ && apt-get -y autoremove && apt-get clean autoclean && rm -rf /var/lib/apt/lists/*; # Create workdir and set permissions if directory does not exists @@ -17,6 +17,7 @@ RUN set -eux; \ zip \ pdo_mysql \ pdo_sqlite \ + pdo_pgsql \ gd \ bcmath \ xsl \ diff --git a/VERSION b/VERSION index b50dd27d..61ce01b3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.13.1 +1.13.2 diff --git a/composer.json b/composer.json index 3c889437..d1c69d46 100644 --- a/composer.json +++ b/composer.json @@ -42,6 +42,7 @@ "nyholm/psr7": "^1.1", "ocramius/proxy-manager": "2.2.*", "omines/datatables-bundle": "^0.8.0", + "paragonie/sodium_compat": "^1.21", "part-db/label-fonts": "^1.0", "php-translation/symfony-bundle": "^0.14.0", "phpdocumentor/reflection-docblock": "^5.2", diff --git a/composer.lock b/composer.lock index 4371669d..4d5704ee 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,11 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], +<<<<<<< HEAD "content-hash": "77f5b396d02bf268c6933cd7dd54bacb", +======= + "content-hash": "2b28082ea8c6d8963cbf7eec953ca0d0", +>>>>>>> master "packages": [ { "name": "amphp/amp", @@ -3710,6 +3714,7 @@ }, { "name": "guzzlehttp/guzzle", +<<<<<<< HEAD "version": "7.9.1", "source": { "type": "git", @@ -3720,6 +3725,18 @@ "type": "zip", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a629e5b69db96eb4939c1b34114130077dd4c6fc", "reference": "a629e5b69db96eb4939c1b34114130077dd4c6fc", +======= + "version": "7.9.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", +>>>>>>> master "shasum": "" }, "require": { @@ -3816,7 +3833,11 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", +<<<<<<< HEAD "source": "https://github.com/guzzle/guzzle/tree/7.9.1" +======= + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" +>>>>>>> master }, "funding": [ { @@ -3832,7 +3853,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-07-19T16:19:57+00:00" +======= + "time": "2024-07-24T11:22:20+00:00" +>>>>>>> master }, { "name": "guzzlehttp/promises", @@ -8142,16 +8167,16 @@ }, { "name": "s9e/text-formatter", - "version": "2.17.3", + "version": "2.18.0", "source": { "type": "git", "url": "https://github.com/s9e/TextFormatter.git", - "reference": "9adf2557f13e45c4524d0dc9886cab22822e337a" + "reference": "4970711f25d94306b4835b723b9cc5010170ea37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/9adf2557f13e45c4524d0dc9886cab22822e337a", - "reference": "9adf2557f13e45c4524d0dc9886cab22822e337a", + "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/4970711f25d94306b4835b723b9cc5010170ea37", + "reference": "4970711f25d94306b4835b723b9cc5010170ea37", "shasum": "" }, "require": { @@ -8179,7 +8204,7 @@ }, "type": "library", "extra": { - "version": "2.17.3" + "version": "2.18.0" }, "autoload": { "psr-4": { @@ -8211,9 +8236,9 @@ ], "support": { "issues": "https://github.com/s9e/TextFormatter/issues", - "source": "https://github.com/s9e/TextFormatter/tree/2.17.3" + "source": "https://github.com/s9e/TextFormatter/tree/2.18.0" }, - "time": "2024-05-26T00:00:08+00:00" + "time": "2024-07-24T14:50:52+00:00" }, { "name": "sabberworm/php-css-parser", @@ -8995,16 +9020,16 @@ }, { "name": "symfony/cache", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "287142df5579ce223c485b3872df3efae8390984" + "reference": "6702d2d777260e6ff3451fee2d7d78ab5f715cdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/287142df5579ce223c485b3872df3efae8390984", - "reference": "287142df5579ce223c485b3872df3efae8390984", + "url": "https://api.github.com/repos/symfony/cache/zipball/6702d2d777260e6ff3451fee2d7d78ab5f715cdc", + "reference": "6702d2d777260e6ff3451fee2d7d78ab5f715cdc", "shasum": "" }, "require": { @@ -9071,7 +9096,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.8" + "source": "https://github.com/symfony/cache/tree/v6.4.10" }, "funding": [ { @@ -9087,7 +9112,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-17T06:05:49+00:00" }, { "name": "symfony/cache-contracts", @@ -9316,6 +9341,7 @@ }, { "name": "symfony/console", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -9326,6 +9352,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/console/zipball/6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/504974cbe43d05f83b201d6498c206f16fc0cdbc", + "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc", +>>>>>>> master "shasum": "" }, "require": { @@ -9390,7 +9428,11 @@ "terminal" ], "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/console/tree/v6.4.9" +======= + "source": "https://github.com/symfony/console/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -9406,7 +9448,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-28T09:49:33+00:00" +======= + "time": "2024-07-26T12:30:32+00:00" +>>>>>>> master }, { "name": "symfony/css-selector", @@ -9475,6 +9521,7 @@ }, { "name": "symfony/dependency-injection", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -9485,6 +9532,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a4df9dfe5da2d177af6643610c7bee2cb76a9f5e", "reference": "a4df9dfe5da2d177af6643610c7bee2cb76a9f5e", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", + "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", +>>>>>>> master "shasum": "" }, "require": { @@ -9536,7 +9595,11 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/dependency-injection/tree/v6.4.9" +======= + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -9552,7 +9615,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-19T10:45:28+00:00" +======= + "time": "2024-07-26T07:32:07+00:00" +>>>>>>> master }, { "name": "symfony/deprecation-contracts", @@ -9623,6 +9690,7 @@ }, { "name": "symfony/doctrine-bridge", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -9633,6 +9701,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/64d024fcb3aa613fe163ecae4aaa836dd6d1c5cd", "reference": "64d024fcb3aa613fe163ecae4aaa836dd6d1c5cd", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "0de9662441bce4670506d0c371cc819a9d0a7607" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/0de9662441bce4670506d0c371cc819a9d0a7607", + "reference": "0de9662441bce4670506d0c371cc819a9d0a7607", +>>>>>>> master "shasum": "" }, "require": { @@ -9711,7 +9791,11 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.9" +======= + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -9727,20 +9811,24 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-28T09:25:38+00:00" +======= + "time": "2024-07-26T12:30:32+00:00" +>>>>>>> master }, { "name": "symfony/dotenv", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "55aefa0029adff89ecffdb560820e945c7983f06" + "reference": "2ae0c84cc9be0dc1eeb86016970b63c764d8472e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/55aefa0029adff89ecffdb560820e945c7983f06", - "reference": "55aefa0029adff89ecffdb560820e945c7983f06", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/2ae0c84cc9be0dc1eeb86016970b63c764d8472e", + "reference": "2ae0c84cc9be0dc1eeb86016970b63c764d8472e", "shasum": "" }, "require": { @@ -9785,7 +9873,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.4.8" + "source": "https://github.com/symfony/dotenv/tree/v6.4.10" }, "funding": [ { @@ -9801,10 +9889,11 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-09T18:29:35+00:00" }, { "name": "symfony/error-handler", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -9815,6 +9904,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/error-handler/zipball/c9b7cc075b3ab484239855622ca05cb0b99c13ec", "reference": "c9b7cc075b3ab484239855622ca05cb0b99c13ec", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", +>>>>>>> master "shasum": "" }, "require": { @@ -9860,7 +9961,11 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/error-handler/tree/v6.4.9" +======= + "source": "https://github.com/symfony/error-handler/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -9876,7 +9981,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-21T16:04:15+00:00" +======= + "time": "2024-07-26T12:30:32+00:00" +>>>>>>> master }, { "name": "symfony/event-dispatcher", @@ -10166,16 +10275,16 @@ }, { "name": "symfony/finder", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "3ef977a43883215d560a2cecb82ec8e62131471c" + "reference": "af29198d87112bebdd397bd7735fbd115997824c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c", - "reference": "3ef977a43883215d560a2cecb82ec8e62131471c", + "url": "https://api.github.com/repos/symfony/finder/zipball/af29198d87112bebdd397bd7735fbd115997824c", + "reference": "af29198d87112bebdd397bd7735fbd115997824c", "shasum": "" }, "require": { @@ -10210,7 +10319,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.8" + "source": "https://github.com/symfony/finder/tree/v6.4.10" }, "funding": [ { @@ -10226,7 +10335,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-24T07:06:38+00:00" }, { "name": "symfony/flex", @@ -10295,16 +10404,16 @@ }, { "name": "symfony/form", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "196ebc738e59bec2bbf1f49c24cc221b47f77f5d" + "reference": "67dd6a3fd986cae9a90a8c2c526464c06f525863" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/196ebc738e59bec2bbf1f49c24cc221b47f77f5d", - "reference": "196ebc738e59bec2bbf1f49c24cc221b47f77f5d", + "url": "https://api.github.com/repos/symfony/form/zipball/67dd6a3fd986cae9a90a8c2c526464c06f525863", + "reference": "67dd6a3fd986cae9a90a8c2c526464c06f525863", "shasum": "" }, "require": { @@ -10372,7 +10481,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.4.8" + "source": "https://github.com/symfony/form/tree/v6.4.10" }, "funding": [ { @@ -10388,10 +10497,11 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-19T08:21:35+00:00" }, { "name": "symfony/framework-bundle", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -10402,6 +10512,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/c1d1cb0e508e11639283e1e6f8918eef0fa524bd", "reference": "c1d1cb0e508e11639283e1e6f8918eef0fa524bd", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "6cbdb0cc3ddbb63499262cd3036882b08ee2690b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/6cbdb0cc3ddbb63499262cd3036882b08ee2690b", + "reference": "6cbdb0cc3ddbb63499262cd3036882b08ee2690b", +>>>>>>> master "shasum": "" }, "require": { @@ -10520,7 +10642,11 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/framework-bundle/tree/v6.4.9" +======= + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -10536,6 +10662,7 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-26T08:32:27+00:00" }, { @@ -10550,6 +10677,22 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/http-client/zipball/6e9db0025db565bcf8f1d46ed734b549e51e6045", "reference": "6e9db0025db565bcf8f1d46ed734b549e51e6045", +======= + "time": "2024-07-26T13:24:20+00:00" + }, + { + "name": "symfony/http-client", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded", + "reference": "b5e498f763e0bf5eed8dcd946e50a3b3f71d4ded", +>>>>>>> master "shasum": "" }, "require": { @@ -10613,7 +10756,11 @@ "http" ], "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/http-client/tree/v6.4.9" +======= + "source": "https://github.com/symfony/http-client/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -10629,7 +10776,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-28T07:59:05+00:00" +======= + "time": "2024-07-15T09:26:24+00:00" +>>>>>>> master }, { "name": "symfony/http-client-contracts", @@ -10711,16 +10862,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947" + "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/117f1f20a7ade7bcea28b861fb79160a21a1e37b", + "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b", "shasum": "" }, "require": { @@ -10768,7 +10919,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.10" }, "funding": [ { @@ -10784,10 +10935,11 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:36:27+00:00" }, { "name": "symfony/http-kernel", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -10798,6 +10950,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/cc4a9bec6e1bdd2405f40277a68a6ed1bb393005", "reference": "cc4a9bec6e1bdd2405f40277a68a6ed1bb393005", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "147e0daf618d7575b5007055340d09aece5cf068" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/147e0daf618d7575b5007055340d09aece5cf068", + "reference": "147e0daf618d7575b5007055340d09aece5cf068", +>>>>>>> master "shasum": "" }, "require": { @@ -10882,7 +11046,11 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/http-kernel/tree/v6.4.9" +======= + "source": "https://github.com/symfony/http-kernel/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -10898,7 +11066,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-28T11:48:06+00:00" +======= + "time": "2024-07-26T14:52:04+00:00" +>>>>>>> master }, { "name": "symfony/intl", @@ -12457,6 +12629,7 @@ }, { "name": "symfony/property-info", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -12467,6 +12640,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/property-info/zipball/1a0357ed93a6ab09482435a7818defaa85cad69b", "reference": "1a0357ed93a6ab09482435a7818defaa85cad69b", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "edaea9dcc723cb4a0ab6a00f7d6f8c07c0d8ff77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/edaea9dcc723cb4a0ab6a00f7d6f8c07c0d8ff77", + "reference": "edaea9dcc723cb4a0ab6a00f7d6f8c07c0d8ff77", +>>>>>>> master "shasum": "" }, "require": { @@ -12520,7 +12705,11 @@ "validator" ], "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/property-info/tree/v6.4.9" +======= + "source": "https://github.com/symfony/property-info/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -12536,7 +12725,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-21T16:04:15+00:00" +======= + "time": "2024-07-26T07:32:07+00:00" +>>>>>>> master }, { "name": "symfony/proxy-manager-bridge", @@ -12607,6 +12800,7 @@ }, { "name": "symfony/psr-http-message-bridge", +<<<<<<< HEAD "version": "v6.4.8", "source": { "type": "git", @@ -12617,6 +12811,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/23a162bd446b93948a2c2f6909d80ad06195be10", "reference": "23a162bd446b93948a2c2f6909d80ad06195be10", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "89a24648d73e4eee30893b0da16abc454a65c53b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/89a24648d73e4eee30893b0da16abc454a65c53b", + "reference": "89a24648d73e4eee30893b0da16abc454a65c53b", +>>>>>>> master "shasum": "" }, "require": { @@ -12670,7 +12876,11 @@ "psr-7" ], "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.8" +======= + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -12686,7 +12896,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-05-31T14:51:39+00:00" +======= + "time": "2024-07-15T09:36:38+00:00" +>>>>>>> master }, { "name": "symfony/rate-limiter", @@ -12761,16 +12975,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" + "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "url": "https://api.github.com/repos/symfony/routing/zipball/aad19fe10753ba842f0d653a8db819c4b3affa87", + "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87", "shasum": "" }, "require": { @@ -12824,7 +13038,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.8" + "source": "https://github.com/symfony/routing/tree/v6.4.10" }, "funding": [ { @@ -12840,7 +13054,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-15T09:26:24+00:00" }, { "name": "symfony/runtime", @@ -12923,6 +13137,7 @@ }, { "name": "symfony/security-bundle", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -12933,6 +13148,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/security-bundle/zipball/adc34df2fe487a13d4410a237202422294c917b2", "reference": "adc34df2fe487a13d4410a237202422294c917b2", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "50007f4f76632741b62fa9604c5f65807f268b72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/50007f4f76632741b62fa9604c5f65807f268b72", + "reference": "50007f4f76632741b62fa9604c5f65807f268b72", +>>>>>>> master "shasum": "" }, "require": { @@ -13015,7 +13242,11 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/security-bundle/tree/v6.4.9" +======= + "source": "https://github.com/symfony/security-bundle/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -13031,6 +13262,7 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-28T10:06:43+00:00" }, { @@ -13045,6 +13277,22 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/security-core/zipball/2d58f4c3ff50b1b4eef0a333c2b1e3eef46807f4", "reference": "2d58f4c3ff50b1b4eef0a333c2b1e3eef46807f4", +======= + "time": "2024-07-17T10:49:44+00:00" + }, + { + "name": "symfony/security-core", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "432dec55da108c471adcf58c351af01372a52164" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/432dec55da108c471adcf58c351af01372a52164", + "reference": "432dec55da108c471adcf58c351af01372a52164", +>>>>>>> master "shasum": "" }, "require": { @@ -13101,7 +13349,11 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/security-core/tree/v6.4.9" +======= + "source": "https://github.com/symfony/security-core/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -13117,7 +13369,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-28T07:59:05+00:00" +======= + "time": "2024-07-26T12:30:32+00:00" +>>>>>>> master }, { "name": "symfony/security-csrf", @@ -13277,6 +13533,7 @@ }, { "name": "symfony/serializer", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -13287,6 +13544,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/serializer/zipball/56ce31d19127e79647ac53387c7555bdcd5730ce", "reference": "56ce31d19127e79647ac53387c7555bdcd5730ce", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/9a67fcf320561e96f94d62bbe0e169ac534a5718", + "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718", +>>>>>>> master "shasum": "" }, "require": { @@ -13355,7 +13624,11 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/serializer/tree/v6.4.9" +======= + "source": "https://github.com/symfony/serializer/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -13371,7 +13644,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-28T07:59:05+00:00" +======= + "time": "2024-07-26T13:13:26+00:00" +>>>>>>> master }, { "name": "symfony/service-contracts", @@ -13589,16 +13866,16 @@ }, { "name": "symfony/string", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d" + "reference": "ccf9b30251719567bfd46494138327522b9a9446" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/a147c0f826c4a1f3afb763ab8e009e37c877a44d", - "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d", + "url": "https://api.github.com/repos/symfony/string/zipball/ccf9b30251719567bfd46494138327522b9a9446", + "reference": "ccf9b30251719567bfd46494138327522b9a9446", "shasum": "" }, "require": { @@ -13655,7 +13932,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.8" + "source": "https://github.com/symfony/string/tree/v6.4.10" }, "funding": [ { @@ -13671,20 +13948,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-22T10:21:14+00:00" }, { "name": "symfony/translation", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a" + "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a", + "url": "https://api.github.com/repos/symfony/translation/zipball/94041203f8ac200ae9e7c6a18fa6137814ccecc9", + "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9", "shasum": "" }, "require": { @@ -13750,7 +14027,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.8" + "source": "https://github.com/symfony/translation/tree/v6.4.10" }, "funding": [ { @@ -13766,7 +14043,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/translation-contracts", @@ -14288,6 +14565,7 @@ }, { "name": "symfony/validator", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -14298,6 +14576,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/validator/zipball/ee0a4d6a327a963aee094f730da238f7ea18cb01", "reference": "ee0a4d6a327a963aee094f730da238f7ea18cb01", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", + "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", +>>>>>>> master "shasum": "" }, "require": { @@ -14365,7 +14655,11 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/validator/tree/v6.4.9" +======= + "source": "https://github.com/symfony/validator/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -14381,6 +14675,7 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-22T07:42:41+00:00" }, { @@ -14395,6 +14690,22 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c31566e4ca944271cc8d8ac6887cbf31b8c6a172", "reference": "c31566e4ca944271cc8d8ac6887cbf31b8c6a172", +======= + "time": "2024-07-26T12:30:32+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a71cc3374f5fb9759da1961d28c452373b343dd4", + "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4", +>>>>>>> master "shasum": "" }, "require": { @@ -14450,7 +14761,11 @@ "dump" ], "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/var-dumper/tree/v6.4.9" +======= + "source": "https://github.com/symfony/var-dumper/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -14466,7 +14781,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-27T13:23:14+00:00" +======= + "time": "2024-07-26T12:30:32+00:00" +>>>>>>> master }, { "name": "symfony/var-exporter", @@ -16533,6 +16852,7 @@ }, { "name": "phpstan/phpstan", +<<<<<<< HEAD "version": "1.11.7", "source": { "type": "git", @@ -16543,6 +16863,18 @@ "type": "zip", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", +======= + "version": "1.11.8", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec", + "reference": "6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec", +>>>>>>> master "shasum": "" }, "require": { @@ -16587,7 +16919,11 @@ "type": "github" } ], +<<<<<<< HEAD "time": "2024-07-06T11:17:41+00:00" +======= + "time": "2024-07-24T07:01:22+00:00" +>>>>>>> master }, { "name": "phpstan/phpstan-doctrine", @@ -17206,6 +17542,7 @@ }, { "name": "rector/rector", +<<<<<<< HEAD "version": "1.2.1", "source": { "type": "git", @@ -17216,6 +17553,18 @@ "type": "zip", "url": "https://api.github.com/repos/rectorphp/rector/zipball/b38a3eed3ce2046f40c001255e2fec9d2746bacf", "reference": "b38a3eed3ce2046f40c001255e2fec9d2746bacf", +======= + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/rectorphp/rector.git", + "reference": "044e6364017882d1e346da8690eeabc154da5495" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/044e6364017882d1e346da8690eeabc154da5495", + "reference": "044e6364017882d1e346da8690eeabc154da5495", +>>>>>>> master "shasum": "" }, "require": { @@ -17253,7 +17602,11 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", +<<<<<<< HEAD "source": "https://github.com/rectorphp/rector/tree/1.2.1" +======= + "source": "https://github.com/rectorphp/rector/tree/1.2.2" +>>>>>>> master }, "funding": [ { @@ -17261,7 +17614,11 @@ "type": "github" } ], +<<<<<<< HEAD "time": "2024-07-16T00:22:54+00:00" +======= + "time": "2024-07-25T07:44:34+00:00" +>>>>>>> master }, { "name": "roave/security-advisories", @@ -17269,12 +17626,21 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", +<<<<<<< HEAD "reference": "d8b471f69a97a8929180bbface097ac2b4e70d05" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d8b471f69a97a8929180bbface097ac2b4e70d05", "reference": "d8b471f69a97a8929180bbface097ac2b4e70d05", +======= + "reference": "0816697098823477b1a95d07d2b94bf3cfe1a2f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/0816697098823477b1a95d07d2b94bf3cfe1a2f8", + "reference": "0816697098823477b1a95d07d2b94bf3cfe1a2f8", +>>>>>>> master "shasum": "" }, "conflict": { @@ -17317,7 +17683,7 @@ "awesome-support/awesome-support": "<=6.0.7", "aws/aws-sdk-php": "<3.288.1", "azuracast/azuracast": "<0.18.3", - "backdrop/backdrop": "<1.24.2", + "backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2", "backpack/crud": "<3.4.9", "bacula-web/bacula-web": "<8.0.0.0-RC2-dev", "badaso/core": "<2.7", @@ -17382,7 +17748,7 @@ "contao/managed-edition": "<=1.5", "corveda/phpsandbox": "<1.3.5", "cosenary/instagram": "<=2.3", - "craftcms/cms": "<4.6.2", + "craftcms/cms": "<4.6.2|>=5.0.0.0-beta1,<=5.2.2", "croogo/croogo": "<4", "cuyz/valinor": "<0.12", "czproject/git-php": "<4.0.3", @@ -17480,7 +17846,7 @@ "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1,<1.3.5", "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5", - "friendsofsymfony1/symfony1": ">=1.1,<1.15.19", + "friendsofsymfony1/symfony1": ">=1.1,<1.5.19", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3", @@ -17686,6 +18052,7 @@ "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", + "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3", "oxid-esales/oxideshop-ce": "<4.5", "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1", "packbackbooks/lti-1-3-php-library": "<5", @@ -18072,7 +18439,11 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-07-19T23:04:29+00:00" +======= + "time": "2024-07-26T15:04:59+00:00" +>>>>>>> master }, { "name": "sebastian/cli-parser", @@ -19340,6 +19711,7 @@ }, { "name": "symfony/phpunit-bridge", +<<<<<<< HEAD "version": "v6.4.9", "source": { "type": "git", @@ -19350,6 +19722,18 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/6e03e4db9696e0cfcda6537177c2c03dc49c45c8", "reference": "6e03e4db9696e0cfcda6537177c2c03dc49c45c8", +======= + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "ad510515b11ba5291fdd59b25d70227bfac2d7ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/ad510515b11ba5291fdd59b25d70227bfac2d7ab", + "reference": "ad510515b11ba5291fdd59b25d70227bfac2d7ab", +>>>>>>> master "shasum": "" }, "require": { @@ -19402,7 +19786,11 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { +<<<<<<< HEAD "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.9" +======= + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.10" +>>>>>>> master }, "funding": [ { @@ -19418,20 +19806,24 @@ "type": "tidelift" } ], +<<<<<<< HEAD "time": "2024-06-21T16:04:15+00:00" +======= + "time": "2024-07-26T12:30:32+00:00" +>>>>>>> master }, { "name": "symfony/web-profiler-bundle", - "version": "v6.4.8", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "bcc806d1360991de3bf78ac5ca0202db85de9bfc" + "reference": "370c9f1e3567cd4670d44311838e37d16182c3a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/bcc806d1360991de3bf78ac5ca0202db85de9bfc", - "reference": "bcc806d1360991de3bf78ac5ca0202db85de9bfc", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/370c9f1e3567cd4670d44311838e37d16182c3a7", + "reference": "370c9f1e3567cd4670d44311838e37d16182c3a7", "shasum": "" }, "require": { @@ -19484,7 +19876,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.8" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.10" }, "funding": [ { @@ -19500,10 +19892,11 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-07-19T07:26:48+00:00" }, { "name": "symplify/easy-coding-standard", +<<<<<<< HEAD "version": "12.3.2", "source": { "type": "git", @@ -19514,6 +19907,18 @@ "type": "zip", "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/cc6f11357b457e9dbf2fd14f6ee47fd266d50e73", "reference": "cc6f11357b457e9dbf2fd14f6ee47fd266d50e73", +======= + "version": "12.3.3", + "source": { + "type": "git", + "url": "https://github.com/easy-coding-standard/easy-coding-standard.git", + "reference": "aa3194c311ca170154ebce43b57117553eb6e7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/aa3194c311ca170154ebce43b57117553eb6e7ed", + "reference": "aa3194c311ca170154ebce43b57117553eb6e7ed", +>>>>>>> master "shasum": "" }, "require": { @@ -19549,7 +19954,11 @@ ], "support": { "issues": "https://github.com/easy-coding-standard/easy-coding-standard/issues", +<<<<<<< HEAD "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.3.2" +======= + "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.3.3" +>>>>>>> master }, "funding": [ { @@ -19561,7 +19970,11 @@ "type": "github" } ], +<<<<<<< HEAD "time": "2024-07-21T18:39:09+00:00" +======= + "time": "2024-07-24T22:04:42+00:00" +>>>>>>> master }, { "name": "theseer/tokenizer", diff --git a/migrations/Version20240606203053.php b/migrations/Version20240606203053.php index 9692e146..83370ad6 100644 --- a/migrations/Version20240606203053.php +++ b/migrations/Version20240606203053.php @@ -343,6 +343,7 @@ final class Version20240606203053 extends AbstractMultiPlatformMigration impleme $this->addSql('ALTER TABLE webauthn_keys CHANGE public_key_credential_id public_key_credential_id LONGTEXT NOT NULL, CHANGE transports transports LONGTEXT NOT NULL, CHANGE trust_path trust_path JSON NOT NULL, CHANGE aaguid aaguid TINYTEXT NOT NULL, CHANGE credential_public_key credential_public_key LONGTEXT NOT NULL, CHANGE other_ui other_ui LONGTEXT DEFAULT NULL, CHANGE last_time_used last_time_used DATETIME DEFAULT NULL'); // Add the natural sort emulation function to the database (based on this stackoverflow: https://stackoverflow.com/questions/153633/natural-sort-in-mysql/58154535#58154535) + //This version here is wrong, and will be replaced by the correct version in the next migration (we need to use nowdoc instead of heredoc, otherwise the slashes will be wrongly escaped!!) $this->addSql(<<addSql('DROP FUNCTION IF EXISTS NatSortKey'); + + //The difference to the original function is the correct length of the suf variable and correct escaping + //We now use heredoc syntax to avoid escaping issues with the \ (which resulted in "range out of order in character class"). + $this->addSql(<<<'EOD' + CREATE DEFINER=CURRENT_USER FUNCTION `NatSortKey`(`s` VARCHAR(1000) CHARSET utf8mb4, `n` INT) RETURNS varchar(3500) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci + DETERMINISTIC + SQL SECURITY INVOKER + BEGIN + /**** + Converts numbers in the input string s into a format such that sorting results in a nat-sort. + Numbers of up to 359 digits (before the decimal point, if one is present) are supported. Sort results are undefined if the input string contains numbers longer than this. + For n>0, only the first n numbers in the input string will be converted for nat-sort (so strings that differ only after the first n numbers will not nat-sort amongst themselves). + Total sort-ordering is preserved, i.e. if s1!=s2, then NatSortKey(s1,n)!=NatSortKey(s2,n), for any given n. + Numbers may contain ',' as a thousands separator, and '.' as a decimal point. To reverse these (as appropriate for some European locales), the code would require modification. + Numbers preceded by '+' sort with numbers not preceded with either a '+' or '-' sign. + Negative numbers (preceded with '-') sort before positive numbers, but are sorted in order of ascending absolute value (so -7 sorts BEFORE -1001). + Numbers with leading zeros sort after the same number with no (or fewer) leading zeros. + Decimal-part-only numbers (like .75) are recognised, provided the decimal point is not immediately preceded by either another '.', or by a letter-type character. + Numbers with thousand separators sort after the same number without them. + Thousand separators are only recognised in numbers with no leading zeros that don't immediately follow a ',', and when they format the number correctly. + (When not recognised as a thousand separator, a ',' will instead be treated as separating two distinct numbers). + Version-number-like sequences consisting of 3 or more numbers separated by '.' are treated as distinct entities, and each component number will be nat-sorted. + The entire entity will sort after any number beginning with the first component (so e.g. 10.2.1 sorts after both 10 and 10.995, but before 11) + Note that The first number component in an entity like this is also permitted to contain thousand separators. + + To achieve this, numbers within the input string are prefixed and suffixed according to the following format: + - The number is prefixed by a 2-digit base-36 number representing its length, excluding leading zeros. If there is a decimal point, this length only includes the integer part of the number. + - A 3-character suffix is appended after the number (after the decimals if present). + - The first character is a space, or a '+' sign if the number was preceded by '+'. Any preceding '+' sign is also removed from the front of the number. + - This is followed by a 2-digit base-36 number that encodes the number of leading zeros and whether the number was expressed in comma-separated form (e.g. 1,000,000.25 vs 1000000.25) + - The value of this 2-digit number is: (number of leading zeros)*2 + (1 if comma-separated, 0 otherwise) + - For version number sequences, each component number has the prefix in front of it, and the separating dots are removed. + Then there is a single suffix that consists of a ' ' or '+' character, followed by a pair base-36 digits for each number component in the sequence. + + e.g. here is how some simple sample strings get converted: + 'Foo055' --> 'Foo0255 02' + 'Absolute zero is around -273 centigrade' --> 'Absolute zero is around -03273 00 centigrade' + 'The $1,000,000 prize' --> 'The $071000000 01 prize' + '+99.74 degrees' --> '0299.74+00 degrees' + 'I have 0 apples' --> 'I have 00 02 apples' + '.5 is the same value as 0000.5000' --> '00.5 00 is the same value as 00.5000 08' + 'MariaDB v10.3.0018' --> 'MariaDB v02100130218 000004' + + The restriction to numbers of up to 359 digits comes from the fact that the first character of the base-36 prefix MUST be a decimal digit, and so the highest permitted prefix value is '9Z' or 359 decimal. + The code could be modified to handle longer numbers by increasing the size of (both) the prefix and suffix. + A higher base could also be used (by replacing CONV() with a custom function), provided that the collation you are using sorts the "digits" of the base in the correct order, starting with 0123456789. + However, while the maximum number length may be increased this way, note that the technique this function uses is NOT applicable where strings may contain numbers of unlimited length. + + The function definition does not specify the charset or collation to be used for string-type parameters or variables: The default database charset & collation at the time the function is defined will be used. + This is to make the function code more portable. However, there are some important restrictions: + + - Collation is important here only when comparing (or storing) the output value from this function, but it MUST order the characters " +0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" in that order for the natural sort to work. + This is true for most collations, but not all of them, e.g. in Lithuanian 'Y' comes before 'J' (according to Wikipedia). + To adapt the function to work with such collations, replace CONV() in the function code with a custom function that emits "digits" above 9 that are characters ordered according to the collation in use. + + - For efficiency, the function code uses LENGTH() rather than CHAR_LENGTH() to measure the length of strings that consist only of digits 0-9, '.', and ',' characters. + This works for any single-byte charset, as well as any charset that maps standard ASCII characters to single bytes (such as utf8 or utf8mb4). + If using a charset that maps these characters to multiple bytes (such as, e.g. utf16 or utf32), you MUST replace all instances of LENGTH() in the function definition with CHAR_LENGTH() + + Length of the output: + + Each number converted adds 5 characters (2 prefix + 3 suffix) to the length of the string. n is the maximum count of numbers to convert; + This parameter is provided as a means to limit the maximum output length (to input length + 5*n). + If you do not require the total-ordering property, you could edit the code to use suffixes of 1 character (space or plus) only; this would reduce the maximum output length for any given n. + Since a string of length L has at most ((L+1) DIV 2) individual numbers in it (every 2nd character a digit), for n<=0 the maximum output length is (inputlength + 5*((inputlength+1) DIV 2)) + So for the current input length of 100, the maximum output length is 350. + If changing the input length, the output length must be modified according to the above formula. The DECLARE statements for x,y,r, and suf must also be modified, as the code comments indicate. + ****/ + + DECLARE x,y varchar(1000); # need to be same length as input s + DECLARE r varchar(3500) DEFAULT ''; # return value: needs to be same length as return type + DECLARE suf varchar(1001); # suffix for a number or version string. Must be (((inputlength+1) DIV 2)*2 + 1) chars to support version strings (e.g. '1.2.33.5'), though it's usually just 3 chars. (Max version string e.g. 1.2. ... .5 has ((length of input + 1) DIV 2) numeric components) + DECLARE i,j,k int UNSIGNED; + IF n<=0 THEN SET n := -1; END IF; # n<=0 means "process all numbers" + LOOP + SET i := REGEXP_INSTR(s,'\\d'); # find position of next digit + IF i=0 OR n=0 THEN RETURN CONCAT(r,s); END IF; # no more numbers to process -> we're done + SET n := n-1, suf := ' '; + IF i>1 THEN + IF SUBSTRING(s,i-1,1)='.' AND (i=2 OR SUBSTRING(s,i-2,1) RLIKE '[^.\\p{L}\\p{N}\\p{M}\\x{608}\\x{200C}\\x{200D}\\x{2100}-\\x{214F}\\x{24B6}-\\x{24E9}\\x{1F130}-\\x{1F149}\\x{1F150}-\\x{1F169}\\x{1F170}-\\x{1F189}]') AND (SUBSTRING(s,i) NOT RLIKE '^\\d++\\.\\d') THEN SET i:=i-1; END IF; # Allow decimal number (but not version string) to begin with a '.', provided preceding char is neither another '.', nor a member of the unicode character classes: "Alphabetic", "Letter", "Block=Letterlike Symbols" "Number", "Mark", "Join_Control" + IF i>1 AND SUBSTRING(s,i-1,1)='+' THEN SET suf := '+', j := i-1; ELSE SET j := i; END IF; # move any preceding '+' into the suffix, so equal numbers with and without preceding "+" signs sort together + SET r := CONCAT(r,SUBSTRING(s,1,j-1)); SET s = SUBSTRING(s,i); # add everything before the number to r and strip it from the start of s; preceding '+' is dropped (not included in either r or s) + END IF; + SET x := REGEXP_SUBSTR(s,IF(SUBSTRING(s,1,1) IN ('0','.') OR (SUBSTRING(r,-1)=',' AND suf=' '),'^\\d*+(?:\\.\\d++)*','^(?:[1-9]\\d{0,2}(?:,\\d{3}(?!\\d))++|\\d++)(?:\\.\\d++)*+')); # capture the number + following decimals (including multiple consecutive '.' sequences) + SET s := SUBSTRING(s,CHAR_LENGTH(x)+1); # NOTE: CHAR_LENGTH() can be safely used instead of CHAR_LENGTH() here & below PROVIDED we're using a charset that represents digits, ',' and '.' characters using single bytes (e.g. latin1, utf8) + SET i := INSTR(x,'.'); + IF i=0 THEN SET y := ''; ELSE SET y := SUBSTRING(x,i); SET x := SUBSTRING(x,1,i-1); END IF; # move any following decimals into y + SET i := CHAR_LENGTH(x); + SET x := REPLACE(x,',',''); + SET j := CHAR_LENGTH(x); + SET x := TRIM(LEADING '0' FROM x); # strip leading zeros + SET k := CHAR_LENGTH(x); + SET suf := CONCAT(suf,LPAD(CONV(LEAST((j-k)*2,1294) + IF(i=j,0,1),10,36),2,'0')); # (j-k)*2 + IF(i=j,0,1) = (count of leading zeros)*2 + (1 if there are thousands-separators, 0 otherwise) Note the first term is bounded to <= base-36 'ZY' as it must fit within 2 characters + SET i := LOCATE('.',y,2); + IF i=0 THEN + SET r := CONCAT(r,LPAD(CONV(LEAST(k,359),10,36),2,'0'),x,y,suf); # k = count of digits in number, bounded to be <= '9Z' base-36 + ELSE # encode a version number (like 3.12.707, etc) + SET r := CONCAT(r,LPAD(CONV(LEAST(k,359),10,36),2,'0'),x); # k = count of digits in number, bounded to be <= '9Z' base-36 + WHILE CHAR_LENGTH(y)>0 AND n!=0 DO + IF i=0 THEN SET x := SUBSTRING(y,2); SET y := ''; ELSE SET x := SUBSTRING(y,2,i-2); SET y := SUBSTRING(y,i); SET i := LOCATE('.',y,2); END IF; + SET j := CHAR_LENGTH(x); + SET x := TRIM(LEADING '0' FROM x); # strip leading zeros + SET k := CHAR_LENGTH(x); + SET r := CONCAT(r,LPAD(CONV(LEAST(k,359),10,36),2,'0'),x); # k = count of digits in number, bounded to be <= '9Z' base-36 + SET suf := CONCAT(suf,LPAD(CONV(LEAST((j-k)*2,1294),10,36),2,'0')); # (j-k)*2 = (count of leading zeros)*2, bounded to fit within 2 base-36 digits + SET n := n-1; + END WHILE; + SET r := CONCAT(r,y,suf); + END IF; + END LOOP; + END + EOD + ); + } + + public function mySQLDown(Schema $schema): void + { + //Not needed + } + + public function sqLiteUp(Schema $schema): void + { + //Not needed + } + + public function sqLiteDown(Schema $schema): void + { + //Not needed + } + + public function postgreSQLUp(Schema $schema): void + { + //Not needed + } + + public function postgreSQLDown(Schema $schema): void + { + //Not needed + } +} diff --git a/phpstan.dist.neon b/phpstan.dist.neon index 646d29e6..feccdcf6 100644 --- a/phpstan.dist.neon +++ b/phpstan.dist.neon @@ -11,6 +11,7 @@ parameters: - src/Configuration/* - src/Doctrine/Purger/* - src/DataTables/Adapters/TwoStepORMAdapter.php + - src/Form/Fixes/* diff --git a/src/Controller/ToolsController.php b/src/Controller/ToolsController.php index 7ffc3ee9..aea23895 100644 --- a/src/Controller/ToolsController.php +++ b/src/Controller/ToolsController.php @@ -22,17 +22,18 @@ declare(strict_types=1); */ namespace App\Controller; -use Symfony\Component\Runtime\SymfonyRuntime; use App\Services\Attachments\AttachmentSubmitHandler; use App\Services\Attachments\AttachmentURLGenerator; use App\Services\Attachments\BuiltinAttachmentsFinder; +use App\Services\Doctrine\DBInfoHelper; +use App\Services\Doctrine\NatsortDebugHelper; use App\Services\Misc\GitVersionInfo; -use App\Services\Misc\DBInfoHelper; use App\Services\System\UpdateAvailableManager; use App\Settings\AppSettings; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; +use Symfony\Component\Runtime\SymfonyRuntime; #[Route(path: '/tools')] class ToolsController extends AbstractController @@ -46,7 +47,7 @@ class ToolsController extends AbstractController } #[Route(path: '/server_infos', name: 'tools_server_infos')] - public function systemInfos(GitVersionInfo $versionInfo, DBInfoHelper $DBInfoHelper, + public function systemInfos(GitVersionInfo $versionInfo, DBInfoHelper $DBInfoHelper, NatsortDebugHelper $natsortDebugHelper, AttachmentSubmitHandler $attachmentSubmitHandler, UpdateAvailableManager $updateAvailableManager, AppSettings $settings): Response { @@ -95,6 +96,8 @@ class ToolsController extends AbstractController 'db_size' => $DBInfoHelper->getDatabaseSize(), 'db_name' => $DBInfoHelper->getDatabaseName() ?? 'Unknown', 'db_user' => $DBInfoHelper->getDatabaseUsername() ?? 'Unknown', + 'db_natsort_method' => $natsortDebugHelper->getNaturalSortMethod(), + 'db_natsort_slow_allowed' => $natsortDebugHelper->isSlowNaturalSortAllowed(), //New version section 'new_version_available' => $updateAvailableManager->isUpdateAvailable(), diff --git a/src/Doctrine/Functions/Natsort.php b/src/Doctrine/Functions/Natsort.php index 56001039..bd05e0d6 100644 --- a/src/Doctrine/Functions/Natsort.php +++ b/src/Doctrine/Functions/Natsort.php @@ -55,6 +55,15 @@ class Natsort extends FunctionNode self::$allowSlowNaturalSort = $allow; } + /** + * Check if the slow natural sort is allowed + * @return bool + */ + public static function isSlowNaturalSortAllowed(): bool + { + return self::$allowSlowNaturalSort; + } + /** * Check if the MariaDB version which is connected to supports the natural sort (meaning it has a version of 10.7.0 or higher) * The result is cached in memory. diff --git a/src/Form/Fixes/FixNumberType.php b/src/Form/Fixes/FixNumberType.php new file mode 100644 index 00000000..a020a9b9 --- /dev/null +++ b/src/Form/Fixes/FixNumberType.php @@ -0,0 +1,51 @@ +. + */ + +declare(strict_types=1); + + +namespace App\Form\Fixes; + +use Symfony\Component\Form\AbstractTypeExtension; +use Symfony\Component\Form\Extension\Core\Type\NumberType; +use Symfony\Component\Form\FormBuilderInterface; + +class FixNumberType extends AbstractTypeExtension +{ + + public function buildForm(FormBuilderInterface $builder, array $options) + { + //Remove existing view transformers + $builder->resetViewTransformers(); + + //And add our fixed version + $builder->addViewTransformer(new FixedNumberToLocalizedStringTransformer( + $options['scale'], + $options['grouping'], + $options['rounding_mode'], + $options['html5'] ? 'en' : null + )); + } + + public static function getExtendedTypes(): iterable + { + return [NumberType::class]; + } +} \ No newline at end of file diff --git a/src/Form/Fixes/FixedNumberToLocalizedStringTransformer.php b/src/Form/Fixes/FixedNumberToLocalizedStringTransformer.php new file mode 100644 index 00000000..5d8c439f --- /dev/null +++ b/src/Form/Fixes/FixedNumberToLocalizedStringTransformer.php @@ -0,0 +1,228 @@ +. + */ + + +namespace App\Form\Fixes; + +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; + +/** + * Same as the default NumberToLocalizedStringTransformer, but with a fix for the decimal separator. + * See https://github.com/symfony/symfony/pull/57861 + */ +class FixedNumberToLocalizedStringTransformer implements DataTransformerInterface +{ + protected $grouping; + + protected $roundingMode; + + private ?int $scale; + private ?string $locale; + + public function __construct(?int $scale = null, ?bool $grouping = false, ?int $roundingMode = \NumberFormatter::ROUND_HALFUP, ?string $locale = null) + { + $this->scale = $scale; + $this->grouping = $grouping ?? false; + $this->roundingMode = $roundingMode ?? \NumberFormatter::ROUND_HALFUP; + $this->locale = $locale; + } + + /** + * Transforms a number type into localized number. + * + * @param int|float|null $value Number value + * + * @throws TransformationFailedException if the given value is not numeric + * or if the value cannot be transformed + */ + public function transform(mixed $value): string + { + if (null === $value) { + return ''; + } + + if (!is_numeric($value)) { + throw new TransformationFailedException('Expected a numeric.'); + } + + $formatter = $this->getNumberFormatter(); + $value = $formatter->format($value); + + if (intl_is_failure($formatter->getErrorCode())) { + throw new TransformationFailedException($formatter->getErrorMessage()); + } + + // Convert non-breaking and narrow non-breaking spaces to normal ones + $value = str_replace(["\xc2\xa0", "\xe2\x80\xaf"], ' ', $value); + + return $value; + } + + /** + * Transforms a localized number into an integer or float. + * + * @param string $value The localized value + * + * @throws TransformationFailedException if the given value is not a string + * or if the value cannot be transformed + */ + public function reverseTransform(mixed $value): int|float|null + { + if (null !== $value && !\is_string($value)) { + throw new TransformationFailedException('Expected a string.'); + } + + if (null === $value || '' === $value) { + return null; + } + + if (\in_array($value, ['NaN', 'NAN', 'nan'], true)) { + throw new TransformationFailedException('"NaN" is not a valid number.'); + } + + $position = 0; + $formatter = $this->getNumberFormatter(); + $groupSep = $formatter->getSymbol(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL); + $decSep = $formatter->getSymbol(\NumberFormatter::DECIMAL_SEPARATOR_SYMBOL); + + if ('.' !== $decSep && (!$this->grouping || '.' !== $groupSep)) { + $value = str_replace('.', $decSep, $value); + } + + if (',' !== $decSep && (!$this->grouping || ',' !== $groupSep)) { + $value = str_replace(',', $decSep, $value); + } + + //If the value is in exponential notation with a negative exponent, we end up with a float value too + if (str_contains($value, $decSep) || stripos($value, 'e-') !== false) { + $type = \NumberFormatter::TYPE_DOUBLE; + } else { + $type = \PHP_INT_SIZE === 8 + ? \NumberFormatter::TYPE_INT64 + : \NumberFormatter::TYPE_INT32; + } + + $result = $formatter->parse($value, $type, $position); + + if (intl_is_failure($formatter->getErrorCode())) { + throw new TransformationFailedException($formatter->getErrorMessage()); + } + + if ($result >= \PHP_INT_MAX || $result <= -\PHP_INT_MAX) { + throw new TransformationFailedException('I don\'t have a clear idea what infinity looks like.'); + } + + $result = $this->castParsedValue($result); + + if (false !== $encoding = mb_detect_encoding($value, null, true)) { + $length = mb_strlen($value, $encoding); + $remainder = mb_substr($value, $position, $length, $encoding); + } else { + $length = \strlen($value); + $remainder = substr($value, $position, $length); + } + + // After parsing, position holds the index of the character where the + // parsing stopped + if ($position < $length) { + // Check if there are unrecognized characters at the end of the + // number (excluding whitespace characters) + $remainder = trim($remainder, " \t\n\r\0\x0b\xc2\xa0"); + + if ('' !== $remainder) { + throw new TransformationFailedException(sprintf('The number contains unrecognized characters: "%s".', $remainder)); + } + } + + // NumberFormatter::parse() does not round + return $this->round($result); + } + + /** + * Returns a preconfigured \NumberFormatter instance. + */ + protected function getNumberFormatter(): \NumberFormatter + { + $formatter = new \NumberFormatter($this->locale ?? \Locale::getDefault(), \NumberFormatter::DECIMAL); + + if (null !== $this->scale) { + $formatter->setAttribute(\NumberFormatter::FRACTION_DIGITS, $this->scale); + $formatter->setAttribute(\NumberFormatter::ROUNDING_MODE, $this->roundingMode); + } + + $formatter->setAttribute(\NumberFormatter::GROUPING_USED, $this->grouping); + + return $formatter; + } + + /** + * @internal + */ + protected function castParsedValue(int|float $value): int|float + { + if (\is_int($value) && $value === (int) $float = (float) $value) { + return $float; + } + + return $value; + } + + /** + * Rounds a number according to the configured scale and rounding mode. + */ + private function round(int|float $number): int|float + { + if (null !== $this->scale && null !== $this->roundingMode) { + // shift number to maintain the correct scale during rounding + $roundingCoef = 10 ** $this->scale; + // string representation to avoid rounding errors, similar to bcmul() + $number = (string) ($number * $roundingCoef); + + switch ($this->roundingMode) { + case \NumberFormatter::ROUND_CEILING: + $number = ceil($number); + break; + case \NumberFormatter::ROUND_FLOOR: + $number = floor($number); + break; + case \NumberFormatter::ROUND_UP: + $number = $number > 0 ? ceil($number) : floor($number); + break; + case \NumberFormatter::ROUND_DOWN: + $number = $number > 0 ? floor($number) : ceil($number); + break; + case \NumberFormatter::ROUND_HALFEVEN: + $number = round($number, 0, \PHP_ROUND_HALF_EVEN); + break; + case \NumberFormatter::ROUND_HALFUP: + $number = round($number, 0, \PHP_ROUND_HALF_UP); + break; + case \NumberFormatter::ROUND_HALFDOWN: + $number = round($number, 0, \PHP_ROUND_HALF_DOWN); + break; + } + + $number = 1 === $roundingCoef ? (int) $number : $number / $roundingCoef; + } + + return $number; + } +} \ No newline at end of file diff --git a/src/Form/ParameterType.php b/src/Form/ParameterType.php index 517bb48c..d0183dab 100644 --- a/src/Form/ParameterType.php +++ b/src/Form/ParameterType.php @@ -53,6 +53,7 @@ use App\Entity\Parameters\PartParameter; use App\Entity\Parameters\StorageLocationParameter; use App\Entity\Parameters\SupplierParameter; use App\Entity\Parts\MeasurementUnit; +use App\Form\Type\ExponentialNumberType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\NumberType; use Symfony\Component\Form\Extension\Core\Type\TextType; @@ -93,7 +94,7 @@ class ParameterType extends AbstractType ], ]); - $builder->add('value_max', NumberType::class, [ + $builder->add('value_max', ExponentialNumberType::class, [ 'label' => false, 'required' => false, 'html5' => true, @@ -104,7 +105,7 @@ class ParameterType extends AbstractType 'style' => 'max-width: 12ch;', ], ]); - $builder->add('value_min', NumberType::class, [ + $builder->add('value_min', ExponentialNumberType::class, [ 'label' => false, 'required' => false, 'html5' => true, @@ -115,7 +116,7 @@ class ParameterType extends AbstractType 'style' => 'max-width: 12ch;', ], ]); - $builder->add('value_typical', NumberType::class, [ + $builder->add('value_typical', ExponentialNumberType::class, [ 'label' => false, 'required' => false, 'html5' => true, diff --git a/src/Form/Type/ExponentialNumberType.php b/src/Form/Type/ExponentialNumberType.php new file mode 100644 index 00000000..4f2d54bd --- /dev/null +++ b/src/Form/Type/ExponentialNumberType.php @@ -0,0 +1,52 @@ +. + */ + +declare(strict_types=1); + + +namespace App\Form\Type; + +use App\Form\Type\Helper\ExponentialNumberTransformer; +use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\NumberType; +use Symfony\Component\Form\FormBuilderInterface; + +/** + * Similar to the NumberType, but formats small values in scienfitic notation instead of rounding it to 0, like NumberType + */ +class ExponentialNumberType extends AbstractType +{ + public function getParent(): string + { + return NumberType::class; + } + + public function buildForm(FormBuilderInterface $builder, array $options) + { + $builder->resetViewTransformers(); + + $builder->addViewTransformer(new ExponentialNumberTransformer( + $options['scale'], + $options['grouping'], + $options['rounding_mode'], + $options['html5'] ? 'en' : null + )); + } +} \ No newline at end of file diff --git a/src/Form/Type/Helper/ExponentialNumberTransformer.php b/src/Form/Type/Helper/ExponentialNumberTransformer.php new file mode 100644 index 00000000..6080d68d --- /dev/null +++ b/src/Form/Type/Helper/ExponentialNumberTransformer.php @@ -0,0 +1,96 @@ +. + */ + +declare(strict_types=1); + + +namespace App\Form\Type\Helper; + +use App\Form\Fixes\FixedNumberToLocalizedStringTransformer; +use Symfony\Component\Form\Exception\TransformationFailedException; + +/** + * This transformer formats small values in scienfitic notation instead of rounding it to 0, like the default + * NumberFormatter. + */ +class ExponentialNumberTransformer extends FixedNumberToLocalizedStringTransformer +{ + public function __construct( + protected ?int $scale = null, + ?bool $grouping = false, + ?int $roundingMode = \NumberFormatter::ROUND_HALFUP, + protected ?string $locale = null + ) { + parent::__construct($scale, $grouping, $roundingMode, $locale); + } + + /** + * Transforms a number type into localized number. + * + * @param int|float|null $value Number value + * + * @throws TransformationFailedException if the given value is not numeric + * or if the value cannot be transformed + */ + public function transform(mixed $value): string + { + if (null === $value) { + return ''; + } + + if (!is_numeric($value)) { + throw new TransformationFailedException('Expected a numeric.'); + } + + //If the value is too small, the number formatter would return 0, therfore use exponential notation for small numbers + if (abs($value) < 1e-3) { + $formatter = $this->getScientificNumberFormatter(); + } else { + $formatter = $this->getNumberFormatter(); + } + + + + $value = $formatter->format($value); + + if (intl_is_failure($formatter->getErrorCode())) { + throw new TransformationFailedException($formatter->getErrorMessage()); + } + + // Convert non-breaking and narrow non-breaking spaces to normal ones + $value = str_replace(["\xc2\xa0", "\xe2\x80\xaf"], ' ', $value); + + return $value; + } + + protected function getScientificNumberFormatter(): \NumberFormatter + { + $formatter = new \NumberFormatter($this->locale ?? \Locale::getDefault(), \NumberFormatter::SCIENTIFIC); + + if (null !== $this->scale) { + $formatter->setAttribute(\NumberFormatter::FRACTION_DIGITS, $this->scale); + $formatter->setAttribute(\NumberFormatter::ROUNDING_MODE, $this->roundingMode); + } + + $formatter->setAttribute(\NumberFormatter::GROUPING_USED, (int) $this->grouping); + + return $formatter; + } +} \ No newline at end of file diff --git a/src/Services/Misc/DBInfoHelper.php b/src/Services/Doctrine/DBInfoHelper.php similarity index 84% rename from src/Services/Misc/DBInfoHelper.php rename to src/Services/Doctrine/DBInfoHelper.php index 620da702..160e2d89 100644 --- a/src/Services/Misc/DBInfoHelper.php +++ b/src/Services/Doctrine/DBInfoHelper.php @@ -1,4 +1,22 @@ . + */ declare(strict_types=1); @@ -20,10 +38,10 @@ declare(strict_types=1); * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -namespace App\Services\Misc; +namespace App\Services\Doctrine; -use Doctrine\DBAL\Exception; use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Exception; use Doctrine\DBAL\Platforms\AbstractMySQLPlatform; use Doctrine\DBAL\Platforms\PostgreSQLPlatform; use Doctrine\DBAL\Platforms\SQLitePlatform; diff --git a/src/Services/Doctrine/NatsortDebugHelper.php b/src/Services/Doctrine/NatsortDebugHelper.php new file mode 100644 index 00000000..fe5b77aa --- /dev/null +++ b/src/Services/Doctrine/NatsortDebugHelper.php @@ -0,0 +1,86 @@ +. + */ + +declare(strict_types=1); + + +namespace App\Services\Doctrine; + +use App\Doctrine\Functions\Natsort; +use App\Entity\Parts\Part; +use Doctrine\ORM\EntityManagerInterface; + +/** + * This service allows to debug the natsort function by showing various information about the current state of + * the natsort function. + */ +class NatsortDebugHelper +{ + public function __construct(private readonly EntityManagerInterface $entityManager) + { + // This is a dummy constructor + } + + /** + * Check if the slow natural sort is allowed on the Natsort function. + * If it is not, then the request handler might need to be adjusted. + * @return bool + */ + public function isSlowNaturalSortAllowed(): bool + { + return Natsort::isSlowNaturalSortAllowed(); + } + + public function getNaturalSortMethod(): string + { + //Construct a dummy query which uses the Natsort function + $query = $this->entityManager->createQuery('SELECT natsort(1) FROM ' . Part::class . ' p'); + $sql = $query->getSQL(); + //Remove the leading SELECT and the trailing semicolon + $sql = substr($sql, 7, -1); + + //Remove AS and everything afterwards + $sql = preg_replace('/\s+AS\s+.*/', '', $sql); + + //If just 1 is returned, then we use normal (non-natural sorting) + if ($sql === '1') { + return 'Disabled'; + } + + if (str_contains( $sql, 'COLLATE numeric')) { + return 'Native (PostgreSQL)'; + } + + if (str_contains($sql, 'NATURAL_SORT_KEY')) { + return 'Native (MariaDB)'; + } + + if (str_contains($sql, 'COLLATE NATURAL_CMP')) { + return 'Emulation via PHP (SQLite)'; + } + + if (str_contains($sql, 'NatSortKey')) { + return 'Emulation via custom function (MySQL)'; + } + + + return 'Unknown ('. $sql . ')'; + } +} \ No newline at end of file diff --git a/templates/tools/server_infos/_db.html.twig b/templates/tools/server_infos/_db.html.twig index 0c0e60a2..828783fe 100644 --- a/templates/tools/server_infos/_db.html.twig +++ b/templates/tools/server_infos/_db.html.twig @@ -21,5 +21,13 @@ Database User {{ db_user }} + + Natural sort method + {{ db_natsort_method }} + + + Slow natural sort allowed + {{ helper.boolean_badge(db_natsort_slow_allowed) }} + \ No newline at end of file diff --git a/translations/messages.es.xlf b/translations/messages.es.xlf new file mode 100644 index 00000000..df309414 --- /dev/null +++ b/translations/messages.es.xlf @@ -0,0 +1,12212 @@ + + + + + + Part-DB1\templates\AdminPages\AttachmentTypeAdmin.html.twig:4 + Part-DB1\templates\AdminPages\AttachmentTypeAdmin.html.twig:4 + templates\AdminPages\AttachmentTypeAdmin.html.twig:4 + + + attachment_type.caption + Tipo de archivo para adjuntos + + + + + Part-DB1\templates\AdminPages\AttachmentTypeAdmin.html.twig:12 + new + + + attachment_type.edit + Editar tipo de archivo + + + + + Part-DB1\templates\AdminPages\AttachmentTypeAdmin.html.twig:16 + new + + + attachment_type.new + Nuevo tipo de archivo + + + + + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:4 + Part-DB1\templates\_sidebar.html.twig:22 + Part-DB1\templates\_sidebar.html.twig:7 + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:4 + Part-DB1\templates\_sidebar.html.twig:22 + Part-DB1\templates\_sidebar.html.twig:7 + templates\AdminPages\CategoryAdmin.html.twig:4 + templates\base.html.twig:163 + templates\base.html.twig:170 + templates\base.html.twig:197 + templates\base.html.twig:225 + + + category.labelp + Categorías + + + + + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:8 + Part-DB1\templates\AdminPages\StorelocationAdmin.html.twig:19 + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:8 + Part-DB1\templates\AdminPages\StorelocationAdmin.html.twig:11 + templates\AdminPages\CategoryAdmin.html.twig:8 + + + admin.options + Opciones + + + + + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:9 + Part-DB1\templates\AdminPages\CompanyAdminBase.html.twig:15 + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:9 + Part-DB1\templates\AdminPages\CompanyAdminBase.html.twig:15 + templates\AdminPages\CategoryAdmin.html.twig:9 + + + admin.advanced + Avanzado + + + + + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:13 + new + + + category.edit + Editar categoría + + + + + Part-DB1\templates\AdminPages\CategoryAdmin.html.twig:17 + new + + + category.new + Nueva categoría + + + + + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:4 + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:4 + + + currency.caption + Divisa + + + + + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:12 + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:12 + + + currency.iso_code.caption + Código ISO + + + + + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:15 + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:15 + + + currency.symbol.caption + Símbolo de divisa + + + + + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:29 + new + + + currency.edit + Editar divisa + + + + + Part-DB1\templates\AdminPages\CurrencyAdmin.html.twig:33 + new + + + currency.new + Nueva divisa + + + + + Part-DB1\templates\AdminPages\DeviceAdmin.html.twig:4 + Part-DB1\templates\AdminPages\DeviceAdmin.html.twig:4 + templates\AdminPages\DeviceAdmin.html.twig:4 + + + project.caption + Proyecto + + + + + Part-DB1\templates\AdminPages\DeviceAdmin.html.twig:8 + new + + + project.edit + Editar proyecto + + + + + Part-DB1\templates\AdminPages\DeviceAdmin.html.twig:12 + new + + + project.new + Nuevo proyecto + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Buscar + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:23 + Part-DB1\templates\_sidebar.html.twig:3 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:23 + Part-DB1\templates\_sidebar.html.twig:3 + templates\AdminPages\EntityAdminBase.html.twig:13 + templates\base.html.twig:166 + templates\base.html.twig:193 + templates\base.html.twig:221 + + + expandAll + Expander todo + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:4 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:4 + templates\AdminPages\EntityAdminBase.html.twig:17 + templates\base.html.twig:167 + templates\base.html.twig:194 + templates\base.html.twig:222 + + + reduceAll + Reducir todo + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:54 + Part-DB1\templates\Parts\info\_sidebar.html.twig:4 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:54 + Part-DB1\templates\Parts\info\_sidebar.html.twig:4 + + + part.info.timetravel_hint + Así aparecía el componente antes de: %timestamp%. <i>Esta función es experimental, así que la información podría no ser correcta.</i> + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:60 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:60 + templates\AdminPages\EntityAdminBase.html.twig:42 + + + standard.label + Propiedades + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:61 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:61 + templates\AdminPages\EntityAdminBase.html.twig:43 + + + infos.label + Información + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:63 + new + + + history.label + Historial + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:66 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:66 + templates\AdminPages\EntityAdminBase.html.twig:45 + + + export.label + Exportar + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:68 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:68 + templates\AdminPages\EntityAdminBase.html.twig:47 + + + import_export.label + Importar / Exportar + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:69 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:69 + + + mass_creation.label + Creación en masa + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:82 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:82 + templates\AdminPages\EntityAdminBase.html.twig:59 + + + admin.common + Común + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:86 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:86 + + + admin.attachments + Adjuntos + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:90 + + + admin.parameters + Parámetros + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:179 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:167 + templates\AdminPages\EntityAdminBase.html.twig:142 + + + export_all.label + Exportar todos los elementos + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:185 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:173 + + + mass_creation.help + Cada línea será interpretada como el nombre de un elemento, el cual será creado. Puedes crear estructuras anidadas con identificadores. + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:45 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:45 + templates\AdminPages\EntityAdminBase.html.twig:35 + + + edit.caption + Editar elemento "%name" + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:50 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:50 + templates\AdminPages\EntityAdminBase.html.twig:37 + + + new.caption + Nuevo elemento + + + + + Part-DB1\templates\AdminPages\FootprintAdmin.html.twig:4 + Part-DB1\templates\_sidebar.html.twig:9 + Part-DB1\templates\AdminPages\FootprintAdmin.html.twig:4 + Part-DB1\templates\_sidebar.html.twig:9 + templates\base.html.twig:172 + templates\base.html.twig:199 + templates\base.html.twig:227 + + + footprint.labelp + Footprints + + + + + Part-DB1\templates\AdminPages\FootprintAdmin.html.twig:13 + new + + + footprint.edit + Editar footprint + + + + + Part-DB1\templates\AdminPages\FootprintAdmin.html.twig:17 + new + + + footprint.new + Nuevo footprint + + + + + Part-DB1\templates\AdminPages\GroupAdmin.html.twig:4 + Part-DB1\templates\AdminPages\GroupAdmin.html.twig:4 + + + group.edit.caption + Grupos + + + + + Part-DB1\templates\AdminPages\GroupAdmin.html.twig:9 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:16 + Part-DB1\templates\AdminPages\GroupAdmin.html.twig:9 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:16 + + + user.edit.permissions + Permisos + + + + + Part-DB1\templates\AdminPages\GroupAdmin.html.twig:24 + new + + + group.edit + Editar grupo + + + + + Part-DB1\templates\AdminPages\GroupAdmin.html.twig:28 + new + + + group.new + Nuevo grupo + + + + + Part-DB1\templates\AdminPages\LabelProfileAdmin.html.twig:4 + + + label_profile.caption + Perfiles de etiqueta + + + + + Part-DB1\templates\AdminPages\LabelProfileAdmin.html.twig:8 + + + label_profile.advanced + Avanzado + + + + + Part-DB1\templates\AdminPages\LabelProfileAdmin.html.twig:9 + + + label_profile.comment + Notas + + + + + Part-DB1\templates\AdminPages\LabelProfileAdmin.html.twig:55 + new + + + label_profile.edit + Editar perfil de etiqueta + + + + + Part-DB1\templates\AdminPages\LabelProfileAdmin.html.twig:59 + new + + + label_profile.new + Nuevo perfil de etiqueta + + + + + Part-DB1\templates\AdminPages\ManufacturerAdmin.html.twig:4 + Part-DB1\templates\AdminPages\ManufacturerAdmin.html.twig:4 + templates\AdminPages\ManufacturerAdmin.html.twig:4 + + + manufacturer.caption + Fabricantes + + + + + Part-DB1\templates\AdminPages\ManufacturerAdmin.html.twig:8 + new + + + manufacturer.edit + Editar fabricante + + + + + Part-DB1\templates\AdminPages\ManufacturerAdmin.html.twig:12 + new + + + manufacturer.new + Nuevo fabricante + + + + + Part-DB1\templates\AdminPages\MeasurementUnitAdmin.html.twig:4 + Part-DB1\templates\AdminPages\MeasurementUnitAdmin.html.twig:4 + + + measurement_unit.caption + Unidad de medida + + + + + Part-DB1\templates\AdminPages\StorelocationAdmin.html.twig:5 + Part-DB1\templates\_sidebar.html.twig:8 + Part-DB1\templates\AdminPages\StorelocationAdmin.html.twig:4 + Part-DB1\templates\_sidebar.html.twig:8 + templates\base.html.twig:171 + templates\base.html.twig:198 + templates\base.html.twig:226 + + + storelocation.labelp + Ubicación del almacén + + + + + Part-DB1\templates\AdminPages\StorelocationAdmin.html.twig:32 + new + + + storelocation.edit + Editar ubicación del almacén + + + + + Part-DB1\templates\AdminPages\StorelocationAdmin.html.twig:36 + new + + + storelocation.new + Nueva ubicación de almacén + + + + + Part-DB1\templates\AdminPages\SupplierAdmin.html.twig:4 + Part-DB1\templates\AdminPages\SupplierAdmin.html.twig:4 + templates\AdminPages\SupplierAdmin.html.twig:4 + + + supplier.caption + Proveedores + + + + + Part-DB1\templates\AdminPages\SupplierAdmin.html.twig:16 + new + + + supplier.edit + Editar proveedor + + + + + Part-DB1\templates\AdminPages\SupplierAdmin.html.twig:20 + new + + + supplier.new + Nuevo proveedor + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:8 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:8 + + + user.edit.caption + Usuarios + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:14 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:14 + + + user.edit.configuration + Configuración + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:15 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:15 + + + user.edit.password + Contraseña + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:45 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:45 + + + user.edit.tfa.caption + Autenticación en dos pasos + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:47 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:47 + + + user.edit.tfa.google_active + App de autenticación activa + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:48 + Part-DB1\templates\Users\backup_codes.html.twig:15 + Part-DB1\templates\Users\_2fa_settings.html.twig:95 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:48 + Part-DB1\templates\Users\backup_codes.html.twig:15 + Part-DB1\templates\Users\_2fa_settings.html.twig:95 + + + tfa_backup.remaining_tokens + Cuenta de códigos backup restantes + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:49 + Part-DB1\templates\Users\backup_codes.html.twig:17 + Part-DB1\templates\Users\_2fa_settings.html.twig:96 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:49 + Part-DB1\templates\Users\backup_codes.html.twig:17 + Part-DB1\templates\Users\_2fa_settings.html.twig:96 + + + tfa_backup.generation_date + Fecha de creación de los códigos backup + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:53 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:60 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:53 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:60 + + + user.edit.tfa.disabled + Método no habilitado + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:56 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:56 + + + user.edit.tfa.u2f_keys_count + Llaves de seguridad activas + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:72 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:72 + + + user.edit.tfa.disable_tfa_title + ¿Estás seguro de que quieres continuar? + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:72 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:72 + + + user.edit.tfa.disable_tfa_message + Esto deshabilitará <b>todos los métodos de autenticación en dos pasos del usuario</b> y eliminará los <b>códigos backup</b>! +<br> +¡El usuario deberá configurar todos los métodos de autenticación de nuevo e imprimir nuevos códigos backup! <br><br> +<b>¡Solo haz esto si estás seguro de la identidad del usuario (buscando ayuda), si no la cuenta podría estar comprometida por ataques externos!</b> + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:73 + Part-DB1\templates\AdminPages\UserAdmin.html.twig:73 + + + user.edit.tfa.disable_tfa.btn + Deshabilitar todos los métodos de autenticación en dos pasos + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:85 + new + + + user.edit + Editar usuario + + + + + Part-DB1\templates\AdminPages\UserAdmin.html.twig:89 + new + + + user.new + Nuevo usuario + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:4 + Part-DB1\templates\Parts\edit\_attachments.html.twig:4 + Part-DB1\templates\AdminPages\_attachments.html.twig:4 + Part-DB1\templates\Parts\edit\_attachments.html.twig:4 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:63 + + + attachment.delete + Eliminar + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:41 + Part-DB1\templates\Parts\edit\_attachments.html.twig:38 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:35 + Part-DB1\src\DataTables\AttachmentDataTable.php:159 + Part-DB1\templates\Parts\edit\_attachments.html.twig:38 + Part-DB1\src\DataTables\AttachmentDataTable.php:159 + + + attachment.external + Externo + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:49 + Part-DB1\templates\Parts\edit\_attachments.html.twig:47 + Part-DB1\templates\AdminPages\_attachments.html.twig:47 + Part-DB1\templates\Parts\edit\_attachments.html.twig:45 + + + attachment.preview.alt + Miniatura del adjunto + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:52 + Part-DB1\templates\Parts\edit\_attachments.html.twig:50 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:62 + Part-DB1\templates\AdminPages\_attachments.html.twig:50 + Part-DB1\templates\Parts\edit\_attachments.html.twig:48 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:45 + + + attachment.view + Vista + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:58 + Part-DB1\templates\Parts\edit\_attachments.html.twig:56 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:43 + Part-DB1\src\DataTables\AttachmentDataTable.php:166 + Part-DB1\templates\AdminPages\_attachments.html.twig:56 + Part-DB1\templates\Parts\edit\_attachments.html.twig:54 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:38 + Part-DB1\src\DataTables\AttachmentDataTable.php:166 + + + attachment.file_not_found + Archivo no encontrado + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:66 + Part-DB1\templates\Parts\edit\_attachments.html.twig:64 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:48 + Part-DB1\templates\Parts\edit\_attachments.html.twig:62 + + + attachment.secure + Adjunto privado + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:79 + Part-DB1\templates\Parts\edit\_attachments.html.twig:77 + Part-DB1\templates\AdminPages\_attachments.html.twig:77 + Part-DB1\templates\Parts\edit\_attachments.html.twig:75 + + + attachment.create + Añadir adjunto + + + + + Part-DB1\templates\AdminPages\_attachments.html.twig:84 + Part-DB1\templates\Parts\edit\_attachments.html.twig:82 + Part-DB1\templates\Parts\edit\_lots.html.twig:33 + Part-DB1\templates\AdminPages\_attachments.html.twig:82 + Part-DB1\templates\Parts\edit\_attachments.html.twig:80 + Part-DB1\templates\Parts\edit\_lots.html.twig:33 + + + part_lot.edit.delete.confirm + ¿Estás seguro de que quieres eliminar este stock? ¡No se puede deshacer! + + + + + Part-DB1\templates\AdminPages\_delete_form.html.twig:2 + Part-DB1\templates\AdminPages\_delete_form.html.twig:2 + templates\AdminPages\_delete_form.html.twig:2 + + + entity.delete.confirm_title + ¿Estás seguro de que quieres eliminar %name%? + + + + + Part-DB1\templates\AdminPages\_delete_form.html.twig:3 + Part-DB1\templates\AdminPages\_delete_form.html.twig:3 + templates\AdminPages\_delete_form.html.twig:3 + + + entity.delete.message + ¡No se puede deshacer! +<br> +Subelementos serán desplazados hacia arriba. + + + + + Part-DB1\templates\AdminPages\_delete_form.html.twig:11 + Part-DB1\templates\AdminPages\_delete_form.html.twig:11 + templates\AdminPages\_delete_form.html.twig:9 + + + entity.delete + Eliminar elemento + + + + + Part-DB1\templates\AdminPages\_delete_form.html.twig:16 + Part-DB1\templates\Parts\info\_tools.html.twig:45 + Part-DB1\src\Form\Part\PartBaseType.php:286 + Part-DB1\templates\AdminPages\_delete_form.html.twig:16 + Part-DB1\templates\Parts\info\_tools.html.twig:43 + Part-DB1\src\Form\Part\PartBaseType.php:267 + new + + + edit.log_comment + Cambiar comentario + + + + + Part-DB1\templates\AdminPages\_delete_form.html.twig:24 + Part-DB1\templates\AdminPages\_delete_form.html.twig:24 + templates\AdminPages\_delete_form.html.twig:12 + + + entity.delete.recursive + Eliminar recursivamente (todos los subelementos) + + + + + Part-DB1\templates\AdminPages\_duplicate.html.twig:3 + + + entity.duplicate + Duplicar elemento + + + + + Part-DB1\templates\AdminPages\_export_form.html.twig:4 + Part-DB1\src\Form\AdminPages\ImportType.php:76 + Part-DB1\templates\AdminPages\_export_form.html.twig:4 + Part-DB1\src\Form\AdminPages\ImportType.php:76 + templates\AdminPages\_export_form.html.twig:4 + src\Form\ImportType.php:67 + + + export.format + Formato de archivo + + + + + Part-DB1\templates\AdminPages\_export_form.html.twig:16 + Part-DB1\templates\AdminPages\_export_form.html.twig:16 + templates\AdminPages\_export_form.html.twig:16 + + + export.level + Nivel de verbosidad + + + + + Part-DB1\templates\AdminPages\_export_form.html.twig:19 + Part-DB1\templates\AdminPages\_export_form.html.twig:19 + templates\AdminPages\_export_form.html.twig:19 + + + export.level.simple + Simple + + + + + Part-DB1\templates\AdminPages\_export_form.html.twig:20 + Part-DB1\templates\AdminPages\_export_form.html.twig:20 + templates\AdminPages\_export_form.html.twig:20 + + + export.level.extended + Extendido + + + + + Part-DB1\templates\AdminPages\_export_form.html.twig:21 + Part-DB1\templates\AdminPages\_export_form.html.twig:21 + templates\AdminPages\_export_form.html.twig:21 + + + export.level.full + Completo + + + + + Part-DB1\templates\AdminPages\_export_form.html.twig:31 + Part-DB1\templates\AdminPages\_export_form.html.twig:31 + templates\AdminPages\_export_form.html.twig:31 + + + export.include_children + Incluir elementos hijo en la exportación + + + + + Part-DB1\templates\AdminPages\_export_form.html.twig:39 + Part-DB1\templates\AdminPages\_export_form.html.twig:39 + templates\AdminPages\_export_form.html.twig:39 + + + export.btn + Exportar + + + + + Part-DB1\templates\AdminPages\_info.html.twig:4 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:12 + Part-DB1\templates\Parts\info\show_part_info.html.twig:24 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:36 + Part-DB1\templates\AdminPages\_info.html.twig:4 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:12 + Part-DB1\templates\Parts\info\show_part_info.html.twig:24 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:36 + templates\AdminPages\EntityAdminBase.html.twig:94 + templates\Parts\edit_part_info.html.twig:12 + templates\Parts\show_part_info.html.twig:11 + + + id.label + ID + + + + + Part-DB1\templates\AdminPages\_info.html.twig:11 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:76 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:77 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:6 + Part-DB1\templates\Parts\info\_order_infos.html.twig:69 + Part-DB1\templates\Parts\info\_sidebar.html.twig:12 + Part-DB1\templates\Parts\lists\_info_card.html.twig:77 + Part-DB1\templates\AdminPages\_info.html.twig:11 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:59 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:60 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:6 + Part-DB1\templates\Parts\info\_order_infos.html.twig:69 + Part-DB1\templates\Parts\info\_sidebar.html.twig:12 + Part-DB1\templates\Parts\lists\_info_card.html.twig:53 + templates\AdminPages\EntityAdminBase.html.twig:101 + templates\Parts\show_part_info.html.twig:248 + + + createdAt + Creado en + + + + + Part-DB1\templates\AdminPages\_info.html.twig:25 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:21 + Part-DB1\templates\Parts\info\_sidebar.html.twig:8 + Part-DB1\templates\Parts\lists\_info_card.html.twig:73 + Part-DB1\templates\AdminPages\_info.html.twig:25 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:21 + Part-DB1\templates\Parts\info\_sidebar.html.twig:8 + Part-DB1\templates\Parts\lists\_info_card.html.twig:49 + templates\AdminPages\EntityAdminBase.html.twig:114 + templates\Parts\show_part_info.html.twig:263 + + + lastModified + Última modificación + + + + + Part-DB1\templates\AdminPages\_info.html.twig:38 + Part-DB1\templates\AdminPages\_info.html.twig:38 + + + entity.info.parts_count + Número de componentes de este elemento + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:6 + Part-DB1\templates\helper.twig:125 + Part-DB1\templates\Parts\edit\_specifications.html.twig:6 + + + specifications.property + Parámetro + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:7 + Part-DB1\templates\Parts\edit\_specifications.html.twig:7 + + + specifications.symbol + Símbolo + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:8 + Part-DB1\templates\Parts\edit\_specifications.html.twig:8 + + + specifications.value_min + Min. + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:9 + Part-DB1\templates\Parts\edit\_specifications.html.twig:9 + + + specifications.value_typ + Typ. + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:10 + Part-DB1\templates\Parts\edit\_specifications.html.twig:10 + + + specifications.value_max + Max. + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:11 + Part-DB1\templates\Parts\edit\_specifications.html.twig:11 + + + specifications.unit + Unidad + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:12 + Part-DB1\templates\Parts\edit\_specifications.html.twig:12 + + + specifications.text + Texto + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:13 + Part-DB1\templates\Parts\edit\_specifications.html.twig:13 + + + specifications.group + Grupo + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:26 + Part-DB1\templates\Parts\edit\_specifications.html.twig:26 + + + specification.create + Nuevo parámetro + + + + + Part-DB1\templates\AdminPages\_parameters.html.twig:31 + Part-DB1\templates\Parts\edit\_specifications.html.twig:31 + + + parameter.delete.confirm + ¿Estás seguro de que quieres eliminar este parámetro? + + + + + Part-DB1\templates\attachment_list.html.twig:3 + Part-DB1\templates\attachment_list.html.twig:3 + + + attachment.list.title + Lista de adjuntos + + + + + Part-DB1\templates\attachment_list.html.twig:10 + Part-DB1\templates\LogSystem\_log_table.html.twig:8 + Part-DB1\templates\Parts\lists\_parts_list.html.twig:6 + Part-DB1\templates\attachment_list.html.twig:10 + Part-DB1\templates\LogSystem\_log_table.html.twig:8 + Part-DB1\templates\Parts\lists\_parts_list.html.twig:6 + + + part_list.loading.caption + Cargando + + + + + Part-DB1\templates\attachment_list.html.twig:11 + Part-DB1\templates\LogSystem\_log_table.html.twig:9 + Part-DB1\templates\Parts\lists\_parts_list.html.twig:7 + Part-DB1\templates\attachment_list.html.twig:11 + Part-DB1\templates\LogSystem\_log_table.html.twig:9 + Part-DB1\templates\Parts\lists\_parts_list.html.twig:7 + + + part_list.loading.message + Esto puede llevar unos instantes. Si este mensaje no desaparece, prueba a refrescar la página. + + + + + Part-DB1\templates\base.html.twig:68 + Part-DB1\templates\base.html.twig:68 + templates\base.html.twig:246 + + + vendor.base.javascript_hint + ¡Por favor, activa Javascript para poder usar todas las funciones! + + + + + Part-DB1\templates\base.html.twig:73 + Part-DB1\templates\base.html.twig:73 + + + sidebar.big.toggle + Mostrar/Esconder barra lateral + + + + + Part-DB1\templates\base.html.twig:95 + Part-DB1\templates\base.html.twig:95 + templates\base.html.twig:271 + + + loading.caption + Cargando: + + + + + Part-DB1\templates\base.html.twig:96 + Part-DB1\templates\base.html.twig:96 + templates\base.html.twig:272 + + + loading.message + Esto puede llevar un rato. Si este mensaje tarda mucho en desaparecer, prueba a refrescar la página. + + + + + Part-DB1\templates\base.html.twig:101 + Part-DB1\templates\base.html.twig:101 + templates\base.html.twig:277 + + + loading.bar + Cargando... + + + + + Part-DB1\templates\base.html.twig:112 + Part-DB1\templates\base.html.twig:112 + templates\base.html.twig:288 + + + back_to_top + Volver al inicio de la página + + + + + Part-DB1\templates\Form\permissionLayout.html.twig:35 + Part-DB1\templates\Form\permissionLayout.html.twig:35 + + + permission.edit.permission + Permisos + + + + + Part-DB1\templates\Form\permissionLayout.html.twig:36 + Part-DB1\templates\Form\permissionLayout.html.twig:36 + + + permission.edit.value + Valor + + + + + Part-DB1\templates\Form\permissionLayout.html.twig:53 + Part-DB1\templates\Form\permissionLayout.html.twig:53 + + + permission.legend.title + Explicación de los estados + + + + + Part-DB1\templates\Form\permissionLayout.html.twig:57 + Part-DB1\templates\Form\permissionLayout.html.twig:57 + + + permission.legend.disallow + Prohibido + + + + + Part-DB1\templates\Form\permissionLayout.html.twig:61 + Part-DB1\templates\Form\permissionLayout.html.twig:61 + + + permission.legend.allow + Autorizado + + + + + Part-DB1\templates\Form\permissionLayout.html.twig:65 + Part-DB1\templates\Form\permissionLayout.html.twig:65 + + + permission.legend.inherit + Heredar de grupo padre + + + + + Part-DB1\templates\helper.twig:3 + Part-DB1\templates\helper.twig:3 + + + bool.true + Verdadero + + + + + Part-DB1\templates\helper.twig:5 + Part-DB1\templates\helper.twig:5 + + + bool.false + Falso + + + + + Part-DB1\templates\helper.twig:92 + Part-DB1\templates\helper.twig:87 + + + Yes + + + + + + Part-DB1\templates\helper.twig:94 + Part-DB1\templates\helper.twig:89 + + + No + No + + + + + Part-DB1\templates\helper.twig:126 + + + specifications.value + Valor + + + + + Part-DB1\templates\homepage.html.twig:7 + Part-DB1\templates\homepage.html.twig:7 + templates\homepage.html.twig:7 + + + version.caption + Versión + + + + + Part-DB1\templates\homepage.html.twig:22 + Part-DB1\templates\homepage.html.twig:22 + templates\homepage.html.twig:19 + + + homepage.license + Información de licencia + + + + + Part-DB1\templates\homepage.html.twig:31 + Part-DB1\templates\homepage.html.twig:31 + templates\homepage.html.twig:28 + + + homepage.github.caption + Página de proyecto + + + + + Part-DB1\templates\homepage.html.twig:31 + Part-DB1\templates\homepage.html.twig:31 + templates\homepage.html.twig:28 + + + homepage.github.text + Fuente, descargas, informes de error, listas de quehaceres etc. pueden ser encontrados en <a href="%href%" class="link-external" target="_blank">GitHub página de proyecto</a> + + + + + Part-DB1\templates\homepage.html.twig:32 + Part-DB1\templates\homepage.html.twig:32 + templates\homepage.html.twig:29 + + + homepage.help.caption + Ayuda + + + + + Part-DB1\templates\homepage.html.twig:32 + Part-DB1\templates\homepage.html.twig:32 + templates\homepage.html.twig:29 + + + homepage.help.text + Ayuda y sugerencias pueden ser encontradas en la Wiki de <a href="%href%" class="link-external" target="_blank">GitHub página</a> + + + + + Part-DB1\templates\homepage.html.twig:33 + Part-DB1\templates\homepage.html.twig:33 + templates\homepage.html.twig:30 + + + homepage.forum.caption + Foro + + + + + Part-DB1\templates\homepage.html.twig:45 + Part-DB1\templates\homepage.html.twig:45 + new + + + homepage.last_activity + Última actividad + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:3 + Part-DB1\templates\LabelSystem\dialog.html.twig:6 + + + label_generator.title + Generador de etiquetas + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:16 + + + label_generator.common + Común + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:20 + + + label_generator.advanced + Avanzado + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:24 + + + label_generator.profiles + Perfiles + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:58 + + + label_generator.selected_profile + Perfil seleccionado + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:62 + + + label_generator.edit_profile + Editar perfil + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:75 + + + label_generator.load_profile + Cargar perfil + + + + + Part-DB1\templates\LabelSystem\dialog.html.twig:102 + + + label_generator.download + Descargar + + + + + Part-DB1\templates\LabelSystem\dropdown_macro.html.twig:3 + Part-DB1\templates\LabelSystem\dropdown_macro.html.twig:5 + + + label_generator.label_btn + Generar etiqueta + + + + + Part-DB1\templates\LabelSystem\dropdown_macro.html.twig:20 + + + label_generator.label_empty + Nueva etiqueta vacía + + + + + Part-DB1\templates\LabelSystem\Scanner\dialog.html.twig:3 + + + label_scanner.title + Lector de etiquetas + + + + + Part-DB1\templates\LabelSystem\Scanner\dialog.html.twig:7 + + + label_scanner.no_cam_found.title + Webcam no encontrada + + + + + Part-DB1\templates\LabelSystem\Scanner\dialog.html.twig:7 + + + label_scanner.no_cam_found.text + Necesitas una webcam y dar permiso para utilizar la función del lector. Puedes introducir el código de barras manualmente abajo. + + + + + Part-DB1\templates\LabelSystem\Scanner\dialog.html.twig:27 + + + label_scanner.source_select + Selecciona una fuente + + + + + Part-DB1\templates\LogSystem\log_list.html.twig:3 + Part-DB1\templates\LogSystem\log_list.html.twig:3 + + + log.list.title + Registro de sistema + + + + + Part-DB1\templates\LogSystem\_log_table.html.twig:1 + Part-DB1\templates\LogSystem\_log_table.html.twig:1 + new + + + log.undo.confirm_title + ¿Quieres deshacer el cambio / volver a una fecha anterior? + + + + + Part-DB1\templates\LogSystem\_log_table.html.twig:2 + Part-DB1\templates\LogSystem\_log_table.html.twig:2 + new + + + log.undo.confirm_message + ¿Estás seguro de que quieres deshacer el cambio / reiniciar el elemento a una fecha dada? + + + + + Part-DB1\templates\mail\base.html.twig:24 + Part-DB1\templates\mail\base.html.twig:24 + + + mail.footer.email_sent_by + Este e-mail fue enviado automáticamente por + + + + + Part-DB1\templates\mail\base.html.twig:24 + Part-DB1\templates\mail\base.html.twig:24 + + + mail.footer.dont_reply + No respondas a este e-mail. + + + + + Part-DB1\templates\mail\pw_reset.html.twig:6 + Part-DB1\templates\mail\pw_reset.html.twig:6 + + + email.hi %name% + Hi %name% + + + + + Part-DB1\templates\mail\pw_reset.html.twig:7 + Part-DB1\templates\mail\pw_reset.html.twig:7 + + + email.pw_reset.message + Alguien (esperemos que tú) ha solicitado cambiar la contraseña. Si tú no lo has solicitado, ignora este email. + + + + + Part-DB1\templates\mail\pw_reset.html.twig:9 + Part-DB1\templates\mail\pw_reset.html.twig:9 + + + email.pw_reset.button + Pulsa aquí para restablecer la contraseña + + + + + Part-DB1\templates\mail\pw_reset.html.twig:11 + Part-DB1\templates\mail\pw_reset.html.twig:11 + + + email.pw_reset.fallback + Si esto no te funciona, ves a <a href="%url%">%url%</a> e introduce la siguiente información + + + + + Part-DB1\templates\mail\pw_reset.html.twig:16 + Part-DB1\templates\mail\pw_reset.html.twig:16 + + + email.pw_reset.username + Nombre de usuario + + + + + Part-DB1\templates\mail\pw_reset.html.twig:19 + Part-DB1\templates\mail\pw_reset.html.twig:19 + + + email.pw_reset.token + Token + + + + + Part-DB1\templates\mail\pw_reset.html.twig:24 + Part-DB1\templates\mail\pw_reset.html.twig:24 + + + email.pw_reset.valid_unit %date% + El token de reinicio será válido hasta <i>%date%</i>. + + + + + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:18 + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:58 + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:78 + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:58 + + + orderdetail.delete + Eliminar + + + + + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:39 + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:39 + + + pricedetails.edit.min_qty + Cantidad mínima de descuento + + + + + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:40 + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:40 + + + pricedetails.edit.price + Precio + + + + + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:41 + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:41 + + + pricedetails.edit.price_qty + Por la cantidad + + + + + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:54 + Part-DB1\templates\Parts\edit\edit_form_styles.html.twig:54 + + + pricedetail.create + Añadir precio + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:4 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:4 + templates\Parts\edit_part_info.html.twig:4 + + + part.edit.title + Editar componente + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:9 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:9 + templates\Parts\edit_part_info.html.twig:9 + + + part.edit.card_title + Editar componente + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:22 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:22 + + + part.edit.tab.common + Común + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:28 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:28 + + + part.edit.tab.manufacturer + Fabricante + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:34 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:34 + + + part.edit.tab.advanced + Avanzado + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:40 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:40 + + + part.edit.tab.part_lots + Stock + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:46 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:46 + + + part.edit.tab.attachments + Adjuntos + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:52 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:52 + + + part.edit.tab.orderdetails + Información del pedido + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:58 + + + part.edit.tab.specifications + Parámetros + + + + + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:64 + Part-DB1\templates\Parts\edit\edit_part_info.html.twig:58 + + + part.edit.tab.comment + Notas + + + + + Part-DB1\templates\Parts\edit\new_part.html.twig:8 + Part-DB1\templates\Parts\edit\new_part.html.twig:8 + templates\Parts\new_part.html.twig:8 + + + part.new.card_title + Crear nuevo componente + + + + + Part-DB1\templates\Parts\edit\_lots.html.twig:5 + Part-DB1\templates\Parts\edit\_lots.html.twig:5 + + + part_lot.delete + Eliminar + + + + + Part-DB1\templates\Parts\edit\_lots.html.twig:28 + Part-DB1\templates\Parts\edit\_lots.html.twig:28 + + + part_lot.create + Añadir stock + + + + + Part-DB1\templates\Parts\edit\_orderdetails.html.twig:13 + Part-DB1\templates\Parts\edit\_orderdetails.html.twig:13 + + + orderdetail.create + Añadir distribuidor + + + + + Part-DB1\templates\Parts\edit\_orderdetails.html.twig:18 + Part-DB1\templates\Parts\edit\_orderdetails.html.twig:18 + + + pricedetails.edit.delete.confirm + ¿Estás seguro de que quieres eliminar este precio? No se puede deshacer. + + + + + Part-DB1\templates\Parts\edit\_orderdetails.html.twig:62 + Part-DB1\templates\Parts\edit\_orderdetails.html.twig:61 + + + orderdetails.edit.delete.confirm + ¿Estás seguro de que quieres eliminar la información de este distribuidor? ¡No se puede deshacer! + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:4 + Part-DB1\templates\Parts\info\show_part_info.html.twig:19 + Part-DB1\templates\Parts\info\show_part_info.html.twig:4 + Part-DB1\templates\Parts\info\show_part_info.html.twig:19 + templates\Parts\show_part_info.html.twig:4 + templates\Parts\show_part_info.html.twig:9 + + + part.info.title + Información detallada del componente + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:47 + Part-DB1\templates\Parts\info\show_part_info.html.twig:47 + + + part.part_lots.label + Stocks + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:56 + Part-DB1\templates\Parts\lists\_info_card.html.twig:43 + Part-DB1\templates\_navbar_search.html.twig:31 + Part-DB1\templates\_navbar_search.html.twig:26 + templates\base.html.twig:62 + templates\Parts\show_part_info.html.twig:74 + src\Form\PartType.php:86 + + + comment.label + Notas + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:64 + + + part.info.specifications + Parámetros + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:74 + Part-DB1\templates\Parts\info\show_part_info.html.twig:64 + templates\Parts\show_part_info.html.twig:82 + + + attachment.labelp + Adjuntos + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:83 + Part-DB1\templates\Parts\info\show_part_info.html.twig:71 + templates\Parts\show_part_info.html.twig:88 + + + vendor.partinfo.shopping_infos + Información de la compra + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:91 + Part-DB1\templates\Parts\info\show_part_info.html.twig:78 + templates\Parts\show_part_info.html.twig:94 + + + vendor.partinfo.history + Historial + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:97 + Part-DB1\templates\_sidebar.html.twig:54 + Part-DB1\templates\_sidebar.html.twig:13 + Part-DB1\templates\Parts\info\show_part_info.html.twig:84 + Part-DB1\templates\_sidebar.html.twig:54 + Part-DB1\templates\_sidebar.html.twig:13 + templates\base.html.twig:176 + templates\base.html.twig:203 + templates\base.html.twig:217 + templates\base.html.twig:231 + templates\Parts\show_part_info.html.twig:100 + + + tools.label + Herramientas + + + + + Part-DB1\templates\Parts\info\show_part_info.html.twig:103 + Part-DB1\templates\Parts\info\show_part_info.html.twig:90 + + + extended_info.label + Información adicional + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:7 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:7 + + + attachment.name + Nombre + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:8 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:8 + + + attachment.attachment_type + Tipo de archivo adjunto + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:9 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:9 + + + attachment.file_name + Nombre de archivo + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:10 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:10 + + + attachment.file_size + Tamaño de archivo + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:54 + + + attachment.preview + Vista previa + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:67 + Part-DB1\templates\Parts\info\_attachments_info.html.twig:50 + + + attachment.download + Descargar + + + + + Part-DB1\templates\Parts\info\_extended_infos.html.twig:11 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:11 + new + + + user.creating_user + Usuario que ha creado este componente + + + + + Part-DB1\templates\Parts\info\_extended_infos.html.twig:13 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:28 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:50 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:13 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:28 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:50 + + + Unknown + Desconocido + + + + + Part-DB1\templates\Parts\info\_extended_infos.html.twig:15 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:30 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:15 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:30 + new + + + accessDenied + Acceso denegado + + + + + Part-DB1\templates\Parts\info\_extended_infos.html.twig:26 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:26 + new + + + user.last_editing_user + Último usuario que ha editado este componente + + + + + Part-DB1\templates\Parts\info\_extended_infos.html.twig:41 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:41 + + + part.isFavorite + Favorito + + + + + Part-DB1\templates\Parts\info\_extended_infos.html.twig:46 + Part-DB1\templates\Parts\info\_extended_infos.html.twig:46 + + + part.minOrderAmount + Cantidad mínima de pedido + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:8 + Part-DB1\templates\_navbar_search.html.twig:46 + Part-DB1\src\Services\ElementTypeNameGenerator.php:84 + Part-DB1\templates\Parts\info\_main_infos.html.twig:8 + Part-DB1\templates\_navbar_search.html.twig:41 + Part-DB1\src\Services\ElementTypeNameGenerator.php:84 + templates\base.html.twig:70 + templates\Parts\show_part_info.html.twig:24 + src\Form\PartType.php:80 + + + manufacturer.label + Fabricante + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:24 + Part-DB1\templates\_navbar_search.html.twig:11 + templates\base.html.twig:54 + src\Form\PartType.php:62 + + + name.label + Nombre + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:27 + Part-DB1\templates\Parts\info\_main_infos.html.twig:27 + new + + + part.back_to_info + Volver a la versión actual + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:32 + Part-DB1\templates\_navbar_search.html.twig:19 + Part-DB1\templates\Parts\info\_main_infos.html.twig:32 + Part-DB1\templates\_navbar_search.html.twig:18 + templates\base.html.twig:58 + templates\Parts\show_part_info.html.twig:31 + src\Form\PartType.php:65 + + + description.label + Descripción + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:34 + Part-DB1\templates\_navbar_search.html.twig:15 + Part-DB1\src\Services\ElementTypeNameGenerator.php:80 + Part-DB1\templates\Parts\info\_main_infos.html.twig:34 + Part-DB1\templates\_navbar_search.html.twig:14 + Part-DB1\src\Services\ElementTypeNameGenerator.php:80 + templates\base.html.twig:56 + templates\Parts\show_part_info.html.twig:32 + src\Form\PartType.php:74 + + + category.label + Categoría + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:39 + Part-DB1\templates\Parts\info\_main_infos.html.twig:39 + templates\Parts\show_part_info.html.twig:42 + src\Form\PartType.php:69 + + + instock.label + En stock + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:41 + Part-DB1\templates\Parts\info\_main_infos.html.twig:41 + templates\Parts\show_part_info.html.twig:44 + src\Form\PartType.php:72 + + + mininstock.label + Stock mínimo + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:45 + Part-DB1\templates\_navbar_search.html.twig:52 + Part-DB1\src\Services\ElementTypeNameGenerator.php:83 + Part-DB1\templates\Parts\info\_main_infos.html.twig:45 + Part-DB1\templates\_navbar_search.html.twig:47 + Part-DB1\src\Services\ElementTypeNameGenerator.php:83 + templates\base.html.twig:73 + templates\Parts\show_part_info.html.twig:47 + + + footprint.label + Footprint + + + + + Part-DB1\templates\Parts\info\_main_infos.html.twig:56 + Part-DB1\templates\Parts\info\_main_infos.html.twig:59 + Part-DB1\templates\Parts\info\_main_infos.html.twig:57 + Part-DB1\templates\Parts\info\_main_infos.html.twig:60 + templates\Parts\show_part_info.html.twig:51 + + + part.avg_price.label + Precio promedio + + + + + Part-DB1\templates\Parts\info\_order_infos.html.twig:5 + Part-DB1\templates\Parts\info\_order_infos.html.twig:5 + + + part.supplier.name + Nombre + + + + + Part-DB1\templates\Parts\info\_order_infos.html.twig:6 + Part-DB1\templates\Parts\info\_order_infos.html.twig:6 + + + part.supplier.partnr + Nº de pedido + + + + + Part-DB1\templates\Parts\info\_order_infos.html.twig:28 + Part-DB1\templates\Parts\info\_order_infos.html.twig:28 + + + part.order.minamount + Cantidad mínima + + + + + Part-DB1\templates\Parts\info\_order_infos.html.twig:29 + Part-DB1\templates\Parts\info\_order_infos.html.twig:29 + + + part.order.price + Precio + + + + + Part-DB1\templates\Parts\info\_order_infos.html.twig:31 + Part-DB1\templates\Parts\info\_order_infos.html.twig:31 + + + part.order.single_price + Precio unitario + + + + + Part-DB1\templates\Parts\info\_order_infos.html.twig:71 + Part-DB1\templates\Parts\info\_order_infos.html.twig:71 + + + edit.caption_short + Editar + + + + + Part-DB1\templates\Parts\info\_order_infos.html.twig:72 + Part-DB1\templates\Parts\info\_order_infos.html.twig:72 + + + delete.caption + Eliminar + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:7 + Part-DB1\templates\Parts\info\_part_lots.html.twig:6 + + + part_lots.description + Descripción + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:8 + Part-DB1\templates\Parts\info\_part_lots.html.twig:7 + + + part_lots.storage_location + Ubicación de almacenamiento + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:9 + Part-DB1\templates\Parts\info\_part_lots.html.twig:8 + + + part_lots.amount + Cantidad + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:24 + Part-DB1\templates\Parts\info\_part_lots.html.twig:22 + + + part_lots.location_unknown + Ubicación del almacén desconocida + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:31 + Part-DB1\templates\Parts\info\_part_lots.html.twig:29 + + + part_lots.instock_unknown + Cantidad desconocida + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:40 + Part-DB1\templates\Parts\info\_part_lots.html.twig:38 + + + part_lots.expiration_date + Fecha de vencimiento + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:48 + Part-DB1\templates\Parts\info\_part_lots.html.twig:46 + + + part_lots.is_expired + Caducado + + + + + Part-DB1\templates\Parts\info\_part_lots.html.twig:55 + Part-DB1\templates\Parts\info\_part_lots.html.twig:53 + + + part_lots.need_refill + Necesita ser recargado + + + + + Part-DB1\templates\Parts\info\_picture.html.twig:15 + Part-DB1\templates\Parts\info\_picture.html.twig:15 + + + part.info.prev_picture + Imagen previa + + + + + Part-DB1\templates\Parts\info\_picture.html.twig:19 + Part-DB1\templates\Parts\info\_picture.html.twig:19 + + + part.info.next_picture + Siguiente imagen + + + + + Part-DB1\templates\Parts\info\_sidebar.html.twig:21 + Part-DB1\templates\Parts\info\_sidebar.html.twig:21 + + + part.mass.tooltip + Peso + + + + + Part-DB1\templates\Parts\info\_sidebar.html.twig:30 + Part-DB1\templates\Parts\info\_sidebar.html.twig:30 + + + part.needs_review.badge + Necesita revisión + + + + + Part-DB1\templates\Parts\info\_sidebar.html.twig:39 + Part-DB1\templates\Parts\info\_sidebar.html.twig:39 + + + part.favorite.badge + Favorito + + + + + Part-DB1\templates\Parts\info\_sidebar.html.twig:47 + Part-DB1\templates\Parts\info\_sidebar.html.twig:47 + + + part.obsolete.badge + No disponible + + + + + Part-DB1\templates\Parts\info\_specifications.html.twig:10 + + + parameters.extracted_from_description + Extraído automáticamente de la descripción + + + + + Part-DB1\templates\Parts\info\_specifications.html.twig:15 + + + parameters.auto_extracted_from_comment + Extraído automáticamente de las notas + + + + + Part-DB1\templates\Parts\info\_tools.html.twig:6 + Part-DB1\templates\Parts\info\_tools.html.twig:4 + templates\Parts\show_part_info.html.twig:125 + + + part.edit.btn + Editar componente + + + + + Part-DB1\templates\Parts\info\_tools.html.twig:16 + Part-DB1\templates\Parts\info\_tools.html.twig:14 + templates\Parts\show_part_info.html.twig:135 + + + part.clone.btn + Clonar componente + + + + + Part-DB1\templates\Parts\info\_tools.html.twig:24 + Part-DB1\templates\Parts\lists\_action_bar.html.twig:4 + templates\Parts\show_part_info.html.twig:143 + + + part.create.btn + Crear nuevo componente + + + + + Part-DB1\templates\Parts\info\_tools.html.twig:31 + Part-DB1\templates\Parts\info\_tools.html.twig:29 + + + part.delete.confirm_title + ¿De verdad quieres eliminar este componente? + + + + + Part-DB1\templates\Parts\info\_tools.html.twig:32 + Part-DB1\templates\Parts\info\_tools.html.twig:30 + + + part.delete.message + Este componente y la información asociada (adjuntos, precio, etc.) serán eliminados. ¡Esto no se puede deshacer! + + + + + Part-DB1\templates\Parts\info\_tools.html.twig:39 + Part-DB1\templates\Parts\info\_tools.html.twig:37 + + + part.delete + Eliminar componente + + + + + Part-DB1\templates\Parts\lists\all_list.html.twig:4 + Part-DB1\templates\Parts\lists\all_list.html.twig:4 + + + parts_list.all.title + Todos los componentes + + + + + Part-DB1\templates\Parts\lists\category_list.html.twig:4 + Part-DB1\templates\Parts\lists\category_list.html.twig:4 + + + parts_list.category.title + Componentes con categoría + + + + + Part-DB1\templates\Parts\lists\footprint_list.html.twig:4 + Part-DB1\templates\Parts\lists\footprint_list.html.twig:4 + + + parts_list.footprint.title + Componentes con footprint + + + + + Part-DB1\templates\Parts\lists\manufacturer_list.html.twig:4 + Part-DB1\templates\Parts\lists\manufacturer_list.html.twig:4 + + + parts_list.manufacturer.title + Componentes con fabricante + + + + + Part-DB1\templates\Parts\lists\search_list.html.twig:4 + Part-DB1\templates\Parts\lists\search_list.html.twig:4 + + + parts_list.search.title + Buscar componentes + + + + + Part-DB1\templates\Parts\lists\store_location_list.html.twig:4 + Part-DB1\templates\Parts\lists\store_location_list.html.twig:4 + + + parts_list.storelocation.title + Componentes con ubicación de almacenaje + + + + + Part-DB1\templates\Parts\lists\supplier_list.html.twig:4 + Part-DB1\templates\Parts\lists\supplier_list.html.twig:4 + + + parts_list.supplier.title + Componentes con proveedor + + + + + Part-DB1\templates\Parts\lists\tags_list.html.twig:4 + Part-DB1\templates\Parts\lists\tags_list.html.twig:4 + + + parts_list.tags.title + Componentes con etiqueta + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:22 + Part-DB1\templates\Parts\lists\_info_card.html.twig:17 + + + entity.info.common.tab + General + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:26 + Part-DB1\templates\Parts\lists\_info_card.html.twig:20 + + + entity.info.statistics.tab + Estadísticas + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:31 + + + entity.info.attachments.tab + Adjuntos + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:37 + + + entity.info.parameters.tab + Parámetros + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:54 + Part-DB1\templates\Parts\lists\_info_card.html.twig:30 + + + entity.info.name + Nombre + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:58 + Part-DB1\templates\Parts\lists\_info_card.html.twig:96 + Part-DB1\templates\Parts\lists\_info_card.html.twig:34 + Part-DB1\templates\Parts\lists\_info_card.html.twig:67 + + + entity.info.parent + Padre + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:70 + Part-DB1\templates\Parts\lists\_info_card.html.twig:46 + + + entity.edit.btn + Editar + + + + + Part-DB1\templates\Parts\lists\_info_card.html.twig:92 + Part-DB1\templates\Parts\lists\_info_card.html.twig:63 + + + entity.info.children_count + Número de elementos hijo + + + + + Part-DB1\templates\security\2fa_base_form.html.twig:3 + Part-DB1\templates\security\2fa_base_form.html.twig:5 + Part-DB1\templates\security\2fa_base_form.html.twig:3 + Part-DB1\templates\security\2fa_base_form.html.twig:5 + + + tfa.check.title + Autenticación en dos pasos requerida + + + + + Part-DB1\templates\security\2fa_base_form.html.twig:39 + Part-DB1\templates\security\2fa_base_form.html.twig:39 + + + tfa.code.trusted_pc + Este es un dispositivo fiable (si esto se habilita, no se realizarán más consultas en dos pasos en este dispositivo) + + + + + Part-DB1\templates\security\2fa_base_form.html.twig:52 + Part-DB1\templates\security\login.html.twig:58 + Part-DB1\templates\security\2fa_base_form.html.twig:52 + Part-DB1\templates\security\login.html.twig:58 + + + login.btn + Login + + + + + Part-DB1\templates\security\2fa_base_form.html.twig:53 + Part-DB1\templates\security\U2F\u2f_login.html.twig:13 + Part-DB1\templates\_navbar.html.twig:42 + Part-DB1\templates\security\2fa_base_form.html.twig:53 + Part-DB1\templates\security\U2F\u2f_login.html.twig:13 + Part-DB1\templates\_navbar.html.twig:40 + + + user.logout + Cerrar sesión + + + + + Part-DB1\templates\security\2fa_form.html.twig:6 + Part-DB1\templates\security\2fa_form.html.twig:6 + + + tfa.check.code.label + Código de la app de autenticación + + + + + Part-DB1\templates\security\2fa_form.html.twig:10 + Part-DB1\templates\security\2fa_form.html.twig:10 + + + tfa.check.code.help + Introduce tu código de seis dígitos de tu app de autenticación o de uno de tus códigos backup si el autenticador no está disponible. + + + + + Part-DB1\templates\security\login.html.twig:3 + Part-DB1\templates\security\login.html.twig:3 + templates\security\login.html.twig:3 + + + login.title + Login + + + + + Part-DB1\templates\security\login.html.twig:7 + Part-DB1\templates\security\login.html.twig:7 + templates\security\login.html.twig:7 + + + login.card_title + Login + + + + + Part-DB1\templates\security\login.html.twig:31 + Part-DB1\templates\security\login.html.twig:31 + templates\security\login.html.twig:31 + + + login.username.label + Nombre de usuario + + + + + Part-DB1\templates\security\login.html.twig:34 + Part-DB1\templates\security\login.html.twig:34 + templates\security\login.html.twig:34 + + + login.username.placeholder + Nombre de usuario + + + + + Part-DB1\templates\security\login.html.twig:38 + Part-DB1\templates\security\login.html.twig:38 + templates\security\login.html.twig:38 + + + login.password.label + Contraseña + + + + + Part-DB1\templates\security\login.html.twig:40 + Part-DB1\templates\security\login.html.twig:40 + templates\security\login.html.twig:40 + + + login.password.placeholder + Contraseña + + + + + Part-DB1\templates\security\login.html.twig:50 + Part-DB1\templates\security\login.html.twig:50 + templates\security\login.html.twig:50 + + + login.rememberme + Recuérdame (no aconsejado en dispositivos compartidos) + + + + + Part-DB1\templates\security\login.html.twig:64 + Part-DB1\templates\security\login.html.twig:64 + + + pw_reset.password_forget + ¿Has olvidado el nombre de usuario/contraseña? + + + + + Part-DB1\templates\security\pw_reset_new_pw.html.twig:5 + Part-DB1\templates\security\pw_reset_new_pw.html.twig:5 + + + pw_reset.new_pw.header.title + Establecer nueva contraseña + + + + + Part-DB1\templates\security\pw_reset_request.html.twig:5 + Part-DB1\templates\security\pw_reset_request.html.twig:5 + + + pw_reset.request.header.title + Solicitar nueva contraseña + + + + + Part-DB1\templates\security\U2F\u2f_login.html.twig:7 + Part-DB1\templates\security\U2F\u2f_register.html.twig:10 + Part-DB1\templates\security\U2F\u2f_login.html.twig:7 + Part-DB1\templates\security\U2F\u2f_register.html.twig:10 + + + tfa_u2f.http_warning + Estás accediendo a esta página usando el método inseguro HTTP, por lo que seguramente U2F no funcione correctamente (mensaje de error Bad Request). Pídele a un administrador que establezca el método seguro HTTPS si quieres utilizar claves de seguridad. + + + + + Part-DB1\templates\security\U2F\u2f_login.html.twig:10 + Part-DB1\templates\security\U2F\u2f_register.html.twig:22 + Part-DB1\templates\security\U2F\u2f_login.html.twig:10 + Part-DB1\templates\security\U2F\u2f_register.html.twig:22 + + + r_u2f_two_factor.pressbutton + ¡Por favor, introduce tu clave de seguridad y pulsa el botón! + + + + + Part-DB1\templates\security\U2F\u2f_register.html.twig:3 + Part-DB1\templates\security\U2F\u2f_register.html.twig:3 + + + tfa_u2f.add_key.title + Añadir clave de seguridad + + + + + Part-DB1\templates\security\U2F\u2f_register.html.twig:6 + Part-DB1\templates\Users\_2fa_settings.html.twig:111 + Part-DB1\templates\security\U2F\u2f_register.html.twig:6 + Part-DB1\templates\Users\_2fa_settings.html.twig:111 + + + tfa_u2f.explanation + Con la ayuda de una clave de seguridad U2F/FIDO compatible (e.g. YubiKey o NitroKey), se puede obtener una autentiación en dos pasos segura y fácil de usar. Las claves de seguridad pueden ser registradas aquí, y si se requiere una verificación en dos pasos, solo necesitarás insertar la clave vía USB o introducirla en el dispositivo mediante NFC. + + + + + Part-DB1\templates\security\U2F\u2f_register.html.twig:7 + Part-DB1\templates\security\U2F\u2f_register.html.twig:7 + + + tfa_u2f.add_key.backup_hint + Para garantizar el acceso incluso si has perdido la clave, ¡se recomienda registrar una segunda clave como copia de seguridad y guardarla en un lugar seguro! + + + + + Part-DB1\templates\security\U2F\u2f_register.html.twig:16 + Part-DB1\templates\security\U2F\u2f_register.html.twig:16 + + + r_u2f_two_factor.name + Nombre de la clave vista (e.g. Backup) + + + + + Part-DB1\templates\security\U2F\u2f_register.html.twig:19 + Part-DB1\templates\security\U2F\u2f_register.html.twig:19 + + + tfa_u2f.add_key.add_button + Añadir clave de seguridad + + + + + Part-DB1\templates\security\U2F\u2f_register.html.twig:27 + Part-DB1\templates\security\U2F\u2f_register.html.twig:27 + + + tfa_u2f.add_key.back_to_settings + Volver a ajustes + + + + + Part-DB1\templates\Statistics\statistics.html.twig:5 + Part-DB1\templates\Statistics\statistics.html.twig:8 + Part-DB1\templates\Statistics\statistics.html.twig:5 + Part-DB1\templates\Statistics\statistics.html.twig:8 + new + + + statistics.title + Estadísticas + + + + + Part-DB1\templates\Statistics\statistics.html.twig:14 + Part-DB1\templates\Statistics\statistics.html.twig:14 + new + + + statistics.parts + Componentes + + + + + Part-DB1\templates\Statistics\statistics.html.twig:19 + Part-DB1\templates\Statistics\statistics.html.twig:19 + new + + + statistics.data_structures + Estructuras de datos + + + + + Part-DB1\templates\Statistics\statistics.html.twig:24 + Part-DB1\templates\Statistics\statistics.html.twig:24 + new + + + statistics.attachments + Adjuntos + + + + + Part-DB1\templates\Statistics\statistics.html.twig:34 + Part-DB1\templates\Statistics\statistics.html.twig:59 + Part-DB1\templates\Statistics\statistics.html.twig:104 + Part-DB1\templates\Statistics\statistics.html.twig:34 + Part-DB1\templates\Statistics\statistics.html.twig:59 + Part-DB1\templates\Statistics\statistics.html.twig:104 + new + + + statistics.property + Propiedad + + + + + Part-DB1\templates\Statistics\statistics.html.twig:35 + Part-DB1\templates\Statistics\statistics.html.twig:60 + Part-DB1\templates\Statistics\statistics.html.twig:105 + Part-DB1\templates\Statistics\statistics.html.twig:35 + Part-DB1\templates\Statistics\statistics.html.twig:60 + Part-DB1\templates\Statistics\statistics.html.twig:105 + new + + + statistics.value + Valor + + + + + Part-DB1\templates\Statistics\statistics.html.twig:40 + Part-DB1\templates\Statistics\statistics.html.twig:40 + new + + + statistics.distinct_parts_count + Número de componentes distintos + + + + + Part-DB1\templates\Statistics\statistics.html.twig:44 + Part-DB1\templates\Statistics\statistics.html.twig:44 + new + + + statistics.parts_instock_sum + Suma de todos los componentes en stock + + + + + Part-DB1\templates\Statistics\statistics.html.twig:48 + Part-DB1\templates\Statistics\statistics.html.twig:48 + new + + + statistics.parts_with_price + Número de componentes con información de precio + + + + + Part-DB1\templates\Statistics\statistics.html.twig:65 + Part-DB1\templates\Statistics\statistics.html.twig:65 + new + + + statistics.categories_count + Número de categorías + + + + + Part-DB1\templates\Statistics\statistics.html.twig:69 + Part-DB1\templates\Statistics\statistics.html.twig:69 + new + + + statistics.footprints_count + Número de footprints + + + + + Part-DB1\templates\Statistics\statistics.html.twig:73 + Part-DB1\templates\Statistics\statistics.html.twig:73 + new + + + statistics.manufacturers_count + Número de fabricantes + + + + + Part-DB1\templates\Statistics\statistics.html.twig:77 + Part-DB1\templates\Statistics\statistics.html.twig:77 + new + + + statistics.storelocations_count + Número de ubicaciones de almacenaje + + + + + Part-DB1\templates\Statistics\statistics.html.twig:81 + Part-DB1\templates\Statistics\statistics.html.twig:81 + new + + + statistics.suppliers_count + Número de proveedores + + + + + Part-DB1\templates\Statistics\statistics.html.twig:85 + Part-DB1\templates\Statistics\statistics.html.twig:85 + new + + + statistics.currencies_count + Número de divisas + + + + + Part-DB1\templates\Statistics\statistics.html.twig:89 + Part-DB1\templates\Statistics\statistics.html.twig:89 + new + + + statistics.measurement_units_count + Número de unidades de medida + + + + + Part-DB1\templates\Statistics\statistics.html.twig:93 + Part-DB1\templates\Statistics\statistics.html.twig:93 + new + + + statistics.devices_count + Número de proyectos + + + + + Part-DB1\templates\Statistics\statistics.html.twig:110 + Part-DB1\templates\Statistics\statistics.html.twig:110 + new + + + statistics.attachment_types_count + Número de tipos de adjunto + + + + + Part-DB1\templates\Statistics\statistics.html.twig:114 + Part-DB1\templates\Statistics\statistics.html.twig:114 + new + + + statistics.all_attachments_count + Número de adjuntos + + + + + Part-DB1\templates\Statistics\statistics.html.twig:118 + Part-DB1\templates\Statistics\statistics.html.twig:118 + new + + + statistics.user_uploaded_attachments_count + Número de adjuntos subidos por usuarios + + + + + Part-DB1\templates\Statistics\statistics.html.twig:122 + Part-DB1\templates\Statistics\statistics.html.twig:122 + new + + + statistics.private_attachments_count + Número de adjuntos privados + + + + + Part-DB1\templates\Statistics\statistics.html.twig:126 + Part-DB1\templates\Statistics\statistics.html.twig:126 + new + + + statistics.external_attachments_count + Número de adjuntos externos (URL) + + + + + Part-DB1\templates\Users\backup_codes.html.twig:3 + Part-DB1\templates\Users\backup_codes.html.twig:9 + Part-DB1\templates\Users\backup_codes.html.twig:3 + Part-DB1\templates\Users\backup_codes.html.twig:9 + + + tfa_backup.codes.title + Códigos backup + + + + + Part-DB1\templates\Users\backup_codes.html.twig:12 + Part-DB1\templates\Users\backup_codes.html.twig:12 + + + tfa_backup.codes.explanation + ¡Imprime estos códigos y guárdalos en un lugar seguro! + + + + + Part-DB1\templates\Users\backup_codes.html.twig:13 + Part-DB1\templates\Users\backup_codes.html.twig:13 + + + tfa_backup.codes.help + Si ya no tienes acceso a tu dispositivo con la app de autenticación (has perdido el teléfono, pérdida de datos, etc.) puedes usar uno de estos códigos para acceder a tu cuenta y configurar una nueva app de autenticación. Cada uno de estos códigos puede usarse una única vez. Se recomienda eliminar dichos códigos. Cualquiera con acceso a estos códigos podría acceder a tu cuenta, así que guárdalos en un lugar seguro. + + + + + Part-DB1\templates\Users\backup_codes.html.twig:16 + Part-DB1\templates\Users\backup_codes.html.twig:16 + + + tfa_backup.username + Nombre de usuario + + + + + Part-DB1\templates\Users\backup_codes.html.twig:29 + Part-DB1\templates\Users\backup_codes.html.twig:29 + + + tfa_backup.codes.page_generated_on + Página generada el %date% + + + + + Part-DB1\templates\Users\backup_codes.html.twig:32 + Part-DB1\templates\Users\backup_codes.html.twig:32 + + + tfa_backup.codes.print + Imprimir + + + + + Part-DB1\templates\Users\backup_codes.html.twig:35 + Part-DB1\templates\Users\backup_codes.html.twig:35 + + + tfa_backup.codes.copy_clipboard + Copiar al portapapeles + + + + + Part-DB1\templates\Users\user_info.html.twig:3 + Part-DB1\templates\Users\user_info.html.twig:6 + Part-DB1\templates\_navbar.html.twig:40 + Part-DB1\templates\Users\user_info.html.twig:3 + Part-DB1\templates\Users\user_info.html.twig:6 + Part-DB1\templates\_navbar.html.twig:38 + templates\base.html.twig:99 + templates\Users\user_info.html.twig:3 + templates\Users\user_info.html.twig:6 + + + user.info.label + Información del usuario + + + + + Part-DB1\templates\Users\user_info.html.twig:18 + Part-DB1\src\Form\UserSettingsType.php:77 + Part-DB1\templates\Users\user_info.html.twig:18 + Part-DB1\src\Form\UserSettingsType.php:77 + templates\Users\user_info.html.twig:18 + src\Form\UserSettingsType.php:32 + + + user.firstName.label + Nombre + + + + + Part-DB1\templates\Users\user_info.html.twig:24 + Part-DB1\src\Form\UserSettingsType.php:82 + Part-DB1\templates\Users\user_info.html.twig:24 + Part-DB1\src\Form\UserSettingsType.php:82 + templates\Users\user_info.html.twig:24 + src\Form\UserSettingsType.php:35 + + + user.lastName.label + Apellido + + + + + Part-DB1\templates\Users\user_info.html.twig:30 + Part-DB1\src\Form\UserSettingsType.php:92 + Part-DB1\templates\Users\user_info.html.twig:30 + Part-DB1\src\Form\UserSettingsType.php:92 + templates\Users\user_info.html.twig:30 + src\Form\UserSettingsType.php:41 + + + user.email.label + Email + + + + + Part-DB1\templates\Users\user_info.html.twig:37 + Part-DB1\src\Form\UserSettingsType.php:87 + Part-DB1\templates\Users\user_info.html.twig:37 + Part-DB1\src\Form\UserSettingsType.php:87 + templates\Users\user_info.html.twig:37 + src\Form\UserSettingsType.php:38 + + + user.department.label + Departamento + + + + + Part-DB1\templates\Users\user_info.html.twig:47 + Part-DB1\src\Form\UserSettingsType.php:73 + Part-DB1\templates\Users\user_info.html.twig:47 + Part-DB1\src\Form\UserSettingsType.php:73 + templates\Users\user_info.html.twig:47 + src\Form\UserSettingsType.php:30 + + + user.username.label + Nombre de usuario + + + + + Part-DB1\templates\Users\user_info.html.twig:53 + Part-DB1\src\Services\ElementTypeNameGenerator.php:93 + Part-DB1\templates\Users\user_info.html.twig:53 + Part-DB1\src\Services\ElementTypeNameGenerator.php:93 + templates\Users\user_info.html.twig:53 + + + group.label + Grupo: + + + + + Part-DB1\templates\Users\user_info.html.twig:67 + Part-DB1\templates\Users\user_info.html.twig:67 + + + user.permissions + Permisos + + + + + Part-DB1\templates\Users\user_settings.html.twig:3 + Part-DB1\templates\Users\user_settings.html.twig:6 + Part-DB1\templates\_navbar.html.twig:39 + Part-DB1\templates\Users\user_settings.html.twig:3 + Part-DB1\templates\Users\user_settings.html.twig:6 + Part-DB1\templates\_navbar.html.twig:37 + templates\base.html.twig:98 + templates\Users\user_settings.html.twig:3 + templates\Users\user_settings.html.twig:6 + + + user.settings.label + Configuración del usuario + + + + + Part-DB1\templates\Users\user_settings.html.twig:18 + Part-DB1\templates\Users\user_settings.html.twig:18 + templates\Users\user_settings.html.twig:14 + + + user_settings.data.label + Información personal + + + + + Part-DB1\templates\Users\user_settings.html.twig:22 + Part-DB1\templates\Users\user_settings.html.twig:22 + templates\Users\user_settings.html.twig:18 + + + user_settings.configuration.label + Configuración + + + + + Part-DB1\templates\Users\user_settings.html.twig:55 + Part-DB1\templates\Users\user_settings.html.twig:55 + templates\Users\user_settings.html.twig:48 + + + user.settings.change_pw + Restablecer contraseña + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:6 + Part-DB1\templates\Users\_2fa_settings.html.twig:6 + + + user.settings.2fa_settings + Autenticación en dos pasos + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:13 + Part-DB1\templates\Users\_2fa_settings.html.twig:13 + + + tfa.settings.google.tab + App de autenticación + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:17 + Part-DB1\templates\Users\_2fa_settings.html.twig:17 + + + tfa.settings.bakup.tab + Códigos backup + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:21 + Part-DB1\templates\Users\_2fa_settings.html.twig:21 + + + tfa.settings.u2f.tab + Claves de seguridad (U2F) + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:25 + Part-DB1\templates\Users\_2fa_settings.html.twig:25 + + + tfa.settings.trustedDevices.tab + Dispositivos confiables + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:33 + Part-DB1\templates\Users\_2fa_settings.html.twig:33 + + + tfa_google.disable.confirm_title + ¿Estás seguro de que quieres deshabilitar la app de autenticación? + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:33 + Part-DB1\templates\Users\_2fa_settings.html.twig:33 + + + tfa_google.disable.confirm_message + Si deshabilitas la app de autenticación, todos tus códigos backup serán eliminados, por lo que necesitarás reimprimirlos todos.<br> +¡Ten en cuenta que sin la autenticación en dos pasos tu cuenta no estará tan protegida contra atacantes! + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:39 + Part-DB1\templates\Users\_2fa_settings.html.twig:39 + + + tfa_google.disabled_message + ¡App de autenticación desactivada! + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:48 + Part-DB1\templates\Users\_2fa_settings.html.twig:48 + + + tfa_google.step.download + Descarga una app de autenticación (e.g. <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a> oder <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp">FreeOTP Authenticator</a>) + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:49 + Part-DB1\templates\Users\_2fa_settings.html.twig:49 + + + tfa_google.step.scan + Escanea el código QR adjunto con la app o introduce los datos manualmente + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:50 + Part-DB1\templates\Users\_2fa_settings.html.twig:50 + + + tfa_google.step.input_code + Introduce el código generado en el campo de abajo y confirma + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:51 + Part-DB1\templates\Users\_2fa_settings.html.twig:51 + + + tfa_google.step.download_backup + Imprime tus códigos backup y guárdalos en un lugar seguro + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:58 + Part-DB1\templates\Users\_2fa_settings.html.twig:58 + + + tfa_google.manual_setup + Configuración manual + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:62 + Part-DB1\templates\Users\_2fa_settings.html.twig:62 + + + tfa_google.manual_setup.type + Tipo + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:63 + Part-DB1\templates\Users\_2fa_settings.html.twig:63 + + + tfa_google.manual_setup.username + Nombre de usuario + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:64 + Part-DB1\templates\Users\_2fa_settings.html.twig:64 + + + tfa_google.manual_setup.secret + Secreto + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:65 + Part-DB1\templates\Users\_2fa_settings.html.twig:65 + + + tfa_google.manual_setup.digit_count + Número de caracteres + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:74 + Part-DB1\templates\Users\_2fa_settings.html.twig:74 + + + tfa_google.enabled_message + App de autenticación activada + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:83 + Part-DB1\templates\Users\_2fa_settings.html.twig:83 + + + tfa_backup.disabled + Códigos backup desactivados. Configura la app de autenticación para activar los códigos backup de nuevo. + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:84 + Part-DB1\templates\Users\_2fa_settings.html.twig:92 + Part-DB1\templates\Users\_2fa_settings.html.twig:84 + Part-DB1\templates\Users\_2fa_settings.html.twig:92 + + + tfa_backup.explanation + Puedes usar estos códigos backup para acceder a tu cuenta incluso si pierdes el dispositivo con la app de autenticación. Imprime los códigos y guárdalos en un lugar seguro. + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:88 + Part-DB1\templates\Users\_2fa_settings.html.twig:88 + + + tfa_backup.reset_codes.confirm_title + ¿Quieres restablecer los códigos? + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:88 + Part-DB1\templates\Users\_2fa_settings.html.twig:88 + + + tfa_backup.reset_codes.confirm_message + Esto eliminará los códigos previos y generará un nuevo conjunto de códigos. Esto no se puede deshacer. ¡Recuerda imprimir los nuevos códigos y guárdalos en un lugar seguro! + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:91 + Part-DB1\templates\Users\_2fa_settings.html.twig:91 + + + tfa_backup.enabled + Códigos backup activados + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:99 + Part-DB1\templates\Users\_2fa_settings.html.twig:99 + + + tfa_backup.show_codes + Mostrar códigos backup + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:114 + Part-DB1\templates\Users\_2fa_settings.html.twig:114 + + + tfa_u2f.table_caption + Claves de seguridad registradas + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:115 + Part-DB1\templates\Users\_2fa_settings.html.twig:115 + + + tfa_u2f.delete_u2f.confirm_title + ¿Quieres eliminar esta clave de seguridad? + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:116 + Part-DB1\templates\Users\_2fa_settings.html.twig:116 + + + tfa_u2f.delete_u2f.confirm_message + Si eliminas esta clave, ya no podrás iniciar sesión con esta clave. Si no quedan claves de seguridad, la autenticación en dos pasos se desactivará. + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:123 + Part-DB1\templates\Users\_2fa_settings.html.twig:123 + + + tfa_u2f.keys.name + Nombre de la clave + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:124 + Part-DB1\templates\Users\_2fa_settings.html.twig:124 + + + tfa_u2f.keys.added_date + Fecha de registro + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:134 + Part-DB1\templates\Users\_2fa_settings.html.twig:134 + + + tfa_u2f.key_delete + Eliminar clave + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:141 + Part-DB1\templates\Users\_2fa_settings.html.twig:141 + + + tfa_u2f.no_keys_registered + No hay claves registradas. + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:144 + Part-DB1\templates\Users\_2fa_settings.html.twig:144 + + + tfa_u2f.add_new_key + Registrar una nueva clave de seguridad + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:148 + Part-DB1\templates\Users\_2fa_settings.html.twig:148 + + + tfa_trustedDevices.explanation + Cuando compruebes el segundo factor, el dispositivo actual será marcado como fiable, por lo que no se necesitará comprobarlo más en el mismo dispositivo. + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:149 + Part-DB1\templates\Users\_2fa_settings.html.twig:149 + + + tfa_trustedDevices.invalidate.confirm_title + ¿Quieres eliminar todos los dispositivos fiables? + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:150 + Part-DB1\templates\Users\_2fa_settings.html.twig:150 + + + tfa_trustedDevices.invalidate.confirm_message + Tendrás que realizar de nuevo la autenticación en dos pasos en todos los dispositivos. Asegúrate de que tienes el dispositivo autenticador a mano. + + + + + Part-DB1\templates\Users\_2fa_settings.html.twig:154 + Part-DB1\templates\Users\_2fa_settings.html.twig:154 + + + tfa_trustedDevices.invalidate.btn + Restablecer los dispositivos fiables + + + + + Part-DB1\templates\_navbar.html.twig:4 + Part-DB1\templates\_navbar.html.twig:4 + templates\base.html.twig:29 + + + sidebar.toggle + Activar/desactivar la barra lateral + + + + + Part-DB1\templates\_navbar.html.twig:22 + + + navbar.scanner.link + Escáner + + + + + Part-DB1\templates\_navbar.html.twig:38 + Part-DB1\templates\_navbar.html.twig:36 + templates\base.html.twig:97 + + + user.loggedin.label + Se ha iniciado sesión como + + + + + Part-DB1\templates\_navbar.html.twig:44 + Part-DB1\templates\_navbar.html.twig:42 + templates\base.html.twig:103 + + + user.login + Iniciar sesión + + + + + Part-DB1\templates\_navbar.html.twig:50 + Part-DB1\templates\_navbar.html.twig:48 + + + ui.toggle_darkmode + Modo oscuro + + + + + Part-DB1\templates\_navbar.html.twig:54 + Part-DB1\src\Form\UserSettingsType.php:97 + Part-DB1\templates\_navbar.html.twig:52 + Part-DB1\src\Form\UserSettingsType.php:97 + templates\base.html.twig:106 + src\Form\UserSettingsType.php:44 + + + user.language_select + Cambiar idioma + + + + + Part-DB1\templates\_navbar_search.html.twig:4 + Part-DB1\templates\_navbar_search.html.twig:4 + templates\base.html.twig:49 + + + search.options.label + Opciones de búsqueda + + + + + Part-DB1\templates\_navbar_search.html.twig:23 + + + tags.label + Etiquetas + + + + + Part-DB1\templates\_navbar_search.html.twig:27 + Part-DB1\src\Form\LabelOptionsType.php:68 + Part-DB1\src\Services\ElementTypeNameGenerator.php:88 + Part-DB1\src\Services\ElementTypeNameGenerator.php:88 + templates\base.html.twig:60 + templates\Parts\show_part_info.html.twig:36 + src\Form\PartType.php:77 + + + storelocation.label + Ubicación de almacenaje + + + + + Part-DB1\templates\_navbar_search.html.twig:36 + Part-DB1\templates\_navbar_search.html.twig:31 + templates\base.html.twig:65 + + + ordernumber.label.short + Código del proveedor + + + + + Part-DB1\templates\_navbar_search.html.twig:40 + Part-DB1\src\Services\ElementTypeNameGenerator.php:89 + Part-DB1\templates\_navbar_search.html.twig:35 + Part-DB1\src\Services\ElementTypeNameGenerator.php:89 + templates\base.html.twig:67 + + + supplier.label + Proveedor + + + + + Part-DB1\templates\_navbar_search.html.twig:57 + Part-DB1\templates\_navbar_search.html.twig:52 + templates\base.html.twig:75 + + + search.deactivateBarcode + Desactivar código de barras + + + + + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_navbar_search.html.twig:56 + templates\base.html.twig:77 + + + search.regexmatching + Reg.Ex. Matching + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + ¡Vamos! + + + + + Part-DB1\templates\_sidebar.html.twig:37 + Part-DB1\templates\_sidebar.html.twig:12 + Part-DB1\templates\_sidebar.html.twig:37 + Part-DB1\templates\_sidebar.html.twig:12 + templates\base.html.twig:175 + templates\base.html.twig:189 + templates\base.html.twig:202 + templates\base.html.twig:230 + + + project.labelp + Proyectos + + + + + Part-DB1\templates\_sidebar.html.twig:2 + Part-DB1\templates\_sidebar.html.twig:2 + templates\base.html.twig:165 + templates\base.html.twig:192 + templates\base.html.twig:220 + + + actions + Acciones + + + + + Part-DB1\templates\_sidebar.html.twig:6 + Part-DB1\templates\_sidebar.html.twig:6 + templates\base.html.twig:169 + templates\base.html.twig:196 + templates\base.html.twig:224 + + + datasource + Fuente de datos + + + + + Part-DB1\templates\_sidebar.html.twig:10 + Part-DB1\templates\_sidebar.html.twig:10 + templates\base.html.twig:173 + templates\base.html.twig:200 + templates\base.html.twig:228 + + + manufacturer.labelp + Fabricantes + + + + + Part-DB1\templates\_sidebar.html.twig:11 + Part-DB1\templates\_sidebar.html.twig:11 + templates\base.html.twig:174 + templates\base.html.twig:201 + templates\base.html.twig:229 + + + supplier.labelp + Proveedores + + + + + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:213 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:293 + Part-DB1\src\Controller\PartController.php:173 + Part-DB1\src\Controller\PartController.php:293 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:181 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:243 + Part-DB1\src\Controller\PartController.php:173 + Part-DB1\src\Controller\PartController.php:268 + + + attachment.download_failed + Descarga fallida de adjuntos externos + + + + + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:222 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:190 + + + entity.edit_flash + Cambios guardados con éxito. + + + + + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:231 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:196 + + + entity.edit_flash.invalid + Los cambios no han podido guardarse. ¡Por favor, comprueba la información! + + + + + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:302 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:252 + + + entity.created_flash + Elemento creado + + + + + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:308 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:258 + + + entity.created_flash.invalid + No se ha podido crear el elemento. ¡Por favor, comprueba los datos! + + + + + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:399 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:352 + src\Controller\BaseAdminController.php:154 + + + attachment_type.deleted + ¡Elemento eliminado! + + + + + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:401 + Part-DB1\src\Controller\UserController.php:109 + Part-DB1\src\Controller\UserSettingsController.php:159 + Part-DB1\src\Controller\UserSettingsController.php:193 + Part-DB1\src\Controller\AdminPages\BaseAdminController.php:354 + Part-DB1\src\Controller\UserController.php:101 + Part-DB1\src\Controller\UserSettingsController.php:150 + Part-DB1\src\Controller\UserSettingsController.php:182 + + + csfr_invalid + Token CSFR no válido. Por favor, refresca esta página o contacta con un administrador si este mensaje no desaparece. + + + + + Part-DB1\src\Controller\LabelController.php:125 + + + label_generator.no_entities_found + No se encontraron entidades que coincidan. + + + + + Part-DB1\src\Controller\LogController.php:149 + Part-DB1\src\Controller\LogController.php:154 + new + + + log.undo.target_not_found + ¡No se pudo encontrar el elemento en la base de datos! + + + + + Part-DB1\src\Controller\LogController.php:156 + Part-DB1\src\Controller\LogController.php:160 + new + + + log.undo.revert_success + Componente restablecido con éxito. + + + + + Part-DB1\src\Controller\LogController.php:176 + Part-DB1\src\Controller\LogController.php:180 + new + + + log.undo.element_undelete_success + Elemento recuperado con éxito. + + + + + Part-DB1\src\Controller\LogController.php:178 + Part-DB1\src\Controller\LogController.php:182 + new + + + log.undo.element_element_already_undeleted + ¡El elemento ya ha sido recuperado! + + + + + Part-DB1\src\Controller\LogController.php:185 + Part-DB1\src\Controller\LogController.php:189 + new + + + log.undo.element_delete_success + Elemento eliminado con éxito. + + + + + Part-DB1\src\Controller\LogController.php:187 + Part-DB1\src\Controller\LogController.php:191 + new + + + log.undo.element.element_already_delted + ¡El elemento ya ha sido eliminado! + + + + + Part-DB1\src\Controller\LogController.php:194 + Part-DB1\src\Controller\LogController.php:198 + new + + + log.undo.element_change_undone + ¡Cambio deshecho con éxito! + + + + + Part-DB1\src\Controller\LogController.php:196 + Part-DB1\src\Controller\LogController.php:200 + new + + + log.undo.do_undelete_before + ¡Debes recuperar el elemento antes de poder deshacer el cambio! + + + + + Part-DB1\src\Controller\LogController.php:199 + Part-DB1\src\Controller\LogController.php:203 + new + + + log.undo.log_type_invalid + ¡Esta entrada del registro no se puede deshacer! + + + + + Part-DB1\src\Controller\PartController.php:182 + Part-DB1\src\Controller\PartController.php:182 + src\Controller\PartController.php:80 + + + part.edited_flash + ¡Los cambios han sido guardados! + + + + + Part-DB1\src\Controller\PartController.php:186 + Part-DB1\src\Controller\PartController.php:186 + + + part.edited_flash.invalid + Error en el guardado: ¡Por favor, comprueba los datos! + + + + + Part-DB1\src\Controller\PartController.php:216 + Part-DB1\src\Controller\PartController.php:219 + + + part.deleted + Componente eliminado con éxito. + + + + + Part-DB1\src\Controller\PartController.php:302 + Part-DB1\src\Controller\PartController.php:277 + Part-DB1\src\Controller\PartController.php:317 + src\Controller\PartController.php:113 + src\Controller\PartController.php:142 + + + part.created_flash + ¡Componente creado! + + + + + Part-DB1\src\Controller\PartController.php:308 + Part-DB1\src\Controller\PartController.php:283 + + + part.created_flash.invalid + Error durante la creación: ¡Por favor, comprueba los datos! + + + + + Part-DB1\src\Controller\ScanController.php:68 + Part-DB1\src\Controller\ScanController.php:90 + + + scan.qr_not_found + No se ha encontrado elemento con ese código de barras. + + + + + Part-DB1\src\Controller\ScanController.php:71 + + + scan.format_unknown + ¡Formato desconocido! + + + + + Part-DB1\src\Controller\ScanController.php:86 + + + scan.qr_success + ¡Elemento encontrado! + + + + + Part-DB1\src\Controller\SecurityController.php:114 + Part-DB1\src\Controller\SecurityController.php:109 + + + pw_reset.user_or_email + Nombre de usuario / Email + + + + + Part-DB1\src\Controller\SecurityController.php:131 + Part-DB1\src\Controller\SecurityController.php:126 + + + pw_reset.request.success + ¡La solicitud de reinicio fue exitosa! Por favor, comprueba tus emails para más instrucciones. + + + + + Part-DB1\src\Controller\SecurityController.php:162 + Part-DB1\src\Controller\SecurityController.php:160 + + + pw_reset.username + Nombre de usuario + + + + + Part-DB1\src\Controller\SecurityController.php:165 + Part-DB1\src\Controller\SecurityController.php:163 + + + pw_reset.token + Token + + + + + Part-DB1\src\Controller\SecurityController.php:194 + Part-DB1\src\Controller\SecurityController.php:192 + + + pw_reset.new_pw.error + ¡Nombre de usuario o token no válidos! Por favor, comprueba los datos. + + + + + Part-DB1\src\Controller\SecurityController.php:196 + Part-DB1\src\Controller\SecurityController.php:194 + + + pw_reset.new_pw.success + La contraseña ha sido restablecida con éxito. Puedes ahora iniciar sesión con tu nueva contraseña. + + + + + Part-DB1\src\Controller\UserController.php:107 + Part-DB1\src\Controller\UserController.php:99 + + + user.edit.reset_success + Todos los métodos de autenticación en dos pasos han sido desactivados. + + + + + Part-DB1\src\Controller\UserSettingsController.php:101 + Part-DB1\src\Controller\UserSettingsController.php:92 + + + tfa_backup.no_codes_enabled + ¡No hay ningún código backup activado! + + + + + Part-DB1\src\Controller\UserSettingsController.php:138 + Part-DB1\src\Controller\UserSettingsController.php:132 + + + tfa_u2f.u2f_delete.not_existing + No existe ninguna clave de seguridad con este ID. + + + + + Part-DB1\src\Controller\UserSettingsController.php:145 + Part-DB1\src\Controller\UserSettingsController.php:139 + + + tfa_u2f.u2f_delete.access_denied + ¡No puedes eliminar las claves de seguridad de otros usuarios! + + + + + Part-DB1\src\Controller\UserSettingsController.php:153 + Part-DB1\src\Controller\UserSettingsController.php:147 + + + tfa.u2f.u2f_delete.success + La clave de seguridad ha sido eliminada con éxito. + + + + + Part-DB1\src\Controller\UserSettingsController.php:188 + Part-DB1\src\Controller\UserSettingsController.php:180 + + + tfa_trustedDevice.invalidate.success + Los dispositivos fiables han sido restablecidos con éxito. + + + + + Part-DB1\src\Controller\UserSettingsController.php:235 + Part-DB1\src\Controller\UserSettingsController.php:226 + src\Controller\UserController.php:98 + + + user.settings.saved_flash + ¡Configuración guardada! + + + + + Part-DB1\src\Controller\UserSettingsController.php:297 + Part-DB1\src\Controller\UserSettingsController.php:288 + src\Controller\UserController.php:130 + + + user.settings.pw_changed_flash + ¡Contraseña cambiada! + + + + + Part-DB1\src\Controller\UserSettingsController.php:317 + Part-DB1\src\Controller\UserSettingsController.php:306 + + + user.settings.2fa.google.activated + La app de autenticación ha sido activada con éxito. + + + + + Part-DB1\src\Controller\UserSettingsController.php:328 + Part-DB1\src\Controller\UserSettingsController.php:315 + + + user.settings.2fa.google.disabled + La app de autenticación ha sido desactivada con éxito. + + + + + Part-DB1\src\Controller\UserSettingsController.php:346 + Part-DB1\src\Controller\UserSettingsController.php:332 + + + user.settings.2fa.backup_codes.regenerated + Se han generado nuevos códigos backup con éxito. + + + + + Part-DB1\src\DataTables\AttachmentDataTable.php:148 + Part-DB1\src\DataTables\AttachmentDataTable.php:148 + + + attachment.table.filename + Nombre del archivo + + + + + Part-DB1\src\DataTables\AttachmentDataTable.php:153 + Part-DB1\src\DataTables\AttachmentDataTable.php:153 + + + attachment.table.filesize + Tamaño del archivo + + + + + Part-DB1\src\DataTables\AttachmentDataTable.php:183 + Part-DB1\src\DataTables\AttachmentDataTable.php:191 + Part-DB1\src\DataTables\AttachmentDataTable.php:200 + Part-DB1\src\DataTables\AttachmentDataTable.php:209 + Part-DB1\src\DataTables\PartsDataTable.php:245 + Part-DB1\src\DataTables\PartsDataTable.php:252 + Part-DB1\src\DataTables\AttachmentDataTable.php:183 + Part-DB1\src\DataTables\AttachmentDataTable.php:191 + Part-DB1\src\DataTables\AttachmentDataTable.php:200 + Part-DB1\src\DataTables\AttachmentDataTable.php:209 + Part-DB1\src\DataTables\PartsDataTable.php:193 + Part-DB1\src\DataTables\PartsDataTable.php:200 + + + true + Verdadero + + + + + Part-DB1\src\DataTables\AttachmentDataTable.php:184 + Part-DB1\src\DataTables\AttachmentDataTable.php:192 + Part-DB1\src\DataTables\AttachmentDataTable.php:201 + Part-DB1\src\DataTables\AttachmentDataTable.php:210 + Part-DB1\src\DataTables\PartsDataTable.php:246 + Part-DB1\src\DataTables\PartsDataTable.php:253 + Part-DB1\src\Form\Type\SIUnitType.php:139 + Part-DB1\src\DataTables\AttachmentDataTable.php:184 + Part-DB1\src\DataTables\AttachmentDataTable.php:192 + Part-DB1\src\DataTables\AttachmentDataTable.php:201 + Part-DB1\src\DataTables\AttachmentDataTable.php:210 + Part-DB1\src\DataTables\PartsDataTable.php:194 + Part-DB1\src\DataTables\PartsDataTable.php:201 + Part-DB1\src\Form\Type\SIUnitType.php:139 + + + false + Falso + + + + + Part-DB1\src\DataTables\Column\LogEntryTargetColumn.php:128 + Part-DB1\src\DataTables\Column\LogEntryTargetColumn.php:119 + + + log.target_deleted + Eliminado + + + + + Part-DB1\src\DataTables\Column\RevertLogColumn.php:57 + Part-DB1\src\DataTables\Column\RevertLogColumn.php:60 + new + + + log.undo.undelete + Recuperar elemento + + + + + Part-DB1\src\DataTables\Column\RevertLogColumn.php:63 + Part-DB1\src\DataTables\Column\RevertLogColumn.php:66 + new + + + log.undo.undo + Deshacer cambio + + + + + Part-DB1\src\DataTables\Column\RevertLogColumn.php:83 + Part-DB1\src\DataTables\Column\RevertLogColumn.php:86 + new + + + log.undo.revert + Restablecer elemento a esta fecha + + + + + Part-DB1\src\DataTables\LogDataTable.php:173 + Part-DB1\src\DataTables\LogDataTable.php:161 + + + log.id + ID + + + + + Part-DB1\src\DataTables\LogDataTable.php:178 + Part-DB1\src\DataTables\LogDataTable.php:166 + + + log.timestamp + Fecha + + + + + Part-DB1\src\DataTables\LogDataTable.php:183 + Part-DB1\src\DataTables\LogDataTable.php:171 + + + log.type + Evento + + + + + Part-DB1\src\DataTables\LogDataTable.php:191 + Part-DB1\src\DataTables\LogDataTable.php:179 + + + log.level + Nivel + + + + + Part-DB1\src\DataTables\LogDataTable.php:200 + Part-DB1\src\DataTables\LogDataTable.php:188 + + + log.user + Usuario + + + + + Part-DB1\src\DataTables\LogDataTable.php:213 + Part-DB1\src\DataTables\LogDataTable.php:201 + + + log.target_type + Tipo de objetivo + + + + + Part-DB1\src\DataTables\LogDataTable.php:226 + Part-DB1\src\DataTables\LogDataTable.php:214 + + + log.target + Objetivo + + + + + Part-DB1\src\DataTables\LogDataTable.php:231 + Part-DB1\src\DataTables\LogDataTable.php:218 + new + + + log.extra + Extra + + + + + Part-DB1\src\DataTables\PartsDataTable.php:168 + Part-DB1\src\DataTables\PartsDataTable.php:116 + + + part.table.name + Nombre + + + + + Part-DB1\src\DataTables\PartsDataTable.php:178 + Part-DB1\src\DataTables\PartsDataTable.php:126 + + + part.table.id + Id + + + + + Part-DB1\src\DataTables\PartsDataTable.php:182 + Part-DB1\src\DataTables\PartsDataTable.php:130 + + + part.table.description + Descripción + + + + + Part-DB1\src\DataTables\PartsDataTable.php:185 + Part-DB1\src\DataTables\PartsDataTable.php:133 + + + part.table.category + Categoría + + + + + Part-DB1\src\DataTables\PartsDataTable.php:190 + Part-DB1\src\DataTables\PartsDataTable.php:138 + + + part.table.footprint + Footprint + + + + + Part-DB1\src\DataTables\PartsDataTable.php:194 + Part-DB1\src\DataTables\PartsDataTable.php:142 + + + part.table.manufacturer + Fabricante + + + + + Part-DB1\src\DataTables\PartsDataTable.php:197 + Part-DB1\src\DataTables\PartsDataTable.php:145 + + + part.table.storeLocations + Ubicación de almacenaje + + + + + Part-DB1\src\DataTables\PartsDataTable.php:216 + Part-DB1\src\DataTables\PartsDataTable.php:164 + + + part.table.amount + Cantidad + + + + + Part-DB1\src\DataTables\PartsDataTable.php:224 + Part-DB1\src\DataTables\PartsDataTable.php:172 + + + part.table.minamount + Cantidad mínima + + + + + Part-DB1\src\DataTables\PartsDataTable.php:232 + Part-DB1\src\DataTables\PartsDataTable.php:180 + + + part.table.partUnit + Unidad de Medida + + + + + Part-DB1\src\DataTables\PartsDataTable.php:236 + Part-DB1\src\DataTables\PartsDataTable.php:184 + + + part.table.addedDate + Creado en + + + + + Part-DB1\src\DataTables\PartsDataTable.php:240 + Part-DB1\src\DataTables\PartsDataTable.php:188 + + + part.table.lastModified + Última edición + + + + + Part-DB1\src\DataTables\PartsDataTable.php:244 + Part-DB1\src\DataTables\PartsDataTable.php:192 + + + part.table.needsReview + Necesita revisión + + + + + Part-DB1\src\DataTables\PartsDataTable.php:251 + Part-DB1\src\DataTables\PartsDataTable.php:199 + + + part.table.favorite + Favorito + + + + + Part-DB1\src\DataTables\PartsDataTable.php:258 + Part-DB1\src\DataTables\PartsDataTable.php:206 + + + part.table.manufacturingStatus + Estado + + + + + Part-DB1\src\DataTables\PartsDataTable.php:260 + Part-DB1\src\DataTables\PartsDataTable.php:262 + Part-DB1\src\Form\Part\PartBaseType.php:90 + Part-DB1\src\DataTables\PartsDataTable.php:208 + Part-DB1\src\DataTables\PartsDataTable.php:210 + Part-DB1\src\Form\Part\PartBaseType.php:88 + + + m_status.unknown + Desconocido + + + + + Part-DB1\src\DataTables\PartsDataTable.php:263 + Part-DB1\src\Form\Part\PartBaseType.php:90 + Part-DB1\src\DataTables\PartsDataTable.php:211 + Part-DB1\src\Form\Part\PartBaseType.php:88 + + + m_status.announced + Anunciado + + + + + Part-DB1\src\DataTables\PartsDataTable.php:264 + Part-DB1\src\Form\Part\PartBaseType.php:90 + Part-DB1\src\DataTables\PartsDataTable.php:212 + Part-DB1\src\Form\Part\PartBaseType.php:88 + + + m_status.active + Activo + + + + + Part-DB1\src\DataTables\PartsDataTable.php:265 + Part-DB1\src\Form\Part\PartBaseType.php:90 + Part-DB1\src\DataTables\PartsDataTable.php:213 + Part-DB1\src\Form\Part\PartBaseType.php:88 + + + m_status.nrfnd + No recomendado para nuevos diseños + + + + + Part-DB1\src\DataTables\PartsDataTable.php:266 + Part-DB1\src\Form\Part\PartBaseType.php:90 + Part-DB1\src\DataTables\PartsDataTable.php:214 + Part-DB1\src\Form\Part\PartBaseType.php:88 + + + m_status.eol + Final de vida + + + + + Part-DB1\src\DataTables\PartsDataTable.php:267 + Part-DB1\src\Form\Part\PartBaseType.php:90 + Part-DB1\src\DataTables\PartsDataTable.php:215 + Part-DB1\src\Form\Part\PartBaseType.php:88 + + + m_status.discontinued + Descontinuado + + + + + Part-DB1\src\DataTables\PartsDataTable.php:271 + Part-DB1\src\DataTables\PartsDataTable.php:219 + + + part.table.mpn + MPN + + + + + Part-DB1\src\DataTables\PartsDataTable.php:275 + Part-DB1\src\DataTables\PartsDataTable.php:223 + + + part.table.mass + Peso + + + + + Part-DB1\src\DataTables\PartsDataTable.php:279 + Part-DB1\src\DataTables\PartsDataTable.php:227 + + + part.table.tags + Etiquetas + + + + + Part-DB1\src\DataTables\PartsDataTable.php:283 + Part-DB1\src\DataTables\PartsDataTable.php:231 + + + part.table.attachments + Adjuntos + + + + + Part-DB1\src\EventSubscriber\UserSystem\LoginSuccessSubscriber.php:82 + Part-DB1\src\EventSubscriber\LoginSuccessListener.php:82 + + + flash.login_successful + Se ha iniciado sesión correctamente + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:77 + Part-DB1\src\Form\AdminPages\ImportType.php:77 + src\Form\ImportType.php:68 + + + JSON + JSON + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:77 + Part-DB1\src\Form\AdminPages\ImportType.php:77 + src\Form\ImportType.php:68 + + + XML + XML + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:77 + Part-DB1\src\Form\AdminPages\ImportType.php:77 + src\Form\ImportType.php:68 + + + CSV + CSV + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:77 + Part-DB1\src\Form\AdminPages\ImportType.php:77 + src\Form\ImportType.php:68 + + + YAML + YAML + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:124 + Part-DB1\src\Form\AdminPages\ImportType.php:124 + + + import.abort_on_validation.help + Cuando esta opción se active, el proceso de importación será abortado si se selecciona información no válida. Si no se ha seleccionado, la información incorrecta se ignorará y el importador intentará importar el resto de elementos. + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:86 + Part-DB1\src\Form\AdminPages\ImportType.php:86 + src\Form\ImportType.php:70 + + + import.csv_separator + Separador CSV + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:93 + Part-DB1\src\Form\AdminPages\ImportType.php:93 + src\Form\ImportType.php:72 + + + parent.label + Elemento padre + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:101 + Part-DB1\src\Form\AdminPages\ImportType.php:101 + src\Form\ImportType.php:75 + + + import.file + Archivo + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:111 + Part-DB1\src\Form\AdminPages\ImportType.php:111 + src\Form\ImportType.php:78 + + + import.preserve_children + Preservar elementos hijos al importar + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:120 + Part-DB1\src\Form\AdminPages\ImportType.php:120 + src\Form\ImportType.php:80 + + + import.abort_on_validation + Anular en caso de datos inválidos + + + + + Part-DB1\src\Form\AdminPages\ImportType.php:132 + Part-DB1\src\Form\AdminPages\ImportType.php:132 + src\Form\ImportType.php:85 + + + import.btn + Importar + + + + + Part-DB1\src\Form\AttachmentFormType.php:113 + Part-DB1\src\Form\AttachmentFormType.php:109 + + + attachment.edit.secure_file.help + Un adjunto marcado como privado solo puede ser accedido por usuarios autenticados que tengan el permiso necesario. Si esta opción es activada, ninguna miniatura será generada y el acceso al archivo será más lento. + + + + + Part-DB1\src\Form\AttachmentFormType.php:127 + Part-DB1\src\Form\AttachmentFormType.php:123 + + + attachment.edit.url.help + Puedes especificar una URL a un archivo externo aquí, o introducir una palabra clave para buscar recursos incorporados (p.ej. footprints) + + + + + Part-DB1\src\Form\AttachmentFormType.php:82 + Part-DB1\src\Form\AttachmentFormType.php:79 + + + attachment.edit.name + Nombre + + + + + Part-DB1\src\Form\AttachmentFormType.php:85 + Part-DB1\src\Form\AttachmentFormType.php:82 + + + attachment.edit.attachment_type + Tipo de adjunto + + + + + Part-DB1\src\Form\AttachmentFormType.php:94 + Part-DB1\src\Form\AttachmentFormType.php:91 + + + attachment.edit.show_in_table + Mostrar en la tabla + + + + + Part-DB1\src\Form\AttachmentFormType.php:105 + Part-DB1\src\Form\AttachmentFormType.php:102 + + + attachment.edit.secure_file + Adjunto privado + + + + + Part-DB1\src\Form\AttachmentFormType.php:119 + Part-DB1\src\Form\AttachmentFormType.php:115 + + + attachment.edit.url + URL + + + + + Part-DB1\src\Form\AttachmentFormType.php:133 + Part-DB1\src\Form\AttachmentFormType.php:129 + + + attachment.edit.download_url + Descargar archivo externo + + + + + Part-DB1\src\Form\AttachmentFormType.php:146 + Part-DB1\src\Form\AttachmentFormType.php:142 + + + attachment.edit.file + Subir archivo + + + + + Part-DB1\src\Form\LabelOptionsType.php:68 + Part-DB1\src\Services\ElementTypeNameGenerator.php:86 + + + part.label + Componente + + + + + Part-DB1\src\Form\LabelOptionsType.php:68 + Part-DB1\src\Services\ElementTypeNameGenerator.php:87 + + + part_lot.label + Lote del componente + + + + + Part-DB1\src\Form\LabelOptionsType.php:78 + + + label_options.barcode_type.none + Ninguno + + + + + Part-DB1\src\Form\LabelOptionsType.php:78 + + + label_options.barcode_type.qr + Código QR (recomendado) + + + + + Part-DB1\src\Form\LabelOptionsType.php:78 + + + label_options.barcode_type.code128 + Código 128 (recomendado) + + + + + Part-DB1\src\Form\LabelOptionsType.php:78 + + + label_options.barcode_type.code39 + Código 39 (recomendado) + + + + + Part-DB1\src\Form\LabelOptionsType.php:78 + + + label_options.barcode_type.code93 + Código 93 + + + + + Part-DB1\src\Form\LabelOptionsType.php:78 + + + label_options.barcode_type.datamatrix + Datamatrix + + + + + Part-DB1\src\Form\LabelOptionsType.php:122 + + + label_options.lines_mode.html + Marcador de posición + + + + + Part-DB1\src\Form\LabelOptionsType.php:122 + + + label.options.lines_mode.twig + Twig + + + + + Part-DB1\src\Form\LabelOptionsType.php:126 + + + label_options.lines_mode.help + Si aquí seleccionas Twig, el campo de contenido se interpreta como una plantilla Twig. Visita <a href="https://twig.symfony.com/doc/3.x/templates.html">Twig documentation</a> y <a href="https://docs.part-db.de/usage/labels.html#twig-mode">Wiki</a> para más información. + + + + + Part-DB1\src\Form\LabelOptionsType.php:47 + + + label_options.page_size.label + Tamaño de etiqueta + + + + + Part-DB1\src\Form\LabelOptionsType.php:66 + + + label_options.supported_elements.label + Tipo de objetivo + + + + + Part-DB1\src\Form\LabelOptionsType.php:75 + + + label_options.barcode_type.label + Código de barras + + + + + Part-DB1\src\Form\LabelOptionsType.php:102 + + + label_profile.lines.label + Contenido + + + + + Part-DB1\src\Form\LabelOptionsType.php:111 + + + label_options.additional_css.label + Estilos adicionales (CSS) + + + + + Part-DB1\src\Form\LabelOptionsType.php:120 + + + label_options.lines_mode.label + Modo parser + + + + + Part-DB1\src\Form\LabelOptionsType.php:51 + + + label_options.width.placeholder + Anchura + + + + + Part-DB1\src\Form\LabelOptionsType.php:60 + + + label_options.height.placeholder + Altura + + + + + Part-DB1\src\Form\LabelSystem\LabelDialogType.php:49 + + + label_generator.target_id.range_hint + Puedes especificar múltiples ID (ej. 1, 2, 3) y/o un intervalo (1-3) aquí para generar etiquetas para múltiples elementos a la vez. + + + + + Part-DB1\src\Form\LabelSystem\LabelDialogType.php:46 + + + label_generator.target_id.label + ID del objetivo + + + + + Part-DB1\src\Form\LabelSystem\LabelDialogType.php:59 + + + label_generator.update + Actualizar + + + + + Part-DB1\src\Form\LabelSystem\ScanDialogType.php:36 + + + scan_dialog.input + Input + + + + + Part-DB1\src\Form\LabelSystem\ScanDialogType.php:44 + + + scan_dialog.submit + Subir + + + + + Part-DB1\src\Form\ParameterType.php:41 + + + parameters.name.placeholder + p.ej. DC Current Gain + + + + + Part-DB1\src\Form\ParameterType.php:50 + + + parameters.symbol.placeholder + p.ej. h_{FE} + + + + + Part-DB1\src\Form\ParameterType.php:60 + + + parameters.text.placeholder + p.ej. Test conditions + + + + + Part-DB1\src\Form\ParameterType.php:71 + + + parameters.max.placeholder + p.ej. 350 + + + + + Part-DB1\src\Form\ParameterType.php:82 + + + parameters.min.placeholder + p.ej. 100 + + + + + Part-DB1\src\Form\ParameterType.php:93 + + + parameters.typical.placeholder + p.ej. 200 + + + + + Part-DB1\src\Form\ParameterType.php:103 + + + parameters.unit.placeholder + p.ej. V + + + + + Part-DB1\src\Form\ParameterType.php:114 + + + parameter.group.placeholder + p.ej. Especificaciones técnicas + + + + + Part-DB1\src\Form\Part\OrderdetailType.php:72 + Part-DB1\src\Form\Part\OrderdetailType.php:75 + + + orderdetails.edit.supplierpartnr + Número de componente de proveedor + + + + + Part-DB1\src\Form\Part\OrderdetailType.php:81 + Part-DB1\src\Form\Part\OrderdetailType.php:84 + + + orderdetails.edit.supplier + Proveedor + + + + + Part-DB1\src\Form\Part\OrderdetailType.php:87 + Part-DB1\src\Form\Part\OrderdetailType.php:90 + + + orderdetails.edit.url + Enlace a la oferta + + + + + Part-DB1\src\Form\Part\OrderdetailType.php:93 + Part-DB1\src\Form\Part\OrderdetailType.php:96 + + + orderdetails.edit.obsolete + Ya no disponible + + + + + Part-DB1\src\Form\Part\OrderdetailType.php:75 + Part-DB1\src\Form\Part\OrderdetailType.php:78 + + + orderdetails.edit.supplierpartnr.placeholder + p.ej. BC 547C + + + + + Part-DB1\src\Form\Part\PartBaseType.php:101 + Part-DB1\src\Form\Part\PartBaseType.php:99 + + + part.edit.name + Nombre + + + + + Part-DB1\src\Form\Part\PartBaseType.php:109 + Part-DB1\src\Form\Part\PartBaseType.php:107 + + + part.edit.description + Descripción + + + + + Part-DB1\src\Form\Part\PartBaseType.php:120 + Part-DB1\src\Form\Part\PartBaseType.php:118 + + + part.edit.mininstock + Stock mínimo + + + + + Part-DB1\src\Form\Part\PartBaseType.php:129 + Part-DB1\src\Form\Part\PartBaseType.php:127 + + + part.edit.category + Categoría + + + + + Part-DB1\src\Form\Part\PartBaseType.php:135 + Part-DB1\src\Form\Part\PartBaseType.php:133 + + + part.edit.footprint + Footprint + + + + + Part-DB1\src\Form\Part\PartBaseType.php:142 + Part-DB1\src\Form\Part\PartBaseType.php:140 + + + part.edit.tags + Etiquetas + + + + + Part-DB1\src\Form\Part\PartBaseType.php:154 + Part-DB1\src\Form\Part\PartBaseType.php:152 + + + part.edit.manufacturer.label + Fabricante + + + + + Part-DB1\src\Form\Part\PartBaseType.php:161 + Part-DB1\src\Form\Part\PartBaseType.php:159 + + + part.edit.manufacturer_url.label + Link a la página del producto + + + + + Part-DB1\src\Form\Part\PartBaseType.php:167 + Part-DB1\src\Form\Part\PartBaseType.php:165 + + + part.edit.mpn + Número del fabricante del componente + + + + + Part-DB1\src\Form\Part\PartBaseType.php:173 + Part-DB1\src\Form\Part\PartBaseType.php:171 + + + part.edit.manufacturing_status + Estado de fabricación + + + + + Part-DB1\src\Form\Part\PartBaseType.php:181 + Part-DB1\src\Form\Part\PartBaseType.php:179 + + + part.edit.needs_review + Necesita revisión + + + + + Part-DB1\src\Form\Part\PartBaseType.php:189 + Part-DB1\src\Form\Part\PartBaseType.php:187 + + + part.edit.is_favorite + Favorito + + + + + Part-DB1\src\Form\Part\PartBaseType.php:197 + Part-DB1\src\Form\Part\PartBaseType.php:195 + + + part.edit.mass + Peso + + + + + Part-DB1\src\Form\Part\PartBaseType.php:203 + Part-DB1\src\Form\Part\PartBaseType.php:201 + + + part.edit.partUnit + Unidad de medida + + + + + Part-DB1\src\Form\Part\PartBaseType.php:212 + Part-DB1\src\Form\Part\PartBaseType.php:210 + + + part.edit.comment + Notas + + + + + Part-DB1\src\Form\Part\PartBaseType.php:250 + Part-DB1\src\Form\Part\PartBaseType.php:246 + + + part.edit.master_attachment + Vista previa + + + + + Part-DB1\src\Form\Part\PartBaseType.php:295 + Part-DB1\src\Form\Part\PartBaseType.php:276 + src\Form\PartType.php:91 + + + part.edit.save + Guardar cambios + + + + + Part-DB1\src\Form\Part\PartBaseType.php:296 + Part-DB1\src\Form\Part\PartBaseType.php:277 + src\Form\PartType.php:92 + + + part.edit.reset + Restablecer cambios + + + + + Part-DB1\src\Form\Part\PartBaseType.php:105 + Part-DB1\src\Form\Part\PartBaseType.php:103 + + + part.edit.name.placeholder + p.ej. BC547 + + + + + Part-DB1\src\Form\Part\PartBaseType.php:115 + Part-DB1\src\Form\Part\PartBaseType.php:113 + + + part.edit.description.placeholder + p.ej NPN 45V, 0,1A, 0,5W + + + + + Part-DB1\src\Form\Part\PartBaseType.php:123 + Part-DB1\src\Form\Part\PartBaseType.php:121 + + + part.editmininstock.placeholder + p.ej. 1 + + + + + Part-DB1\src\Form\Part\PartLotType.php:69 + Part-DB1\src\Form\Part\PartLotType.php:69 + + + part_lot.edit.description + Descripción + + + + + Part-DB1\src\Form\Part\PartLotType.php:78 + Part-DB1\src\Form\Part\PartLotType.php:78 + + + part_lot.edit.location + Ubicación de almacenaje + + + + + Part-DB1\src\Form\Part\PartLotType.php:89 + Part-DB1\src\Form\Part\PartLotType.php:89 + + + part_lot.edit.amount + Cantidad + + + + + Part-DB1\src\Form\Part\PartLotType.php:98 + Part-DB1\src\Form\Part\PartLotType.php:97 + + + part_lot.edit.instock_unknown + Cantidad desconocida + + + + + Part-DB1\src\Form\Part\PartLotType.php:109 + Part-DB1\src\Form\Part\PartLotType.php:108 + + + part_lot.edit.needs_refill + Necesita repuesto + + + + + Part-DB1\src\Form\Part\PartLotType.php:120 + Part-DB1\src\Form\Part\PartLotType.php:119 + + + part_lot.edit.expiration_date + Fecha de caducidad + + + + + Part-DB1\src\Form\Part\PartLotType.php:128 + Part-DB1\src\Form\Part\PartLotType.php:125 + + + part_lot.edit.comment + Comentarios + + + + + Part-DB1\src\Form\Permissions\PermissionsType.php:99 + Part-DB1\src\Form\Permissions\PermissionsType.php:99 + + + perm.group.other + Varios + + + + + Part-DB1\src\Form\TFAGoogleSettingsType.php:97 + Part-DB1\src\Form\TFAGoogleSettingsType.php:97 + + + tfa_google.enable + Habilitar app de autenticación + + + + + Part-DB1\src\Form\TFAGoogleSettingsType.php:101 + Part-DB1\src\Form\TFAGoogleSettingsType.php:101 + + + tfa_google.disable + Desactivar aplicación de autenticación + + + + + Part-DB1\src\Form\TFAGoogleSettingsType.php:74 + Part-DB1\src\Form\TFAGoogleSettingsType.php:74 + + + google_confirmation + Código de confirmación + + + + + Part-DB1\src\Form\UserSettingsType.php:108 + Part-DB1\src\Form\UserSettingsType.php:108 + src\Form\UserSettingsType.php:46 + + + user.timezone.label + Zona horaria + + + + + Part-DB1\src\Form\UserSettingsType.php:133 + Part-DB1\src\Form\UserSettingsType.php:132 + + + user.currency.label + Divisa preferida + + + + + Part-DB1\src\Form\UserSettingsType.php:140 + Part-DB1\src\Form\UserSettingsType.php:139 + src\Form\UserSettingsType.php:53 + + + save + Aplicar cambios + + + + + Part-DB1\src\Form\UserSettingsType.php:141 + Part-DB1\src\Form\UserSettingsType.php:140 + src\Form\UserSettingsType.php:54 + + + reset + Descartar cambios + + + + + Part-DB1\src\Form\UserSettingsType.php:104 + Part-DB1\src\Form\UserSettingsType.php:104 + src\Form\UserSettingsType.php:45 + + + user_settings.language.placeholder + Idioma del servidor + + + + + Part-DB1\src\Form\UserSettingsType.php:115 + Part-DB1\src\Form\UserSettingsType.php:115 + src\Form\UserSettingsType.php:48 + + + user_settings.timezone.placeholder + Zona horaria del servidor + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:79 + Part-DB1\src\Services\ElementTypeNameGenerator.php:79 + + + attachment.label + Adjunto + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:81 + Part-DB1\src\Services\ElementTypeNameGenerator.php:81 + + + attachment_type.label + Tipo de adjunto + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:82 + Part-DB1\src\Services\ElementTypeNameGenerator.php:82 + + + project.label + Proyecto + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:85 + Part-DB1\src\Services\ElementTypeNameGenerator.php:85 + + + measurement_unit.label + Unidad de medida + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:90 + Part-DB1\src\Services\ElementTypeNameGenerator.php:90 + + + currency.label + Divisa + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:91 + Part-DB1\src\Services\ElementTypeNameGenerator.php:91 + + + orderdetail.label + Información del pedido + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:92 + Part-DB1\src\Services\ElementTypeNameGenerator.php:92 + + + pricedetail.label + Información del precio + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:94 + Part-DB1\src\Services\ElementTypeNameGenerator.php:94 + + + user.label + Usuario + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:95 + + + parameter.label + Parámetro + + + + + Part-DB1\src\Services\ElementTypeNameGenerator.php:96 + + + label_profile.label + Perfil de etiqueta + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:176 + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:161 + new + + + log.element_deleted.old_name.unknown + Desconocido + + + + + Part-DB1\src\Services\MarkdownParser.php:73 + Part-DB1\src\Services\MarkdownParser.php:73 + + + markdown.loading + Cargando markdown. Si este mensaje no desaparece, prueba a refrescar la página. + + + + + Part-DB1\src\Services\PasswordResetManager.php:98 + Part-DB1\src\Services\PasswordResetManager.php:98 + + + pw_reset.email.subject + Restablecer contraseña de tu cuenta Part-DB. + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:108 + + + tree.tools.tools + Herramientas + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:109 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:107 + src\Services\ToolsTreeBuilder.php:74 + + + tree.tools.edit + Editar + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:110 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:108 + src\Services\ToolsTreeBuilder.php:81 + + + tree.tools.show + Visualizar + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:111 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:109 + + + tree.tools.system + Sistema + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:123 + + + tree.tools.tools.label_dialog + Generador de etiquetas + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:130 + + + tree.tools.tools.label_scanner + Escáner + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:149 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:126 + src\Services\ToolsTreeBuilder.php:62 + + + tree.tools.edit.attachment_types + Tipos de adjunto + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:155 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:132 + src\Services\ToolsTreeBuilder.php:64 + + + tree.tools.edit.categories + Categorías + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:161 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:138 + src\Services\ToolsTreeBuilder.php:66 + + + tree.tools.edit.projects + Proyectos + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:167 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:144 + src\Services\ToolsTreeBuilder.php:68 + + + tree.tools.edit.suppliers + Proveedores + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:173 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:150 + src\Services\ToolsTreeBuilder.php:70 + + + tree.tools.edit.manufacturer + Fabricantes + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:179 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:156 + + + tree.tools.edit.storelocation + Ubicaciones de almacenamiento + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:185 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:162 + + + tree.tools.edit.footprint + Footprints + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:191 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:168 + + + tree.tools.edit.currency + Divisas + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:197 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:174 + + + tree.tools.edit.measurement_unit + Unidad de medida + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:203 + + + tree.tools.edit.label_profile + Perfiles de etiqueta + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:209 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:180 + + + tree.tools.edit.part + Nuevo componente + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:226 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:197 + src\Services\ToolsTreeBuilder.php:77 + + + tree.tools.show.all_parts + Visualizar todos los componentes + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:232 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:203 + + + tree.tools.show.all_attachments + Adjuntos + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:239 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:210 + new + + + tree.tools.show.statistics + Estadísticas + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:258 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:229 + + + tree.tools.system.users + Usuarios + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:264 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:235 + + + tree.tools.system.groups + Grupos + + + + + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:271 + Part-DB1\src\Services\Trees\ToolsTreeBuilder.php:242 + new + + + tree.tools.system.event_log + Registro de eventos + + + + + Part-DB1\src\Services\Trees\TreeViewGenerator.php:95 + Part-DB1\src\Services\Trees\TreeViewGenerator.php:95 + src\Services\TreeBuilder.php:124 + + + entity.tree.new + Nuevo elemento + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:34 + obsolete + + + attachment.external_file + Archivo externo + + + + + Part-DB1\templates\Parts\info\_attachments_info.html.twig:62 + obsolete + + + attachment.edit + Editar + + + + + Part-DB1\templates\_navbar.html.twig:27 + templates\base.html.twig:88 + obsolete + + + barcode.scan + Escanear código de barras + + + + + Part-DB1\src\Form\UserSettingsType.php:119 + src\Form\UserSettingsType.php:49 + obsolete + + + user.theme.label + Tema + + + + + Part-DB1\src\Form\UserSettingsType.php:129 + src\Form\UserSettingsType.php:50 + obsolete + + + user_settings.theme.placeholder + Tema del servidor + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:100 + new + obsolete + + + log.user_login.ip + IP + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:128 + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:150 + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:169 + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:207 + new + obsolete + + + log.undo_mode.undo + Cambio deshecho + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:130 + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:152 + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:171 + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:209 + new + obsolete + + + log.undo_mode.revert + Elemento restablecido + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:139 + new + obsolete + + + log.element_created.original_instock + Instock antiguo + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:160 + new + obsolete + + + log.element_deleted.old_name + Nombre antiguo + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:184 + new + obsolete + + + log.element_edited.changed_fields + Campos editados + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:198 + new + obsolete + + + log.instock_changed.comment + Comentario + + + + + Part-DB1\src\Services\LogSystem\LogEntryExtraFormatter.php:214 + new + obsolete + + + log.collection_deleted.deleted + Elemento eliminado: + + + + + templates\base.html.twig:81 + obsolete + obsolete + + + go.exclamation + ¡Vamos! + + + + + templates\base.html.twig:109 + obsolete + obsolete + + + language.english + Inglés + + + + + templates\base.html.twig:112 + obsolete + obsolete + + + language.german + Alemán + + + + + obsolete + obsolete + + + flash.password_change_needed + ¡Se necesita cambiar la contraseña! + + + + + obsolete + obsolete + + + attachment.table.type + Tipo de adjunto + + + + + obsolete + obsolete + + + attachment.table.element + Elemento asociado + + + + + obsolete + obsolete + + + attachment.edit.isPicture + ¿Imagen? + + + + + obsolete + obsolete + + + attachment.edit.is3DModel + ¿Modelo 3D? + + + + + obsolete + obsolete + + + attachment.edit.isBuiltin + ¿Integrado? + + + + + obsolete + obsolete + + + category.edit.default_comment.placeholder + p.ej. útil para cambiar + + + + + obsolete + obsolete + + + tfa_backup.regenerate_codes + Generar nuevos códigos backup + + + + + obsolete + obsolete + + + validator.noneofitschild.self + Un elemento no puede ser su propio padre. + + + + + obsolete + obsolete + + + validator.noneofitschild.children + El elemento padre no puede ser uno de sus propios hijos. + + + + + obsolete + obsolete + + + validator.part_lot.location_full.no_increasment + La ubicación de almacenaje ha sido marcada como llena, así que no puedes incrementar la cantidad de instock. (Nueva cantidad máxima. {{ old_amount }}) + + + + + obsolete + obsolete + + + validator.part_lot.location_full + La ubicación de almacenaje ha sido marcada como llena, así que no puedes añadir un nuevo componente. + + + + + obsolete + obsolete + + + validator.part_lot.only_existing + La ubicación de almacenaje ha sido marcada como "solo existente", así que no puedes añadir un nuevo componente. + + + + + obsolete + obsolete + + + validator.part_lot.single_part + La ubicación de almacenaje ha sido marcada como "solo un componente", así que no puedes añadir un nuevo componente. + + + + + obsolete + obsolete + + + m_status.active.help + El componente se encuentra actualmente y durante el futuro próximo bajo producción. + + + + + obsolete + obsolete + + + m_status.announced.help + El componente fue anunciado pero aún no está disponible. + + + + + obsolete + obsolete + + + m_status.discontinued.help + El componente se encuentra descontinuado y ya no se produce. + + + + + obsolete + obsolete + + + m_status.eol.help + El producto ha alcanzado el final de su vida y su producción se detendrá pronto. + + + + + obsolete + obsolete + + + m_status.nrfnd.help + El componente está actualmente en producción pero no está recomendado para diseños nuevos. + + + + + obsolete + obsolete + + + m_status.unknown.help + El estatus de producción del componente es desconocido. + + + + + obsolete + obsolete + + + flash.success + Éxito + + + + + obsolete + obsolete + + + flash.error + Error + + + + + obsolete + obsolete + + + flash.warning + Atención + + + + + obsolete + obsolete + + + flash.notice + Aviso + + + + + obsolete + obsolete + + + flash.info + Info + + + + + obsolete + obsolete + + + validator.noLockout + No puedes retirarte del permiso "cambio de permiso" para evitar que te bloquees a ti mismo. + + + + + obsolete + obsolete + + + attachment_type.edit.filetype_filter + Tipos de fichero autorizados + + + + + obsolete + obsolete + + + attachment_type.edit.filetype_filter.help + Aquí puedes especificar una lista separada por comas de extensiones de fichero o tipos mime. Debe de ponerse en un fichero subido cuando se le asigna este tipo de adjunto. Para permitir todos los tipos de imágenes soportadas, puedes usar imagen/*. + + + + + obsolete + obsolete + + + attachment_type.edit.filetype_filter.placeholder + p.ej. .txt, application/pdf, image/* + + + + + src\Form\PartType.php:63 + obsolete + obsolete + + + part.name.placeholder + p.ej. BC547 + + + + + obsolete + obsolete + + + entity.edit.not_selectable + No seleccionable + + + + + obsolete + obsolete + + + entity.edit.not_selectable.help + Si esta opción se activa, este elemento no puede ser asignado como una propiedad de un componente. Útil si este elemento se va a usar para agrupamiento. + + + + + obsolete + obsolete + + + bbcode.hint + Puedes usar BBCode aquí (p.ej. [b]Bold[/b]) + + + + + obsolete + obsolete + + + entity.create + Crear elemento + + + + + obsolete + obsolete + + + entity.edit.save + Guardar + + + + + obsolete + obsolete + + + category.edit.disable_footprints + Desactivar footprints + + + + + obsolete + obsolete + + + category.edit.disable_footprints.help + Si se activa esta opción, la propiedad footprint se desactivará para todos los componentes con esta categoría + + + + + obsolete + obsolete + + + category.edit.disable_manufacturers + Desactivar fabricantes + + + + + obsolete + obsolete + + + category.edit.disable_manufacturers.help + Si se activa esta opción, la propiedad fabricante se desactivará para todos los componentes con esta categoría. + + + + + obsolete + obsolete + + + category.edit.disable_autodatasheets + Desactivar enlaces automáticos a la hoja de datos + + + + + obsolete + obsolete + + + category.edit.disable_autodatasheets.help + Si se activa esta opción, no se crearán enlaces a la hoja de datos de forma automática para esta categoría. + + + + + obsolete + obsolete + + + category.edit.disable_properties + Desactivar propiedades + + + + + obsolete + obsolete + + + category.edit.disable_properties.help + Si se activa esta opción, las propiedades de los componentes se desactivarán para esta categoría. + + + + + obsolete + obsolete + + + category.edit.partname_hint + Sugerencia para nombre del componente + + + + + obsolete + obsolete + + + category.edit.partname_hint.placeholder + p.ej. 100nF + + + + + obsolete + obsolete + + + category.edit.partname_regex + Filtro de nombre + + + + + obsolete + obsolete + + + category.edit.default_description + Descripción por defecto + + + + + obsolete + obsolete + + + category.edit.default_description.placeholder + p.ej. Condensador, 10mm x 10mm, SMD + + + + + obsolete + obsolete + + + category.edit.default_comment + Notas por defecto + + + + + obsolete + obsolete + + + company.edit.address + Dirección + + + + + obsolete + obsolete + + + company.edit.address.placeholder + p.ej. Calleejemplo 314 +Ciudadejemplo + + + + + obsolete + obsolete + + + company.edit.phone_number + Número de teléfono + + + + + obsolete + obsolete + + + company.edit.phone_number.placeholder + +34 123 45 67 89 + + + + + obsolete + obsolete + + + company.edit.fax_number + Número de fax + + + + + obsolete + obsolete + + + company.edit.email + Email + + + + + obsolete + obsolete + + + company.edit.email.placeholder + p.ej. contact@foo.bar + + + + + obsolete + obsolete + + + company.edit.website + Sitio web + + + + + obsolete + obsolete + + + company.edit.website.placeholder + https://www.foo.bar + + + + + obsolete + obsolete + + + company.edit.auto_product_url + URL del producto + + + + + obsolete + obsolete + + + company.edit.auto_product_url.help + Este campo se usa para determinar un link al componente en la web de la empresa. %PARTNUMBER% será reemplazado por número del pedido. + + + + + obsolete + obsolete + + + company.edit.auto_product_url.placeholder + https://foo.bar/product/%PARTNUMBER% + + + + + obsolete + obsolete + + + currency.edit.iso_code + Código ISO + + + + + obsolete + obsolete + + + currency.edit.exchange_rate + Tasa de cambio + + + + + obsolete + obsolete + + + footprint.edit.3d_model + Modelo 3D + + + + + obsolete + obsolete + + + mass_creation.lines + Entrada + + + + + obsolete + obsolete + + + mass_creation.lines.placeholder + Elemento 1 + Elemento 1.1 + Elemento 1.1.1 + Elemento 1.2 +Elemento 2 +Elemento 3 + + + + + obsolete + obsolete + + + entity.mass_creation.btn + Crear + + + + + obsolete + obsolete + + + measurement_unit.edit.is_integer + Número entero + + + + + obsolete + obsolete + + + measurement_unit.edit.is_integer.help + Si esta opción está activada, todos los valores con esta unidad serán redondeados a un número entero. + + + + + obsolete + obsolete + + + measurement_unit.edit.use_si_prefix + Utilizar prefijos SI + + + + + obsolete + obsolete + + + measurement_unit.edit.use_si_prefix.help + Si esta opción está activada, los valores de salida utilizarán prefijos SI (p.ej. 1,2kg en vez de 1200g) + + + + + obsolete + obsolete + + + measurement_unit.edit.unit_symbol + Símbolo de la unidad + + + + + obsolete + obsolete + + + measurement_unit.edit.unit_symbol.placeholder + p.ej. m + + + + + obsolete + obsolete + + + storelocation.edit.is_full.label + Ubicación llena + + + + + obsolete + obsolete + + + storelocation.edit.is_full.help + Si esta opción es seleccionada, no será posible añadir componentes nuevas a esta ubicación o incrementar el número de componentes existentes. + + + + + obsolete + obsolete + + + storelocation.limit_to_existing.label + Limitar a componentes existentes + + + + + obsolete + obsolete + + + storelocation.limit_to_existing.help + Si esta opción se activa, no será posible añadir componentes nuevos a esta ubicación, pero el número de componentes existentes se podrá incrementar. + + + + + obsolete + obsolete + + + storelocation.only_single_part.label + Solo un componente + + + + + obsolete + obsolete + + + storelocation.only_single_part.help + Si esta opción se activa, solo un componente (de cualquier cantidad) podrá ser asignado a esta ubicación de almacenaje. Útil para cajas SMD pequeñas o alimentadores automáticos. + + + + + obsolete + obsolete + + + storelocation.storage_type.label + Tipo de almacén + + + + + obsolete + obsolete + + + storelocation.storage_type.help + Puedes seleccionar una unidad de medida aquí, la cual debe poderse asignar a esta ubicación de almacenaje. + + + + + obsolete + obsolete + + + supplier.edit.default_currency + Divisa predeterminada + + + + + obsolete + obsolete + + + supplier.shipping_costs.label + Costes de envío + + + + + obsolete + obsolete + + + user.username.placeholder + p.ej. j.doe + + + + + obsolete + obsolete + + + user.firstName.placeholder + p.ej. Mario + + + + + obsolete + obsolete + + + user.lastName.placeholder + p.ej. Gómez + + + + + obsolete + obsolete + + + user.email.placeholder + p.ej. m.gomez@ecorp.com + + + + + obsolete + obsolete + + + user.department.placeholder + p.ej. Desarrollo + + + + + obsolete + obsolete + + + user.settings.pw_new.label + Nueva contraseña + + + + + obsolete + obsolete + + + user.settings.pw_confirm.label + Confirmar nueva contraseña + + + + + obsolete + obsolete + + + user.edit.needs_pw_change + El usuario ha de cambiar su contraseña + + + + + obsolete + obsolete + + + user.edit.user_disabled + Usuario desactivado (no es posible iniciar sesión) + + + + + obsolete + obsolete + + + user.create + Crear usuario + + + + + obsolete + obsolete + + + user.edit.save + Guardar + + + + + obsolete + obsolete + + + entity.edit.reset + Descartar cambios + + + + + templates\Parts\show_part_info.html.twig:166 + obsolete + obsolete + + + part.withdraw.btn + Retirar + + + + + templates\Parts\show_part_info.html.twig:171 + obsolete + obsolete + + + part.withdraw.comment: + Comentario/Propósito + + + + + templates\Parts\show_part_info.html.twig:189 + obsolete + obsolete + + + part.add.caption + Añadir componentes + + + + + templates\Parts\show_part_info.html.twig:194 + obsolete + obsolete + + + part.add.btn + Agregar + + + + + templates\Parts\show_part_info.html.twig:199 + obsolete + obsolete + + + part.add.comment + Comentario/Propósito + + + + + templates\AdminPages\CompanyAdminBase.html.twig:15 + obsolete + obsolete + + + admin.comment + Notas + + + + + src\Form\PartType.php:83 + obsolete + obsolete + + + manufacturer_url.label + Enlace al fabricante + + + + + src\Form\PartType.php:66 + obsolete + obsolete + + + part.description.placeholder + ej. NPN 45V 0,1A 0,5W + + + + + src\Form\PartType.php:69 + obsolete + obsolete + + + part.instock.placeholder + ej. 10 + + + + + src\Form\PartType.php:72 + obsolete + obsolete + + + part.mininstock.placeholder + ej. 5 + + + + + obsolete + obsolete + + + part.order.price_per + Precio por + + + + + obsolete + obsolete + + + part.withdraw.caption + Retirar componentes + + + + + obsolete + obsolete + + + datatable.datatable.lengthMenu + _MENU_ + + + + + obsolete + obsolete + + + perm.group.parts + Componentes + + + + + obsolete + obsolete + + + perm.group.structures + Estructura de datos + + + + + obsolete + obsolete + + + perm.group.system + Sistema + + + + + obsolete + obsolete + + + perm.parts + Componentes + + + + + obsolete + obsolete + + + perm.read + Ver + + + + + obsolete + obsolete + + + perm.edit + Editar + + + + + obsolete + obsolete + + + perm.create + Crear + + + + + obsolete + obsolete + + + perm.part.move + Cambiar categoría + + + + + obsolete + obsolete + + + perm.delete + Eliminar + + + + + obsolete + obsolete + + + perm.part.search + Buscar + + + + + obsolete + obsolete + + + perm.part.all_parts + Lista de todos los componentes + + + + + obsolete + obsolete + + + perm.part.no_price_parts + Lista de componentes con precio + + + + + obsolete + obsolete + + + perm.part.obsolete_parts + Lista de componentes obsoletos + + + + + obsolete + obsolete + + + perm.part.unknown_instock_parts + Mostar componentes con stock desconocido + + + + + obsolete + obsolete + + + perm.part.change_favorite + Cambiar a estado de favorito + + + + + obsolete + obsolete + + + perm.part.show_favorite + Lista de componentes favoritos + + + + + obsolete + obsolete + + + perm.part.show_last_edit_parts + Mostar los últimos componentes editados/añadidos + + + + + obsolete + obsolete + + + perm.part.show_users + Mostar el último usuario modificado + + + + + obsolete + obsolete + + + perm.part.show_history + Mostrar historial + + + + + obsolete + obsolete + + + perm.part.name + Nombre + + + + + obsolete + obsolete + + + perm.part.description + Descripción + + + + + obsolete + obsolete + + + perm.part.instock + Disponibilidad + + + + + obsolete + obsolete + + + perm.part.mininstock + Disponibilidad mínima + + + + + obsolete + obsolete + + + perm.part.comment + Notas + + + + + obsolete + obsolete + + + perm.part.storelocation + Ubicación + + + + + obsolete + obsolete + + + perm.part.manufacturer + Fabricante + + + + + obsolete + obsolete + + + perm.part.orderdetails + Información ordenada + + + + + obsolete + obsolete + + + perm.part.prices + Precio + + + + + obsolete + obsolete + + + perm.part.attachments + Adjuntos de fichero + + + + + obsolete + obsolete + + + perm.part.order + Pedidos + + + + + obsolete + obsolete + + + perm.storelocations + Ubicaciones de almacén + + + + + obsolete + obsolete + + + perm.move + Mover + + + + + obsolete + obsolete + + + perm.list_parts + Lista de componentes + + + + + obsolete + obsolete + + + perm.part.footprints + Footprints + + + + + obsolete + obsolete + + + perm.part.categories + Categorías + + + + + obsolete + obsolete + + + perm.part.supplier + Proveedores + + + + + obsolete + obsolete + + + perm.part.manufacturers + Fabricantes + + + + + obsolete + obsolete + + + perm.projects + Proyectos + + + + + obsolete + obsolete + + + perm.part.attachment_types + Tipos de adjunto + + + + + obsolete + obsolete + + + perm.tools.import + Importar + + + + + obsolete + obsolete + + + perm.tools.labels + Etiquetas + + + + + obsolete + obsolete + + + perm.tools.calculator + Calculadora de resistencia + + + + + obsolete + obsolete + + + perm.tools.footprints + Footprints + + + + + obsolete + obsolete + + + perm.tools.ic_logos + Logos IC + + + + + obsolete + obsolete + + + perm.tools.statistics + Estadísticas + + + + + obsolete + obsolete + + + perm.edit_permissions + Editar autorizaciones + + + + + obsolete + obsolete + + + perm.users.edit_user_name + Editar nombre de usuario + + + + + obsolete + obsolete + + + perm.users.edit_change_group + Modificar grupo + + + + + obsolete + obsolete + + + perm.users.edit_infos + Editar información + + + + + obsolete + obsolete + + + perm.users.edit_permissions + Editar permisos + + + + + obsolete + obsolete + + + perm.users.set_password + Configurar contraseña + + + + + obsolete + obsolete + + + perm.users.change_user_settings + Cambiar ajustes de usuario + + + + + obsolete + obsolete + + + perm.database.see_status + Ver estado + + + + + obsolete + obsolete + + + perm.database.update_db + Actualizar base de datos + + + + + obsolete + obsolete + + + perm.database.read_db_settings + Leer ajustes de la base de datos + + + + + obsolete + obsolete + + + perm.database.write_db_settings + Escribir ajustes de la base de datos + + + + + obsolete + obsolete + + + perm.config.read_config + Leer configuración + + + + + obsolete + obsolete + + + perm.config.edit_config + Editar configuración + + + + + obsolete + obsolete + + + perm.config.server_info + Información del servidor + + + + + obsolete + obsolete + + + perm.config.use_debug + Usar herramientas de depuración + + + + + obsolete + obsolete + + + perm.show_logs + Mostrar registros + + + + + obsolete + obsolete + + + perm.delete_logs + Borrar registros + + + + + obsolete + obsolete + + + perm.self.edit_infos + Editar información + + + + + obsolete + obsolete + + + perm.self.edit_username + Editar nombre de usuario + + + + + obsolete + obsolete + + + perm.self.show_permissions + Mostrar permisos + + + + + obsolete + obsolete + + + perm.self.show_logs + Mostrar entradas de registro propias + + + + + obsolete + obsolete + + + perm.self.create_labels + Crear etiquetas + + + + + obsolete + obsolete + + + perm.self.edit_options + Editar opciones + + + + + obsolete + obsolete + + + perm.self.delete_profiles + Borrar perfiles + + + + + obsolete + obsolete + + + perm.self.edit_profiles + Editar perfiles + + + + + obsolete + obsolete + + + perm.part.tools + Herramientas + + + + + obsolete + obsolete + + + perm.groups + Grupos + + + + + obsolete + obsolete + + + perm.users + Usuarios + + + + + obsolete + obsolete + + + perm.database + Base de datos + + + + + obsolete + obsolete + + + perm.config + Configuración + + + + + obsolete + obsolete + + + perm.system + Sistema + + + + + obsolete + obsolete + + + perm.self + Edita tu propio usuario + + + + + obsolete + obsolete + + + perm.labels + Etiquetas + + + + + obsolete + obsolete + + + perm.part.category + Categoría + + + + + obsolete + obsolete + + + perm.part.minamount + Cantidad mínima + + + + + obsolete + obsolete + + + perm.part.footprint + Footprint + + + + + obsolete + obsolete + + + perm.part.mpn + MPN + + + + + obsolete + obsolete + + + perm.part.status + Estado de producción + + + + + obsolete + obsolete + + + perm.part.tags + Tags + + + + + obsolete + obsolete + + + perm.part.unit + Unidad de medida + + + + + obsolete + obsolete + + + perm.part.mass + Peso + + + + + obsolete + obsolete + + + perm.part.lots + Lote de componentes + + + + + obsolete + obsolete + + + perm.show_users + Mostrar último usuario que ha modificado + + + + + obsolete + obsolete + + + perm.currencies + Divisas + + + + + obsolete + obsolete + + + perm.measurement_units + Unidad de medida + + + + + obsolete + obsolete + + + user.settings.pw_old.label + Contraseña antigua + + + + + obsolete + obsolete + + + pw_reset.submit + Resetear la contraseña + + + + + obsolete + obsolete + + + u2f_two_factor + Clave de seguridad (U2F) + + + + + obsolete + obsolete + + + google + Google + + + + + tfa.provider.webauthn_two_factor_provider + Clave de seguridad + + + + + obsolete + obsolete + + + tfa.provider.google + App de autenticación + + + + + obsolete + obsolete + + + Login successful + Inicio de sesión correcto + + + + + obsolete + obsolete + + + log.type.exception + Excepción + + + + + obsolete + obsolete + + + log.type.user_login + Inicio de sesión de usuario + + + + + obsolete + obsolete + + + log.type.user_logout + Cerrar sesión de usuario + + + + + obsolete + obsolete + + + log.type.unknown + Desconocido + + + + + obsolete + obsolete + + + log.type.element_created + Elemento creado + + + + + obsolete + obsolete + + + log.type.element_edited + Elemento modificado + + + + + obsolete + obsolete + + + log.type.element_deleted + Elemento eliminado + + + + + obsolete + obsolete + + + log.type.database_updated + Base de datos actualizada + + + + + obsolete + + + perm.revert_elements + Restaurar elemento + + + + + obsolete + + + perm.show_history + Ver historial + + + + + obsolete + + + perm.tools.lastActivity + Mostrar última actividad + + + + + obsolete + + + perm.tools.timeTravel + Mostrar versiones antiguas de elementos (time travel) + + + + + obsolete + + + tfa_u2f.key_added_successful + Clave de seguridad añadida correctamente + + + + + obsolete + + + Username + Nombre de usuario + + + + + obsolete + + + log.type.security.google_disabled + App de autenticación desactivada + + + + + obsolete + + + log.type.security.u2f_removed + Clave de seguridad eliminada + + + + + obsolete + + + log.type.security.u2f_added + Clave de seguridad añadida + + + + + obsolete + + + log.type.security.backup_keys_reset + Claves de respaldo regeneradas + + + + + obsolete + + + log.type.security.google_enabled + App de autenticación activada + + + + + obsolete + + + log.type.security.password_changed + Contraseña cambiada + + + + + obsolete + + + log.type.security.trusted_device_reset + Dispositivos de confianza reseteados + + + + + obsolete + + + log.type.collection_element_deleted + Elemento de colección eliminado + + + + + obsolete + + + log.type.security.password_reset + Restablecer contraseña + + + + + obsolete + + + log.type.security.2fa_admin_reset + Autenticación de dos pasos reseteado por Administrador + + + + + obsolete + + + log.type.user_not_allowed + Intento de acceso no autorizado + + + + + obsolete + + + log.database_updated.success + Éxito + + + + + obsolete + + + label_options.barcode_type.2D + 2D + + + + + obsolete + + + label_options.barcode_type.1D + 1D + + + + + obsolete + + + perm.part.parameters + Parámetros + + + + + obsolete + + + perm.attachment_show_private + Ver adjuntos privados + + + + + obsolete + + + perm.tools.label_scanner + Escáner de etiquetas + + + + + obsolete + + + perm.self.read_profiles + Leer perfiles + + + + + obsolete + + + perm.self.create_profiles + Crear perfiles + + + + + obsolete + + + perm.labels.use_twig + Usar modo Twig + + + + + label_profile.showInDropdown + Mostrar en selección rápida + + + + + group.edit.enforce_2fa + Forzar autenticación de dos pasos (2FA) + + + + + group.edit.enforce_2fa.help + Si está opción está activada, todos los miembros directos de este grupo tendrá que configurar como mínimo un factor de autenticación de dos pasos. Recomendado para grupos administrativos con muchos permisos. + + + + + selectpicker.empty + Nada seleccionado + + + + + selectpicker.nothing_selected + Nada seleccionado + + + + + entity.delete.must_not_contain_parts + ¡Elemento "%PATH%" aún contiene partes! Tienes que mover las partes para poder eliminar este elemento. + + + + + entity.delete.must_not_contain_attachments + Tipo de adjunto aún contiene adjuntos. Cambia su tipo para ser capaz de borrar este tipo de adjunto. + + + + + entity.delete.must_not_contain_prices + Divisa aún contiene detalles de precios. Tienes que cambiar su divisa para poder eliminar este elemento. + + + + + entity.delete.must_not_contain_users + ¡Usuarios aún usan este grupo! Cambia su grupo para ser capaz de borrar este grupo. + + + + + part.table.edit + Editar + + + + + part.table.edit.title + Editar componente + + + + + part_list.action.action.title + Seleccionar acción + + + + + part_list.action.action.group.favorite + Favorito + + + + + part_list.action.action.favorite + Componente favorito + + + + + part_list.action.action.unfavorite + Anular indicación de favorito + + + + + part_list.action.action.group.change_field + Cambiar campo + + + + + part_list.action.action.change_category + Cambiar categoría + + + + + part_list.action.action.change_footprint + Cambiar footprint + + + + + part_list.action.action.change_manufacturer + Cambiar fabricante + + + + + part_list.action.action.change_unit + Cambiar unidad de componente + + + + + part_list.action.action.delete + Borrar + + + + + part_list.action.submit + Ok + + + + + part_list.action.part_count + ¡%count% componentes seleccionadas! + + + + + company.edit.quick.website + Abrir sitio web + + + + + company.edit.quick.email + Enviar e-mail + + + + + company.edit.quick.phone + Teléfono + + + + + company.edit.quick.fax + Enviar fax + + + + + company.fax_number.placeholder + ej. +34 123 45 67 89 + + + + + part.edit.save_and_clone + Guardar y duplicar + + + + + validator.file_ext_not_allowed + Extensión de archivo no permitido para este tipo de adjunto. + + + + + tools.reel_calc.title + Calculadora de cintas SMD + + + + + tools.reel_calc.inner_dia + Diámetro interno + + + + + tools.reel_calc.outer_dia + Diámetro externo + + + + + tools.reel_calc.tape_thick + Espesor de cinta + + + + + tools.reel_calc.part_distance + Distancia de componentes + + + + + tools.reel_calc.update + Actualizar + + + + + tools.reel_calc.parts_per_meter + Componentes por metro + + + + + tools.reel_calc.result_length + Longitud de la cinta + + + + + tools.reel_calc.result_amount + Número aproximado de componentes + + + + + tools.reel_calc.outer_greater_inner_error + Error: Diámetro exterior debe ser mayor que el diámetro interior! + + + + + tools.reel_calc.missing_values.error + ¡Por favor rellena todos los valores! + + + + + tools.reel_calc.load_preset + Cargar preset + + + + + tools.reel_calc.explanation + Esta calculadora da una estimación de cuántas piezas quedan en un carrete SMD. Mide las dimensiones anotadas en el carrete (o use algunos de los ajustes preestablecidos) y haz clic en "Actualizar" para obtener un resultado. + + + + + perm.tools.reel_calculator + Calculadora de carrete SMD + + + + + tree.tools.tools.reel_calculator + Calculadora de carrete SMD + + + + + user.pw_change_needed.flash + ¡Tienes que cambiar tu contraseña! Por favor establece una nueva contraseña. + + + + + tree.root_node.text + Nodo raíz + + + + + part_list.action.select_null + Elemento vacío + + + + + part_list.action.delete-title + ¿Estás seguro de que quieres eliminar estos elementos? + + + + + part_list.action.delete-message + Estos elementos y cualquier información asociada (como adjuntos, información de precios, etc.) serán eliminados. ¡Esto no se podrá deshacer! + + + + + part.table.actions.success + Acciones terminadas exitosamente. + + + + + attachment.edit.delete.confirm + ¿Estás seguro de que quieres borrar este adjunto? + + + + + filter.text_constraint.value.operator.EQ + Es + + + + + filter.text_constraint.value.operator.NEQ + No es + + + + + filter.text_constraint.value.operator.STARTS + Empieza con + + + + + filter.text_constraint.value.operator.CONTAINS + Contiene + + + + + filter.text_constraint.value.operator.ENDS + Termina con + + + + + filter.text_constraint.value.operator.LIKE + Patrón LIKE + + + + + filter.text_constraint.value.operator.REGEX + Expresión regular + + + + + filter.number_constraint.value.operator.BETWEEN + Entre + + + + + filter.number_constraint.AND + y + + + + + filter.entity_constraint.operator.EQ + Es (excluyendo hijos) + + + + + filter.entity_constraint.operator.NEQ + No es (excluyendo hijos) + + + + + filter.entity_constraint.operator.INCLUDING_CHILDREN + Es (incluyendo hijos) + + + + + filter.entity_constraint.operator.EXCLUDING_CHILDREN + No es (incluyendo hijos) + + + + + part.filter.dbId + ID de la base de datos + + + + + filter.tags_constraint.operator.ANY + Cualquiera de las etiquetas + + + + + filter.tags_constraint.operator.ALL + Todas las etiquetas + + + + + filter.tags_constraint.operator.NONE + Ninguna de las etiquetas + + + + + part.filter.lot_count + Número de lotes + + + + + part.filter.attachments_count + Número de adjuntos + + + + + part.filter.orderdetails_count + Número de información del pedido + + + + + part.filter.lotExpirationDate + Fecha de caducidad del lote + + + + + part.filter.lotNeedsRefill + Cualquier lote necesita ser rellenado + + + + + part.filter.lotUnknwonAmount + Cualquier lote tiene una cantidad desconocida + + + + + part.filter.attachmentName + Nombre del adjunto + + + + + filter.choice_constraint.operator.ANY + Cualquiera de + + + + + filter.choice_constraint.operator.NONE + Ninguno de + + + + + part.filter.amount_sum + Cantidad total + + + + + filter.submit + Actualizar + + + + + filter.discard + Descartar cambios + + + + + filter.clear_filters + Limpiar filtros + + + + + filter.title + Filtro + + + + + filter.parameter_value_constraint.operator.= + Tipo de valor = + + + + + filter.parameter_value_constraint.operator.!= + Tipo de valor != + + + + + filter.parameter_value_constraint.operator.< + Tipo de valor < + + + + + filter.parameter_value_constraint.operator.> + Tipo de valor > + + + + + filter.parameter_value_constraint.operator.<= + Tipo de valor <= + + + + + filter.parameter_value_constraint.operator.>= + Tipo de valor >= + + + + + filter.parameter_value_constraint.operator.BETWEEN + Tipo de valor está entre + + + + + filter.parameter_value_constraint.operator.IN_RANGE + En rango de valor + + + + + filter.parameter_value_constraint.operator.NOT_IN_RANGE + Fuera de rango de valor + + + + + filter.parameter_value_constraint.operator.GREATER_THAN_RANGE + Mayor que el rango de valor + + + + + filter.parameter_value_constraint.operator.GREATER_EQUAL_RANGE + Mayor igual al rango de valor + + + + + filter.parameter_value_constraint.operator.LESS_THAN_RANGE + Menor al rango de valor + + + + + filter.parameter_value_constraint.operator.LESS_EQUAL_RANGE + Menor igual al rango de valor + + + + + filter.parameter_value_constraint.operator.RANGE_IN_RANGE + Rango está completamente en rango de valor + + + + + filter.parameter_value_constraint.operator.RANGE_INTERSECT_RANGE + El rango intersecta el rango de valores + + + + + filter.text_constraint.value + Sin valor establecido + + + + + filter.number_constraint.value1 + Sin valor establecido + + + + + filter.number_constraint.value2 + Valor máximo + + + + + filter.datetime_constraint.value1 + No hay fecha/hora establecidas + + + + + filter.datetime_constraint.value2 + Máxima fecha/hora + + + + + filter.constraint.add + Añadir filtro + + + + + part.filter.parameters_count + Número de parámetros + + + + + part.filter.lotDescription + Descripción del lote del componente + + + + + parts_list.search.searching_for + Buscar componentes con palabra clave <b>%keyword%</b> + + + + + parts_list.search_options.caption + Opciones de búsqueda activadas + + + + + attachment.table.element_type + Tipo de elemento asociado + + + + + log.level.debug + Debug + + + + + log.level.info + Info + + + + + log.level.notice + Notificación + + + + + log.level.warning + Aviso + + + + + log.level.error + Error + + + + + log.level.critical + Crítico + + + + + log.level.alert + Alerta + + + + + log.level.emergency + Emergencia + + + + + log.type.security + Evento relacionado con seguridad + + + + + log.type.instock_changed + [ALT] Stock modificado + + + + + log.target_id + ID del elemento objetivo + + + + + entity.info.parts_count_recursive + Número de componentes con este elemento o sus subelementos + + + + + tools.server_infos.title + Información del servidor + + + + + permission.preset.read_only + Solo lectura + + + + + permission.preset.read_only.desc + Permitir solo operaciones de lectura sobre los datos + + + + + permission.preset.all_inherit + Heredar todo + + + + + permission.preset.all_inherit.desc + Cambiar todos los permisos a Heredar + + + + + permission.preset.all_forbid + Prohibir todo + + + + + permission.preset.all_forbid.desc + Cambiar todos los permisos a Prohibir + + + + + permission.preset.all_allow + Mostrar todo + + + + + permission.preset.all_allow.desc + Cambiar todos los permisos a permitir + + + + + perm.server_infos + Información de servidor + + + + + permission.preset.editor + Editor + + + + + permission.preset.editor.desc + Permitir cambiar elementos y estructuras de datos + + + + + permission.preset.admin + Admin + + + + + permission.preset.admin.desc + Permitir acciones administrativas + + + + + permission.preset.button + Aplicar preset + + + + + perm.attachments.show_private + Mostrar adjuntos privados + + + + + perm.attachments.list_attachments + Mostrar lista de todos los adjuntos + + + + + user.edit.permission_success + El permiso preestablecido se aplicó correctamente. Compruebe si los nuevos permisos se ajustan a tus necesidades. + + + + + perm.group.data + Datos + + + + + part_list.action.action.group.needs_review + Necesita revisión + + + + + part_list.action.action.set_needs_review + Establecer estado "necesita revisión" + + + + + part_list.action.action.unset_needs_review + Eliminar estatus "necesita revisión" + + + + + part.edit.ipn + Número de Componente Interno (IPN) + + + + + part.ipn.not_defined + No definido + + + + + part.table.ipn + IPN + + + + + currency.edit.update_rate + Recuperar tasa de cambio + + + + + currency.edit.exchange_rate_update.unsupported_currency + La divisa no está respaldada por el proveedor de tasas de cambio. Verifica la configuración de tu proveedor de tasas de cambio. + + + + + currency.edit.exchange_rate_update.generic_error + Imposible de recuperar la tasa de cambio. Verifica la configuración de tu proveedor de tasas de cambio. + + + + + currency.edit.exchange_rate_updated.success + Tasa de cambio recuperada con éxito. + + + + + project.bom.quantity + Cantidad BOM + + + + + project.bom.mountnames + Nombres de ensamblaje + + + + + project.bom.name + Nombre + + + + + project.bom.comment + Notas + + + + + project.bom.part + Componente + + + + + project.bom.add_entry + Añadir entrada + + + + + part_list.action.group.projects + Proyectos + + + + + part_list.action.projects.add_to_project + Añadir componentes al proyecto + + + + + project.bom.delete.confirm + ¿Estás seguro de que quieres eliminar esta entrada BOM? + + + + + project.add_parts_to_project + Añadir componentes al proyecto BOM + + + + + part.info.add_part_to_project + Añadir este componente a un proyecto + + + + + project_bom_entry.label + Entrada BOM + + + + + project.edit.status + Estatus de proyecto + + + + + project.status.draft + Esbozo + + + + + project.status.planning + En planificación + + + + + project.status.in_production + En producción + + + + + project.status.finished + Completado + + + + + project.status.archived + Archivado + + + + + part.new_build_part.error.build_part_already_exists + ¡Este proyecto ya tiene un componente vinculado! + + + + + project.edit.associated_build_part + Componente de producción vinculado + + + + + project.edit.associated_build_part.add + Añadir parte de producción + + + + + project.edit.associated_build.hint + Este componente representa las instancias construidas del proyecto, que están almacenadas en algún lugar + + + + + part.info.projectBuildPart.hint + Este componente representa las instancias construidas del siguiente proyecto y está vinculado a él. + + + + + part.is_build_part + Es un componente de producción + + + + + project.info.title + Información de proyecto + + + + + project.info.bom_entries_count + Entradas BOM + + + + + project.info.sub_projects_count + Subproyectos + + + + + project.info.bom_add_parts + Añadir entradas BOM + + + + + project.info.info.label + Info + + + + + project.info.sub_projects.label + Subproyectos + + + + + project.bom.price + Precio + + + + + part.info.withdraw_modal.title.withdraw + Retirar componentes del lote + + + + + part.info.withdraw_modal.title.add + Añadir componentes al lote + + + + + part.info.withdraw_modal.title.move + Mover componentes a un lote diferente + + + + + part.info.withdraw_modal.amount + Cantidad + + + + + part.info.withdraw_modal.move_to + Mover a + + + + + part.info.withdraw_modal.comment + Comentar + + + + + part.info.withdraw_modal.comment.hint + Puedes añadir un comentario aquí describiendo por qué estás haciendo esta operación (p.ej. por qué necesitas este componente). Esta información se almacenará en el registro. + + + + + modal.close + Cerrar + + + + + modal.submit + Entregar + + + + + part.withdraw.success + Componentes añadidos/movidos/retirados con éxito. + + + + + perm.parts_stock + Inventario de componentes + + + + + perm.parts_stock.withdraw + Retirar componentes del inventario. + + + + + perm.parts_stock.add + Añadir componentes a stock + + + + + perm.parts_stock.move + Mover componentes entre lotes + + + + + user.permissions_schema_updated + El esquema de permisos de tu usuario han sido actualizados a la última versión. + + + + + log.type.part_stock_changed + Stock de componente modificado + + + + + log.part_stock_changed.withdraw + Stock retirado + + + + + log.part_stock_changed.add + Stock añadido + + + + + log.part_stock_changed.move + Stock movido + + + + + log.part_stock_changed.comment + Comentario + + + + + log.part_stock_changed.change + Cambiar + + + + + log.part_stock_changed.move_target + Trasladado a + + + + + tools.builtin_footprints_viewer.title + Imágenes de footprints incluidas. + + + + + tools.builtin_footprints_viewer.hint + Esta galería enumera todas las imágenes de footprints incluidas. Si desea utilizar esto en un archivo adjunto, escriba el nombre (o una palabra clave) en el campo URL del archivo adjunto y seleccione la imagen deseada en el menú desplegable. + + + + + tools.ic_logos.title + Logo IC + + + + + part_list.action.group.labels + Etiquetas + + + + + part_list.action.projects.generate_label + Crear etiquetas (por partes) + + + + + part_list.action.projects.generate_label_lot + Crear etiquetas (por partes de lote) + + + + + part_list.action.generate_label.empty + Vaciar etiquetas + + + + + project.info.builds.label + Construir + + + + + project.builds.build_not_possible + Construcción no es posible: Faltan componentes + + + + + project.builds.following_bom_entries_miss_instock + Los siguientes componentes no tienen suficiente cantidad para construir este proyecto al menos una vez: + + + + + project.builds.stocked + Almacenado + + + + + project.builds.needed + Necesitado + + + + + project.builds.build_possible + Construcción posible + + + + + project.builds.number_of_builds_possible + Tienes suficiente inventario para construir <b>%max_builds%</b></b> construcciones de este proyecto + + + + + project.builds.check_project_status + El estado del proyecto actual es <b>"%project_status%"</b>. ¡Deberías comprobar si de verdad quieres crear este proyecto con este estado! + + + + + project.builds.following_bom_entries_miss_instock_n + No tienes suficientes componentes en stock para crear este proyecto %number_of_builds% veces. A los siguientes componentes les falta instock: + + + + + project.build.flash.invalid_input + No se pudo crear el proyecto. ¡Comprueba los datos de entrada! + + + + + project.build.required_qty + Cantidad requerida + + + + + project.build.btn_build + Construir + + + + + project.build.help + Elija de qué lotes se debe tomar el stock para construir este proyecto (y en qué cantidad). Comprueba la casilla para cada entrada BOM cuando hayas terminado de retirar los componentes, o utiliza la casilla de arriba para seleccionar todas las casillas a la vez. + + + + + project.build.buildsPartLot.new_lot + Crear nuevo lote + + + + + project.build.add_builds_to_builds_part + Añadir creaciones a las creaciones del proyecto + + + + + project.build.builds_part_lot + Lote objetivo + + + + + project.builds.number_of_builds + Cantidad de construcciones + + + + + project.builds.no_stocked_builds + Número de construcciones en stock + + + + + user.change_avatar.label + Cambiar foto de perfil + + + + + user_settings.change_avatar.label + Cambiar foto de perfil + + + + + user_settings.remove_avatar.label + Eliminar foto de perfil + + + + + part.edit.name.category_hint + Sugerencia de categoría + + + + + category.edit.partname_regex.placeholder + p.ej. "/Condensador \d+ nF/i" + + + + + category.edit.partname_regex.help + Una expresión regular compatible con PCRE, la cual debe coincidir con el nombre de un componente. + + + + + entity.select.add_hint + Usar -> para crear estructuras anidadas, p.ej. "Node 1->Node 1.1" + + + + + entity.select.group.new_not_added_to_DB + Nuevo (no añadido a la base de datos) + + + + + part.edit.save_and_new + Guardar y crear nuevo componente vacío. + + + + + homepage.first_steps.title + Primeros pasos + + + + + homepage.first_steps.introduction + Tu base de datos está aún vacía. Quizá quieras leer la <a href="%url%">documentation</a> o empezar a crear las siguientes estructuras de datos: + + + + + homepage.first_steps.create_part + O puedes directamente <a href="%url%">crear un nuevo componente</a> + + + + + homepage.first_steps.hide_hint + Esta casilla desaparecerá cuando hayas creado tu primer componente. + + + + + homepage.forum.text + Para preguntas sobre Part-DB utiliza el <a href="%href%" class="link-external" target="_blank">foro de debate</a> + + + + + log.element_edited.changed_fields.category + Categoría + + + + + log.element_edited.changed_fields.footprint + Footprint + + + + + log.element_edited.changed_fields.manufacturer + Fabricante + + + + + log.element_edited.changed_fields.value_typical + Tip. valor + + + + + log.element_edited.changed_fields.pw_reset_expires + Restablecer contraseña + + + + + log.element_edited.changed_fields.comment + Notas + + + + + log.element_edited.changed_fields.supplierpartnr + Número del distribuidor del componente + + + + + log.element_edited.changed_fields.supplier_product_url + URL del producto + + + + + log.element_edited.changed_fields.price + Precio + + + + + log.element_edited.changed_fields.min_discount_quantity + Cantidad mínima de descuento + + + + + log.element_edited.changed_fields.original_filename + Nombre de archivo original + + + + + log.element_edited.changed_fields.path + Ruta de fichero + + + + + log.element_edited.changed_fields.description + Descripción + + + + + log.element_edited.changed_fields.manufacturing_status + Estatus de producción + + + + + log.element_edited.changed_fields.options.barcode_type + Tipo de código de barras + + + + + log.element_edited.changed_fields.status + Estatus + + + + + log.element_edited.changed_fields.quantity + Cantidad BOM + + + + + log.element_edited.changed_fields.mountnames + Nombres de ensamblaje + + + + + log.element_edited.changed_fields.name + Nombre + + + + + log.element_edited.changed_fields.part + Componente + + + + + log.element_edited.changed_fields.price_currency + Precio de la divisa + + + + + log.element_edited.changed_fields.partname_hint + Sugerencia de nombre de componente + + + + + log.element_edited.changed_fields.partname_regex + Filtro de nombre + + + + + log.element_edited.changed_fields.disable_footprints + Desactivar footprints + + + + + log.element_edited.changed_fields.disable_manufacturers + Desactivar fabricantes + + + + + log.element_edited.changed_fields.disable_autodatasheets + Desactivar links automáticos a datasheets + + + + + log.element_edited.changed_fields.disable_properties + Desactivar propiedades + + + + + log.element_edited.changed_fields.default_description + Descripción predeterminada + + + + + log.element_edited.changed_fields.default_comment + Comentario predeterminado + + + + + log.element_edited.changed_fields.filetype_filter + Extensiones de archivo permitidas + + + + + log.element_edited.changed_fields.not_selectable + No seleccionado + + + + + log.element_edited.changed_fields.parent + Elemento padre + + + + + log.element_edited.changed_fields.shipping_costs + Costes de envío + + + + + log.element_edited.changed_fields.default_currency + Divisa predeterminada + + + + + log.element_edited.changed_fields.address + Dirección + + + + + log.element_edited.changed_fields.phone_number + Número de teléfono + + + + + log.element_edited.changed_fields.fax_number + Número fax + + + + + log.element_edited.changed_fields.email_address + E-mail + + + + + log.element_edited.changed_fields.website + Sitio web + + + + + log.element_edited.changed_fields.auto_product_url + URL de producto + + + + + log.element_edited.changed_fields.is_full + Ubicación de almacenaje llena + + + + + log.element_edited.changed_fields.limit_to_existing_parts + Límite a componentes existentes + + + + + log.element_edited.changed_fields.only_single_part + Solo componentes individuales + + + + + log.element_edited.changed_fields.storage_type + Tipo de almacenaje + + + + + log.element_edited.changed_fields.footprint_3d + Modelo 3D + + + + + log.element_edited.changed_fields.master_picture_attachment + Previsualización de imagen + + + + + log.element_edited.changed_fields.exchange_rate + Tasa de cambio + + + + + log.element_edited.changed_fields.iso_code + Código ISO + + + + + log.element_edited.changed_fields.unit + Símbolo de unidad + + + + + log.element_edited.changed_fields.is_integer + Es entero + + + + + log.element_edited.changed_fields.use_si_prefix + Usar prefijo SI + + + + + log.element_edited.changed_fields.options.width + Anchura + + + + + log.element_edited.changed_fields.options.height + Altura + + + + + log.element_edited.changed_fields.options.supported_element + Tipo de elemento + + + + + log.element_edited.changed_fields.options.additional_css + Estilos adicionales (CSS) + + + + + log.element_edited.changed_fields.options.lines + Contenido + + + + + log.element_edited.changed_fields.permissions.data + Permisos + + + + + log.element_edited.changed_fields.disabled + Deshabilitado + + + + + log.element_edited.changed_fields.theme + Tema + + + + + log.element_edited.changed_fields.timezone + Zona horaria + + + + + log.element_edited.changed_fields.language + Idioma + + + + + log.element_edited.changed_fields.email + E-mail + + + + + log.element_edited.changed_fields.department + Departamento + + + + + log.element_edited.changed_fields.last_name + Apellidos + + + + + log.element_edited.changed_fields.first_name + Nombre + + + + + log.element_edited.changed_fields.group + Grupo + + + + + log.element_edited.changed_fields.currency + Divisa preferida + + + + + log.element_edited.changed_fields.enforce2FA + Forzar 2FA + + + + + log.element_edited.changed_fields.symbol + Símbolo + + + + + log.element_edited.changed_fields.value_min + Valor mín. + + + + + log.element_edited.changed_fields.value_max + Valor máx. + + + + + log.element_edited.changed_fields.value_text + Valor de texto + + + + + log.element_edited.changed_fields.show_in_table + Mostrar en tabla + + + + + log.element_edited.changed_fields.attachment_type + Tipo de archivo + + + + + log.element_edited.changed_fields.needs_review + Necesita revisión + + + + + log.element_edited.changed_fields.tags + Etiquetas + + + + + log.element_edited.changed_fields.mass + Masa + + + + + log.element_edited.changed_fields.ipn + IPN + + + + + log.element_edited.changed_fields.favorite + Favorito + + + + + log.element_edited.changed_fields.minamount + Stock mínimo + + + + + log.element_edited.changed_fields.manufacturer_product_url + Link a página del producto + + + + + log.element_edited.changed_fields.manufacturer_product_number + MPN + + + + + log.element_edited.changed_fields.partUnit + Unidad de medida + + + + + log.element_edited.changed_fields.expiration_date + Fecha de expiración + + + + + log.element_edited.changed_fields.amount + Cantidad + + + + + log.element_edited.changed_fields.storage_location + Ubicación + + + + + attachment.max_file_size + Tamaño máximo de archivo + + + + + user.saml_user + usuario SSO / SAML + + + + + user.saml_user.pw_change_hint + Tu usuario usa Single Sign-On (SSO). No puedes cambiar la contraseña ni los ajustes 2FA. ¡Configúralos en tu proveedor central SSO! + + + + + login.sso_saml_login + Single Sign-On Login (SSO) + + + + + login.local_login_hint + El formulario de debajo solo sirve para registrarte con un usuario local. Si quieres registrarte mediante sign-on, pulsa el botón de arriba. + + + + + part_list.action.action.export + Exportar componentes + + + + + part_list.action.export_json + Exportar a JSON + + + + + part_list.action.export_csv + Exportar a CSV + + + + + part_list.action.export_yaml + Exportar a YAML + + + + + part_list.action.export_xml + Exportar a XML + + + + + parts.import.title + Importar componentes + + + + + parts.import.errors.title + Problemas con las importaciones + + + + + parts.import.flash.error + Error en importe. Probablemente esto haya sido causado por datos inválidos. + + + + + parts.import.format.auto + Automático (basado en extensión de archivo) + + + + + parts.import.flash.error.unknown_format + ¡No se pudo determinar el formato del archivo dado! + + + + + parts.import.flash.error.invalid_file + Archivo inválido. ¡Por favor comprueba que has seleccionado el formato adecuado! + + + + + parts.import.part_category.label + Sobreescribir categoría + + + + + parts.import.part_category.help + Si seleccionas un valor aquí, todos los componentes importados serán asignados a esta categoría. Sin importar que fuera seleccionado en los datos. + + + + + import.create_unknown_datastructures + Crear estructuras de datos desconocidas + + + + + import.create_unknown_datastructures.help + Si esto es seleccionado, las estructuras de datos (como categorías, footprints, etc.) que no existan en la base de datos serán creadas automáticamente. Si no es seleccionado, solo se crearan estructuras de datos existentes, y si no se encuentra ninguna estructura de datos compatible, el componente no será asignado a nada. + + + + + import.path_delimiter + Delimitador de camino + + + + + import.path_delimiter.help + Delimitador usado para marcar diferentes niveles en caminos de estructuras de datos como categoría, footprint, etc. + + + + + parts.import.help_documentation + Vea la <a href="%link%">documentación</a> para más información sobre el formato de archivo. + + + + + parts.import.help + Puedes importar componentes desde archivos con esta herramienta. Los componentes serán añadidos directamente a la base de datos, así que por favor comprueba que el archivo es correcto antes de subirlo aquí. + + + + + parts.import.flash.success + ¡Componente importado correctamente! + + + + + parts.import.errors.imported_entities + Componentes importados + + + + + perm.import + Importar datos + + + + + parts.import.part_needs_review.label + Marcar todos los componentes importados como "Necesita revisión" + + + + + parts.import.part_needs_review.help + Si se selecciona esta opción, todos los componentes serán marcados como "Necesita revisión", independientemente de lo que indiquen los datos. + + + + + project.bom_import.flash.success + Se han importado %count% entradas BOM correctamente. + + + + + project.bom_import.type + Tipo + + + + + project.bom_import.type.kicad_pcbnew + KiCAD Pcbnew BOM (archivo CSV) + + + + + project.bom_import.clear_existing_bom + Eliminar entradas BOM existentes antes de importar + + + + + project.bom_import.clear_existing_bom.help + ¡Seleccionar esta opción eliminará todas las entradas BOM existentes en el proyecto y las sobreescribirá con el archivo BOM importado! + + + + + project.bom_import.flash.invalid_file + No se pudo importar el archivo. Por favor, comprueba que has seleccionado el tipo de archivo adecuado. Mensaje de error: %message% + + + + + project.bom_import.flash.invalid_entries + ¡Error de validación! ¡Por favor comprueba tus datos! + + + + + project.import_bom + Importar BOM para el proyecto + + + + + project.edit.bom.import_bom + Importar BOM + + + + + measurement_unit.new + Nueva Unidad de Medida + + + + + measurement_unit.edit + Editar Unidad de Medida + + + + + user.aboutMe.label + Sobre mí + + + + + storelocation.owner.label + Propietario + + + + + storelocation.part_owner_must_match.label + Lote de Componente debe coincidir con el propietario de la ubicación de almacenaje + + + + + part_lot.owner + Propietario + + + + + part_lot.owner.help + Solo el propietario puede quitar o añadir stock a este lote. + + + + + log.element_edited.changed_fields.owner + Propietario + + + + + log.element_edited.changed_fields.instock_unknown + Cantidad desconocida + + + + + log.element_edited.changed_fields.needs_refill + Necesita relleno + + + + + part.withdraw.access_denied + No se permite realizar la acción deseada. Por favor comprueba tus permisos y el propietario de los lotes de la parte. + + + + + part.info.amount.less_than_desired + Menos de lo deseado + + + + + log.cli_user + Usuario CLI + + + + + log.element_edited.changed_fields.part_owner_must_match + El propietario del componente debe coincidir con el propietario de la ubicación de almacenaje + + + + + part.filter.lessThanDesired + Stock menor de lo deseado (cantidad total < cantidad mínima) + + + + + part.filter.lotOwner + Propietario del lote + + + + + user.show_email_on_profile.label + Mostrar email en la página de perfil pública + + + + + log.details.title + Detalles del log + + + + + log.user_login.login_from_ip + Iniciar sesión con dirección IP + + + + + log.user_login.ip_anonymize_hint + Si los últimos dígitos de la dirección IP no aparecen, entonces se activa el modo RGPD, en el cual las direcciones IP son anonimizadas. + + + + + log.user_not_allowed.unauthorized_access_attempt_to + Acceso no autorizado a la página + + + + + log.user_not_allowed.hint + La petición fue bloqueada. Ninguna acción debería ser requerida. + + + + + log.no_comment + Sin comentarios + + + + + log.element_changed.field + Campo + + + + + log.element_changed.data_before + Datos previos al cambio + + + + + error_table.error + Un error ha ocurrido durante tu petición. + + + + + part.table.invalid_regex + Expresión regular inválida (regex) + + + + + log.element_changed.data_after + Datos después del cambio + + + + + log.element_changed.diff + Diferencia + + + + + log.undo.undo.short + Deshacer + + + + + log.undo.revert.short + Revertir a esta versión + + + + + log.view_version + Ver versión + + + + + log.undo.undelete.short + Restaurar + + + + + log.element_edited.changed_fields.id + ID + + + + + log.element_edited.changed_fields.id_owner + Propietario + + + + + log.element_edited.changed_fields.parent_id + Padre + + + + + log.details.delete_entry + Cancelar la entrada de registro + + + + + log.delete.message.title + ¿Realmente quieres borrar la entrada de registro? + + + + + log.delete.message + Si esto es una entrada de historia de elemento, ¡esto rompe la historia del elemento! Esto puede conllevar resultados inesperados cuando se use la función de viaje en el tiempo. + + + + + log.collection_deleted.on_collection + En colección + + + + + log.element_edited.changed_fields.attachments + Adjuntos + + + + + tfa_u2f.add_key.registration_error + Hubo un error durante el registro de la clave de seguridad. ¡Vuelve a intentarlo o usa otra clave de seguridad! + + + + + log.target_type.none + Ninguno + + + + + ui.darkmode.light + Luminoso + + + + + ui.darkmode.dark + Oscuro + + + + + ui.darkmode.auto + Automático (decidir según los ajustes del sistema) + + + + + label_generator.no_lines_given + ¡No se ha dado contenido de texto! Las etiquetas permanecerán vacías. + + + + + user.password_strength.very_weak + Muy débil + + + + + user.password_strength.weak + Débil + + + + + user.password_strength.medium + Medio + + + + + user.password_strength.strong + Fuerte + + + + + user.password_strength.very_strong + Muy fuerte + + + + + perm.users.impersonate + Personificar otros usuarios + + + + + user.impersonated_by.label + Personificado por + + + + + user.stop_impersonation + Detener la personificación + + + + + user.impersonate.btn + Personificar + + + + + user.impersonate.confirm.title + ¿Realmente quieres personificar a este usuario? + + + + + user.impersonate.confirm.message + Esto será registrado. Haz esto solo por un buen motivo. + +Por favor ten en cuenta que no puedes personificar a un usuario deshabilitado. Si lo intentas obtendrás un mensaje de "Acceso denegado". + + + + + log.type.security.user_impersonated + Usuario personificado + + + + + info_providers.providers_list.title + Proveedor de información + + + + + info_providers.providers_list.active + Activo + + + + + info_providers.providers_list.disabled + Desactivado + + + + + info_providers.capabilities.basic + Básico + + + + + info_providers.capabilities.footprint + Footprint + + + + + info_providers.capabilities.picture + Imagen + + + + + info_providers.capabilities.datasheet + Ficha técnica + + + + + info_providers.capabilities.price + Precios + + + + + part.info_provider_reference.badge + El proveedor de información usada para crear este componente. + + + + + part.info_provider_reference + Creado por proveedor de información + + + + + oauth_client.connect.btn + Conectar OAuth + + + + + info_providers.table.provider.label + Proveedor + + + + + info_providers.search.keyword + Palabra clave + + + + + info_providers.search.submit + Buscar + + + + + info_providers.search.providers.help + Seleccionar los proveedores que deban ser buscados. + + + + + info_providers.search.providers + Proveedores + + + + + info_providers.search.info_providers_list + Mostrar todos los proveedores de información disponibles + + + + + info_providers.search.title + Crear componentes de proveedor de información + + + + + oauth_client.flash.connection_successful + Conectado a la aplicación OAuth con éxito + + + + + perm.part.info_providers + Proveedores de información + + + + + perm.part.info_providers.create_parts + Crear componentes a partir de proveedor de información + + + + + entity.edit.alternative_names.label + Nombres alternativos + + + + + entity.edit.alternative_names.help + Los nombres alternativos dados aquí son usados para encontrar este elemento basados en los resultados de los proveedores de información. + + + + + info_providers.form.help_prefix + Proveedor + + + + + update_manager.new_version_available.title + Nueva versión disponible + + + + + update_manager.new_version_available.text + Nueva versión de Part-DB disponible. Más información aquí. + + + + + update_manager.new_version_available.only_administrators_can_see + Solo los administradores pueden ver este mensaje. + + + + + perm.system.show_available_updates + Mostrar actualizaciones de Part-DB disponibles. + + + + + user.settings.api_tokens + Tokens API + + + + + user.settings.api_tokens.description + Utilizando un token API, otras aplicaciones pueden acceder a Part-DB con tus derechos de usuario, para realizar las diversas acciones usando el Part-DB REST API. Si borras un token API aquí, la aplicación que use ese token ya no podrá usar Part-DB por ti. + + + + + api_tokens.name + Nombre + + + + + api_tokens.access_level + Nivel de acceso + + + + + api_tokens.expiration_date + Fecha de caducidad + + + + + api_tokens.added_date + Añadido a + + + + + api_tokens.last_time_used + Última vez usado + + + + + datetime.never + Nunca + + + + + api_token.valid + Válido + + + + + api_token.expired + Caducado + + + + + user.settings.show_api_documentation + Mostrar documentación API + + + + + api_token.create_new + Crear nuevo token API + + + + + api_token.level.read_only + Solo lectura + + + + + api_token.level.edit + Editar + + + + + api_token.level.admin + Admin + + + + + api_token.level.full + Completo + + + + + api_tokens.access_level.help + Puedes restringir a qué accede el token API. El acceso siempre estará limitado por los permisos de tu usuario. + + + + + api_tokens.expiration_date.help + Después de esta fecha, el token ya no será utilizable. Déjalo en blanco si el token no expira nunca. + + + + + api_tokens.your_token_is + Tu token API es + + + + + api_tokens.please_save_it + Por favor guárdalo. ¡No serás capaz de volver a verlo! + + + + + api_tokens.create_new.back_to_user_settings + Volver a ajustes de usuario + + + + + project.build.dont_check_quantity + No comprobar cantidades + + + + + project.build.dont_check_quantity.help + Si se selecciona esta opción, las cantidades retiradas serán usadas tal y como se han dado, sin importar que más o menos componentes realmente sean necesarios para construir este proyecto. + + + + + part_list.action.invert_selection + Invertir selección + + + + + perm.api + API + + + + + perm.api.access_api + Acceder API + + + + + perm.api.manage_tokens + Gestionar tokens API + + + + + user.settings.api_tokens.delete.title + ¿Realmente quieres borrar este token API? + + + + + user.settings.api_tokens.delete + Borrar + + + + + user.settings.api_tokens.delete.message + La aplicación que usa este token API ya no tendrá acceso a Part-DB. ¡Esta acción no puede ser deshecha! + + + + + api_tokens.deleted + ¡Token API borrado con éxito! + + + + + user.settings.api_tokens.no_api_tokens_yet + No se ha configurado ningún token API aún. + + + + + api_token.ends_with + Termina con + + + + + entity.select.creating_new_entities_not_allowed + ¡No tienes permisos para crear nuevas entidades de este tipo! Por favor usa una entidad preexistente. + + + + + scan_dialog.mode + Tipo de código de barras + + + + + scan_dialog.mode.auto + Detectar automáticamente + + + + + scan_dialog.mode.ipn + Código de barras IPN + + + + + scan_dialog.mode.internal + Código de barras Part-DB + + + + + part_association.label + Asociación de componente + + + + + part.edit.tab.associations + Componentes asociados. + + + + + part_association.edit.other_part + Componente asociado + + + + + part_association.edit.type + Tipo de relación + + + + + part_association.edit.comment + Notas + + + + + part_association.edit.type.help + Puedes seleccionar aquí como la parte seleccionada se relaciona con el componente. + + + + + part_association.table.from_this_part + Asociaciones de este componente a otros. + + + + + part_association.table.from + Desde + + + + + part_association.table.type + Relación + + + + + part_association.table.to + A + + + + + part_association.type.compatible + Es compatible con + + + + + part_association.table.to_this_part + Asociaciones de este componente de otros + + + + + part_association.type.other + Otros (valor personalizable) + + + + + part_association.type.supersedes + Reemplaza + + + + + part_association.edit.other_type + Tipo personalizable + + + + + part_association.edit.delete.confirm + ¿De verdad quieres borrar esta asociación? Esto no puede ser deshecho + + + + + part_lot.edit.advanced + Expandir opciones avanzadas + + + + + part_lot.edit.vendor_barcode + Código de barras de vendedor + + + + + part_lot.edit.vendor_barcode.help + Si este lote ya tiene un código de barras (por ejemplo, puesto por el vendedor), puedes escribir aquí sus contenidos, para escanearlos fácilmente. + + + + + scan_dialog.mode.vendor + Código de barras de vendedor (configurados en el lote del componente) + + + + + project.bom.instockAmount + Cantidad en stock + + + + + collection_type.new_element.tooltip + Este elemento fue creado recientemente y no ha sido guardado aún a la base de datos. + + + + + part.merge.title + Combinar componentes + + + + + part.merge.title.into + en + + + + + part.merge.confirm.title + ¿De verdad quieres juntar <b>%other%</b> into <b>%target%</b>? + + + + + part.merge.confirm.message + <b>%other%</b> será borrado, y el componente será guardado con la información mostrada. + + + + + part.info.merge_modal.title + Combinar componentes + + + + + part.info.merge_modal.other_part + Otro componente + + + + + part.info.merge_modal.other_into_this + Combinar otro componente a este (borrar el otro componente, guardar este) + + + + + part.info.merge_modal.this_into_other + Combinar este componente a otro (borrar este componente, guardar el otro) + + + + + part.info.merge_btn + Combinar componentes + + + + + part.update_part_from_info_provider.btn + Actualizar componente con la información de los proveedores + + + + + info_providers.update_part.title + Actualizar componente existente con la información del proveedor + + + + + part.merge.flash.please_review + Datos no guardados aún. Repasa los cambios y haz click en guardar para guardar los datos nuevos. + + + + + user.edit.flash.permissions_fixed + Faltan permisos requeridos por otros permisos. Esto ha sido corregido. Por favor comprueba si los permisos están como quieres. + + + + + permission.legend.dependency_note + Por favor ten en cuenta que algunos de los permisos de operaciones dependen de otros. Si te encuentras con un aviso diciendo que los permisos restantes han sido corregidos y un permiso ha sido configurado a permitir otra vez, tienes que configurar también la operación dependiente a prohibido. Las dependencias se suelen encontrar a la derecha de una operación. + + + + + log.part_stock_changed.timestamp + Versión + + + + + part.info.withdraw_modal.timestamp + Versión de la acción + + + + + part.info.withdraw_modal.timestamp.hint + Este campo te permite especificar la fecha real, cuando la operación de stock fue realizada, no cuando fue registrada. Este valor se guarda en el campo extra del registro de entrada. + + + + + part.info.withdraw_modal.delete_lot_if_empty + Eliminar este lote, si se vacía + + + + + info_providers.search.error.client_exception + Un error ha ocurrido mientras se comunicaba con el proveedor de información. Comprueba la configuración de este proveedor y recarga el token OAuth si es posible. + + + + + eda_info.reference_prefix.placeholder + p. ej. R + + + + + eda_info.reference_prefix + Prefijo de referencia + + + + + eda_info.kicad_section.title + Configuraciones específicas de KiCad + + + + + eda_info.value + Valor + + + + + eda_info.value.placeholder + p. ej. 100n + + + + + eda_info.exclude_from_bom + Excluir componentes de BOM + + + + + eda_info.exclude_from_board + Excluir componente de PCB/Tablero + + + + + eda_info.exclude_from_sim + Excluir componentes de simulación + + + + + eda_info.kicad_symbol + KiCad símbolos esquemáticos + + + + + eda_info.kicad_symbol.placeholder + p. ej. Transistor_BJT:BC547 + + + + + eda_info.kicad_footprint + KiCad footprint + + + + + eda_info.kicad_footprint.placeholder + p. ej. Package_TO_SOT_THT:TO-92 + + + + + part.edit.tab.eda + Información EDA + + + + + api.api_endpoints.title + Punto final API + + + + + api.api_endpoints.partdb + Part-DB API + + + + + api.api_endpoints.kicad_root_url + KiCad API root URL + + + + + eda_info.visibility + Forzar visibilidad + + + + + eda_info.visibility.help + Por defecto, la visibilidad al software EDA está automáticamente determinada. Con esta casilla puedes forzar a que sea visible o invisible. + + + + + part.withdraw.zero_amount + ¡Has intentado retirar una cantidad nula! No se ha realizado ninguna acción. + + + + + login.flash.access_denied_please_login + ¡Acceso denegado! Por favor inicia sesión para continuar. + + + + + attachment.upload_multiple_files + Subir archivos + + + + + entity.mass_creation_flash + Creadas %COUNT% entidades con éxito. + + + + diff --git a/translations/security.hr.xlf b/translations/security.hr.xlf new file mode 100644 index 00000000..46664730 --- /dev/null +++ b/translations/security.hr.xlf @@ -0,0 +1,17 @@ + + + + + + user.login_error.user_disabled + Vaš račun je onemogućen. Molimo kontaktirajte administratora ako mislite da je ovo pogrešno. + + + + + saml.error.cannot_login_local_user_per_saml + Ne možete se prijaviti kao lokalni koristnik preko SSO! Molimo koristite vašu lokalnu zaporku. + + + + diff --git a/translations/security.vi.xlf b/translations/security.vi.xlf new file mode 100644 index 00000000..de4647bf --- /dev/null +++ b/translations/security.vi.xlf @@ -0,0 +1,17 @@ + + + + + + user.login_error.user_disabled + Tài khoản của bạn đã bị vô hiệu hóa! Hãy liên hệ với quản trị viên nếu bạn cho rằng điều này sai. + + + + + saml.error.cannot_login_local_user_per_saml + Bạn không thể đăng nhập qua SSO! Thay vào đó hãy sử dụng mật khẩu người dùng cục bộ của bạn. + + + + diff --git a/translations/validators.en.xlf b/translations/validators.en.xlf index c7ef9701..15f61196 100644 --- a/translations/validators.en.xlf +++ b/translations/validators.en.xlf @@ -354,7 +354,7 @@ - + validator.invalid_range The given range is not valid! diff --git a/yarn.lock b/yarn.lock index 203c22b0..61ccb90b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -71,10 +71,17 @@ "@babel/highlight" "^7.24.7" picocolors "^1.0.0" +<<<<<<< HEAD "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.8": version "7.24.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.9.tgz#53eee4e68f1c1d0282aa0eb05ddb02d033fc43a0" integrity sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng== +======= +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.8", "@babel/compat-data@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.0.tgz#6b226a5da3a686db3c30519750e071dce292ad95" + integrity sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg== +>>>>>>> master "@babel/core@^7.19.6": version "7.24.9" @@ -97,12 +104,21 @@ json5 "^2.2.3" semver "^6.3.1" +<<<<<<< HEAD "@babel/generator@^7.24.8", "@babel/generator@^7.24.9": version "7.24.10" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.10.tgz#a4ab681ec2a78bbb9ba22a3941195e28a81d8e76" integrity sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg== dependencies: "@babel/types" "^7.24.9" +======= +"@babel/generator@^7.24.9", "@babel/generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" + integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== + dependencies: + "@babel/types" "^7.25.0" +>>>>>>> master "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" @@ -134,6 +150,7 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.24.7": +<<<<<<< HEAD version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz#47f546408d13c200c0867f9d935184eaa0851b09" integrity sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA== @@ -141,17 +158,24 @@ "@babel/helper-annotate-as-pure" "^7.24.7" "@babel/helper-environment-visitor" "^7.24.7" "@babel/helper-function-name" "^7.24.7" +======= + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253" + integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" +>>>>>>> master "@babel/helper-member-expression-to-functions" "^7.24.8" "@babel/helper-optimise-call-expression" "^7.24.7" - "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/traverse" "^7.25.0" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz#be4f435a80dc2b053c76eeb4b7d16dd22cfc89da" - integrity sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.0.tgz#17afe5d23b3a833a90f0fab9c2ae69fea192de5c" + integrity sha512-q0T+dknZS+L5LDazIP+02gEZITG5unzvb6yIjcmj5i0eFrs5ToBV2m2JGH4EsE/gtP8ygEGLGApBgRIZkTm7zg== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" regexpu-core "^5.3.1" @@ -168,11 +192,12 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" - integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== dependencies: +<<<<<<< HEAD "@babel/types" "^7.24.7" "@babel/helper-function-name@^7.24.7": @@ -195,6 +220,8 @@ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== dependencies: +======= +>>>>>>> master "@babel/traverse" "^7.24.8" "@babel/types" "^7.24.8" @@ -206,16 +233,22 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" +<<<<<<< HEAD "@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.24.9": version "7.24.9" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz#e13d26306b89eea569180868e652e7f514de9d29" integrity sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw== +======= +"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.24.9", "@babel/helper-module-transforms@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.0.tgz#3ffc23c473a2769a7e40d3274495bd559fdd2ecc" + integrity sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ== +>>>>>>> master dependencies: - "@babel/helper-environment-visitor" "^7.24.7" "@babel/helper-module-imports" "^7.24.7" "@babel/helper-simple-access" "^7.24.7" - "@babel/helper-split-export-declaration" "^7.24.7" "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" "@babel/helper-optimise-call-expression@^7.24.7": version "7.24.7" @@ -229,23 +262,23 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== -"@babel/helper-remap-async-to-generator@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz#b3f0f203628522713849d49403f1a414468be4c7" - integrity sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA== +"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-wrap-function" "^7.24.7" + "@babel/helper-wrap-function" "^7.25.0" + "@babel/traverse" "^7.25.0" -"@babel/helper-replace-supers@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz#f933b7eed81a1c0265740edc91491ce51250f765" - integrity sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg== +"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" "@babel/helper-simple-access@^7.24.7": version "7.24.7" @@ -263,6 +296,7 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" +<<<<<<< HEAD "@babel/helper-split-export-declaration@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" @@ -270,6 +304,8 @@ dependencies: "@babel/types" "^7.24.7" +======= +>>>>>>> master "@babel/helper-string-parser@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" @@ -285,23 +321,31 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== -"@babel/helper-wrap-function@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz#52d893af7e42edca7c6d2c6764549826336aae1f" - integrity sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw== +"@babel/helper-wrap-function@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== dependencies: - "@babel/helper-function-name" "^7.24.7" - "@babel/template" "^7.24.7" - "@babel/traverse" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.0" + "@babel/types" "^7.25.0" "@babel/helpers@^7.24.8": +<<<<<<< HEAD version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.8.tgz#2820d64d5d6686cca8789dd15b074cd862795873" integrity sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ== dependencies: "@babel/template" "^7.24.7" "@babel/types" "^7.24.8" +======= + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" +>>>>>>> master "@babel/highlight@^7.24.7": version "7.24.7" @@ -313,25 +357,39 @@ js-tokens "^4.0.0" picocolors "^1.0.0" +<<<<<<< HEAD "@babel/parser@^7.18.9", "@babel/parser@^7.24.7", "@babel/parser@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== +======= +"@babel/parser@^7.18.9", "@babel/parser@^7.24.8", "@babel/parser@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.0.tgz#9fdc9237504d797b6e7b8f66e78ea7f570d256ad" + integrity sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA== +>>>>>>> master -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz#fd059fd27b184ea2b4c7e646868a9a381bbc3055" - integrity sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.0.tgz#328275f22d809b962978d998c6eba22a233ac8aa" + integrity sha512-dG0aApncVQwAUJa8tP1VHTnmU67BeIQvKafd3raEx315H54FfkZSz3B/TT+33ZQAjatGJA79gZqTtqL5QZUKXw== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz#468096ca44bbcbe8fcc570574e12eb1950e18107" - integrity sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg== +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73" + integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": version "7.24.7" @@ -342,13 +400,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" "@babel/plugin-transform-optional-chaining" "^7.24.7" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz#71b21bb0286d5810e63a1538aa901c58e87375ec" - integrity sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -489,15 +547,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-async-generator-functions@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz#7330a5c50e05181ca52351b8fd01642000c96cfd" - integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== +"@babel/plugin-transform-async-generator-functions@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf" + integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q== dependencies: - "@babel/helper-environment-visitor" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" - "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-remap-async-to-generator" "^7.25.0" "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/traverse" "^7.25.0" "@babel/plugin-transform-async-to-generator@^7.24.7": version "7.24.7" @@ -515,12 +573,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-block-scoping@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz#42063e4deb850c7bd7c55e626bf4e7ab48e6ce02" - integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== +"@babel/plugin-transform-block-scoping@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-class-properties@^7.24.7": version "7.24.7" @@ -539,6 +597,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" +<<<<<<< HEAD "@babel/plugin-transform-classes@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz#ad23301fe5bc153ca4cf7fb572a9bc8b0b711cf7" @@ -551,6 +610,18 @@ "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-replace-supers" "^7.24.7" "@babel/helper-split-export-declaration" "^7.24.7" +======= +"@babel/plugin-transform-classes@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e" + integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/traverse" "^7.25.0" +>>>>>>> master globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.24.7": @@ -583,6 +654,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.7" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604" + integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-transform-dynamic-import@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" @@ -615,14 +694,14 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" -"@babel/plugin-transform-function-name@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz#6d8601fbffe665c894440ab4470bc721dd9131d6" - integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== +"@babel/plugin-transform-function-name@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.0.tgz#d17890029ceefb45189ea203b404a496263a8412" + integrity sha512-CQmfSnK14eYu82fu6GlCwRciHB7mp7oLN+DeyGDDwUr9cMwuSVviJKPXw/YcRYZdB1TdlLJWHHwXwnwD1WnCmQ== dependencies: - "@babel/helper-compilation-targets" "^7.24.7" - "@babel/helper-function-name" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" "@babel/plugin-transform-json-strings@^7.24.7": version "7.24.7" @@ -671,15 +750,15 @@ "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-simple-access" "^7.24.7" -"@babel/plugin-transform-modules-systemjs@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz#f8012316c5098f6e8dee6ecd58e2bc6f003d0ce7" - integrity sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw== +"@babel/plugin-transform-modules-systemjs@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== dependencies: - "@babel/helper-hoist-variables" "^7.24.7" - "@babel/helper-module-transforms" "^7.24.7" - "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-module-transforms" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" "@babel/plugin-transform-modules-umd@^7.24.7": version "7.24.7" @@ -870,6 +949,7 @@ "@babel/helper-plugin-utils" "^7.24.7" "@babel/preset-env@^7.19.4": +<<<<<<< HEAD version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.8.tgz#e0db94d7f17d6f0e2564e8d29190bc8cdacec2d1" integrity sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ== @@ -880,8 +960,21 @@ "@babel/helper-validator-option" "^7.24.8" "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.7" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.7" +======= + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.0.tgz#3fe92e470311e91478129efda101816c680f0479" + integrity sha512-vYAA8PrCOeZfG4D87hmw1KJ1BPubghXP1e2MacRFwECGNKL76dkA38JEwYllbvQCpf/kLxsTtir0b8MtxKoVCw== + dependencies: + "@babel/compat-data" "^7.25.0" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.0" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0" +>>>>>>> master "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0" "@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" @@ -902,29 +995,38 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.24.7" - "@babel/plugin-transform-async-generator-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.25.0" "@babel/plugin-transform-async-to-generator" "^7.24.7" "@babel/plugin-transform-block-scoped-functions" "^7.24.7" - "@babel/plugin-transform-block-scoping" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.25.0" "@babel/plugin-transform-class-properties" "^7.24.7" "@babel/plugin-transform-class-static-block" "^7.24.7" +<<<<<<< HEAD "@babel/plugin-transform-classes" "^7.24.8" +======= + "@babel/plugin-transform-classes" "^7.25.0" +>>>>>>> master "@babel/plugin-transform-computed-properties" "^7.24.7" "@babel/plugin-transform-destructuring" "^7.24.8" "@babel/plugin-transform-dotall-regex" "^7.24.7" "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0" "@babel/plugin-transform-dynamic-import" "^7.24.7" "@babel/plugin-transform-exponentiation-operator" "^7.24.7" "@babel/plugin-transform-export-namespace-from" "^7.24.7" "@babel/plugin-transform-for-of" "^7.24.7" - "@babel/plugin-transform-function-name" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.25.0" "@babel/plugin-transform-json-strings" "^7.24.7" "@babel/plugin-transform-literals" "^7.24.7" "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" "@babel/plugin-transform-member-expression-literals" "^7.24.7" "@babel/plugin-transform-modules-amd" "^7.24.7" "@babel/plugin-transform-modules-commonjs" "^7.24.8" +<<<<<<< HEAD "@babel/plugin-transform-modules-systemjs" "^7.24.7" +======= + "@babel/plugin-transform-modules-systemjs" "^7.25.0" +>>>>>>> master "@babel/plugin-transform-modules-umd" "^7.24.7" "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" "@babel/plugin-transform-new-target" "^7.24.7" @@ -971,21 +1073,28 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.8.4": +<<<<<<< HEAD version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.8.tgz#5d958c3827b13cc6d05e038c07fb2e5e3420d82e" integrity sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA== +======= + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== +>>>>>>> master dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" - integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== +"@babel/template@^7.24.7", "@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== dependencies: "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/types" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" +<<<<<<< HEAD "@babel/traverse@^7.18.9", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.8.tgz#6c14ed5232b7549df3371d820fbd9abfcd7dfab7" @@ -1006,6 +1115,25 @@ version "7.24.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.9.tgz#228ce953d7b0d16646e755acf204f4cf3d08cc73" integrity sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ== +======= +"@babel/traverse@^7.18.9", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.0.tgz#e8533c0a57ed97921d1e5b20dd3db63d3efaebf5" + integrity sha512-ubALThHQy4GCf6mbb+5ZRNmLLCI7bJ3f8Q6LHBSRlSKSWj5a7dSUzJBLv3VuIhFrFPgjF4IzPF567YG/HSCdZA== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.24.9", "@babel/types@^7.25.0", "@babel/types@^7.4.4": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.0.tgz#e6e3656c581f28da8452ed4f69e38008ec0ba41b" + integrity sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg== +>>>>>>> master dependencies: "@babel/helper-string-parser" "^7.24.8" "@babel/helper-validator-identifier" "^7.24.7" @@ -2123,9 +2251,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.56.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" - integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + version "9.6.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff" + integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -2217,11 +2345,17 @@ "@types/node" "*" "@types/node@*": +<<<<<<< HEAD version "20.14.11" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.11.tgz#09b300423343460455043ddd4d0ded6ac579b74b" integrity sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA== +======= + version "22.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.0.0.tgz#04862a2a71e62264426083abe1e27e87cac05a30" + integrity sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw== +>>>>>>> master dependencies: - undici-types "~5.26.4" + undici-types "~6.11.1" "@types/parse-json@^4.0.0": version "4.0.2" @@ -2892,9 +3026,15 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001640: +<<<<<<< HEAD version "1.0.30001642" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz#6aa6610eb24067c246d30c57f055a9d0a7f8d05f" integrity sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA== +======= + version "1.0.30001643" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz#9c004caef315de9452ab970c3da71085f8241dbd" + integrity sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg== +>>>>>>> master chalk@^2.4.2: version "2.4.2" @@ -3435,11 +3575,19 @@ data-urls@^2.0.0: whatwg-url "^8.0.0" datatables.net-bs5@^2, datatables.net-bs5@^2.0.0: +<<<<<<< HEAD version "2.1.0" resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.1.0.tgz#4451bddb47bca3baef463d57bc59a356e5588b1f" integrity sha512-8eIkLVvcnTAk6rebLUD334yC96tYkARkVjeGn4ovGtmtAsgHYljiJl7ReWbCsSIoDfoBh512R7xk2x5MjvUi8g== dependencies: datatables.net "2.1.0" +======= + version "2.1.2" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.1.2.tgz#8ac9424564e4d217208fe58630d9f5eb89f5a539" + integrity sha512-DBkr0+yBDNJYmJ1JlPh/wYJ8h9yNMHDtNE7wznuZUP32CrKRsPF2pvLsvyzChY/j0ZvR5l2myxI6wDQFx+dFLQ== + dependencies: + datatables.net "2.1.2" +>>>>>>> master jquery ">=1.7" datatables.net-buttons-bs5@^3.0.0: @@ -3527,10 +3675,17 @@ datatables.net-select@2.0.3: datatables.net "^2" jquery ">=1.7" +<<<<<<< HEAD datatables.net@2.1.0, datatables.net@^2, datatables.net@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.1.0.tgz#0c176860336fd93df47cd7787434c5edf35afebf" integrity sha512-pFfCCwbMjAY3NY947y6oNMxPwABcsK+YY18/tZdZxp5FLeluWbS93efWVBxeXoHV9mm+hq5KfhYOe6LXtVIe0g== +======= +datatables.net@2.1.2, datatables.net@^2, datatables.net@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.1.2.tgz#7ba56756858ed7f18cacd71913c8a5d92f79b6b9" + integrity sha512-FZMH3bVqP6pKq/LwhFRoH22xW45bWt9eAdf7hmFrZkluXId6RNOr1EnrVvwHTo/f7l/rZX4wgHvnGvtOyj9Spw== +>>>>>>> master dependencies: jquery ">=1.7" @@ -3547,9 +3702,9 @@ debug@2.6.9: ms "2.0.0" debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" @@ -3761,9 +3916,15 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.820: +<<<<<<< HEAD version "1.4.832" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz#d25882ce0a9237577b039bffa124ecef1822003b" integrity sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA== +======= + version "1.5.2" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.2.tgz#6126ad229ce45e781ec54ca40db0504787f23d19" + integrity sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ== +>>>>>>> master emoji-regex@^8.0.0: version "8.0.0" @@ -3786,9 +3947,9 @@ encodeurl@~1.0.2: integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.0: - version "5.17.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" - integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -4527,9 +4688,9 @@ import-fresh@^3.2.1: resolve-from "^4.0.0" import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -5231,9 +5392,15 @@ node-notifier@^9.0.0: which "^2.0.2" node-releases@^2.0.14: +<<<<<<< HEAD version "2.0.17" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.17.tgz#d74bc4fec38d839eec5db2a3c9c963d4f33cb366" integrity sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA== +======= + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== +>>>>>>> master normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -5849,18 +6016,30 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^ integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.2.14, postcss@^8.2.15, postcss@^8.4.12, postcss@^8.4.24, postcss@^8.4.33: +<<<<<<< HEAD version "8.4.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== +======= + version "8.4.40" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== +>>>>>>> master dependencies: nanoid "^3.3.7" picocolors "^1.0.1" source-map-js "^1.2.0" preact@^10.13.2: +<<<<<<< HEAD version "10.22.1" resolved "https://registry.yarnpkg.com/preact/-/preact-10.22.1.tgz#6a3589973fe0c6e53211091607d31f4b7b27334d" integrity sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A== +======= + version "10.23.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.1.tgz#d400107289bc979881c5212cb5f5cd22cd1dc38c" + integrity sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A== +>>>>>>> master pretty-error@^4.0.0: version "4.0.0" @@ -6762,10 +6941,10 @@ typescript@^4.0.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.11.1: + version "6.11.1" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.11.1.tgz#432ea6e8efd54a48569705a699e62d8f4981b197" + integrity sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0"