From 1f0bfba0d346162e1ab90c64f548b7c4e825de29 Mon Sep 17 00:00:00 2001 From: BT Date: Sat, 2 May 2026 19:17:02 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20**Style:**=20Fixed=20indentation?= =?UTF-8?q?=20inconsistencies=20in=20`meetup=5Fuser`=20migration=20file.?= =?UTF-8?q?=20=F0=9F=9B=A0=EF=B8=8F=20**Factory:**=20Created=20factories?= =?UTF-8?q?=20for=20`TwitterAccount`,=20`EmailCampaign`,=20`EmailTexts`,?= =?UTF-8?q?=20and=20`BookCase`.=20=E2=9C=A8=20**Helper:**=20Added=20`Nostr?= =?UTF-8?q?Helper`=20with=20methods=20for=20generating=20fake/mocked=20Nos?= =?UTF-8?q?tr=20data.=20=E2=AC=86=EF=B8=8F=20**Dependencies:**=20Updated?= =?UTF-8?q?=20multiple=20Composer=20dependencies=20including=20`laravel/fr?= =?UTF-8?q?amework`,=20`astrotomic/laravel-translatable`,=20and=20others?= =?UTF-8?q?=20to=20their=20latest=20versions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ai/mcp/mcp.json | 4 +- .env.example | 7 +- .playwright-mcp/.gitignore | 2 + app/Models/LibraryItem.php | 2 + app/Models/Tag.php | 4 + app/Models/TwitterAccount.php | 3 + composer.lock | 2320 +++++++++-------- database/factories/BitcoinEventFactory.php | 42 + database/factories/BookCaseFactory.php | 37 + database/factories/CategoryFactory.php | 25 + database/factories/CityFactory.php | 66 +- database/factories/CountryFactory.php | 31 +- database/factories/CourseEventFactory.php | 34 + database/factories/CourseFactory.php | 37 + database/factories/EmailCampaignFactory.php | 24 + database/factories/EmailTextsFactory.php | 25 + database/factories/EpisodeFactory.php | 36 + database/factories/Helpers/NostrHelper.php | 96 + database/factories/HighscoreFactory.php | 13 +- database/factories/LecturerFactory.php | 39 + database/factories/LibraryFactory.php | 33 + database/factories/LibraryItemFactory.php | 61 + database/factories/MeetupEventFactory.php | 26 +- database/factories/MeetupFactory.php | 35 +- database/factories/OrangePillFactory.php | 29 + database/factories/ParticipantFactory.php | 22 + database/factories/PodcastFactory.php | 35 + database/factories/ProjectProposalFactory.php | 39 + database/factories/RegistrationFactory.php | 25 + .../factories/SelfHostedServiceFactory.php | 28 +- database/factories/TagFactory.php | 29 + database/factories/TwitterAccountFactory.php | 27 + database/factories/UserFactory.php | 45 +- database/factories/VenueFactory.php | 30 + database/factories/VoteFactory.php | 27 + ...d_description_field_to_lecturers_table.php | 21 +- ...add_description_field_to_courses_table.php | 21 +- ...create_created_by_fields_on_all_tables.php | 90 +- ...04_add_reputation_field_on_user_table.php} | 0 ...01_17_175957_create_meetup_user_table.php} | 14 +- ...nge_tweet_field_to_library_items_table.php | 24 +- ...2_24_090531_add_nostr_fields_to_tables.php | 24 +- database/seeders/DatabaseSeeder.php | 202 +- lang/de.json | 74 + lang/de/validation.php | 265 +- lang/en.json | 74 + lang/en/validation.php | 265 +- lang/es.json | 75 + lang/es/validation.php | 265 +- lang/hu.json | 79 +- lang/hu/validation.php | 265 +- lang/nl.json | 77 +- lang/nl/validation.php | 265 +- lang/pl.json | 77 +- lang/pl/validation.php | 265 +- lang/pt.json | 77 +- lang/pt/validation.php | 265 +- 57 files changed, 3980 insertions(+), 2142 deletions(-) create mode 100644 .playwright-mcp/.gitignore create mode 100644 database/factories/BitcoinEventFactory.php create mode 100644 database/factories/BookCaseFactory.php create mode 100644 database/factories/CategoryFactory.php create mode 100644 database/factories/CourseEventFactory.php create mode 100644 database/factories/CourseFactory.php create mode 100644 database/factories/EmailCampaignFactory.php create mode 100644 database/factories/EmailTextsFactory.php create mode 100644 database/factories/EpisodeFactory.php create mode 100644 database/factories/Helpers/NostrHelper.php create mode 100644 database/factories/LecturerFactory.php create mode 100644 database/factories/LibraryFactory.php create mode 100644 database/factories/LibraryItemFactory.php create mode 100644 database/factories/OrangePillFactory.php create mode 100644 database/factories/ParticipantFactory.php create mode 100644 database/factories/PodcastFactory.php create mode 100644 database/factories/ProjectProposalFactory.php create mode 100644 database/factories/RegistrationFactory.php create mode 100644 database/factories/TagFactory.php create mode 100644 database/factories/TwitterAccountFactory.php create mode 100644 database/factories/VenueFactory.php create mode 100644 database/factories/VoteFactory.php rename database/migrations/{2023_01_14_185805_add_reputation_field_on_user_table.php => 2023_01_14_185804_add_reputation_field_on_user_table.php} (100%) rename database/migrations/{2023_17_01_175957_create_meetup_user_table.php => 2023_01_17_175957_create_meetup_user_table.php} (73%) diff --git a/.ai/mcp/mcp.json b/.ai/mcp/mcp.json index 1012ec1..2e36faf 100644 --- a/.ai/mcp/mcp.json +++ b/.ai/mcp/mcp.json @@ -1,9 +1,9 @@ { "mcpServers": { "laravel-boost": { - "command": "vendor/bin/sail", + "command": "/usr/bin/php", "args": [ - "artisan", + "/var/home/user/Code/einundzwanzig-app/artisan", "boost:mcp" ] } diff --git a/.env.example b/.env.example index b89e61c..048d859 100644 --- a/.env.example +++ b/.env.example @@ -22,11 +22,8 @@ LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug -DB_CONNECTION=pgsql -DB_HOST=127.0.0.1 -DB_DATABASE=einundzwanzig_app -DB_USERNAME=postgres -DB_PASSWORD=secret +DB_CONNECTION=sqlite +DB_DATABASE=database/database.sqlite SESSION_DRIVER=database SESSION_LIFETIME=120 diff --git a/.playwright-mcp/.gitignore b/.playwright-mcp/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/.playwright-mcp/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/app/Models/LibraryItem.php b/app/Models/LibraryItem.php index 447e759..977a6cf 100644 --- a/app/Models/LibraryItem.php +++ b/app/Models/LibraryItem.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Support\CustomFeedItem; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; @@ -21,6 +22,7 @@ use Spatie\Tags\HasTags; class LibraryItem extends Model implements Feedable, HasMedia, Sortable { + use HasFactory; use HasSlug; use HasStatuses; use HasTags; diff --git a/app/Models/Tag.php b/app/Models/Tag.php index bbbc63c..2b2a18c 100644 --- a/app/Models/Tag.php +++ b/app/Models/Tag.php @@ -2,8 +2,12 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; + class Tag extends \Spatie\Tags\Tag { + use HasFactory; + public function courses() { return $this->morphedByMany(Course::class, 'taggable'); diff --git a/app/Models/TwitterAccount.php b/app/Models/TwitterAccount.php index 72e835e..3fbd35a 100644 --- a/app/Models/TwitterAccount.php +++ b/app/Models/TwitterAccount.php @@ -2,10 +2,13 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class TwitterAccount extends Model { + use HasFactory; + protected $guarded = []; protected $casts = [ diff --git a/composer.lock b/composer.lock index d298b0f..4adeb0b 100644 --- a/composer.lock +++ b/composer.lock @@ -66,22 +66,22 @@ }, { "name": "astrotomic/laravel-translatable", - "version": "v11.16.1", + "version": "v11.17.0", "source": { "type": "git", "url": "https://github.com/Astrotomic/laravel-translatable.git", - "reference": "3edd5a3083b45948942af83903845954c3352652" + "reference": "e29bb7d66017033337e0271a103a940d2d745681" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/3edd5a3083b45948942af83903845954c3352652", - "reference": "3edd5a3083b45948942af83903845954c3352652", + "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/e29bb7d66017033337e0271a103a940d2d745681", + "reference": "e29bb7d66017033337e0271a103a940d2d745681", "shasum": "" }, "require": { - "illuminate/contracts": "^9.0 || ^10.0 || ^11.0 || ^12.0", - "illuminate/database": "^9.0 || ^10.0 || ^11.0 || ^12.0", - "illuminate/support": "^9.0 || ^10.0 || ^11.0 || ^12.0", + "illuminate/contracts": "^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0", + "illuminate/database": "^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0", + "illuminate/support": "^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0", "php": "^8.0" }, "require-dev": { @@ -89,8 +89,8 @@ "laravel/legacy-factories": "^1.0.4", "laravel/pint": "^1.0", "mockery/mockery": "^1.3.3", - "orchestra/testbench": "^7.0 || ^8.0 || ^9.0 || ^10.0", - "phpunit/phpunit": "^10.0 || ^11.0" + "orchestra/testbench": "^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0" }, "type": "library", "extra": { @@ -147,7 +147,7 @@ "type": "github" } ], - "time": "2025-07-09T14:05:02+00:00" + "time": "2026-03-27T14:41:10+00:00" }, { "name": "bacon/bacon-qr-code", @@ -251,30 +251,30 @@ }, { "name": "blade-ui-kit/blade-icons", - "version": "1.8.1", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/driesvints/blade-icons.git", - "reference": "47e7b6f43250e6404e4224db8229219cd42b543c" + "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/47e7b6f43250e6404e4224db8229219cd42b543c", - "reference": "47e7b6f43250e6404e4224db8229219cd42b543c", + "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a", + "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a", "shasum": "" }, "require": { - "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/view": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", "php": "^7.4|^8.0", - "symfony/console": "^5.3|^6.0|^7.0", - "symfony/finder": "^5.3|^6.0|^7.0" + "symfony/console": "^5.3|^6.0|^7.0|^8.0", + "symfony/finder": "^5.3|^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "^1.5.1", - "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "phpunit/phpunit": "^9.0|^10.5|^11.0" }, "bin": [ @@ -328,20 +328,20 @@ "type": "paypal" } ], - "time": "2026-01-20T09:46:32+00:00" + "time": "2026-04-23T19:03:45+00:00" }, { "name": "brick/math", - "version": "0.14.1", + "version": "0.14.8", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "f05858549e5f9d7bb45875a75583240a38a281d0" + "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/f05858549e5f9d7bb45875a75583240a38a281d0", - "reference": "f05858549e5f9d7bb45875a75583240a38a281d0", + "url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629", + "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629", "shasum": "" }, "require": { @@ -380,7 +380,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.1" + "source": "https://github.com/brick/math/tree/0.14.8" }, "funding": [ { @@ -388,33 +388,33 @@ "type": "github" } ], - "time": "2025-11-24T14:40:29+00:00" + "time": "2026-02-10T14:33:43+00:00" }, { "name": "calebporzio/sushi", - "version": "v2.5.3", + "version": "v2.5.4", "source": { "type": "git", "url": "https://github.com/calebporzio/sushi.git", - "reference": "bf184973f943216b2aaa8dbc79631ea806038bb1" + "reference": "ef71a031f78a80b0ed82ce51fc5b648c01145281" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/calebporzio/sushi/zipball/bf184973f943216b2aaa8dbc79631ea806038bb1", - "reference": "bf184973f943216b2aaa8dbc79631ea806038bb1", + "url": "https://api.github.com/repos/calebporzio/sushi/zipball/ef71a031f78a80b0ed82ce51fc5b648c01145281", + "reference": "ef71a031f78a80b0ed82ce51fc5b648c01145281", "shasum": "" }, "require": { "ext-pdo_sqlite": "*", "ext-sqlite3": "*", - "illuminate/database": "^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0", - "illuminate/support": "^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "illuminate/database": "^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0", + "illuminate/support": "^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0", "php": "^7.1.3|^8.0" }, "require-dev": { "doctrine/dbal": "^2.9 || ^3.1.4", - "orchestra/testbench": "3.8.* || 3.9.* || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0", - "phpunit/phpunit": "^7.5 || ^8.4 || ^9.0 || ^10.0 || ^11.0" + "orchestra/testbench": "3.8.* || 3.9.* || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0", + "phpunit/phpunit": "^7.5 || ^8.4 || ^9.0 || ^10.0 || ^11.0 || ^12.5" }, "type": "library", "autoload": { @@ -434,7 +434,7 @@ ], "description": "Eloquent's missing \"array\" driver.", "support": { - "source": "https://github.com/calebporzio/sushi/tree/v2.5.3" + "source": "https://github.com/calebporzio/sushi/tree/v2.5.4" }, "funding": [ { @@ -442,7 +442,7 @@ "type": "github" } ], - "time": "2025-02-13T21:03:57+00:00" + "time": "2026-02-21T02:53:22+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -1613,16 +1613,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.8.0", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "21dc724a0583619cd1652f673303492272778051" + "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", - "reference": "21dc724a0583619cd1652f673303492272778051", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/7d0ed42f28e42d61352a7a79de682e5e67fec884", + "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884", "shasum": "" }, "require": { @@ -1638,6 +1638,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "0.9.0", + "jshttp/mime-db": "1.54.0.1", "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { @@ -1709,7 +1710,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.8.0" + "source": "https://github.com/guzzle/psr7/tree/2.9.0" }, "funding": [ { @@ -1725,7 +1726,7 @@ "type": "tidelift" } ], - "time": "2025-08-23T21:21:41+00:00" + "time": "2026-03-10T16:41:02+00:00" }, { "name": "guzzlehttp/uri-template", @@ -1883,16 +1884,16 @@ }, { "name": "intervention/image", - "version": "3.11.6", + "version": "3.11.8", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "5f6d27d9fd56312c47f347929e7ac15345c605a1" + "reference": "cf04c8dd245697f701057c13d4bfe140d584e738" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/5f6d27d9fd56312c47f347929e7ac15345c605a1", - "reference": "5f6d27d9fd56312c47f347929e7ac15345c605a1", + "url": "https://api.github.com/repos/Intervention/image/zipball/cf04c8dd245697f701057c13d4bfe140d584e738", + "reference": "cf04c8dd245697f701057c13d4bfe140d584e738", "shasum": "" }, "require": { @@ -1905,7 +1906,7 @@ "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", "slevomat/coding-standard": "~8.0", - "squizlabs/php_codesniffer": "^3.8" + "squizlabs/php_codesniffer": "^4" }, "suggest": { "ext-exif": "Recommended to be able to read EXIF data properly." @@ -1939,7 +1940,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.11.6" + "source": "https://github.com/Intervention/image/tree/3.11.8" }, "funding": [ { @@ -1955,20 +1956,20 @@ "type": "ko_fi" } ], - "time": "2025-12-17T13:38:29+00:00" + "time": "2026-05-01T08:20:10+00:00" }, { "name": "laravel/framework", - "version": "v12.48.1", + "version": "v12.58.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0f0974a9769378ccd9c9935c09b9927f3a606830" + "reference": "6172ae1f44ba5d89e111057ee4a4e7c27f5a610d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0f0974a9769378ccd9c9935c09b9927f3a606830", - "reference": "0f0974a9769378ccd9c9935c09b9927f3a606830", + "url": "https://api.github.com/repos/laravel/framework/zipball/6172ae1f44ba5d89e111057ee4a4e7c27f5a610d", + "reference": "6172ae1f44ba5d89e111057ee4a4e7c27f5a610d", "shasum": "" }, "require": { @@ -1989,7 +1990,7 @@ "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.3.0", "laravel/serializable-closure": "^1.3|^2.0", - "league/commonmark": "^2.7", + "league/commonmark": "^2.8.1", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", "league/uri": "^7.5.1", @@ -2009,8 +2010,8 @@ "symfony/mailer": "^7.2.0", "symfony/mime": "^7.2.0", "symfony/polyfill-php83": "^1.33", - "symfony/polyfill-php84": "^1.33", - "symfony/polyfill-php85": "^1.33", + "symfony/polyfill-php84": "^1.34", + "symfony/polyfill-php85": "^1.34", "symfony/process": "^7.2.0", "symfony/routing": "^7.2.0", "symfony/uid": "^7.2.0", @@ -2084,7 +2085,7 @@ "orchestra/testbench-core": "^10.9.0", "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", - "phpstan/phpstan": "^2.0", + "phpstan/phpstan": "^2.1.41", "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", "predis/predis": "^2.3|^3.0", "resend/resend-php": "^0.10.0|^1.0", @@ -2177,40 +2178,41 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-01-20T16:12:36+00:00" + "time": "2026-04-26T16:42:04+00:00" }, { "name": "laravel/horizon", - "version": "v5.43.0", + "version": "v5.46.0", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "2a04285ba83915511afbe987cbfedafdc27fd2de" + "reference": "bfea968e8aa674fb649d02e55ea0d38bdf5137d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/2a04285ba83915511afbe987cbfedafdc27fd2de", - "reference": "2a04285ba83915511afbe987cbfedafdc27fd2de", + "url": "https://api.github.com/repos/laravel/horizon/zipball/bfea968e8aa674fb649d02e55ea0d38bdf5137d5", + "reference": "bfea968e8aa674fb649d02e55ea0d38bdf5137d5", "shasum": "" }, "require": { "ext-json": "*", "ext-pcntl": "*", "ext-posix": "*", - "illuminate/contracts": "^9.21|^10.0|^11.0|^12.0", - "illuminate/queue": "^9.21|^10.0|^11.0|^12.0", - "illuminate/support": "^9.21|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.21|^10.0|^11.0|^12.0|^13.0", + "illuminate/queue": "^9.21|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^9.21|^10.0|^11.0|^12.0|^13.0", + "laravel/sentinel": "^1.0", "nesbot/carbon": "^2.17|^3.0", "php": "^8.0", "ramsey/uuid": "^4.0", - "symfony/console": "^6.0|^7.0", - "symfony/error-handler": "^6.0|^7.0", + "symfony/console": "^6.0|^7.0|^8.0", + "symfony/error-handler": "^6.0|^7.0|^8.0", "symfony/polyfill-php83": "^1.28", - "symfony/process": "^6.0|^7.0" + "symfony/process": "^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.55|^8.36|^9.15|^10.8", + "orchestra/testbench": "^7.56|^8.37|^9.16|^10.9|^11.0", "phpstan/phpstan": "^1.10|^2.0", "predis/predis": "^1.1|^2.0|^3.0" }, @@ -2254,36 +2256,36 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.43.0" + "source": "https://github.com/laravel/horizon/tree/v5.46.0" }, - "time": "2026-01-15T15:10:56+00:00" + "time": "2026-04-20T18:08:11+00:00" }, { "name": "laravel/nightwatch", - "version": "v1.22.0", + "version": "1.26.1", "source": { "type": "git", "url": "https://github.com/laravel/nightwatch.git", - "reference": "a6ef3f6bccc81e69e17e4f67992c1a3ab6a85110" + "reference": "9212390822f80e6e3e4f399ad7818c551d94af71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/nightwatch/zipball/a6ef3f6bccc81e69e17e4f67992c1a3ab6a85110", - "reference": "a6ef3f6bccc81e69e17e4f67992c1a3ab6a85110", + "url": "https://api.github.com/repos/laravel/nightwatch/zipball/9212390822f80e6e3e4f399ad7818c551d94af71", + "reference": "9212390822f80e6e3e4f399ad7818c551d94af71", "shasum": "" }, "require": { "ext-zlib": "*", "guzzlehttp/promises": "^2.0", - "laravel/framework": "^10.0|^11.0|^12.0", + "laravel/framework": "^10.0|^11.0|^12.0|^13.0", "monolog/monolog": "^3.6", "nesbot/carbon": "^2.0|^3.0", "php": "^8.2", "psr/http-message": "^1.0|^2.0", "psr/log": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.0", - "symfony/console": "^6.0|^7.0", - "symfony/http-foundation": "^6.0|^7.0", + "symfony/console": "^6.0|^7.0|^8.0", + "symfony/http-foundation": "^6.0|^7.0|^8.0", "symfony/polyfill-php84": "^1.29" }, "require-dev": { @@ -2298,16 +2300,16 @@ "livewire/livewire": "^2.0|^3.0", "mockery/mockery": "^1.0", "mongodb/laravel-mongodb": "^4.0|^5.0", - "orchestra/testbench": "^8.0|^9.0|^10.0", - "orchestra/testbench-core": "^8.0|^9.0|^10.0", - "orchestra/workbench": "^8.0|^9.0|^10.0", + "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0", + "orchestra/testbench-core": "^8.0|^9.0|^10.0|^11.0", + "orchestra/workbench": "^8.0|^9.0|^10.0|^11.0", "phpstan/phpstan": "^1.0", "phpunit/phpunit": "^10.0|^11.0|^12.0", "singlestoredb/singlestoredb-laravel": "^1.0|^2.0", "spatie/laravel-ignition": "^2.0", - "symfony/mailer": "^6.0|^7.0", - "symfony/mime": "^6.0|^7.0", - "symfony/var-dumper": "^6.0|^7.0" + "symfony/mailer": "^6.0|^7.0|^8.0", + "symfony/mime": "^6.0|^7.0|^8.0", + "symfony/var-dumper": "^6.0|^7.0|^8.0" }, "type": "library", "extra": { @@ -2350,34 +2352,34 @@ "issues": "https://github.com/laravel/nightwatch/issues", "source": "https://github.com/laravel/nightwatch" }, - "time": "2026-01-15T04:53:20+00:00" + "time": "2026-04-13T03:38:38+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.10", + "version": "v0.3.17", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "360ba095ef9f51017473505191fbd4ab73e1cab3" + "reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/360ba095ef9f51017473505191fbd4ab73e1cab3", - "reference": "360ba095ef9f51017473505191fbd4ab73e1cab3", + "url": "https://api.github.com/repos/laravel/prompts/zipball/6a82ac19a28b916ae0885828795dbd4c59d9a818", + "reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "ext-mbstring": "*", "php": "^8.1", - "symfony/console": "^6.2|^7.0" + "symfony/console": "^6.2|^7.0|^8.0" }, "conflict": { "illuminate/console": ">=10.17.0 <10.25.0", "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { - "illuminate/collections": "^10.0|^11.0|^12.0", + "illuminate/collections": "^10.0|^11.0|^12.0|^13.0", "mockery/mockery": "^1.5", "pestphp/pest": "^2.3|^3.4|^4.0", "phpstan/phpstan": "^1.12.28", @@ -2407,36 +2409,36 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.10" + "source": "https://github.com/laravel/prompts/tree/v0.3.17" }, - "time": "2026-01-13T20:29:29+00:00" + "time": "2026-04-20T16:07:33+00:00" }, { "name": "laravel/sanctum", - "version": "v4.2.4", + "version": "v4.3.1", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "dadd2277ff0f05cdb435c8b6a0bcedcf3b5519a9" + "reference": "e3b85d6e36ad00e5db2d1dcc27c81ffdf15cbf76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/dadd2277ff0f05cdb435c8b6a0bcedcf3b5519a9", - "reference": "dadd2277ff0f05cdb435c8b6a0bcedcf3b5519a9", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/e3b85d6e36ad00e5db2d1dcc27c81ffdf15cbf76", + "reference": "e3b85d6e36ad00e5db2d1dcc27c81ffdf15cbf76", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^11.0|^12.0", - "illuminate/contracts": "^11.0|^12.0", - "illuminate/database": "^11.0|^12.0", - "illuminate/support": "^11.0|^12.0", + "illuminate/console": "^11.0|^12.0|^13.0", + "illuminate/contracts": "^11.0|^12.0|^13.0", + "illuminate/database": "^11.0|^12.0|^13.0", + "illuminate/support": "^11.0|^12.0|^13.0", "php": "^8.2", - "symfony/console": "^7.0" + "symfony/console": "^7.0|^8.0" }, "require-dev": { "mockery/mockery": "^1.6", - "orchestra/testbench": "^9.15|^10.8", + "orchestra/testbench": "^9.15|^10.8|^11.0", "phpstan/phpstan": "^1.10" }, "type": "library", @@ -2472,31 +2474,87 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2026-01-15T14:37:16+00:00" + "time": "2026-02-07T17:19:31+00:00" }, { - "name": "laravel/serializable-closure", - "version": "v2.0.8", + "name": "laravel/sentinel", + "version": "v1.1.0", "source": { "type": "git", - "url": "https://github.com/laravel/serializable-closure.git", - "reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b" + "url": "https://github.com/laravel/sentinel.git", + "reference": "972d9885d9d14312a118e9565c4e6ecc5e751ea1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/7581a4407012f5f53365e11bafc520fd7f36bc9b", - "reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b", + "url": "https://api.github.com/repos/laravel/sentinel/zipball/972d9885d9d14312a118e9565c4e6ecc5e751ea1", + "reference": "972d9885d9d14312a118e9565c4e6ecc5e751ea1", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/container": "^8.37|^9.0|^10.0|^11.0|^12.0|^13.0", + "php": "^8.0" + }, + "require-dev": { + "laravel/pint": "^1.27", + "orchestra/testbench": "^6.47.1|^7.56|^8.37|^9.16|^10.9|^11.0", + "phpstan/phpstan": "^2.1.33" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sentinel\\SentinelServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sentinel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Mior Muhammad Zaki", + "email": "mior@laravel.com" + } + ], + "support": { + "source": "https://github.com/laravel/sentinel/tree/v1.1.0" + }, + "time": "2026-03-24T14:03:38+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v2.0.13", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b566ee0dd251f3c4078bed003a7ce015f5ea6dce", + "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", "nesbot/carbon": "^2.67|^3.0", "pestphp/pest": "^2.36|^3.0|^4.0", "phpstan/phpstan": "^2.0", - "symfony/var-dumper": "^6.2.0|^7.0.0" + "symfony/var-dumper": "^6.2.0|^7.0.0|^8.0.0" }, "type": "library", "extra": { @@ -2533,20 +2591,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2026-01-08T16:22:46+00:00" + "time": "2026-04-16T14:03:50+00:00" }, { "name": "laravel/tinker", - "version": "v2.11.0", + "version": "v2.11.1", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "3d34b97c9a1747a81a3fde90482c092bd8b66468" + "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/3d34b97c9a1747a81a3fde90482c092bd8b66468", - "reference": "3d34b97c9a1747a81a3fde90482c092bd8b66468", + "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741", + "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741", "shasum": "" }, "require": { @@ -2597,22 +2655,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.11.0" + "source": "https://github.com/laravel/tinker/tree/v2.11.1" }, - "time": "2025-12-19T19:16:45+00:00" + "time": "2026-02-06T14:12:35+00:00" }, { "name": "league/commonmark", - "version": "2.8.0", + "version": "2.8.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb" + "reference": "59fb075d2101740c337c7216e3f32b36c204218b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4efa10c1e56488e658d10adf7b7b7dcd19940bfb", - "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b", + "reference": "59fb075d2101740c337c7216e3f32b36c204218b", "shasum": "" }, "require": { @@ -2637,9 +2695,9 @@ "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0 | ^7.0", - "symfony/process": "^5.4 | ^6.0 | ^7.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", + "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0", + "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0 || ^8.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" }, @@ -2706,7 +2764,7 @@ "type": "tidelift" } ], - "time": "2025-11-26T21:48:24+00:00" + "time": "2026-03-19T13:16:38+00:00" }, { "name": "league/config", @@ -2792,16 +2850,16 @@ }, { "name": "league/flysystem", - "version": "3.31.0", + "version": "3.33.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff" + "reference": "570b8871e0ce693764434b29154c54b434905350" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1717e0b3642b0df65ecb0cc89cdd99fa840672ff", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/570b8871e0ce693764434b29154c54b434905350", + "reference": "570b8871e0ce693764434b29154c54b434905350", "shasum": "" }, "require": { @@ -2869,9 +2927,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.31.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.33.0" }, - "time": "2026-01-23T15:38:47+00:00" + "time": "2026-03-25T07:59:30+00:00" }, { "name": "league/flysystem-local", @@ -2924,16 +2982,16 @@ }, { "name": "league/glide", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/thephpleague/glide.git", - "reference": "131625631dcfd6f5089094d64c33b01513c44ab7" + "reference": "555bb802f951246ce454b86075dccb8b27156185" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/glide/zipball/131625631dcfd6f5089094d64c33b01513c44ab7", - "reference": "131625631dcfd6f5089094d64c33b01513c44ab7", + "url": "https://api.github.com/repos/thephpleague/glide/zipball/555bb802f951246ce454b86075dccb8b27156185", + "reference": "555bb802f951246ce454b86075dccb8b27156185", "shasum": "" }, "require": { @@ -2946,7 +3004,7 @@ "friendsofphp/php-cs-fixer": "^3.48", "mockery/mockery": "^1.6", "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.5 || ^11.0" + "phpunit/phpunit": "^10.5 || ^11.0 || ^12.5" }, "type": "library", "autoload": { @@ -2984,9 +3042,9 @@ ], "support": { "issues": "https://github.com/thephpleague/glide/issues", - "source": "https://github.com/thephpleague/glide/tree/3.1.0" + "source": "https://github.com/thephpleague/glide/tree/3.2.0" }, - "time": "2025-12-10T13:11:54+00:00" + "time": "2026-02-19T11:57:40+00:00" }, { "name": "league/mime-type-detection", @@ -3046,20 +3104,20 @@ }, { "name": "league/uri", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "4436c6ec8d458e4244448b069cc572d088230b76" + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76", - "reference": "4436c6ec8d458e4244448b069cc572d088230b76", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.8", + "league/uri-interfaces": "^7.8.1", "php": "^8.1", "psr/http-factory": "^1" }, @@ -3132,7 +3190,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.8.0" + "source": "https://github.com/thephpleague/uri/tree/7.8.1" }, "funding": [ { @@ -3140,20 +3198,20 @@ "type": "github" } ], - "time": "2026-01-14T17:24:56+00:00" + "time": "2026-03-15T20:22:25+00:00" }, { "name": "league/uri-interfaces", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4" + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4", - "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", "shasum": "" }, "require": { @@ -3216,7 +3274,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" }, "funding": [ { @@ -3224,33 +3282,33 @@ "type": "github" } ], - "time": "2026-01-15T06:54:53+00:00" + "time": "2026-03-08T20:05:35+00:00" }, { "name": "livewire/flux", - "version": "v2.11.1", + "version": "v2.14.1", "source": { "type": "git", "url": "https://github.com/livewire/flux.git", - "reference": "3ada3b2644215fd1ccb7003ce8e6bc185c22e70a" + "reference": "44f240efd186b5629d5e4c4a4cc7bbba0111fb48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/flux/zipball/3ada3b2644215fd1ccb7003ce8e6bc185c22e70a", - "reference": "3ada3b2644215fd1ccb7003ce8e6bc185c22e70a", + "url": "https://api.github.com/repos/livewire/flux/zipball/44f240efd186b5629d5e4c4a4cc7bbba0111fb48", + "reference": "44f240efd186b5629d5e4c4a4cc7bbba0111fb48", "shasum": "" }, "require": { - "illuminate/console": "^10.0|^11.0|^12.0", - "illuminate/support": "^10.0|^11.0|^12.0", - "illuminate/view": "^10.0|^11.0|^12.0", + "illuminate/console": "^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", + "illuminate/view": "^10.0|^11.0|^12.0|^13.0", "laravel/prompts": "^0.1|^0.2|^0.3", "livewire/livewire": "^3.7.4|^4.0", "php": "^8.1", - "symfony/console": "^6.0|^7.0" + "symfony/console": "^6.0|^7.0|^8.0" }, "conflict": { - "livewire/blaze": "<1.0.0" + "livewire/blaze": "<1.0.0-beta.2" }, "type": "library", "extra": { @@ -3288,32 +3346,32 @@ ], "support": { "issues": "https://github.com/livewire/flux/issues", - "source": "https://github.com/livewire/flux/tree/v2.11.1" + "source": "https://github.com/livewire/flux/tree/v2.14.1" }, - "time": "2026-01-21T17:09:56+00:00" + "time": "2026-04-23T23:00:08+00:00" }, { "name": "livewire/flux-pro", - "version": "2.11.1", + "version": "2.14.1", "dist": { "type": "zip", - "url": "https://composer.fluxui.dev/download/a0e59879-7eab-483a-94eb-2e558792f25e/flux-pro-2.11.1.zip", - "reference": "6c7259941b0914b768f0cd024b126d102a375858", - "shasum": "d2cc2eabe94e94242a3e3f07a75bda2370c4fba0" + "url": "https://composer.fluxui.dev/download/a19daa53-2ce1-4180-8867-7bf8cf84639a/flux-pro-2.14.1.zip", + "reference": "61404a28ab2271b5381a784c9c6727a4a38124de", + "shasum": "eb709ab3bb9493ecc4bad3c084dd951fe3247ce3" }, "require": { - "illuminate/console": "^10.0|^11.0|^12.0", - "illuminate/support": "^10.0|^11.0|^12.0", - "illuminate/view": "^10.0|^11.0|^12.0", + "illuminate/console": "^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", + "illuminate/view": "^10.0|^11.0|^12.0|^13.0", "laravel/prompts": "^0.1.24|^0.2|^0.3", - "livewire/flux": "2.11.1|dev-main", + "livewire/flux": "2.14.1|dev-main", "livewire/livewire": "^3.7.4|^4.0", "php": "^8.1", - "symfony/console": "^6.0|^7.0" + "symfony/console": "^6.0|^7.0|^8.0" }, "require-dev": { "livewire/volt": "*", - "orchestra/testbench": "^10.8" + "orchestra/testbench": "^10.8|^11.0" }, "type": "library", "extra": { @@ -3363,40 +3421,40 @@ "livewire", "ui" ], - "time": "2026-01-22T11:01:01+00:00" + "time": "2026-04-23T23:03:15+00:00" }, { "name": "livewire/livewire", - "version": "v4.0.3", + "version": "v4.3.0", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "11afe7b36dbb1d98e073551c217f87b2b6911f81" + "reference": "19ebb1ee4d057debceccf70ff01950e6a6114edc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/11afe7b36dbb1d98e073551c217f87b2b6911f81", - "reference": "11afe7b36dbb1d98e073551c217f87b2b6911f81", + "url": "https://api.github.com/repos/livewire/livewire/zipball/19ebb1ee4d057debceccf70ff01950e6a6114edc", + "reference": "19ebb1ee4d057debceccf70ff01950e6a6114edc", "shasum": "" }, "require": { - "illuminate/database": "^10.0|^11.0|^12.0", - "illuminate/routing": "^10.0|^11.0|^12.0", - "illuminate/support": "^10.0|^11.0|^12.0", - "illuminate/validation": "^10.0|^11.0|^12.0", + "illuminate/database": "^10.0|^11.0|^12.0|^13.0", + "illuminate/routing": "^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", + "illuminate/validation": "^10.0|^11.0|^12.0|^13.0", "laravel/prompts": "^0.1.24|^0.2|^0.3", "league/mime-type-detection": "^1.9", "php": "^8.1", - "symfony/console": "^6.0|^7.0", - "symfony/http-kernel": "^6.2|^7.0" + "symfony/console": "^6.0|^7.0|^8.0", + "symfony/http-kernel": "^6.2|^7.0|^8.0" }, "require-dev": { "calebporzio/sushi": "^2.1", - "laravel/framework": "^10.15.0|^11.0|^12.0", + "laravel/framework": "^10.15.0|^11.0|^12.0|^13.0", "mockery/mockery": "^1.3.1", - "orchestra/testbench": "^8.21.0|^9.0|^10.0", - "orchestra/testbench-dusk": "^8.24|^9.1|^10.0", - "phpunit/phpunit": "^10.4|^11.5", + "orchestra/testbench": "^8.21.0|^9.0|^10.0|^11.0", + "orchestra/testbench-dusk": "^8.24|^9.1|^10.0|^11.0", + "phpunit/phpunit": "^10.4|^11.5|^12.5", "psy/psysh": "^0.11.22|^0.12" }, "type": "library", @@ -3431,7 +3489,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v4.0.3" + "source": "https://github.com/livewire/livewire/tree/v4.3.0" }, "funding": [ { @@ -3439,7 +3497,7 @@ "type": "github" } ], - "time": "2026-01-23T06:13:46+00:00" + "time": "2026-05-01T00:46:07+00:00" }, { "name": "lwwcas/laravel-countries", @@ -3563,16 +3621,16 @@ }, { "name": "maennchen/zipstream-php", - "version": "3.2.1", + "version": "3.2.2", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "682f1098a8fddbaf43edac2306a691c7ad508ec5" + "reference": "77bebeb4c6c340bb3c11c843b2cffd8bbfde4d5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/682f1098a8fddbaf43edac2306a691c7ad508ec5", - "reference": "682f1098a8fddbaf43edac2306a691c7ad508ec5", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/77bebeb4c6c340bb3c11c843b2cffd8bbfde4d5e", + "reference": "77bebeb4c6c340bb3c11c843b2cffd8bbfde4d5e", "shasum": "" }, "require": { @@ -3629,7 +3687,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.2.1" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.2.2" }, "funding": [ { @@ -3637,7 +3695,7 @@ "type": "github" } ], - "time": "2025-12-10T09:58:31+00:00" + "time": "2026-04-11T18:38:28+00:00" }, { "name": "monolog/monolog", @@ -3744,16 +3802,16 @@ }, { "name": "nesbot/carbon", - "version": "3.11.0", + "version": "3.11.4", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "bdb375400dcd162624531666db4799b36b64e4a1" + "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/bdb375400dcd162624531666db4799b36b64e4a1", - "reference": "bdb375400dcd162624531666db4799b36b64e4a1", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/e890471a3494740f7d9326d72ce6a8c559ffee60", + "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60", "shasum": "" }, "require": { @@ -3777,7 +3835,7 @@ "phpstan/extension-installer": "^1.4.3", "phpstan/phpstan": "^2.1.22", "phpunit/phpunit": "^10.5.53", - "squizlabs/php_codesniffer": "^3.13.4" + "squizlabs/php_codesniffer": "^3.13.4 || ^4.0.0" }, "bin": [ "bin/carbon" @@ -3820,14 +3878,14 @@ } ], "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", + "homepage": "https://carbonphp.github.io/carbon/", "keywords": [ "date", "datetime", "time" ], "support": { - "docs": "https://carbon.nesbot.com/docs", + "docs": "https://carbonphp.github.io/carbon/guide/getting-started/introduction.html", "issues": "https://github.com/CarbonPHP/carbon/issues", "source": "https://github.com/CarbonPHP/carbon" }, @@ -3845,20 +3903,20 @@ "type": "tidelift" } ], - "time": "2025-12-02T21:04:28+00:00" + "time": "2026-04-07T09:57:54+00:00" }, { "name": "nette/schema", - "version": "v1.3.3", + "version": "v1.3.5", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" + "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", + "url": "https://api.github.com/repos/nette/schema/zipball/f0ab1a3cda782dbc5da270d28545236aa80c4002", + "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002", "shasum": "" }, "require": { @@ -3866,8 +3924,10 @@ "php": "8.1 - 8.5" }, "require-dev": { - "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^2.0@stable", + "nette/phpstan-rules": "^1.0", + "nette/tester": "^2.6", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1.39@stable", "tracy/tracy": "^2.8" }, "type": "library", @@ -3908,22 +3968,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.3" + "source": "https://github.com/nette/schema/tree/v1.3.5" }, - "time": "2025-10-30T22:57:59+00:00" + "time": "2026-02-23T03:47:12+00:00" }, { "name": "nette/utils", - "version": "v4.1.1", + "version": "v4.1.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "c99059c0315591f1a0db7ad6002000288ab8dc72" + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/c99059c0315591f1a0db7ad6002000288ab8dc72", - "reference": "c99059c0315591f1a0db7ad6002000288ab8dc72", + "url": "https://api.github.com/repos/nette/utils/zipball/bb3ea637e3d131d72acc033cfc2746ee893349fe", + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe", "shasum": "" }, "require": { @@ -3935,8 +3995,10 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", "nette/tester": "^2.5", - "phpstan/phpstan-nette": "^2.0@stable", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -3997,9 +4059,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.1" + "source": "https://github.com/nette/utils/tree/v4.1.3" }, - "time": "2025-12-22T12:14:32+00:00" + "time": "2026-02-13T03:05:33+00:00" }, { "name": "nikic/php-parser", @@ -4061,31 +4123,31 @@ }, { "name": "nunomaduro/termwind", - "version": "v2.3.3", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017" + "reference": "712a31b768f5daea284c2169a7d227031001b9a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/6fb2a640ff502caace8e05fd7be3b503a7e1c017", - "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/712a31b768f5daea284c2169a7d227031001b9a8", + "reference": "712a31b768f5daea284c2169a7d227031001b9a8", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.3.6" + "symfony/console": "^7.4.4 || ^8.0.4" }, "require-dev": { - "illuminate/console": "^11.46.1", - "laravel/pint": "^1.25.1", + "illuminate/console": "^11.47.0", + "laravel/pint": "^1.27.1", "mockery/mockery": "^1.6.12", - "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.1.3", + "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.3.2", "phpstan/phpstan": "^1.12.32", "phpstan/phpstan-strict-rules": "^1.6.2", - "symfony/var-dumper": "^7.3.5", + "symfony/var-dumper": "^7.3.5 || ^8.0.4", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -4117,7 +4179,7 @@ "email": "enunomaduro@gmail.com" } ], - "description": "Its like Tailwind CSS, but for the console.", + "description": "It's like Tailwind CSS, but for the console.", "keywords": [ "cli", "console", @@ -4128,7 +4190,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.3.3" + "source": "https://github.com/nunomaduro/termwind/tree/v2.4.0" }, "funding": [ { @@ -4144,30 +4206,109 @@ "type": "github" } ], - "time": "2025-11-20T02:34:59+00:00" + "time": "2026-02-16T23:10:27+00:00" }, { - "name": "outhebox/blade-flags", - "version": "1.5.4", + "name": "nyholm/psr7", + "version": "1.8.2", "source": { "type": "git", - "url": "https://github.com/MohmmedAshraf/blade-flags.git", - "reference": "f467991314b93ed83c12dafe7ec40ab43b5a61c1" + "url": "https://github.com/Nyholm/psr7.git", + "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MohmmedAshraf/blade-flags/zipball/f467991314b93ed83c12dafe7ec40ab43b5a61c1", - "reference": "f467991314b93ed83c12dafe7ec40ab43b5a61c1", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a71f2b11690f4b24d099d6b16690a90ae14fc6f3", + "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0" + }, + "provide": { + "php-http/message-factory-implementation": "1.0", + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "^0.9", + "php-http/message-factory": "^1.0", + "php-http/psr7-integration-tests": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "symfony/error-handler": "^4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Nyholm\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "A fast PHP7 implementation of PSR-7", + "homepage": "https://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7/issues", + "source": "https://github.com/Nyholm/psr7/tree/1.8.2" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2024-09-09T07:06:30+00:00" + }, + { + "name": "outhebox/blade-flags", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/MohmmedAshraf/blade-flags.git", + "reference": "00574e523f179d5a64dec555bea4dfd9ea9cd463" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MohmmedAshraf/blade-flags/zipball/00574e523f179d5a64dec555bea4dfd9ea9cd463", + "reference": "00574e523f179d5a64dec555bea4dfd9ea9cd463", "shasum": "" }, "require": { "blade-ui-kit/blade-icons": "^1.1", - "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", + "ext-json": "*", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0", "php": "^7.4|^8.0|^8.1|^8.2" }, "require-dev": { - "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0", - "phpunit/phpunit": "^9.0|^10.5|^11.5.3" + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "phpunit/phpunit": "^9.0|^10.5|^11.5.3|^12.5.12" }, "type": "library", "extra": { @@ -4204,7 +4345,7 @@ ], "support": { "issues": "https://github.com/MohmmedAshraf/blade-flags/issues", - "source": "https://github.com/MohmmedAshraf/blade-flags/tree/1.5.4" + "source": "https://github.com/MohmmedAshraf/blade-flags/tree/1.7.0" }, "funding": [ { @@ -4212,20 +4353,20 @@ "type": "github" } ], - "time": "2025-08-30T07:16:05+00:00" + "time": "2026-03-01T17:25:55+00:00" }, { "name": "paragonie/ciphersweet", - "version": "v4.9.0", + "version": "v4.10.0", "source": { "type": "git", "url": "https://github.com/paragonie/ciphersweet.git", - "reference": "827b2510b12ab3bce2d99d7eb4e580eddc4fb7c1" + "reference": "06cbd57f5d0af53f30c5e11f52664b7d6d8639db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/ciphersweet/zipball/827b2510b12ab3bce2d99d7eb4e580eddc4fb7c1", - "reference": "827b2510b12ab3bce2d99d7eb4e580eddc4fb7c1", + "url": "https://api.github.com/repos/paragonie/ciphersweet/zipball/06cbd57f5d0af53f30c5e11f52664b7d6d8639db", + "reference": "06cbd57f5d0af53f30c5e11f52664b7d6d8639db", "shasum": "" }, "require": { @@ -4236,8 +4377,9 @@ "php": "^8.1" }, "require-dev": { - "phpunit/phpunit": "^9", - "vimeo/psalm": "^4" + "infection/infection": "^0", + "phpunit/phpunit": "^10|^11|^12|^13", + "vimeo/psalm": "^6" }, "type": "library", "autoload": { @@ -4272,9 +4414,9 @@ ], "support": { "issues": "https://github.com/paragonie/ciphersweet/issues", - "source": "https://github.com/paragonie/ciphersweet/tree/v4.9.0" + "source": "https://github.com/paragonie/ciphersweet/tree/v4.10.0" }, - "time": "2025-10-25T13:48:17+00:00" + "time": "2026-03-05T00:32:31+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -4722,30 +4864,31 @@ }, { "name": "phrity/net-stream", - "version": "2.3.3", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/sirn-se/phrity-net-stream.git", - "reference": "f46694e1b721867ec3c19731a7fcbbead3c6ac89" + "reference": "a0726a8dddf11a4cd3a9e45d17e145d78e948f43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sirn-se/phrity-net-stream/zipball/f46694e1b721867ec3c19731a7fcbbead3c6ac89", - "reference": "f46694e1b721867ec3c19731a7fcbbead3c6ac89", + "url": "https://api.github.com/repos/sirn-se/phrity-net-stream/zipball/a0726a8dddf11a4cd3a9e45d17e145d78e948f43", + "reference": "a0726a8dddf11a4cd3a9e45d17e145d78e948f43", "shasum": "" }, "require": { "php": "^8.1", "phrity/util-errorhandler": "^1.1", + "phrity/util-interpolator": "^1.1", "psr/http-factory": "^1.0", "psr/http-message": "^1.1 || ^2.0" }, "require-dev": { "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0 || ^13.0", "phrity/net-uri": "^2.0", "robiningelbrecht/phpunit-coverage-tools": "^1.9", - "squizlabs/php_codesniffer": "^3.5 || ^4.0" + "squizlabs/php_codesniffer": "^4.0" }, "type": "library", "autoload": { @@ -4777,9 +4920,9 @@ ], "support": { "issues": "https://github.com/sirn-se/phrity-net-stream/issues", - "source": "https://github.com/sirn-se/phrity-net-stream/tree/2.3.3" + "source": "https://github.com/sirn-se/phrity-net-stream/tree/2.4.0" }, - "time": "2025-12-24T12:07:07+00:00" + "time": "2026-03-25T18:16:40+00:00" }, { "name": "phrity/net-uri", @@ -4843,6 +4986,58 @@ }, "time": "2025-12-05T10:39:22+00:00" }, + { + "name": "phrity/util-accessor", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/sirn-se/phrity-util-accessor.git", + "reference": "e9741da6b532fa2da7f627fce60fa77f00f6e354" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sirn-se/phrity-util-accessor/zipball/e9741da6b532fa2da7f627fce60fa77f00f6e354", + "reference": "e9741da6b532fa2da7f627fce60fa77f00f6e354", + "shasum": "" + }, + "require": { + "php": "^8.1", + "phrity/util-transformer": "^1.0" + }, + "require-dev": { + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "robiningelbrecht/phpunit-coverage-tools": "^1.9", + "squizlabs/php_codesniffer": "^3.5 || ^4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Phrity\\Util\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sören Jensen", + "email": "sirn@sirn.se", + "homepage": "https://phrity.sirn.se" + } + ], + "description": "Utility to handle access to a data set by using access paths. Similar to and partly compatible with xpath and json-pointer.", + "homepage": "https://phrity.sirn.se/util-accessor", + "keywords": [ + "accessor" + ], + "support": { + "issues": "https://github.com/sirn-se/phrity-util-accessor/issues", + "source": "https://github.com/sirn-se/phrity-util-accessor/tree/1.3.1" + }, + "time": "2025-12-05T21:18:15+00:00" + }, { "name": "phrity/util-errorhandler", "version": "1.2.2", @@ -4896,36 +5091,149 @@ "time": "2025-12-05T21:25:36+00:00" }, { - "name": "phrity/websocket", - "version": "3.6.2", + "name": "phrity/util-interpolator", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/sirn-se/websocket-php.git", - "reference": "b9816ed2b4a10c8c42bd0b6398044ab506869756" + "url": "https://github.com/sirn-se/phrity-util-interpolator.git", + "reference": "18b0362d2aff60984c530808333c5e64c80c3e50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sirn-se/websocket-php/zipball/b9816ed2b4a10c8c42bd0b6398044ab506869756", - "reference": "b9816ed2b4a10c8c42bd0b6398044ab506869756", + "url": "https://api.github.com/repos/sirn-se/phrity-util-interpolator/zipball/18b0362d2aff60984c530808333c5e64c80c3e50", + "reference": "18b0362d2aff60984c530808333c5e64c80c3e50", "shasum": "" }, "require": { "php": "^8.1", - "phrity/http": "^1.0", - "phrity/net-stream": "^2.3", + "phrity/util-accessor": "^1.3", + "phrity/util-transformer": "^1.3" + }, + "require-dev": { + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "robiningelbrecht/phpunit-coverage-tools": "^1.9", + "squizlabs/php_codesniffer": "^3.5 || ^4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Phrity\\Util\\Interpolator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sören Jensen", + "email": "sirn@sirn.se", + "homepage": "https://phrity.sirn.se" + } + ], + "description": "Interpolator class and trait.", + "homepage": "https://phrity.sirn.se/util-interpolator", + "keywords": [ + "interpolate", + "interpolator" + ], + "support": { + "issues": "https://github.com/sirn-se/phrity-util-interpolator/issues", + "source": "https://github.com/sirn-se/phrity-util-interpolator/tree/1.1.1" + }, + "time": "2025-12-05T21:35:25+00:00" + }, + { + "name": "phrity/util-transformer", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/sirn-se/phrity-util-transformer.git", + "reference": "3fd4d7fa4077deafe5130c4b9ee8146b5488abe3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sirn-se/phrity-util-transformer/zipball/3fd4d7fa4077deafe5130c4b9ee8146b5488abe3", + "reference": "3fd4d7fa4077deafe5130c4b9ee8146b5488abe3", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "robiningelbrecht/phpunit-coverage-tools": "^1.9", + "squizlabs/php_codesniffer": "^3.5 || ^4.0", + "symfony/property-access": "^6.0 || ^7.0 || ^8.0", + "symfony/serializer": "^6.0 || ^7.0 || ^8.0", + "symfony/translation-contracts": "^3.0", + "symfony/uid": "^6.0 || ^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Phrity\\Util\\Transformer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sören Jensen", + "email": "sirn@sirn.se", + "homepage": "https://phrity.sirn.se" + } + ], + "description": "Type transformers, normalizers and resolvers.", + "homepage": "https://phrity.sirn.se/util-transformer", + "keywords": [ + "normalizer", + "resolver", + "transformer", + "type" + ], + "support": { + "issues": "https://github.com/sirn-se/phrity-util-transformer/issues", + "source": "https://github.com/sirn-se/phrity-util-transformer/tree/1.3.1" + }, + "time": "2025-12-05T22:07:04+00:00" + }, + { + "name": "phrity/websocket", + "version": "3.7.0", + "source": { + "type": "git", + "url": "https://github.com/sirn-se/websocket-php.git", + "reference": "01f15374987d8281dba0ca511f322a0e18229330" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sirn-se/websocket-php/zipball/01f15374987d8281dba0ca511f322a0e18229330", + "reference": "01f15374987d8281dba0ca511f322a0e18229330", + "shasum": "" + }, + "require": { + "nyholm/psr7": "^1.4", + "php": "^8.1", + "phrity/http": "^1.1", + "phrity/net-stream": "^2.4", "phrity/net-uri": "^2.1", - "psr/http-message": "^1.1 | ^2.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", "psr/log": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { - "guzzlehttp/psr7": "^2.0", "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0 || ^13.0", "phrity/logger-console": "^1.0", - "phrity/net-mock": "^2.3", + "phrity/net-mock": "^2.4", "phrity/util-errorhandler": "^1.1", "robiningelbrecht/phpunit-coverage-tools": "^1.9", - "squizlabs/php_codesniffer": "^3.5 || ^4.0" + "squizlabs/php_codesniffer": "^4.0" }, "type": "library", "autoload": { @@ -4956,9 +5264,9 @@ ], "support": { "issues": "https://github.com/sirn-se/websocket-php/issues", - "source": "https://github.com/sirn-se/websocket-php/tree/3.6.2" + "source": "https://github.com/sirn-se/websocket-php/tree/3.7.0" }, - "time": "2025-12-21T09:58:16+00:00" + "time": "2026-04-06T18:18:14+00:00" }, { "name": "psr/clock", @@ -5374,16 +5682,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.18", + "version": "v0.12.22", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "ddff0ac01beddc251786fe70367cd8bbdb258196" + "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ddff0ac01beddc251786fe70367cd8bbdb258196", - "reference": "ddff0ac01beddc251786fe70367cd8bbdb258196", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/3be75d5b9244936dd4ac62ade2bfb004d13acf0f", + "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f", "shasum": "" }, "require": { @@ -5447,9 +5755,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.18" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.22" }, - "time": "2025-12-17T14:35:46+00:00" + "time": "2026-03-22T23:03:24+00:00" }, { "name": "ralouphie/getallheaders", @@ -5497,32 +5805,32 @@ }, { "name": "ralphjsmit/laravel-helpers", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/ralphjsmit/laravel-helpers.git", - "reference": "85f42d56a632b5e7edd60460cf8163b8f7506771" + "reference": "cabfeb5e3f3a360bcd958fbf872271c56a74ebf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralphjsmit/laravel-helpers/zipball/85f42d56a632b5e7edd60460cf8163b8f7506771", - "reference": "85f42d56a632b5e7edd60460cf8163b8f7506771", + "url": "https://api.github.com/repos/ralphjsmit/laravel-helpers/zipball/cabfeb5e3f3a360bcd958fbf872271c56a74ebf0", + "reference": "cabfeb5e3f3a360bcd958fbf872271c56a74ebf0", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^7.4", - "illuminate/contracts": "^10.0|^11.0|^12.0", + "illuminate/contracts": "^11.0|^12.0|^13.0", "php": "^8.0", "spatie/laravel-package-tools": "^1.9.2" }, "require-dev": { - "livewire/livewire": "^2.9|^3.4", + "livewire/livewire": "^2.9|^3.4|^4.2", "nesbot/carbon": "^2.66|^3.0", "nunomaduro/collision": "^7.0|^8.0", - "orchestra/testbench": "^8.0|^9.0|^10.0", - "pestphp/pest": "^2.34|^3.7", - "pestphp/pest-plugin-laravel": "^2.3|^3.1", - "phpunit/phpunit": "^10.5|^11.5", + "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^2.34|^3.7|^4.4", + "pestphp/pest-plugin-laravel": "^2.3|^3.1|^4.1", + "phpunit/phpunit": "^10.5|^11.5|^12.5.12", "spatie/invade": "^1.0|^2.0", "spatie/laravel-ray": "^1.39" }, @@ -5567,26 +5875,26 @@ ], "support": { "issues": "https://github.com/ralphjsmit/laravel-helpers/issues", - "source": "https://github.com/ralphjsmit/laravel-helpers/tree/1.10.0" + "source": "https://github.com/ralphjsmit/laravel-helpers/tree/1.11.0" }, - "time": "2025-02-25T17:18:51+00:00" + "time": "2026-03-07T22:24:40+00:00" }, { "name": "ralphjsmit/laravel-seo", - "version": "1.7.3", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/ralphjsmit/laravel-seo.git", - "reference": "c020d92e4d31eb903c31a905ef258d4629bff75b" + "reference": "fef1dddfbc4f3f8f361eca9dab16d220ab595828" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralphjsmit/laravel-seo/zipball/c020d92e4d31eb903c31a905ef258d4629bff75b", - "reference": "c020d92e4d31eb903c31a905ef258d4629bff75b", + "url": "https://api.github.com/repos/ralphjsmit/laravel-seo/zipball/fef1dddfbc4f3f8f361eca9dab16d220ab595828", + "reference": "fef1dddfbc4f3f8f361eca9dab16d220ab595828", "shasum": "" }, "require": { - "illuminate/contracts": "^11.11|^12.0", + "illuminate/contracts": "^11.11|^12.0|^13.0", "php": "^8.2", "ralphjsmit/laravel-helpers": "^1.10", "spatie/laravel-package-tools": "^1.9.2" @@ -5595,11 +5903,11 @@ "laravel/pint": "^1.16", "nesbot/carbon": "^3.0", "nunomaduro/collision": "^8.0|^9.0", - "orchestra/testbench": "^9.16|^10.0", - "orchestra/testbench-core": "^9.1.4|^10.0", - "pestphp/pest": "^2.0|^3.0", - "pestphp/pest-plugin-laravel": "^2.0|^3.0", - "phpunit/phpunit": "^10.5|^11.5", + "orchestra/testbench": "^9.16|^10.0|^11.0", + "orchestra/testbench-core": "^9.1.4|^10.0|^11.0", + "pestphp/pest": "^2.0|^3.0|^4.4", + "pestphp/pest-plugin-laravel": "^2.0|^3.0|^4.1", + "phpunit/phpunit": "^10.5|^11.5|^12.5.12", "spatie/laravel-ray": "^1.39", "spatie/pest-plugin-test-time": "^2.0" }, @@ -5643,9 +5951,9 @@ ], "support": { "issues": "https://github.com/ralphjsmit/laravel-seo/issues", - "source": "https://github.com/ralphjsmit/laravel-seo/tree/1.7.3" + "source": "https://github.com/ralphjsmit/laravel-seo/tree/1.8.1" }, - "time": "2026-01-15T22:23:17+00:00" + "time": "2026-03-26T20:29:46+00:00" }, { "name": "ramsey/collection", @@ -6078,28 +6386,28 @@ }, { "name": "spatie/eloquent-sortable", - "version": "4.5.2", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/spatie/eloquent-sortable.git", - "reference": "c1c4f3a66cd41eb7458783c8a4c8e5d7924a9f20" + "reference": "caf2596e5df0260d0e2863e89b750611eef2fc59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/eloquent-sortable/zipball/c1c4f3a66cd41eb7458783c8a4c8e5d7924a9f20", - "reference": "c1c4f3a66cd41eb7458783c8a4c8e5d7924a9f20", + "url": "https://api.github.com/repos/spatie/eloquent-sortable/zipball/caf2596e5df0260d0e2863e89b750611eef2fc59", + "reference": "caf2596e5df0260d0e2863e89b750611eef2fc59", "shasum": "" }, "require": { - "illuminate/database": "^9.31|^10.0|^11.0|^12.0", - "illuminate/support": "^9.31|^10.0|^11.0|^12.0", + "illuminate/database": "^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", "nesbot/carbon": "^2.63|^3.0", - "php": "^8.1", + "php": "^8.2", "spatie/laravel-package-tools": "^1.9" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", - "phpunit/phpunit": "^9.5|^10.0|^11.5.3" + "orchestra/testbench": "^8.0|^9.6|^10.0|^11.0", + "phpunit/phpunit": "^10.0|^11.5.3|^12.0" }, "type": "library", "extra": { @@ -6136,7 +6444,7 @@ ], "support": { "issues": "https://github.com/spatie/eloquent-sortable/issues", - "source": "https://github.com/spatie/eloquent-sortable/tree/4.5.2" + "source": "https://github.com/spatie/eloquent-sortable/tree/5.0.1" }, "funding": [ { @@ -6148,25 +6456,25 @@ "type": "github" } ], - "time": "2025-08-25T11:46:57+00:00" + "time": "2026-02-21T21:26:43+00:00" }, { "name": "spatie/icalendar-generator", - "version": "3.2.1", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/spatie/icalendar-generator.git", - "reference": "d93aded27abaa1b1e5f1402c5423f5c61469581b" + "reference": "6817d3f405563eca1afc9ea870077a898e11bc27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/icalendar-generator/zipball/d93aded27abaa1b1e5f1402c5423f5c61469581b", - "reference": "d93aded27abaa1b1e5f1402c5423f5c61469581b", + "url": "https://api.github.com/repos/spatie/icalendar-generator/zipball/6817d3f405563eca1afc9ea870077a898e11bc27", + "reference": "6817d3f405563eca1afc9ea870077a898e11bc27", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "ext-json": "*", @@ -6205,22 +6513,22 @@ ], "support": { "issues": "https://github.com/spatie/icalendar-generator/issues", - "source": "https://github.com/spatie/icalendar-generator/tree/3.2.1" + "source": "https://github.com/spatie/icalendar-generator/tree/3.3.0" }, - "time": "2026-01-05T15:01:46+00:00" + "time": "2026-03-18T09:51:41+00:00" }, { "name": "spatie/image", - "version": "3.9.1", + "version": "3.9.4", "source": { "type": "git", "url": "https://github.com/spatie/image.git", - "reference": "9a8e02839897b236f37708d24bcb12381ba050ff" + "reference": "6a322b5e9268e3903d4fb6e1ff08b7dcc3aa9429" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image/zipball/9a8e02839897b236f37708d24bcb12381ba050ff", - "reference": "9a8e02839897b236f37708d24bcb12381ba050ff", + "url": "https://api.github.com/repos/spatie/image/zipball/6a322b5e9268e3903d4fb6e1ff08b7dcc3aa9429", + "reference": "6a322b5e9268e3903d4fb6e1ff08b7dcc3aa9429", "shasum": "" }, "require": { @@ -6268,7 +6576,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/image/tree/3.9.1" + "source": "https://github.com/spatie/image/tree/3.9.4" }, "funding": [ { @@ -6280,7 +6588,7 @@ "type": "github" } ], - "time": "2026-01-12T07:34:13+00:00" + "time": "2026-03-13T14:23:45+00:00" }, { "name": "spatie/image-optimizer", @@ -6339,20 +6647,20 @@ }, { "name": "spatie/laravel-ciphersweet", - "version": "1.7.2", + "version": "1.7.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ciphersweet.git", - "reference": "e406f6702386b924add2c0a7785dbeddb2acb718" + "reference": "0c49f104fd262ab83adbacb0278ef7e399417cea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ciphersweet/zipball/e406f6702386b924add2c0a7785dbeddb2acb718", - "reference": "e406f6702386b924add2c0a7785dbeddb2acb718", + "url": "https://api.github.com/repos/spatie/laravel-ciphersweet/zipball/0c49f104fd262ab83adbacb0278ef7e399417cea", + "reference": "0c49f104fd262ab83adbacb0278ef7e399417cea", "shasum": "" }, "require": { - "illuminate/contracts": "^10.0|^11.0|^12.0", + "illuminate/contracts": "^10.0|^11.0|^12.0|^13.0", "paragonie/ciphersweet": "^4.0.1", "php": "^8.1", "spatie/laravel-package-tools": "^1.12.0" @@ -6360,13 +6668,13 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.8", "nunomaduro/collision": "^6.0|^8.0", - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", "pestphp/pest": "^1.21|^2.34|^3.7", "pestphp/pest-plugin-laravel": "^1.1|^2.3|^3.1", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", "phpstan/phpstan-phpunit": "^1.0|^2.0", - "phpunit/phpunit": "^9.5|^10.5|^11.5.3|^12.0", + "phpunit/phpunit": "^9.5|^10.5|^11.5.3", "spatie/laravel-ray": "^1.26" }, "type": "library", @@ -6404,34 +6712,34 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-ciphersweet/tree/1.7.2" + "source": "https://github.com/spatie/laravel-ciphersweet/tree/1.7.4" }, - "time": "2025-09-18T10:35:25+00:00" + "time": "2026-02-27T17:20:09+00:00" }, { "name": "spatie/laravel-feed", - "version": "4.4.4", + "version": "4.5.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-feed.git", - "reference": "802ec6c9422fff94aa0819bebffb09f04242e898" + "reference": "939427c5b242f0c67a691df15adcb2bbfd4592a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-feed/zipball/802ec6c9422fff94aa0819bebffb09f04242e898", - "reference": "802ec6c9422fff94aa0819bebffb09f04242e898", + "url": "https://api.github.com/repos/spatie/laravel-feed/zipball/939427c5b242f0c67a691df15adcb2bbfd4592a3", + "reference": "939427c5b242f0c67a691df15adcb2bbfd4592a3", "shasum": "" }, "require": { - "illuminate/contracts": "^10.0|^11.0|^12.0", - "illuminate/http": "^10.0|^11.0|^12.0", - "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/contracts": "^11.0|^12.0|^13.0", + "illuminate/http": "^11.0|^12.0|^13.0", + "illuminate/support": "^11.0|^12.0|^13.0", "php": "^8.2", "spatie/laravel-package-tools": "^1.15" }, "require-dev": { - "orchestra/testbench": "^8.0|^9.0|^10.0", - "pestphp/pest": "^2.0|^3.0", + "orchestra/testbench": "^9.0|^10.0|^11.0", + "pestphp/pest": "^3.0|^4.0", "spatie/pest-plugin-snapshots": "^2.0", "spatie/test-time": "^1.2" }, @@ -6486,7 +6794,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-feed/tree/4.4.4" + "source": "https://github.com/spatie/laravel-feed/tree/4.5.0" }, "funding": [ { @@ -6498,33 +6806,33 @@ "type": "github" } ], - "time": "2026-01-05T09:23:17+00:00" + "time": "2026-02-21T15:58:09+00:00" }, { "name": "spatie/laravel-google-fonts", - "version": "1.4.4", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-google-fonts.git", - "reference": "f37fc6100912bcfeac6a503692745b2dee258aa5" + "reference": "aaac1cedd48c4c8436b4eb51d9b5e30bd4bd914a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-google-fonts/zipball/f37fc6100912bcfeac6a503692745b2dee258aa5", - "reference": "f37fc6100912bcfeac6a503692745b2dee258aa5", + "url": "https://api.github.com/repos/spatie/laravel-google-fonts/zipball/aaac1cedd48c4c8436b4eb51d9b5e30bd4bd914a", + "reference": "aaac1cedd48c4c8436b4eb51d9b5e30bd4bd914a", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^7.3|^7.2", - "illuminate/contracts": "^8.37|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^8.37|^9.0|^10.0|^11.0|^12.0|^13.0", "php": "^8.0", "spatie/laravel-package-tools": "^1.7.0" }, "require-dev": { "brianium/paratest": "^6.3|^7.4", "nunomaduro/collision": "^5.4|^6.0|^8.0", - "orchestra/testbench": "^6.17|^7.0|^8.0|^9.0|^10.0", - "pestphp/pest": "^1.22|^2.34|^3.7", + "orchestra/testbench": "^6.17|^7.0|^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^1.22|^2.34|^3.7|^4.4", "spatie/laravel-ray": "^1.17", "spatie/pest-plugin-snapshots": "^1.1|^2.1", "spatie/phpunit-snapshot-assertions": "^4.2|^5.1" @@ -6572,7 +6880,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-google-fonts/issues", - "source": "https://github.com/spatie/laravel-google-fonts/tree/1.4.4" + "source": "https://github.com/spatie/laravel-google-fonts/tree/1.6.0" }, "funding": [ { @@ -6580,27 +6888,27 @@ "type": "github" } ], - "time": "2025-09-08T07:47:12+00:00" + "time": "2026-04-27T16:38:35+00:00" }, { "name": "spatie/laravel-markdown", - "version": "2.7.1", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-markdown.git", - "reference": "353e7f9fae62826e26cbadef58a12ecf39685280" + "reference": "eabe8c7e31c2739ad0fe63ba04eb2e3189608187" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-markdown/zipball/353e7f9fae62826e26cbadef58a12ecf39685280", - "reference": "353e7f9fae62826e26cbadef58a12ecf39685280", + "url": "https://api.github.com/repos/spatie/laravel-markdown/zipball/eabe8c7e31c2739ad0fe63ba04eb2e3189608187", + "reference": "eabe8c7e31c2739ad0fe63ba04eb2e3189608187", "shasum": "" }, "require": { - "illuminate/cache": "^9.0|^10.0|^11.0|^12.0", - "illuminate/contracts": "^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^9.0|^10.0|^11.0|^12.0", - "illuminate/view": "^9.0|^10.0|^11.0|^12.0", + "illuminate/cache": "^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/view": "^9.0|^10.0|^11.0|^12.0|^13.0", "league/commonmark": "^2.6.0", "php": "^8.1", "spatie/commonmark-shiki-highlighter": "^2.5", @@ -6609,9 +6917,9 @@ "require-dev": { "brianium/paratest": "^6.2|^7.8", "nunomaduro/collision": "^5.3|^6.0|^7.0|^8.0", - "orchestra/testbench": "^6.15|^7.0|^8.0|^10.0", - "pestphp/pest": "^1.22|^2.0|^3.7", - "phpunit/phpunit": "^9.3|^11.5.3", + "orchestra/testbench": "^6.15|^7.0|^8.0|^10.0|^11.0", + "pestphp/pest": "^1.22|^2.0|^3.7|^4.4", + "phpunit/phpunit": "^9.3|^11.5.3|^12.5.12", "spatie/laravel-ray": "^1.23", "spatie/pest-plugin-snapshots": "^1.1|^2.2|^3.0", "vimeo/psalm": "^4.8|^6.7" @@ -6648,7 +6956,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-markdown/tree/2.7.1" + "source": "https://github.com/spatie/laravel-markdown/tree/2.8.0" }, "funding": [ { @@ -6656,20 +6964,20 @@ "type": "github" } ], - "time": "2025-02-21T13:43:18+00:00" + "time": "2026-02-22T18:53:36+00:00" }, { "name": "spatie/laravel-medialibrary", - "version": "11.17.10", + "version": "11.22.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "10bbf232d27a69fd2f991e88d7e3d72e84d715cb" + "reference": "a80f584d93bad370ca7a0efa52c16a1a81e6e9fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/10bbf232d27a69fd2f991e88d7e3d72e84d715cb", - "reference": "10bbf232d27a69fd2f991e88d7e3d72e84d715cb", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/a80f584d93bad370ca7a0efa52c16a1a81e6e9fe", + "reference": "a80f584d93bad370ca7a0efa52c16a1a81e6e9fe", "shasum": "" }, "require": { @@ -6677,12 +6985,12 @@ "ext-exif": "*", "ext-fileinfo": "*", "ext-json": "*", - "illuminate/bus": "^10.2|^11.0|^12.0", - "illuminate/conditionable": "^10.2|^11.0|^12.0", - "illuminate/console": "^10.2|^11.0|^12.0", - "illuminate/database": "^10.2|^11.0|^12.0", - "illuminate/pipeline": "^10.2|^11.0|^12.0", - "illuminate/support": "^10.2|^11.0|^12.0", + "illuminate/bus": "^10.2|^11.0|^12.0|^13.0", + "illuminate/conditionable": "^10.2|^11.0|^12.0|^13.0", + "illuminate/console": "^10.2|^11.0|^12.0|^13.0", + "illuminate/database": "^10.2|^11.0|^12.0|^13.0", + "illuminate/pipeline": "^10.2|^11.0|^12.0|^13.0", + "illuminate/support": "^10.2|^11.0|^12.0|^13.0", "maennchen/zipstream-php": "^3.1", "php": "^8.2", "spatie/image": "^3.3.2", @@ -6702,7 +7010,7 @@ "larastan/larastan": "^2.7|^3.0", "league/flysystem-aws-s3-v3": "^3.22", "mockery/mockery": "^1.6.7", - "orchestra/testbench": "^8.36|^9.15|^10.8", + "orchestra/testbench": "^8.36|^9.15|^10.8|^11.0", "pestphp/pest": "^2.36|^3.0|^4.0", "phpstan/extension-installer": "^1.3.1", "spatie/laravel-ray": "^1.33", @@ -6754,7 +7062,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/11.17.10" + "source": "https://github.com/spatie/laravel-medialibrary/tree/11.22.0" }, "funding": [ { @@ -6766,29 +7074,29 @@ "type": "github" } ], - "time": "2026-01-22T23:17:57+00:00" + "time": "2026-04-28T09:18:56+00:00" }, { "name": "spatie/laravel-model-status", - "version": "1.18.1", + "version": "1.20.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-model-status.git", - "reference": "16533bb34ef31a100390567e7afb48e862fe2bc9" + "reference": "97724f7c064cf85b457bfd11f56526b65b99095b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-model-status/zipball/16533bb34ef31a100390567e7afb48e862fe2bc9", - "reference": "16533bb34ef31a100390567e7afb48e862fe2bc9", + "url": "https://api.github.com/repos/spatie/laravel-model-status/zipball/97724f7c064cf85b457bfd11f56526b65b99095b", + "reference": "97724f7c064cf85b457bfd11f56526b65b99095b", "shasum": "" }, "require": { - "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", "php": "^8.2" }, "require-dev": { - "orchestra/testbench": "^8.0|^9.0|^10.0", - "pestphp/pest": "^2.34|^3.7" + "orchestra/testbench": "^8.0|^9.2|^10.0|^11.0", + "pestphp/pest": "^2.34|^3.7|^4.0" }, "type": "library", "extra": { @@ -6829,7 +7137,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-model-status/issues", - "source": "https://github.com/spatie/laravel-model-status/tree/1.18.1" + "source": "https://github.com/spatie/laravel-model-status/tree/1.20.0" }, "funding": [ { @@ -6837,7 +7145,7 @@ "type": "custom" } ], - "time": "2025-02-21T13:20:00+00:00" + "time": "2026-02-21T12:20:43+00:00" }, { "name": "spatie/laravel-package-tools", @@ -6902,30 +7210,31 @@ }, { "name": "spatie/laravel-permission", - "version": "6.24.0", + "version": "6.25.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "76adb1fc8d07c16a0721c35c4cc330b7a12598d7" + "reference": "d7d4cb0d58616722f1afc90e0484e4825155b9b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/76adb1fc8d07c16a0721c35c4cc330b7a12598d7", - "reference": "76adb1fc8d07c16a0721c35c4cc330b7a12598d7", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/d7d4cb0d58616722f1afc90e0484e4825155b9b3", + "reference": "d7d4cb0d58616722f1afc90e0484e4825155b9b3", "shasum": "" }, "require": { - "illuminate/auth": "^8.12|^9.0|^10.0|^11.0|^12.0", - "illuminate/container": "^8.12|^9.0|^10.0|^11.0|^12.0", - "illuminate/contracts": "^8.12|^9.0|^10.0|^11.0|^12.0", - "illuminate/database": "^8.12|^9.0|^10.0|^11.0|^12.0", + "illuminate/auth": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/container": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/database": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0", "php": "^8.0" }, "require-dev": { - "laravel/passport": "^11.0|^12.0", + "laravel/passport": "^11.0|^12.0|^13.0", "laravel/pint": "^1.0", - "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0", - "phpunit/phpunit": "^9.4|^10.1|^11.5" + "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^2.0|^3.0|^4.0", + "pestphp/pest-plugin-laravel": "^2.0|^3.0|^4.0" }, "type": "library", "extra": { @@ -6973,7 +7282,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-permission/issues", - "source": "https://github.com/spatie/laravel-permission/tree/6.24.0" + "source": "https://github.com/spatie/laravel-permission/tree/6.25.0" }, "funding": [ { @@ -6981,30 +7290,30 @@ "type": "github" } ], - "time": "2025-12-13T21:45:21+00:00" + "time": "2026-03-17T22:46:46+00:00" }, { "name": "spatie/laravel-sluggable", - "version": "3.7.5", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-sluggable.git", - "reference": "e4fdd519e043a2af02b52eec2c3be2dd2e262e27" + "reference": "3624a2d7d8c8475d8561c53faf63f1af583ef76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-sluggable/zipball/e4fdd519e043a2af02b52eec2c3be2dd2e262e27", - "reference": "e4fdd519e043a2af02b52eec2c3be2dd2e262e27", + "url": "https://api.github.com/repos/spatie/laravel-sluggable/zipball/3624a2d7d8c8475d8561c53faf63f1af583ef76c", + "reference": "3624a2d7d8c8475d8561c53faf63f1af583ef76c", "shasum": "" }, "require": { - "illuminate/database": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", - "php": "^8.0" + "illuminate/database": "^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", + "php": "^8.2" }, "require-dev": { - "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0", - "pestphp/pest": "^1.20|^2.0|^3.7", + "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^2.0|^3.7|^4.0", "spatie/laravel-translatable": "^5.0|^6.0" }, "type": "library", @@ -7032,7 +7341,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-sluggable/tree/3.7.5" + "source": "https://github.com/spatie/laravel-sluggable/tree/3.8.1" }, "funding": [ { @@ -7040,34 +7349,34 @@ "type": "github" } ], - "time": "2025-04-24T09:21:00+00:00" + "time": "2026-03-23T07:42:02+00:00" }, { "name": "spatie/laravel-tags", - "version": "4.10.1", + "version": "4.11.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-tags.git", - "reference": "26fe2ad5490e65e2a3475c3fe8a4d9609934aa40" + "reference": "7d89470d49da7ee8acd8d23b236643329c168376" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-tags/zipball/26fe2ad5490e65e2a3475c3fe8a4d9609934aa40", - "reference": "26fe2ad5490e65e2a3475c3fe8a4d9609934aa40", + "url": "https://api.github.com/repos/spatie/laravel-tags/zipball/7d89470d49da7ee8acd8d23b236643329c168376", + "reference": "7d89470d49da7ee8acd8d23b236643329c168376", "shasum": "" }, "require": { - "laravel/framework": "^10.0|^11.0|^12.0", + "laravel/framework": "^10.0|^11.0|^12.0|^13.0", "nesbot/carbon": "^2.63|^3.0", "php": "^8.1", - "spatie/eloquent-sortable": "^4.0", + "spatie/eloquent-sortable": "^4.0|^5.0", "spatie/laravel-package-tools": "^1.4", "spatie/laravel-translatable": "^6.0" }, "require-dev": { - "orchestra/testbench": "^8.0|^9.0|^10.0", - "pestphp/pest": "^1.22|^2.0", - "phpunit/phpunit": "^9.5.2" + "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^1.22|^2.0|^4.0", + "phpunit/phpunit": "^9.5.2|^12.5.12" }, "type": "library", "extra": { @@ -7102,7 +7411,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-tags/issues", - "source": "https://github.com/spatie/laravel-tags/tree/4.10.1" + "source": "https://github.com/spatie/laravel-tags/tree/4.11.0" }, "funding": [ { @@ -7110,7 +7419,7 @@ "type": "github" } ], - "time": "2025-10-13T14:16:14+00:00" + "time": "2026-02-21T15:13:58+00:00" }, { "name": "spatie/laravel-translatable", @@ -7197,22 +7506,22 @@ }, { "name": "spatie/shiki-php", - "version": "2.3.2", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/spatie/shiki-php.git", - "reference": "a2e78a9ff8a1290b25d550be8fbf8285c13175c5" + "reference": "b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/shiki-php/zipball/a2e78a9ff8a1290b25d550be8fbf8285c13175c5", - "reference": "a2e78a9ff8a1290b25d550be8fbf8285c13175c5", + "url": "https://api.github.com/repos/spatie/shiki-php/zipball/b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba", + "reference": "b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba", "shasum": "" }, "require": { "ext-json": "*", "php": "^8.0", - "symfony/process": "^5.4|^6.4|^7.1" + "symfony/process": "^5.4|^6.4|^7.1|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^v3.0", @@ -7250,7 +7559,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/shiki-php/tree/2.3.2" + "source": "https://github.com/spatie/shiki-php/tree/2.4.0" }, "funding": [ { @@ -7258,7 +7567,7 @@ "type": "github" } ], - "time": "2025-02-21T14:16:57+00:00" + "time": "2026-04-27T14:27:52+00:00" }, { "name": "spatie/temporary-directory", @@ -7323,16 +7632,16 @@ }, { "name": "staudenmeir/eloquent-has-many-deep", - "version": "v1.21.2", + "version": "v1.21.3", "source": { "type": "git", "url": "https://github.com/staudenmeir/eloquent-has-many-deep.git", - "reference": "b0a3041c44237ebcd0d1005e475a4c736cba482c" + "reference": "627986482120e1d5787167bdeb953afa0835bc5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/b0a3041c44237ebcd0d1005e475a4c736cba482c", - "reference": "b0a3041c44237ebcd0d1005e475a4c736cba482c", + "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/627986482120e1d5787167bdeb953afa0835bc5d", + "reference": "627986482120e1d5787167bdeb953afa0835bc5d", "shasum": "" }, "require": { @@ -7378,7 +7687,7 @@ "description": "Laravel Eloquent HasManyThrough relationships with unlimited levels", "support": { "issues": "https://github.com/staudenmeir/eloquent-has-many-deep/issues", - "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.21.2" + "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.21.3" }, "funding": [ { @@ -7386,7 +7695,7 @@ "type": "custom" } ], - "time": "2025-11-08T08:44:24+00:00" + "time": "2026-03-14T10:49:35+00:00" }, { "name": "staudenmeir/eloquent-has-many-deep-contracts", @@ -7431,26 +7740,26 @@ }, { "name": "stefro/laravel-lang-country", - "version": "4.1.10", + "version": "4.2", "source": { "type": "git", "url": "https://github.com/stefro/laravel-lang-country.git", - "reference": "2c7b578993c4c4a014409a5b31cb3216e5fcb03f" + "reference": "860bef5334d142fdd2bc132fd31101e62918c804" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stefro/laravel-lang-country/zipball/2c7b578993c4c4a014409a5b31cb3216e5fcb03f", - "reference": "2c7b578993c4c4a014409a5b31cb3216e5fcb03f", + "url": "https://api.github.com/repos/stefro/laravel-lang-country/zipball/860bef5334d142fdd2bc132fd31101e62918c804", + "reference": "860bef5334d142fdd2bc132fd31101e62918c804", "shasum": "" }, "require": { - "illuminate/support": "^9.0|^10.0|^11.0|^12.0", - "php": "^8.1|^8.2" + "illuminate/support": "^9.0|^10.0|^11.0|^12.0|^13.0", + "php": "^8.1|^8.2|^8.3|^8.4|^8.5" }, "require-dev": { "barryvdh/laravel-ide-helper": "^2.13|^3.0", "friendsofphp/php-cs-fixer": "^3.22", - "orchestra/testbench": "^7.0|^8.0|^9.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", "pestphp/pest": "^1.21 | ^2.0 | ^3.0", "pestphp/pest-plugin-type-coverage": "^2.0|^3.0", "spatie/laravel-ray": "^1.32" @@ -7489,22 +7798,22 @@ ], "support": { "issues": "https://github.com/stefro/laravel-lang-country/issues", - "source": "https://github.com/stefro/laravel-lang-country/tree/4.1.10" + "source": "https://github.com/stefro/laravel-lang-country/tree/4.2" }, - "time": "2026-01-20T14:31:08+00:00" + "time": "2026-04-17T09:44:53+00:00" }, { "name": "swentel/nostr-php", - "version": "1.9.3", + "version": "1.9.4", "source": { "type": "git", "url": "https://github.com/nostrver-se/nostr-php.git", - "reference": "c415dd1bf20c1b414eca94005288cc137a79e0d7" + "reference": "e502540ea811199443e1fffcbdaef9048940399c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nostrver-se/nostr-php/zipball/c415dd1bf20c1b414eca94005288cc137a79e0d7", - "reference": "c415dd1bf20c1b414eca94005288cc137a79e0d7", + "url": "https://api.github.com/repos/nostrver-se/nostr-php/zipball/e502540ea811199443e1fffcbdaef9048940399c", + "reference": "e502540ea811199443e1fffcbdaef9048940399c", "shasum": "" }, "require": { @@ -7554,28 +7863,27 @@ "chat": "https://t.me/nostr_php", "issue": "https://github.com/swentel/nostr-php/issues", "issues": "https://github.com/nostrver-se/nostr-php/issues", - "source": "https://github.com/nostrver-se/nostr-php/tree/1.9.3" + "source": "https://github.com/nostrver-se/nostr-php/tree/1.9.4" }, - "time": "2025-12-04T09:09:22+00:00" + "time": "2026-02-03T11:13:00+00:00" }, { "name": "symfony/clock", - "version": "v7.4.0", + "version": "v8.0.8", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "9169f24776edde469914c1e7a1442a50f7a4e110" + "reference": "b55a638b189a6faa875e0ccdb00908fb87af95b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110", - "reference": "9169f24776edde469914c1e7a1442a50f7a4e110", + "url": "https://api.github.com/repos/symfony/clock/zipball/b55a638b189a6faa875e0ccdb00908fb87af95b3", + "reference": "b55a638b189a6faa875e0ccdb00908fb87af95b3", "shasum": "" }, "require": { - "php": ">=8.2", - "psr/clock": "^1.0", - "symfony/polyfill-php83": "^1.28" + "php": ">=8.4", + "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" @@ -7614,7 +7922,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.4.0" + "source": "https://github.com/symfony/clock/tree/v8.0.8" }, "funding": [ { @@ -7634,20 +7942,20 @@ "type": "tidelift" } ], - "time": "2025-11-12T15:39:26+00:00" + "time": "2026-03-30T15:14:47+00:00" }, { "name": "symfony/console", - "version": "v7.4.4", + "version": "v7.4.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894" + "reference": "d7d2b64a45a89d607865927b176fa51c33ddbb58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/41e38717ac1dd7a46b6bda7d6a82af2d98a78894", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894", + "url": "https://api.github.com/repos/symfony/console/zipball/d7d2b64a45a89d607865927b176fa51c33ddbb58", + "reference": "d7d2b64a45a89d607865927b176fa51c33ddbb58", "shasum": "" }, "require": { @@ -7712,7 +8020,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.4" + "source": "https://github.com/symfony/console/tree/v7.4.9" }, "funding": [ { @@ -7732,24 +8040,24 @@ "type": "tidelift" } ], - "time": "2026-01-13T11:36:38+00:00" + "time": "2026-04-22T15:21:55+00:00" }, { "name": "symfony/css-selector", - "version": "v7.4.0", + "version": "v8.0.9", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" + "reference": "3665cfade90565430909b906394c73c8739e57d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", - "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/3665cfade90565430909b906394c73c8739e57d0", + "reference": "3665cfade90565430909b906394c73c8739e57d0", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4" }, "type": "library", "autoload": { @@ -7781,7 +8089,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.4.0" + "source": "https://github.com/symfony/css-selector/tree/v8.0.9" }, "funding": [ { @@ -7801,7 +8109,7 @@ "type": "tidelift" } ], - "time": "2025-10-30T13:39:42+00:00" + "time": "2026-04-18T13:51:42+00:00" }, { "name": "symfony/deprecation-contracts", @@ -7872,16 +8180,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.4.4", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8" + "reference": "8dd79d8af777ee6cba2fd4d98da6ffb839f3c0fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8da531f364ddfee53e36092a7eebbbd0b775f6b8", - "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/8dd79d8af777ee6cba2fd4d98da6ffb839f3c0fa", + "reference": "8dd79d8af777ee6cba2fd4d98da6ffb839f3c0fa", "shasum": "" }, "require": { @@ -7930,7 +8238,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.4.4" + "source": "https://github.com/symfony/error-handler/tree/v7.4.8" }, "funding": [ { @@ -7950,28 +8258,28 @@ "type": "tidelift" } ], - "time": "2026-01-20T16:42:42+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.4.4", + "version": "v8.0.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "dc2c0eba1af673e736bb851d747d266108aea746" + "reference": "0c3c1a17604c4dbbec4b93fe162c538482096e1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dc2c0eba1af673e736bb851d747d266108aea746", - "reference": "dc2c0eba1af673e736bb851d747d266108aea746", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0c3c1a17604c4dbbec4b93fe162c538482096e1f", + "reference": "0c3c1a17604c4dbbec4b93fe162c538482096e1f", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<6.4", + "symfony/security-http": "<7.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -7980,14 +8288,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/error-handler": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/framework-bundle": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0|^8.0" + "symfony/stopwatch": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -8015,7 +8323,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.4" + "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.9" }, "funding": [ { @@ -8035,7 +8343,7 @@ "type": "tidelift" } ], - "time": "2026-01-05T11:45:34+00:00" + "time": "2026-04-18T13:51:42+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -8115,16 +8423,16 @@ }, { "name": "symfony/finder", - "version": "v7.4.4", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "01b24a145bbeaa7141e75887ec904c34a6728a5f" + "reference": "e0be088d22278583a82da281886e8c3592fbf149" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/01b24a145bbeaa7141e75887ec904c34a6728a5f", - "reference": "01b24a145bbeaa7141e75887ec904c34a6728a5f", + "url": "https://api.github.com/repos/symfony/finder/zipball/e0be088d22278583a82da281886e8c3592fbf149", + "reference": "e0be088d22278583a82da281886e8c3592fbf149", "shasum": "" }, "require": { @@ -8159,7 +8467,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.4" + "source": "https://github.com/symfony/finder/tree/v7.4.8" }, "funding": [ { @@ -8179,20 +8487,20 @@ "type": "tidelift" } ], - "time": "2026-01-12T12:19:02+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.4", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "977a554a34cf8edc95ca351fbecb1bb1ad05cc94" + "reference": "9381209597ec66c25be154cbf2289076e64d1eab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/977a554a34cf8edc95ca351fbecb1bb1ad05cc94", - "reference": "977a554a34cf8edc95ca351fbecb1bb1ad05cc94", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9381209597ec66c25be154cbf2289076e64d1eab", + "reference": "9381209597ec66c25be154cbf2289076e64d1eab", "shasum": "" }, "require": { @@ -8241,7 +8549,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.4" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.8" }, "funding": [ { @@ -8261,20 +8569,20 @@ "type": "tidelift" } ], - "time": "2026-01-09T12:14:21+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.4", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "48b067768859f7b68acf41dfb857a5a4be00acdd" + "reference": "017e76ad089bac281553389269e259e155935e1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/48b067768859f7b68acf41dfb857a5a4be00acdd", - "reference": "48b067768859f7b68acf41dfb857a5a4be00acdd", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/017e76ad089bac281553389269e259e155935e1a", + "reference": "017e76ad089bac281553389269e259e155935e1a", "shasum": "" }, "require": { @@ -8316,7 +8624,7 @@ "symfony/config": "^6.4|^7.0|^8.0", "symfony/console": "^6.4|^7.0|^8.0", "symfony/css-selector": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4.1|^7.0.1|^8.0", "symfony/dom-crawler": "^6.4|^7.0|^8.0", "symfony/expression-language": "^6.4|^7.0|^8.0", "symfony/finder": "^6.4|^7.0|^8.0", @@ -8360,7 +8668,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.4.4" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.8" }, "funding": [ { @@ -8380,20 +8688,20 @@ "type": "tidelift" } ], - "time": "2026-01-24T22:13:01+00:00" + "time": "2026-03-31T20:57:01+00:00" }, { "name": "symfony/mailer", - "version": "v7.4.4", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6" + "reference": "f6ea532250b476bfc1b56699b388a1bdbf168f62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/7b750074c40c694ceb34cb926d6dffee231c5cd6", - "reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6", + "url": "https://api.github.com/repos/symfony/mailer/zipball/f6ea532250b476bfc1b56699b388a1bdbf168f62", + "reference": "f6ea532250b476bfc1b56699b388a1bdbf168f62", "shasum": "" }, "require": { @@ -8444,7 +8752,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.4.4" + "source": "https://github.com/symfony/mailer/tree/v7.4.8" }, "funding": [ { @@ -8464,20 +8772,20 @@ "type": "tidelift" } ], - "time": "2026-01-08T08:25:11+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/mime", - "version": "v7.4.4", + "version": "v7.4.9", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "40945014c0a9471ccfe19673c54738fa19367a3c" + "reference": "2d550c4758ba4c47519a6667c36553d535705b0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/40945014c0a9471ccfe19673c54738fa19367a3c", - "reference": "40945014c0a9471ccfe19673c54738fa19367a3c", + "url": "https://api.github.com/repos/symfony/mime/zipball/2d550c4758ba4c47519a6667c36553d535705b0c", + "reference": "2d550c4758ba4c47519a6667c36553d535705b0c", "shasum": "" }, "require": { @@ -8488,15 +8796,15 @@ }, "conflict": { "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", + "phpdocumentor/reflection-docblock": "<5.2|>=7", + "phpdocumentor/type-resolver": "<1.5.1", "symfony/mailer": "<6.4", "symfony/serializer": "<6.4.3|>7.0,<7.0.3" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpdocumentor/reflection-docblock": "^5.2|^6.0", "symfony/dependency-injection": "^6.4|^7.0|^8.0", "symfony/process": "^6.4|^7.0|^8.0", "symfony/property-access": "^6.4|^7.0|^8.0", @@ -8533,7 +8841,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.4" + "source": "https://github.com/symfony/mime/tree/v7.4.9" }, "funding": [ { @@ -8553,20 +8861,20 @@ "type": "tidelift" } ], - "time": "2026-01-08T16:12:55+00:00" + "time": "2026-04-29T13:21:53+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", "shasum": "" }, "require": { @@ -8616,7 +8924,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" }, "funding": [ { @@ -8636,20 +8944,20 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" + "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e", + "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e", "shasum": "" }, "require": { @@ -8698,7 +9006,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0" }, "funding": [ { @@ -8718,11 +9026,11 @@ "type": "tidelift" } ], - "time": "2025-06-27T09:58:17+00:00" + "time": "2026-04-26T13:13:48+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", @@ -8785,7 +9093,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.37.0" }, "funding": [ { @@ -8809,7 +9117,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -8870,7 +9178,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0" }, "funding": [ { @@ -8894,16 +9202,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315", + "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315", "shasum": "" }, "require": { @@ -8955,7 +9263,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0" }, "funding": [ { @@ -8975,20 +9283,20 @@ "type": "tidelift" } ], - "time": "2024-12-23T08:48:59+00:00" + "time": "2026-04-10T17:25:58+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", - "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", "shasum": "" }, "require": { @@ -9039,7 +9347,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" }, "funding": [ { @@ -9059,20 +9367,20 @@ "type": "tidelift" } ], - "time": "2025-01-02T08:10:11+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" + "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/3600c2cb22399e25bb226e4a135ce91eeb2a6149", + "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149", "shasum": "" }, "require": { @@ -9119,7 +9427,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.37.0" }, "funding": [ { @@ -9139,20 +9447,20 @@ "type": "tidelift" } ], - "time": "2025-07-08T02:45:35+00:00" + "time": "2026-04-10T17:25:58+00:00" }, { "name": "symfony/polyfill-php84", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", - "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06", + "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06", "shasum": "" }, "require": { @@ -9199,7 +9507,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0" }, "funding": [ { @@ -9219,20 +9527,20 @@ "type": "tidelift" } ], - "time": "2025-06-24T13:30:11+00:00" + "time": "2026-04-10T18:47:49+00:00" }, { "name": "symfony/polyfill-php85", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php85.git", - "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91" + "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", - "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/fcfa4973a9917cef23f2e38774da74a2b7d115ee", + "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee", "shasum": "" }, "require": { @@ -9279,7 +9587,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php85/tree/v1.37.0" }, "funding": [ { @@ -9299,20 +9607,20 @@ "type": "tidelift" } ], - "time": "2025-06-23T16:12:55+00:00" + "time": "2026-04-26T13:10:57+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" + "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", - "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/26dfec253c4cf3e51b541b52ddf7e42cb0908e94", + "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94", "shasum": "" }, "require": { @@ -9362,7 +9670,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.37.0" }, "funding": [ { @@ -9382,20 +9690,20 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { "name": "symfony/process", - "version": "v7.4.4", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "626f07a53f4b4e2f00e11824cc29f928d797783b" + "reference": "60f19cd3badc8de688421e21e4305eba50f8089a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/626f07a53f4b4e2f00e11824cc29f928d797783b", - "reference": "626f07a53f4b4e2f00e11824cc29f928d797783b", + "url": "https://api.github.com/repos/symfony/process/zipball/60f19cd3badc8de688421e21e4305eba50f8089a", + "reference": "60f19cd3badc8de688421e21e4305eba50f8089a", "shasum": "" }, "require": { @@ -9427,7 +9735,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.4" + "source": "https://github.com/symfony/process/tree/v7.4.8" }, "funding": [ { @@ -9447,20 +9755,20 @@ "type": "tidelift" } ], - "time": "2026-01-20T09:23:51+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/routing", - "version": "v7.4.4", + "version": "v7.4.9", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "0798827fe2c79caeed41d70b680c2c3507d10147" + "reference": "287771d8bc86eacb30678dd10eda6c64a859951f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0798827fe2c79caeed41d70b680c2c3507d10147", - "reference": "0798827fe2c79caeed41d70b680c2c3507d10147", + "url": "https://api.github.com/repos/symfony/routing/zipball/287771d8bc86eacb30678dd10eda6c64a859951f", + "reference": "287771d8bc86eacb30678dd10eda6c64a859951f", "shasum": "" }, "require": { @@ -9512,7 +9820,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.4" + "source": "https://github.com/symfony/routing/tree/v7.4.9" }, "funding": [ { @@ -9532,7 +9840,7 @@ "type": "tidelift" } ], - "time": "2026-01-12T12:19:02+00:00" + "time": "2026-04-22T15:21:55+00:00" }, { "name": "symfony/service-contracts", @@ -9623,35 +9931,34 @@ }, { "name": "symfony/string", - "version": "v7.4.4", + "version": "v8.0.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f" + "reference": "ae9488f874d7603f9d2dfbf120203882b645d963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/1c4b10461bf2ec27537b5f36105337262f5f5d6f", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f", + "url": "https://api.github.com/repos/symfony/string/zipball/ae9488f874d7603f9d2dfbf120203882b645d963", + "reference": "ae9488f874d7603f9d2dfbf120203882b645d963", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.33", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-intl-grapheme": "^1.33", + "symfony/polyfill-intl-normalizer": "^1.0", + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/emoji": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0|^8.0" + "symfony/var-exporter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -9690,7 +9997,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.4" + "source": "https://github.com/symfony/string/tree/v8.0.8" }, "funding": [ { @@ -9710,38 +10017,31 @@ "type": "tidelift" } ], - "time": "2026-01-12T10:54:30+00:00" + "time": "2026-03-30T15:14:47+00:00" }, { "name": "symfony/translation", - "version": "v7.4.4", + "version": "v8.0.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "bfde13711f53f549e73b06d27b35a55207528877" + "reference": "27c03ae3940de24ba2f71cfdbac824f2aa1fdf2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/bfde13711f53f549e73b06d27b35a55207528877", - "reference": "bfde13711f53f549e73b06d27b35a55207528877", + "url": "https://api.github.com/repos/symfony/translation/zipball/27c03ae3940de24ba2f71cfdbac824f2aa1fdf2f", + "reference": "27c03ae3940de24ba2f71cfdbac824f2aa1fdf2f", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5.3|^3.3" + "php": ">=8.4", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation-contracts": "^3.6.1" }, "conflict": { "nikic/php-parser": "<5.0", - "symfony/config": "<6.4", - "symfony/console": "<6.4", - "symfony/dependency-injection": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<6.4", - "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<6.4", - "symfony/yaml": "<6.4" + "symfony/service-contracts": "<2.5" }, "provide": { "symfony/translation-implementation": "2.3|3.0" @@ -9749,17 +10049,17 @@ "require-dev": { "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/routing": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0|^8.0" + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -9790,7 +10090,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.4.4" + "source": "https://github.com/symfony/translation/tree/v8.0.8" }, "funding": [ { @@ -9810,7 +10110,7 @@ "type": "tidelift" } ], - "time": "2026-01-13T10:40:19+00:00" + "time": "2026-03-30T15:14:47+00:00" }, { "name": "symfony/translation-contracts", @@ -9896,16 +10196,16 @@ }, { "name": "symfony/uid", - "version": "v7.4.4", + "version": "v7.4.9", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36" + "reference": "2676b524340abcfe4d6151ec698463cebafee439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/7719ce8aba76be93dfe249192f1fbfa52c588e36", - "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36", + "url": "https://api.github.com/repos/symfony/uid/zipball/2676b524340abcfe4d6151ec698463cebafee439", + "reference": "2676b524340abcfe4d6151ec698463cebafee439", "shasum": "" }, "require": { @@ -9950,7 +10250,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.4" + "source": "https://github.com/symfony/uid/tree/v7.4.9" }, "funding": [ { @@ -9970,20 +10270,20 @@ "type": "tidelift" } ], - "time": "2026-01-03T23:30:35+00:00" + "time": "2026-04-30T15:19:22+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.4", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0e4769b46a0c3c62390d124635ce59f66874b282" + "reference": "9510c3966f749a1d1ff0059e1eabef6cc621e7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e4769b46a0c3c62390d124635ce59f66874b282", - "reference": "0e4769b46a0c3c62390d124635ce59f66874b282", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9510c3966f749a1d1ff0059e1eabef6cc621e7fd", + "reference": "9510c3966f749a1d1ff0059e1eabef6cc621e7fd", "shasum": "" }, "require": { @@ -10037,7 +10337,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.4" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.8" }, "funding": [ { @@ -10057,7 +10357,7 @@ "type": "tidelift" } ], - "time": "2026-01-01T22:13:48+00:00" + "time": "2026-03-30T13:44:50+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -10200,23 +10500,23 @@ }, { "name": "voku/portable-ascii", - "version": "2.0.3", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" + "reference": "8e1051fe39379367aecf014f41744ce7539a856f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", - "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/8e1051fe39379367aecf014f41744ce7539a856f", + "reference": "8e1051fe39379367aecf014f41744ce7539a856f", "shasum": "" }, "require": { - "php": ">=7.0.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + "phpunit/phpunit": "~8.5 || ~9.6 || ~10.5 || ~11.5" }, "suggest": { "ext-intl": "Use Intl for transliterator_transliterate() support" @@ -10246,7 +10546,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/2.0.3" + "source": "https://github.com/voku/portable-ascii/tree/2.1.1" }, "funding": [ { @@ -10270,7 +10570,7 @@ "type": "tidelift" } ], - "time": "2024-11-21T01:49:47+00:00" + "time": "2026-04-26T05:33:54+00:00" }, { "name": "woodsandwalker/laravel-countries", @@ -10384,16 +10684,16 @@ }, { "name": "brianium/paratest", - "version": "v7.16.1", + "version": "v7.20.0", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "f0fdfd8e654e0d38bc2ba756a6cabe7be287390b" + "reference": "81c80677c9ec0ed4ef16b246167f11dec81a6e3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/f0fdfd8e654e0d38bc2ba756a6cabe7be287390b", - "reference": "f0fdfd8e654e0d38bc2ba756a6cabe7be287390b", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/81c80677c9ec0ed4ef16b246167f11dec81a6e3d", + "reference": "81c80677c9ec0ed4ef16b246167f11dec81a6e3d", "shasum": "" }, "require": { @@ -10404,24 +10704,24 @@ "fidry/cpu-core-counter": "^1.3.0", "jean85/pretty-package-versions": "^2.1.1", "php": "~8.3.0 || ~8.4.0 || ~8.5.0", - "phpunit/php-code-coverage": "^12.5.2", - "phpunit/php-file-iterator": "^6", - "phpunit/php-timer": "^8", - "phpunit/phpunit": "^12.5.4", - "sebastian/environment": "^8.0.3", - "symfony/console": "^7.3.4 || ^8.0.0", - "symfony/process": "^7.3.4 || ^8.0.0" + "phpunit/php-code-coverage": "^12.5.3 || ^13.0.1", + "phpunit/php-file-iterator": "^6.0.1 || ^7", + "phpunit/php-timer": "^8 || ^9", + "phpunit/phpunit": "^12.5.14 || ^13.0.5", + "sebastian/environment": "^8.0.3 || ^9", + "symfony/console": "^7.4.7 || ^8.0.7", + "symfony/process": "^7.4.5 || ^8.0.5" }, "require-dev": { "doctrine/coding-standard": "^14.0.0", "ext-pcntl": "*", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^2.1.33", - "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.11", - "phpstan/phpstan-strict-rules": "^2.0.7", - "symfony/filesystem": "^7.3.2 || ^8.0.0" + "phpstan/phpstan": "^2.1.44", + "phpstan/phpstan-deprecation-rules": "^2.0.4", + "phpstan/phpstan-phpunit": "^2.0.16", + "phpstan/phpstan-strict-rules": "^2.0.10", + "symfony/filesystem": "^7.4.6 || ^8.0.6" }, "bin": [ "bin/paratest", @@ -10461,7 +10761,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.16.1" + "source": "https://github.com/paratestphp/paratest/tree/v7.20.0" }, "funding": [ { @@ -10473,33 +10773,33 @@ "type": "paypal" } ], - "time": "2026-01-08T07:23:06+00:00" + "time": "2026-03-29T15:46:14+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.5", + "version": "1.1.6", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" + "phpunit/phpunit": "<=7.5 || >=14" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", "psr/log": "^1 || ^2 || ^3" }, "suggest": { @@ -10519,36 +10819,36 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.5" + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "time": "2025-04-07T20:06:18+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { "name": "dragon-code/contracts", - "version": "2.24.0", + "version": "2.25.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/contracts.git", - "reference": "c21ea4fc0a399bd803a2805a7f2c989749083896" + "reference": "13d1254801026be5ba33cf1309a414953869175f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/c21ea4fc0a399bd803a2805a7f2c989749083896", - "reference": "c21ea4fc0a399bd803a2805a7f2c989749083896", + "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/13d1254801026be5ba33cf1309a414953869175f", + "reference": "13d1254801026be5ba33cf1309a414953869175f", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-message": "^1.0.1 || ^2.0", - "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0 || ^7.0", + "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", "symfony/polyfill-php80": "^1.23" }, "conflict": { "andrey-helldar/contracts": "*" }, "require-dev": { - "illuminate/database": "^10.0 || ^11.0 || ^12.0", - "phpdocumentor/reflection-docblock": "^5.0" + "illuminate/database": "^10.0 || ^11.0 || ^12.0 || ^13.0", + "phpdocumentor/reflection-docblock": "^5.0 || ^6.0" }, "type": "library", "autoload": { @@ -10585,7 +10885,7 @@ "type": "yoomoney" } ], - "time": "2025-02-23T23:11:50+00:00" + "time": "2026-03-17T21:50:20+00:00" }, { "name": "dragon-code/pretty-array", @@ -10658,16 +10958,16 @@ }, { "name": "dragon-code/support", - "version": "6.16.0", + "version": "6.17.1", "source": { "type": "git", "url": "https://github.com/TheDragonCode/support.git", - "reference": "ab9b657a307e75f6ba5b2b39e1e45207dc1a065a" + "reference": "82a465953267989883d64b921e9725600a5073b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/support/zipball/ab9b657a307e75f6ba5b2b39e1e45207dc1a065a", - "reference": "ab9b657a307e75f6ba5b2b39e1e45207dc1a065a", + "url": "https://api.github.com/repos/TheDragonCode/support/zipball/82a465953267989883d64b921e9725600a5073b5", + "reference": "82a465953267989883d64b921e9725600a5073b5", "shasum": "" }, "require": { @@ -10679,14 +10979,13 @@ "ext-mbstring": "*", "php": "^8.1", "psr/http-message": "^1.0.1 || ^2.0", - "symfony/polyfill-php81": "^1.25", "voku/portable-ascii": "^1.4.8 || ^2.0.1" }, "conflict": { "andrey-helldar/support": "*" }, "require-dev": { - "illuminate/contracts": "^9.0 || ^10.0 || ^11.0 || ^12.0", + "illuminate/contracts": "^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0", "phpunit/phpunit": "^9.6 || ^11.0 || ^12.0", "symfony/var-dumper": "^6.0 || ^7.0" }, @@ -10749,7 +11048,7 @@ "type": "yoomoney" } ], - "time": "2025-02-24T14:01:52+00:00" + "time": "2026-04-03T15:06:29+00:00" }, { "name": "fakerphp/faker", @@ -11059,27 +11358,27 @@ }, { "name": "laravel-lang/config", - "version": "1.16.0", + "version": "1.17.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/config.git", - "reference": "e7cc52bd5695e017ab996a00ee57d81c3232e6e2" + "reference": "77ad089234aa74961ca30c7e6d13db9a62654c87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/config/zipball/e7cc52bd5695e017ab996a00ee57d81c3232e6e2", - "reference": "e7cc52bd5695e017ab996a00ee57d81c3232e6e2", + "url": "https://api.github.com/repos/Laravel-Lang/config/zipball/77ad089234aa74961ca30c7e6d13db9a62654c87", + "reference": "77ad089234aa74961ca30c7e6d13db9a62654c87", "shasum": "" }, "require": { "archtechx/enums": "^1.0", - "illuminate/config": "^10.0 || ^11.0 || ^12.0", - "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "illuminate/config": "^10.0 || ^11.0 || ^12.0 || ^13.0", + "illuminate/support": "^10.0 || ^11.0 || ^12.0 || ^13.0", "laravel-lang/locale-list": "^1.6", "php": "^8.1" }, "require-dev": { - "orchestra/testbench": "^8.23 || ^9.1 || ^10.0", + "orchestra/testbench": "^8.23 || ^9.1 || ^10.0 || ^11.0", "pestphp/pest": "^2.34 || ^3.0" }, "type": "library", @@ -11127,22 +11426,22 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/config/issues", - "source": "https://github.com/Laravel-Lang/config/tree/1.16.0" + "source": "https://github.com/Laravel-Lang/config/tree/1.17.0" }, - "time": "2026-01-21T07:36:30+00:00" + "time": "2026-03-17T21:23:36+00:00" }, { "name": "laravel-lang/lang", - "version": "15.27.0", + "version": "15.29.3", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/lang.git", - "reference": "1684701b49401eb98c250e1b9a6b09fa768dfecb" + "reference": "c388b20ea78da7ad6234f9ec0681d326f31d35f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/1684701b49401eb98c250e1b9a6b09fa768dfecb", - "reference": "1684701b49401eb98c250e1b9a6b09fa768dfecb", + "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/c388b20ea78da7ad6234f9ec0681d326f31d35f6", + "reference": "c388b20ea78da7ad6234f9ec0681d326f31d35f6", "shasum": "" }, "require": { @@ -11203,7 +11502,7 @@ "type": "yoomoney" } ], - "time": "2026-01-23T19:22:49+00:00" + "time": "2026-04-26T14:40:40+00:00" }, { "name": "laravel-lang/locale-list", @@ -11274,23 +11573,23 @@ }, { "name": "laravel-lang/locales", - "version": "2.10.0", + "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/locales.git", - "reference": "8c1d2383ced70a919b3c2f430589be6c81663087" + "reference": "761aa3cfbc5bbe29eb958c9839e7dd3806193bac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/locales/zipball/8c1d2383ced70a919b3c2f430589be6c81663087", - "reference": "8c1d2383ced70a919b3c2f430589be6c81663087", + "url": "https://api.github.com/repos/Laravel-Lang/locales/zipball/761aa3cfbc5bbe29eb958c9839e7dd3806193bac", + "reference": "761aa3cfbc5bbe29eb958c9839e7dd3806193bac", "shasum": "" }, "require": { "archtechx/enums": "^0.3.2 || ^1.0", "dragon-code/support": "^6.11.3", "ext-json": "*", - "illuminate/collections": "^10.0 || ^11.0 || ^12.0", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0 || ^13.0", "laravel-lang/config": "^1.12", "laravel-lang/locale-list": "^1.5", "laravel-lang/native-country-names": "^1.5", @@ -11299,8 +11598,8 @@ "php": "^8.1" }, "require-dev": { - "orchestra/testbench": "^8.0 || ^9.0 || ^10.0", - "pestphp/pest": "^2.24.1 || ^3.0", + "orchestra/testbench": "^8.0 || ^9.0 || ^10.0 || ^11.0", + "pestphp/pest": "^2.24.1 || ^3.0 || ^4.0", "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", @@ -11343,36 +11642,36 @@ "issues": "https://github.com/Laravel-Lang/locales/issues", "source": "https://github.com/Laravel-Lang/locales" }, - "time": "2025-02-24T20:38:10+00:00" + "time": "2026-03-17T22:40:41+00:00" }, { "name": "laravel-lang/native-country-names", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/native-country-names.git", - "reference": "66a82c28c5c820239671035aa019012414d5894f" + "reference": "1d293138e34eb9e914bc4568cdebac2cb0a2eb0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/native-country-names/zipball/66a82c28c5c820239671035aa019012414d5894f", - "reference": "66a82c28c5c820239671035aa019012414d5894f", + "url": "https://api.github.com/repos/Laravel-Lang/native-country-names/zipball/1d293138e34eb9e914bc4568cdebac2cb0a2eb0e", + "reference": "1d293138e34eb9e914bc4568cdebac2cb0a2eb0e", "shasum": "" }, "require": { "dragon-code/support": "^6.11", "ext-json": "*", - "illuminate/collections": "^10.0 || ^11.0 || ^12.0", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0 || ^13.0", "php": "^8.1" }, "require-dev": { - "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "illuminate/support": "^10.0 || ^11.0 || ^12.0 || ^13.0", "laravel-lang/locale-list": "^1.5", - "pestphp/pest": "^2.24.3 || ^3.0", + "pestphp/pest": "^2.0 || ^3.0 || ^4.0", "punic/punic": "^3.8", - "symfony/console": "^6.3 || ^7.0", - "symfony/process": "^6.3 || ^7.0", - "symfony/var-dumper": "^6.3 || ^7.0", + "symfony/console": "^6.0 || ^7.0 || ^8.0", + "symfony/process": "^6.0 || ^7.0 || ^8.0", + "symfony/var-dumper": "^6.0 || ^7.0 || ^8.0", "vlucas/phpdotenv": "^5.6" }, "type": "library", @@ -11425,36 +11724,36 @@ "type": "yoomoney" } ], - "time": "2026-01-21T17:13:07+00:00" + "time": "2026-03-17T22:01:15+00:00" }, { "name": "laravel-lang/native-currency-names", - "version": "1.8.0", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/native-currency-names.git", - "reference": "564f05c2034d76166431704f5d965067dd8c80f0" + "reference": "78beb3c74fc49970b2f948def631512d2a71f3d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/native-currency-names/zipball/564f05c2034d76166431704f5d965067dd8c80f0", - "reference": "564f05c2034d76166431704f5d965067dd8c80f0", + "url": "https://api.github.com/repos/Laravel-Lang/native-currency-names/zipball/78beb3c74fc49970b2f948def631512d2a71f3d9", + "reference": "78beb3c74fc49970b2f948def631512d2a71f3d9", "shasum": "" }, "require": { "dragon-code/support": "^6.11", "ext-json": "*", - "illuminate/collections": "^10.0 || ^11.0 || ^12.0", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0 || ^13.0", "php": "^8.1" }, "require-dev": { - "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "illuminate/support": "^10.0 || ^11.0 || ^12.0 || ^13.0", "laravel-lang/locale-list": "^1.2", - "pestphp/pest": "^2.24.3 || ^3.0", + "pestphp/pest": "^2.0 || ^3.0 || ^4.0", "punic/punic": "^3.8", - "symfony/console": "^6.3 || ^7.0", - "symfony/process": "^6.3 || ^7.0", - "symfony/var-dumper": "^6.3 || ^7.0", + "symfony/console": "^6.0 || ^7.0", + "symfony/process": "^6.0 || ^7.0", + "symfony/var-dumper": "^6.0 || ^7.0", "vlucas/phpdotenv": "^5.6" }, "type": "library", @@ -11504,20 +11803,20 @@ "type": "yoomoney" } ], - "time": "2026-01-21T17:17:17+00:00" + "time": "2026-03-17T22:14:24+00:00" }, { "name": "laravel-lang/native-locale-names", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/native-locale-names.git", - "reference": "e1e510e9d2699ed7c41453582e5f9efc74d858b3" + "reference": "c9908827c17a345ae9b0a248380bb223c04ed595" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/native-locale-names/zipball/e1e510e9d2699ed7c41453582e5f9efc74d858b3", - "reference": "e1e510e9d2699ed7c41453582e5f9efc74d858b3", + "url": "https://api.github.com/repos/Laravel-Lang/native-locale-names/zipball/c9908827c17a345ae9b0a248380bb223c04ed595", + "reference": "c9908827c17a345ae9b0a248380bb223c04ed595", "shasum": "" }, "require": { @@ -11526,13 +11825,13 @@ "php": "^8.1" }, "require-dev": { - "illuminate/support": "^10.31 || ^11.0 || ^12.0", + "illuminate/support": "^10.0 || ^11.0 || ^12.0 || ^13.0", "laravel-lang/locale-list": "^1.2", - "pestphp/pest": "^2.24.3 || ^3.0", + "pestphp/pest": "^2.24.3 || ^3.0 || ^4.0", "punic/punic": "^3.8", - "symfony/console": "^6.3 || ^7.0", - "symfony/process": "^6.3 || ^7.0", - "symfony/var-dumper": "^6.3 || ^7.0" + "symfony/console": "^6.0 || ^7.0", + "symfony/process": "^6.0 || ^7.0", + "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", "autoload": { @@ -11580,20 +11879,20 @@ "type": "yoomoney" } ], - "time": "2026-01-21T17:15:48+00:00" + "time": "2026-03-17T22:08:00+00:00" }, { "name": "laravel-lang/publisher", - "version": "16.7.1", + "version": "16.8.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/publisher.git", - "reference": "b58d236ba3b5bebb4cfc87500b52f620ead4485b" + "reference": "e5d3383f5385c2102f8a0d3dbe488ed86cd0250f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/publisher/zipball/b58d236ba3b5bebb4cfc87500b52f620ead4485b", - "reference": "b58d236ba3b5bebb4cfc87500b52f620ead4485b", + "url": "https://api.github.com/repos/Laravel-Lang/publisher/zipball/e5d3383f5385c2102f8a0d3dbe488ed86cd0250f", + "reference": "e5d3383f5385c2102f8a0d3dbe488ed86cd0250f", "shasum": "" }, "require": { @@ -11601,9 +11900,9 @@ "dragon-code/pretty-array": "^4.1", "dragon-code/support": "^6.11.3", "ext-json": "*", - "illuminate/collections": "^10.0 || ^11.0 || ^12.0", - "illuminate/console": "^10.0 || ^11.0 || ^12.0", - "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0 || ^13.0", + "illuminate/console": "^10.0 || ^11.0 || ^12.0 || ^13.0", + "illuminate/support": "^10.0 || ^11.0 || ^12.0 || ^13.0", "laravel-lang/config": "^1.12", "laravel-lang/locales": "^2.10", "league/commonmark": "^2.4.1", @@ -11617,7 +11916,7 @@ }, "require-dev": { "laravel-lang/json-fallback": "^2.2", - "orchestra/testbench": "^8.14 || ^9.0 || ^10.0", + "orchestra/testbench": "^8.14 || ^9.0 || ^10.0 || ^11.0", "phpunit/phpunit": "^10.4.2 || ^11.0 || ^12.0", "symfony/var-dumper": "^6.3.6 || ^7.0" }, @@ -11688,20 +11987,20 @@ "type": "yoomoney" } ], - "time": "2026-01-14T22:00:51+00:00" + "time": "2026-03-17T22:56:20+00:00" }, { "name": "laravel-lang/starter-kits", - "version": "1.8.0", + "version": "1.13.2", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/starter-kits.git", - "reference": "0b0c0512971a2320a2b4ddeec275acb235e6301d" + "reference": "1b03951b21ec9cd49a276ce2be657020404c30e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/starter-kits/zipball/0b0c0512971a2320a2b4ddeec275acb235e6301d", - "reference": "0b0c0512971a2320a2b4ddeec275acb235e6301d", + "url": "https://api.github.com/repos/Laravel-Lang/starter-kits/zipball/1b03951b21ec9cd49a276ce2be657020404c30e6", + "reference": "1b03951b21ec9cd49a276ce2be657020404c30e6", "shasum": "" }, "require": { @@ -11753,7 +12052,7 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/starter-kits/issues", - "source": "https://github.com/Laravel-Lang/starter-kits/tree/1.8.0" + "source": "https://github.com/Laravel-Lang/starter-kits/tree/1.13.2" }, "funding": [ { @@ -11765,20 +12064,20 @@ "type": "yoomoney" } ], - "time": "2026-01-15T08:03:58+00:00" + "time": "2026-04-28T18:30:10+00:00" }, { "name": "laravel/boost", - "version": "v1.8.10", + "version": "v1.8.13", "source": { "type": "git", "url": "https://github.com/laravel/boost.git", - "reference": "aad8b2a423b0a886c2ce7ee92abbfde69992ff32" + "reference": "cdcb12114315491f72a2cecb5130d8b9dffa0103" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/boost/zipball/aad8b2a423b0a886c2ce7ee92abbfde69992ff32", - "reference": "aad8b2a423b0a886c2ce7ee92abbfde69992ff32", + "url": "https://api.github.com/repos/laravel/boost/zipball/cdcb12114315491f72a2cecb5130d8b9dffa0103", + "reference": "cdcb12114315491f72a2cecb5130d8b9dffa0103", "shasum": "" }, "require": { @@ -11831,39 +12130,39 @@ "issues": "https://github.com/laravel/boost/issues", "source": "https://github.com/laravel/boost" }, - "time": "2026-01-14T14:51:16+00:00" + "time": "2026-03-27T17:24:01+00:00" }, { "name": "laravel/mcp", - "version": "v0.5.2", + "version": "v0.5.9", "source": { "type": "git", "url": "https://github.com/laravel/mcp.git", - "reference": "b9bdd8d6f8b547c8733fe6826b1819341597ba3c" + "reference": "39e8da60eb7bce4737c5d868d35a3fe78938c129" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/mcp/zipball/b9bdd8d6f8b547c8733fe6826b1819341597ba3c", - "reference": "b9bdd8d6f8b547c8733fe6826b1819341597ba3c", + "url": "https://api.github.com/repos/laravel/mcp/zipball/39e8da60eb7bce4737c5d868d35a3fe78938c129", + "reference": "39e8da60eb7bce4737c5d868d35a3fe78938c129", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "illuminate/console": "^10.49.0|^11.45.3|^12.41.1", - "illuminate/container": "^10.49.0|^11.45.3|^12.41.1", - "illuminate/contracts": "^10.49.0|^11.45.3|^12.41.1", - "illuminate/http": "^10.49.0|^11.45.3|^12.41.1", - "illuminate/json-schema": "^12.41.1", - "illuminate/routing": "^10.49.0|^11.45.3|^12.41.1", - "illuminate/support": "^10.49.0|^11.45.3|^12.41.1", - "illuminate/validation": "^10.49.0|^11.45.3|^12.41.1", - "php": "^8.1" + "illuminate/console": "^11.45.3|^12.41.1|^13.0", + "illuminate/container": "^11.45.3|^12.41.1|^13.0", + "illuminate/contracts": "^11.45.3|^12.41.1|^13.0", + "illuminate/http": "^11.45.3|^12.41.1|^13.0", + "illuminate/json-schema": "^12.41.1|^13.0", + "illuminate/routing": "^11.45.3|^12.41.1|^13.0", + "illuminate/support": "^11.45.3|^12.41.1|^13.0", + "illuminate/validation": "^11.45.3|^12.41.1|^13.0", + "php": "^8.2" }, "require-dev": { "laravel/pint": "^1.20", - "orchestra/testbench": "^8.36|^9.15|^10.8", - "pestphp/pest": "^2.36.0|^3.8.4|^4.1.0", + "orchestra/testbench": "^9.15|^10.8|^11.0", + "pestphp/pest": "^3.8.5|^4.3.2", "phpstan/phpstan": "^2.1.27", "rector/rector": "^2.2.4" }, @@ -11904,41 +12203,42 @@ "issues": "https://github.com/laravel/mcp/issues", "source": "https://github.com/laravel/mcp" }, - "time": "2025-12-19T19:32:34+00:00" + "time": "2026-02-17T19:05:53+00:00" }, { "name": "laravel/pail", - "version": "v1.2.4", + "version": "v1.2.6", "source": { "type": "git", "url": "https://github.com/laravel/pail.git", - "reference": "49f92285ff5d6fc09816e976a004f8dec6a0ea30" + "reference": "aa71a01c309e7f66bc2ec4fb1a59291b82eb4abf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pail/zipball/49f92285ff5d6fc09816e976a004f8dec6a0ea30", - "reference": "49f92285ff5d6fc09816e976a004f8dec6a0ea30", + "url": "https://api.github.com/repos/laravel/pail/zipball/aa71a01c309e7f66bc2ec4fb1a59291b82eb4abf", + "reference": "aa71a01c309e7f66bc2ec4fb1a59291b82eb4abf", "shasum": "" }, "require": { "ext-mbstring": "*", - "illuminate/console": "^10.24|^11.0|^12.0", - "illuminate/contracts": "^10.24|^11.0|^12.0", - "illuminate/log": "^10.24|^11.0|^12.0", - "illuminate/process": "^10.24|^11.0|^12.0", - "illuminate/support": "^10.24|^11.0|^12.0", + "illuminate/console": "^10.24|^11.0|^12.0|^13.0", + "illuminate/contracts": "^10.24|^11.0|^12.0|^13.0", + "illuminate/log": "^10.24|^11.0|^12.0|^13.0", + "illuminate/process": "^10.24|^11.0|^12.0|^13.0", + "illuminate/support": "^10.24|^11.0|^12.0|^13.0", "nunomaduro/termwind": "^1.15|^2.0", "php": "^8.2", - "symfony/console": "^6.0|^7.0" + "symfony/console": "^6.0|^7.0|^8.0" }, "require-dev": { - "laravel/framework": "^10.24|^11.0|^12.0", + "laravel/framework": "^10.24|^11.0|^12.0|^13.0", "laravel/pint": "^1.13", - "orchestra/testbench-core": "^8.13|^9.17|^10.8", + "orchestra/testbench-core": "^8.13|^9.17|^10.8|^11.0", "pestphp/pest": "^2.20|^3.0|^4.0", "pestphp/pest-plugin-type-coverage": "^2.3|^3.0|^4.0", "phpstan/phpstan": "^1.12.27", - "symfony/var-dumper": "^6.3|^7.0" + "symfony/var-dumper": "^6.3|^7.0|^8.0", + "symfony/yaml": "^6.3|^7.0|^8.0" }, "type": "library", "extra": { @@ -11983,20 +12283,20 @@ "issues": "https://github.com/laravel/pail/issues", "source": "https://github.com/laravel/pail" }, - "time": "2025-11-20T16:29:35+00:00" + "time": "2026-02-09T13:44:54+00:00" }, { "name": "laravel/pint", - "version": "v1.27.0", + "version": "v1.29.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "c67b4195b75491e4dfc6b00b1c78b68d86f54c90" + "reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/c67b4195b75491e4dfc6b00b1c78b68d86f54c90", - "reference": "c67b4195b75491e4dfc6b00b1c78b68d86f54c90", + "url": "https://api.github.com/repos/laravel/pint/zipball/0770e9b7fafd50d4586881d456d6eb41c9247a80", + "reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80", "shasum": "" }, "require": { @@ -12007,13 +12307,14 @@ "php": "^8.2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.92.4", - "illuminate/view": "^12.44.0", - "larastan/larastan": "^3.8.1", - "laravel-zero/framework": "^12.0.4", + "friendsofphp/php-cs-fixer": "^3.95.1", + "illuminate/view": "^12.56.0", + "larastan/larastan": "^3.9.6", + "laravel-zero/framework": "^12.1.0", "mockery/mockery": "^1.6.12", - "nunomaduro/termwind": "^2.3.3", - "pestphp/pest": "^3.8.4" + "nunomaduro/termwind": "^2.4.0", + "pestphp/pest": "^3.8.6", + "shipfastlabs/agent-detector": "^1.1.3" }, "bin": [ "builds/pint" @@ -12050,7 +12351,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2026-01-05T16:49:17+00:00" + "time": "2026-04-20T15:26:14+00:00" }, { "name": "laravel/roster", @@ -12258,39 +12559,36 @@ }, { "name": "nunomaduro/collision", - "version": "v8.8.3", + "version": "v8.9.4", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4" + "reference": "716af8f95a470e9094cfca09ed897b023be191a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/1dc9e88d105699d0fee8bb18890f41b274f6b4c4", - "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/716af8f95a470e9094cfca09ed897b023be191a5", + "reference": "716af8f95a470e9094cfca09ed897b023be191a5", "shasum": "" }, "require": { - "filp/whoops": "^2.18.1", - "nunomaduro/termwind": "^2.3.1", + "filp/whoops": "^2.18.4", + "nunomaduro/termwind": "^2.4.0", "php": "^8.2.0", - "symfony/console": "^7.3.0" + "symfony/console": "^7.4.8 || ^8.0.8" }, "conflict": { - "laravel/framework": "<11.44.2 || >=13.0.0", - "phpunit/phpunit": "<11.5.15 || >=13.0.0" + "laravel/framework": "<11.48.0 || >=14.0.0", + "phpunit/phpunit": "<11.5.50 || >=14.0.0" }, "require-dev": { - "brianium/paratest": "^7.8.3", - "larastan/larastan": "^3.4.2", - "laravel/framework": "^11.44.2 || ^12.18", - "laravel/pint": "^1.22.1", - "laravel/sail": "^1.43.1", - "laravel/sanctum": "^4.1.1", - "laravel/tinker": "^2.10.1", - "orchestra/testbench-core": "^9.12.0 || ^10.4", - "pestphp/pest": "^3.8.2 || ^4.0.0", - "sebastian/environment": "^7.2.1 || ^8.0" + "brianium/paratest": "^7.8.5", + "larastan/larastan": "^3.9.6", + "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.5.0", + "laravel/pint": "^1.29.1", + "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.2.1", + "pestphp/pest": "^3.8.5 || ^4.4.3 || ^5.0.0", + "sebastian/environment": "^7.2.1 || ^8.0.4 || ^9.3.0" }, "type": "library", "extra": { @@ -12353,45 +12651,46 @@ "type": "patreon" } ], - "time": "2025-11-20T02:55:25+00:00" + "time": "2026-04-21T14:04:20+00:00" }, { "name": "pestphp/pest", - "version": "v4.3.1", + "version": "v4.6.3", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "bc57a84e77afd4544ff9643a6858f68d05aeab96" + "reference": "bff44562a99d30aa37573995566051b0344f9f8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/bc57a84e77afd4544ff9643a6858f68d05aeab96", - "reference": "bc57a84e77afd4544ff9643a6858f68d05aeab96", + "url": "https://api.github.com/repos/pestphp/pest/zipball/bff44562a99d30aa37573995566051b0344f9f8e", + "reference": "bff44562a99d30aa37573995566051b0344f9f8e", "shasum": "" }, "require": { - "brianium/paratest": "^7.16.0", - "nunomaduro/collision": "^8.8.3", - "nunomaduro/termwind": "^2.3.3", + "brianium/paratest": "^7.20.0", + "nunomaduro/collision": "^8.9.3", + "nunomaduro/termwind": "^2.4.0", "pestphp/pest-plugin": "^4.0.0", - "pestphp/pest-plugin-arch": "^4.0.0", + "pestphp/pest-plugin-arch": "^4.0.2", "pestphp/pest-plugin-mutate": "^4.0.1", "pestphp/pest-plugin-profanity": "^4.2.1", "php": "^8.3.0", - "phpunit/phpunit": "^12.5.4", - "symfony/process": "^7.4.3|^8.0.0" + "phpunit/phpunit": "^12.5.23", + "symfony/process": "^7.4.8|^8.0.8" }, "conflict": { "filp/whoops": "<2.18.3", - "phpunit/phpunit": ">12.5.4", + "phpunit/phpunit": ">12.5.23", "sebastian/exporter": "<7.0.0", "webmozart/assert": "<1.11.0" }, "require-dev": { - "pestphp/pest-dev-tools": "^4.0.0", - "pestphp/pest-plugin-browser": "^4.1.1", - "pestphp/pest-plugin-type-coverage": "^4.0.3", - "psy/psysh": "^0.12.18" + "mrpunyapal/peststan": "^0.2.5", + "pestphp/pest-dev-tools": "^4.1.0", + "pestphp/pest-plugin-browser": "^4.3.1", + "pestphp/pest-plugin-type-coverage": "^4.0.4", + "psy/psysh": "^0.12.22" }, "bin": [ "bin/pest" @@ -12457,7 +12756,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v4.3.1" + "source": "https://github.com/pestphp/pest/tree/v4.6.3" }, "funding": [ { @@ -12469,7 +12768,7 @@ "type": "github" } ], - "time": "2026-01-04T16:29:59+00:00" + "time": "2026-04-18T13:51:25+00:00" }, { "name": "pestphp/pest-plugin", @@ -12543,26 +12842,26 @@ }, { "name": "pestphp/pest-plugin-arch", - "version": "v4.0.0", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-arch.git", - "reference": "25bb17e37920ccc35cbbcda3b00d596aadf3e58d" + "reference": "3fb0d02a91b9da504b139dc7ab2a31efb7c3215c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/25bb17e37920ccc35cbbcda3b00d596aadf3e58d", - "reference": "25bb17e37920ccc35cbbcda3b00d596aadf3e58d", + "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/3fb0d02a91b9da504b139dc7ab2a31efb7c3215c", + "reference": "3fb0d02a91b9da504b139dc7ab2a31efb7c3215c", "shasum": "" }, "require": { "pestphp/pest-plugin": "^4.0.0", "php": "^8.3", - "ta-tikoma/phpunit-architecture-test": "^0.8.5" + "ta-tikoma/phpunit-architecture-test": "^0.8.7" }, "require-dev": { - "pestphp/pest": "^4.0.0", - "pestphp/pest-dev-tools": "^4.0.0" + "pestphp/pest": "^4.4.6", + "pestphp/pest-dev-tools": "^4.1.0" }, "type": "library", "extra": { @@ -12597,7 +12896,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-arch/tree/v4.0.0" + "source": "https://github.com/pestphp/pest-plugin-arch/tree/v4.0.2" }, "funding": [ { @@ -12609,31 +12908,31 @@ "type": "github" } ], - "time": "2025-08-20T13:10:51+00:00" + "time": "2026-04-10T17:20:19+00:00" }, { "name": "pestphp/pest-plugin-laravel", - "version": "v4.0.0", + "version": "v4.1.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-laravel.git", - "reference": "e12a07046b826a40b1c8632fd7b80d6b8d7b628e" + "reference": "3057a36669ff11416cc0dc2b521b3aec58c488d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/e12a07046b826a40b1c8632fd7b80d6b8d7b628e", - "reference": "e12a07046b826a40b1c8632fd7b80d6b8d7b628e", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/3057a36669ff11416cc0dc2b521b3aec58c488d0", + "reference": "3057a36669ff11416cc0dc2b521b3aec58c488d0", "shasum": "" }, "require": { - "laravel/framework": "^11.45.2|^12.25.0", - "pestphp/pest": "^4.0.0", + "laravel/framework": "^11.45.2|^12.52.0|^13.0", + "pestphp/pest": "^4.4.1", "php": "^8.3.0" }, "require-dev": { - "laravel/dusk": "^8.3.3", - "orchestra/testbench": "^9.13.0|^10.5.0", - "pestphp/pest-dev-tools": "^4.0.0" + "laravel/dusk": "^8.3.6", + "orchestra/testbench": "^9.13.0|^10.9.0|^11.0", + "pestphp/pest-dev-tools": "^4.1.0" }, "type": "library", "extra": { @@ -12671,7 +12970,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v4.0.0" + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v4.1.0" }, "funding": [ { @@ -12683,7 +12982,7 @@ "type": "github" } ], - "time": "2025-08-20T12:46:37+00:00" + "time": "2026-02-21T00:29:45+00:00" }, { "name": "pestphp/pest-plugin-mutate", @@ -12990,16 +13289,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.6", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8" + "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/5cee1d3dfc2d2aa6599834520911d246f656bcb8", - "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/7bae67520aa9f5ecc506d646810bd40d9da54582", + "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582", "shasum": "" }, "require": { @@ -13007,8 +13306,8 @@ "ext-filter": "*", "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", + "phpdocumentor/type-resolver": "^2.0", + "phpstan/phpdoc-parser": "^2.0", "webmozart/assert": "^1.9.1 || ^2" }, "require-dev": { @@ -13018,7 +13317,8 @@ "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-webmozart-assert": "^1.2", "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" + "psalm/phar": "^5.26", + "shipmonk/dead-code-detector": "^0.5.1" }, "type": "library", "extra": { @@ -13048,44 +13348,44 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.6" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.3" }, - "time": "2025-12-22T21:13:58+00:00" + "time": "2026-03-18T20:49:53+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.12.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/327a05bbee54120d4786a0dc67aad30226ad4cf9", + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" + "phpstan/phpdoc-parser": "^2.0" }, "require-dev": { "ext-tokenizer": "*", "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" + "psalm/phar": "^4" }, "type": "library", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-1.x": "1.x-dev", + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -13106,9 +13406,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/2.0.0" }, - "time": "2025-11-21T15:09:14+00:00" + "time": "2026-01-06T21:53:42+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -13159,16 +13459,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "12.5.2", + "version": "12.5.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b" + "reference": "876099a072646c7745f673d7aeab5382c4439691" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4a9739b51cbcb355f6e95659612f92e282a7077b", - "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/876099a072646c7745f673d7aeab5382c4439691", + "reference": "876099a072646c7745f673d7aeab5382c4439691", "shasum": "" }, "require": { @@ -13177,7 +13477,6 @@ "ext-xmlwriter": "*", "nikic/php-parser": "^5.7.0", "php": ">=8.3", - "phpunit/php-file-iterator": "^6.0", "phpunit/php-text-template": "^5.0", "sebastian/complexity": "^5.0", "sebastian/environment": "^8.0.3", @@ -13224,7 +13523,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.2" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.6" }, "funding": [ { @@ -13244,20 +13543,20 @@ "type": "tidelift" } ], - "time": "2025-12-24T07:03:04+00:00" + "time": "2026-04-15T08:23:17+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "6.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "961bc913d42fe24a257bfff826a5068079ac7782" + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/961bc913d42fe24a257bfff826a5068079ac7782", - "reference": "961bc913d42fe24a257bfff826a5068079ac7782", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", + "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", "shasum": "" }, "require": { @@ -13297,15 +13596,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" } ], - "time": "2025-02-07T04:58:37+00:00" + "time": "2026-02-02T14:04:18+00:00" }, { "name": "phpunit/php-invoker", @@ -13493,16 +13804,16 @@ }, { "name": "phpunit/phpunit", - "version": "12.5.4", + "version": "12.5.23", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4ba0e923f9d3fc655de22f9547c01d15a41fc93a" + "reference": "c54fcf3d6bcb6e96ac2f7e40097dc37b5f139969" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4ba0e923f9d3fc655de22f9547c01d15a41fc93a", - "reference": "4ba0e923f9d3fc655de22f9547c01d15a41fc93a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c54fcf3d6bcb6e96ac2f7e40097dc37b5f139969", + "reference": "c54fcf3d6bcb6e96ac2f7e40097dc37b5f139969", "shasum": "" }, "require": { @@ -13516,18 +13827,19 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.3", - "phpunit/php-code-coverage": "^12.5.1", - "phpunit/php-file-iterator": "^6.0.0", + "phpunit/php-code-coverage": "^12.5.6", + "phpunit/php-file-iterator": "^6.0.1", "phpunit/php-invoker": "^6.0.0", "phpunit/php-text-template": "^5.0.0", "phpunit/php-timer": "^8.0.0", "sebastian/cli-parser": "^4.2.0", - "sebastian/comparator": "^7.1.3", + "sebastian/comparator": "^7.1.6", "sebastian/diff": "^7.0.0", - "sebastian/environment": "^8.0.3", + "sebastian/environment": "^8.1.0", "sebastian/exporter": "^7.0.2", "sebastian/global-state": "^8.0.2", "sebastian/object-enumerator": "^7.0.0", + "sebastian/recursion-context": "^7.0.1", "sebastian/type": "^6.0.3", "sebastian/version": "^6.0.0", "staabm/side-effects-detector": "^1.0.5" @@ -13570,31 +13882,15 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.4" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.23" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" + "url": "https://phpunit.de/sponsoring.html", + "type": "other" } ], - "time": "2025-12-15T06:05:34+00:00" + "time": "2026-04-18T06:12:49+00:00" }, { "name": "sebastian/cli-parser", @@ -13667,16 +13963,16 @@ }, { "name": "sebastian/comparator", - "version": "7.1.4", + "version": "7.1.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6" + "reference": "c769009dee98f494e0edc3fd4f4087501688f11e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6", - "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/c769009dee98f494e0edc3fd4f4087501688f11e", + "reference": "c769009dee98f494e0edc3fd4f4087501688f11e", "shasum": "" }, "require": { @@ -13735,7 +14031,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.4" + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.6" }, "funding": [ { @@ -13755,7 +14051,7 @@ "type": "tidelift" } ], - "time": "2026-01-24T09:28:48+00:00" + "time": "2026-04-14T08:23:15+00:00" }, { "name": "sebastian/complexity", @@ -13884,16 +14180,16 @@ }, { "name": "sebastian/environment", - "version": "8.0.3", + "version": "8.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68" + "reference": "b121608b28a13f721e76ffbbd386d08eff58f3f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68", - "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/b121608b28a13f721e76ffbbd386d08eff58f3f6", + "reference": "b121608b28a13f721e76ffbbd386d08eff58f3f6", "shasum": "" }, "require": { @@ -13908,7 +14204,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "8.0-dev" + "dev-main": "8.1-dev" } }, "autoload": { @@ -13936,7 +14232,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3" + "source": "https://github.com/sebastianbergmann/environment/tree/8.1.0" }, "funding": [ { @@ -13956,7 +14252,7 @@ "type": "tidelift" } ], - "time": "2025-08-12T14:11:56+00:00" + "time": "2026-04-15T12:13:01+00:00" }, { "name": "sebastian/exporter", @@ -14545,98 +14841,18 @@ ], "time": "2024-10-20T05:08:20+00:00" }, - { - "name": "symfony/polyfill-php81", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, { "name": "symfony/yaml", - "version": "v7.4.1", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "24dd4de28d2e3988b311751ac49e684d783e2345" + "reference": "c58fdf7b3d6c2995368264c49e4e8b05bcff2883" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345", - "reference": "24dd4de28d2e3988b311751ac49e684d783e2345", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c58fdf7b3d6c2995368264c49e4e8b05bcff2883", + "reference": "c58fdf7b3d6c2995368264c49e4e8b05bcff2883", "shasum": "" }, "require": { @@ -14679,7 +14895,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.1" + "source": "https://github.com/symfony/yaml/tree/v7.4.8" }, "funding": [ { @@ -14699,28 +14915,28 @@ "type": "tidelift" } ], - "time": "2025-12-04T18:11:45+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", - "version": "0.8.5", + "version": "0.8.7", "source": { "type": "git", "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", - "reference": "cf6fb197b676ba716837c886baca842e4db29005" + "reference": "1248f3f506ca9641d4f68cebcd538fa489754db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/cf6fb197b676ba716837c886baca842e4db29005", - "reference": "cf6fb197b676ba716837c886baca842e4db29005", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/1248f3f506ca9641d4f68cebcd538fa489754db8", + "reference": "1248f3f506ca9641d4f68cebcd538fa489754db8", "shasum": "" }, "require": { "nikic/php-parser": "^4.18.0 || ^5.0.0", "php": "^8.1.0", - "phpdocumentor/reflection-docblock": "^5.3.0", - "phpunit/phpunit": "^10.5.5 || ^11.0.0 || ^12.0.0", - "symfony/finder": "^6.4.0 || ^7.0.0" + "phpdocumentor/reflection-docblock": "^5.3.0 || ^6.0.0", + "phpunit/phpunit": "^10.5.5 || ^11.0.0 || ^12.0.0 || ^13.0.0", + "symfony/finder": "^6.4.0 || ^7.0.0 || ^8.0.0" }, "require-dev": { "laravel/pint": "^1.13.7", @@ -14756,9 +14972,9 @@ ], "support": { "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", - "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.5" + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.7" }, - "time": "2025-04-20T20:23:40+00:00" + "time": "2026-02-17T17:25:14+00:00" }, { "name": "theseer/tokenizer", @@ -14812,16 +15028,16 @@ }, { "name": "webmozart/assert", - "version": "2.1.2", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649" + "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/ce6a2f100c404b2d32a1dd1270f9b59ad4f57649", - "reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/eb0d790f735ba6cff25c683a85a1da0eadeff9e4", + "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4", "shasum": "" }, "require": { @@ -14868,9 +15084,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.1.2" + "source": "https://github.com/webmozarts/assert/tree/2.3.0" }, - "time": "2026-01-13T14:02:24+00:00" + "time": "2026-04-11T10:33:05+00:00" } ], "aliases": [], diff --git a/database/factories/BitcoinEventFactory.php b/database/factories/BitcoinEventFactory.php new file mode 100644 index 0000000..6564d1b --- /dev/null +++ b/database/factories/BitcoinEventFactory.php @@ -0,0 +1,42 @@ + + */ +class BitcoinEventFactory extends Factory +{ + protected $model = BitcoinEvent::class; + + public function definition(): array + { + $from = fake()->dateTimeBetween('+1 week', '+6 months'); + $to = (clone $from)->modify('+1 day'); + + return [ + 'venue_id' => Venue::factory(), + 'from' => $from, + 'to' => $to, + 'title' => fake()->randomElement([ + 'Bitcoin Conference', + 'Lightning Summit', + 'Nostrasia', + 'Bitcoin Park Meetup', + 'Sound Money Symposium', + 'Plan B Forum', + ]).' '.$from->format('Y'), + 'description' => fake()->paragraphs(2, true), + 'link' => fake()->url(), + 'show_worldwide' => fake()->boolean(15), + 'nostr_status' => NostrHelper::fakeNostrEventStatus(), + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/BookCaseFactory.php b/database/factories/BookCaseFactory.php new file mode 100644 index 0000000..4e5cabb --- /dev/null +++ b/database/factories/BookCaseFactory.php @@ -0,0 +1,37 @@ + + */ +class BookCaseFactory extends Factory +{ + protected $model = BookCase::class; + + public function definition(): array + { + return [ + 'title' => 'Bitcoin Bücherregal '.fake()->unique()->numberBetween(1, 99999), + 'latitude' => fake()->latitude(47.0, 55.0), + 'longitude' => fake()->longitude(5.0, 16.0), + 'address' => fake()->streetAddress().', '.fake()->postcode().' '.fake()->city(), + 'type' => fake()->randomElement(['public', 'private']), + 'open' => fake()->randomElement(['24/7', 'Mo-Fr 09:00-18:00', 'Wochenenden', null]), + 'comment' => fake()->boolean(60) ? fake()->sentence() : null, + 'contact' => fake()->boolean(50) ? fake()->email() : null, + 'bcz' => null, + 'digital' => fake()->boolean(20), + 'icontype' => 'default', + 'deactivated' => false, + 'deactreason' => '', + 'entrytype' => fake()->randomElement(['public', 'private']), + 'homepage' => fake()->boolean(40) ? fake()->url() : null, + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/CategoryFactory.php b/database/factories/CategoryFactory.php new file mode 100644 index 0000000..a30ae4f --- /dev/null +++ b/database/factories/CategoryFactory.php @@ -0,0 +1,25 @@ + + */ +class CategoryFactory extends Factory +{ + protected $model = Category::class; + + public function definition(): array + { + $name = ucfirst(fake()->unique()->word()).' '.fake()->unique()->numberBetween(1, 9999); + + return [ + 'name' => $name, + 'slug' => Str::slug($name), + ]; + } +} diff --git a/database/factories/CityFactory.php b/database/factories/CityFactory.php index d1e00f3..f628697 100644 --- a/database/factories/CityFactory.php +++ b/database/factories/CityFactory.php @@ -2,26 +2,78 @@ namespace Database\Factories; +use App\Models\City; +use App\Models\Country; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Support\Str; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\City> + * @extends Factory */ class CityFactory extends Factory { + protected $model = City::class; + /** - * Define the model's default state. - * - * @return array + * @var array> */ + private static array $citiesByCode = [ + 'DE' => [ + ['name' => 'Berlin', 'lat' => 52.5200, 'lon' => 13.4050], + ['name' => 'München', 'lat' => 48.1351, 'lon' => 11.5820], + ['name' => 'Hamburg', 'lat' => 53.5511, 'lon' => 9.9937], + ['name' => 'Köln', 'lat' => 50.9375, 'lon' => 6.9603], + ['name' => 'Frankfurt', 'lat' => 50.1109, 'lon' => 8.6821], + ['name' => 'Leipzig', 'lat' => 51.3397, 'lon' => 12.3731], + ['name' => 'Dresden', 'lat' => 51.0504, 'lon' => 13.7373], + ['name' => 'Stuttgart', 'lat' => 48.7758, 'lon' => 9.1829], + ], + 'AT' => [ + ['name' => 'Wien', 'lat' => 48.2082, 'lon' => 16.3738], + ['name' => 'Graz', 'lat' => 47.0707, 'lon' => 15.4395], + ['name' => 'Innsbruck', 'lat' => 47.2692, 'lon' => 11.4041], + ['name' => 'Salzburg', 'lat' => 47.8095, 'lon' => 13.0550], + ], + 'CH' => [ + ['name' => 'Zürich', 'lat' => 47.3769, 'lon' => 8.5417], + ['name' => 'Bern', 'lat' => 46.9480, 'lon' => 7.4474], + ['name' => 'Genf', 'lat' => 46.2044, 'lon' => 6.1432], + ], + 'US' => [ + ['name' => 'New York', 'lat' => 40.7128, 'lon' => -74.0060], + ['name' => 'Austin', 'lat' => 30.2672, 'lon' => -97.7431], + ['name' => 'Miami', 'lat' => 25.7617, 'lon' => -80.1918], + ], + ]; + public function definition(): array { + $name = fake()->unique()->city(); + return [ - 'name' => fake()->city(), - 'country_id' => 1, + 'country_id' => Country::factory(), + 'name' => $name, + 'slug' => Str::slug($name).'-'.fake()->unique()->numberBetween(1000, 99999), 'longitude' => fake()->longitude(), 'latitude' => fake()->latitude(), - 'created_by' => \App\Models\User::factory(), + 'osm_relation' => null, + 'simplified_geojson' => null, + 'population' => fake()->numberBetween(10000, 5000000), + 'population_date' => fake()->date(), + 'created_by' => User::factory(), ]; } + + public function inGermany(): static + { + $city = collect(self::$citiesByCode['DE'])->random(); + + return $this->state(fn (array $attrs) => [ + 'name' => $city['name'], + 'slug' => Str::slug($city['name']).'-de-'.fake()->unique()->numberBetween(1000, 99999), + 'latitude' => $city['lat'], + 'longitude' => $city['lon'], + ]); + } } diff --git a/database/factories/CountryFactory.php b/database/factories/CountryFactory.php index 24ce59c..5e3e29c 100644 --- a/database/factories/CountryFactory.php +++ b/database/factories/CountryFactory.php @@ -2,24 +2,41 @@ namespace Database\Factories; +use App\Models\Country; use Illuminate\Database\Eloquent\Factories\Factory; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Country> + * @extends Factory */ class CountryFactory extends Factory { + protected $model = Country::class; + /** - * Define the model's default state. - * - * @return array + * @var array> */ + private static array $countries = [ + ['name' => 'Deutschland', 'english_name' => 'Germany', 'code' => 'DE', 'language_codes' => ['de'], 'longitude' => 10.4515, 'latitude' => 51.1657], + ['name' => 'Österreich', 'english_name' => 'Austria', 'code' => 'AT', 'language_codes' => ['de'], 'longitude' => 14.5501, 'latitude' => 47.5162], + ['name' => 'Schweiz', 'english_name' => 'Switzerland', 'code' => 'CH', 'language_codes' => ['de', 'fr', 'it'], 'longitude' => 8.2275, 'latitude' => 46.8182], + ['name' => 'Vereinigte Staaten', 'english_name' => 'United States', 'code' => 'US', 'language_codes' => ['en'], 'longitude' => -95.7129, 'latitude' => 37.0902], + ['name' => 'Spanien', 'english_name' => 'Spain', 'code' => 'ES', 'language_codes' => ['es'], 'longitude' => -3.7492, 'latitude' => 40.4637], + ['name' => 'Frankreich', 'english_name' => 'France', 'code' => 'FR', 'language_codes' => ['fr'], 'longitude' => 2.2137, 'latitude' => 46.2276], + ['name' => 'Vereinigtes Königreich', 'english_name' => 'United Kingdom', 'code' => 'GB', 'language_codes' => ['en'], 'longitude' => -3.4360, 'latitude' => 55.3781], + ['name' => 'Niederlande', 'english_name' => 'Netherlands', 'code' => 'NL', 'language_codes' => ['nl'], 'longitude' => 5.2913, 'latitude' => 52.1326], + ]; + public function definition(): array { + $country = self::$countries[$this->faker->unique()->numberBetween(0, count(self::$countries) - 1)]; + return [ - 'name' => fake()->country(), - 'code' => fake()->countryCode(), - 'language_codes' => ['en'], + 'name' => $country['name'], + 'english_name' => $country['english_name'], + 'code' => $country['code'], + 'language_codes' => $country['language_codes'], + 'longitude' => $country['longitude'], + 'latitude' => $country['latitude'], ]; } } diff --git a/database/factories/CourseEventFactory.php b/database/factories/CourseEventFactory.php new file mode 100644 index 0000000..757fc95 --- /dev/null +++ b/database/factories/CourseEventFactory.php @@ -0,0 +1,34 @@ + + */ +class CourseEventFactory extends Factory +{ + protected $model = CourseEvent::class; + + public function definition(): array + { + $from = fake()->dateTimeBetween('+1 day', '+3 months'); + $to = (clone $from)->modify('+2 hours'); + + return [ + 'course_id' => Course::factory(), + 'venue_id' => Venue::factory(), + 'from' => $from, + 'to' => $to, + 'link' => 'https://einundzwanzig.space/courses/'.fake()->slug(), + 'nostr_status' => NostrHelper::fakeNostrEventStatus(), + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/CourseFactory.php b/database/factories/CourseFactory.php new file mode 100644 index 0000000..fba76eb --- /dev/null +++ b/database/factories/CourseFactory.php @@ -0,0 +1,37 @@ + + */ +class CourseFactory extends Factory +{ + protected $model = Course::class; + + public function definition(): array + { + return [ + 'lecturer_id' => Lecturer::factory(), + 'name' => fake()->randomElement([ + 'Bitcoin Basics', + 'Lightning Network Workshop', + 'Self Custody Mastery', + 'Hardware Wallet Setup', + 'Nostr für Anfänger', + 'Sound Money & Austrian Economics', + 'Bitcoin Mining 101', + 'Privacy & Coinjoin', + ]).' #'.fake()->unique()->numberBetween(1, 99999), + 'description' => fake()->paragraphs(2, true), + 'nostr_status' => NostrHelper::fakeNostrEventStatus(), + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/EmailCampaignFactory.php b/database/factories/EmailCampaignFactory.php new file mode 100644 index 0000000..ed90899 --- /dev/null +++ b/database/factories/EmailCampaignFactory.php @@ -0,0 +1,24 @@ + + */ +class EmailCampaignFactory extends Factory +{ + protected $model = EmailCampaign::class; + + public function definition(): array + { + return [ + 'name' => 'Bitcoin Newsletter '.fake()->unique()->numberBetween(1, 9999), + 'list_file_name' => 'list_'.fake()->unique()->slug(2).'.csv', + 'subject_prompt' => 'Schreibe einen ansprechenden Betreff über Bitcoin und Sound Money.', + 'text_prompt' => 'Verfasse einen freundlichen Newsletter über die neuesten Bitcoin-Entwicklungen.', + ]; + } +} diff --git a/database/factories/EmailTextsFactory.php b/database/factories/EmailTextsFactory.php new file mode 100644 index 0000000..b3a1688 --- /dev/null +++ b/database/factories/EmailTextsFactory.php @@ -0,0 +1,25 @@ + + */ +class EmailTextsFactory extends Factory +{ + protected $model = EmailTexts::class; + + public function definition(): array + { + return [ + 'email_campaign_id' => EmailCampaign::factory(), + 'sender_md5' => md5(fake()->unique()->safeEmail()), + 'subject' => fake()->sentence(), + 'text' => fake()->paragraphs(3, true), + ]; + } +} diff --git a/database/factories/EpisodeFactory.php b/database/factories/EpisodeFactory.php new file mode 100644 index 0000000..930bb54 --- /dev/null +++ b/database/factories/EpisodeFactory.php @@ -0,0 +1,36 @@ + + */ +class EpisodeFactory extends Factory +{ + protected $model = Episode::class; + + public function definition(): array + { + return [ + 'guid' => (string) Str::uuid(), + 'podcast_id' => Podcast::factory(), + 'data' => json_encode([ + 'title' => 'Folge '.fake()->numberBetween(1, 999).': '.fake()->sentence(4), + 'description' => fake()->paragraph(), + 'pubDate' => fake()->dateTimeBetween('-1 year', 'now')->format(DATE_RFC2822), + 'duration' => fake()->numberBetween(900, 7200), + 'enclosure' => [ + 'url' => 'https://media.einundzwanzig.space/'.Str::random(16).'.mp3', + 'type' => 'audio/mpeg', + ], + ]), + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/Helpers/NostrHelper.php b/database/factories/Helpers/NostrHelper.php new file mode 100644 index 0000000..fc16871 --- /dev/null +++ b/database/factories/Helpers/NostrHelper.php @@ -0,0 +1,96 @@ + + */ + public static function realNpubs(): array + { + return [ + 'npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m', // jack + 'npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s', // saylor + 'npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx', // odell + 'npub1u8lnhlw5usp3t9vmpz60ejpyt649z33hu82wc2hpv6m5xdqmuxhs46turz', // gigi + 'npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8', // marty bent + 'npub1a2cww4kn9wqte4ry70vyfwqyqvpswksna27rtxd8vty6c74era8sdcw83a', // lyn alden + 'npub1a3hrd4wfawu0pkvm2nrqapcwjfa7gh23ymp7uksdg6flnv7c4ehq6dpcyu', // dergigi + 'npub1ev0eu6cy4dt5rrrju3xz77f8ww26pcnaty3xq5tlh2eheahuzxpsd2zrqp', // pleb + 'npub1mj8mcsdj3lp3xyamr0pwfwsnumv4w3z4yqfg8wpcrk6lqkx6n7ksz0n5z3', // gpt-3 + 'npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft', // ODELL + 'npub10ghxwy0z9wq75e5ehl5xsymq5d28etr96ya5j6vz76m9z3l9j2sqphr8wm', // Hodl Hodl + 'npub16dhgpql60vmd4mnydjut87vla23a38j689jssaqlqqlzrtqtd0kqex4nf2', // Bitcoin Mechanic + 'npub1xy54p83r6wnpyhs52xjeztd7qyyeu9ghymz8v66yu8kt3jzx75rs2qvz8x', // Tomer + 'npub1nstrcu63lzpjkz94djajuz2evrgu2psd66cwgc0gz0c0qazezx0q9urg5l', // tooner + 'npub1zk6u7mxlflguqteghn8q7xtu47hyerruv6379c3z9w8s7ywqq02qrh40nr', // amboss + 'npub16f3y4ej62vca7s0wlf0kpzjn7zwx48xg6n4hph5e8mr8u9qrjnxstxn5lr', // dazbea + 'npub1xkym0yhu9hgwes2vchden6etqkrt5pja5l7w0ywqp7042at8638stslfsr', // dergigi + 'npub1y3yzfnkvkkdtv9j83fz9zk8jrxun7nzc8h3rnnwmnmlnxfdpqyxs9hu03l', // bitcoinmechanic + 'npub1u85ksjsrjsezndvr0vqnrr98c7l68k73stfp02n9d4lpr8t3ya3qz92sf2', // jack mallers + 'npub1nytmln3wdhzaa7y9zk83w6js5ydp4z2nm8r4vsewlmcrlnktwwzs7l40v0', // proof of work + ]; + } + + /** + * @return array + */ + public static function realLightningAddresses(): array + { + return [ + 'gigi@walletofsatoshi.com', + 'tony@strike.me', + 'jack@cash.app', + 'odell@getalby.com', + 'marty@walletofsatoshi.com', + 'lyn@strike.me', + 'pleb@getalby.com', + 'satoshi@nakamoto.btc', + 'darth@walletofsatoshi.com', + 'orange@getalby.com', + ]; + } + + public static function randomNpub(): string + { + if (random_int(1, 100) <= 70) { + return self::realNpubs()[array_rand(self::realNpubs())]; + } + + return 'npub1'.Str::random(58); + } + + public static function randomLightningAddress(?string $username = null): string + { + if ($username !== null) { + $domain = collect(['getalby.com', 'walletofsatoshi.com', 'strike.me', 'lnbits.io', 'coincorner.io'])->random(); + + return Str::slug($username).'@'.$domain; + } + + return self::realLightningAddresses()[array_rand(self::realLightningAddresses())]; + } + + public static function fakeNostrEventStatus(): ?string + { + if (random_int(1, 100) <= 90) { + return null; + } + + $relays = ['wss://relay.damus.io', 'wss://nos.lol', 'wss://relay.nostr.band', 'wss://nostr.wine']; + $eventId = bin2hex(random_bytes(32)); + + return 'Sent event '.substr($eventId, 0, 16).'... to '.collect($relays)->random(); + } + + /** + * Generate a hex pubkey (64 chars) used in Nostr filters. + */ + public static function randomHexPubkey(): string + { + return bin2hex(random_bytes(32)); + } +} diff --git a/database/factories/HighscoreFactory.php b/database/factories/HighscoreFactory.php index ca7b28b..956ad6b 100644 --- a/database/factories/HighscoreFactory.php +++ b/database/factories/HighscoreFactory.php @@ -2,22 +2,21 @@ namespace Database\Factories; +use App\Models\Highscore; +use Database\Factories\Helpers\NostrHelper; use Illuminate\Database\Eloquent\Factories\Factory; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Highscore> + * @extends Factory */ class HighscoreFactory extends Factory { - /** - * Define the model's default state. - * - * @return array - */ + protected $model = Highscore::class; + public function definition(): array { return [ - 'npub' => 'npub1'.fake()->regexify('[a-z0-9]{20}'), + 'npub' => NostrHelper::randomNpub(), 'name' => fake()->name(), 'satoshis' => fake()->numberBetween(0, 100000), 'blocks' => fake()->numberBetween(0, 1000), diff --git a/database/factories/LecturerFactory.php b/database/factories/LecturerFactory.php new file mode 100644 index 0000000..86de2f5 --- /dev/null +++ b/database/factories/LecturerFactory.php @@ -0,0 +1,39 @@ + + */ +class LecturerFactory extends Factory +{ + protected $model = Lecturer::class; + + public function definition(): array + { + $firstName = fake()->firstName(); + $lastName = fake()->lastName(); + $name = $firstName.' '.$lastName.' '.fake()->unique()->numberBetween(1, 99999); + + return [ + 'name' => $name, + 'active' => true, + 'description' => fake()->paragraphs(2, true), + 'subtitle' => 'Bitcoin-Pädagoge & Autor', + 'intro' => fake()->paragraph(), + 'twitter_username' => '@'.fake()->userName(), + 'website' => 'https://'.fake()->domainName(), + 'lightning_address' => NostrHelper::randomLightningAddress($firstName), + 'lnurl' => null, + 'node_id' => null, + 'nostr' => NostrHelper::randomNpub(), + 'paynym' => null, + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/LibraryFactory.php b/database/factories/LibraryFactory.php new file mode 100644 index 0000000..2bf9325 --- /dev/null +++ b/database/factories/LibraryFactory.php @@ -0,0 +1,33 @@ + + */ +class LibraryFactory extends Factory +{ + protected $model = Library::class; + + public function definition(): array + { + return [ + 'name' => fake()->unique()->randomElement([ + 'Bitcoin Standard Library', + 'Lightning Network Resources', + 'Nostr Knowledge Base', + 'Self Custody Guides', + 'Sound Money Classics', + 'Cypherpunk Archive', + ]).' '.fake()->unique()->numberBetween(1, 9999), + 'is_public' => true, + 'language_codes' => ['en', 'de'], + 'parent_id' => null, + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/LibraryItemFactory.php b/database/factories/LibraryItemFactory.php new file mode 100644 index 0000000..6ad6320 --- /dev/null +++ b/database/factories/LibraryItemFactory.php @@ -0,0 +1,61 @@ + + */ +class LibraryItemFactory extends Factory +{ + protected $model = LibraryItem::class; + + public function definition(): array + { + $name = fake()->randomElement([ + 'Was ist Bitcoin?', + 'How Lightning Works', + 'Self Custody erklärt', + 'Nostr Protocol Deep Dive', + 'Hyperbitcoinization Thesis', + 'Sound Money Principles', + 'Privacy on Bitcoin', + 'Mining Economics', + ]).' #'.fake()->unique()->numberBetween(1, 99999); + + return [ + 'lecturer_id' => Lecturer::factory(), + 'episode_id' => null, + 'order_column' => fake()->unique()->numberBetween(1, 1_000_000), + 'name' => $name, + 'type' => fake()->randomElement(['article', 'video', 'podcast_episode', 'pdf']), + 'language_code' => fake()->randomElement(['en', 'de']), + 'value' => "# {$name}\n\n".fake()->paragraphs(3, true), + 'subtitle' => fake()->sentence(), + 'excerpt' => fake()->paragraph(), + 'main_image_caption' => null, + 'read_time' => fake()->numberBetween(2, 30).' min', + 'approved' => true, + 'news' => fake()->boolean(20), + 'tweet' => false, + 'nostr_status' => NostrHelper::fakeNostrEventStatus(), + 'value_to_be_paid' => null, + 'sats' => fake()->boolean(15) ? fake()->numberBetween(100, 21000) : null, + 'created_by' => User::factory(), + ]; + } + + public function withEpisode(): static + { + return $this->state(fn () => [ + 'episode_id' => Episode::factory(), + 'type' => 'podcast_episode', + ]); + } +} diff --git a/database/factories/MeetupEventFactory.php b/database/factories/MeetupEventFactory.php index 85401ee..a685b99 100644 --- a/database/factories/MeetupEventFactory.php +++ b/database/factories/MeetupEventFactory.php @@ -2,29 +2,37 @@ namespace Database\Factories; +use App\Enums\RecurrenceType; +use App\Models\Meetup; +use App\Models\MeetupEvent; +use App\Models\User; +use Database\Factories\Helpers\NostrHelper; use Illuminate\Database\Eloquent\Factories\Factory; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\MeetupEvent> + * @extends Factory */ class MeetupEventFactory extends Factory { - /** - * Define the model's default state. - * - * @return array - */ + protected $model = MeetupEvent::class; + public function definition(): array { return [ - 'meetup_id' => \App\Models\Meetup::factory(), - 'start' => now()->addWeek(), + 'meetup_id' => Meetup::factory(), + 'start' => now()->addDays(fake()->numberBetween(1, 60)), 'location' => fake()->address(), 'description' => fake()->paragraph(), 'link' => fake()->url(), 'attendees' => [], 'might_attendees' => [], - 'created_by' => \App\Models\User::factory(), + 'nostr_status' => NostrHelper::fakeNostrEventStatus(), + 'recurrence_type' => fake()->boolean(40) ? RecurrenceType::Monthly : null, + 'recurrence_day_of_week' => null, + 'recurrence_day_position' => null, + 'recurrence_interval' => 1, + 'recurrence_end_date' => null, + 'created_by' => User::factory(), ]; } } diff --git a/database/factories/MeetupFactory.php b/database/factories/MeetupFactory.php index f70233f..b07f682 100644 --- a/database/factories/MeetupFactory.php +++ b/database/factories/MeetupFactory.php @@ -2,27 +2,42 @@ namespace Database\Factories; +use App\Models\City; +use App\Models\Meetup; +use App\Models\User; +use Database\Factories\Helpers\NostrHelper; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Support\Str; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Meetup> + * @extends Factory */ class MeetupFactory extends Factory { - /** - * Define the model's default state. - * - * @return array - */ + protected $model = Meetup::class; + public function definition(): array { - $name = fake()->company(); + $cityName = fake()->city(); + $name = 'Bitcoin Meetup '.$cityName; return [ - 'name' => $name, - 'slug' => \Illuminate\Support\Str::slug($name), + 'city_id' => City::factory(), + 'name' => $name.' '.fake()->unique()->numberBetween(1, 99999), + 'slug' => Str::slug($name).'-'.fake()->unique()->numberBetween(1000, 99999), + 'intro' => fake()->paragraph(), + 'telegram_link' => 'https://t.me/'.Str::slug($cityName).'_btc', + 'webpage' => 'https://'.Str::slug($cityName).'.einundzwanzig.space', + 'twitter_username' => fake()->boolean(40) ? '@btc_'.Str::slug($cityName) : null, 'github_data' => [], - 'created_by' => \App\Models\User::factory(), + 'matrix_group' => null, + 'community' => fake()->boolean(80) ? 'einundzwanzig' : null, + 'visible_on_map' => true, + 'simplex' => null, + 'signal' => null, + 'nostr' => NostrHelper::randomNpub(), + 'nostr_status' => NostrHelper::fakeNostrEventStatus(), + 'created_by' => User::factory(), ]; } } diff --git a/database/factories/OrangePillFactory.php b/database/factories/OrangePillFactory.php new file mode 100644 index 0000000..ab1da7c --- /dev/null +++ b/database/factories/OrangePillFactory.php @@ -0,0 +1,29 @@ + + */ +class OrangePillFactory extends Factory +{ + protected $model = OrangePill::class; + + public function definition(): array + { + return [ + 'user_id' => User::factory(), + 'book_case_id' => BookCase::factory(), + 'date' => fake()->dateTimeBetween('-1 year', 'now'), + 'amount' => fake()->numberBetween(1, 21), + 'comment' => fake()->boolean(60) ? fake()->sentence() : null, + 'nostr_status' => NostrHelper::fakeNostrEventStatus(), + ]; + } +} diff --git a/database/factories/ParticipantFactory.php b/database/factories/ParticipantFactory.php new file mode 100644 index 0000000..b3a254c --- /dev/null +++ b/database/factories/ParticipantFactory.php @@ -0,0 +1,22 @@ + + */ +class ParticipantFactory extends Factory +{ + protected $model = Participant::class; + + public function definition(): array + { + return [ + 'first_name' => fake()->firstName(), + 'last_name' => fake()->lastName(), + ]; + } +} diff --git a/database/factories/PodcastFactory.php b/database/factories/PodcastFactory.php new file mode 100644 index 0000000..21c4f01 --- /dev/null +++ b/database/factories/PodcastFactory.php @@ -0,0 +1,35 @@ + + */ +class PodcastFactory extends Factory +{ + protected $model = Podcast::class; + + public function definition(): array + { + $name = 'Einundzwanzig Podcast '.fake()->unique()->numberBetween(1, 9999); + + return [ + 'guid' => (string) Str::uuid(), + 'locked' => true, + 'title' => $name, + 'link' => 'https://einundzwanzig.space/podcast/'.Str::slug($name), + 'language_code' => 'de', + 'data' => json_encode([ + 'description' => fake()->paragraph(), + 'author' => 'Einundzwanzig', + 'image' => null, + ]), + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/ProjectProposalFactory.php b/database/factories/ProjectProposalFactory.php new file mode 100644 index 0000000..f688a8e --- /dev/null +++ b/database/factories/ProjectProposalFactory.php @@ -0,0 +1,39 @@ + + */ +class ProjectProposalFactory extends Factory +{ + protected $model = ProjectProposal::class; + + public function definition(): array + { + $name = fake()->randomElement([ + 'Bitcoin Beginners Workshop', + 'Self Custody Tour', + 'Nostr Relay Infrastructure', + 'Lightning Educational Content', + 'Open-Source Wallet Translation', + 'Community Hardware Wallet Distribution', + 'Sound Money Documentary', + 'Plebs Education Initiative', + ]).' '.fake()->unique()->numberBetween(1, 99999); + + return [ + 'user_id' => User::factory(), + 'name' => $name, + 'slug' => Str::slug($name), + 'support_in_sats' => fake()->randomElement([21_000, 100_000, 210_000, 1_000_000, 21_000_000]), + 'description' => fake()->paragraphs(3, true), + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/RegistrationFactory.php b/database/factories/RegistrationFactory.php new file mode 100644 index 0000000..daa3149 --- /dev/null +++ b/database/factories/RegistrationFactory.php @@ -0,0 +1,25 @@ + + */ +class RegistrationFactory extends Factory +{ + protected $model = Registration::class; + + public function definition(): array + { + return [ + 'course_event_id' => CourseEvent::factory(), + 'participant_id' => Participant::factory(), + 'active' => true, + ]; + } +} diff --git a/database/factories/SelfHostedServiceFactory.php b/database/factories/SelfHostedServiceFactory.php index e63b224..d9e8cac 100644 --- a/database/factories/SelfHostedServiceFactory.php +++ b/database/factories/SelfHostedServiceFactory.php @@ -6,6 +6,7 @@ use App\Enums\SelfHostedServiceType; use App\Models\SelfHostedService; use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use Illuminate\Support\Str; /** * @extends Factory @@ -19,17 +20,26 @@ class SelfHostedServiceFactory extends Factory $name = $this->faker->unique()->company(); return [ - // 'created_by' => $this->faker->optional()->numberBetween(1,9), - 'created_by' => 750, + 'created_by' => User::factory(), 'name' => $name, - 'slug' => str($name)->slug(), - 'intro' => $this->faker->optional()->paragraph(), - 'url_clearnet' => $this->faker->optional()->url(), - 'url_onion' => $this->faker->optional()->url(), - 'url_i2p' => $this->faker->optional()->url(), - 'url_pkdns' => $this->faker->optional()->url(), + 'slug' => Str::slug($name).'-'.$this->faker->unique()->numberBetween(1000, 99999), + 'intro' => $this->faker->paragraph(), + 'url_clearnet' => $this->faker->boolean(80) ? $this->faker->url() : null, + 'url_onion' => $this->faker->boolean(20) ? Str::random(56).'.onion' : null, + 'url_i2p' => null, + 'url_pkdns' => null, 'type' => $this->faker->randomElement(SelfHostedServiceType::cases())->value, - 'contact' => $this->faker->optional()->url(), + 'contact' => $this->faker->boolean(60) ? $this->faker->email() : null, + 'ip' => $this->faker->boolean(50) ? $this->faker->ipv4() : null, + 'anon' => false, ]; } + + public function anonymous(): static + { + return $this->state(fn () => [ + 'anon' => true, + 'created_by' => null, + ]); + } } diff --git a/database/factories/TagFactory.php b/database/factories/TagFactory.php new file mode 100644 index 0000000..a62b902 --- /dev/null +++ b/database/factories/TagFactory.php @@ -0,0 +1,29 @@ + + */ +class TagFactory extends Factory +{ + protected $model = Tag::class; + + public function definition(): array + { + $name = fake()->unique()->word().'-'.fake()->unique()->numberBetween(1, 9999); + $slug = Str::slug($name); + + return [ + 'name' => json_encode(['en' => $name, 'de' => $name]), + 'slug' => json_encode(['en' => $slug, 'de' => $slug]), + 'type' => fake()->randomElement(['topic', 'category', null]), + 'order_column' => null, + 'icon' => 'tag', + ]; + } +} diff --git a/database/factories/TwitterAccountFactory.php b/database/factories/TwitterAccountFactory.php new file mode 100644 index 0000000..00e47f0 --- /dev/null +++ b/database/factories/TwitterAccountFactory.php @@ -0,0 +1,27 @@ + + */ +class TwitterAccountFactory extends Factory +{ + protected $model = TwitterAccount::class; + + public function definition(): array + { + return [ + 'twitter_id' => (string) fake()->unique()->numberBetween(100000, 999999999), + 'nickname' => fake()->unique()->userName(), + 'token' => Str::random(40), + 'expires_in' => 7200, + 'data' => json_encode(['scope' => ['tweet.read', 'tweet.write', 'users.read']]), + 'refresh_token' => Str::random(40), + ]; + } +} diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 584104c..772d526 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,43 +2,68 @@ namespace Database\Factories; +use App\Models\User; +use Database\Factories\Helpers\NostrHelper; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User> + * @extends Factory */ class UserFactory extends Factory { - /** - * The current password being used by the factory. - */ protected static ?string $password; /** - * Define the model's default state. - * * @return array */ public function definition(): array { + $name = fake()->firstName().' '.fake()->lastName(); + return [ - 'name' => fake()->name(), + 'name' => $name, 'email' => fake()->unique()->safeEmail(), 'email_verified_at' => now(), 'password' => static::$password ??= Hash::make('password'), 'remember_token' => Str::random(10), + 'reputation' => fake()->numberBetween(0, 1000), + 'current_language' => fake()->randomElement(['de', 'en']), + 'timezone' => 'Europe/Berlin', + 'is_lecturer' => fake()->boolean(20), + 'nostr' => fake()->boolean(70) ? NostrHelper::randomNpub() : null, + 'lightning_address' => fake()->boolean(40) ? NostrHelper::randomLightningAddress($name) : null, + 'lnurl' => null, + 'node_id' => null, + 'paynym' => null, + 'lnbits' => null, + 'public_key' => null, + 'change' => null, + 'change_time' => null, + 'profile_photo_path' => null, ]; } - /** - * Indicate that the model's email address should be unverified. - */ public function unverified(): static { return $this->state(fn (array $attributes) => [ 'email_verified_at' => null, ]); } + + public function lecturer(): static + { + return $this->state(fn (array $attributes) => [ + 'is_lecturer' => true, + ]); + } + + public function withNostr(): static + { + return $this->state(fn (array $attributes) => [ + 'nostr' => NostrHelper::randomNpub(), + 'lightning_address' => NostrHelper::randomLightningAddress($attributes['name'] ?? null), + ]); + } } diff --git a/database/factories/VenueFactory.php b/database/factories/VenueFactory.php new file mode 100644 index 0000000..b5ff8ba --- /dev/null +++ b/database/factories/VenueFactory.php @@ -0,0 +1,30 @@ + + */ +class VenueFactory extends Factory +{ + protected $model = Venue::class; + + public function definition(): array + { + $name = fake()->randomElement(['Bitcoin Café', 'Sound Money Lounge', 'Hodl Hodl Bar', 'The Orange Pill', 'Satoshi\'s Place']).' '.fake()->unique()->numberBetween(1, 99999); + + return [ + 'city_id' => City::factory(), + 'name' => $name, + 'slug' => Str::slug($name), + 'street' => fake()->streetAddress(), + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/factories/VoteFactory.php b/database/factories/VoteFactory.php new file mode 100644 index 0000000..9832d3d --- /dev/null +++ b/database/factories/VoteFactory.php @@ -0,0 +1,27 @@ + + */ +class VoteFactory extends Factory +{ + protected $model = Vote::class; + + public function definition(): array + { + return [ + 'user_id' => User::factory(), + 'project_proposal_id' => ProjectProposal::factory(), + 'value' => fake()->randomElement([0, 1]), + 'reason' => fake()->boolean(40) ? fake()->sentence() : null, + 'created_by' => User::factory(), + ]; + } +} diff --git a/database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php b/database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php index b1be83a..bd0d206 100644 --- a/database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php +++ b/database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php @@ -2,29 +2,28 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration { - /** - * Run the migrations. - */ public function up(): void { - Schema::table('lecturers', function (Blueprint $table) { - $table->longText('description') - ->fulltext() - ->nullable(); + $supportsFulltext = in_array(DB::getDriverName(), ['mysql', 'pgsql'], true); + + Schema::table('lecturers', function (Blueprint $table) use ($supportsFulltext) { + $column = $table->longText('description')->nullable(); + + if ($supportsFulltext) { + $column->fulltext(); + } }); } - /** - * Reverse the migrations. - */ public function down(): void { Schema::table('lecturers', function (Blueprint $table) { - // + $table->dropColumn('description'); }); } }; diff --git a/database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php b/database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php index c27c1fc..3968fd0 100644 --- a/database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php +++ b/database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php @@ -2,29 +2,28 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration { - /** - * Run the migrations. - */ public function up(): void { - Schema::table('courses', function (Blueprint $table) { - $table->longText('description') - ->fulltext() - ->nullable(); + $supportsFulltext = in_array(DB::getDriverName(), ['mysql', 'pgsql'], true); + + Schema::table('courses', function (Blueprint $table) use ($supportsFulltext) { + $column = $table->longText('description')->nullable(); + + if ($supportsFulltext) { + $column->fulltext(); + } }); } - /** - * Reverse the migrations. - */ public function down(): void { Schema::table('courses', function (Blueprint $table) { - // + $table->dropColumn('description'); }); } }; diff --git a/database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php b/database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php index 2f75b7d..a3e7951 100644 --- a/database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php +++ b/database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php @@ -13,81 +13,81 @@ return new class extends Migration { Schema::table('cities', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('venues', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('lecturers', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('meetups', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('meetup_events', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('bitcoin_events', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('courses', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('course_events', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('libraries', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('library_items', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('podcasts', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('episodes', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); Schema::table('book_cases', function (Blueprint $table) { $table->foreignId('created_by') - ->constrained('users') - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); }); } @@ -96,6 +96,16 @@ return new class extends Migration */ public function down(): void { - // + $tables = [ + 'cities', 'venues', 'lecturers', 'meetups', 'meetup_events', + 'bitcoin_events', 'courses', 'course_events', 'libraries', + 'library_items', 'podcasts', 'episodes', 'book_cases', + ]; + + foreach ($tables as $tableName) { + Schema::table($tableName, function (Blueprint $table) { + $table->dropConstrainedForeignId('created_by'); + }); + } } }; diff --git a/database/migrations/2023_01_14_185805_add_reputation_field_on_user_table.php b/database/migrations/2023_01_14_185804_add_reputation_field_on_user_table.php similarity index 100% rename from database/migrations/2023_01_14_185805_add_reputation_field_on_user_table.php rename to database/migrations/2023_01_14_185804_add_reputation_field_on_user_table.php diff --git a/database/migrations/2023_17_01_175957_create_meetup_user_table.php b/database/migrations/2023_01_17_175957_create_meetup_user_table.php similarity index 73% rename from database/migrations/2023_17_01_175957_create_meetup_user_table.php rename to database/migrations/2023_01_17_175957_create_meetup_user_table.php index d986f2a..822c67a 100644 --- a/database/migrations/2023_17_01_175957_create_meetup_user_table.php +++ b/database/migrations/2023_01_17_175957_create_meetup_user_table.php @@ -15,15 +15,15 @@ return new class extends Migration Schema::create('meetup_user', function (Blueprint $table) { $table->foreignId('meetup_id') - ->constrained() - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); $table->foreignId('user_id') - ->constrained() - ->cascadeOnDelete() - ->cascadeOnUpdate(); + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); $table->boolean('is_leader') - ->default(false); + ->default(false); }); Schema::enableForeignKeyConstraints(); diff --git a/database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php b/database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php index d236c99..48206fc 100644 --- a/database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php +++ b/database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php @@ -2,31 +2,31 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; return new class extends Migration { - /** - * Run the migrations. - */ public function up(): void { - Schema::table('library_items', function (Blueprint $table) { + if (DB::getDriverName() === 'pgsql') { DB::statement('ALTER TABLE library_items - ALTER COLUMN tweet DROP DEFAULT, - ALTER COLUMN tweet TYPE BOOLEAN USING tweet::BOOLEAN, - ALTER COLUMN tweet SET DEFAULT FALSE;' - ); + ALTER COLUMN tweet DROP DEFAULT, + ALTER COLUMN tweet TYPE BOOLEAN USING tweet::BOOLEAN, + ALTER COLUMN tweet SET DEFAULT FALSE;'); + + return; + } + + Schema::table('library_items', function (Blueprint $table) { + $table->boolean('tweet')->default(false)->change(); }); } - /** - * Reverse the migrations. - */ public function down(): void { Schema::table('library_items', function (Blueprint $table) { - // + $table->text('tweet')->nullable()->change(); }); } }; diff --git a/database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php b/database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php index 3945d26..d798677 100644 --- a/database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php +++ b/database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php @@ -4,7 +4,8 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration { +return new class extends Migration +{ /** * Run the migrations. */ @@ -15,27 +16,27 @@ return new class extends Migration { }); Schema::table('bitcoin_events', function (Blueprint $table) { $table->text('nostr_status') - ->nullable(); + ->nullable(); }); Schema::table('course_events', function (Blueprint $table) { $table->text('nostr_status') - ->nullable(); + ->nullable(); }); Schema::table('courses', function (Blueprint $table) { $table->text('nostr_status') - ->nullable(); + ->nullable(); }); Schema::table('meetup_events', function (Blueprint $table) { $table->text('nostr_status') - ->nullable(); + ->nullable(); }); Schema::table('meetups', function (Blueprint $table) { $table->text('nostr_status') - ->nullable(); + ->nullable(); }); Schema::table('orange_pills', function (Blueprint $table) { $table->text('nostr_status') - ->nullable(); + ->nullable(); }); } @@ -44,8 +45,13 @@ return new class extends Migration { */ public function down(): void { - Schema::table('tables', function (Blueprint $table) { - // + Schema::table('library_items', function (Blueprint $table) { + $table->renameColumn('nostr_status', 'nostr'); }); + foreach (['bitcoin_events', 'course_events', 'courses', 'meetup_events', 'meetups', 'orange_pills'] as $tableName) { + Schema::table($tableName, function (Blueprint $table) { + $table->dropColumn('nostr_status'); + }); + } } }; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index a010854..786a9c5 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,17 +2,209 @@ namespace Database\Seeders; +use App\Models\BitcoinEvent; +use App\Models\BookCase; +use App\Models\Category; +use App\Models\City; +use App\Models\Country; +use App\Models\Course; +use App\Models\CourseEvent; +use App\Models\EmailCampaign; +use App\Models\EmailTexts; +use App\Models\Episode; +use App\Models\Highscore; +use App\Models\Lecturer; +use App\Models\Library; +use App\Models\LibraryItem; +use App\Models\LoginKey; +use App\Models\Meetup; +use App\Models\MeetupEvent; +use App\Models\OrangePill; +use App\Models\Participant; +use App\Models\Podcast; +use App\Models\ProjectProposal; +use App\Models\Registration; use App\Models\SelfHostedService; -// use Illuminate\Database\Console\Seeds\WithoutModelEvents; +use App\Models\Tag; +use App\Models\TwitterAccount; +use App\Models\User; +use App\Models\Venue; +use App\Models\Vote; +use Database\Factories\Helpers\NostrHelper; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\App; +use Illuminate\Support\Facades\DB; class DatabaseSeeder extends Seeder { - /** - * Seed the application's database. - */ public function run(): void { - SelfHostedService::factory(10)->create(); + App::setLocale('de'); + + $this->command->info('Phase 0: Admin-User'); + $admin = User::factory()->create([ + 'name' => 'Admin Einundzwanzig', + 'email' => 'admin@einundzwanzig.local', + 'is_lecturer' => true, + ]); + + $this->command->info('Phase 1: Stamm-Daten (Tier 0)'); + User::factory()->count(20)->create(); + $countries = Country::factory()->count(8)->create(); + Category::factory()->count(6)->create(); + Participant::factory()->count(30)->create(); + Tag::factory()->count(15)->create(); + EmailCampaign::factory()->count(2)->create(); + TwitterAccount::factory()->count(2)->create(); + + $users = User::all(); + + $this->command->info('Phase 2: Geo + abhängige Tier-1-Daten'); + $cities = City::factory()->count(20) + ->recycle($countries) + ->recycle($users) + ->create(); + $lecturers = Lecturer::factory()->count(15) + ->recycle($users) + ->create(); + $bookCases = BookCase::factory()->count(25) + ->recycle($users) + ->create(); + SelfHostedService::factory()->count(10) + ->recycle($users) + ->create(); + SelfHostedService::factory()->count(2)->anonymous()->create(); + $podcasts = Podcast::factory()->count(3) + ->recycle($users) + ->create(); + + $this->command->info('Phase 3: Tier-2-Daten'); + $venues = Venue::factory()->count(15) + ->recycle($cities) + ->recycle($users) + ->create(); + $courses = Course::factory()->count(20) + ->recycle($lecturers) + ->recycle($users) + ->create(); + Episode::factory()->count(50) + ->recycle($podcasts) + ->recycle($users) + ->create(); + $libraries = Library::factory()->count(4) + ->recycle($users) + ->create(); + $meetups = Meetup::factory()->count(30) + ->recycle($cities) + ->recycle($users) + ->create(); + + $this->command->info('Phase 4: Events & Items (Tier-3)'); + BitcoinEvent::factory()->count(15) + ->recycle($venues) + ->recycle($users) + ->create(); + $courseEvents = CourseEvent::factory()->count(30) + ->recycle($courses) + ->recycle($venues) + ->recycle($users) + ->create(); + MeetupEvent::factory()->count(60) + ->recycle($meetups) + ->recycle($users) + ->create(); + $libraryItems = LibraryItem::factory()->count(50) + ->recycle($lecturers) + ->recycle($users) + ->create(); + OrangePill::withoutEvents(function () use ($users, $bookCases) { + OrangePill::factory()->count(50) + ->recycle($users) + ->recycle($bookCases) + ->create(); + }); + $proposals = ProjectProposal::factory()->count(8) + ->recycle($users) + ->create(); + EmailTexts::factory()->count(10) + ->recycle(EmailCampaign::all()) + ->create(); + + $this->command->info('Phase 5: Pivots'); + + $categoryIds = Category::pluck('id'); + Course::all()->each(function (Course $course) use ($categoryIds) { + $course->categories()->attach( + $categoryIds->random(min(2, $categoryIds->count()))->all() + ); + }); + + $libraryIds = $libraries->pluck('id'); + $libraryItems->each(function (LibraryItem $item) use ($libraryIds) { + $item->libraries()->attach( + $libraryIds->random(min(2, $libraryIds->count()))->all() + ); + }); + + $userIds = $users->pluck('id'); + $meetups->each(function (Meetup $meetup) use ($userIds) { + foreach ($userIds->random(min(4, $userIds->count()))->all() as $idx => $uid) { + DB::table('meetup_user')->insertOrIgnore([ + 'meetup_id' => $meetup->id, + 'user_id' => $uid, + 'is_leader' => $idx === 0, + ]); + } + }); + + $participantIds = Participant::pluck('id'); + $courseEvents->each(function (CourseEvent $event) use ($participantIds) { + foreach ($participantIds->random(min(4, $participantIds->count()))->all() as $pid) { + Registration::create([ + 'course_event_id' => $event->id, + 'participant_id' => $pid, + 'active' => true, + ]); + } + }); + + $libraryItems->take(15)->each(function (LibraryItem $item) use ($users) { + $item->update(['value_to_be_paid' => 'true', 'sats' => fake()->numberBetween(100, 21000)]); + foreach ($users->random(min(3, $users->count()))->pluck('id')->all() as $uid) { + DB::table('library_item_user')->insertOrIgnore([ + 'library_item_id' => $item->id, + 'user_id' => $uid, + ]); + } + }); + + $this->command->info('Phase 6: Voting & Highscores'); + $proposals->each(function (ProjectProposal $proposal) use ($users) { + foreach ($users->random(min(8, $users->count())) as $voter) { + Vote::create([ + 'user_id' => $voter->id, + 'project_proposal_id' => $proposal->id, + 'value' => fake()->randomElement([0, 1]), + 'reason' => fake()->boolean(30) ? fake()->sentence() : null, + 'created_by' => $voter->id, + ]); + } + }); + + foreach (NostrHelper::realNpubs() as $i => $npub) { + for ($d = 0; $d < 5; $d++) { + Highscore::factory()->create([ + 'npub' => $npub, + 'achieved_at' => now()->subDays(($i * 10) + $d), + 'satoshis' => fake()->numberBetween(1000, 1_000_000), + 'blocks' => fake()->numberBetween(1, 5000), + ]); + } + } + + $this->command->info('Phase 7: LoginKeys'); + LoginKey::factory()->count(5)->recycle($users)->create(); + + $this->command->info("Seeding fertig — Admin: {$admin->email} (Passwort: password)"); } } diff --git a/lang/de.json b/lang/de.json index 4ef21bd..067a39d 100644 --- a/lang/de.json +++ b/lang/de.json @@ -2,13 +2,16 @@ "(and :count more error)": "(und :count weiterer Fehler)", "(and :count more errors)": "(und :count weiterer Fehler)|(und :count weitere Fehler)|(und :count weitere Fehler)", "2FA Recovery Codes": "2FA-Wiederherstellungscodes", + "2FA recovery codes": "2FA-Wiederherstellungscodes", ":count Events erfolgreich erstellt!": "", + ":inviterName has invited you to join the :teamName team.": ":inviterName hat Sie eingeladen, dem Team :teamName beizutreten.", "A decryption key is required.": "Ein Entschlüsselungsschlüssel ist nötig.", "A new verification link has been sent to the email address you provided during registration.": "Ein neuer Bestätigungslink wurde an die E-Mail-Adresse gesendet, die Sie bei der Registrierung angegeben haben.", "A new verification link has been sent to your email address.": "Ein neuer Bestätigungslink wurde an Ihre E-Mail-Adresse versendet.", "A reset link will be sent if the account exists.": "Wenn das Konto existiert, wird ein Link zum Zurücksetzen gesendet.", "Abbrechen": "", "Absagen": "", + "Accept invitation": "Einladung annehmen", "Actions": "", "Aktionen": "", "Aktiv": "", @@ -28,6 +31,7 @@ "Alle Meetups anzeigen": "", "Allgemeine Bitcoin Community": "", "Already have an account?": "Haben Sie bereits ein Konto?", + "An invitation has already been sent to this email address.": "An diese E-Mail-Adresse wurde bereits eine Einladung gesendet.", "An welchem Tag beginnt das Event?": "", "An welchem Tag endet das Event?": "", "An welchem Tag findet das Event statt?": "", @@ -39,13 +43,18 @@ "App": "", "Appearance": "Darstellung", "Appearance Settings": "Darstellungseinstellungen", + "Appearance settings": "Darstellungseinstellungen", + "Are you sure you want to cancel the invitation for :email?": "Möchten Sie die Einladung für :email wirklich abbrechen?", "Are you sure you want to delete your account?": "Möchten Sie Ihr Konto wirklich löschen?", + "Are you sure you want to remove :name from this team?": "Möchten Sie :name wirklich aus diesem Team entfernen möchten?", + "Are you sure?": "Sind Sie sicher?", "Art des Services": "", "Auf Karte sichtbar": "", "aus deinen Meetups entfernen?": "", "Ausführliche Beschreibung des Kurses": "", "Ausführliche Beschreibung und Biografie": "", "Authentication Code": "Authentifizierungscode", + "Authentication code": "Authentifizierungscode", "Automatisch (gleiches Datum)": "", "Automatisch (wie Startdatum)": "", "Back": "Zurück", @@ -71,6 +80,7 @@ "BooksForPlebs": "", "Breitengrad": "", "Cancel": "Abbrechen", + "Cancel invitation": "Einladung abbrechen", "Cities": "", "City": "", "City successfully created!": "", @@ -88,9 +98,11 @@ "Copied into clipboard": "", "Copy": "", "Country": "", + "Create a new team": "Neues Team erstellen", "Create account": "Konto erstellen", "Create an account": "Ein Konto erstellen", "Create City": "", + "Create team": "Team erstellen", "Create Venue": "", "Created at": "", "Created By": "", @@ -103,6 +115,7 @@ "Datum des letzten Termins": "", "Dein Name": "", "Delete account": "Konto löschen", + "Delete team": "Team löschen", "Delete your account and all of its resources": "Löschen Sie Ihr Konto und alle zugehörigen Ressourcen", "Demographics": "", "Der Anzeigename für diesen Kurs": "", @@ -140,8 +153,11 @@ "Du kannst es jederzeit wieder hinzufügen.": "", "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "", "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Jeder Wiederherstellungscode kann einmal für den Zugriff auf Ihr Konto verwendet werden und wird nach der Verwendung gelöscht. Wenn Sie weitere Codes benötigen, klicken Sie oben auf „Codes neu generieren“.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.": "Jeder Wiederherstellungscode kann einmal für den Zugriff auf Ihr Konto verwendet werden und wird nach der Verwendung gelöscht. Wenn Sie weitere Codes benötigen, klicken Sie oben auf „Codes neu generieren“.", "Edit": "", + "Edit :name": ":name bearbeiten", "Edit City": "", + "Edit team": "Team bearbeiten", "Edit Venue": "", "Einführung": "", "Einundzwanzig Community": "", @@ -150,8 +166,10 @@ "Email Address": "E-Mail-Adresse", "Email address": "E-Mail-Adresse", "Email password reset link": "Link zum Zurücksetzen des Passworts per E-Mail", + "Email verification": "E-Mail Verifikation", "Enable 2FA": "2FA aktivieren", "Enable Two-Factor Authentication": "Zwei-Faktor-Authentisierung aktivieren", + "Enable two-factor authentication": "Zwei-Faktor-Authentisierung aktivieren", "Enabled": "Aktiviert", "Encrypted environment file already exists.": "Verschlüsselte Umgebungsdatei ist bereits vorhanden.", "Encrypted environment file not found.": "Verschlüsselte Umgebungsdatei nicht gefunden.", @@ -211,10 +229,12 @@ "Für regelmäßige Termine wie \"immer am letzten Freitag des Monats\":": "", "Gemeinschaft": "", "Gemeinschafts- oder Organisationsname": "", + "Give your team a name to get started.": "Geben Sie Ihrem Team einen Namen, um loszulegen.", "Go to page :page": "Gehe zur Seite :page", "Grundlegende Informationen": "", "Hello!": "Hallo!", "Hide Recovery Codes": "Wiederherstellungscodes ausblenden", + "Hide recovery codes": "Wiederherstellungscodes ausblenden", "I2P Adresse": "", "Ich komme": "", "ID": "", @@ -227,6 +247,11 @@ "Intervall": "", "Invalid filename.": "Ungültiger Dateiname.", "Invalid JSON was returned from the route.": "Von der Route wurde ein ungültiger JSON-Code zurückgegeben.", + "Invitation cancelled.": "Einladung abgebrochen.", + "Invitation sent.": "Einladung gesendet.", + "Invitations that have not been accepted yet": "Einladungen, die noch nicht angenommen wurden", + "Invite a team member": "Ein Teammitglied einladen", + "Invite member": "Mitglied einladen", "IP Adresse": "", "Ist dieser Dozent aktiv?": "", "Jetzt erstellen": "", @@ -234,6 +259,7 @@ "Kalender-Stream-URL kopieren": "", "Karte": "", "Kartenansicht öffnen": "", + "Keep invitation": "Einladung behalten", "Keine": "", "Keine Aktivitäten": "", "Keine bevorstehenden Termine": "", @@ -295,7 +321,10 @@ "Länder mit den meisten Usern": "", "Längengrad": "", "Löschen": "", + "Manage who belongs to this team": "Verwalten Sie, wer zu diesem Team gehört", "Manage your profile and account settings": "Verwalten Sie Ihr Profil und Ihre Kontoeinstellungen", + "Manage your team settings": "Verwalten Sie Ihre Teameinstellungen", + "Manage your teams and team memberships": "Verwalten Sie Ihre Teams und Teamzugehörigkeiten", "Manage your two-factor authentication settings": "Verwalten Sie Ihre Einstellungen für die Zwei-Faktor-Authentifizierung", "Matrix": "", "Matrix Gruppe": "", @@ -314,6 +343,8 @@ "Mehr Informationen": "", "Meine Meetups": "", "Meine nächsten Meetup Termine": "", + "Member removed.": "Mitglied entfernt.", + "Member role updated.": "Mitgliedsrolle aktualisiert.", "Mindestens eine URL muss angegeben werden.": "", "Mindestens eine URL oder IP muss angegeben werden.": "", "Mittwoch": "", @@ -337,6 +368,7 @@ "Neues Meetup": "", "Neues Meetup erstellen": "", "New password": "Neues Passwort", + "New team": "Neues Team", "no location set": "", "Node ID": "", "Normale Web-URL": "", @@ -365,16 +397,21 @@ "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "", "Password": "Passwort", "Password Settings": "Passworteinstellungen", + "Password updated.": "Passwort aktualisiert.", "Passwort ändern - Bitcoin Meetups": "", "Payment Required": "Zahlung erforderlich", "PayNym": "", "PayNym für Bitcoin-Zahlungen": "", + "Pending invitations": "Ausstehende Einladungen", + "Permanently delete your team": "Löschen Sie Ihr Team endgültig", + "Personal": "Persönlich", "Persönliche Webseite oder Portfolio": "", "Pkarr DNS Adresse": "", "Platform": "Plattform", "Please click the button below to verify your email address.": "Bitte klicken Sie auf die Schaltfläche, um Ihre E-Mail-Adresse zu bestätigen.", "Please confirm access to your account by entering one of your emergency recovery codes.": "Bitte bestätigen Sie den Zugriff auf Ihr Konto, indem Sie einen Ihrer Notfall-Wiederherstellungscodes eingeben.", "Please enter your new password below": "Bitte geben Sie nachstehend Ihr neues Passwort ein.", + "Please proceed with caution, this cannot be undone.": "Bitte gehen Sie mit Vorsicht vor, dies kann nicht rückgängig gemacht werden.", "Please verify your email address by clicking on the link we just emailed to you.": "Bitte bestätigen Sie Ihre E-Mail-Adresse, indem Sie auf den Link klicken, den wir Ihnen gerade per E-Mail gesendet haben.", "Population": "", "Population Date": "", @@ -383,29 +420,41 @@ "Profil bearbeiten - Bitcoin Meetups": "", "Profile": "Profil", "Profile Settings": "Profileinstellungen", + "Profile settings": "Profileinstellungen", + "Profile updated.": "Profil aktualisiert.", "Recovery Code": "Wiederherstellungscode", + "Recovery code": "Wiederherstellungscode", "Recovery codes": "Wiederherstellungscodes", "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Mit Wiederherstellungscodes können Sie wieder Zugriff erhalten, wenn Sie Ihr 2FA-Gerät verlieren. Speichern Sie diese in einem sicheren Passwort-Manager.", "Regards,": "Mit freundlichen Grüßen,", "Regenerate Codes": "Codes neu generieren", + "Regenerate codes": "Codes neu generieren", "Register": "Registrieren", "Remember me": "Angemeldet bleiben", + "Remove member": "Mitglied entfernen", + "Remove team member": "Team Mitglied entfernen", "Repository": "Repository", "Resend verification email": "Bestätigungs-E-Mail erneut senden", "Reset Password": "Passwort zurücksetzen", "Reset password": "Passwort zurücksetzen", "Reset Password Notification": "Benachrichtigung zum Zurücksetzen des Passworts", "results": "Ergebnissen", + "Role": "Rolle", "Samstag": "", "Save": "Speichern", "Saved.": "Gespeichert.", "Search": "Suche", "Search cities...": "", "Search venues...": "", + "Security": "Sicherheit", + "Security settings": "Sicherheitseinstellungen", "Select a city": "", "Select a country": "", + "Select team": "Team auswählen", "Self Hosted Services": "", "Self-Hosted Services - Übersicht": "", + "Send an invitation to join this team.": "Eine Einladung für dieses Team verschicken.", + "Send invitation": "Einadlung senden", "Serientermine erstellen": "", "Serientermine erstellen?": "", "Server Error": "Interner Fehler", @@ -463,15 +512,28 @@ "System": "System", "System-generierte ID (nur lesbar)": "", "Systeminformationen": "", + "Team created.": "Team erstellt.", + "Team deleted.": "Team gelöscht.", + "Team members": "Teammitglieder", + "Team name": "Teamname", + "Team updated.": "Team aktualisiert.", + "Teams": "Teams", "Teilnahme": "", "Telegram": "", "Telegram Link": "", "The given data was invalid.": "Die gegebenen Daten waren ungültig.", "The response is not a streamed response.": "Die Antwort ist keine gestreamte Antwort.", "The response is not a view.": "Die Antwort ist keine Ansicht.", + "The team name does not match.": "Der Teamname stimmt nicht überein.", + "This action cannot be undone. This will permanently delete the team \":name\".": "Diese Aktion kann nicht rückgängig gemacht werden. Dadurch wird das Team „:name“ dauerhaft gelöscht.", "This action is unauthorized.": "Diese Aktion ist nicht autorisiert.", + "This invitation has already been accepted.": "Diese Einladung wurde bereits angenommen.", + "This invitation has expired.": "Diese Einladung ist abgelaufen.", + "This invitation was sent to a different email address.": "Diese Einladung wurde an eine andere E-Mail-Adresse gesendet.", "This is a secure area of the application. Please confirm your password before continuing.": "Dies ist ein sicherer Bereich der Anwendung. Bitte bestätigen Sie Ihr Passwort, bevor Sie fortfahren.", "This password reset link will expire in :count minutes.": "Dieser Link zum Zurücksetzen des Passworts läuft in :count Minuten ab.", + "This team name is reserved and cannot be used.": "Dieser Teamname ist reserviert und kann nicht verwendet werden.", + "This user is already a member of the team.": "Dieser Benutzer ist bereits Mitglied des Teams.", "to": "bis", "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "Um die Zwei-Faktor-Authentifizierung zu aktivieren, scannen Sie den QR-Code oder geben Sie den Einrichtungsschlüssel in Ihre Authentifizierungs-App ein.", "Toggle navigation": "Navigation umschalten", @@ -485,10 +547,13 @@ "Twitter-Handle ohne @ Symbol": "", "Two Factor Authentication": "Zwei-Faktor-Authentifizierung", "Two-Factor Auth": "Zwei-Faktor-Authentifizierung", + "Two-factor authentication": "Zwei-Faktor-Authentifizierung", "Two-Factor Authentication Enabled": "Zwei-Faktor-Authentifizierung aktiviert", + "Two-factor authentication enabled": "Zwei-Faktor-Authentifizierung aktiviert", "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Die Zwei-Faktor-Authentifizierung ist nun aktiviert. Scannen Sie den QR-Code oder geben Sie den Setup-Schlüssel in Ihrer Authentifizierungs-App ein.", "Two-Factor Authentication Settings": "Zwei-Faktor-Authentifizierun Einstellungen", "Typ": "", + "Type \":name\" to confirm": "Geben Sie \":name\" ein, um zu bestätigen", "Täglich": "", "Uhr": "", "Uhrzeit": "", @@ -523,12 +588,16 @@ "Veranstaltungsorte - Übersicht": "", "Verbinde dich mit Bitcoinern in deiner Nähe": "", "Verify Authentication Code": "Authentifizierungscode überprüfen", + "Verify authentication code": "Authentifizierungscode überprüfen", "Verify Email Address": "E-Mail-Adresse bestätigen", "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "", "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "", "Vielleicht": "", "Vierter": "", + "View :name": ":name anzeigen", "View Recovery Codes": "Wiederherstellungscodes anzeigen", + "View recovery codes": "Wiederherstellungscodes anzeigen", + "View team": "Team anzeigen", "Vollständiger Name des Dozenten": "", "Vorschau auf 100 Termine begrenzt. Es werden möglicherweise mehr Termine erstellt.": "", "Vorschau der Termine": "", @@ -539,10 +608,12 @@ "Wann dieses Meetup erstellt wurde": "", "Wann endet das Event?": "", "Wann findet das Event statt?": "", + "Warning": "Warnung", "Webseite": "", "Website": "", "weitere Termine": "", "Welcher Wochentag im Monat? (z.B. \"letzter Freitag": "", + "Welcome": "Willkommen", "Welt-Karte": "", "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "", "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "Wenn Sie die Zwei-Faktor-Authentifizierung aktivieren, werden Sie bei der Anmeldung zur Eingabe einer Sicherheits-PIN aufgefordert. Diese PIN können Sie über eine TOTP-unterstützte Anwendung auf Ihrem Smartphone abrufen.", @@ -565,6 +636,9 @@ "Wähle die Stadt aus...": "", "Wöchentlich": "", "You are receiving this email because we received a password reset request for your account.": "Sie erhalten diese E-Mail, weil wir einen Antrag auf eine Zurücksetzung Ihres Passworts bekommen haben.", + "You don't belong to any teams yet.": "Sie gehören aktuell noch keinem Team an.", + "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Sie werden beim Anmelden zur Eingabe einer sicheren, zufällig generierten PIN aufgefordert, die Sie über die TOTP-fähige Anwendung auf Ihrem Smartphone abrufen können.", + "You've been invited to join :teamName": "Sie wurden zum Team „:teamName“ eingeladen.", "Your email address is unverified.": "Ihre E-Mail-Adresse ist nicht verifiziert.", "z.B. Berlin": "", "z.B. Bitcoin Zentrum München": "", diff --git a/lang/de/validation.php b/lang/de/validation.php index f1544ff..1c170af 100644 --- a/lang/de/validation.php +++ b/lang/de/validation.php @@ -3,156 +3,157 @@ declare(strict_types=1); return [ - 'accepted' => ':Attribute muss akzeptiert werden.', - 'accepted_if' => ':Attribute muss akzeptiert werden, wenn :other :value ist.', - 'active_url' => ':Attribute ist keine gültige Internet-Adresse.', - 'after' => ':Attribute muss ein Datum nach :date sein.', - 'after_or_equal' => ':Attribute muss ein Datum nach :date oder gleich :date sein.', - 'alpha' => ':Attribute darf nur aus Buchstaben bestehen.', - 'alpha_dash' => ':Attribute darf nur aus Buchstaben, Zahlen, Binde- und Unterstrichen bestehen.', - 'alpha_num' => ':Attribute darf nur aus Buchstaben und Zahlen bestehen.', - 'any_of' => ':Attribute ist ungültig.', - 'array' => ':Attribute muss ein Array sein.', - 'ascii' => 'Die :attribute darf nur alphanumerische Single-Byte-Zeichen und -Symbole enthalten.', - 'before' => ':Attribute muss ein Datum vor :date sein.', - 'before_or_equal' => ':Attribute muss ein Datum vor :date oder gleich :date sein.', - 'between' => [ - 'array' => ':Attribute muss zwischen :min & :max Elemente haben.', - 'file' => ':Attribute muss zwischen :min & :max Kilobytes groß sein.', + 'accepted' => ':Attribute muss akzeptiert werden.', + 'accepted_if' => ':Attribute muss akzeptiert werden, wenn :other :value ist.', + 'active_url' => ':Attribute ist keine gültige Internet-Adresse.', + 'after' => ':Attribute muss ein Datum nach :date sein.', + 'after_or_equal' => ':Attribute muss ein Datum nach :date oder gleich :date sein.', + 'alpha' => ':Attribute darf nur aus Buchstaben bestehen.', + 'alpha_dash' => ':Attribute darf nur aus Buchstaben, Zahlen, Binde- und Unterstrichen bestehen.', + 'alpha_num' => ':Attribute darf nur aus Buchstaben und Zahlen bestehen.', + 'any_of' => ':Attribute ist ungültig.', + 'array' => ':Attribute muss ein Array sein.', + 'ascii' => 'Die :attribute darf nur alphanumerische Single-Byte-Zeichen und -Symbole enthalten.', + 'before' => ':Attribute muss ein Datum vor :date sein.', + 'before_or_equal' => ':Attribute muss ein Datum vor :date oder gleich :date sein.', + 'between' => [ + 'array' => ':Attribute muss zwischen :min & :max Elemente haben.', + 'file' => ':Attribute muss zwischen :min & :max Kilobytes groß sein.', 'numeric' => ':Attribute muss zwischen :min & :max liegen.', - 'string' => ':Attribute muss zwischen :min & :max Zeichen lang sein.', + 'string' => ':Attribute muss zwischen :min & :max Zeichen lang sein.', ], - 'boolean' => ':Attribute muss entweder \'true\' oder \'false\' sein.', - 'can' => 'Das Feld :attribute enthält einen nicht autorisierten Wert.', - 'confirmed' => ':Attribute stimmt nicht mit der Bestätigung überein.', - 'contains' => 'Dem Feld :attribute fehlt ein erforderlicher Wert.', - 'current_password' => 'Das Passwort ist falsch.', - 'date' => ':Attribute muss ein gültiges Datum sein.', - 'date_equals' => ':Attribute muss ein Datum gleich :date sein.', - 'date_format' => ':Attribute entspricht nicht dem gültigen Format für :format.', - 'decimal' => 'Die :attribute muss :decimal Dezimalstellen haben.', - 'declined' => ':Attribute muss abgelehnt werden.', - 'declined_if' => ':Attribute muss abgelehnt werden wenn :other :value ist.', - 'different' => ':Attribute und :other müssen sich unterscheiden.', - 'digits' => ':Attribute muss :digits Stellen haben.', - 'digits_between' => ':Attribute muss zwischen :min und :max Stellen haben.', - 'dimensions' => ':Attribute hat ungültige Bildabmessungen.', - 'distinct' => ':Attribute beinhaltet einen bereits vorhandenen Wert.', - 'doesnt_contain' => ':Attribute darf keines der folgenden enthalten: :values.', - 'doesnt_end_with' => ':Attribute darf nicht mit einem der folgenden enden: :values.', - 'doesnt_start_with' => ':Attribute darf nicht mit einem der folgenden beginnen: :values.', - 'email' => ':Attribute muss eine gültige E-Mail-Adresse sein.', - 'ends_with' => ':Attribute muss eine der folgenden Endungen aufweisen: :values', - 'enum' => 'Der ausgewählte Wert ist ungültig.', - 'exists' => 'Der gewählte Wert für :attribute ist ungültig.', - 'extensions' => 'Das Feld :attribute muss eine der folgenden Erweiterungen haben: :values.', - 'file' => ':Attribute muss eine Datei sein.', - 'filled' => ':Attribute muss ausgefüllt sein.', - 'gt' => [ - 'array' => ':Attribute muss mehr als :value Elemente haben.', - 'file' => ':Attribute muss größer als :value Kilobytes sein.', + 'boolean' => ':Attribute muss entweder \'true\' oder \'false\' sein.', + 'can' => 'Das Feld :attribute enthält einen nicht autorisierten Wert.', + 'confirmed' => ':Attribute stimmt nicht mit der Bestätigung überein.', + 'contains' => 'Dem Feld :attribute fehlt ein erforderlicher Wert.', + 'current_password' => 'Das Passwort ist falsch.', + 'date' => ':Attribute muss ein gültiges Datum sein.', + 'date_equals' => ':Attribute muss ein Datum gleich :date sein.', + 'date_format' => ':Attribute entspricht nicht dem gültigen Format für :format.', + 'decimal' => 'Die :attribute muss :decimal Dezimalstellen haben.', + 'declined' => ':Attribute muss abgelehnt werden.', + 'declined_if' => ':Attribute muss abgelehnt werden wenn :other :value ist.', + 'different' => ':Attribute und :other müssen sich unterscheiden.', + 'digits' => ':Attribute muss :digits Stellen haben.', + 'digits_between' => ':Attribute muss zwischen :min und :max Stellen haben.', + 'dimensions' => ':Attribute hat ungültige Bildabmessungen.', + 'distinct' => ':Attribute beinhaltet einen bereits vorhandenen Wert.', + 'doesnt_contain' => ':Attribute darf keines der folgenden enthalten: :values.', + 'doesnt_end_with' => ':Attribute darf nicht mit einem der folgenden enden: :values.', + 'doesnt_start_with' => ':Attribute darf nicht mit einem der folgenden beginnen: :values.', + 'email' => ':Attribute muss eine gültige E-Mail-Adresse sein.', + 'encoding' => ':Attribute muss als :encoding kodiert sein.', + 'ends_with' => ':Attribute muss eine der folgenden Endungen aufweisen: :values', + 'enum' => 'Der ausgewählte Wert ist ungültig.', + 'exists' => 'Der gewählte Wert für :attribute ist ungültig.', + 'extensions' => 'Das Feld :attribute muss eine der folgenden Erweiterungen haben: :values.', + 'file' => ':Attribute muss eine Datei sein.', + 'filled' => ':Attribute muss ausgefüllt sein.', + 'gt' => [ + 'array' => ':Attribute muss mehr als :value Elemente haben.', + 'file' => ':Attribute muss größer als :value Kilobytes sein.', 'numeric' => ':Attribute muss größer als :value sein.', - 'string' => ':Attribute muss länger als :value Zeichen sein.', + 'string' => ':Attribute muss länger als :value Zeichen sein.', ], - 'gte' => [ - 'array' => ':Attribute muss mindestens :value Elemente haben.', - 'file' => ':Attribute muss größer oder gleich :value Kilobytes sein.', + 'gte' => [ + 'array' => ':Attribute muss mindestens :value Elemente haben.', + 'file' => ':Attribute muss größer oder gleich :value Kilobytes sein.', 'numeric' => ':Attribute muss größer oder gleich :value sein.', - 'string' => ':Attribute muss mindestens :value Zeichen lang sein.', + 'string' => ':Attribute muss mindestens :value Zeichen lang sein.', ], - 'hex_color' => 'Das Feld :attribute muss eine gültige Hexadezimalfarbe sein.', - 'image' => ':Attribute muss ein Bild sein.', - 'in' => 'Der gewählte Wert für :attribute ist ungültig.', - 'in_array' => 'Der gewählte Wert für :attribute kommt nicht in :other vor.', - 'in_array_keys' => 'Das Feld :Attribute muss mindestens einen der folgenden Schlüssel enthalten: :Values.', - 'integer' => ':Attribute muss eine ganze Zahl sein.', - 'ip' => ':Attribute muss eine gültige IP-Adresse sein.', - 'ipv4' => ':Attribute muss eine gültige IPv4-Adresse sein.', - 'ipv6' => ':Attribute muss eine gültige IPv6-Adresse sein.', - 'json' => ':Attribute muss ein gültiger JSON-String sein.', - 'list' => ':Attribute muss eine Liste sein.', - 'lowercase' => ':Attribute muss in Kleinbuchstaben sein.', - 'lt' => [ - 'array' => ':Attribute muss weniger als :value Elemente haben.', - 'file' => ':Attribute muss kleiner als :value Kilobytes sein.', + 'hex_color' => 'Das Feld :attribute muss eine gültige Hexadezimalfarbe sein.', + 'image' => ':Attribute muss ein Bild sein.', + 'in' => 'Der gewählte Wert für :attribute ist ungültig.', + 'in_array' => 'Der gewählte Wert für :attribute kommt nicht in :other vor.', + 'in_array_keys' => 'Das Feld :Attribute muss mindestens einen der folgenden Schlüssel enthalten: :Values.', + 'integer' => ':Attribute muss eine ganze Zahl sein.', + 'ip' => ':Attribute muss eine gültige IP-Adresse sein.', + 'ipv4' => ':Attribute muss eine gültige IPv4-Adresse sein.', + 'ipv6' => ':Attribute muss eine gültige IPv6-Adresse sein.', + 'json' => ':Attribute muss ein gültiger JSON-String sein.', + 'list' => ':Attribute muss eine Liste sein.', + 'lowercase' => ':Attribute muss in Kleinbuchstaben sein.', + 'lt' => [ + 'array' => ':Attribute muss weniger als :value Elemente haben.', + 'file' => ':Attribute muss kleiner als :value Kilobytes sein.', 'numeric' => ':Attribute muss kleiner als :value sein.', - 'string' => ':Attribute muss kürzer als :value Zeichen sein.', + 'string' => ':Attribute muss kürzer als :value Zeichen sein.', ], - 'lte' => [ - 'array' => ':Attribute darf maximal :value Elemente haben.', - 'file' => ':Attribute muss kleiner oder gleich :value Kilobytes sein.', + 'lte' => [ + 'array' => ':Attribute darf maximal :value Elemente haben.', + 'file' => ':Attribute muss kleiner oder gleich :value Kilobytes sein.', 'numeric' => ':Attribute muss kleiner oder gleich :value sein.', - 'string' => ':Attribute darf maximal :value Zeichen lang sein.', + 'string' => ':Attribute darf maximal :value Zeichen lang sein.', ], - 'mac_address' => 'Der Wert muss eine gültige MAC-Adresse sein.', - 'max' => [ - 'array' => ':Attribute darf maximal :max Elemente haben.', - 'file' => ':Attribute darf maximal :max Kilobytes groß sein.', + 'mac_address' => 'Der Wert muss eine gültige MAC-Adresse sein.', + 'max' => [ + 'array' => ':Attribute darf maximal :max Elemente haben.', + 'file' => ':Attribute darf maximal :max Kilobytes groß sein.', 'numeric' => ':Attribute darf maximal :max sein.', - 'string' => ':Attribute darf maximal :max Zeichen haben.', + 'string' => ':Attribute darf maximal :max Zeichen haben.', ], - 'max_digits' => ':Attribute darf maximal :max Ziffern lang sein.', - 'mimes' => ':Attribute muss den Dateityp :values haben.', - 'mimetypes' => ':Attribute muss den Dateityp :values haben.', - 'min' => [ - 'array' => ':Attribute muss mindestens :min Elemente haben.', - 'file' => ':Attribute muss mindestens :min Kilobytes groß sein.', + 'max_digits' => ':Attribute darf maximal :max Ziffern lang sein.', + 'mimes' => ':Attribute muss den Dateityp :values haben.', + 'mimetypes' => ':Attribute muss den Dateityp :values haben.', + 'min' => [ + 'array' => ':Attribute muss mindestens :min Elemente haben.', + 'file' => ':Attribute muss mindestens :min Kilobytes groß sein.', 'numeric' => ':Attribute muss mindestens :min sein.', - 'string' => ':Attribute muss mindestens :min Zeichen lang sein.', + 'string' => ':Attribute muss mindestens :min Zeichen lang sein.', ], - 'min_digits' => ':Attribute muss mindestens :min Ziffern lang sein.', - 'missing' => 'Das Feld :attribute muss fehlen.', - 'missing_if' => 'Das Feld :attribute muss fehlen, wenn :other gleich :value ist.', - 'missing_unless' => 'Das Feld :attribute muss fehlen, es sei denn, :other ist :value.', - 'missing_with' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden ist.', - 'missing_with_all' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden sind.', - 'multiple_of' => ':Attribute muss ein Vielfaches von :value sein.', - 'not_in' => 'Der gewählte Wert für :attribute ist ungültig.', - 'not_regex' => ':Attribute hat ein ungültiges Format.', - 'numeric' => ':Attribute muss eine Zahl sein.', - 'password' => [ - 'letters' => ':Attribute muss mindestens einen Buchstaben beinhalten.', - 'mixed' => ':Attribute muss mindestens einen Großbuchstaben und einen Kleinbuchstaben beinhalten.', - 'numbers' => ':Attribute muss mindestens eine Zahl beinhalten.', - 'symbols' => ':Attribute muss mindestens ein Sonderzeichen beinhalten.', + 'min_digits' => ':Attribute muss mindestens :min Ziffern lang sein.', + 'missing' => 'Das Feld :attribute muss fehlen.', + 'missing_if' => 'Das Feld :attribute muss fehlen, wenn :other gleich :value ist.', + 'missing_unless' => 'Das Feld :attribute muss fehlen, es sei denn, :other ist :value.', + 'missing_with' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden ist.', + 'missing_with_all' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden sind.', + 'multiple_of' => ':Attribute muss ein Vielfaches von :value sein.', + 'not_in' => 'Der gewählte Wert für :attribute ist ungültig.', + 'not_regex' => ':Attribute hat ein ungültiges Format.', + 'numeric' => ':Attribute muss eine Zahl sein.', + 'password' => [ + 'letters' => ':Attribute muss mindestens einen Buchstaben beinhalten.', + 'mixed' => ':Attribute muss mindestens einen Großbuchstaben und einen Kleinbuchstaben beinhalten.', + 'numbers' => ':Attribute muss mindestens eine Zahl beinhalten.', + 'symbols' => ':Attribute muss mindestens ein Sonderzeichen beinhalten.', 'uncompromised' => ':Attribute wurde in einem Datenleck gefunden. Bitte wählen Sie ein anderes :attribute.', ], - 'present' => ':Attribute muss vorhanden sein.', - 'present_if' => 'Das Feld :attribute muss vorhanden sein, wenn :other gleich :value ist.', - 'present_unless' => 'Das Feld :attribute muss vorhanden sein, es sei denn, :other ist :value.', - 'present_with' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden ist.', - 'present_with_all' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden sind.', - 'prohibited' => ':Attribute ist unzulässig.', - 'prohibited_if' => ':Attribute ist unzulässig, wenn :other :value ist.', + 'present' => ':Attribute muss vorhanden sein.', + 'present_if' => 'Das Feld :attribute muss vorhanden sein, wenn :other gleich :value ist.', + 'present_unless' => 'Das Feld :attribute muss vorhanden sein, es sei denn, :other ist :value.', + 'present_with' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden ist.', + 'present_with_all' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden sind.', + 'prohibited' => ':Attribute ist unzulässig.', + 'prohibited_if' => ':Attribute ist unzulässig, wenn :other :value ist.', 'prohibited_if_accepted' => 'Das Feld :attribute ist unzulässig, wenn :other gewählt ist.', 'prohibited_if_declined' => 'Das Feld :attribute ist unzulässig, wenn :other abgelehnt ist.', - 'prohibited_unless' => ':Attribute ist unzulässig, wenn :other nicht :values ist.', - 'prohibits' => ':Attribute verbietet die Angabe von :other.', - 'regex' => ':Attribute Format ist ungültig.', - 'required' => ':Attribute muss ausgefüllt werden.', - 'required_array_keys' => 'Dieses Feld muss Einträge enthalten für: :values.', - 'required_if' => ':Attribute muss ausgefüllt werden, wenn :other den Wert :value hat.', - 'required_if_accepted' => ':Attribute muss ausgefüllt werden, wenn :other gewählt ist.', - 'required_if_declined' => 'Das Feld :attribute ist erforderlich, wenn :other abgelehnt wird.', - 'required_unless' => ':Attribute muss ausgefüllt werden, wenn :other nicht den Wert :values hat.', - 'required_with' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.', - 'required_with_all' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.', - 'required_without' => ':Attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt wurde.', - 'required_without_all' => ':Attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt wurde.', - 'same' => ':Attribute und :other müssen übereinstimmen.', - 'size' => [ - 'array' => ':Attribute muss genau :size Elemente haben.', - 'file' => ':Attribute muss :size Kilobyte groß sein.', + 'prohibited_unless' => ':Attribute ist unzulässig, wenn :other nicht :values ist.', + 'prohibits' => ':Attribute verbietet die Angabe von :other.', + 'regex' => ':Attribute Format ist ungültig.', + 'required' => ':Attribute muss ausgefüllt werden.', + 'required_array_keys' => 'Dieses Feld muss Einträge enthalten für: :values.', + 'required_if' => ':Attribute muss ausgefüllt werden, wenn :other den Wert :value hat.', + 'required_if_accepted' => ':Attribute muss ausgefüllt werden, wenn :other gewählt ist.', + 'required_if_declined' => 'Das Feld :attribute ist erforderlich, wenn :other abgelehnt wird.', + 'required_unless' => ':Attribute muss ausgefüllt werden, wenn :other nicht den Wert :values hat.', + 'required_with' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.', + 'required_with_all' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.', + 'required_without' => ':Attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt wurde.', + 'required_without_all' => ':Attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt wurde.', + 'same' => ':Attribute und :other müssen übereinstimmen.', + 'size' => [ + 'array' => ':Attribute muss genau :size Elemente haben.', + 'file' => ':Attribute muss :size Kilobyte groß sein.', 'numeric' => ':Attribute muss gleich :size sein.', - 'string' => ':Attribute muss :size Zeichen lang sein.', + 'string' => ':Attribute muss :size Zeichen lang sein.', ], - 'starts_with' => ':Attribute muss mit einem der folgenden Anfänge aufweisen: :values', - 'string' => ':Attribute muss ein String sein.', - 'timezone' => ':Attribute muss eine gültige Zeitzone sein.', - 'ulid' => 'Die :attribute muss eine gültige ULID sein.', - 'unique' => ':Attribute ist bereits vergeben.', - 'uploaded' => ':Attribute konnte nicht hochgeladen werden.', - 'uppercase' => ':Attribute muss in Großbuchstaben sein.', - 'url' => ':Attribute muss eine URL sein.', - 'uuid' => ':Attribute muss ein UUID sein.', + 'starts_with' => ':Attribute muss mit einem der folgenden Anfänge aufweisen: :values', + 'string' => ':Attribute muss ein String sein.', + 'timezone' => ':Attribute muss eine gültige Zeitzone sein.', + 'ulid' => 'Die :attribute muss eine gültige ULID sein.', + 'unique' => ':Attribute ist bereits vergeben.', + 'uploaded' => ':Attribute konnte nicht hochgeladen werden.', + 'uppercase' => ':Attribute muss in Großbuchstaben sein.', + 'url' => ':Attribute muss eine URL sein.', + 'uuid' => ':Attribute muss ein UUID sein.', ]; diff --git a/lang/en.json b/lang/en.json index c2f72c9..7472c72 100644 --- a/lang/en.json +++ b/lang/en.json @@ -2,13 +2,16 @@ "(and :count more error)": "(and :count more error)", "(and :count more errors)": "(and :count more error)|(and :count more errors)|(and :count more errors)", "2FA Recovery Codes": "2FA Recovery Codes", + "2FA recovery codes": "2FA recovery codes", ":count Events erfolgreich erstellt!": ":count events successfully created!", + ":inviterName has invited you to join the :teamName team.": ":inviterName has invited you to join the :teamName team.", "A decryption key is required.": "A decryption key is required.", "A new verification link has been sent to the email address you provided during registration.": "A new verification link has been sent to the email address you provided during registration.", "A new verification link has been sent to your email address.": "A new verification link has been sent to your email address.", "A reset link will be sent if the account exists.": "A reset link will be sent if the account exists.", "Abbrechen": "Cancel", "Absagen": "Cancel", + "Accept invitation": "Accept invitation", "Actions": "Actions", "Aktionen": "Actions", "Aktiv": "Active", @@ -28,6 +31,7 @@ "Alle Meetups anzeigen": "Show all meetups", "Allgemeine Bitcoin Community": "General Bitcoin Community", "Already have an account?": "Already have an account?", + "An invitation has already been sent to this email address.": "An invitation has already been sent to this email address.", "An welchem Tag beginnt das Event?": "On which day does the event start?", "An welchem Tag endet das Event?": "On which day does the event end?", "An welchem Tag findet das Event statt?": "On which day does the event take place?", @@ -39,13 +43,18 @@ "App": "App", "Appearance": "Appearance", "Appearance Settings": "Appearance Settings", + "Appearance settings": "Appearance settings", + "Are you sure you want to cancel the invitation for :email?": "Are you sure you want to cancel the invitation for :email?", "Are you sure you want to delete your account?": "Are you sure you want to delete your account?", + "Are you sure you want to remove :name from this team?": "Are you sure you want to remove :name from this team?", + "Are you sure?": "Are you sure?", "Art des Services": "Type of service", "Auf Karte sichtbar": "Visible on map", "aus deinen Meetups entfernen?": "remove from your meetups?", "Ausführliche Beschreibung des Kurses": "Detailed description of the course", "Ausführliche Beschreibung und Biografie": "Detailed description and biography", "Authentication Code": "Authentication Code", + "Authentication code": "Authentication code", "Automatisch (gleiches Datum)": "Automatic (same date)", "Automatisch (wie Startdatum)": "Automatic (like start date)", "Back": "Back", @@ -71,6 +80,7 @@ "BooksForPlebs": "BooksForPlebs", "Breitengrad": "Latitude", "Cancel": "Cancel", + "Cancel invitation": "Cancel invitation", "Cities": "Cities", "City": "City", "City successfully created!": "City successfully created!", @@ -88,9 +98,11 @@ "Copied into clipboard": "Copied into clipboard", "Copy": "Copy", "Country": "Country", + "Create a new team": "Create a new team", "Create account": "Create account", "Create an account": "Create an account", "Create City": "Create City", + "Create team": "Create team", "Create Venue": "Create Venue", "Created at": "Created at", "Created By": "Created By", @@ -103,6 +115,7 @@ "Datum des letzten Termins": "Date of last event", "Dein Name": "Your name", "Delete account": "Delete account", + "Delete team": "Delete team", "Delete your account and all of its resources": "Delete your account and all of its resources", "Demographics": "Demographics", "Der Anzeigename für diesen Kurs": "The display name for this course", @@ -140,8 +153,11 @@ "Du kannst es jederzeit wieder hinzufügen.": "You can add it again anytime.", "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Browse all cities with active Bitcoin Meetups and find events near you.", "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.", "Edit": "Edit", + "Edit :name": "Edit :name", "Edit City": "Edit City", + "Edit team": "Edit team", "Edit Venue": "Edit Venue", "Einführung": "Introduction", "Einundzwanzig Community": "Twenty One Community", @@ -150,8 +166,10 @@ "Email Address": "Email Address", "Email address": "Email address", "Email password reset link": "Email password reset link", + "Email verification": "Email verification", "Enable 2FA": "Enable 2FA", "Enable Two-Factor Authentication": "Enable Two-Factor Authentication", + "Enable two-factor authentication": "Enable two-factor authentication", "Enabled": "Enabled", "Encrypted environment file already exists.": "Encrypted environment file already exists.", "Encrypted environment file not found.": "Encrypted environment file not found.", @@ -211,10 +229,12 @@ "Für regelmäßige Termine wie \"immer am letzten Freitag des Monats\":": "For recurring dates like \"always on the last Friday of the month\":", "Gemeinschaft": "Community", "Gemeinschafts- oder Organisationsname": "Community or organization name", + "Give your team a name to get started.": "Give your team a name to get started.", "Go to page :page": "Go to page :page", "Grundlegende Informationen": "Basic information", "Hello!": "Hello!", "Hide Recovery Codes": "Hide Recovery Codes", + "Hide recovery codes": "Hide recovery codes", "I2P Adresse": "I2P address", "Ich komme": "I'm coming", "ID": "ID", @@ -227,6 +247,11 @@ "Intervall": "Interval", "Invalid filename.": "Invalid filename.", "Invalid JSON was returned from the route.": "Invalid JSON was returned from the route.", + "Invitation cancelled.": "Invitation cancelled.", + "Invitation sent.": "Invitation sent.", + "Invitations that have not been accepted yet": "Invitations that have not been accepted yet", + "Invite a team member": "Invite a team member", + "Invite member": "Invite member", "IP Adresse": "IP address", "Ist dieser Dozent aktiv?": "Is this lecturer active?", "Jetzt erstellen": "Create now", @@ -234,6 +259,7 @@ "Kalender-Stream-URL kopieren": "Copy calendar stream URL", "Karte": "Map", "Kartenansicht öffnen": "Open map view", + "Keep invitation": "Keep invitation", "Keine": "None", "Keine Aktivitäten": "No Activities", "Keine bevorstehenden Termine": "No upcoming dates", @@ -295,7 +321,10 @@ "Länder mit den meisten Usern": "Countries with Most Users", "Längengrad": "Longitude", "Löschen": "Delete", + "Manage who belongs to this team": "Manage who belongs to this team", "Manage your profile and account settings": "Manage your profile and account settings", + "Manage your team settings": "Manage your team settings", + "Manage your teams and team memberships": "Manage your teams and team memberships", "Manage your two-factor authentication settings": "Manage your two-factor authentication settings", "Matrix": "Matrix", "Matrix Gruppe": "Matrix Group", @@ -314,6 +343,8 @@ "Mehr Informationen": "More information", "Meine Meetups": "My Meetups", "Meine nächsten Meetup Termine": "My upcoming meetup dates", + "Member removed.": "Member removed.", + "Member role updated.": "Member role updated.", "Mindestens eine URL muss angegeben werden.": "At least one URL must be provided.", "Mindestens eine URL oder IP muss angegeben werden.": "At least one URL or IP must be provided.", "Mittwoch": "Wednesday", @@ -337,6 +368,7 @@ "Neues Meetup": "New Meetup", "Neues Meetup erstellen": "Create new meetup", "New password": "New password", + "New team": "New team", "no location set": "no location set", "Node ID": "Node ID", "Normale Web-URL": "Normal web URL", @@ -365,16 +397,21 @@ "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Customize the appearance of your Bitcoin Meetup profile.", "Password": "Password", "Password Settings": "Password Settings", + "Password updated.": "Password updated.", "Passwort ändern - Bitcoin Meetups": "Change Password - Bitcoin Meetups", "Payment Required": "Payment Required", "PayNym": "PayNym", "PayNym für Bitcoin-Zahlungen": "PayNym for Bitcoin payments", + "Pending invitations": "Pending invitations", + "Permanently delete your team": "Permanently delete your team", + "Personal": "Personal", "Persönliche Webseite oder Portfolio": "Personal website or portfolio", "Pkarr DNS Adresse": "Pkarr DNS address", "Platform": "Platform", "Please click the button below to verify your email address.": "Please click the button below to verify your email address.", "Please confirm access to your account by entering one of your emergency recovery codes.": "Please confirm access to your account by entering one of your emergency recovery codes.", "Please enter your new password below": "Please enter your new password below", + "Please proceed with caution, this cannot be undone.": "Please proceed with caution, this cannot be undone.", "Please verify your email address by clicking on the link we just emailed to you.": "Please verify your email address by clicking on the link we just emailed to you.", "Population": "Population", "Population Date": "Population Date", @@ -383,29 +420,41 @@ "Profil bearbeiten - Bitcoin Meetups": "Edit Profile - Bitcoin Meetups", "Profile": "Profile", "Profile Settings": "Profile Settings", + "Profile settings": "Profile settings", + "Profile updated.": "Profile updated.", "Recovery Code": "Recovery Code", + "Recovery code": "Recovery code", "Recovery codes": "Recovery codes", "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.", "Regards,": "Regards,", "Regenerate Codes": "Regenerate Codes", + "Regenerate codes": "Regenerate codes", "Register": "Register", "Remember me": "Remember me", + "Remove member": "Remove member", + "Remove team member": "Remove team member", "Repository": "Repository", "Resend verification email": "Resend verification email", "Reset Password": "Reset Password", "Reset password": "Reset password", "Reset Password Notification": "Reset Password Notification", "results": "results", + "Role": "Role", "Samstag": "Saturday", "Save": "Save", "Saved.": "Saved.", "Search": "Search", "Search cities...": "Search cities...", "Search venues...": "Search venues...", + "Security": "Security", + "Security settings": "Security settings", "Select a city": "Select a city", "Select a country": "Select a country", + "Select team": "Select team", "Self Hosted Services": "Self-Hosted Services", "Self-Hosted Services - Übersicht": "Self-Hosted Services - Overview", + "Send an invitation to join this team.": "Send an invitation to join this team.", + "Send invitation": "Send invitation", "Serientermine erstellen": "Create recurring events", "Serientermine erstellen?": "Create recurring events?", "Server Error": "Server Error", @@ -463,15 +512,28 @@ "System": "System", "System-generierte ID (nur lesbar)": "System generated ID (read-only)", "Systeminformationen": "System information", + "Team created.": "Team created.", + "Team deleted.": "Team deleted.", + "Team members": "Team members", + "Team name": "Team name", + "Team updated.": "Team updated.", + "Teams": "Teams", "Teilnahme": "Participation", "Telegram": "Telegram", "Telegram Link": "Telegram Link", "The given data was invalid.": "The given data was invalid.", "The response is not a streamed response.": "The response is not a streamed response.", "The response is not a view.": "The response is not a view.", + "The team name does not match.": "The team name does not match.", + "This action cannot be undone. This will permanently delete the team \":name\".": "This action cannot be undone. This will permanently delete the team \":name\".", "This action is unauthorized.": "This action is unauthorized.", + "This invitation has already been accepted.": "This invitation has already been accepted.", + "This invitation has expired.": "This invitation has expired.", + "This invitation was sent to a different email address.": "This invitation was sent to a different email address.", "This is a secure area of the application. Please confirm your password before continuing.": "This is a secure area of the application. Please confirm your password before continuing.", "This password reset link will expire in :count minutes.": "This password reset link will expire in :count minutes.", + "This team name is reserved and cannot be used.": "This team name is reserved and cannot be used.", + "This user is already a member of the team.": "This user is already a member of the team.", "to": "to", "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.", "Toggle navigation": "Toggle navigation", @@ -485,10 +547,13 @@ "Twitter-Handle ohne @ Symbol": "Twitter handle without @ symbol", "Two Factor Authentication": "Two Factor Authentication", "Two-Factor Auth": "Two-Factor Auth", + "Two-factor authentication": "Two-factor authentication", "Two-Factor Authentication Enabled": "Two-Factor Authentication Enabled", + "Two-factor authentication enabled": "Two-factor authentication enabled", "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.", "Two-Factor Authentication Settings": "Two-Factor Authentication Settings", "Typ": "Type", + "Type \":name\" to confirm": "Type \":name\" to confirm", "Täglich": "Daily", "Uhr": "o'clock", "Uhrzeit": "Time", @@ -523,12 +588,16 @@ "Veranstaltungsorte - Übersicht": "Venues - Overview", "Verbinde dich mit Bitcoinern in deiner Nähe": "Connect with Bitcoiners near you", "Verify Authentication Code": "Verify Authentication Code", + "Verify authentication code": "Verify authentication code", "Verify Email Address": "Verify Email Address", "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Manage your Bitcoin Meetups, events and settings in your personal dashboard.", "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Manage the dates and details of your Bitcoin education events.", "Vielleicht": "Maybe", "Vierter": "Fourth", + "View :name": "View :name", "View Recovery Codes": "View Recovery Codes", + "View recovery codes": "View recovery codes", + "View team": "View team", "Vollständiger Name des Dozenten": "Full name of the lecturer", "Vorschau auf 100 Termine begrenzt. Es werden möglicherweise mehr Termine erstellt.": "Preview limited to 100 events. More events may be created.", "Vorschau der Termine": "Preview of events", @@ -539,10 +608,12 @@ "Wann dieses Meetup erstellt wurde": "When this meetup was created", "Wann endet das Event?": "When does the event end?", "Wann findet das Event statt?": "When does the event take place?", + "Warning": "Warning", "Webseite": "Website", "Website": "Website", "weitere Termine": "more dates", "Welcher Wochentag im Monat? (z.B. \"letzter Freitag": "Which day of the month? (e.g. \"last Friday\"", + "Welcome": "Welcome", "Welt-Karte": "World Map", "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Become a Bitcoin lecturer and share your expert knowledge with the community.", "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.", @@ -564,6 +635,9 @@ "Wähle die Stadt aus...": "Select the city...", "Wöchentlich": "Weekly", "You are receiving this email because we received a password reset request for your account.": "You are receiving this email because we received a password reset request for your account.", + "You don't belong to any teams yet.": "You don't belong to any teams yet.", + "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.", + "You've been invited to join :teamName": "You've been invited to join :teamName", "Your email address is unverified.": "Your email address is unverified.", "z.B. Berlin": "e.g. Berlin", "z.B. Bitcoin Zentrum München": "e.g. Bitcoin Center Munich", diff --git a/lang/en/validation.php b/lang/en/validation.php index 1dd841f..8706bf9 100644 --- a/lang/en/validation.php +++ b/lang/en/validation.php @@ -3,156 +3,157 @@ declare(strict_types=1); return [ - 'accepted' => 'The :attribute field must be accepted.', - 'accepted_if' => 'The :attribute field must be accepted when :other is :value.', - 'active_url' => 'The :attribute field must be a valid URL.', - 'after' => 'The :attribute field must be a date after :date.', - 'after_or_equal' => 'The :attribute field must be a date after or equal to :date.', - 'alpha' => 'The :attribute field must only contain letters.', - 'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.', - 'alpha_num' => 'The :attribute field must only contain letters and numbers.', - 'any_of' => 'The :attribute field is invalid.', - 'array' => 'The :attribute field must be an array.', - 'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.', - 'before' => 'The :attribute field must be a date before :date.', - 'before_or_equal' => 'The :attribute field must be a date before or equal to :date.', - 'between' => [ - 'array' => 'The :attribute field must have between :min and :max items.', - 'file' => 'The :attribute field must be between :min and :max kilobytes.', + 'accepted' => 'The :attribute field must be accepted.', + 'accepted_if' => 'The :attribute field must be accepted when :other is :value.', + 'active_url' => 'The :attribute field must be a valid URL.', + 'after' => 'The :attribute field must be a date after :date.', + 'after_or_equal' => 'The :attribute field must be a date after or equal to :date.', + 'alpha' => 'The :attribute field must only contain letters.', + 'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.', + 'alpha_num' => 'The :attribute field must only contain letters and numbers.', + 'any_of' => 'The :attribute field is invalid.', + 'array' => 'The :attribute field must be an array.', + 'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.', + 'before' => 'The :attribute field must be a date before :date.', + 'before_or_equal' => 'The :attribute field must be a date before or equal to :date.', + 'between' => [ + 'array' => 'The :attribute field must have between :min and :max items.', + 'file' => 'The :attribute field must be between :min and :max kilobytes.', 'numeric' => 'The :attribute field must be between :min and :max.', - 'string' => 'The :attribute field must be between :min and :max characters.', + 'string' => 'The :attribute field must be between :min and :max characters.', ], - 'boolean' => 'The :attribute field must be true or false.', - 'can' => 'The :attribute field contains an unauthorized value.', - 'confirmed' => 'The :attribute field confirmation does not match.', - 'contains' => 'The :attribute field is missing a required value.', - 'current_password' => 'The password is incorrect.', - 'date' => 'The :attribute field must be a valid date.', - 'date_equals' => 'The :attribute field must be a date equal to :date.', - 'date_format' => 'The :attribute field must match the format :format.', - 'decimal' => 'The :attribute field must have :decimal decimal places.', - 'declined' => 'The :attribute field must be declined.', - 'declined_if' => 'The :attribute field must be declined when :other is :value.', - 'different' => 'The :attribute field and :other must be different.', - 'digits' => 'The :attribute field must be :digits digits.', - 'digits_between' => 'The :attribute field must be between :min and :max digits.', - 'dimensions' => 'The :attribute field has invalid image dimensions.', - 'distinct' => 'The :attribute field has a duplicate value.', - 'doesnt_contain' => 'The :attribute field must not contain any of the following: :values.', - 'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.', - 'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.', - 'email' => 'The :attribute field must be a valid email address.', - 'ends_with' => 'The :attribute field must end with one of the following: :values.', - 'enum' => 'The selected :attribute is invalid.', - 'exists' => 'The selected :attribute is invalid.', - 'extensions' => 'The :attribute field must have one of the following extensions: :values.', - 'file' => 'The :attribute field must be a file.', - 'filled' => 'The :attribute field must have a value.', - 'gt' => [ - 'array' => 'The :attribute field must have more than :value items.', - 'file' => 'The :attribute field must be greater than :value kilobytes.', + 'boolean' => 'The :attribute field must be true or false.', + 'can' => 'The :attribute field contains an unauthorized value.', + 'confirmed' => 'The :attribute field confirmation does not match.', + 'contains' => 'The :attribute field is missing a required value.', + 'current_password' => 'The password is incorrect.', + 'date' => 'The :attribute field must be a valid date.', + 'date_equals' => 'The :attribute field must be a date equal to :date.', + 'date_format' => 'The :attribute field must match the format :format.', + 'decimal' => 'The :attribute field must have :decimal decimal places.', + 'declined' => 'The :attribute field must be declined.', + 'declined_if' => 'The :attribute field must be declined when :other is :value.', + 'different' => 'The :attribute field and :other must be different.', + 'digits' => 'The :attribute field must be :digits digits.', + 'digits_between' => 'The :attribute field must be between :min and :max digits.', + 'dimensions' => 'The :attribute field has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'doesnt_contain' => 'The :attribute field must not contain any of the following: :values.', + 'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.', + 'email' => 'The :attribute field must be a valid email address.', + 'encoding' => 'The :attribute field must be encoded in :encoding.', + 'ends_with' => 'The :attribute field must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'extensions' => 'The :attribute field must have one of the following extensions: :values.', + 'file' => 'The :attribute field must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'array' => 'The :attribute field must have more than :value items.', + 'file' => 'The :attribute field must be greater than :value kilobytes.', 'numeric' => 'The :attribute field must be greater than :value.', - 'string' => 'The :attribute field must be greater than :value characters.', + 'string' => 'The :attribute field must be greater than :value characters.', ], - 'gte' => [ - 'array' => 'The :attribute field must have :value items or more.', - 'file' => 'The :attribute field must be greater than or equal to :value kilobytes.', + 'gte' => [ + 'array' => 'The :attribute field must have :value items or more.', + 'file' => 'The :attribute field must be greater than or equal to :value kilobytes.', 'numeric' => 'The :attribute field must be greater than or equal to :value.', - 'string' => 'The :attribute field must be greater than or equal to :value characters.', + 'string' => 'The :attribute field must be greater than or equal to :value characters.', ], - 'hex_color' => 'The :attribute field must be a valid hexadecimal color.', - 'image' => 'The :attribute field must be an image.', - 'in' => 'The selected :attribute is invalid.', - 'in_array' => 'The :attribute field must exist in :other.', - 'in_array_keys' => 'The :attribute field must contain at least one of the following keys: :values.', - 'integer' => 'The :attribute field must be an integer.', - 'ip' => 'The :attribute field must be a valid IP address.', - 'ipv4' => 'The :attribute field must be a valid IPv4 address.', - 'ipv6' => 'The :attribute field must be a valid IPv6 address.', - 'json' => 'The :attribute field must be a valid JSON string.', - 'list' => 'The :attribute field must be a list.', - 'lowercase' => 'The :attribute field must be lowercase.', - 'lt' => [ - 'array' => 'The :attribute field must have less than :value items.', - 'file' => 'The :attribute field must be less than :value kilobytes.', + 'hex_color' => 'The :attribute field must be a valid hexadecimal color.', + 'image' => 'The :attribute field must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field must exist in :other.', + 'in_array_keys' => 'The :attribute field must contain at least one of the following keys: :values.', + 'integer' => 'The :attribute field must be an integer.', + 'ip' => 'The :attribute field must be a valid IP address.', + 'ipv4' => 'The :attribute field must be a valid IPv4 address.', + 'ipv6' => 'The :attribute field must be a valid IPv6 address.', + 'json' => 'The :attribute field must be a valid JSON string.', + 'list' => 'The :attribute field must be a list.', + 'lowercase' => 'The :attribute field must be lowercase.', + 'lt' => [ + 'array' => 'The :attribute field must have less than :value items.', + 'file' => 'The :attribute field must be less than :value kilobytes.', 'numeric' => 'The :attribute field must be less than :value.', - 'string' => 'The :attribute field must be less than :value characters.', + 'string' => 'The :attribute field must be less than :value characters.', ], - 'lte' => [ - 'array' => 'The :attribute field must not have more than :value items.', - 'file' => 'The :attribute field must be less than or equal to :value kilobytes.', + 'lte' => [ + 'array' => 'The :attribute field must not have more than :value items.', + 'file' => 'The :attribute field must be less than or equal to :value kilobytes.', 'numeric' => 'The :attribute field must be less than or equal to :value.', - 'string' => 'The :attribute field must be less than or equal to :value characters.', + 'string' => 'The :attribute field must be less than or equal to :value characters.', ], - 'mac_address' => 'The :attribute field must be a valid MAC address.', - 'max' => [ - 'array' => 'The :attribute field must not have more than :max items.', - 'file' => 'The :attribute field must not be greater than :max kilobytes.', + 'mac_address' => 'The :attribute field must be a valid MAC address.', + 'max' => [ + 'array' => 'The :attribute field must not have more than :max items.', + 'file' => 'The :attribute field must not be greater than :max kilobytes.', 'numeric' => 'The :attribute field must not be greater than :max.', - 'string' => 'The :attribute field must not be greater than :max characters.', + 'string' => 'The :attribute field must not be greater than :max characters.', ], - 'max_digits' => 'The :attribute field must not have more than :max digits.', - 'mimes' => 'The :attribute field must be a file of type: :values.', - 'mimetypes' => 'The :attribute field must be a file of type: :values.', - 'min' => [ - 'array' => 'The :attribute field must have at least :min items.', - 'file' => 'The :attribute field must be at least :min kilobytes.', + 'max_digits' => 'The :attribute field must not have more than :max digits.', + 'mimes' => 'The :attribute field must be a file of type: :values.', + 'mimetypes' => 'The :attribute field must be a file of type: :values.', + 'min' => [ + 'array' => 'The :attribute field must have at least :min items.', + 'file' => 'The :attribute field must be at least :min kilobytes.', 'numeric' => 'The :attribute field must be at least :min.', - 'string' => 'The :attribute field must be at least :min characters.', + 'string' => 'The :attribute field must be at least :min characters.', ], - 'min_digits' => 'The :attribute field must have at least :min digits.', - 'missing' => 'The :attribute field must be missing.', - 'missing_if' => 'The :attribute field must be missing when :other is :value.', - 'missing_unless' => 'The :attribute field must be missing unless :other is :value.', - 'missing_with' => 'The :attribute field must be missing when :values is present.', - 'missing_with_all' => 'The :attribute field must be missing when :values are present.', - 'multiple_of' => 'The :attribute field must be a multiple of :value.', - 'not_in' => 'The selected :attribute is invalid.', - 'not_regex' => 'The :attribute field format is invalid.', - 'numeric' => 'The :attribute field must be a number.', - 'password' => [ - 'letters' => 'The :attribute field must contain at least one letter.', - 'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.', - 'numbers' => 'The :attribute field must contain at least one number.', - 'symbols' => 'The :attribute field must contain at least one symbol.', + 'min_digits' => 'The :attribute field must have at least :min digits.', + 'missing' => 'The :attribute field must be missing.', + 'missing_if' => 'The :attribute field must be missing when :other is :value.', + 'missing_unless' => 'The :attribute field must be missing unless :other is :value.', + 'missing_with' => 'The :attribute field must be missing when :values is present.', + 'missing_with_all' => 'The :attribute field must be missing when :values are present.', + 'multiple_of' => 'The :attribute field must be a multiple of :value.', + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute field format is invalid.', + 'numeric' => 'The :attribute field must be a number.', + 'password' => [ + 'letters' => 'The :attribute field must contain at least one letter.', + 'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute field must contain at least one number.', + 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], - 'present' => 'The :attribute field must be present.', - 'present_if' => 'The :attribute field must be present when :other is :value.', - 'present_unless' => 'The :attribute field must be present unless :other is :value.', - 'present_with' => 'The :attribute field must be present when :values is present.', - 'present_with_all' => 'The :attribute field must be present when :values are present.', - 'prohibited' => 'The :attribute field is prohibited.', - 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'present' => 'The :attribute field must be present.', + 'present_if' => 'The :attribute field must be present when :other is :value.', + 'present_unless' => 'The :attribute field must be present unless :other is :value.', + 'present_with' => 'The :attribute field must be present when :values is present.', + 'present_with_all' => 'The :attribute field must be present when :values are present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', 'prohibited_if_accepted' => 'The :attribute field is prohibited when :other is accepted.', 'prohibited_if_declined' => 'The :attribute field is prohibited when :other is declined.', - 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', - 'prohibits' => 'The :attribute field prohibits :other from being present.', - 'regex' => 'The :attribute field format is invalid.', - 'required' => 'The :attribute field is required.', - 'required_array_keys' => 'The :attribute field must contain entries for: :values.', - 'required_if' => 'The :attribute field is required when :other is :value.', - 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', - 'required_if_declined' => 'The :attribute field is required when :other is declined.', - 'required_unless' => 'The :attribute field is required unless :other is in :values.', - 'required_with' => 'The :attribute field is required when :values is present.', - 'required_with_all' => 'The :attribute field is required when :values are present.', - 'required_without' => 'The :attribute field is required when :values is not present.', - 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'same' => 'The :attribute field must match :other.', - 'size' => [ - 'array' => 'The :attribute field must contain :size items.', - 'file' => 'The :attribute field must be :size kilobytes.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', + 'regex' => 'The :attribute field format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', + 'required_if_declined' => 'The :attribute field is required when :other is declined.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values are present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute field must match :other.', + 'size' => [ + 'array' => 'The :attribute field must contain :size items.', + 'file' => 'The :attribute field must be :size kilobytes.', 'numeric' => 'The :attribute field must be :size.', - 'string' => 'The :attribute field must be :size characters.', + 'string' => 'The :attribute field must be :size characters.', ], - 'starts_with' => 'The :attribute field must start with one of the following: :values.', - 'string' => 'The :attribute field must be a string.', - 'timezone' => 'The :attribute field must be a valid timezone.', - 'ulid' => 'The :attribute field must be a valid ULID.', - 'unique' => 'The :attribute has already been taken.', - 'uploaded' => 'The :attribute failed to upload.', - 'uppercase' => 'The :attribute field must be uppercase.', - 'url' => 'The :attribute field must be a valid URL.', - 'uuid' => 'The :attribute field must be a valid UUID.', + 'starts_with' => 'The :attribute field must start with one of the following: :values.', + 'string' => 'The :attribute field must be a string.', + 'timezone' => 'The :attribute field must be a valid timezone.', + 'ulid' => 'The :attribute field must be a valid ULID.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'uppercase' => 'The :attribute field must be uppercase.', + 'url' => 'The :attribute field must be a valid URL.', + 'uuid' => 'The :attribute field must be a valid UUID.', ]; diff --git a/lang/es.json b/lang/es.json index a2fa07a..07fe069 100644 --- a/lang/es.json +++ b/lang/es.json @@ -2,13 +2,16 @@ "(and :count more error)": "(y :count error más)", "(and :count more errors)": "(y :count error más)|(y :count errores más)|(y :count errores más)", "2FA Recovery Codes": "Códigos de recuperación de 2FA", + "2FA recovery codes": "Códigos de recuperación 2FA", ":count Events erfolgreich erstellt!": "¡:count eventos creados exitosamente!", + ":inviterName has invited you to join the :teamName team.": ":inviterName le ha invitado a unirse al equipo :teamName.", "A decryption key is required.": "Se requiere una clave de descifrado.", "A new verification link has been sent to the email address you provided during registration.": "Se ha enviado un nuevo enlace de verificación a la dirección de correo electrónico que proporcionó durante el registro.", "A new verification link has been sent to your email address.": "Se ha enviado un nuevo enlace de verificación a su dirección de correo electrónico.", "A reset link will be sent if the account exists.": "Se enviará un enlace de restablecimiento si la cuenta existe.", "Abbrechen": "Cancelar", "Absagen": "Cancelar", + "Accept invitation": "Aceptar invitación", "Actions": "Acciones", "Aktionen": "Acciones", "Aktiv": "Activo", @@ -28,6 +31,7 @@ "Alle Meetups anzeigen": "Mostrar todos los encuentros", "Allgemeine Bitcoin Community": "Comunidad General de Bitcoin", "Already have an account?": "¿Ya tiene una cuenta?", + "An invitation has already been sent to this email address.": "Ya se ha enviado una invitación a esta dirección de correo electrónico.", "An welchem Tag beginnt das Event?": "¿En qué día comienza el evento?", "An welchem Tag endet das Event?": "¿En qué día termina el evento?", "An welchem Tag findet das Event statt?": "¿En qué día se lleva a cabo el evento?", @@ -39,13 +43,18 @@ "App": "Aplicación", "Appearance": "Apariencia", "Appearance Settings": "Configuración de Apariencia", + "Appearance settings": "Ajustes de apariencia", + "Are you sure you want to cancel the invitation for :email?": "¿Está seguro que desea cancelar la invitación para :email?", "Are you sure you want to delete your account?": "¿Está seguro que desea eliminar su cuenta?", + "Are you sure you want to remove :name from this team?": "¿Está seguro que desea eliminar a :name de este equipo?", + "Are you sure?": "¿Está seguro?", "Art des Services": "Tipo de servicio", "Auf Karte sichtbar": "Visible en el mapa", "aus deinen Meetups entfernen?": "eliminar de tus encuentros?", "Ausführliche Beschreibung des Kurses": "Descripción detallada del curso", "Ausführliche Beschreibung und Biografie": "Descripción detallada y biografía", "Authentication Code": "Código de autenticación", + "Authentication code": "Código de autenticación", "Automatisch (gleiches Datum)": "Automático (misma fecha)", "Automatisch (wie Startdatum)": "Automático (como fecha de inicio)", "Back": "Atrás", @@ -71,6 +80,7 @@ "BooksForPlebs": "LibrosParaPlebs", "Breitengrad": "Latitud", "Cancel": "Cancelar", + "Cancel invitation": "Cancelar invitación", "Cities": "Ciudades", "City": "Ciudad", "City successfully created!": "¡Ciudad creada exitosamente!", @@ -88,9 +98,11 @@ "Copied into clipboard": "Copiado al portapapeles", "Copy": "Copiar", "Country": "País", + "Create a new team": "Crear un nuevo equipo", "Create account": "Crear cuenta", "Create an account": "Crear una cuenta", "Create City": "Crear ciudad", + "Create team": "Crear equipo", "Create Venue": "Crear lugar", "Created at": "Creado el", "Created By": "Creado por", @@ -103,6 +115,7 @@ "Datum des letzten Termins": "Fecha del último evento", "Dein Name": "Tu nombre", "Delete account": "Eliminar cuenta", + "Delete team": "Eliminar equipo", "Delete your account and all of its resources": "Elimine su cuenta y todos sus recursos", "Demographics": "Demografía", "Der Anzeigename für diesen Kurs": "El nombre para mostrar de este curso", @@ -140,8 +153,11 @@ "Du kannst es jederzeit wieder hinzufügen.": "Puedes volver a añadirlo en cualquier momento.", "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Busca todas las ciudades con Encuentros Bitcoin activos y encuentra eventos cerca de ti.", "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Cada código de recuperación se puede usar una vez para acceder a su cuenta y se eliminará después de usarlo. Si necesita más, haga clic arriba en \"Regenerar códigos\".", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.": "Cada código de recuperación se puede usar una vez para acceder a su cuenta y se eliminará después de usarlo. Si necesita más, haga clic arriba en \"Regenerar códigos\".", "Edit": "Editar", + "Edit :name": "Editar :name", "Edit City": "Editar ciudad", + "Edit team": "Editar equipo", "Edit Venue": "Editar lugar", "Einführung": "Introducción", "Einundzwanzig Community": "Comunidad Veintiuno", @@ -150,8 +166,10 @@ "Email Address": "Correo electrónico", "Email address": "Correo electrónico", "Email password reset link": "Enviar enlace de restablecimiento de contraseña", + "Email verification": "Verificación de correo", "Enable 2FA": "Habilitar 2FA", "Enable Two-Factor Authentication": "Habilitar autenticación de dos factores", + "Enable two-factor authentication": "Habilitar autenticación doble factor", "Enabled": "Habilitado", "Encrypted environment file already exists.": "El archivo de entorno cifrado ya existe.", "Encrypted environment file not found.": "No se encontró el archivo de entorno cifrado.", @@ -211,10 +229,12 @@ "Für regelmäßige Termine wie \"immer am letzten Freitag des Monats\":": "Para citas regulares como \"siempre el último viernes del mes\":", "Gemeinschaft": "Comunidad", "Gemeinschafts- oder Organisationsname": "Nombre de la comunidad u organización", + "Give your team a name to get started.": "Asigne un nombre a su equipo para comenzar.", "Go to page :page": "Ir a la página :page", "Grundlegende Informationen": "Información básica", "Hello!": "¡Hola!", "Hide Recovery Codes": "Ocultar códigos de recuperación", + "Hide recovery codes": "Ocultar códigos de recuperación", "I2P Adresse": "Dirección I2P", "Ich komme": "Asistiré", "ID": "ID", @@ -227,6 +247,11 @@ "Intervall": "Intervalo", "Invalid filename.": "Nombre de archivo no válido.", "Invalid JSON was returned from the route.": "Se devolvió un JSON no válido desde la ruta.", + "Invitation cancelled.": "Invitación cancelada.", + "Invitation sent.": "Invitación enviada.", + "Invitations that have not been accepted yet": "Invitaciones que aún no han sido aceptadas", + "Invite a team member": "Invitar un miembro al equipo", + "Invite member": "Invitar miembro", "IP Adresse": "Dirección IP", "Ist dieser Dozent aktiv?": "¿Está activo este profesor?", "Jetzt erstellen": "Crear ahora", @@ -234,6 +259,7 @@ "Kalender-Stream-URL kopieren": "Copiar URL del flujo del calendario", "Karte": "Mapa", "Kartenansicht öffnen": "Abrir vista de mapa", + "Keep invitation": "Mantener invitación", "Keine": "Ninguno", "Keine Aktivitäten": "Sin actividades", "Keine bevorstehenden Termine": "No hay eventos próximos", @@ -259,6 +285,7 @@ "Land": "País", "Land auswählen": "Seleccionar país", "Latitude": "Latitud", + "length": "longitud", "Lerne alles über Bitcoin - von den Grundlagen bis zu fortgeschrittenen Themen.": "Aprende todo sobre Bitcoin - desde lo básico hasta temas avanzados.", "Lerne unsere erfahrenen Bitcoin-Dozenten und ihre Expertise kennen.": "Conoce a nuestros experimentados profesores de Bitcoin y su experiencia.", "Letzte Änderungszeit": "Última hora de modificación", @@ -294,7 +321,10 @@ "Länder mit den meisten Usern": "Países con más usuarios", "Längengrad": "Longitud", "Löschen": "Eliminar", + "Manage who belongs to this team": "Administre quién pertenece a este equipo", "Manage your profile and account settings": "Administre su perfil y la configuración de su cuenta", + "Manage your team settings": "Administre la configuración de su equipo", + "Manage your teams and team memberships": "Administre sus equipos y membresías de equipo", "Manage your two-factor authentication settings": "Administre su configuración de autenticación de dos factores", "Matrix": "Matrix", "Matrix Gruppe": "Grupo de Matrix", @@ -313,6 +343,8 @@ "Mehr Informationen": "Más información", "Meine Meetups": "Mis encuentros", "Meine nächsten Meetup Termine": "Mis próximos eventos", + "Member removed.": "Miembro eliminado.", + "Member role updated.": "Rol de miembro actualizado.", "Mindestens eine URL muss angegeben werden.": "Se debe especificar al menos una URL.", "Mindestens eine URL oder IP muss angegeben werden.": "Se debe especificar al menos una URL o IP.", "Mittwoch": "Miércoles", @@ -336,6 +368,7 @@ "Neues Meetup": "Nuevo encuentro", "Neues Meetup erstellen": "Crear nuevo encuentro", "New password": "Nueva contraseña", + "New team": "Nuevo equipo", "no location set": "sin ubicación establecida", "Node ID": "ID del nodo", "Normale Web-URL": "URL web normal", @@ -364,16 +397,21 @@ "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Personaliza la apariencia de tu perfil de Encuentros Bitcoin.", "Password": "Contraseña", "Password Settings": "Configuración de Contraseña", + "Password updated.": "Contraseña actualizada.", "Passwort ändern - Bitcoin Meetups": "Cambiar contraseña - Encuentros Bitcoin", "Payment Required": "Pago requerido", "PayNym": "PayNym", "PayNym für Bitcoin-Zahlungen": "PayNym para pagos Bitcoin", + "Pending invitations": "Invitaciones pendientes", + "Permanently delete your team": "Eliminar permanentemente su equipo", + "Personal": "Personal", "Persönliche Webseite oder Portfolio": "Sitio web personal o portafolio", "Pkarr DNS Adresse": "Dirección DNS Pkarr", "Platform": "Plataforma", "Please click the button below to verify your email address.": "Por favor, haga clic en el botón de abajo para verificar su dirección de correo electrónico.", "Please confirm access to your account by entering one of your emergency recovery codes.": "Confirme el acceso a su cuenta ingresando uno de sus códigos de recuperación de emergencia.", "Please enter your new password below": "Por favor, introduzca su nueva contraseña a continuación", + "Please proceed with caution, this cannot be undone.": "Proceda con precaución, esto no se puede deshacer.", "Please verify your email address by clicking on the link we just emailed to you.": "Por favor, verifique su dirección de correo electrónico haciendo clic en el enlace que acabamos de enviarle.", "Population": "Población", "Population Date": "Fecha de población", @@ -382,29 +420,41 @@ "Profil bearbeiten - Bitcoin Meetups": "Editar perfil - Encuentros Bitcoin", "Profile": "Perfil", "Profile Settings": "Configuración de Perfil", + "Profile settings": "Ajustes de perfil", + "Profile updated.": "Perfil actualizado.", "Recovery Code": "Código de recuperación", + "Recovery code": "Código de recuperación", "Recovery codes": "Códigos de recuperación", "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Los códigos de recuperación le permiten recuperar el acceso si pierde su dispositivo con autenticación de dos factores. Guárdelos en un gestor de contraseñas seguro.", "Regards,": "Saludos,", "Regenerate Codes": "Regenerar códigos", + "Regenerate codes": "Regenerar códigos", "Register": "Registrarse", "Remember me": "Mantener sesión activa", + "Remove member": "Eliminar miembro", + "Remove team member": "Eliminar miembro del equipo", "Repository": "Repositorio", "Resend verification email": "Reenviar correo de verificación", "Reset Password": "Restablecer contraseña", "Reset password": "Restablecer contraseña", "Reset Password Notification": "Notificación de restablecimiento de contraseña", "results": "resultados", + "Role": "Rol", "Samstag": "Sábado", "Save": "Guardar", "Saved.": "Guardado.", "Search": "Buscar", "Search cities...": "Buscar ciudades...", "Search venues...": "Buscar lugares...", + "Security": "Seguridad", + "Security settings": "Ajustes de seguridad", "Select a city": "Seleccionar ciudad", "Select a country": "Seleccionar país", + "Select team": "Seleccionar equipo", "Self Hosted Services": "Servicios autohospedados", "Self-Hosted Services - Übersicht": "Servicios autohospedados - Vista general", + "Send an invitation to join this team.": "Enviar una invitación para unirse a este equipo.", + "Send invitation": "Enviar invitación", "Serientermine erstellen": "Crear eventos recurrentes", "Serientermine erstellen?": "¿Crear eventos recurrentes?", "Server Error": "Error del servidor", @@ -462,15 +512,28 @@ "System": "Sistema", "System-generierte ID (nur lesbar)": "ID generado por el sistema (solo lectura)", "Systeminformationen": "Información del sistema", + "Team created.": "Equipo creado.", + "Team deleted.": "Equipo eliminado.", + "Team members": "Miembros del equipo", + "Team name": "Nombre del equipo", + "Team updated.": "Equipo actualizado.", + "Teams": "Equipos", "Teilnahme": "Participación", "Telegram": "Telegram", "Telegram Link": "Enlace de Telegram", "The given data was invalid.": "Los datos proporcionados no son válidos.", "The response is not a streamed response.": "La respuesta no es una respuesta transmitida.", "The response is not a view.": "La respuesta no es una vista.", + "The team name does not match.": "El nombre del equipo no coincide.", + "This action cannot be undone. This will permanently delete the team \":name\".": "Esta acción no se puede deshacer. Esto eliminará permanentemente el equipo \":name\".", "This action is unauthorized.": "Esta acción no está autorizada.", + "This invitation has already been accepted.": "Esta invitación ya ha sido aceptada.", + "This invitation has expired.": "Esta invitación ha expirado.", + "This invitation was sent to a different email address.": "Esta invitación fue enviada a una dirección de correo electrónico diferente.", "This is a secure area of the application. Please confirm your password before continuing.": "Esta es una zona segura de la aplicación. Confirme su contraseña antes de continuar.", "This password reset link will expire in :count minutes.": "Este enlace de restablecimiento de contraseña expirará en :count minutos.", + "This team name is reserved and cannot be used.": "Este nombre de equipo está reservado y no se puede usar.", + "This user is already a member of the team.": "Este usuario ya es miembro del equipo.", "to": "al", "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "Para terminar de habilitar la autenticación de dos factores, escanee el código QR o ingrese la clave de configuración en su aplicación de autenticación.", "Toggle navigation": "Alternar navegación", @@ -484,10 +547,13 @@ "Twitter-Handle ohne @ Symbol": "Usuario de Twitter sin el símbolo @", "Two Factor Authentication": "Autenticación de Dos Factores", "Two-Factor Auth": "Autenticación de Dos Factores", + "Two-factor authentication": "Autenticación doble factor", "Two-Factor Authentication Enabled": "Autenticación de dos factores habilitada", + "Two-factor authentication enabled": "Autenticación doble factor habilitada", "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "La autenticación de dos factores ya está habilitada. Escanea el código QR o introduce la clave de configuración en tu app de autenticación.", "Two-Factor Authentication Settings": "Ajustes de la Autenticación de Dos Factores", "Typ": "Tipo", + "Type \":name\" to confirm": "Escriba \":name\" para confirmar", "Täglich": "Diario", "Uhr": "hora", "Uhrzeit": "Hora", @@ -522,12 +588,16 @@ "Veranstaltungsorte - Übersicht": "Lugares de eventos - Vista general", "Verbinde dich mit Bitcoinern in deiner Nähe": "Conéctate con bitcoiners cerca de ti", "Verify Authentication Code": "Verificar código de autenticación", + "Verify authentication code": "Verificar código de autenticación", "Verify Email Address": "Confirme su correo electrónico", "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Gestiona tus Encuentros Bitcoin, eventos y configuración en tu panel personal.", "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Gestiona las fechas y detalles de tus eventos educativos de Bitcoin.", "Vielleicht": "Quizás", "Vierter": "Cuarto", + "View :name": "Ver :name", "View Recovery Codes": "Ver códigos de recuperación", + "View recovery codes": "Ver códigos de recuperación", + "View team": "Ver equipo", "Vollständiger Name des Dozenten": "Nombre completo del profesor", "Vorschau auf 100 Termine begrenzt. Es werden möglicherweise mehr Termine erstellt.": "Vista previa limitada a 100 eventos. Es posible que se creen más eventos.", "Vorschau der Termine": "Vista previa de eventos", @@ -538,10 +608,12 @@ "Wann dieses Meetup erstellt wurde": "Cuando se creó este encuentro", "Wann endet das Event?": "¿Cuándo termina el evento?", "Wann findet das Event statt?": "¿Cuándo tendrá lugar el evento?", + "Warning": "Advertencia", "Webseite": "Sitio web", "Website": "Website", "weitere Termine": "más fechas", "Welcher Wochentag im Monat? (z.B. \"letzter Freitag": "¿Qué día de la semana en el mes? (p.ej. \"último viernes", + "Welcome": "Bienvenido", "Welt-Karte": "Mapa mundial", "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Conviértete en profesor de Bitcoin y comparte tu conocimiento experto con la comunidad.", "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "Al activar la autenticación de dos factores, se le solicitará un PIN seguro al iniciar sesión. Puede obtenerlo desde una aplicación compatible con TOTP en su teléfono.", @@ -564,6 +636,9 @@ "Wähle die Stadt aus...": "Selecciona la ciudad...", "Wöchentlich": "Semanal", "You are receiving this email because we received a password reset request for your account.": "Ha recibido este mensaje porque se solicitó un restablecimiento de contraseña para su cuenta.", + "You don't belong to any teams yet.": "Usted todavía no pertenece a ningún equipo.", + "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Durante el inicio de sesión, se le pedirá que introduzca un PIN seguro y aleatorio, que podrá obtener desde la aplicación compatible con TOTP en su teléfono.", + "You've been invited to join :teamName": "Usted ha sido invitado a unirse a :teamName", "Your email address is unverified.": "Su dirección de correo electrónico no está verificada.", "z.B. Berlin": "p.ej. Berlín", "z.B. Bitcoin Zentrum München": "ej. Centro Bitcoin Múnich", diff --git a/lang/es/validation.php b/lang/es/validation.php index 942d5fd..aab3f04 100644 --- a/lang/es/validation.php +++ b/lang/es/validation.php @@ -3,156 +3,157 @@ declare(strict_types=1); return [ - 'accepted' => 'El campo :attribute debe ser aceptado.', - 'accepted_if' => 'El campo :attribute debe ser aceptado cuando :other sea :value.', - 'active_url' => 'El campo :attribute debe ser una URL válida.', - 'after' => 'El campo :attribute debe ser una fecha posterior a :date.', - 'after_or_equal' => 'El campo :attribute debe ser una fecha posterior o igual a :date.', - 'alpha' => 'El campo :attribute sólo debe contener letras.', - 'alpha_dash' => 'El campo :attribute sólo debe contener letras, números, guiones y guiones bajos.', - 'alpha_num' => 'El campo :attribute sólo debe contener letras y números.', - 'any_of' => 'El campo :attribute no es válido.', - 'array' => 'El campo :attribute debe ser un conjunto.', - 'ascii' => 'El campo :attribute solo debe contener caracteres alfanuméricos y símbolos de un solo byte.', - 'before' => 'El campo :attribute debe ser una fecha anterior a :date.', - 'before_or_equal' => 'El campo :attribute debe ser una fecha anterior o igual a :date.', - 'between' => [ - 'array' => 'El campo :attribute tiene que tener entre :min - :max elementos.', - 'file' => 'El campo :attribute debe pesar entre :min - :max kilobytes.', + 'accepted' => 'El campo :attribute debe ser aceptado.', + 'accepted_if' => 'El campo :attribute debe ser aceptado cuando :other sea :value.', + 'active_url' => 'El campo :attribute debe ser una URL válida.', + 'after' => 'El campo :attribute debe ser una fecha posterior a :date.', + 'after_or_equal' => 'El campo :attribute debe ser una fecha posterior o igual a :date.', + 'alpha' => 'El campo :attribute sólo debe contener letras.', + 'alpha_dash' => 'El campo :attribute sólo debe contener letras, números, guiones y guiones bajos.', + 'alpha_num' => 'El campo :attribute sólo debe contener letras y números.', + 'any_of' => 'El campo :attribute no es válido.', + 'array' => 'El campo :attribute debe ser un conjunto.', + 'ascii' => 'El campo :attribute solo debe contener caracteres alfanuméricos y símbolos de un solo byte.', + 'before' => 'El campo :attribute debe ser una fecha anterior a :date.', + 'before_or_equal' => 'El campo :attribute debe ser una fecha anterior o igual a :date.', + 'between' => [ + 'array' => 'El campo :attribute tiene que tener entre :min - :max elementos.', + 'file' => 'El campo :attribute debe pesar entre :min - :max kilobytes.', 'numeric' => 'El campo :attribute tiene que estar entre :min - :max.', - 'string' => 'El campo :attribute tiene que tener entre :min - :max caracteres.', + 'string' => 'El campo :attribute tiene que tener entre :min - :max caracteres.', ], - 'boolean' => 'El campo :attribute debe tener un valor verdadero o falso.', - 'can' => 'El campo :attribute contiene un valor no autorizado.', - 'confirmed' => 'La confirmación de :attribute no coincide.', - 'contains' => 'Al campo :attribute le falta un valor obligatorio.', - 'current_password' => 'La contraseña es incorrecta.', - 'date' => 'El campo :attribute debe ser una fecha válida.', - 'date_equals' => 'El campo :attribute debe ser una fecha igual a :date.', - 'date_format' => 'El campo :attribute debe coincidir con el formato :format.', - 'decimal' => 'El campo :attribute debe tener :decimal cifras decimales.', - 'declined' => 'El campo :attribute debe ser rechazado.', - 'declined_if' => 'El campo :attribute debe ser rechazado cuando :other sea :value.', - 'different' => 'El campo :attribute y :other deben ser diferentes.', - 'digits' => 'El campo :attribute debe tener :digits dígitos.', - 'digits_between' => 'El campo :attribute debe tener entre :min y :max dígitos.', - 'dimensions' => 'El campo :attribute tiene dimensiones de imagen no válidas.', - 'distinct' => 'El campo :attribute contiene un valor duplicado.', - 'doesnt_contain' => 'El campo :attribute no debe contener ninguno de los siguientes valores: :values.', - 'doesnt_end_with' => 'El campo :attribute no debe finalizar con uno de los siguientes: :values.', - 'doesnt_start_with' => 'El campo :attribute no debe comenzar con uno de los siguientes: :values.', - 'email' => 'El campo :attribute no es un correo válido.', - 'ends_with' => 'El campo :attribute debe finalizar con uno de los siguientes valores: :values', - 'enum' => 'El campo :attribute no está en la lista de valores permitidos.', - 'exists' => 'El campo :attribute no existe.', - 'extensions' => 'El campo :attribute debe tener una de las siguientes extensiones: :values.', - 'file' => 'El campo :attribute debe ser un archivo.', - 'filled' => 'El campo :attribute es obligatorio.', - 'gt' => [ - 'array' => 'El campo :attribute debe tener más de :value elementos.', - 'file' => 'El campo :attribute debe tener más de :value kilobytes.', + 'boolean' => 'El campo :attribute debe tener un valor verdadero o falso.', + 'can' => 'El campo :attribute contiene un valor no autorizado.', + 'confirmed' => 'La confirmación de :attribute no coincide.', + 'contains' => 'Al campo :attribute le falta un valor obligatorio.', + 'current_password' => 'La contraseña es incorrecta.', + 'date' => 'El campo :attribute debe ser una fecha válida.', + 'date_equals' => 'El campo :attribute debe ser una fecha igual a :date.', + 'date_format' => 'El campo :attribute debe coincidir con el formato :format.', + 'decimal' => 'El campo :attribute debe tener :decimal cifras decimales.', + 'declined' => 'El campo :attribute debe ser rechazado.', + 'declined_if' => 'El campo :attribute debe ser rechazado cuando :other sea :value.', + 'different' => 'El campo :attribute y :other deben ser diferentes.', + 'digits' => 'El campo :attribute debe tener :digits dígitos.', + 'digits_between' => 'El campo :attribute debe tener entre :min y :max dígitos.', + 'dimensions' => 'El campo :attribute tiene dimensiones de imagen no válidas.', + 'distinct' => 'El campo :attribute contiene un valor duplicado.', + 'doesnt_contain' => 'El campo :attribute no debe contener ninguno de los siguientes valores: :values.', + 'doesnt_end_with' => 'El campo :attribute no debe finalizar con uno de los siguientes: :values.', + 'doesnt_start_with' => 'El campo :attribute no debe comenzar con uno de los siguientes: :values.', + 'email' => 'El campo :attribute no es un correo válido.', + 'encoding' => 'El campo :attribute debe estar codificado en :encoding.', + 'ends_with' => 'El campo :attribute debe finalizar con uno de los siguientes valores: :values', + 'enum' => 'El campo :attribute no está en la lista de valores permitidos.', + 'exists' => 'El campo :attribute no existe.', + 'extensions' => 'El campo :attribute debe tener una de las siguientes extensiones: :values.', + 'file' => 'El campo :attribute debe ser un archivo.', + 'filled' => 'El campo :attribute es obligatorio.', + 'gt' => [ + 'array' => 'El campo :attribute debe tener más de :value elementos.', + 'file' => 'El campo :attribute debe tener más de :value kilobytes.', 'numeric' => 'El campo :attribute debe ser mayor que :value.', - 'string' => 'El campo :attribute debe tener más de :value caracteres.', + 'string' => 'El campo :attribute debe tener más de :value caracteres.', ], - 'gte' => [ - 'array' => 'El campo :attribute debe tener como mínimo :value elementos.', - 'file' => 'El campo :attribute debe tener como mínimo :value kilobytes.', + 'gte' => [ + 'array' => 'El campo :attribute debe tener como mínimo :value elementos.', + 'file' => 'El campo :attribute debe tener como mínimo :value kilobytes.', 'numeric' => 'El campo :attribute debe ser como mínimo :value.', - 'string' => 'El campo :attribute debe tener como mínimo :value caracteres.', + 'string' => 'El campo :attribute debe tener como mínimo :value caracteres.', ], - 'hex_color' => 'El campo :attribute debe tener un color hexadecimal válido.', - 'image' => 'El campo :attribute debe ser una imagen.', - 'in' => 'El campo :attribute no está en la lista de valores permitidos.', - 'in_array' => 'El campo :attribute debe existir en :other.', - 'in_array_keys' => 'El campo :attribute debe contener al menos una de las siguientes claves: :values.', - 'integer' => 'El campo :attribute debe ser un número entero.', - 'ip' => 'El campo :attribute debe ser una dirección IP válida.', - 'ipv4' => 'El campo :attribute debe ser una dirección IPv4 válida.', - 'ipv6' => 'El campo :attribute debe ser una dirección IPv6 válida.', - 'json' => 'El campo :attribute debe ser una cadena JSON válida.', - 'list' => 'El campo :attribute debe ser una lista.', - 'lowercase' => 'El campo :attribute debe estar en minúscula.', - 'lt' => [ - 'array' => 'El campo :attribute debe tener menos de :value elementos.', - 'file' => 'El campo :attribute debe tener menos de :value kilobytes.', + 'hex_color' => 'El campo :attribute debe tener un color hexadecimal válido.', + 'image' => 'El campo :attribute debe ser una imagen.', + 'in' => 'El campo :attribute no está en la lista de valores permitidos.', + 'in_array' => 'El campo :attribute debe existir en :other.', + 'in_array_keys' => 'El campo :attribute debe contener al menos una de las siguientes claves: :values.', + 'integer' => 'El campo :attribute debe ser un número entero.', + 'ip' => 'El campo :attribute debe ser una dirección IP válida.', + 'ipv4' => 'El campo :attribute debe ser una dirección IPv4 válida.', + 'ipv6' => 'El campo :attribute debe ser una dirección IPv6 válida.', + 'json' => 'El campo :attribute debe ser una cadena JSON válida.', + 'list' => 'El campo :attribute debe ser una lista.', + 'lowercase' => 'El campo :attribute debe estar en minúscula.', + 'lt' => [ + 'array' => 'El campo :attribute debe tener menos de :value elementos.', + 'file' => 'El campo :attribute debe tener menos de :value kilobytes.', 'numeric' => 'El campo :attribute debe ser menor que :value.', - 'string' => 'El campo :attribute debe tener menos de :value caracteres.', + 'string' => 'El campo :attribute debe tener menos de :value caracteres.', ], - 'lte' => [ - 'array' => 'El campo :attribute debe tener como máximo :value elementos.', - 'file' => 'El campo :attribute debe tener como máximo :value kilobytes.', + 'lte' => [ + 'array' => 'El campo :attribute debe tener como máximo :value elementos.', + 'file' => 'El campo :attribute debe tener como máximo :value kilobytes.', 'numeric' => 'El campo :attribute debe ser como máximo :value.', - 'string' => 'El campo :attribute debe tener como máximo :value caracteres.', + 'string' => 'El campo :attribute debe tener como máximo :value caracteres.', ], - 'mac_address' => 'El campo :attribute debe ser una dirección MAC válida.', - 'max' => [ - 'array' => 'El campo :attribute no debe tener más de :max elementos.', - 'file' => 'El campo :attribute no debe ser mayor que :max kilobytes.', + 'mac_address' => 'El campo :attribute debe ser una dirección MAC válida.', + 'max' => [ + 'array' => 'El campo :attribute no debe tener más de :max elementos.', + 'file' => 'El campo :attribute no debe ser mayor que :max kilobytes.', 'numeric' => 'El campo :attribute no debe ser mayor que :max.', - 'string' => 'El campo :attribute no debe ser mayor que :max caracteres.', + 'string' => 'El campo :attribute no debe ser mayor que :max caracteres.', ], - 'max_digits' => 'El campo :attribute no debe tener más de :max dígitos.', - 'mimes' => 'El campo :attribute debe ser un archivo con formato: :values.', - 'mimetypes' => 'El campo :attribute debe ser un archivo con formato: :values.', - 'min' => [ - 'array' => 'El campo :attribute debe tener al menos :min elementos.', - 'file' => 'El tamaño de :attribute debe ser de al menos :min kilobytes.', + 'max_digits' => 'El campo :attribute no debe tener más de :max dígitos.', + 'mimes' => 'El campo :attribute debe ser un archivo con formato: :values.', + 'mimetypes' => 'El campo :attribute debe ser un archivo con formato: :values.', + 'min' => [ + 'array' => 'El campo :attribute debe tener al menos :min elementos.', + 'file' => 'El tamaño de :attribute debe ser de al menos :min kilobytes.', 'numeric' => 'El tamaño de :attribute debe ser de al menos :min.', - 'string' => 'El campo :attribute debe contener al menos :min caracteres.', + 'string' => 'El campo :attribute debe contener al menos :min caracteres.', ], - 'min_digits' => 'El campo :attribute debe tener al menos :min dígitos.', - 'missing' => 'El campo :attribute no debe estar presente.', - 'missing_if' => 'El campo :attribute no debe estar presente cuando :other sea :value.', - 'missing_unless' => 'El campo :attribute no debe estar presente a menos que :other sea :value.', - 'missing_with' => 'El campo :attribute no debe estar presente si alguno de los campos :values está presente.', - 'missing_with_all' => 'El campo :attribute no debe estar presente cuando los campos :values estén presentes.', - 'multiple_of' => 'El campo :attribute debe ser múltiplo de :value', - 'not_in' => 'El campo :attribute no debe estar en la lista.', - 'not_regex' => 'El formato del campo :attribute no es válido.', - 'numeric' => 'El campo :attribute debe ser numérico.', - 'password' => [ - 'letters' => 'La :attribute debe contener al menos una letra.', - 'mixed' => 'La :attribute debe contener al menos una letra mayúscula y una minúscula.', - 'numbers' => 'La :attribute debe contener al menos un número.', - 'symbols' => 'La :attribute debe contener al menos un símbolo.', + 'min_digits' => 'El campo :attribute debe tener al menos :min dígitos.', + 'missing' => 'El campo :attribute no debe estar presente.', + 'missing_if' => 'El campo :attribute no debe estar presente cuando :other sea :value.', + 'missing_unless' => 'El campo :attribute no debe estar presente a menos que :other sea :value.', + 'missing_with' => 'El campo :attribute no debe estar presente si alguno de los campos :values está presente.', + 'missing_with_all' => 'El campo :attribute no debe estar presente cuando los campos :values estén presentes.', + 'multiple_of' => 'El campo :attribute debe ser múltiplo de :value', + 'not_in' => 'El campo :attribute no debe estar en la lista.', + 'not_regex' => 'El formato del campo :attribute no es válido.', + 'numeric' => 'El campo :attribute debe ser numérico.', + 'password' => [ + 'letters' => 'La :attribute debe contener al menos una letra.', + 'mixed' => 'La :attribute debe contener al menos una letra mayúscula y una minúscula.', + 'numbers' => 'La :attribute debe contener al menos un número.', + 'symbols' => 'La :attribute debe contener al menos un símbolo.', 'uncompromised' => 'La :attribute proporcionada se ha visto comprometida en una filtración de datos (data leak). Elija una :attribute diferente.', ], - 'present' => 'El campo :attribute debe estar presente.', - 'present_if' => 'El campo :attribute debe estar presente cuando :other es :value.', - 'present_unless' => 'El campo :attribute debe estar presente a menos que :other sea :value.', - 'present_with' => 'El campo :attribute debe estar presente cuando :values esté presente.', - 'present_with_all' => 'El campo :attribute debe estar presente cuando :values estén presentes.', - 'prohibited' => 'El campo :attribute está prohibido.', - 'prohibited_if' => 'El campo :attribute está prohibido cuando :other es :value.', + 'present' => 'El campo :attribute debe estar presente.', + 'present_if' => 'El campo :attribute debe estar presente cuando :other es :value.', + 'present_unless' => 'El campo :attribute debe estar presente a menos que :other sea :value.', + 'present_with' => 'El campo :attribute debe estar presente cuando :values esté presente.', + 'present_with_all' => 'El campo :attribute debe estar presente cuando :values estén presentes.', + 'prohibited' => 'El campo :attribute está prohibido.', + 'prohibited_if' => 'El campo :attribute está prohibido cuando :other es :value.', 'prohibited_if_accepted' => 'El campo :attribute está prohibido cuando se acepta :other.', 'prohibited_if_declined' => 'El campo :attribute está prohibido cuando se rechaza :other.', - 'prohibited_unless' => 'El campo :attribute está prohibido a menos que :other sea :values.', - 'prohibits' => 'El campo :attribute prohibe que :other esté presente.', - 'regex' => 'El formato del campo :attribute no es válido.', - 'required' => 'El campo :attribute es obligatorio.', - 'required_array_keys' => 'El campo :attribute debe contener entradas para: :values.', - 'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.', - 'required_if_accepted' => 'El campo :attribute es obligatorio si :other es aceptado.', - 'required_if_declined' => 'El campo :attribute es obligatorio si :other es rechazado.', - 'required_unless' => 'El campo :attribute es obligatorio a menos que :other esté en :values.', - 'required_with' => 'El campo :attribute es obligatorio cuando :values está presente.', - 'required_with_all' => 'El campo :attribute es obligatorio cuando :values están presentes.', - 'required_without' => 'El campo :attribute es obligatorio cuando :values no está presente.', - 'required_without_all' => 'El campo :attribute es obligatorio cuando ninguno de :values está presente.', - 'same' => 'Los campos :attribute y :other deben coincidir.', - 'size' => [ - 'array' => 'El campo :attribute debe contener :size elementos.', - 'file' => 'El tamaño de :attribute debe ser :size kilobytes.', + 'prohibited_unless' => 'El campo :attribute está prohibido a menos que :other sea :values.', + 'prohibits' => 'El campo :attribute prohibe que :other esté presente.', + 'regex' => 'El formato del campo :attribute no es válido.', + 'required' => 'El campo :attribute es obligatorio.', + 'required_array_keys' => 'El campo :attribute debe contener entradas para: :values.', + 'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.', + 'required_if_accepted' => 'El campo :attribute es obligatorio si :other es aceptado.', + 'required_if_declined' => 'El campo :attribute es obligatorio si :other es rechazado.', + 'required_unless' => 'El campo :attribute es obligatorio a menos que :other esté en :values.', + 'required_with' => 'El campo :attribute es obligatorio cuando :values está presente.', + 'required_with_all' => 'El campo :attribute es obligatorio cuando :values están presentes.', + 'required_without' => 'El campo :attribute es obligatorio cuando :values no está presente.', + 'required_without_all' => 'El campo :attribute es obligatorio cuando ninguno de :values está presente.', + 'same' => 'Los campos :attribute y :other deben coincidir.', + 'size' => [ + 'array' => 'El campo :attribute debe contener :size elementos.', + 'file' => 'El tamaño de :attribute debe ser :size kilobytes.', 'numeric' => 'El tamaño de :attribute debe ser :size.', - 'string' => 'El campo :attribute debe contener :size caracteres.', + 'string' => 'El campo :attribute debe contener :size caracteres.', ], - 'starts_with' => 'El campo :attribute debe comenzar con uno de los siguientes valores: :values', - 'string' => 'El campo :attribute debe ser una cadena de caracteres.', - 'timezone' => 'El campo :attribute debe ser una zona horaria válida.', - 'ulid' => 'El campo :attribute debe ser un ULID válido.', - 'unique' => 'El campo :attribute ya ha sido registrado.', - 'uploaded' => 'Subir :attribute ha fallado.', - 'uppercase' => 'El campo :attribute debe estar en mayúscula.', - 'url' => 'El campo :attribute debe ser una URL válida.', - 'uuid' => 'El campo :attribute debe ser un UUID válido.', + 'starts_with' => 'El campo :attribute debe comenzar con uno de los siguientes valores: :values', + 'string' => 'El campo :attribute debe ser una cadena de caracteres.', + 'timezone' => 'El campo :attribute debe ser una zona horaria válida.', + 'ulid' => 'El campo :attribute debe ser un ULID válido.', + 'unique' => 'El campo :attribute ya ha sido registrado.', + 'uploaded' => 'Subir :attribute ha fallado.', + 'uppercase' => 'El campo :attribute debe estar en mayúscula.', + 'url' => 'El campo :attribute debe ser una URL válida.', + 'uuid' => 'El campo :attribute debe ser un UUID válido.', ]; diff --git a/lang/hu.json b/lang/hu.json index 38a0136..ec64c7c 100644 --- a/lang/hu.json +++ b/lang/hu.json @@ -2,13 +2,16 @@ "(and :count more error)": "(és még :count hiba)", "(and :count more errors)": "(és még :count hiba)|(és még :count hiba)|(és még :count hiba)", "2FA Recovery Codes": "2FA helyreállítási kódok", + "2FA recovery codes": "2FA helyreállítási kódok", ":count Events erfolgreich erstellt!": ":count esemény sikeresen létrehozva!", + ":inviterName has invited you to join the :teamName team.": ":inviterName has invited you to join the :teamName team.", "A decryption key is required.": "Dekódoló kulcs szükséges.", "A new verification link has been sent to the email address you provided during registration.": "Egy új ellenőrző linket küldtek a regisztráció során megadott e-mail címre.", "A new verification link has been sent to your email address.": "Új ellenőrző linket küldtünk az e-mail címére.", "A reset link will be sent if the account exists.": "Ha a fiók létezik, akkor visszaállítást küldünk.", "Abbrechen": "Mégse", "Absagen": "Lemondás", + "Accept invitation": "Accept invitation", "Actions": "Műveletek", "Aktionen": "Műveletek", "Aktiv": "Aktív", @@ -28,6 +31,7 @@ "Alle Meetups anzeigen": "Minden meetup megjelenítése", "Allgemeine Bitcoin Community": "Általános Bitcoin Közösség", "Already have an account?": "Már van fiókja?", + "An invitation has already been sent to this email address.": "An invitation has already been sent to this email address.", "An welchem Tag beginnt das Event?": "Melyik napon kezdődik az esemény?", "An welchem Tag endet das Event?": "Melyik napon ér véget az esemény?", "An welchem Tag findet das Event statt?": "Melyik napon lesz az esemény?", @@ -39,13 +43,18 @@ "App": "Alkalmazás", "Appearance": "Megjelenés", "Appearance Settings": "Appearance Settings", + "Appearance settings": "Megjelenés beállításai", + "Are you sure you want to cancel the invitation for :email?": "Are you sure you want to cancel the invitation for :email?", "Are you sure you want to delete your account?": "Biztos benne, hogy törölni akarja fiókját?", + "Are you sure you want to remove :name from this team?": "Are you sure you want to remove :name from this team?", + "Are you sure?": "Are you sure?", "Art des Services": "Szolgáltatás típusa", "Auf Karte sichtbar": "Látható a térképen", "aus deinen Meetups entfernen?": "eltávolítani meetupjaid közül?", "Ausführliche Beschreibung des Kurses": "A kurzus részletes leírása", "Ausführliche Beschreibung und Biografie": "Részletes leírás és életrajz", "Authentication Code": "Hitelesítési kód", + "Authentication code": "Hitelesítési kód", "Automatisch (gleiches Datum)": "Automatikusan (ugyanaz a dátum)", "Automatisch (wie Startdatum)": "Automatikusan (mint a kezdődátum)", "Back": "Vissza", @@ -71,6 +80,7 @@ "BooksForPlebs": "KönyvekPlebseknek", "Breitengrad": "Szélesség", "Cancel": "Mégsem", + "Cancel invitation": "Cancel invitation", "Cities": "Városok", "City": "Város", "City successfully created!": "Város sikeresen létrehozva!", @@ -88,9 +98,11 @@ "Copied into clipboard": "Vágólapra másolva", "Copy": "Másolás", "Country": "Ország", + "Create a new team": "Create a new team", "Create account": "Hozzon létre fiókot", "Create an account": "Hozzon létre egy fiókot", "Create City": "Város létrehozása", + "Create team": "Create team", "Create Venue": "Helyszín létrehozása", "Created at": "Létrehozva", "Created By": "Létrehozta", @@ -103,6 +115,7 @@ "Datum des letzten Termins": "Az utolsó időpont dátuma", "Dein Name": "Neved", "Delete account": "Fiók törlése", + "Delete team": "Delete team", "Delete your account and all of its resources": "Törölje fiókját és minden erőforrását", "Demographics": "Demográfia", "Der Anzeigename für diesen Kurs": "A kurzus megjelenítendő neve", @@ -140,8 +153,11 @@ "Du kannst es jederzeit wieder hinzufügen.": "Bármikor újra hozzáadhatod.", "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Böngészd az összes várost aktív Bitcoin meetupokkal és találj eseményeket a közeledben.", "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Minden helyreállítási kód egyszer használható a fiókjához való hozzáféréshez, és használat után eltávolítható. Ha még többre van szüksége, kattintson a fenti Regenerate kódokra.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.": "Minden helyreállítási kód egyszer használható fel fiókjához való hozzáféréshez, és használat után eltávolítjuk. Ha többre van szüksége, kattintson a fenti Kódok újragenerálása lehetőségre.", "Edit": "Szerkesztés", + "Edit :name": "Edit :name", "Edit City": "Város szerkesztése", + "Edit team": "Edit team", "Edit Venue": "Helyszín szerkesztése", "Einführung": "Bevezetés", "Einundzwanzig Community": "Huszonegy Közösség", @@ -150,8 +166,10 @@ "Email Address": "E-Mail Cím", "Email address": "E -mail cím", "Email password reset link": "E -mail jelszó -visszaállítás link", + "Email verification": "E-mail ellenőrzés", "Enable 2FA": "Engedélyezze a 2FA -t", "Enable Two-Factor Authentication": "Engedélyezze a két tényezős hitelesítést", + "Enable two-factor authentication": "Kéttényezős hitelesítés engedélyezése", "Enabled": "Engedélyezve", "Encrypted environment file already exists.": "A titkosított környezetfájl már létezik.", "Encrypted environment file not found.": "A titkosított környezetfájl nem található.", @@ -211,10 +229,12 @@ "Für regelmäßige Termine wie \"immer am letzten Freitag des Monats\":": "Rendszeres időpontokhoz, mint \"mindig a hónap utolsó péntekjén\":", "Gemeinschaft": "Közösség", "Gemeinschafts- oder Organisationsname": "Közösség vagy szervezet neve", + "Give your team a name to get started.": "Give your team a name to get started.", "Go to page :page": "Ugrás a :page. oldalra", "Grundlegende Informationen": "Alapinformációk", "Hello!": "Helló!", "Hide Recovery Codes": "Elrejteni a helyreállítási kódokat", + "Hide recovery codes": "Helyreállítási kódok elrejtése", "I2P Adresse": "I2P cím", "Ich komme": "Részt veszek", "ID": "ID", @@ -227,6 +247,11 @@ "Intervall": "Intervallum", "Invalid filename.": "Érvénytelen fájlnév.", "Invalid JSON was returned from the route.": "Érvénytelen JSON-t adtak vissza az útvonalról.", + "Invitation cancelled.": "Invitation cancelled.", + "Invitation sent.": "Invitation sent.", + "Invitations that have not been accepted yet": "Invitations that have not been accepted yet", + "Invite a team member": "Invite a team member", + "Invite member": "Invite member", "IP Adresse": "IP cím", "Ist dieser Dozent aktiv?": "Ez az oktató aktív?", "Jetzt erstellen": "Létrehozás most", @@ -234,6 +259,7 @@ "Kalender-Stream-URL kopieren": "Naptár stream URL másolása", "Karte": "Térkép", "Kartenansicht öffnen": "Térképnézet megnyitása", + "Keep invitation": "Keep invitation", "Keine": "Nincs", "Keine Aktivitäten": "Nincsenek tevékenységek", "Keine bevorstehenden Termine": "Nincsenek közelgő időpontok", @@ -259,6 +285,7 @@ "Land": "Ország", "Land auswählen": "Ország kiválasztása", "Latitude": "Szélesség", + "length": "hossz", "Lerne alles über Bitcoin - von den Grundlagen bis zu fortgeschrittenen Themen.": "Tanulj mindent a Bitcoinról - az alapoktól a haladó témákig.", "Lerne unsere erfahrenen Bitcoin-Dozenten und ihre Expertise kennen.": "Ismerd meg tapasztalt Bitcoin oktatóinkat és szakértelmüket.", "Letzte Änderungszeit": "Utolsó módosítás ideje", @@ -294,7 +321,10 @@ "Länder mit den meisten Usern": "Legtöbb felhasználóval rendelkező országok", "Längengrad": "Hosszúság", "Löschen": "Törlés", + "Manage who belongs to this team": "Manage who belongs to this team", "Manage your profile and account settings": "Kezelje a profilját és a fiók beállításait", + "Manage your team settings": "Manage your team settings", + "Manage your teams and team memberships": "Manage your teams and team memberships", "Manage your two-factor authentication settings": "Kezelje a két tényezős hitelesítési beállításait", "Matrix": "Matrix", "Matrix Gruppe": "Matrix csoport", @@ -313,6 +343,8 @@ "Mehr Informationen": "További információk", "Meine Meetups": "Meetupjaim", "Meine nächsten Meetup Termine": "Következő meetup időpontjaim", + "Member removed.": "Member removed.", + "Member role updated.": "Member role updated.", "Mindestens eine URL muss angegeben werden.": "Legalább egy URL-t meg kell adni.", "Mindestens eine URL oder IP muss angegeben werden.": "Legalább egy URL-t vagy IP-t meg kell adni.", "Mittwoch": "Szerda", @@ -336,6 +368,7 @@ "Neues Meetup": "Új meetup", "Neues Meetup erstellen": "Új meetup létrehozása", "New password": "Új jelszó", + "New team": "New team", "no location set": "nincs helyszín beállítva", "Node ID": "Node ID", "Normale Web-URL": "Normál web URL", @@ -364,16 +397,21 @@ "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Szabd testre Bitcoin meetup profilod megjelenését.", "Password": "Jelszó", "Password Settings": "Password Settings", + "Password updated.": "Password updated.", "Passwort ändern - Bitcoin Meetups": "Jelszó módosítása - Bitcoin Meetupok", "Payment Required": "fizetés szükséges", "PayNym": "PayNym", "PayNym für Bitcoin-Zahlungen": "PayNym Bitcoin fizetésekhez", + "Pending invitations": "Pending invitations", + "Permanently delete your team": "Permanently delete your team", + "Personal": "Personal", "Persönliche Webseite oder Portfolio": "Személyes weboldal vagy portfólió", "Pkarr DNS Adresse": "Pkarr DNS cím", "Platform": "Platform", "Please click the button below to verify your email address.": "Kérjük kattintson az alábbi gombra az e-mail címe megerősítéséhez.", "Please confirm access to your account by entering one of your emergency recovery codes.": "Kérjük, erősítse meg a fiókjához való hozzáférést az egyik vészhelyzeti helyreállítási kód megadásával.", "Please enter your new password below": "Kérjük, írja be az alábbiakban új jelszavát", + "Please proceed with caution, this cannot be undone.": "Please proceed with caution, this cannot be undone.", "Please verify your email address by clicking on the link we just emailed to you.": "Kérjük, ellenőrizze e -mail címét, ha rákattint a linkre, amelyet csak e -mailben küldünk neked.", "Population": "Népesség", "Population Date": "Népesség dátuma", @@ -382,29 +420,41 @@ "Profil bearbeiten - Bitcoin Meetups": "Profil szerkesztése - Bitcoin Meetupok", "Profile": "Profil", "Profile Settings": "Profile Settings", + "Profile settings": "Profilbeállítások", + "Profile updated.": "Profile updated.", "Recovery Code": "Helyreállítási kód", - "Recovery codes": "Recovery codes", + "Recovery code": "Helyreállítási kód", + "Recovery codes": "Helyreállítási kódok", "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "A helyreállítási kódok lehetővé teszik a hozzáférést, ha elveszítik a 2FA -eszközt. Tárolja őket egy biztonságos jelszókezelőben.", "Regards,": "Üdvözlettel,", "Regenerate Codes": "A kódok regenerálása", - "Register": "Regisztráció", + "Regenerate codes": "Kódok újragenerálása", + "Register": "Nyilvántartás", "Remember me": "Emlékezz rám", + "Remove member": "Remove member", + "Remove team member": "Remove team member", "Repository": "Tároló", "Resend verification email": "Helyezze vissza az ellenőrzési e -mailt", "Reset password": "A jelszó visszaállítása", "Reset Password": "Jelszó helyreállítás", "Reset Password Notification": "Jelszó helyreállítás emlékeztető", "results": "eredmények", + "Role": "Role", "Samstag": "Szombat", "Save": "Mentés", "Saved.": "Elmentve.", "Search": "Keresés", "Search cities...": "Városok keresése...", "Search venues...": "Helyszínek keresése...", + "Security": "Biztonság", + "Security settings": "Biztonsági beállítások", "Select a city": "Válassz várost", "Select a country": "Válassz országot", + "Select team": "Select team", "Self Hosted Services": "Self Hosted Services", "Self-Hosted Services - Übersicht": "Self Hosted Services - Áttekintés", + "Send an invitation to join this team.": "Send an invitation to join this team.", + "Send invitation": "Send invitation", "Serientermine erstellen": "Ismétlődő időpontok létrehozása", "Serientermine erstellen?": "Ismétlődő időpontok létrehozása?", "Server Error": "Szerver hiba", @@ -462,15 +512,28 @@ "System": "Rendszer", "System-generierte ID (nur lesbar)": "Rendszer által generált ID (csak olvasható)", "Systeminformationen": "Rendszerinformációk", + "Team created.": "Team created.", + "Team deleted.": "Team deleted.", + "Team members": "Team members", + "Team name": "Team name", + "Team updated.": "Team updated.", + "Teams": "Teams", "Teilnahme": "Részvétel", "Telegram": "Telegram", "Telegram Link": "Telegram link", "The given data was invalid.": "A megadott adatok érvénytelenek voltak.", "The response is not a streamed response.": "A válasz nem streamelt válasz.", "The response is not a view.": "A válasz nem nézet.", + "The team name does not match.": "The team name does not match.", + "This action cannot be undone. This will permanently delete the team \":name\".": "This action cannot be undone. This will permanently delete the team \":name\".", "This action is unauthorized.": "Nincs elég jogosultsága végrehajtani ezt a műveletet.", + "This invitation has already been accepted.": "This invitation has already been accepted.", + "This invitation has expired.": "This invitation has expired.", + "This invitation was sent to a different email address.": "This invitation was sent to a different email address.", "This is a secure area of the application. Please confirm your password before continuing.": "Ez az alkalmazás biztonságos területe. Mielőtt folytatná, erősítse meg jelszavát.", "This password reset link will expire in :count minutes.": "Ez a jelszó helyreállító hivatkozás :count perc múlva le fog járni.", + "This team name is reserved and cannot be used.": "This team name is reserved and cannot be used.", + "This user is already a member of the team.": "This user is already a member of the team.", "to": "hogy", "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "A két tényezős hitelesítés engedélyezésének befejezéséhez írja be a QR-kódot, vagy írja be a Setup gombot az Authenticator alkalmazásba.", "Toggle navigation": "Navigáció be/ki", @@ -484,10 +547,13 @@ "Twitter-Handle ohne @ Symbol": "Twitter handle @ szimbólum nélkül", "Two Factor Authentication": "Két tényező hitelesítés", "Two-Factor Auth": "Kéttényezős Auth", + "Two-factor authentication": "Kéttényezős hitelesítés", "Two-Factor Authentication Enabled": "A két tényezős hitelesítés engedélyezve", + "Two-factor authentication enabled": "Kéttényezős hitelesítés engedélyezve", "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "A két tényezős hitelesítés már engedélyezve van. Vizsgálja meg a QR -kódot, vagy írja be a Setup gombot az Authenticator alkalmazásba.", "Two-Factor Authentication Settings": "Two-Factor Authentication Settings", "Typ": "Típus", + "Type \":name\" to confirm": "Type \":name\" to confirm", "Täglich": "Napi", "Uhr": "óra", "Uhrzeit": "Időpont", @@ -522,22 +588,28 @@ "Veranstaltungsorte - Übersicht": "Helyszínek - Áttekintés", "Verbinde dich mit Bitcoinern in deiner Nähe": "Kapcsolódj bitcoinerekhez a közeledben", "Verify Authentication Code": "Ellenőrizze a hitelesítési kódot", + "Verify authentication code": "Ellenőrizze a hitelesítési kódot", "Verify Email Address": "E-mail cím megerősítése", "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Kezeld Bitcoin meetupjaidat, eseményeidet és beállításaidat személyes irányítópultodon.", "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Kezeld Bitcoin oktatási rendezvényeid időpontjait és részleteit.", "Vielleicht": "Talán", "Vierter": "Negyedik", + "View :name": "View :name", "View Recovery Codes": "A helyreállítási kódok megtekintése", + "View recovery codes": "Tekintse meg a helyreállítási kódokat", + "View team": "View team", "Vollständiger Name des Dozenten": "Az oktató teljes neve", "Vorschau auf 100 Termine begrenzt. Es werden möglicherweise mehr Termine erstellt.": "Az előnézet 100 időpontra korlátozódik. Lehet, hogy több időpont lesz létrehozva.", "Vorschau der Termine": "Időpontok előnézete", "Wann dieser Dozent erstellt wurde": "Mikor lett ez az oktató létrehozva", "Wann dieser Kurs erstellt wurde": "Mikor lett ez a kurzus létrehozva", "Wann dieses Meetup erstellt wurde": "Mikor lett ez a meetup létrehozva", + "Warning": "Warning", "Webseite": "Weboldal", "Website": "Weboldal", "weitere Termine": "további időpontok", "Welcher Wochentag im Monat? (z.B. \"letzter Freitag": "Melyik hétköznap a hónapban? (pl. \"utolsó péntek", + "Welcome": "Üdvözöljük", "Welt-Karte": "Világtérkép", "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Válj Bitcoin oktatóvá és oszd meg szakértői tudásodat a közösséggel.", "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "Ha engedélyezi a két tényezős hitelesítést, a bejelentkezés során a rendszer kéri a biztonságos PIN-kódot. Ez a PIN-kód a telefonján a TOTP által támogatott alkalmazásból származhat.", @@ -560,6 +632,9 @@ "Wähle die Stadt aus...": "Válaszd ki a várost...", "Wöchentlich": "Hetente", "You are receiving this email because we received a password reset request for your account.": "Azért kapja ezt az üzenetet, mert a fiókjára jelszó helyreállítási kérés érkezett.", + "You don't belong to any teams yet.": "You don't belong to any teams yet.", + "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "A bejelentkezés során egy biztonságos, véletlenszerű PIN kódot kell megadnia, amelyet a telefon TOTP-támogatott alkalmazásából kérhet le.", + "You've been invited to join :teamName": "You've been invited to join :teamName", "Your email address is unverified.": "Az Ön e-mail címe nincs ellenőrizve.", "z.B. Berlin": "pl. Budapest", "z.B. Bitcoin Zentrum München": "pl. Bitcoin Központ Budapest", diff --git a/lang/hu/validation.php b/lang/hu/validation.php index 9235c60..a41624f 100644 --- a/lang/hu/validation.php +++ b/lang/hu/validation.php @@ -3,156 +3,157 @@ declare(strict_types=1); return [ - 'accepted' => 'A(z) :attribute el kell legyen fogadva!', - 'accepted_if' => 'A :attribute-at el kell fogadni, amikor a :other az :value.', - 'active_url' => 'A(z) :attribute nem érvényes url!', - 'after' => 'A(z) :attribute :date utáni dátum kell, hogy legyen!', - 'after_or_equal' => 'A(z) :attribute nem lehet korábbi dátum, mint :date!', - 'alpha' => 'A(z) :attribute kizárólag betűket tartalmazhat!', - 'alpha_dash' => 'A(z) :attribute kizárólag betűket, számokat és kötőjeleket tartalmazhat!', - 'alpha_num' => 'A(z) :attribute kizárólag betűket és számokat tartalmazhat!', - 'any_of' => 'A :attribute mező érvénytelen.', - 'array' => 'A(z) :attribute egy tömb kell, hogy legyen!', - 'ascii' => 'A :attribute csak egybájtos alfanumerikus karaktereket és szimbólumokat tartalmazhat.', - 'before' => 'A(z) :attribute :date előtti dátum kell, hogy legyen!', - 'before_or_equal' => 'A(z) :attribute nem lehet későbbi dátum, mint :date!', - 'between' => [ - 'array' => 'A(z) :attribute :min - :max közötti elemet kell, hogy tartalmazzon!', - 'file' => 'A(z) :attribute mérete :min és :max kilobájt között kell, hogy legyen!', + 'accepted' => 'A(z) :attribute el kell legyen fogadva!', + 'accepted_if' => 'A :attribute-at el kell fogadni, amikor a :other az :value.', + 'active_url' => 'A(z) :attribute nem érvényes url!', + 'after' => 'A(z) :attribute :date utáni dátum kell, hogy legyen!', + 'after_or_equal' => 'A(z) :attribute nem lehet korábbi dátum, mint :date!', + 'alpha' => 'A(z) :attribute kizárólag betűket tartalmazhat!', + 'alpha_dash' => 'A(z) :attribute kizárólag betűket, számokat és kötőjeleket tartalmazhat!', + 'alpha_num' => 'A(z) :attribute kizárólag betűket és számokat tartalmazhat!', + 'any_of' => 'A :attribute mező érvénytelen.', + 'array' => 'A(z) :attribute egy tömb kell, hogy legyen!', + 'ascii' => 'A :attribute csak egybájtos alfanumerikus karaktereket és szimbólumokat tartalmazhat.', + 'before' => 'A(z) :attribute :date előtti dátum kell, hogy legyen!', + 'before_or_equal' => 'A(z) :attribute nem lehet későbbi dátum, mint :date!', + 'between' => [ + 'array' => 'A(z) :attribute :min - :max közötti elemet kell, hogy tartalmazzon!', + 'file' => 'A(z) :attribute mérete :min és :max kilobájt között kell, hogy legyen!', 'numeric' => 'A(z) :attribute :min és :max közötti szám kell, hogy legyen!', - 'string' => 'A(z) :attribute hossza :min és :max karakter között kell, hogy legyen!', + 'string' => 'A(z) :attribute hossza :min és :max karakter között kell, hogy legyen!', ], - 'boolean' => 'A(z) :attribute mező csak true vagy false értéket kaphat!', - 'can' => 'A :attribute-es mező nem engedélyezett értéket tartalmaz.', - 'confirmed' => 'A(z) :attribute nem egyezik a megerősítéssel.', - 'contains' => 'A :attribute-es mezőből hiányzik a kötelező érték.', - 'current_password' => 'A jelszó helytelen.', - 'date' => 'A(z) :attribute nem érvényes dátum.', - 'date_equals' => ':Attribute meg kell egyezzen a következővel: :date.', - 'date_format' => 'A(z) :attribute nem egyezik az alábbi dátum formátummal :format!', - 'decimal' => 'A :attribute-nak :decimal tizedesjegynek kell lennie.', - 'declined' => 'A :attribute-at el kell utasítani.', - 'declined_if' => 'A :attribute-at el kell utasítani, ha a :other az :value.', - 'different' => 'A(z) :attribute és :other értékei különbözőek kell, hogy legyenek!', - 'digits' => 'A(z) :attribute :digits számjegyű kell, hogy legyen!', - 'digits_between' => 'A(z) :attribute értéke :min és :max közötti számjegy lehet!', - 'dimensions' => 'A(z) :attribute felbontása nem megfelelő.', - 'distinct' => 'A(z) :attribute értékének egyedinek kell lennie!', - 'doesnt_contain' => 'A :attribute mező nem tartalmazhat a következők egyikét: :values.', - 'doesnt_end_with' => 'A :attribute nem végződhet a következők egyikével: :values.', - 'doesnt_start_with' => 'A :attribute nem kezdődhet a következők egyikével: :values.', - 'email' => 'A(z) :attribute nem érvényes email formátum.', - 'ends_with' => 'A(z) :attribute a következővel kell végződjön: :values', - 'enum' => 'A kiválasztott :attribute érvénytelen.', - 'exists' => 'A kiválasztott :attribute érvénytelen.', - 'extensions' => 'A :attribute-es mezőnek a következő kiterjesztések valamelyikével kell rendelkeznie: :values.', - 'file' => 'A(z) :attribute fájl kell, hogy legyen!', - 'filled' => 'A(z) :attribute megadása kötelező!', - 'gt' => [ - 'array' => 'A(z) :attribute több, mint :value elemet kell, hogy tartalmazzon.', - 'file' => 'A(z) :attribute mérete nagyobb kell, hogy legyen, mint :value kilobájt.', + 'boolean' => 'A(z) :attribute mező csak true vagy false értéket kaphat!', + 'can' => 'A :attribute-es mező nem engedélyezett értéket tartalmaz.', + 'confirmed' => 'A(z) :attribute nem egyezik a megerősítéssel.', + 'contains' => 'A :attribute-es mezőből hiányzik a kötelező érték.', + 'current_password' => 'A jelszó helytelen.', + 'date' => 'A(z) :attribute nem érvényes dátum.', + 'date_equals' => ':Attribute meg kell egyezzen a következővel: :date.', + 'date_format' => 'A(z) :attribute nem egyezik az alábbi dátum formátummal :format!', + 'decimal' => 'A :attribute-nak :decimal tizedesjegynek kell lennie.', + 'declined' => 'A :attribute-at el kell utasítani.', + 'declined_if' => 'A :attribute-at el kell utasítani, ha a :other az :value.', + 'different' => 'A(z) :attribute és :other értékei különbözőek kell, hogy legyenek!', + 'digits' => 'A(z) :attribute :digits számjegyű kell, hogy legyen!', + 'digits_between' => 'A(z) :attribute értéke :min és :max közötti számjegy lehet!', + 'dimensions' => 'A(z) :attribute felbontása nem megfelelő.', + 'distinct' => 'A(z) :attribute értékének egyedinek kell lennie!', + 'doesnt_contain' => 'A :attribute mező nem tartalmazhat a következők egyikét: :values.', + 'doesnt_end_with' => 'A :attribute nem végződhet a következők egyikével: :values.', + 'doesnt_start_with' => 'A :attribute nem kezdődhet a következők egyikével: :values.', + 'email' => 'A(z) :attribute nem érvényes email formátum.', + 'encoding' => 'A :attribute-es mezőt :encoding-ban kell kódolni.', + 'ends_with' => 'A(z) :attribute a következővel kell végződjön: :values', + 'enum' => 'A kiválasztott :attribute érvénytelen.', + 'exists' => 'A kiválasztott :attribute érvénytelen.', + 'extensions' => 'A :attribute-es mezőnek a következő kiterjesztések valamelyikével kell rendelkeznie: :values.', + 'file' => 'A(z) :attribute fájl kell, hogy legyen!', + 'filled' => 'A(z) :attribute megadása kötelező!', + 'gt' => [ + 'array' => 'A(z) :attribute több, mint :value elemet kell, hogy tartalmazzon.', + 'file' => 'A(z) :attribute mérete nagyobb kell, hogy legyen, mint :value kilobájt.', 'numeric' => 'A(z) :attribute nagyobb kell, hogy legyen, mint :value!', - 'string' => 'A(z) :attribute hosszabb kell, hogy legyen, mint :value karakter.', + 'string' => 'A(z) :attribute hosszabb kell, hogy legyen, mint :value karakter.', ], - 'gte' => [ - 'array' => 'A(z) :attribute legalább :value elemet kell, hogy tartalmazzon.', - 'file' => 'A(z) :attribute mérete nem lehet kevesebb, mint :value kilobájt.', + 'gte' => [ + 'array' => 'A(z) :attribute legalább :value elemet kell, hogy tartalmazzon.', + 'file' => 'A(z) :attribute mérete nem lehet kevesebb, mint :value kilobájt.', 'numeric' => 'A(z) :attribute nagyobb vagy egyenlő kell, hogy legyen, mint :value!', - 'string' => 'A(z) :attribute hossza nem lehet kevesebb, mint :value karakter.', + 'string' => 'A(z) :attribute hossza nem lehet kevesebb, mint :value karakter.', ], - 'hex_color' => 'A :attribute-es mezőnek érvényes hexadecimális színnek kell lennie.', - 'image' => 'A(z) :attribute képfájl kell, hogy legyen!', - 'in' => 'A kiválasztott :attribute érvénytelen.', - 'in_array' => 'A(z) :attribute értéke nem található a(z) :other értékek között.', - 'in_array_keys' => 'A :attribute mezőnek a következő kulcsok közül legalább egyet tartalmaznia kell: :values.', - 'integer' => 'A(z) :attribute értéke szám kell, hogy legyen!', - 'ip' => 'A(z) :attribute érvényes IP cím kell, hogy legyen!', - 'ipv4' => 'A(z) :attribute érvényes IPv4 cím kell, hogy legyen!', - 'ipv6' => 'A(z) :attribute érvényes IPv6 cím kell, hogy legyen!', - 'json' => 'A(z) :attribute érvényes JSON szöveg kell, hogy legyen!', - 'list' => 'A :attribute-es mezőnek listának kell lennie.', - 'lowercase' => 'A :attribute-nak kisbetűnek kell lennie.', - 'lt' => [ - 'array' => 'A(z) :attribute kevesebb, mint :value elemet kell, hogy tartalmazzon.', - 'file' => 'A(z) :attribute mérete kisebb kell, hogy legyen, mint :value kilobájt.', + 'hex_color' => 'A :attribute-es mezőnek érvényes hexadecimális színnek kell lennie.', + 'image' => 'A(z) :attribute képfájl kell, hogy legyen!', + 'in' => 'A kiválasztott :attribute érvénytelen.', + 'in_array' => 'A(z) :attribute értéke nem található a(z) :other értékek között.', + 'in_array_keys' => 'A :attribute mezőnek a következő kulcsok közül legalább egyet tartalmaznia kell: :values.', + 'integer' => 'A(z) :attribute értéke szám kell, hogy legyen!', + 'ip' => 'A(z) :attribute érvényes IP cím kell, hogy legyen!', + 'ipv4' => 'A(z) :attribute érvényes IPv4 cím kell, hogy legyen!', + 'ipv6' => 'A(z) :attribute érvényes IPv6 cím kell, hogy legyen!', + 'json' => 'A(z) :attribute érvényes JSON szöveg kell, hogy legyen!', + 'list' => 'A :attribute-es mezőnek listának kell lennie.', + 'lowercase' => 'A :attribute-nak kisbetűnek kell lennie.', + 'lt' => [ + 'array' => 'A(z) :attribute kevesebb, mint :value elemet kell, hogy tartalmazzon.', + 'file' => 'A(z) :attribute mérete kisebb kell, hogy legyen, mint :value kilobájt.', 'numeric' => 'A(z) :attribute kisebb kell, hogy legyen, mint :value!', - 'string' => 'A(z) :attribute rövidebb kell, hogy legyen, mint :value karakter.', + 'string' => 'A(z) :attribute rövidebb kell, hogy legyen, mint :value karakter.', ], - 'lte' => [ - 'array' => 'A(z) :attribute legfeljebb :value elemet kell, hogy tartalmazzon.', - 'file' => 'A(z) :attribute mérete nem lehet több, mint :value kilobájt.', + 'lte' => [ + 'array' => 'A(z) :attribute legfeljebb :value elemet kell, hogy tartalmazzon.', + 'file' => 'A(z) :attribute mérete nem lehet több, mint :value kilobájt.', 'numeric' => 'A(z) :attribute kisebb vagy egyenlő kell, hogy legyen, mint :value!', - 'string' => 'A(z) :attribute hossza nem lehet több, mint :value karakter.', + 'string' => 'A(z) :attribute hossza nem lehet több, mint :value karakter.', ], - 'mac_address' => 'A :attribute-nak érvényes MAC-címnek kell lennie.', - 'max' => [ - 'array' => 'A(z) :attribute legfeljebb :max elemet kell, hogy tartalmazzon.', - 'file' => 'A(z) :attribute mérete nem lehet több, mint :max kilobájt.', + 'mac_address' => 'A :attribute-nak érvényes MAC-címnek kell lennie.', + 'max' => [ + 'array' => 'A(z) :attribute legfeljebb :max elemet kell, hogy tartalmazzon.', + 'file' => 'A(z) :attribute mérete nem lehet több, mint :max kilobájt.', 'numeric' => 'A(z) :attribute értéke nem lehet nagyobb, mint :max!', - 'string' => 'A(z) :attribute hossza nem lehet több, mint :max karakter.', + 'string' => 'A(z) :attribute hossza nem lehet több, mint :max karakter.', ], - 'max_digits' => 'A :attribute nem lehet több :max számjegynél.', - 'mimes' => 'A(z) :attribute kizárólag az alábbi fájlformátumok egyike lehet: :values.', - 'mimetypes' => 'A(z) :attribute kizárólag az alábbi fájlformátumok egyike lehet: :values.', - 'min' => [ - 'array' => 'A(z) :attribute legalább :min elemet kell, hogy tartalmazzon.', - 'file' => 'A(z) :attribute mérete nem lehet kevesebb, mint :min kilobájt.', + 'max_digits' => 'A :attribute nem lehet több :max számjegynél.', + 'mimes' => 'A(z) :attribute kizárólag az alábbi fájlformátumok egyike lehet: :values.', + 'mimetypes' => 'A(z) :attribute kizárólag az alábbi fájlformátumok egyike lehet: :values.', + 'min' => [ + 'array' => 'A(z) :attribute legalább :min elemet kell, hogy tartalmazzon.', + 'file' => 'A(z) :attribute mérete nem lehet kevesebb, mint :min kilobájt.', 'numeric' => 'A(z) :attribute értéke nem lehet kisebb, mint :min!', - 'string' => 'A(z) :attribute hossza nem lehet kevesebb, mint :min karakter.', + 'string' => 'A(z) :attribute hossza nem lehet kevesebb, mint :min karakter.', ], - 'min_digits' => 'A :attribute-nak legalább :min számjegyből kell állnia.', - 'missing' => 'A :attribute-as mezőnek hiányoznia kell.', - 'missing_if' => 'A :attribute-as mezőnek hiányoznia kell, ha a :other az :value.', - 'missing_unless' => 'A :attribute-as mezőnek hiányoznia kell, hacsak a :other nem :value.', - 'missing_with' => 'A :attribute-as mezőnek hiányoznia kell, ha a :values szerepel.', - 'missing_with_all' => 'A :attribute mezőnek hiányoznia kell, ha :values van jelen.', - 'multiple_of' => 'A :attribute :value többszörösének kell lennie', - 'not_in' => 'A(z) :attribute értéke érvénytelen.', - 'not_regex' => 'A(z) :attribute formátuma érvénytelen.', - 'numeric' => 'A(z) :attribute szám kell, hogy legyen!', - 'password' => [ - 'letters' => 'A :attribute-nak legalább egy betűt kell tartalmaznia.', - 'mixed' => 'A :attribute-nak legalább egy nagybetűt és egy kisbetűt kell tartalmaznia.', - 'numbers' => 'A :attribute-nak legalább egy számot kell tartalmaznia.', - 'symbols' => 'A :attribute-nak legalább egy szimbólumot kell tartalmaznia.', + 'min_digits' => 'A :attribute-nak legalább :min számjegyből kell állnia.', + 'missing' => 'A :attribute-as mezőnek hiányoznia kell.', + 'missing_if' => 'A :attribute-as mezőnek hiányoznia kell, ha a :other az :value.', + 'missing_unless' => 'A :attribute-as mezőnek hiányoznia kell, hacsak a :other nem :value.', + 'missing_with' => 'A :attribute-as mezőnek hiányoznia kell, ha a :values szerepel.', + 'missing_with_all' => 'A :attribute mezőnek hiányoznia kell, ha :values van jelen.', + 'multiple_of' => 'A :attribute :value többszörösének kell lennie', + 'not_in' => 'A(z) :attribute értéke érvénytelen.', + 'not_regex' => 'A(z) :attribute formátuma érvénytelen.', + 'numeric' => 'A(z) :attribute szám kell, hogy legyen!', + 'password' => [ + 'letters' => 'A :attribute-nak legalább egy betűt kell tartalmaznia.', + 'mixed' => 'A :attribute-nak legalább egy nagybetűt és egy kisbetűt kell tartalmaznia.', + 'numbers' => 'A :attribute-nak legalább egy számot kell tartalmaznia.', + 'symbols' => 'A :attribute-nak legalább egy szimbólumot kell tartalmaznia.', 'uncompromised' => 'Adatszivárgásban jelent meg az adott :attribute. Kérjük, válasszon másik :attribute-at.', ], - 'present' => 'A(z) :attribute mező nem található!', - 'present_if' => 'A :attribute-es mezőnek jelen kell lennie, ha a :other az :value.', - 'present_unless' => 'A :attribute-es mezőnek jelen kell lennie, kivéve, ha a :other az :value.', - 'present_with' => 'A :attribute-es mezőnek jelen kell lennie, ha :values van jelen.', - 'present_with_all' => 'A :attribute mezőnek jelen kell lennie, ha :values van jelen.', - 'prohibited' => 'A :attribute mező tilos.', - 'prohibited_if' => 'A :attribute mező tilos, ha :other :value.', + 'present' => 'A(z) :attribute mező nem található!', + 'present_if' => 'A :attribute-es mezőnek jelen kell lennie, ha a :other az :value.', + 'present_unless' => 'A :attribute-es mezőnek jelen kell lennie, kivéve, ha a :other az :value.', + 'present_with' => 'A :attribute-es mezőnek jelen kell lennie, ha :values van jelen.', + 'present_with_all' => 'A :attribute mezőnek jelen kell lennie, ha :values van jelen.', + 'prohibited' => 'A :attribute mező tilos.', + 'prohibited_if' => 'A :attribute mező tilos, ha :other :value.', 'prohibited_if_accepted' => 'A :attribute mező tilos, ha :other elfogadásra kerül.', 'prohibited_if_declined' => 'A :attribute mező tilos, ha a :other -at elutasítják.', - 'prohibited_unless' => 'A :attribute mező tilos, kivéve, ha :other a :values.', - 'prohibits' => 'A :attribute mező tiltja, hogy :other jelen legyen.', - 'regex' => 'A(z) :attribute formátuma érvénytelen.', - 'required' => 'A(z) :attribute megadása kötelező!', - 'required_array_keys' => 'A :attribute-as mezőnek a következő bejegyzéseket kell tartalmaznia: :values.', - 'required_if' => 'A(z) :attribute megadása kötelező, ha a(z) :other értéke :value!', - 'required_if_accepted' => 'A :attribute-as mező kitöltése kötelező, ha elfogadja a :other-at.', - 'required_if_declined' => 'A :attribute-es mező kitöltése kötelező, ha a :other-at elutasítják.', - 'required_unless' => 'A(z) :attribute megadása kötelező, ha a(z) :other értéke nem :values!', - 'required_with' => 'A(z) :attribute megadása kötelező, ha a(z) :values érték létezik.', - 'required_with_all' => 'A(z) :attribute megadása kötelező, ha a(z) :values értékek léteznek.', - 'required_without' => 'A(z) :attribute megadása kötelező, ha a(z) :values érték nem létezik.', - 'required_without_all' => 'A(z) :attribute megadása kötelező, ha egyik :values érték sem létezik.', - 'same' => 'A(z) :attribute és :other mezőknek egyezniük kell!', - 'size' => [ - 'array' => 'A(z) :attribute :size elemet kell tartalmazzon!', - 'file' => 'A(z) :attribute mérete :size kilobájt kell, hogy legyen!', + 'prohibited_unless' => 'A :attribute mező tilos, kivéve, ha :other a :values.', + 'prohibits' => 'A :attribute mező tiltja, hogy :other jelen legyen.', + 'regex' => 'A(z) :attribute formátuma érvénytelen.', + 'required' => 'A(z) :attribute megadása kötelező!', + 'required_array_keys' => 'A :attribute-as mezőnek a következő bejegyzéseket kell tartalmaznia: :values.', + 'required_if' => 'A(z) :attribute megadása kötelező, ha a(z) :other értéke :value!', + 'required_if_accepted' => 'A :attribute-as mező kitöltése kötelező, ha elfogadja a :other-at.', + 'required_if_declined' => 'A :attribute-es mező kitöltése kötelező, ha a :other-at elutasítják.', + 'required_unless' => 'A(z) :attribute megadása kötelező, ha a(z) :other értéke nem :values!', + 'required_with' => 'A(z) :attribute megadása kötelező, ha a(z) :values érték létezik.', + 'required_with_all' => 'A(z) :attribute megadása kötelező, ha a(z) :values értékek léteznek.', + 'required_without' => 'A(z) :attribute megadása kötelező, ha a(z) :values érték nem létezik.', + 'required_without_all' => 'A(z) :attribute megadása kötelező, ha egyik :values érték sem létezik.', + 'same' => 'A(z) :attribute és :other mezőknek egyezniük kell!', + 'size' => [ + 'array' => 'A(z) :attribute :size elemet kell tartalmazzon!', + 'file' => 'A(z) :attribute mérete :size kilobájt kell, hogy legyen!', 'numeric' => 'A(z) :attribute értéke :size kell, hogy legyen!', - 'string' => 'A(z) :attribute hossza :size karakter kell, hogy legyen!', + 'string' => 'A(z) :attribute hossza :size karakter kell, hogy legyen!', ], - 'starts_with' => ':Attribute a következővel kell kezdődjön: :values', - 'string' => 'A(z) :attribute szöveg kell, hogy legyen.', - 'timezone' => 'A(z) :attribute nem létező időzona.', - 'ulid' => 'A :attribute-nak érvényes ULID-nek kell lennie.', - 'unique' => 'A(z) :attribute már foglalt.', - 'uploaded' => 'A(z) :attribute feltöltése sikertelen.', - 'uppercase' => 'A :attribute-nak nagybetűnek kell lennie.', - 'url' => 'A(z) :attribute érvénytelen link.', - 'uuid' => ':Attribute érvényes UUID-val kell rendelkezzen.', + 'starts_with' => ':Attribute a következővel kell kezdődjön: :values', + 'string' => 'A(z) :attribute szöveg kell, hogy legyen.', + 'timezone' => 'A(z) :attribute nem létező időzona.', + 'ulid' => 'A :attribute-nak érvényes ULID-nek kell lennie.', + 'unique' => 'A(z) :attribute már foglalt.', + 'uploaded' => 'A(z) :attribute feltöltése sikertelen.', + 'uppercase' => 'A :attribute-nak nagybetűnek kell lennie.', + 'url' => 'A(z) :attribute érvénytelen link.', + 'uuid' => ':Attribute érvényes UUID-val kell rendelkezzen.', ]; diff --git a/lang/nl.json b/lang/nl.json index e6a9baa..b54cc59 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -2,13 +2,16 @@ "(and :count more error)": "(en :count andere foutmelding)", "(and :count more errors)": "(en :count andere foutmelding)|(en :count andere foutmeldingen)|(en :count andere foutmeldingen)", "2FA Recovery Codes": "2FA Recovery Codes", + "2FA recovery codes": "2FA recovery codes", ":count Events erfolgreich erstellt!": ":count evenementen succesvol aangemaakt!", + ":inviterName has invited you to join the :teamName team.": ":inviterName has invited you to join the :teamName team.", "A decryption key is required.": "Een decryptiesleutel is verplicht.", "A new verification link has been sent to the email address you provided during registration.": "Er is een nieuwe verificatielink verstuurd naar het e-mailadres dat je ingegeven hebt tijdens de registratie.", "A new verification link has been sent to your email address.": "Er is een nieuwe verificatielink naar je e-mailadres verstuurd.", "A reset link will be sent if the account exists.": "Er wordt een resetlink verstuurd als het account bestaat.", "Abbrechen": "Annuleren", "Absagen": "Afmelden", + "Accept invitation": "Accept invitation", "Actions": "Acties", "Aktionen": "Acties", "Aktiv": "Actief", @@ -28,6 +31,7 @@ "Alle Meetups anzeigen": "Alle Meetups weergeven", "Allgemeine Bitcoin Community": "Algemene Bitcoin Gemeenschap", "Already have an account?": "Heb je al een account?", + "An invitation has already been sent to this email address.": "An invitation has already been sent to this email address.", "An welchem Tag beginnt das Event?": "Op welke dag begint het evenement?", "An welchem Tag endet das Event?": "Op welke dag eindigt het evenement?", "An welchem Tag findet das Event statt?": "Op welke dag vindt het evenement plaats?", @@ -39,13 +43,18 @@ "App": "App", "Appearance": "Weergave", "Appearance Settings": "Appearance Settings", + "Appearance settings": "Appearance settings", + "Are you sure you want to cancel the invitation for :email?": "Are you sure you want to cancel the invitation for :email?", "Are you sure you want to delete your account?": "Weet je zeker dat je je account wilt verwijderen?", + "Are you sure you want to remove :name from this team?": "Are you sure you want to remove :name from this team?", + "Are you sure?": "Are you sure?", "Art des Services": "Type service", "Auf Karte sichtbar": "Zichtbaar op kaart", "aus deinen Meetups entfernen?": "uit je Meetups verwijderen?", "Ausführliche Beschreibung des Kurses": "Gedetailleerde beschrijving van de cursus", "Ausführliche Beschreibung und Biografie": "Gedetailleerde beschrijving en biografie", "Authentication Code": "Authentication Code", + "Authentication code": "Authentication code", "Automatisch (gleiches Datum)": "Automatisch (zelfde datum)", "Automatisch (wie Startdatum)": "Automatisch (zoals startdatum)", "Back": "Back", @@ -71,6 +80,7 @@ "BooksForPlebs": "BooksForPlebs", "Breitengrad": "Breedtegraad", "Cancel": "Annuleren", + "Cancel invitation": "Cancel invitation", "Cities": "Steden", "City": "Stad", "City successfully created!": "Stad succesvol aangemaakt!", @@ -88,9 +98,11 @@ "Copied into clipboard": "Gekopieerd naar klembord", "Copy": "Kopiëren", "Country": "Land", + "Create a new team": "Create a new team", "Create account": "Account aanmaken", "Create an account": "Account aanmaken", "Create City": "Stad aanmaken", + "Create team": "Create team", "Create Venue": "Locatie aanmaken", "Created at": "Aangemaakt op", "Created By": "Aangemaakt door", @@ -103,6 +115,7 @@ "Datum des letzten Termins": "Datum van de laatste afspraak", "Dein Name": "Je naam", "Delete account": "Account verwijderen", + "Delete team": "Delete team", "Delete your account and all of its resources": "Verwijder je account en alle bijbehorende gegevens", "Demographics": "Demografie", "Der Anzeigename für diesen Kurs": "De weergavenaam voor deze cursus", @@ -140,8 +153,11 @@ "Du kannst es jederzeit wieder hinzufügen.": "Je kunt het altijd weer toevoegen.", "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Doorzoek alle steden met actieve Bitcoin Meetups en vind evenementen in je buurt.", "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.", "Edit": "Bewerken", + "Edit :name": "Edit :name", "Edit City": "Stad bewerken", + "Edit team": "Edit team", "Edit Venue": "Locatie bewerken", "Einführung": "Introductie", "Einundzwanzig Community": "Eenentwintig Community", @@ -150,8 +166,10 @@ "Email Address": "E-mailadres", "Email address": "E-mailadres", "Email password reset link": "Stuur wachtwoord reset link", + "Email verification": "Email verification", "Enable 2FA": "Enable 2FA", "Enable Two-Factor Authentication": "Enable Two-Factor Authentication", + "Enable two-factor authentication": "Enable two-factor authentication", "Enabled": "Enabled", "Encrypted environment file already exists.": "Versleuteld environment-bestand bestaat al.", "Encrypted environment file not found.": "Versleuteld environment-bestand niet gevonden.", @@ -211,10 +229,12 @@ "Für regelmäßige Termine wie \"immer am letzten Freitag des Monats\":": "Voor regelmatige afspraken zoals \"altijd op de laatste vrijdag van de maand\":", "Gemeinschaft": "Gemeenschap", "Gemeinschafts- oder Organisationsname": "Gemeenschaps- of organisatienaam", + "Give your team a name to get started.": "Give your team a name to get started.", "Go to page :page": "Ga naar pagina :page", "Grundlegende Informationen": "Basisinformatie", "Hello!": "Hallo!", "Hide Recovery Codes": "Hide Recovery Codes", + "Hide recovery codes": "Hide recovery codes", "I2P Adresse": "I2P-adres", "Ich komme": "Ik kom", "ID": "ID", @@ -227,6 +247,11 @@ "Intervall": "Interval", "Invalid filename.": "Ongeldige bestandsnaam.", "Invalid JSON was returned from the route.": "Er is ongeldige JSON teruggekomen van de route.", + "Invitation cancelled.": "Invitation cancelled.", + "Invitation sent.": "Invitation sent.", + "Invitations that have not been accepted yet": "Invitations that have not been accepted yet", + "Invite a team member": "Invite a team member", + "Invite member": "Invite member", "IP Adresse": "IP-adres", "Ist dieser Dozent aktiv?": "Is deze docent actief?", "Jetzt erstellen": "Nu aanmaken", @@ -234,6 +259,7 @@ "Kalender-Stream-URL kopieren": "Kalender-stream-URL kopiëren", "Karte": "Kaart", "Kartenansicht öffnen": "Kartenweergave openen", + "Keep invitation": "Keep invitation", "Keine": "Geen", "Keine Aktivitäten": "Geen activiteiten", "Keine bevorstehenden Termine": "Geen aankomende afspraken", @@ -259,6 +285,7 @@ "Land": "Land", "Land auswählen": "Land selecteren", "Latitude": "Breedtegraad", + "length": "lengte", "Lerne alles über Bitcoin - von den Grundlagen bis zu fortgeschrittenen Themen.": "Leer alles over Bitcoin - van de basis tot geavanceerde onderwerpen.", "Lerne unsere erfahrenen Bitcoin-Dozenten und ihre Expertise kennen.": "Leer onze ervaren Bitcoin-docenten en hun expertise kennen.", "Letzte Änderungszeit": "Laatste wijzigingstijd", @@ -295,7 +322,10 @@ "Länder mit den meisten Usern": "Landen met de meeste gebruikers", "Längengrad": "Lengtegraad", "Löschen": "Verwijderen", + "Manage who belongs to this team": "Manage who belongs to this team", "Manage your profile and account settings": "Beheer je profiel en accountinstellingen", + "Manage your team settings": "Manage your team settings", + "Manage your teams and team memberships": "Manage your teams and team memberships", "Manage your two-factor authentication settings": "Manage your two-factor authentication settings", "Matrix": "Matrix", "Matrix Gruppe": "Matrix-groep", @@ -314,6 +344,8 @@ "Mehr Informationen": "Meer informatie", "Meine Meetups": "Mijn Meetups", "Meine nächsten Meetup Termine": "Mijn volgende Meetup-afspraken", + "Member removed.": "Member removed.", + "Member role updated.": "Member role updated.", "Mindestens eine URL muss angegeben werden.": "Er moet minimaal één URL worden opgegeven.", "Mindestens eine URL oder IP muss angegeben werden.": "Er moet minimaal één URL of IP worden opgegeven.", "Mittwoch": "Woensdag", @@ -337,6 +369,7 @@ "Neues Meetup": "Nieuwe Meetup", "Neues Meetup erstellen": "Nieuwe Meetup aanmaken", "New password": "Nieuw wachtwoord", + "New team": "New team", "no location set": "geen locatie ingesteld", "Node ID": "Node ID", "Normale Web-URL": "Normale web-URL", @@ -365,16 +398,21 @@ "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Pas het uiterlijk van je Bitcoin Meetup-profiel aan.", "Password": "Wachtwoord", "Password Settings": "Password Settings", + "Password updated.": "Password updated.", "Passwort ändern - Bitcoin Meetups": "Wachtwoord wijzigen - Bitcoin Meetups", "Payment Required": "Betaling vereist", "PayNym": "PayNym", "PayNym für Bitcoin-Zahlungen": "PayNym voor Bitcoin-betalingen", + "Pending invitations": "Pending invitations", + "Permanently delete your team": "Permanently delete your team", + "Personal": "Personal", "Persönliche Webseite oder Portfolio": "Persoonlijke website of portfolio", "Pkarr DNS Adresse": "Pkarr DNS-adres", "Platform": "Platform", "Please click the button below to verify your email address.": "Klik op de knop hieronder om je e-mailadres te verifiëren.", "Please confirm access to your account by entering one of your emergency recovery codes.": "Please confirm access to your account by entering one of your emergency recovery codes.", "Please enter your new password below": "Vul hieronder je nieuwe wachtwoord in", + "Please proceed with caution, this cannot be undone.": "Please proceed with caution, this cannot be undone.", "Please verify your email address by clicking on the link we just emailed to you.": "Verifieer je e-mailadres door op de link te klikken die we je zojuist hebben gemaild.", "Population": "Bevolking", "Population Date": "Bevolkingsdatum", @@ -383,29 +421,41 @@ "Profil bearbeiten - Bitcoin Meetups": "Profiel bewerken - Bitcoin Meetups", "Profile": "Profiel", "Profile Settings": "Profile Settings", + "Profile settings": "Profile settings", + "Profile updated.": "Profile updated.", "Recovery Code": "Recovery Code", + "Recovery code": "Recovery code", "Recovery codes": "Recovery codes", "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.", "Regards,": "Met vriendelijke groet,", "Regenerate Codes": "Regenerate Codes", - "Register": "Registreren", + "Regenerate codes": "Regenerate codes", + "Register": "Register", "Remember me": "Onthouden", + "Remove member": "Remove member", + "Remove team member": "Remove team member", "Repository": "Repository", "Resend verification email": "Verificatie e-mail opnieuw versturen", "Reset password": "Wachtwoord resetten", "Reset Password": "Wachtwoord herstellen", "Reset Password Notification": "Notificatie wachtwoordherstel", "results": "resultaten", + "Role": "Role", "Samstag": "Zaterdag", "Save": "Opslaan", "Saved.": "Opgeslagen.", "Search": "Zoeken", "Search cities...": "Zoek steden...", "Search venues...": "Zoek locaties...", + "Security": "Security", + "Security settings": "Security settings", "Select a city": "Selecteer een stad", "Select a country": "Selecteer een land", + "Select team": "Select team", "Self Hosted Services": "Self Hosted Services", "Self-Hosted Services - Übersicht": "Self-Hosted Services - Overzicht", + "Send an invitation to join this team.": "Send an invitation to join this team.", + "Send invitation": "Send invitation", "Serientermine erstellen": "Serie-afspraken aanmaken", "Serientermine erstellen?": "Serie-afspraken aanmaken?", "Server Error": "Serverfout", @@ -464,15 +514,28 @@ "System": "Systeem", "System-generierte ID (nur lesbar)": "Systeemgegenereerde ID (alleen-lezen)", "Systeminformationen": "Systeemgegevens", + "Team created.": "Team created.", + "Team deleted.": "Team deleted.", + "Team members": "Team members", + "Team name": "Team name", + "Team updated.": "Team updated.", + "Teams": "Teams", "Teilnahme": "Deelname", "Telegram": "Telegram", "Telegram Link": "Telegram-link", "The given data was invalid.": "De gegeven data was ongeldig.", "The response is not a streamed response.": "De respons is niet gestreamd.", "The response is not a view.": "De respons is geen view.", + "The team name does not match.": "The team name does not match.", + "This action cannot be undone. This will permanently delete the team \":name\".": "This action cannot be undone. This will permanently delete the team \":name\".", "This action is unauthorized.": "Deze actie is niet toegestaan.", + "This invitation has already been accepted.": "This invitation has already been accepted.", + "This invitation has expired.": "This invitation has expired.", + "This invitation was sent to a different email address.": "This invitation was sent to a different email address.", "This is a secure area of the application. Please confirm your password before continuing.": "Dit is een beveiligd gedeelte van de applicatie. Bevestig je wachtwoord voordat je verdergaat.", "This password reset link will expire in :count minutes.": "Deze link om je wachtwoord te herstellen verloopt over :count minuten.", + "This team name is reserved and cannot be used.": "This team name is reserved and cannot be used.", + "This user is already a member of the team.": "This user is already a member of the team.", "to": "tot", "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.", "Toggle navigation": "Schakel navigatie", @@ -486,10 +549,13 @@ "Twitter-Handle ohne @ Symbol": "Twitter-handle zonder @ symbool", "Two Factor Authentication": "Two Factor Authentication", "Two-Factor Auth": "Two-Factor Auth", + "Two-factor authentication": "Two-factor authentication", "Two-Factor Authentication Enabled": "Two-Factor Authentication Enabled", + "Two-factor authentication enabled": "Two-factor authentication enabled", "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.", "Two-Factor Authentication Settings": "Two-Factor Authentication Settings", "Typ": "Type", + "Type \":name\" to confirm": "Type \":name\" to confirm", "Täglich": "Dagelijks", "Uhr": "uur", "Uhrzeit": "Tijd", @@ -524,22 +590,28 @@ "Veranstaltungsorte - Übersicht": "Locaties - Overzicht", "Verbinde dich mit Bitcoinern in deiner Nähe": "Verbind je met Bitcoiners in je buurt", "Verify Authentication Code": "Verify Authentication Code", + "Verify authentication code": "Verify authentication code", "Verify Email Address": "Verifieer e-mailadres", "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Beheer je Bitcoin Meetups, evenementen en instellingen in je persoonlijke dashboard.", "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Beheer de data en details van je Bitcoin-educatie-evenementen.", "Vielleicht": "Misschien", "Vierter": "Vierde", + "View :name": "View :name", "View Recovery Codes": "View Recovery Codes", + "View recovery codes": "View recovery codes", + "View team": "View team", "Vollständiger Name des Dozenten": "Volledige naam van de docent", "Vorschau auf 100 Termine begrenzt. Es werden möglicherweise mehr Termine erstellt.": "Voorvertoning beperkt tot 100 afspraken. Er kunnen mogelijk meer afspraken worden aangemaakt.", "Vorschau der Termine": "Voorvertoning van afspraken", "Wann dieser Dozent erstellt wurde": "Wanneer deze docent werd aangemaakt", "Wann dieser Kurs erstellt wurde": "Wanneer deze cursus werd aangemaakt", "Wann dieses Meetup erstellt wurde": "Wanneer deze Meetup werd aangemaakt", + "Warning": "Warning", "Webseite": "Website", "Website": "Website", "weitere Termine": "meer afspraken", "Welcher Wochentag im Monat? (z.B. \"letzter Freitag": "Welke weekdag in de maand? (bijv. \"laatste vrijdag", + "Welcome": "Welcome", "Welt-Karte": "Wereldkaart", "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Word Bitcoin-docent en deel je expertise met de community.", "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.", @@ -562,6 +634,9 @@ "Wähle die Stadt aus...": "Selecteer de stad...", "Wöchentlich": "Wekelijks", "You are receiving this email because we received a password reset request for your account.": "Je ontvangt deze e-mail omdat we een wachtwoordherstel verzoek hebben ontvangen voor je account.", + "You don't belong to any teams yet.": "You don't belong to any teams yet.", + "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.", + "You've been invited to join :teamName": "You've been invited to join :teamName", "Your email address is unverified.": "Je e-mailadres is niet geverifieerd.", "z.B. Berlin": "bijv. Amsterdam", "z.B. Bitcoin Zentrum München": "bijv. Bitcoin Centrum Amsterdam", diff --git a/lang/nl/validation.php b/lang/nl/validation.php index 13a2f1d..fcc0729 100644 --- a/lang/nl/validation.php +++ b/lang/nl/validation.php @@ -3,156 +3,157 @@ declare(strict_types=1); return [ - 'accepted' => ':Attribute moet worden geaccepteerd.', - 'accepted_if' => ':Attribute moet worden geaccepteerd als :other :value is.', - 'active_url' => ':Attribute is geen geldige URL.', - 'after' => ':Attribute moet een datum na :date zijn.', - 'after_or_equal' => ':Attribute moet een datum na of gelijk aan :date zijn.', - 'alpha' => ':Attribute mag alleen letters bevatten.', - 'alpha_dash' => ':Attribute mag alleen letters, nummers, underscores (_) en streepjes (-) bevatten.', - 'alpha_num' => ':Attribute mag alleen letters en nummers bevatten.', - 'any_of' => 'Het veld :attribute is ongeldig.', - 'array' => ':Attribute moet geselecteerde elementen bevatten.', - 'ascii' => 'De :attribute mag alleen alfanumerieke tekens en symbolen van één byte bevatten.', - 'before' => ':Attribute moet een datum vóór :date zijn.', - 'before_or_equal' => ':Attribute moet een datum vóór of gelijk aan :date zijn.', - 'between' => [ - 'array' => ':Attribute moet tussen :min en :max waardes bevatten.', - 'file' => ':Attribute moet tussen :min en :max kilobytes zijn.', + 'accepted' => ':Attribute moet worden geaccepteerd.', + 'accepted_if' => ':Attribute moet worden geaccepteerd als :other :value is.', + 'active_url' => ':Attribute is geen geldige URL.', + 'after' => ':Attribute moet een datum na :date zijn.', + 'after_or_equal' => ':Attribute moet een datum na of gelijk aan :date zijn.', + 'alpha' => ':Attribute mag alleen letters bevatten.', + 'alpha_dash' => ':Attribute mag alleen letters, nummers, underscores (_) en streepjes (-) bevatten.', + 'alpha_num' => ':Attribute mag alleen letters en nummers bevatten.', + 'any_of' => 'Het veld :attribute is ongeldig.', + 'array' => ':Attribute moet geselecteerde elementen bevatten.', + 'ascii' => 'De :attribute mag alleen alfanumerieke tekens en symbolen van één byte bevatten.', + 'before' => ':Attribute moet een datum vóór :date zijn.', + 'before_or_equal' => ':Attribute moet een datum vóór of gelijk aan :date zijn.', + 'between' => [ + 'array' => ':Attribute moet tussen :min en :max waardes bevatten.', + 'file' => ':Attribute moet tussen :min en :max kilobytes zijn.', 'numeric' => ':Attribute moet tussen :min en :max zijn.', - 'string' => ':Attribute moet tussen :min en :max karakters zijn.', + 'string' => ':Attribute moet tussen :min en :max karakters zijn.', ], - 'boolean' => ':Attribute moet ja of nee zijn.', - 'can' => ':Attribute bevat een waarde waar je niet bevoegd voor bent.', - 'confirmed' => 'Bevestiging van :attribute komt niet overeen.', - 'contains' => ':Attribute mist een vereiste waarde.', - 'current_password' => 'Huidig wachtwoord is onjuist.', - 'date' => ':Attribute moet een datum bevatten.', - 'date_equals' => ':Attribute moet een datum gelijk aan :date zijn.', - 'date_format' => ':Attribute voldoet niet aan het formaat :format.', - 'decimal' => 'De :attribute moet :decimal decimalen hebben.', - 'declined' => ':Attribute moet afgewezen worden.', - 'declined_if' => ':Attribute moet afgewezen worden wanneer :other gelijk is aan :value.', - 'different' => ':Attribute en :other moeten verschillend zijn.', - 'digits' => ':Attribute moet bestaan uit :digits cijfers.', - 'digits_between' => ':Attribute moet bestaan uit minimaal :min en maximaal :max cijfers.', - 'dimensions' => ':Attribute heeft geen geldige afmetingen.', - 'distinct' => ':Attribute heeft een dubbele waarde.', - 'doesnt_contain' => 'Het veld :attribute mag geen van de volgende bevatten: :values.', - 'doesnt_end_with' => ':Attribute mag niet eindigen met één van de volgende waarden: :values.', - 'doesnt_start_with' => ':Attribute mag niet beginnen met één van de volgende waarden: :values.', - 'email' => ':Attribute is geen geldig e-mailadres.', - 'ends_with' => ':Attribute moet met één van de volgende waarden eindigen: :values.', - 'enum' => 'Gekozen :attribute is ongeldig.', - 'exists' => ':Attribute bestaat niet.', - 'extensions' => ':Attribute moet een van de volgende bestandsextensies hebben: :values.', - 'file' => ':Attribute moet een bestand zijn.', - 'filled' => ':Attribute is verplicht.', - 'gt' => [ - 'array' => ':Attribute moet meer dan :value waardes bevatten.', - 'file' => ':Attribute moet groter zijn dan :value kilobytes.', + 'boolean' => ':Attribute moet ja of nee zijn.', + 'can' => ':Attribute bevat een waarde waar je niet bevoegd voor bent.', + 'confirmed' => 'Bevestiging van :attribute komt niet overeen.', + 'contains' => ':Attribute mist een vereiste waarde.', + 'current_password' => 'Huidig wachtwoord is onjuist.', + 'date' => ':Attribute moet een datum bevatten.', + 'date_equals' => ':Attribute moet een datum gelijk aan :date zijn.', + 'date_format' => ':Attribute voldoet niet aan het formaat :format.', + 'decimal' => 'De :attribute moet :decimal decimalen hebben.', + 'declined' => ':Attribute moet afgewezen worden.', + 'declined_if' => ':Attribute moet afgewezen worden wanneer :other gelijk is aan :value.', + 'different' => ':Attribute en :other moeten verschillend zijn.', + 'digits' => ':Attribute moet bestaan uit :digits cijfers.', + 'digits_between' => ':Attribute moet bestaan uit minimaal :min en maximaal :max cijfers.', + 'dimensions' => ':Attribute heeft geen geldige afmetingen.', + 'distinct' => ':Attribute heeft een dubbele waarde.', + 'doesnt_contain' => 'Het veld :attribute mag geen van de volgende bevatten: :values.', + 'doesnt_end_with' => ':Attribute mag niet eindigen met één van de volgende waarden: :values.', + 'doesnt_start_with' => ':Attribute mag niet beginnen met één van de volgende waarden: :values.', + 'email' => ':Attribute is geen geldig e-mailadres.', + 'encoding' => 'The :attribute field must be encoded in :encoding.', + 'ends_with' => ':Attribute moet met één van de volgende waarden eindigen: :values.', + 'enum' => 'Gekozen :attribute is ongeldig.', + 'exists' => ':Attribute bestaat niet.', + 'extensions' => ':Attribute moet een van de volgende bestandsextensies hebben: :values.', + 'file' => ':Attribute moet een bestand zijn.', + 'filled' => ':Attribute is verplicht.', + 'gt' => [ + 'array' => ':Attribute moet meer dan :value waardes bevatten.', + 'file' => ':Attribute moet groter zijn dan :value kilobytes.', 'numeric' => ':Attribute moet groter zijn dan :value.', - 'string' => ':Attribute moet meer dan :value tekens bevatten.', + 'string' => ':Attribute moet meer dan :value tekens bevatten.', ], - 'gte' => [ - 'array' => ':Attribute moet :value of meer waardes bevatten.', - 'file' => ':Attribute moet groter of gelijk zijn aan :value kilobytes.', + 'gte' => [ + 'array' => ':Attribute moet :value of meer waardes bevatten.', + 'file' => ':Attribute moet groter of gelijk zijn aan :value kilobytes.', 'numeric' => ':Attribute moet groter of gelijk zijn aan :value.', - 'string' => ':Attribute moet minimaal :value tekens bevatten.', + 'string' => ':Attribute moet minimaal :value tekens bevatten.', ], - 'hex_color' => ':Attribute moet een geldige hexadecimale kleurcode zijn.', - 'image' => ':Attribute moet een afbeelding zijn.', - 'in' => ':Attribute is ongeldig.', - 'in_array' => ':Attribute bestaat niet in :other.', - 'in_array_keys' => 'Het veld :attribute moet minstens één van de volgende sleutels bevatten: :values.', - 'integer' => ':Attribute moet een getal zijn.', - 'ip' => ':Attribute moet een geldig IP-adres zijn.', - 'ipv4' => ':Attribute moet een geldig IPv4-adres zijn.', - 'ipv6' => ':Attribute moet een geldig IPv6-adres zijn.', - 'json' => ':Attribute moet een geldige JSON-string zijn.', - 'list' => 'Het veld :attribute moet een lijst zijn.', - 'lowercase' => ':Attribute mag alleen kleine letters bevatten.', - 'lt' => [ - 'array' => ':Attribute moet minder dan :value waardes bevatten.', - 'file' => ':Attribute moet kleiner zijn dan :value kilobytes.', + 'hex_color' => ':Attribute moet een geldige hexadecimale kleurcode zijn.', + 'image' => ':Attribute moet een afbeelding zijn.', + 'in' => ':Attribute is ongeldig.', + 'in_array' => ':Attribute bestaat niet in :other.', + 'in_array_keys' => 'Het veld :attribute moet minstens één van de volgende sleutels bevatten: :values.', + 'integer' => ':Attribute moet een getal zijn.', + 'ip' => ':Attribute moet een geldig IP-adres zijn.', + 'ipv4' => ':Attribute moet een geldig IPv4-adres zijn.', + 'ipv6' => ':Attribute moet een geldig IPv6-adres zijn.', + 'json' => ':Attribute moet een geldige JSON-string zijn.', + 'list' => 'Het veld :attribute moet een lijst zijn.', + 'lowercase' => ':Attribute mag alleen kleine letters bevatten.', + 'lt' => [ + 'array' => ':Attribute moet minder dan :value waardes bevatten.', + 'file' => ':Attribute moet kleiner zijn dan :value kilobytes.', 'numeric' => ':Attribute moet kleiner zijn dan :value.', - 'string' => ':Attribute moet minder dan :value tekens bevatten.', + 'string' => ':Attribute moet minder dan :value tekens bevatten.', ], - 'lte' => [ - 'array' => ':Attribute moet :value of minder waardes bevatten.', - 'file' => ':Attribute moet kleiner of gelijk zijn aan :value kilobytes.', + 'lte' => [ + 'array' => ':Attribute moet :value of minder waardes bevatten.', + 'file' => ':Attribute moet kleiner of gelijk zijn aan :value kilobytes.', 'numeric' => ':Attribute moet kleiner of gelijk zijn aan :value.', - 'string' => ':Attribute moet maximaal :value tekens bevatten.', + 'string' => ':Attribute moet maximaal :value tekens bevatten.', ], - 'mac_address' => ':Attribute moet een geldig MAC-adres zijn.', - 'max' => [ - 'array' => ':Attribute mag niet meer dan :max waardes bevatten.', - 'file' => ':Attribute mag niet meer dan :max kilobytes zijn.', + 'mac_address' => ':Attribute moet een geldig MAC-adres zijn.', + 'max' => [ + 'array' => ':Attribute mag niet meer dan :max waardes bevatten.', + 'file' => ':Attribute mag niet meer dan :max kilobytes zijn.', 'numeric' => ':Attribute mag niet hoger dan :max zijn.', - 'string' => ':Attribute mag niet uit meer dan :max tekens bestaan.', + 'string' => ':Attribute mag niet uit meer dan :max tekens bestaan.', ], - 'max_digits' => ':Attribute mag niet uit meer dan :max cijfers bestaan.', - 'mimes' => ':Attribute moet een bestand zijn van het bestandstype :values.', - 'mimetypes' => ':Attribute moet een bestand zijn van het bestandstype :values.', - 'min' => [ - 'array' => ':Attribute moet minimaal :min waardes bevatten.', - 'file' => ':Attribute moet minimaal :min kilobytes zijn.', + 'max_digits' => ':Attribute mag niet uit meer dan :max cijfers bestaan.', + 'mimes' => ':Attribute moet een bestand zijn van het bestandstype :values.', + 'mimetypes' => ':Attribute moet een bestand zijn van het bestandstype :values.', + 'min' => [ + 'array' => ':Attribute moet minimaal :min waardes bevatten.', + 'file' => ':Attribute moet minimaal :min kilobytes zijn.', 'numeric' => ':Attribute moet minimaal :min zijn.', - 'string' => ':Attribute moet minimaal :min tekens zijn.', + 'string' => ':Attribute moet minimaal :min tekens zijn.', ], - 'min_digits' => ':Attribute moet minimaal uit :min cijfers bestaan.', - 'missing' => 'Het veld :attribute moet ontbreken.', - 'missing_if' => 'Het veld :attribute moet ontbreken als :other :value is.', - 'missing_unless' => 'Het veld :attribute moet ontbreken, tenzij :other :value is.', - 'missing_with' => 'Het veld :attribute moet ontbreken wanneer :values aanwezig is.', - 'missing_with_all' => 'Het veld :attribute moet ontbreken wanneer er :values aanwezig zijn.', - 'multiple_of' => ':Attribute moet een veelvoud van :value zijn.', - 'not_in' => ':Attribute is ongeldig.', - 'not_regex' => 'Het formaat van :attribute is ongeldig.', - 'numeric' => ':Attribute moet een getal zijn.', - 'password' => [ - 'letters' => ':Attribute moet minimaal één letter bevatten.', - 'mixed' => ':Attribute moet minimaal één kleine letter en één hoofdletter bevatten.', - 'numbers' => ':Attribute moet minimaal één cijfer bevatten.', - 'symbols' => ':Attribute moet minimaal één vreemd teken bevatten.', + 'min_digits' => ':Attribute moet minimaal uit :min cijfers bestaan.', + 'missing' => 'Het veld :attribute moet ontbreken.', + 'missing_if' => 'Het veld :attribute moet ontbreken als :other :value is.', + 'missing_unless' => 'Het veld :attribute moet ontbreken, tenzij :other :value is.', + 'missing_with' => 'Het veld :attribute moet ontbreken wanneer :values aanwezig is.', + 'missing_with_all' => 'Het veld :attribute moet ontbreken wanneer er :values aanwezig zijn.', + 'multiple_of' => ':Attribute moet een veelvoud van :value zijn.', + 'not_in' => ':Attribute is ongeldig.', + 'not_regex' => 'Het formaat van :attribute is ongeldig.', + 'numeric' => ':Attribute moet een getal zijn.', + 'password' => [ + 'letters' => ':Attribute moet minimaal één letter bevatten.', + 'mixed' => ':Attribute moet minimaal één kleine letter en één hoofdletter bevatten.', + 'numbers' => ':Attribute moet minimaal één cijfer bevatten.', + 'symbols' => ':Attribute moet minimaal één vreemd teken bevatten.', 'uncompromised' => 'Het opgegeven :attribute komt voor in een datalek. Kies een ander :attribute.', ], - 'present' => ':Attribute moet aanwezig zijn.', - 'present_if' => ':Attribute moet aanwezig zijn als :other :value is.', - 'present_unless' => ':Attribute moet aanwezig zijn tenzij :other :value is.', - 'present_with' => ':Attribute moet aanwezig zijn als :values aanwezig is.', - 'present_with_all' => ':Attribute moet aanwezig zijn als :values aanwezig zijn.', - 'prohibited' => ':Attribute is niet toegestaan.', - 'prohibited_if' => ':Attribute is niet toegestaan indien :other gelijk is aan :value.', + 'present' => ':Attribute moet aanwezig zijn.', + 'present_if' => ':Attribute moet aanwezig zijn als :other :value is.', + 'present_unless' => ':Attribute moet aanwezig zijn tenzij :other :value is.', + 'present_with' => ':Attribute moet aanwezig zijn als :values aanwezig is.', + 'present_with_all' => ':Attribute moet aanwezig zijn als :values aanwezig zijn.', + 'prohibited' => ':Attribute is niet toegestaan.', + 'prohibited_if' => ':Attribute is niet toegestaan indien :other gelijk is aan :value.', 'prohibited_if_accepted' => 'Het veld :attribute is niet toegestaan wanneer :other is geaccepteerd.', 'prohibited_if_declined' => 'Het veld :attribute is niet toegestaan wanneer :other is afgewezen.', - 'prohibited_unless' => ':Attribute is niet toegestaan tenzij :other gelijk is aan :values.', - 'prohibits' => ':Attribute is niet toegestaan in combinatie met :other.', - 'regex' => 'Het formaat van :attribute is ongeldig.', - 'required' => ':Attribute is verplicht.', - 'required_array_keys' => ':Attribute moet waardes bevatten voor :values.', - 'required_if' => ':Attribute is verplicht indien :other gelijk is aan :value.', - 'required_if_accepted' => ':Attribute is verplicht indien :other is geaccepteerd.', - 'required_if_declined' => ':Attribute is verplicht indien :other is geweigerd.', - 'required_unless' => ':Attribute is verplicht tenzij :other gelijk is aan :values.', - 'required_with' => ':Attribute is verplicht in combinatie met :values.', - 'required_with_all' => ':Attribute is verplicht in combinatie met :values.', - 'required_without' => ':Attribute is verplicht als :values niet ingevuld is.', - 'required_without_all' => ':Attribute is verplicht als :values niet ingevuld zijn.', - 'same' => ':Attribute en :other moeten overeenkomen.', - 'size' => [ - 'array' => ':Attribute moet :size waardes bevatten.', - 'file' => ':Attribute moet :size kilobytes groot zijn.', + 'prohibited_unless' => ':Attribute is niet toegestaan tenzij :other gelijk is aan :values.', + 'prohibits' => ':Attribute is niet toegestaan in combinatie met :other.', + 'regex' => 'Het formaat van :attribute is ongeldig.', + 'required' => ':Attribute is verplicht.', + 'required_array_keys' => ':Attribute moet waardes bevatten voor :values.', + 'required_if' => ':Attribute is verplicht indien :other gelijk is aan :value.', + 'required_if_accepted' => ':Attribute is verplicht indien :other is geaccepteerd.', + 'required_if_declined' => ':Attribute is verplicht indien :other is geweigerd.', + 'required_unless' => ':Attribute is verplicht tenzij :other gelijk is aan :values.', + 'required_with' => ':Attribute is verplicht in combinatie met :values.', + 'required_with_all' => ':Attribute is verplicht in combinatie met :values.', + 'required_without' => ':Attribute is verplicht als :values niet ingevuld is.', + 'required_without_all' => ':Attribute is verplicht als :values niet ingevuld zijn.', + 'same' => ':Attribute en :other moeten overeenkomen.', + 'size' => [ + 'array' => ':Attribute moet :size waardes bevatten.', + 'file' => ':Attribute moet :size kilobytes groot zijn.', 'numeric' => ':Attribute moet :size zijn.', - 'string' => ':Attribute moet :size tekens zijn.', + 'string' => ':Attribute moet :size tekens zijn.', ], - 'starts_with' => ':Attribute moet beginnen met een van de volgende: :values.', - 'string' => ':Attribute moet een tekst zijn.', - 'timezone' => ':Attribute moet een geldige tijdzone zijn.', - 'ulid' => 'De :attribute moet een geldige ULID zijn.', - 'unique' => ':Attribute is al in gebruik.', - 'uploaded' => 'Het uploaden van :attribute is mislukt.', - 'uppercase' => ':Attribute mag alleen hoofdletters bevatten.', - 'url' => ':Attribute moet een geldige URL zijn.', - 'uuid' => ':Attribute moet een geldige UUID zijn.', + 'starts_with' => ':Attribute moet beginnen met een van de volgende: :values.', + 'string' => ':Attribute moet een tekst zijn.', + 'timezone' => ':Attribute moet een geldige tijdzone zijn.', + 'ulid' => 'De :attribute moet een geldige ULID zijn.', + 'unique' => ':Attribute is al in gebruik.', + 'uploaded' => 'Het uploaden van :attribute is mislukt.', + 'uppercase' => ':Attribute mag alleen hoofdletters bevatten.', + 'url' => ':Attribute moet een geldige URL zijn.', + 'uuid' => ':Attribute moet een geldige UUID zijn.', ]; diff --git a/lang/pl.json b/lang/pl.json index e443e4d..1a83545 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -2,13 +2,16 @@ "(and :count more error)": "(i jeszcze :count błąd)", "(and :count more errors)": "(i jeszcze :count błąd)|(i jeszcze :count błędy)|(i jeszcze :count błędów)", "2FA Recovery Codes": "2FA Recovery Codes", + "2FA recovery codes": "2FA recovery codes", ":count Events erfolgreich erstellt!": ":count wydarzeń zostało pomyślnie utworzonych!", + ":inviterName has invited you to join the :teamName team.": ":inviterName has invited you to join the :teamName team.", "A decryption key is required.": "Wymagany jest klucz deszyfrujący.", "A new verification link has been sent to the email address you provided during registration.": "Nowy link weryfikacyjny został wysłany na adres e-mail podany podczas rejestracji.", "A new verification link has been sent to your email address.": "Nowy link weryfikacyjny został wysłany na Twój adres e-mail.", "A reset link will be sent if the account exists.": "Jeśli konto istnieje, zostanie wysłany link resetujący hasło.", "Abbrechen": "Anuluj", "Absagen": "Odwołaj", + "Accept invitation": "Accept invitation", "Actions": "Akcje", "Aktionen": "Akcje", "Aktiv": "Aktywny", @@ -28,6 +31,7 @@ "Alle Meetups anzeigen": "Pokaż wszystkie meetupy", "Allgemeine Bitcoin Community": "Ogólna społeczność Bitcoin", "Already have an account?": "Masz już konto?", + "An invitation has already been sent to this email address.": "An invitation has already been sent to this email address.", "An welchem Tag beginnt das Event?": "W którym dniu rozpoczyna się wydarzenie?", "An welchem Tag endet das Event?": "W którym dniu kończy się wydarzenie?", "An welchem Tag findet das Event statt?": "W którym dniu odbywa się wydarzenie?", @@ -39,13 +43,18 @@ "App": "Aplikacja", "Appearance": "Wygląd", "Appearance Settings": "Appearance Settings", + "Appearance settings": "Appearance settings", + "Are you sure you want to cancel the invitation for :email?": "Are you sure you want to cancel the invitation for :email?", "Are you sure you want to delete your account?": "Czy na pewno chcesz usunąć swoje konto?", + "Are you sure you want to remove :name from this team?": "Are you sure you want to remove :name from this team?", + "Are you sure?": "Are you sure?", "Art des Services": "Rodzaj usługi", "Auf Karte sichtbar": "Widoczne na mapie", "aus deinen Meetups entfernen?": "usunąć z Twoich meetupów?", "Ausführliche Beschreibung des Kurses": "Szczegółowy opis kursu", "Ausführliche Beschreibung und Biografie": "Szczegółowy opis i biografia", "Authentication Code": "Authentication Code", + "Authentication code": "Authentication code", "Automatisch (gleiches Datum)": "Automatycznie (ta sama data)", "Automatisch (wie Startdatum)": "Automatycznie (jak data początkowa)", "Back": "Back", @@ -71,6 +80,7 @@ "BooksForPlebs": "BooksForPlebs", "Breitengrad": "Szerokość geograficzna", "Cancel": "Anuluj", + "Cancel invitation": "Cancel invitation", "Cities": "Miasta", "City": "Miasto", "City successfully created!": "Miasto zostało pomyślnie utworzone!", @@ -88,9 +98,11 @@ "Copied into clipboard": "Skopiowano do schowka", "Copy": "Kopiuj", "Country": "Kraj", + "Create a new team": "Create a new team", "Create account": "Utwórz konto", "Create an account": "Utwórz konto", "Create City": "Utwórz miasto", + "Create team": "Create team", "Create Venue": "Utwórz miejsce", "Created at": "Utworzono", "Created By": "Utworzone przez", @@ -103,6 +115,7 @@ "Datum des letzten Termins": "Data ostatniego terminu", "Dein Name": "Twoje imię", "Delete account": "Usuń konto", + "Delete team": "Delete team", "Delete your account and all of its resources": "Usuń swoje konto i wszystkie powiązane z nim zasoby", "Demographics": "Demografia", "Der Anzeigename für diesen Kurs": "Nazwa wyświetlana dla tego kursu", @@ -140,8 +153,11 @@ "Du kannst es jederzeit wieder hinzufügen.": "Możesz dodać to ponownie w dowolnym momencie.", "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Przeglądaj wszystkie miasta z aktywnymi Bitcoin Meetupami i znajdź wydarzenia w Twojej okolicy.", "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.", "Edit": "Edytuj", + "Edit :name": "Edit :name", "Edit City": "Edytuj miasto", + "Edit team": "Edit team", "Edit Venue": "Edytuj miejsce", "Einführung": "Wprowadzenie", "Einundzwanzig Community": "Społeczność Einundzwanzig", @@ -150,8 +166,10 @@ "Email Address": "Adres e-mail", "Email address": "Adres e-mail", "Email password reset link": "Wyślij link resetujący hasło", + "Email verification": "Email verification", "Enable 2FA": "Enable 2FA", "Enable Two-Factor Authentication": "Enable Two-Factor Authentication", + "Enable two-factor authentication": "Enable two-factor authentication", "Enabled": "Enabled", "Encrypted environment file already exists.": "Zaszyfrowany plik konfiguracji środowiska już istnieje.", "Encrypted environment file not found.": "Nie znaleziono zaszyfrowanego pliku konfiguracji środowiska.", @@ -211,10 +229,12 @@ "Für regelmäßige Termine wie \"immer am letzten Freitag des Monats\":": "W przypadku regularnych terminów, takich jak \"zawsze w ostatni piątek miesiąca\":", "Gemeinschaft": "Społeczność", "Gemeinschafts- oder Organisationsname": "Nazwa społeczności lub organizacji", + "Give your team a name to get started.": "Give your team a name to get started.", "Go to page :page": "Przejdź do strony :page", "Grundlegende Informationen": "Podstawowe informacje", "Hello!": "Cześć!", "Hide Recovery Codes": "Hide Recovery Codes", + "Hide recovery codes": "Hide recovery codes", "I2P Adresse": "Adres I2P", "Ich komme": "Przyjdę", "ID": "ID", @@ -227,6 +247,11 @@ "Intervall": "Interwał", "Invalid filename.": "Nieprawidłowa nazwa pliku.", "Invalid JSON was returned from the route.": "Routing zwrócił nieprawidłowy kod JSON.", + "Invitation cancelled.": "Invitation cancelled.", + "Invitation sent.": "Invitation sent.", + "Invitations that have not been accepted yet": "Invitations that have not been accepted yet", + "Invite a team member": "Invite a team member", + "Invite member": "Invite member", "IP Adresse": "Adres IP", "Ist dieser Dozent aktiv?": "Czy ten wykładowca jest aktywny?", "Jetzt erstellen": "Utwórz teraz", @@ -234,6 +259,7 @@ "Kalender-Stream-URL kopieren": "Kopiuj URL strumienia kalendarza", "Karte": "Mapa", "Kartenansicht öffnen": "Otwórz widok mapy", + "Keep invitation": "Keep invitation", "Keine": "Brak", "Keine Aktivitäten": "Brak aktywności", "Keine bevorstehenden Termine": "Brak nadchodzących terminów", @@ -259,6 +285,7 @@ "Land": "Kraj", "Land auswählen": "Wybierz kraj", "Latitude": "Szerokość geograficzna", + "length": "długość", "Lerne alles über Bitcoin - von den Grundlagen bis zu fortgeschrittenen Themen.": "Naucz się wszystkiego o Bitcoinie - od podstaw po zaawansowane tematy.", "Lerne unsere erfahrenen Bitcoin-Dozenten und ihre Expertise kennen.": "Poznaj naszych doświadczonych wykładowców Bitcoin i ich ekspertyzę.", "Letzte Änderungszeit": "Ostatnia aktualizacja", @@ -294,7 +321,10 @@ "Länder mit den meisten Usern": "Kraje z największą liczbą użytkowników", "Längengrad": "Długość geograficzna", "Löschen": "Usuń", + "Manage who belongs to this team": "Manage who belongs to this team", "Manage your profile and account settings": "Zarządzaj swoim profilem i ustawieniami konta", + "Manage your team settings": "Manage your team settings", + "Manage your teams and team memberships": "Manage your teams and team memberships", "Manage your two-factor authentication settings": "Manage your two-factor authentication settings", "Matrix": "Matrix", "Matrix Gruppe": "Grupa Matrix", @@ -313,6 +343,8 @@ "Mehr Informationen": "Więcej informacji", "Meine Meetups": "Moje meetupy", "Meine nächsten Meetup Termine": "Moje następne terminy meetupów", + "Member removed.": "Member removed.", + "Member role updated.": "Member role updated.", "Mindestens eine URL muss angegeben werden.": "Należy podać co najmniej jeden URL.", "Mindestens eine URL oder IP muss angegeben werden.": "Należy podać co najmniej jeden URL lub adres IP.", "Mittwoch": "Środa", @@ -336,6 +368,7 @@ "Neues Meetup": "Nowy meetup", "Neues Meetup erstellen": "Utwórz nowy meetup", "New password": "Nowe hasło", + "New team": "New team", "no location set": "nie ustawiono lokalizacji", "Node ID": "ID węzła", "Normale Web-URL": "Normalny URL", @@ -364,16 +397,21 @@ "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Dostosuj wygląd swojego profilu Bitcoin Meetup.", "Password": "Hasło", "Password Settings": "Password Settings", + "Password updated.": "Password updated.", "Passwort ändern - Bitcoin Meetups": "Zmień hasło - Bitcoin Meetupy", "Payment Required": "Płatność Wymagana", "PayNym": "PayNym", "PayNym für Bitcoin-Zahlungen": "PayNym do płatności Bitcoin", + "Pending invitations": "Pending invitations", + "Permanently delete your team": "Permanently delete your team", + "Personal": "Personal", "Persönliche Webseite oder Portfolio": "Osobista strona internetowa lub portfolio", "Pkarr DNS Adresse": "Adres Pkarr DNS", "Platform": "Platforma", "Please click the button below to verify your email address.": "Kliknij poniższy przycisk aby zweryfikować swój adres e-mail.", "Please confirm access to your account by entering one of your emergency recovery codes.": "Please confirm access to your account by entering one of your emergency recovery codes.", "Please enter your new password below": "Wprowadź swoje nowe hasło poniżej", + "Please proceed with caution, this cannot be undone.": "Please proceed with caution, this cannot be undone.", "Please verify your email address by clicking on the link we just emailed to you.": "Proszę zweryfikować swój adres e-mail, klikając w link, który właśnie wysłaliśmy na Twoją skrzynkę.", "Population": "Populacja", "Population Date": "Data populacji", @@ -382,29 +420,41 @@ "Profil bearbeiten - Bitcoin Meetups": "Edytuj profil - Bitcoin Meetupy", "Profile": "Profil", "Profile Settings": "Profile Settings", + "Profile settings": "Profile settings", + "Profile updated.": "Profile updated.", "Recovery Code": "Recovery Code", + "Recovery code": "Recovery code", "Recovery codes": "Recovery codes", "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.", "Regards,": "Z poważaniem,", "Regenerate Codes": "Regenerate Codes", - "Register": "Zarejestruj się", + "Regenerate codes": "Regenerate codes", + "Register": "Register", "Remember me": "Zapamiętaj mnie", + "Remove member": "Remove member", + "Remove team member": "Remove team member", "Repository": "Repozytorium", "Resend verification email": "Wyślij ponownie e-mail weryfikacyjny", "Reset password": "Zresetuj hasło", "Reset Password": "Zresetuj Hasło", "Reset Password Notification": "Powiadomienie o Zresetowaniu Hasła", "results": "wyników", + "Role": "Role", "Samstag": "Sobota", "Save": "Zapisz", "Saved.": "Zapisano.", "Search": "Szukaj", "Search cities...": "Szukaj miast...", "Search venues...": "Szukaj miejsc...", + "Security": "Security", + "Security settings": "Security settings", "Select a city": "Wybierz miasto", "Select a country": "Wybierz kraj", + "Select team": "Select team", "Self Hosted Services": "Usługi self-hosted", "Self-Hosted Services - Übersicht": "Usługi self-hosted - Przegląd", + "Send an invitation to join this team.": "Send an invitation to join this team.", + "Send invitation": "Send invitation", "Serientermine erstellen": "Utwórz terminy cykliczne", "Serientermine erstellen?": "Utworzyć terminy cykliczne?", "Server Error": "Błąd Serwera", @@ -461,15 +511,28 @@ "System": "System", "System-generierte ID (nur lesbar)": "ID wygenerowane przez system (tylko do odczytu)", "Systeminformationen": "Informacje systemowe", + "Team created.": "Team created.", + "Team deleted.": "Team deleted.", + "Team members": "Team members", + "Team name": "Team name", + "Team updated.": "Team updated.", + "Teams": "Teams", "Teilnahme": "Uczestnictwo", "Telegram": "Telegram", "Telegram Link": "Link do Telegram", "The given data was invalid.": "Podane dane były nieprawidłowe.", "The response is not a streamed response.": "Odpowiedź nie jest odpowiedzią przesyłaną strumieniowo.", "The response is not a view.": "Odpowiedź nie jest widokiem.", + "The team name does not match.": "The team name does not match.", + "This action cannot be undone. This will permanently delete the team \":name\".": "This action cannot be undone. This will permanently delete the team \":name\".", "This action is unauthorized.": "To działanie jest niedozwolone.", + "This invitation has already been accepted.": "This invitation has already been accepted.", + "This invitation has expired.": "This invitation has expired.", + "This invitation was sent to a different email address.": "This invitation was sent to a different email address.", "This is a secure area of the application. Please confirm your password before continuing.": "To jest bezpieczna strefa aplikacji. Potwierdź swoje hasło przed kontynuowaniem.", "This password reset link will expire in :count minutes.": "Link do resetowania hasła wygaśnie za :count minut.", + "This team name is reserved and cannot be used.": "This team name is reserved and cannot be used.", + "This user is already a member of the team.": "This user is already a member of the team.", "to": "do", "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.", "Toggle navigation": "Przełącz nawigację", @@ -483,10 +546,13 @@ "Twitter-Handle ohne @ Symbol": "Nazwa na Twitterze bez symbolu @", "Two Factor Authentication": "Two Factor Authentication", "Two-Factor Auth": "Two-Factor Auth", + "Two-factor authentication": "Two-factor authentication", "Two-Factor Authentication Enabled": "Two-Factor Authentication Enabled", + "Two-factor authentication enabled": "Two-factor authentication enabled", "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.", "Two-Factor Authentication Settings": "Two-Factor Authentication Settings", "Typ": "Typ", + "Type \":name\" to confirm": "Type \":name\" to confirm", "Täglich": "Codziennie", "Uhr": "godz.", "Uhrzeit": "Godzina", @@ -521,22 +587,28 @@ "Veranstaltungsorte - Übersicht": "Miejsca wydarzeń - Przegląd", "Verbinde dich mit Bitcoinern in deiner Nähe": "Połącz się z Bitcoinerami w Twojej okolicy", "Verify Authentication Code": "Verify Authentication Code", + "Verify authentication code": "Verify authentication code", "Verify Email Address": "Zweryfikuj Adres E-mail", "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Zarządzaj swoimi Bitcoin Meetupami, wydarzeniami i ustawieniami w swoim osobistym panelu.", "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Zarządzaj terminami i szczegółami swoich wydarzeń edukacyjnych Bitcoin.", "Vielleicht": "Może", "Vierter": "Czwarty", + "View :name": "View :name", "View Recovery Codes": "View Recovery Codes", + "View recovery codes": "View recovery codes", + "View team": "View team", "Vollständiger Name des Dozenten": "Pełne imię i nazwisko wykładowcy", "Vorschau auf 100 Termine begrenzt. Es werden möglicherweise mehr Termine erstellt.": "Podgląd ograniczony do 100 terminów. Może zostać utworzonych więcej terminów.", "Vorschau der Termine": "Podgląd terminów", "Wann dieser Dozent erstellt wurde": "Kiedy ten wykładowca został utworzony", "Wann dieser Kurs erstellt wurde": "Kiedy ten kurs został utworzony", "Wann dieses Meetup erstellt wurde": "Kiedy ten meetup został utworzony", + "Warning": "Warning", "Webseite": "Strona internetowa", "Website": "Strona internetowa", "weitere Termine": "więcej terminów", "Welcher Wochentag im Monat? (z.B. \"letzter Freitag": "Który dzień tygodnia w miesiącu? (np. \"ostatni piątek", + "Welcome": "Welcome", "Welt-Karte": "Mapa świata", "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Zostań wykładowcą Bitcoin i podziel się swoją wiedzą ekspercką ze społecznością.", "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.", @@ -558,6 +630,9 @@ "Wähle die Stadt aus...": "Wybierz miasto...", "Wöchentlich": "Tygodniowo", "You are receiving this email because we received a password reset request for your account.": "Otrzymujesz ten e-mail, ponieważ otrzymaliśmy prośbę o zresetowanie hasła dla Twojego konta.", + "You don't belong to any teams yet.": "You don't belong to any teams yet.", + "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.", + "You've been invited to join :teamName": "You've been invited to join :teamName", "Your email address is unverified.": "Twój adres e-mail nie został zweryfikowany.", "z.B. Berlin": "np. Berlin", "z.B. Bitcoin Zentrum München": "np. Bitcoin Centrum Monachium", diff --git a/lang/pl/validation.php b/lang/pl/validation.php index 57ce639..068fe58 100644 --- a/lang/pl/validation.php +++ b/lang/pl/validation.php @@ -3,156 +3,157 @@ declare(strict_types=1); return [ - 'accepted' => 'Pole :attribute musi zostać zaakceptowane.', - 'accepted_if' => 'Pole :attribute musi zostać zaakceptowane gdy :other ma wartość :value.', - 'active_url' => 'Pole :attribute jest nieprawidłowym adresem URL.', - 'after' => 'Pole :attribute musi być datą późniejszą od :date.', - 'after_or_equal' => 'Pole :attribute musi być datą nie wcześniejszą niż :date.', - 'alpha' => 'Pole :attribute może zawierać jedynie litery.', - 'alpha_dash' => 'Pole :attribute może zawierać jedynie litery, cyfry i myślniki.', - 'alpha_num' => 'Pole :attribute może zawierać jedynie litery i cyfry.', - 'any_of' => 'Pole :attribute ma nieprawidłową wartość.', - 'array' => 'Pole :attribute musi być tablicą.', - 'ascii' => 'Pole :attribute może zawierać tylko jednobajtowe znaki alfanumeryczne i symbole.', - 'before' => 'Pole :attribute musi być datą wcześniejszą od :date.', - 'before_or_equal' => 'Pole :attribute musi być datą nie późniejszą niż :date.', - 'between' => [ - 'array' => 'Pole :attribute musi składać się z :min - :max elementów.', - 'file' => 'Pole :attribute musi zawierać się w granicach :min - :max kilobajtów.', + 'accepted' => 'Pole :attribute musi zostać zaakceptowane.', + 'accepted_if' => 'Pole :attribute musi zostać zaakceptowane gdy :other ma wartość :value.', + 'active_url' => 'Pole :attribute jest nieprawidłowym adresem URL.', + 'after' => 'Pole :attribute musi być datą późniejszą od :date.', + 'after_or_equal' => 'Pole :attribute musi być datą nie wcześniejszą niż :date.', + 'alpha' => 'Pole :attribute może zawierać jedynie litery.', + 'alpha_dash' => 'Pole :attribute może zawierać jedynie litery, cyfry i myślniki.', + 'alpha_num' => 'Pole :attribute może zawierać jedynie litery i cyfry.', + 'any_of' => 'Pole :attribute ma nieprawidłową wartość.', + 'array' => 'Pole :attribute musi być tablicą.', + 'ascii' => 'Pole :attribute może zawierać tylko jednobajtowe znaki alfanumeryczne i symbole.', + 'before' => 'Pole :attribute musi być datą wcześniejszą od :date.', + 'before_or_equal' => 'Pole :attribute musi być datą nie późniejszą niż :date.', + 'between' => [ + 'array' => 'Pole :attribute musi składać się z :min - :max elementów.', + 'file' => 'Pole :attribute musi zawierać się w granicach :min - :max kilobajtów.', 'numeric' => 'Pole :attribute musi zawierać się w granicach :min - :max.', - 'string' => 'Pole :attribute musi zawierać się w granicach :min - :max znaków.', + 'string' => 'Pole :attribute musi zawierać się w granicach :min - :max znaków.', ], - 'boolean' => 'Pole :attribute musi mieć wartość logiczną prawda albo fałsz.', - 'can' => 'Pole :attribute zawiera nieautoryzowaną wartość.', - 'confirmed' => 'Potwierdzenie pola :attribute nie zgadza się.', - 'contains' => 'Pole :attribute nie zawiera wymaganego elementu.', - 'current_password' => 'Hasło jest nieprawidłowe.', - 'date' => 'Pole :attribute nie jest prawidłową datą.', - 'date_equals' => 'Pole :attribute musi być datą równą :date.', - 'date_format' => 'Pole :attribute nie jest w formacie :format.', - 'decimal' => 'Pole :attribute musi mieć :decimal miejsc po przecinku.', - 'declined' => 'Pole :attribute musi zostać odrzucone.', - 'declined_if' => 'Pole :attribute musi zostać odrzucone, gdy :other ma wartość :value.', - 'different' => 'Pole :attribute oraz :other muszą się różnić.', - 'digits' => 'Pole :attribute musi składać się z :digits cyfr.', - 'digits_between' => 'Pole :attribute musi mieć od :min do :max cyfr.', - 'dimensions' => 'Pole :attribute ma niepoprawne wymiary.', - 'distinct' => 'Pole :attribute ma zduplikowane wartości.', - 'doesnt_contain' => 'Pole :attribute nie może zawierać żadnej z następujących wartości: :values.', - 'doesnt_end_with' => 'Pole :attribute nie może kończyć się jedną z następujących wartości: :values.', - 'doesnt_start_with' => 'Pole :attribute nie może zaczynać się od jednego z następujących wartości: :values.', - 'email' => 'Pole :attribute nie jest poprawnym adresem e-mail.', - 'ends_with' => 'Pole :attribute musi kończyć się jedną z następujących wartości: :values.', - 'enum' => 'Pole :attribute ma niepoprawną wartość.', - 'exists' => 'Zaznaczone pole :attribute jest nieprawidłowe.', - 'extensions' => 'Pole :attribute musi mieć jedno z następujących rozszerzeń: :values.', - 'file' => 'Pole :attribute musi być plikiem.', - 'filled' => 'Pole :attribute musi być wypełnione.', - 'gt' => [ - 'array' => 'Pole :attribute musi mieć więcej niż :value elementów.', - 'file' => 'Pole :attribute musi być większe niż :value kilobajtów.', + 'boolean' => 'Pole :attribute musi mieć wartość logiczną prawda albo fałsz.', + 'can' => 'Pole :attribute zawiera nieautoryzowaną wartość.', + 'confirmed' => 'Potwierdzenie pola :attribute nie zgadza się.', + 'contains' => 'Pole :attribute nie zawiera wymaganego elementu.', + 'current_password' => 'Hasło jest nieprawidłowe.', + 'date' => 'Pole :attribute nie jest prawidłową datą.', + 'date_equals' => 'Pole :attribute musi być datą równą :date.', + 'date_format' => 'Pole :attribute nie jest w formacie :format.', + 'decimal' => 'Pole :attribute musi mieć :decimal miejsc po przecinku.', + 'declined' => 'Pole :attribute musi zostać odrzucone.', + 'declined_if' => 'Pole :attribute musi zostać odrzucone, gdy :other ma wartość :value.', + 'different' => 'Pole :attribute oraz :other muszą się różnić.', + 'digits' => 'Pole :attribute musi składać się z :digits cyfr.', + 'digits_between' => 'Pole :attribute musi mieć od :min do :max cyfr.', + 'dimensions' => 'Pole :attribute ma niepoprawne wymiary.', + 'distinct' => 'Pole :attribute ma zduplikowane wartości.', + 'doesnt_contain' => 'Pole :attribute nie może zawierać żadnej z następujących wartości: :values.', + 'doesnt_end_with' => 'Pole :attribute nie może kończyć się jedną z następujących wartości: :values.', + 'doesnt_start_with' => 'Pole :attribute nie może zaczynać się od jednego z następujących wartości: :values.', + 'email' => 'Pole :attribute nie jest poprawnym adresem e-mail.', + 'encoding' => 'The :attribute field must be encoded in :encoding.', + 'ends_with' => 'Pole :attribute musi kończyć się jedną z następujących wartości: :values.', + 'enum' => 'Pole :attribute ma niepoprawną wartość.', + 'exists' => 'Zaznaczone pole :attribute jest nieprawidłowe.', + 'extensions' => 'Pole :attribute musi mieć jedno z następujących rozszerzeń: :values.', + 'file' => 'Pole :attribute musi być plikiem.', + 'filled' => 'Pole :attribute musi być wypełnione.', + 'gt' => [ + 'array' => 'Pole :attribute musi mieć więcej niż :value elementów.', + 'file' => 'Pole :attribute musi być większe niż :value kilobajtów.', 'numeric' => 'Pole :attribute musi być większe niż :value.', - 'string' => 'Pole :attribute musi być dłuższe niż :value znaków.', + 'string' => 'Pole :attribute musi być dłuższe niż :value znaków.', ], - 'gte' => [ - 'array' => 'Pole :attribute musi mieć :value lub więcej elementów.', - 'file' => 'Pole :attribute musi być większe lub równe :value kilobajtów.', + 'gte' => [ + 'array' => 'Pole :attribute musi mieć :value lub więcej elementów.', + 'file' => 'Pole :attribute musi być większe lub równe :value kilobajtów.', 'numeric' => 'Pole :attribute musi być większe lub równe :value.', - 'string' => 'Pole :attribute musi być dłuższe lub równe :value znaków.', + 'string' => 'Pole :attribute musi być dłuższe lub równe :value znaków.', ], - 'hex_color' => 'Pole :attribute musi mieć podany prawidłowy kolor w formacie szesnastkowym.', - 'image' => 'Pole :attribute musi być obrazkiem.', - 'in' => 'Zaznaczony element :attribute jest nieprawidłowy.', - 'in_array' => 'Pole :attribute nie znajduje się w :other.', - 'in_array_keys' => 'Pole :attribute musi zawierać co najmniej jeden z następujących kluczy: :values.', - 'integer' => 'Pole :attribute musi być liczbą całkowitą.', - 'ip' => 'Pole :attribute musi być prawidłowym adresem IP.', - 'ipv4' => 'Pole :attribute musi być prawidłowym adresem IPv4.', - 'ipv6' => 'Pole :attribute musi być prawidłowym adresem IPv6.', - 'json' => 'Pole :attribute musi być poprawnym ciągiem znaków JSON.', - 'list' => 'Pole :attribute musi zawierać listę wartości.', - 'lowercase' => 'Pole :attribute musi być zapisane małymi literami.', - 'lt' => [ - 'array' => 'Pole :attribute musi mieć mniej niż :value elementów.', - 'file' => 'Pole :attribute musi być mniejsze niż :value kilobajtów.', + 'hex_color' => 'Pole :attribute musi mieć podany prawidłowy kolor w formacie szesnastkowym.', + 'image' => 'Pole :attribute musi być obrazkiem.', + 'in' => 'Zaznaczony element :attribute jest nieprawidłowy.', + 'in_array' => 'Pole :attribute nie znajduje się w :other.', + 'in_array_keys' => 'Pole :attribute musi zawierać co najmniej jeden z następujących kluczy: :values.', + 'integer' => 'Pole :attribute musi być liczbą całkowitą.', + 'ip' => 'Pole :attribute musi być prawidłowym adresem IP.', + 'ipv4' => 'Pole :attribute musi być prawidłowym adresem IPv4.', + 'ipv6' => 'Pole :attribute musi być prawidłowym adresem IPv6.', + 'json' => 'Pole :attribute musi być poprawnym ciągiem znaków JSON.', + 'list' => 'Pole :attribute musi zawierać listę wartości.', + 'lowercase' => 'Pole :attribute musi być zapisane małymi literami.', + 'lt' => [ + 'array' => 'Pole :attribute musi mieć mniej niż :value elementów.', + 'file' => 'Pole :attribute musi być mniejsze niż :value kilobajtów.', 'numeric' => 'Pole :attribute musi być mniejsze niż :value.', - 'string' => 'Pole :attribute musi być krótsze niż :value znaków.', + 'string' => 'Pole :attribute musi być krótsze niż :value znaków.', ], - 'lte' => [ - 'array' => 'Pole :attribute musi mieć :value lub mniej elementów.', - 'file' => 'Pole :attribute musi być mniejsze lub równe :value kilobajtów.', + 'lte' => [ + 'array' => 'Pole :attribute musi mieć :value lub mniej elementów.', + 'file' => 'Pole :attribute musi być mniejsze lub równe :value kilobajtów.', 'numeric' => 'Pole :attribute musi być mniejsze lub równe :value.', - 'string' => 'Pole :attribute musi być krótsze lub równe :value znaków.', + 'string' => 'Pole :attribute musi być krótsze lub równe :value znaków.', ], - 'mac_address' => 'Pole :attribute musi być prawidłowym adresem MAC.', - 'max' => [ - 'array' => 'Pole :attribute nie może mieć więcej niż :max elementów.', - 'file' => 'Pole :attribute nie może być większe niż :max kilobajtów.', + 'mac_address' => 'Pole :attribute musi być prawidłowym adresem MAC.', + 'max' => [ + 'array' => 'Pole :attribute nie może mieć więcej niż :max elementów.', + 'file' => 'Pole :attribute nie może być większe niż :max kilobajtów.', 'numeric' => 'Pole :attribute nie może być większe niż :max.', - 'string' => 'Pole :attribute nie może być dłuższe niż :max znaków.', + 'string' => 'Pole :attribute nie może być dłuższe niż :max znaków.', ], - 'max_digits' => 'Pole :attribute nie może mieć więcej niż :max cyfr.', - 'mimes' => 'Pole :attribute musi być plikiem typu :values.', - 'mimetypes' => 'Pole :attribute musi być plikiem typu :values.', - 'min' => [ - 'array' => 'Pole :attribute musi mieć przynajmniej :min elementów.', - 'file' => 'Pole :attribute musi mieć przynajmniej :min kilobajtów.', + 'max_digits' => 'Pole :attribute nie może mieć więcej niż :max cyfr.', + 'mimes' => 'Pole :attribute musi być plikiem typu :values.', + 'mimetypes' => 'Pole :attribute musi być plikiem typu :values.', + 'min' => [ + 'array' => 'Pole :attribute musi mieć przynajmniej :min elementów.', + 'file' => 'Pole :attribute musi mieć przynajmniej :min kilobajtów.', 'numeric' => 'Pole :attribute musi być nie mniejsze od :min.', - 'string' => 'Pole :attribute musi mieć przynajmniej :min znaków.', + 'string' => 'Pole :attribute musi mieć przynajmniej :min znaków.', ], - 'min_digits' => 'Pole :attribute musi mieć co najmniej :min cyfr.', - 'missing' => 'Musi brakować pola :attribute.', - 'missing_if' => 'Jeśli :other to :value, musi brakować pola :attribute.', - 'missing_unless' => 'Musi brakować pola :attribute, chyba że :other to :value.', - 'missing_with' => 'Jeśli występuje wartość :values, musi brakować pola :attribute.', - 'missing_with_all' => 'Jeśli występuje :values, musi brakować pola :attribute.', - 'multiple_of' => 'Pole :attribute musi być wielokrotnością wartości :value.', - 'not_in' => 'Zaznaczony :attribute jest nieprawidłowy.', - 'not_regex' => 'Format pola :attribute jest nieprawidłowy.', - 'numeric' => 'Pole :attribute musi być liczbą.', - 'password' => [ - 'letters' => 'Pole :attribute musi zawierać przynajmniej jedną literę.', - 'mixed' => 'Pole :attribute musi zawierać przynajmniej jedną wielką i jedną małą literę.', - 'numbers' => 'Pole :attribute musi zawierać przynajmniej jedną liczbę.', - 'symbols' => 'Pole :attribute musi zawierać przynajmniej jeden symbol.', + 'min_digits' => 'Pole :attribute musi mieć co najmniej :min cyfr.', + 'missing' => 'Musi brakować pola :attribute.', + 'missing_if' => 'Jeśli :other to :value, musi brakować pola :attribute.', + 'missing_unless' => 'Musi brakować pola :attribute, chyba że :other to :value.', + 'missing_with' => 'Jeśli występuje wartość :values, musi brakować pola :attribute.', + 'missing_with_all' => 'Jeśli występuje :values, musi brakować pola :attribute.', + 'multiple_of' => 'Pole :attribute musi być wielokrotnością wartości :value.', + 'not_in' => 'Zaznaczony :attribute jest nieprawidłowy.', + 'not_regex' => 'Format pola :attribute jest nieprawidłowy.', + 'numeric' => 'Pole :attribute musi być liczbą.', + 'password' => [ + 'letters' => 'Pole :attribute musi zawierać przynajmniej jedną literę.', + 'mixed' => 'Pole :attribute musi zawierać przynajmniej jedną wielką i jedną małą literę.', + 'numbers' => 'Pole :attribute musi zawierać przynajmniej jedną liczbę.', + 'symbols' => 'Pole :attribute musi zawierać przynajmniej jeden symbol.', 'uncompromised' => 'Podany :attribute pojawił się w wycieku danych. Proszę wybrać inną wartość :attribute.', ], - 'present' => 'Pole :attribute musi być obecne.', - 'present_if' => 'Pole :attribute musi być obecne jeżeli :other ma wartość :value.', - 'present_unless' => 'Pole :attribute musi być obecne, chyba że :other ma wartość :value.', - 'present_with' => 'Pole :attribute musi być obecne, gdy :values jest podane.', - 'present_with_all' => 'Pole :attribute musi być obecne kiedy :values są podane.', - 'prohibited' => 'Pole :attribute jest zabronione.', - 'prohibited_if' => 'Pole :attribute jest zabronione, gdy :other to :value.', + 'present' => 'Pole :attribute musi być obecne.', + 'present_if' => 'Pole :attribute musi być obecne jeżeli :other ma wartość :value.', + 'present_unless' => 'Pole :attribute musi być obecne, chyba że :other ma wartość :value.', + 'present_with' => 'Pole :attribute musi być obecne, gdy :values jest podane.', + 'present_with_all' => 'Pole :attribute musi być obecne kiedy :values są podane.', + 'prohibited' => 'Pole :attribute jest zabronione.', + 'prohibited_if' => 'Pole :attribute jest zabronione, gdy :other to :value.', 'prohibited_if_accepted' => 'Pole :attribute jest zabronione, gdy akceptowane jest pole :other.', 'prohibited_if_declined' => 'Pole :attribute jest zabronione, gdy odrzucono pole :other.', - 'prohibited_unless' => 'Pole :attribute jest zabronione, chyba że :other jest w :values.', - 'prohibits' => 'Pole :attribute wyklucza obecność :other.', - 'regex' => 'Format pola :attribute jest nieprawidłowy.', - 'required' => 'Pole :attribute jest wymagane.', - 'required_array_keys' => 'Pole :attribute musi zawierać wartości: :values.', - 'required_if' => 'Pole :attribute jest wymagane gdy :other ma wartość :value.', - 'required_if_accepted' => 'Pole :attribute jest wymagane, gdy :other jest zaakceptowane.', - 'required_if_declined' => 'Pole :attribute jest wymagane gdy :other jest odrzucone.', - 'required_unless' => 'Pole :attribute jest wymagane jeżeli :other nie znajduje się w :values.', - 'required_with' => 'Pole :attribute jest wymagane gdy wartość :values jest obecna.', - 'required_with_all' => 'Pole :attribute jest wymagane gdy wszystkie wartości :values są obecne.', - 'required_without' => 'Pole :attribute jest wymagane gdy wartość :values nie jest obecna.', - 'required_without_all' => 'Pole :attribute jest wymagane gdy żadne z wartości :values nie są obecne.', - 'same' => 'Pole :attribute i :other muszą być takie same.', - 'size' => [ - 'array' => 'Pole :attribute musi zawierać :size elementów.', - 'file' => 'Pole :attribute musi mieć :size kilobajtów.', + 'prohibited_unless' => 'Pole :attribute jest zabronione, chyba że :other jest w :values.', + 'prohibits' => 'Pole :attribute wyklucza obecność :other.', + 'regex' => 'Format pola :attribute jest nieprawidłowy.', + 'required' => 'Pole :attribute jest wymagane.', + 'required_array_keys' => 'Pole :attribute musi zawierać wartości: :values.', + 'required_if' => 'Pole :attribute jest wymagane gdy :other ma wartość :value.', + 'required_if_accepted' => 'Pole :attribute jest wymagane, gdy :other jest zaakceptowane.', + 'required_if_declined' => 'Pole :attribute jest wymagane gdy :other jest odrzucone.', + 'required_unless' => 'Pole :attribute jest wymagane jeżeli :other nie znajduje się w :values.', + 'required_with' => 'Pole :attribute jest wymagane gdy wartość :values jest obecna.', + 'required_with_all' => 'Pole :attribute jest wymagane gdy wszystkie wartości :values są obecne.', + 'required_without' => 'Pole :attribute jest wymagane gdy wartość :values nie jest obecna.', + 'required_without_all' => 'Pole :attribute jest wymagane gdy żadne z wartości :values nie są obecne.', + 'same' => 'Pole :attribute i :other muszą być takie same.', + 'size' => [ + 'array' => 'Pole :attribute musi zawierać :size elementów.', + 'file' => 'Pole :attribute musi mieć :size kilobajtów.', 'numeric' => 'Pole :attribute musi mieć :size.', - 'string' => 'Pole :attribute musi mieć :size znaków.', + 'string' => 'Pole :attribute musi mieć :size znaków.', ], - 'starts_with' => 'Pole :attribute musi zaczynać się jedną z następujących wartości: :values.', - 'string' => 'Pole :attribute musi być ciągiem znaków.', - 'timezone' => 'Pole :attribute musi być prawidłową strefą czasową.', - 'ulid' => 'Pole :attribute musi być prawidłowym identyfikatorem ULID.', - 'unique' => 'Taki :attribute już występuje.', - 'uploaded' => 'Nie udało się wgrać pliku :attribute.', - 'uppercase' => 'Pole :attribute musi być zapisane wielkimi literami.', - 'url' => 'Format pola :attribute jest nieprawidłowy.', - 'uuid' => 'Pole :attribute musi być poprawnym identyfikatorem UUID.', + 'starts_with' => 'Pole :attribute musi zaczynać się jedną z następujących wartości: :values.', + 'string' => 'Pole :attribute musi być ciągiem znaków.', + 'timezone' => 'Pole :attribute musi być prawidłową strefą czasową.', + 'ulid' => 'Pole :attribute musi być prawidłowym identyfikatorem ULID.', + 'unique' => 'Taki :attribute już występuje.', + 'uploaded' => 'Nie udało się wgrać pliku :attribute.', + 'uppercase' => 'Pole :attribute musi być zapisane wielkimi literami.', + 'url' => 'Format pola :attribute jest nieprawidłowy.', + 'uuid' => 'Pole :attribute musi być poprawnym identyfikatorem UUID.', ]; diff --git a/lang/pt.json b/lang/pt.json index 6aaad3d..0502a08 100644 --- a/lang/pt.json +++ b/lang/pt.json @@ -2,13 +2,16 @@ "(and :count more error)": "(e mais :count erros)", "(and :count more errors)": "(e mais :count erros)|(e mais :count erros)|(e mais :count erros)", "2FA Recovery Codes": "2FA Recovery Codes", + "2FA recovery codes": "2FA recovery codes", ":count Events erfolgreich erstellt!": ":count eventos criados com sucesso!", + ":inviterName has invited you to join the :teamName team.": ":inviterName has invited you to join the :teamName team.", "A decryption key is required.": "É necessária uma chave de descriptografia.", "A new verification link has been sent to the email address you provided during registration.": "Um novo link de verificação foi enviado para o seu endereço de e-mail fornecido durante o registo.", "A new verification link has been sent to your email address.": "Foi enviado um novo link de verificação para o seu endereço de e-mail.", "A reset link will be sent if the account exists.": "A reset link will be sent if the account exists.", "Abbrechen": "Cancelar", "Absagen": "Desistir", + "Accept invitation": "Accept invitation", "Actions": "Ações", "Aktionen": "Ações", "Aktiv": "Ativo", @@ -28,6 +31,7 @@ "Alle Meetups anzeigen": "Mostrar todos os Meetups", "Allgemeine Bitcoin Community": "Comunidade geral de Bitcoin", "Already have an account?": "Already have an account?", + "An invitation has already been sent to this email address.": "An invitation has already been sent to this email address.", "An welchem Tag beginnt das Event?": "Em que dia começa o evento?", "An welchem Tag endet das Event?": "Em que dia termina o evento?", "An welchem Tag findet das Event statt?": "Em que dia ocorre o evento?", @@ -39,13 +43,18 @@ "App": "App", "Appearance": "Appearance", "Appearance Settings": "Appearance Settings", + "Appearance settings": "Appearance settings", + "Are you sure you want to cancel the invitation for :email?": "Are you sure you want to cancel the invitation for :email?", "Are you sure you want to delete your account?": "Tem certeza de que deseja excluir sua conta?", + "Are you sure you want to remove :name from this team?": "Are you sure you want to remove :name from this team?", + "Are you sure?": "Are you sure?", "Art des Services": "Tipo de serviço", "Auf Karte sichtbar": "Visível no mapa", "aus deinen Meetups entfernen?": "remover dos seus Meetups?", "Ausführliche Beschreibung des Kurses": "Descrição detalhada do curso", "Ausführliche Beschreibung und Biografie": "Descrição detalhada e biografia", "Authentication Code": "Authentication Code", + "Authentication code": "Authentication code", "Automatisch (gleiches Datum)": "Automático (mesma data)", "Automatisch (wie Startdatum)": "Automático (como data de início)", "Back": "Back", @@ -71,6 +80,7 @@ "BooksForPlebs": "BooksForPlebs", "Breitengrad": "Latitude", "Cancel": "Cancelar", + "Cancel invitation": "Cancel invitation", "Cities": "Cidades", "City": "Cidade", "City successfully created!": "Cidade criada com sucesso!", @@ -88,9 +98,11 @@ "Copied into clipboard": "Copiado para a área de transferência", "Copy": "Copiar", "Country": "País", + "Create a new team": "Create a new team", "Create account": "Create account", "Create an account": "Create an account", "Create City": "Criar Cidade", + "Create team": "Create team", "Create Venue": "Criar Local", "Created at": "Criado em", "Created By": "Criado por", @@ -103,6 +115,7 @@ "Datum des letzten Termins": "Data do último evento", "Dein Name": "Seu nome", "Delete account": "Delete account", + "Delete team": "Delete team", "Delete your account and all of its resources": "Delete your account and all of its resources", "Demographics": "Demografia", "Der Anzeigename für diesen Kurs": "O nome de exibição para este curso", @@ -140,8 +153,11 @@ "Du kannst es jederzeit wieder hinzufügen.": "Você pode adicioná-lo novamente a qualquer momento.", "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Pesquise todas as cidades com Bitcoin Meetups ativos e encontre eventos perto de você.", "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate codes above.", "Edit": "Editar", + "Edit :name": "Edit :name", "Edit City": "Editar Cidade", + "Edit team": "Edit team", "Edit Venue": "Editar Local", "Einführung": "Introdução", "Einundzwanzig Community": "Comunidade Einundzwanzig", @@ -150,8 +166,10 @@ "Email Address": "Endereço de e-mail", "Email address": "Email address", "Email password reset link": "Email password reset link", + "Email verification": "Email verification", "Enable 2FA": "Enable 2FA", "Enable Two-Factor Authentication": "Enable Two-Factor Authentication", + "Enable two-factor authentication": "Enable two-factor authentication", "Enabled": "Enabled", "Encrypted environment file already exists.": "O ficheiro de ambiente encriptado já existe.", "Encrypted environment file not found.": "O ficheiro de ambiente encriptado não encontrado.", @@ -211,10 +229,12 @@ "Für regelmäßige Termine wie \"immer am letzten Freitag des Monats\":": "Para agendamentos regulares como \"sempre na última sexta-feira do mês\":", "Gemeinschaft": "Comunidade", "Gemeinschafts- oder Organisationsname": "Nome da comunidade ou organização", + "Give your team a name to get started.": "Give your team a name to get started.", "Go to page :page": "Ir para a página :page", "Grundlegende Informationen": "Informações básicas", "Hello!": "Olá!", "Hide Recovery Codes": "Hide Recovery Codes", + "Hide recovery codes": "Hide recovery codes", "I2P Adresse": "Endereço I2P", "Ich komme": "Eu vou", "ID": "ID", @@ -227,6 +247,11 @@ "Intervall": "Intervalo", "Invalid filename.": "Nome do ficheiro inválido.", "Invalid JSON was returned from the route.": "JSON inválido foi retornado da rota.", + "Invitation cancelled.": "Invitation cancelled.", + "Invitation sent.": "Invitation sent.", + "Invitations that have not been accepted yet": "Invitations that have not been accepted yet", + "Invite a team member": "Invite a team member", + "Invite member": "Invite member", "IP Adresse": "Endereço IP", "Ist dieser Dozent aktiv?": "Este professor está ativo?", "Jetzt erstellen": "Criar agora", @@ -234,6 +259,7 @@ "Kalender-Stream-URL kopieren": "Copiar URL do stream de calendário", "Karte": "Mapa", "Kartenansicht öffnen": "Abrir vista do mapa", + "Keep invitation": "Keep invitation", "Keine": "Nenhuma", "Keine Aktivitäten": "Nenhuma atividade", "Keine bevorstehenden Termine": "Nenhuma data futura", @@ -259,6 +285,7 @@ "Land": "País", "Land auswählen": "Selecionar país", "Latitude": "Latitude", + "length": "comprimento", "Lerne alles über Bitcoin - von den Grundlagen bis zu fortgeschrittenen Themen.": "Aprenda tudo sobre Bitcoin - dos fundamentos aos tópicos avançados.", "Lerne unsere erfahrenen Bitcoin-Dozenten und ihre Expertise kennen.": "Conheça nossos professores experientes de Bitcoin e sua expertise.", "Letzte Änderungszeit": "Última alteração", @@ -294,7 +321,10 @@ "Länder mit den meisten Usern": "Países com mais usuários", "Längengrad": "Longitude", "Löschen": "Excluir", + "Manage who belongs to this team": "Manage who belongs to this team", "Manage your profile and account settings": "Manage your profile and account settings", + "Manage your team settings": "Manage your team settings", + "Manage your teams and team memberships": "Manage your teams and team memberships", "Manage your two-factor authentication settings": "Manage your two-factor authentication settings", "Matrix": "Matrix", "Matrix Gruppe": "Grupo Matrix", @@ -313,6 +343,8 @@ "Mehr Informationen": "Mais informações", "Meine Meetups": "Meus Meetups", "Meine nächsten Meetup Termine": "Minhas próximas datas de Meetup", + "Member removed.": "Member removed.", + "Member role updated.": "Member role updated.", "Mindestens eine URL muss angegeben werden.": "Pelo menos uma URL deve ser fornecida.", "Mindestens eine URL oder IP muss angegeben werden.": "Pelo menos uma URL ou IP deve ser fornecido.", "Mittwoch": "Quarta-feira", @@ -336,6 +368,7 @@ "Neues Meetup": "Novo Meetup", "Neues Meetup erstellen": "Criar novo Meetup", "New password": "New password", + "New team": "New team", "no location set": "nenhum local definido", "Node ID": "Node ID", "Normale Web-URL": "URL web normal", @@ -364,16 +397,21 @@ "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Personalize a aparência do seu perfil de Bitcoin Meetup.", "Password": "Palavra-passe", "Password Settings": "Password Settings", + "Password updated.": "Password updated.", "Passwort ändern - Bitcoin Meetups": "Alterar senha - Bitcoin Meetups", "Payment Required": "Pagamento Requerido", "PayNym": "PayNym", "PayNym für Bitcoin-Zahlungen": "PayNym para pagamentos Bitcoin", + "Pending invitations": "Pending invitations", + "Permanently delete your team": "Permanently delete your team", + "Personal": "Personal", "Persönliche Webseite oder Portfolio": "Website pessoal ou portfólio", "Pkarr DNS Adresse": "Endereço Pkarr DNS", "Platform": "Platform", "Please click the button below to verify your email address.": "Por favor, clique no botão em baixo para verificar seu endereço de e-mail.", "Please confirm access to your account by entering one of your emergency recovery codes.": "Please confirm access to your account by entering one of your emergency recovery codes.", "Please enter your new password below": "Please enter your new password below", + "Please proceed with caution, this cannot be undone.": "Please proceed with caution, this cannot be undone.", "Please verify your email address by clicking on the link we just emailed to you.": "Please verify your email address by clicking on the link we just emailed to you.", "Population": "População", "Population Date": "Data da população", @@ -382,29 +420,41 @@ "Profil bearbeiten - Bitcoin Meetups": "Editar perfil - Bitcoin Meetups", "Profile": "Perfil", "Profile Settings": "Profile Settings", + "Profile settings": "Profile settings", + "Profile updated.": "Profile updated.", "Recovery Code": "Recovery Code", + "Recovery code": "Recovery code", "Recovery codes": "Recovery codes", "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.", "Regards,": "Atenciosamente,", "Regenerate Codes": "Regenerate Codes", - "Register": "Registar", + "Regenerate codes": "Regenerate codes", + "Register": "Register", "Remember me": "Lembrar-me", + "Remove member": "Remove member", + "Remove team member": "Remove team member", "Repository": "Repository", "Resend verification email": "Resend verification email", "Reset password": "Reset password", "Reset Password": "Redefinir Palavra-passe", "Reset Password Notification": "Notificação para redefinir a Palavra-passe", "results": "resultados", + "Role": "Role", "Samstag": "Sábado", "Save": "Guardar", "Saved.": "Guardado.", "Search": "Search", "Search cities...": "Buscar cidades...", "Search venues...": "Buscar locais...", + "Security": "Security", + "Security settings": "Security settings", "Select a city": "Selecionar uma cidade", "Select a country": "Selecione um país", + "Select team": "Select team", "Self Hosted Services": "Serviços Auto-Hospedados", "Self-Hosted Services - Übersicht": "Serviços Auto-Hospedados - Visão Geral", + "Send an invitation to join this team.": "Send an invitation to join this team.", + "Send invitation": "Send invitation", "Serientermine erstellen": "Criar eventos recorrentes", "Serientermine erstellen?": "Criar eventos recorrentes?", "Server Error": "Erro do servidor", @@ -462,15 +512,28 @@ "System": "Sistema", "System-generierte ID (nur lesbar)": "ID gerada pelo sistema (somente leitura)", "Systeminformationen": "Informações do sistema", + "Team created.": "Team created.", + "Team deleted.": "Team deleted.", + "Team members": "Team members", + "Team name": "Team name", + "Team updated.": "Team updated.", + "Teams": "Teams", "Teilnahme": "Participação", "Telegram": "Telegram", "Telegram Link": "Link do Telegram", "The given data was invalid.": "Os dados fornecidos são inválidos.", "The response is not a streamed response.": "A resposta não é uma resposta transmitida.", "The response is not a view.": "A resposta não é uma visão.", + "The team name does not match.": "The team name does not match.", + "This action cannot be undone. This will permanently delete the team \":name\".": "This action cannot be undone. This will permanently delete the team \":name\".", "This action is unauthorized.": "Esta ação não é autorizada.", + "This invitation has already been accepted.": "This invitation has already been accepted.", + "This invitation has expired.": "This invitation has expired.", + "This invitation was sent to a different email address.": "This invitation was sent to a different email address.", "This is a secure area of the application. Please confirm your password before continuing.": "This is a secure area of the application. Please confirm your password before continuing.", "This password reset link will expire in :count minutes.": "O Link para redefinir a palavra-passe vai expirar em :count minutos.", + "This team name is reserved and cannot be used.": "This team name is reserved and cannot be used.", + "This user is already a member of the team.": "This user is already a member of the team.", "to": "até", "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.", "Toggle navigation": "Alternar navegação", @@ -484,10 +547,13 @@ "Twitter-Handle ohne @ Symbol": "Handle do Twitter sem o símbolo @", "Two Factor Authentication": "Two Factor Authentication", "Two-Factor Auth": "Two-Factor Auth", + "Two-factor authentication": "Two-factor authentication", "Two-Factor Authentication Enabled": "Two-Factor Authentication Enabled", + "Two-factor authentication enabled": "Two-factor authentication enabled", "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.", "Two-Factor Authentication Settings": "Two-Factor Authentication Settings", "Typ": "Tipo", + "Type \":name\" to confirm": "Type \":name\" to confirm", "Täglich": "Diariamente", "Uhr": "horas", "Uhrzeit": "Hora", @@ -522,22 +588,28 @@ "Veranstaltungsorte - Übersicht": "Locais de eventos - Visão geral", "Verbinde dich mit Bitcoinern in deiner Nähe": "Conecte-se com bitcoiners perto de você", "Verify Authentication Code": "Verify Authentication Code", + "Verify authentication code": "Verify authentication code", "Verify Email Address": "Verifique o endereço de e-mail", "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Gerencie seus Bitcoin Meetups, eventos e configurações em seu painel pessoal.", "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Gerencie as datas e detalhes de seus eventos educacionais Bitcoin.", "Vielleicht": "Talvez", "Vierter": "Quarto", + "View :name": "View :name", "View Recovery Codes": "View Recovery Codes", + "View recovery codes": "View recovery codes", + "View team": "View team", "Vollständiger Name des Dozenten": "Nome completo do professor", "Vorschau auf 100 Termine begrenzt. Es werden möglicherweise mehr Termine erstellt.": "Prévia limitada a 100 eventos. Mais eventos podem ser criados.", "Vorschau der Termine": "Prévia dos eventos", "Wann dieser Dozent erstellt wurde": "Quando este professor foi criado", "Wann dieser Kurs erstellt wurde": "Quando este curso foi criado", "Wann dieses Meetup erstellt wurde": "Quando este Meetup foi criado", + "Warning": "Warning", "Webseite": "Website", "Website": "Website", "weitere Termine": "mais datas", "Welcher Wochentag im Monat? (z.B. \"letzter Freitag": "Qual dia da semana no mês? (ex. \"última sexta", + "Welcome": "Welcome", "Welt-Karte": "Mapa Mundial", "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Torne-se um professor de Bitcoin e compartilhe seu conhecimento especializado com a comunidade.", "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.", @@ -560,6 +632,9 @@ "Wähle die Stadt aus...": "Selecione a cidade...", "Wöchentlich": "Semanal", "You are receiving this email because we received a password reset request for your account.": "Recebeu esse e-mail porque foi solicitada a redefinição da palavra-passe da sua conta.", + "You don't belong to any teams yet.": "You don't belong to any teams yet.", + "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "You will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.", + "You've been invited to join :teamName": "You've been invited to join :teamName", "Your email address is unverified.": "Seu endereço de e-mail não foi verificado.", "z.B. Berlin": "Ex.: Berlin", "z.B. Bitcoin Zentrum München": "Ex.: Centro Bitcoin München", diff --git a/lang/pt/validation.php b/lang/pt/validation.php index 8c11004..c866cc4 100644 --- a/lang/pt/validation.php +++ b/lang/pt/validation.php @@ -3,156 +3,157 @@ declare(strict_types=1); return [ - 'accepted' => 'O campo :attribute deverá ser aceite.', - 'accepted_if' => 'O :attribute deve ser aceite quando o :other é :value.', - 'active_url' => 'O campo :attribute não contém um URL válido.', - 'after' => 'O campo :attribute deverá conter uma data posterior a :date.', - 'after_or_equal' => 'O campo :attribute deverá conter uma data posterior ou igual a :date.', - 'alpha' => 'O campo :attribute deverá conter apenas letras.', - 'alpha_dash' => 'O campo :attribute deverá conter apenas letras, números e traços.', - 'alpha_num' => 'O campo :attribute deverá conter apenas letras e números .', - 'any_of' => 'O campo :attribute é inválido.', - 'array' => 'O campo :attribute deverá conter uma coleção de elementos.', - 'ascii' => 'O :attribute deve conter apenas caracteres alfanuméricos de byte único e símbolos.', - 'before' => 'O campo :attribute deverá conter uma data anterior a :date.', - 'before_or_equal' => 'O campo :attribute deverá conter uma data anterior ou igual a :date.', - 'between' => [ - 'array' => 'O campo :attribute deverá conter entre :min - :max elementos.', - 'file' => 'O campo :attribute deverá ter um tamanho entre :min - :max kilobytes.', + 'accepted' => 'O campo :attribute deverá ser aceite.', + 'accepted_if' => 'O :attribute deve ser aceite quando o :other é :value.', + 'active_url' => 'O campo :attribute não contém um URL válido.', + 'after' => 'O campo :attribute deverá conter uma data posterior a :date.', + 'after_or_equal' => 'O campo :attribute deverá conter uma data posterior ou igual a :date.', + 'alpha' => 'O campo :attribute deverá conter apenas letras.', + 'alpha_dash' => 'O campo :attribute deverá conter apenas letras, números e traços.', + 'alpha_num' => 'O campo :attribute deverá conter apenas letras e números .', + 'any_of' => 'O campo :attribute é inválido.', + 'array' => 'O campo :attribute deverá conter uma coleção de elementos.', + 'ascii' => 'O :attribute deve conter apenas caracteres alfanuméricos de byte único e símbolos.', + 'before' => 'O campo :attribute deverá conter uma data anterior a :date.', + 'before_or_equal' => 'O campo :attribute deverá conter uma data anterior ou igual a :date.', + 'between' => [ + 'array' => 'O campo :attribute deverá conter entre :min - :max elementos.', + 'file' => 'O campo :attribute deverá ter um tamanho entre :min - :max kilobytes.', 'numeric' => 'O campo :attribute deverá ter um valor entre :min - :max.', - 'string' => 'O campo :attribute deverá conter entre :min - :max caracteres.', + 'string' => 'O campo :attribute deverá conter entre :min - :max caracteres.', ], - 'boolean' => 'O campo :attribute deverá conter o valor verdadeiro ou falso.', - 'can' => 'O campo :attribute contém um valor não autorizado.', - 'confirmed' => 'A confirmação para o campo :attribute não coincide.', - 'contains' => 'O campo :attribute não possui um valor obrigatório.', - 'current_password' => 'A palavra-passe está incorreta.', - 'date' => 'O campo :attribute não contém uma data válida.', - 'date_equals' => 'O campo :attribute tem de ser uma data igual a :date.', - 'date_format' => 'A data indicada para o campo :attribute não respeita o formato :format.', - 'decimal' => 'O :attribute deve ter :decimal casas decimais.', - 'declined' => 'O :attribute deve ser recusado.', - 'declined_if' => 'O :attribute deve ser recusado quando :other é :value.', - 'different' => 'Os campos :attribute e :other deverão conter valores diferentes.', - 'digits' => 'O campo :attribute deverá conter :digits caracteres.', - 'digits_between' => 'O campo :attribute deverá conter entre :min a :max caracteres.', - 'dimensions' => 'O campo :attribute deverá conter uma dimensão de imagem válida.', - 'distinct' => 'O campo :attribute contém um valor duplicado.', - 'doesnt_contain' => 'O campo :attribute não deve conter nenhum dos seguintes: :values.', - 'doesnt_end_with' => 'O campo :attribute não pode terminar com um dos seguintes: :values.', - 'doesnt_start_with' => 'O campo :attribute não pode começar com um dos seguintes: :values.', - 'email' => 'O campo :attribute não contém um endereço de e-mail válido.', - 'ends_with' => 'O campo :attribute deverá terminar com : :values.', - 'enum' => 'O :attribute selecionado é inválido.', - 'exists' => 'O valor selecionado para o campo :attribute é inválido.', - 'extensions' => 'O campo :attribute deve ter uma das seguintes extensões: :values.', - 'file' => 'O campo :attribute deverá conter um ficheiro.', - 'filled' => 'É obrigatória a indicação de um valor para o campo :attribute.', - 'gt' => [ - 'array' => 'O campo :attribute tem de ter mais de :value itens.', - 'file' => 'O campo :attribute tem de ter mais de :value quilobytes.', + 'boolean' => 'O campo :attribute deverá conter o valor verdadeiro ou falso.', + 'can' => 'O campo :attribute contém um valor não autorizado.', + 'confirmed' => 'A confirmação para o campo :attribute não coincide.', + 'contains' => 'O campo :attribute não possui um valor obrigatório.', + 'current_password' => 'A palavra-passe está incorreta.', + 'date' => 'O campo :attribute não contém uma data válida.', + 'date_equals' => 'O campo :attribute tem de ser uma data igual a :date.', + 'date_format' => 'A data indicada para o campo :attribute não respeita o formato :format.', + 'decimal' => 'O :attribute deve ter :decimal casas decimais.', + 'declined' => 'O :attribute deve ser recusado.', + 'declined_if' => 'O :attribute deve ser recusado quando :other é :value.', + 'different' => 'Os campos :attribute e :other deverão conter valores diferentes.', + 'digits' => 'O campo :attribute deverá conter :digits caracteres.', + 'digits_between' => 'O campo :attribute deverá conter entre :min a :max caracteres.', + 'dimensions' => 'O campo :attribute deverá conter uma dimensão de imagem válida.', + 'distinct' => 'O campo :attribute contém um valor duplicado.', + 'doesnt_contain' => 'O campo :attribute não deve conter nenhum dos seguintes: :values.', + 'doesnt_end_with' => 'O campo :attribute não pode terminar com um dos seguintes: :values.', + 'doesnt_start_with' => 'O campo :attribute não pode começar com um dos seguintes: :values.', + 'email' => 'O campo :attribute não contém um endereço de e-mail válido.', + 'encoding' => 'The :attribute field must be encoded in :encoding.', + 'ends_with' => 'O campo :attribute deverá terminar com : :values.', + 'enum' => 'O :attribute selecionado é inválido.', + 'exists' => 'O valor selecionado para o campo :attribute é inválido.', + 'extensions' => 'O campo :attribute deve ter uma das seguintes extensões: :values.', + 'file' => 'O campo :attribute deverá conter um ficheiro.', + 'filled' => 'É obrigatória a indicação de um valor para o campo :attribute.', + 'gt' => [ + 'array' => 'O campo :attribute tem de ter mais de :value itens.', + 'file' => 'O campo :attribute tem de ter mais de :value quilobytes.', 'numeric' => 'O campo :attribute tem de ser maior do que :value.', - 'string' => 'O campo :attribute tem de ter mais de :value caracteres.', + 'string' => 'O campo :attribute tem de ter mais de :value caracteres.', ], - 'gte' => [ - 'array' => 'O campo :attribute tem de ter :value itens ou mais.', - 'file' => 'O campo :attribute tem de ter :value quilobytes ou mais.', + 'gte' => [ + 'array' => 'O campo :attribute tem de ter :value itens ou mais.', + 'file' => 'O campo :attribute tem de ter :value quilobytes ou mais.', 'numeric' => 'O campo :attribute tem de ser maior ou igual a :value.', - 'string' => 'O campo :attribute tem de ter :value caracteres ou mais.', + 'string' => 'O campo :attribute tem de ter :value caracteres ou mais.', ], - 'hex_color' => 'O campo :attribute deve ter uma cor hexadecimal válida.', - 'image' => 'O campo :attribute deverá conter uma imagem.', - 'in' => 'O campo :attribute não contém um valor válido.', - 'in_array' => 'O campo :attribute não existe em :other.', - 'in_array_keys' => 'O campo :attribute deve conter pelo menos uma das seguintes chaves: :values.', - 'integer' => 'O campo :attribute deverá conter um número inteiro.', - 'ip' => 'O campo :attribute deverá conter um IP válido.', - 'ipv4' => 'O campo :attribute deverá conter um IPv4 válido.', - 'ipv6' => 'O campo :attribute deverá conter um IPv6 válido.', - 'json' => 'O campo :attribute deverá conter um texto JSON válido.', - 'list' => 'O campo :attribute deve ser uma lista.', - 'lowercase' => 'O campo :attribute deve ser em minúsculas.', - 'lt' => [ - 'array' => 'O campo :attribute tem de ter menos de :value itens.', - 'file' => 'O campo :attribute tem de ter menos de :value quilobytes.', + 'hex_color' => 'O campo :attribute deve ter uma cor hexadecimal válida.', + 'image' => 'O campo :attribute deverá conter uma imagem.', + 'in' => 'O campo :attribute não contém um valor válido.', + 'in_array' => 'O campo :attribute não existe em :other.', + 'in_array_keys' => 'O campo :attribute deve conter pelo menos uma das seguintes chaves: :values.', + 'integer' => 'O campo :attribute deverá conter um número inteiro.', + 'ip' => 'O campo :attribute deverá conter um IP válido.', + 'ipv4' => 'O campo :attribute deverá conter um IPv4 válido.', + 'ipv6' => 'O campo :attribute deverá conter um IPv6 válido.', + 'json' => 'O campo :attribute deverá conter um texto JSON válido.', + 'list' => 'O campo :attribute deve ser uma lista.', + 'lowercase' => 'O campo :attribute deve ser em minúsculas.', + 'lt' => [ + 'array' => 'O campo :attribute tem de ter menos de :value itens.', + 'file' => 'O campo :attribute tem de ter menos de :value quilobytes.', 'numeric' => 'O campo :attribute tem de ser inferior a :value.', - 'string' => 'O campo :attribute tem de ter menos de :value caracteres.', + 'string' => 'O campo :attribute tem de ter menos de :value caracteres.', ], - 'lte' => [ - 'array' => 'O campo :attribute não pode ter mais de :value itens.', - 'file' => 'O campo :attribute tem de ter :value quilobytes ou menos.', + 'lte' => [ + 'array' => 'O campo :attribute não pode ter mais de :value itens.', + 'file' => 'O campo :attribute tem de ter :value quilobytes ou menos.', 'numeric' => 'O campo :attribute tem de ser inferior ou igual a :value.', - 'string' => 'O campo :attribute tem de ter :value caracteres ou menos.', + 'string' => 'O campo :attribute tem de ter :value caracteres ou menos.', ], - 'mac_address' => 'O :attribute deve ser um endereço MAC válido.', - 'max' => [ - 'array' => 'O campo :attribute não deverá conter mais de :max elementos.', - 'file' => 'O campo :attribute não deverá ter um tamanho superior a :max kilobytes.', + 'mac_address' => 'O :attribute deve ser um endereço MAC válido.', + 'max' => [ + 'array' => 'O campo :attribute não deverá conter mais de :max elementos.', + 'file' => 'O campo :attribute não deverá ter um tamanho superior a :max kilobytes.', 'numeric' => 'O campo :attribute não deverá conter um valor superior a :max.', - 'string' => 'O campo :attribute não deverá conter mais de :max caracteres.', + 'string' => 'O campo :attribute não deverá conter mais de :max caracteres.', ], - 'max_digits' => 'O campo :attribute não pode ter mais do que :max digítos.', - 'mimes' => 'O campo :attribute deverá conter um ficheiro do tipo: :values.', - 'mimetypes' => 'O campo :attribute deverá conter um ficheiro do tipo: :values.', - 'min' => [ - 'array' => 'O campo :attribute deverá conter no mínimo :min elementos.', - 'file' => 'O campo :attribute deverá ter no mínimo :min kilobytes.', + 'max_digits' => 'O campo :attribute não pode ter mais do que :max digítos.', + 'mimes' => 'O campo :attribute deverá conter um ficheiro do tipo: :values.', + 'mimetypes' => 'O campo :attribute deverá conter um ficheiro do tipo: :values.', + 'min' => [ + 'array' => 'O campo :attribute deverá conter no mínimo :min elementos.', + 'file' => 'O campo :attribute deverá ter no mínimo :min kilobytes.', 'numeric' => 'O campo :attribute deverá ter um valor superior ou igual a :min.', - 'string' => 'O campo :attribute deverá conter no mínimo :min caracteres.', + 'string' => 'O campo :attribute deverá conter no mínimo :min caracteres.', ], - 'min_digits' => 'O campo :attribute deve ter pelo menos :min digítos.', - 'missing' => 'O campo :attribute deve estar faltando.', - 'missing_if' => 'O campo :attribute deve estar ausente quando :other for :value.', - 'missing_unless' => 'O campo :attribute deve estar ausente, a menos que :other seja :value.', - 'missing_with' => 'O campo :attribute deve estar ausente quando :values estiver presente.', - 'missing_with_all' => 'O campo :attribute deve estar ausente quando :values estiverem presentes.', - 'multiple_of' => 'O :attribute deve ser um múltiplo de :value', - 'not_in' => 'O campo :attribute contém um valor inválido.', - 'not_regex' => 'O formato de :attribute não é válido', - 'numeric' => 'O campo :attribute deverá conter um valor numérico.', - 'password' => [ - 'letters' => 'O campo :attribute deve conter pelo menos uma letra.', - 'mixed' => 'O campo :attribute deve conter pelo menos uma maiúscula e uma minúscula.', - 'numbers' => 'O campo :attribute deve conter pelo menos um número.', - 'symbols' => 'O campo :attribute deve conter pelo menos um símbolo.', + 'min_digits' => 'O campo :attribute deve ter pelo menos :min digítos.', + 'missing' => 'O campo :attribute deve estar faltando.', + 'missing_if' => 'O campo :attribute deve estar ausente quando :other for :value.', + 'missing_unless' => 'O campo :attribute deve estar ausente, a menos que :other seja :value.', + 'missing_with' => 'O campo :attribute deve estar ausente quando :values estiver presente.', + 'missing_with_all' => 'O campo :attribute deve estar ausente quando :values estiverem presentes.', + 'multiple_of' => 'O :attribute deve ser um múltiplo de :value', + 'not_in' => 'O campo :attribute contém um valor inválido.', + 'not_regex' => 'O formato de :attribute não é válido', + 'numeric' => 'O campo :attribute deverá conter um valor numérico.', + 'password' => [ + 'letters' => 'O campo :attribute deve conter pelo menos uma letra.', + 'mixed' => 'O campo :attribute deve conter pelo menos uma maiúscula e uma minúscula.', + 'numbers' => 'O campo :attribute deve conter pelo menos um número.', + 'symbols' => 'O campo :attribute deve conter pelo menos um símbolo.', 'uncompromised' => 'O campo :attribute apareceu numa fuga de dados. Por favor, escolha um :attribute diferente.', ], - 'present' => 'O campo :attribute deverá estar presente.', - 'present_if' => 'O campo :attribute deve estar presente quando :other for :value.', - 'present_unless' => 'O campo :attribute deve estar presente, a menos que :other seja :value.', - 'present_with' => 'O campo :attribute deve estar presente quando :values estiver presente.', - 'present_with_all' => 'O campo :attribute deve estar presente quando :values estiverem presentes.', - 'prohibited' => 'O campo :attribute é proibido.', - 'prohibited_if' => 'O campo :attribute é proibido quando :other é :value.', + 'present' => 'O campo :attribute deverá estar presente.', + 'present_if' => 'O campo :attribute deve estar presente quando :other for :value.', + 'present_unless' => 'O campo :attribute deve estar presente, a menos que :other seja :value.', + 'present_with' => 'O campo :attribute deve estar presente quando :values estiver presente.', + 'present_with_all' => 'O campo :attribute deve estar presente quando :values estiverem presentes.', + 'prohibited' => 'O campo :attribute é proibido.', + 'prohibited_if' => 'O campo :attribute é proibido quando :other é :value.', 'prohibited_if_accepted' => 'O campo :attribute é proibido quando :other é aceite.', 'prohibited_if_declined' => 'O campo :attribute é proibido quando :other é recusado.', - 'prohibited_unless' => 'O campo :attribute é proibido a menos que :other esteja em :values.', - 'prohibits' => 'O campo :attribute proíbe :other de estar presente.', - 'regex' => 'O formato do valor para o campo :attribute é inválido.', - 'required' => 'É obrigatória a indicação de um valor para o campo :attribute.', - 'required_array_keys' => 'O campo :attribute deve conter entradas para: :values.', - 'required_if' => 'É obrigatória a indicação de um valor para o campo :attribute quando o valor do campo :other é igual a :value.', - 'required_if_accepted' => 'O campo :attribute é obrigatório quando :other foi aceite.', - 'required_if_declined' => 'O campo :attribute é obrigatório quando :other foi recusado.', - 'required_unless' => 'É obrigatória a indicação de um valor para o campo :attribute a menos que :other esteja presente em :values.', - 'required_with' => 'É obrigatória a indicação de um valor para o campo :attribute quando :values está presente.', - 'required_with_all' => 'É obrigatória a indicação de um valor para o campo :attribute quando um dos :values está presente.', - 'required_without' => 'É obrigatória a indicação de um valor para o campo :attribute quando :values não está presente.', - 'required_without_all' => 'É obrigatória a indicação de um valor para o campo :attribute quando nenhum dos :values está presente.', - 'same' => 'Os campos :attribute e :other deverão conter valores iguais.', - 'size' => [ - 'array' => 'O campo :attribute deverá conter :size elementos.', - 'file' => 'O campo :attribute deverá ter o tamanho de :size kilobytes.', + 'prohibited_unless' => 'O campo :attribute é proibido a menos que :other esteja em :values.', + 'prohibits' => 'O campo :attribute proíbe :other de estar presente.', + 'regex' => 'O formato do valor para o campo :attribute é inválido.', + 'required' => 'É obrigatória a indicação de um valor para o campo :attribute.', + 'required_array_keys' => 'O campo :attribute deve conter entradas para: :values.', + 'required_if' => 'É obrigatória a indicação de um valor para o campo :attribute quando o valor do campo :other é igual a :value.', + 'required_if_accepted' => 'O campo :attribute é obrigatório quando :other foi aceite.', + 'required_if_declined' => 'O campo :attribute é obrigatório quando :other foi recusado.', + 'required_unless' => 'É obrigatória a indicação de um valor para o campo :attribute a menos que :other esteja presente em :values.', + 'required_with' => 'É obrigatória a indicação de um valor para o campo :attribute quando :values está presente.', + 'required_with_all' => 'É obrigatória a indicação de um valor para o campo :attribute quando um dos :values está presente.', + 'required_without' => 'É obrigatória a indicação de um valor para o campo :attribute quando :values não está presente.', + 'required_without_all' => 'É obrigatória a indicação de um valor para o campo :attribute quando nenhum dos :values está presente.', + 'same' => 'Os campos :attribute e :other deverão conter valores iguais.', + 'size' => [ + 'array' => 'O campo :attribute deverá conter :size elementos.', + 'file' => 'O campo :attribute deverá ter o tamanho de :size kilobytes.', 'numeric' => 'O campo :attribute deverá conter o valor :size.', - 'string' => 'O campo :attribute deverá conter :size caracteres.', + 'string' => 'O campo :attribute deverá conter :size caracteres.', ], - 'starts_with' => 'O campo :attribute tem de começar com um dos valores seguintes: :values', - 'string' => 'O campo :attribute deverá conter texto.', - 'timezone' => 'O campo :attribute deverá ter um fuso horário válido.', - 'ulid' => 'O :attribute deve ser um ULID válido.', - 'unique' => 'O valor indicado para o campo :attribute já se encontra registado.', - 'uploaded' => 'O upload do ficheiro :attribute falhou.', - 'uppercase' => 'O campo :attribute deve ser em maiúsculas.', - 'url' => 'O formato do URL indicado para o campo :attribute é inválido.', - 'uuid' => ':Attribute tem de ser um UUID válido.', + 'starts_with' => 'O campo :attribute tem de começar com um dos valores seguintes: :values', + 'string' => 'O campo :attribute deverá conter texto.', + 'timezone' => 'O campo :attribute deverá ter um fuso horário válido.', + 'ulid' => 'O :attribute deve ser um ULID válido.', + 'unique' => 'O valor indicado para o campo :attribute já se encontra registado.', + 'uploaded' => 'O upload do ficheiro :attribute falhou.', + 'uppercase' => 'O campo :attribute deve ser em maiúsculas.', + 'url' => 'O formato do URL indicado para o campo :attribute é inválido.', + 'uuid' => ':Attribute tem de ser um UUID válido.', ];