mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 20:24:44 +02:00
Merge branch '3.x'
# Conflicts: # composer.lock # resources/scripts/components/auth/LoginFormContainer.tsx
This commit is contained in:
commit
679c72d70e
@ -23,7 +23,7 @@ REDIS_PASSWORD=null
|
|||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
|
|
||||||
CACHE_STORE=file
|
CACHE_STORE=file
|
||||||
QUEUE_CONNECTION=redis
|
QUEUE_CONNECTION=sync
|
||||||
SESSION_DRIVER=file
|
SESSION_DRIVER=file
|
||||||
|
|
||||||
HASHIDS_SALT=
|
HASHIDS_SALT=
|
||||||
@ -36,7 +36,7 @@ MAIL_USERNAME=
|
|||||||
MAIL_PASSWORD=
|
MAIL_PASSWORD=
|
||||||
MAIL_ENCRYPTION=tls
|
MAIL_ENCRYPTION=tls
|
||||||
MAIL_FROM_ADDRESS=no-reply@example.com
|
MAIL_FROM_ADDRESS=no-reply@example.com
|
||||||
MAIL_FROM_NAME="Panel Administrator"
|
MAIL_FROM_NAME="Pelican Admin"
|
||||||
# Set this to your domain to prevent it defaulting to 'localhost', causing mail servers such as Gmail to reject your mail
|
# Set this to your domain to prevent it defaulting to 'localhost', causing mail servers such as Gmail to reject your mail
|
||||||
# MAIL_EHLO_DOMAIN=panel.example.com
|
# MAIL_EHLO_DOMAIN=panel.example.com
|
||||||
SESSION_ENCRYPT=false
|
SESSION_ENCRYPT=false
|
||||||
|
3
.github/workflows/build.yaml
vendored
3
.github/workflows/build.yaml
vendored
@ -1,9 +1,6 @@
|
|||||||
name: Build
|
name: Build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- '**'
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- '**'
|
- '**'
|
||||||
|
2
.github/workflows/ci.yaml
vendored
2
.github/workflows/ci.yaml
vendored
@ -1,7 +1,7 @@
|
|||||||
name: Tests
|
name: Tests
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- '**'
|
- '**'
|
||||||
|
|
||||||
|
30
.github/workflows/cla.yaml
vendored
Normal file
30
.github/workflows/cla.yaml
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
name: "CLA Assistant"
|
||||||
|
on:
|
||||||
|
issue_comment:
|
||||||
|
types: [created]
|
||||||
|
pull_request_target:
|
||||||
|
types: [opened,closed,synchronize]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
statuses: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
CLAAssistant:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: "CLA Assistant"
|
||||||
|
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
|
||||||
|
uses: contributor-assistant/github-action@v2.3.0
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
||||||
|
with:
|
||||||
|
path-to-signatures: 'version1/cla.json'
|
||||||
|
path-to-document: 'https://github.com/pelican-dev/panel/blob/3.x/contributor_license_agreement.md'
|
||||||
|
branch: 'main'
|
||||||
|
allowlist: dependabot[bot]
|
||||||
|
remote-organization-name: pelican-dev
|
||||||
|
remote-repository-name: cla-signatures
|
3
.github/workflows/lint.yaml
vendored
3
.github/workflows/lint.yaml
vendored
@ -1,9 +1,6 @@
|
|||||||
name: Lint
|
name: Lint
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- '**'
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- '**'
|
- '**'
|
||||||
|
@ -11,23 +11,23 @@ class AppSettingsCommand extends Command
|
|||||||
use EnvironmentWriterTrait;
|
use EnvironmentWriterTrait;
|
||||||
|
|
||||||
public const CACHE_DRIVERS = [
|
public const CACHE_DRIVERS = [
|
||||||
'redis' => 'Redis (recommended)',
|
'redis' => 'Redis',
|
||||||
'memcached' => 'Memcached',
|
'memcached' => 'Memcached',
|
||||||
'file' => 'Filesystem',
|
'file' => 'Filesystem (recommended)',
|
||||||
];
|
];
|
||||||
|
|
||||||
public const SESSION_DRIVERS = [
|
public const SESSION_DRIVERS = [
|
||||||
'redis' => 'Redis (recommended)',
|
'redis' => 'Redis',
|
||||||
'memcached' => 'Memcached',
|
'memcached' => 'Memcached',
|
||||||
'database' => 'MySQL Database',
|
'database' => 'MySQL Database',
|
||||||
'file' => 'Filesystem',
|
'file' => 'Filesystem (recommended)',
|
||||||
'cookie' => 'Cookie',
|
'cookie' => 'Cookie',
|
||||||
];
|
];
|
||||||
|
|
||||||
public const QUEUE_DRIVERS = [
|
public const QUEUE_DRIVERS = [
|
||||||
'redis' => 'Redis (recommended)',
|
'redis' => 'Redis',
|
||||||
'database' => 'MySQL Database',
|
'database' => 'MySQL Database',
|
||||||
'sync' => 'Sync',
|
'sync' => 'Sync (recommended)',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $description = 'Configure basic environment settings for the Panel.';
|
protected $description = 'Configure basic environment settings for the Panel.';
|
||||||
@ -91,21 +91,21 @@ class AppSettingsCommand extends Command
|
|||||||
config('app.timezone')
|
config('app.timezone')
|
||||||
);
|
);
|
||||||
|
|
||||||
$selected = config('cache.default', 'redis');
|
$selected = config('cache.default', 'file');
|
||||||
$this->variables['CACHE_STORE'] = $this->option('cache') ?? $this->choice(
|
$this->variables['CACHE_STORE'] = $this->option('cache') ?? $this->choice(
|
||||||
'Cache Driver',
|
'Cache Driver',
|
||||||
self::CACHE_DRIVERS,
|
self::CACHE_DRIVERS,
|
||||||
array_key_exists($selected, self::CACHE_DRIVERS) ? $selected : null
|
array_key_exists($selected, self::CACHE_DRIVERS) ? $selected : null
|
||||||
);
|
);
|
||||||
|
|
||||||
$selected = config('session.driver', 'redis');
|
$selected = config('session.driver', 'file');
|
||||||
$this->variables['SESSION_DRIVER'] = $this->option('session') ?? $this->choice(
|
$this->variables['SESSION_DRIVER'] = $this->option('session') ?? $this->choice(
|
||||||
'Session Driver',
|
'Session Driver',
|
||||||
self::SESSION_DRIVERS,
|
self::SESSION_DRIVERS,
|
||||||
array_key_exists($selected, self::SESSION_DRIVERS) ? $selected : null
|
array_key_exists($selected, self::SESSION_DRIVERS) ? $selected : null
|
||||||
);
|
);
|
||||||
|
|
||||||
$selected = config('queue.default', 'redis');
|
$selected = config('queue.default', 'sync');
|
||||||
$this->variables['QUEUE_CONNECTION'] = $this->option('queue') ?? $this->choice(
|
$this->variables['QUEUE_CONNECTION'] = $this->option('queue') ?? $this->choice(
|
||||||
'Queue Driver',
|
'Queue Driver',
|
||||||
self::QUEUE_DRIVERS,
|
self::QUEUE_DRIVERS,
|
||||||
|
@ -51,7 +51,7 @@ class UpgradeCommand extends Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_null($this->option('user'))) {
|
if (is_null($this->option('user'))) {
|
||||||
$userDetails = posix_getpwuid(fileowner('public'));
|
$userDetails = function_exists('posix_getpwuid') ? posix_getpwuid(fileowner('public')) : [];
|
||||||
$user = $userDetails['name'] ?? 'www-data';
|
$user = $userDetails['name'] ?? 'www-data';
|
||||||
|
|
||||||
if (!$this->confirm("Your webserver user has been detected as <fg=blue>[{$user}]:</> is this correct?", true)) {
|
if (!$this->confirm("Your webserver user has been detected as <fg=blue>[{$user}]:</> is this correct?", true)) {
|
||||||
@ -67,7 +67,7 @@ class UpgradeCommand extends Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_null($this->option('group'))) {
|
if (is_null($this->option('group'))) {
|
||||||
$groupDetails = posix_getgrgid(filegroup('public'));
|
$groupDetails = function_exists('posix_getgrgid') ? posix_getgrgid(filegroup('public')) : [];
|
||||||
$group = $groupDetails['name'] ?? 'www-data';
|
$group = $groupDetails['name'] ?? 'www-data';
|
||||||
|
|
||||||
if (!$this->confirm("Your webserver group has been detected as <fg=blue>[{$group}]:</> is this correct?", true)) {
|
if (!$this->confirm("Your webserver group has been detected as <fg=blue>[{$group}]:</> is this correct?", true)) {
|
||||||
|
@ -19,6 +19,10 @@ class VerifyReCaptcha
|
|||||||
return $next($request);
|
return $next($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (app()->isLocal()) {
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
|
||||||
if ($request->filled('g-recaptcha-response')) {
|
if ($request->filled('g-recaptcha-response')) {
|
||||||
$client = new Client();
|
$client = new Client();
|
||||||
$res = $client->post(config('recaptcha.domain'), [
|
$res = $client->post(config('recaptcha.domain'), [
|
||||||
|
@ -139,6 +139,7 @@ class Egg extends Model
|
|||||||
'features' => 'array',
|
'features' => 'array',
|
||||||
'docker_images' => 'array',
|
'docker_images' => 'array',
|
||||||
'file_denylist' => 'array',
|
'file_denylist' => 'array',
|
||||||
|
'tags' => 'array',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"ext-pdo": "*",
|
"ext-pdo": "*",
|
||||||
"ext-pdo_mysql": "*",
|
"ext-pdo_mysql": "*",
|
||||||
"ext-posix": "*",
|
|
||||||
"ext-zip": "*",
|
"ext-zip": "*",
|
||||||
"abdelhamiderrahmouni/filament-monaco-editor": "^0.2.0",
|
"abdelhamiderrahmouni/filament-monaco-editor": "^0.2.0",
|
||||||
"aws/aws-sdk-php": "~3.288.1",
|
"aws/aws-sdk-php": "~3.288.1",
|
||||||
|
75
composer.lock
generated
75
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "278443a024fc60ce0a5d2ab2680e13a4",
|
"content-hash": "d56ab7da7dfcd2fe28a500ccac69fca5",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "abdelhamiderrahmouni/filament-monaco-editor",
|
"name": "abdelhamiderrahmouni/filament-monaco-editor",
|
||||||
@ -1560,16 +1560,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/actions",
|
"name": "filament/actions",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/actions.git",
|
"url": "https://github.com/filamentphp/actions.git",
|
||||||
"reference": "46decf6a9fc438c60c9fb1c5631820fab49fefb6"
|
"reference": "02ddfa646d1f11579dd92f9055bf6c58b70e6e01"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filamentphp/actions/zipball/46decf6a9fc438c60c9fb1c5631820fab49fefb6",
|
"url": "https://api.github.com/repos/filamentphp/actions/zipball/02ddfa646d1f11579dd92f9055bf6c58b70e6e01",
|
||||||
"reference": "46decf6a9fc438c60c9fb1c5631820fab49fefb6",
|
"reference": "02ddfa646d1f11579dd92f9055bf6c58b70e6e01",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1609,20 +1609,20 @@
|
|||||||
"issues": "https://github.com/filamentphp/filament/issues",
|
"issues": "https://github.com/filamentphp/filament/issues",
|
||||||
"source": "https://github.com/filamentphp/filament"
|
"source": "https://github.com/filamentphp/filament"
|
||||||
},
|
},
|
||||||
"time": "2024-04-16T15:42:36+00:00"
|
"time": "2024-04-18T11:26:11+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/filament",
|
"name": "filament/filament",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/panels.git",
|
"url": "https://github.com/filamentphp/panels.git",
|
||||||
"reference": "f9011967b6ea0cd79cf7b210bbb59de6bbe2ce1f"
|
"reference": "4b8ddda726dffd962ca6b142559d3ae2b2b74cdb"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filamentphp/panels/zipball/f9011967b6ea0cd79cf7b210bbb59de6bbe2ce1f",
|
"url": "https://api.github.com/repos/filamentphp/panels/zipball/4b8ddda726dffd962ca6b142559d3ae2b2b74cdb",
|
||||||
"reference": "f9011967b6ea0cd79cf7b210bbb59de6bbe2ce1f",
|
"reference": "4b8ddda726dffd962ca6b142559d3ae2b2b74cdb",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1674,20 +1674,20 @@
|
|||||||
"issues": "https://github.com/filamentphp/filament/issues",
|
"issues": "https://github.com/filamentphp/filament/issues",
|
||||||
"source": "https://github.com/filamentphp/filament"
|
"source": "https://github.com/filamentphp/filament"
|
||||||
},
|
},
|
||||||
"time": "2024-04-16T15:42:54+00:00"
|
"time": "2024-04-18T11:26:17+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/forms",
|
"name": "filament/forms",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/forms.git",
|
"url": "https://github.com/filamentphp/forms.git",
|
||||||
"reference": "85670891877fd57e322a8a4c8580ebef1d368f87"
|
"reference": "b49dde3268095dced856188c71c18df593ee6b96"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filamentphp/forms/zipball/85670891877fd57e322a8a4c8580ebef1d368f87",
|
"url": "https://api.github.com/repos/filamentphp/forms/zipball/b49dde3268095dced856188c71c18df593ee6b96",
|
||||||
"reference": "85670891877fd57e322a8a4c8580ebef1d368f87",
|
"reference": "b49dde3268095dced856188c71c18df593ee6b96",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1730,20 +1730,20 @@
|
|||||||
"issues": "https://github.com/filamentphp/filament/issues",
|
"issues": "https://github.com/filamentphp/filament/issues",
|
||||||
"source": "https://github.com/filamentphp/filament"
|
"source": "https://github.com/filamentphp/filament"
|
||||||
},
|
},
|
||||||
"time": "2024-04-16T17:20:05+00:00"
|
"time": "2024-04-18T11:26:15+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/infolists",
|
"name": "filament/infolists",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/infolists.git",
|
"url": "https://github.com/filamentphp/infolists.git",
|
||||||
"reference": "123bbd4e81cd3e8bcdfad77b9554bf8e4185689f"
|
"reference": "d205fbeacc7faf4430abb05c49334a64fb4d84ae"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filamentphp/infolists/zipball/123bbd4e81cd3e8bcdfad77b9554bf8e4185689f",
|
"url": "https://api.github.com/repos/filamentphp/infolists/zipball/d205fbeacc7faf4430abb05c49334a64fb4d84ae",
|
||||||
"reference": "123bbd4e81cd3e8bcdfad77b9554bf8e4185689f",
|
"reference": "d205fbeacc7faf4430abb05c49334a64fb4d84ae",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1781,20 +1781,20 @@
|
|||||||
"issues": "https://github.com/filamentphp/filament/issues",
|
"issues": "https://github.com/filamentphp/filament/issues",
|
||||||
"source": "https://github.com/filamentphp/filament"
|
"source": "https://github.com/filamentphp/filament"
|
||||||
},
|
},
|
||||||
"time": "2024-04-16T15:42:38+00:00"
|
"time": "2024-04-18T11:26:13+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/notifications",
|
"name": "filament/notifications",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/notifications.git",
|
"url": "https://github.com/filamentphp/notifications.git",
|
||||||
"reference": "5731f4b9eb2b3f292b45fbb9ce173ee7d6b7dddb"
|
"reference": "dcc47b498c2a5a89296c2f46da651a8aa5e0bf55"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filamentphp/notifications/zipball/5731f4b9eb2b3f292b45fbb9ce173ee7d6b7dddb",
|
"url": "https://api.github.com/repos/filamentphp/notifications/zipball/dcc47b498c2a5a89296c2f46da651a8aa5e0bf55",
|
||||||
"reference": "5731f4b9eb2b3f292b45fbb9ce173ee7d6b7dddb",
|
"reference": "dcc47b498c2a5a89296c2f46da651a8aa5e0bf55",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1833,20 +1833,20 @@
|
|||||||
"issues": "https://github.com/filamentphp/filament/issues",
|
"issues": "https://github.com/filamentphp/filament/issues",
|
||||||
"source": "https://github.com/filamentphp/filament"
|
"source": "https://github.com/filamentphp/filament"
|
||||||
},
|
},
|
||||||
"time": "2024-04-16T15:42:43+00:00"
|
"time": "2024-04-18T11:26:15+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/support",
|
"name": "filament/support",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/support.git",
|
"url": "https://github.com/filamentphp/support.git",
|
||||||
"reference": "fc9038785de9d49802c36c1aef341af8dfa4dbe0"
|
"reference": "e6bd0dee0dda9f70b6f278747a5780c676edf21b"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filamentphp/support/zipball/fc9038785de9d49802c36c1aef341af8dfa4dbe0",
|
"url": "https://api.github.com/repos/filamentphp/support/zipball/e6bd0dee0dda9f70b6f278747a5780c676edf21b",
|
||||||
"reference": "fc9038785de9d49802c36c1aef341af8dfa4dbe0",
|
"reference": "e6bd0dee0dda9f70b6f278747a5780c676edf21b",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1891,20 +1891,20 @@
|
|||||||
"issues": "https://github.com/filamentphp/filament/issues",
|
"issues": "https://github.com/filamentphp/filament/issues",
|
||||||
"source": "https://github.com/filamentphp/filament"
|
"source": "https://github.com/filamentphp/filament"
|
||||||
},
|
},
|
||||||
"time": "2024-04-16T17:58:12+00:00"
|
"time": "2024-04-18T11:26:31+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/tables",
|
"name": "filament/tables",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/tables.git",
|
"url": "https://github.com/filamentphp/tables.git",
|
||||||
"reference": "87f802bb8bfea1e77ed17ecd86a9d2074786f88a"
|
"reference": "e45917f8be86338c385b86d3e5a42ac12f9699a5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filamentphp/tables/zipball/87f802bb8bfea1e77ed17ecd86a9d2074786f88a",
|
"url": "https://api.github.com/repos/filamentphp/tables/zipball/e45917f8be86338c385b86d3e5a42ac12f9699a5",
|
||||||
"reference": "87f802bb8bfea1e77ed17ecd86a9d2074786f88a",
|
"reference": "e45917f8be86338c385b86d3e5a42ac12f9699a5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1944,11 +1944,11 @@
|
|||||||
"issues": "https://github.com/filamentphp/filament/issues",
|
"issues": "https://github.com/filamentphp/filament/issues",
|
||||||
"source": "https://github.com/filamentphp/filament"
|
"source": "https://github.com/filamentphp/filament"
|
||||||
},
|
},
|
||||||
"time": "2024-04-16T15:43:11+00:00"
|
"time": "2024-04-18T11:26:35+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filament/widgets",
|
"name": "filament/widgets",
|
||||||
"version": "v3.2.69",
|
"version": "v3.2.70",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filamentphp/widgets.git",
|
"url": "https://github.com/filamentphp/widgets.git",
|
||||||
@ -12975,7 +12975,6 @@
|
|||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"ext-pdo": "*",
|
"ext-pdo": "*",
|
||||||
"ext-pdo_mysql": "*",
|
"ext-pdo_mysql": "*",
|
||||||
"ext-posix": "*",
|
|
||||||
"ext-zip": "*"
|
"ext-zip": "*"
|
||||||
},
|
},
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
|
@ -92,7 +92,7 @@ return [
|
|||||||
|
|
||||||
'cdn' => [
|
'cdn' => [
|
||||||
'cache_time' => 60,
|
'cache_time' => 60,
|
||||||
'url' => 'https://cdn.example.com/releases/latest.json',
|
'url' => 'https://cdn.pelican.dev/releases/latest.json',
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
96
contributor_license_agreement.md
Normal file
96
contributor_license_agreement.md
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
Thank you for your interest in Pelican ("Pelican Developers"). To clarify the intellectual property license
|
||||||
|
granted with Contributions from any person or entity, the Pelican Developers
|
||||||
|
must have on file a signed Contributor License Agreement ("CLA")
|
||||||
|
from each Contributor, indicating agreement with the license
|
||||||
|
terms below. This agreement is for your protection as a Contributor
|
||||||
|
as well as the protection of the Pelican Developers and its users. It does not
|
||||||
|
change your rights to use your own Contributions for any other purpose.
|
||||||
|
|
||||||
|
You accept and agree to the following terms and conditions for Your
|
||||||
|
Contributions (present and future) that you submit to the Pelican Developers. In
|
||||||
|
return, the Pelican Developers shall not use Your Contributions in a way that
|
||||||
|
is contrary to the public benefit or inconsistent with its nonprofit
|
||||||
|
status and bylaws in effect at the time of the Contribution. Except
|
||||||
|
for the license granted herein to the Pelican Developers and recipients of
|
||||||
|
software distributed by the Pelican Developers, You reserve all right, title,
|
||||||
|
and interest in and to Your Contributions.
|
||||||
|
1. Definitions.
|
||||||
|
"You" (or "Your") shall mean the copyright owner or legal entity
|
||||||
|
authorized by the copyright owner that is making this Agreement
|
||||||
|
with the Pelican Developers. For legal entities, the entity making a
|
||||||
|
Contribution and all other entities that control, are controlled
|
||||||
|
by, or are under common control with that entity are considered to
|
||||||
|
be a single Contributor. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
"Contribution" shall mean any original work of authorship,
|
||||||
|
including any modifications or additions to an existing work, that
|
||||||
|
is intentionally submitted by You to the Pelican Developers for inclusion
|
||||||
|
in, or documentation of, any of the products owned or managed by
|
||||||
|
the Pelican Developers (the "Work"). For the purposes of this definition,
|
||||||
|
"submitted" means any form of electronic, verbal, or written
|
||||||
|
communication sent to the Pelican Developers or its representatives,
|
||||||
|
including but not limited to communication on electronic mailing
|
||||||
|
lists, source code control systems, and issue tracking systems that
|
||||||
|
are managed by, or on behalf of, the Pelican Developers for the purpose of
|
||||||
|
discussing and improving the Work, but excluding communication that
|
||||||
|
is conspicuously marked or otherwise designated in writing by You
|
||||||
|
as "Not a Contribution."
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this Agreement, You hereby grant to the Pelican Developers and to
|
||||||
|
recipients of software distributed by the Pelican Developers a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare derivative works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute Your
|
||||||
|
Contributions and such derivative works.
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this Agreement, You hereby grant to the Pelican Developers and to
|
||||||
|
recipients of software distributed by the Pelican Developers a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have
|
||||||
|
made, use, offer to sell, sell, import, and otherwise transfer the
|
||||||
|
Work, where such license applies only to those patent claims
|
||||||
|
licensable by You that are necessarily infringed by Your
|
||||||
|
Contribution(s) alone or by combination of Your Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If any
|
||||||
|
entity institutes patent litigation against You or any other entity
|
||||||
|
(including a cross-claim or counterclaim in a lawsuit) alleging
|
||||||
|
that your Contribution, or the Work to which you have contributed,
|
||||||
|
constitutes direct or contributory patent infringement, then any
|
||||||
|
patent licenses granted to that entity under this Agreement for
|
||||||
|
that Contribution or Work shall terminate as of the date such
|
||||||
|
litigation is filed.
|
||||||
|
4. You represent that you are legally entitled to grant the above
|
||||||
|
license. If your employer(s) has rights to intellectual property
|
||||||
|
that you create that includes your Contributions, you represent
|
||||||
|
that you have received permission to make Contributions on behalf
|
||||||
|
of that employer, that your employer has waived such rights for
|
||||||
|
your Contributions to the Pelican Developers, or that your employer has
|
||||||
|
executed a separate Corporate CLA with the Pelican Developers.
|
||||||
|
5. You represent that each of Your Contributions is Your original
|
||||||
|
creation (see section 7 for submissions on behalf of others). You
|
||||||
|
represent that Your Contribution submissions include complete
|
||||||
|
details of any third-party license or other restriction (including,
|
||||||
|
but not limited to, related patents and trademarks) of which you
|
||||||
|
are personally aware and which are associated with any part of Your
|
||||||
|
Contributions.
|
||||||
|
6. You are not expected to provide support for Your Contributions,
|
||||||
|
except to the extent You desire to provide support. You may provide
|
||||||
|
support for free, for a fee, or not at all. Unless required by
|
||||||
|
applicable law or agreed to in writing, You provide Your
|
||||||
|
Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||||
|
OF ANY KIND, either express or implied, including, without
|
||||||
|
limitation, any warranties or conditions of TITLE, NON-
|
||||||
|
INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
7. Should You wish to submit work that is not Your original creation,
|
||||||
|
You may submit it to the Pelican Developers separately from any
|
||||||
|
Contribution, identifying the complete details of its source and of
|
||||||
|
any license or other restriction (including, but not limited to,
|
||||||
|
related patents, trademarks, and license agreements) of which you
|
||||||
|
are personally aware, and conspicuously marking the work as
|
||||||
|
"Submitted on behalf of a third-party: [named here]".
|
||||||
|
8. You agree to notify the Pelican Developers of any facts or circumstances of
|
||||||
|
which you become aware that would make these representations
|
||||||
|
inaccurate in any respect.
|
11
crowdin.yml
Normal file
11
crowdin.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
files:
|
||||||
|
- source: /lang/en/*.php
|
||||||
|
translation: /lang/%two_letters_code%/%original_file_name%
|
||||||
|
- source: /lang/en/admin
|
||||||
|
translation: /lang/%two_letters_code%/admin/%original_file_name%
|
||||||
|
- source: /lang/en/command
|
||||||
|
translation: /lang/%two_letters_code%/command/%original_file_name%
|
||||||
|
- source: /lang/en/dashboard
|
||||||
|
translation: /lang/%two_letters_code%/dashboard/%original_file_name%
|
||||||
|
- source: /lang/en/server
|
||||||
|
translation: /lang/%two_letters_code%/server/%original_file_name%
|
@ -3,12 +3,30 @@
|
|||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Support\Facades\Artisan;
|
use Illuminate\Support\Facades\Artisan;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
return new class extends Migration
|
return new class extends Migration
|
||||||
{
|
{
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
|
Schema::table('eggs', function (Blueprint $table) {
|
||||||
|
$table->text('tags');
|
||||||
|
});
|
||||||
|
|
||||||
|
DB::table('eggs')->update(['tags' => '[]']);
|
||||||
|
|
||||||
|
$eggsWithNests = DB::table('eggs')
|
||||||
|
->select(['eggs.id', 'nests.name'])
|
||||||
|
->join('nests', 'nests.id', '=', 'eggs.nest_id')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
foreach ($eggsWithNests as $egg) {
|
||||||
|
DB::table('eggs')
|
||||||
|
->where('id', $egg->id)
|
||||||
|
->update(['tags' => "[\"$egg->name\"]"]);
|
||||||
|
}
|
||||||
|
|
||||||
Schema::table('eggs', function (Blueprint $table) {
|
Schema::table('eggs', function (Blueprint $table) {
|
||||||
$table->dropForeign('service_options_nest_id_foreign');
|
$table->dropForeign('service_options_nest_id_foreign');
|
||||||
$table->dropColumn('nest_id');
|
$table->dropColumn('nest_id');
|
||||||
@ -26,6 +44,7 @@ return new class extends Migration
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Not really reversible, but...
|
||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::table('api_keys', function (Blueprint $table) {
|
Schema::table('api_keys', function (Blueprint $table) {
|
||||||
@ -42,6 +61,7 @@ return new class extends Migration
|
|||||||
});
|
});
|
||||||
|
|
||||||
Schema::table('eggs', function (Blueprint $table) {
|
Schema::table('eggs', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('tags');
|
||||||
$table->mediumInteger('nest_id')->unsigned();
|
$table->mediumInteger('nest_id')->unsigned();
|
||||||
$table->foreign(['nest_id'], 'service_options_nest_id_foreign');
|
$table->foreign(['nest_id'], 'service_options_nest_id_foreign');
|
||||||
});
|
});
|
||||||
|
@ -2,17 +2,33 @@
|
|||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
return new class extends Migration
|
return new class extends Migration
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
|
Schema::table('nodes', function (Blueprint $table) {
|
||||||
|
$table->text('tags');
|
||||||
|
});
|
||||||
|
|
||||||
|
DB::table('nodes')->update(['tags' => '[]']);
|
||||||
|
|
||||||
|
$nodesWithLocations = DB::table('nodes')
|
||||||
|
->select(['nodes.id', 'locations.short'])
|
||||||
|
->join('locations', 'locations.id', '=', 'nodes.location_id')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
foreach ($nodesWithLocations as $node) {
|
||||||
|
DB::table('nodes')
|
||||||
|
->where('id', $node->id)
|
||||||
|
->update(['tags' => "[\"$node->short\"]"]);
|
||||||
|
}
|
||||||
|
|
||||||
Schema::table('nodes', function (Blueprint $table) {
|
Schema::table('nodes', function (Blueprint $table) {
|
||||||
$table->dropForeign('nodes_location_id_foreign');
|
$table->dropForeign('nodes_location_id_foreign');
|
||||||
|
$table->dropColumn('location_id');
|
||||||
});
|
});
|
||||||
|
|
||||||
Schema::drop('locations');
|
Schema::drop('locations');
|
||||||
@ -22,9 +38,7 @@ return new class extends Migration
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// Not really reversible, but...
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::create('locations', function (Blueprint $table) {
|
Schema::create('locations', function (Blueprint $table) {
|
||||||
@ -34,6 +48,11 @@ return new class extends Migration
|
|||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Schema::table('nodes', function (Blueprint $table) {
|
||||||
|
$table->unsignedInteger('location_id')->default(0);
|
||||||
|
$table->foreign('location_id')->references('id')->on('locations');
|
||||||
|
});
|
||||||
|
|
||||||
Schema::table('api_keys', function (Blueprint $table) {
|
Schema::table('api_keys', function (Blueprint $table) {
|
||||||
$table->unsignedTinyInteger('r_locations')->default(0);
|
$table->unsignedTinyInteger('r_locations')->default(0);
|
||||||
});
|
});
|
||||||
|
130
lang/es/activity.php
Normal file
130
lang/es/activity.php
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains all of the translation strings for different activity log
|
||||||
|
* events. These should be keyed by the value in front of the colon (:)
|
||||||
|
* in the event name. If there is no colon present, they should live at
|
||||||
|
* the top level.
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
'auth' => [
|
||||||
|
'fail' => 'Inicio de sesión fallido',
|
||||||
|
'success' => 'Sesión iniciada',
|
||||||
|
'password-reset' => 'Restablecimiento de contraseña',
|
||||||
|
'reset-password' => 'Solicitud de restablecimiento de contraseña',
|
||||||
|
'checkpoint' => 'Solicitud de autenticación de dos factores',
|
||||||
|
'recovery-token' => 'Token de recuperación de dos factores utilizado',
|
||||||
|
'token' => 'Resuelto desafío de dos factores',
|
||||||
|
'ip-blocked' => 'Solicitud bloqueada desde la dirección IP no listada para :identifier',
|
||||||
|
'sftp' => [
|
||||||
|
'fail' => 'Inicio de sesión SFTP fallido',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'user' => [
|
||||||
|
'account' => [
|
||||||
|
'email-changed' => 'Cambio de correo electrónico de :old a :new',
|
||||||
|
'password-changed' => 'Contraseña cambiada',
|
||||||
|
],
|
||||||
|
'api-key' => [
|
||||||
|
'create' => 'Se creó una nueva clave API :identifier',
|
||||||
|
'delete' => 'Se eliminó la clave API :identifier',
|
||||||
|
],
|
||||||
|
'ssh-key' => [
|
||||||
|
'create' => 'Se agregó la clave SSH :fingerprint a la cuenta',
|
||||||
|
'delete' => 'Se eliminó la clave SSH :fingerprint de la cuenta',
|
||||||
|
],
|
||||||
|
'two-factor' => [
|
||||||
|
'create' => 'Se habilitó la autenticación de dos factores',
|
||||||
|
'delete' => 'Se deshabilitó la autenticación de dos factores',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'server' => [
|
||||||
|
'reinstall' => 'Servidor reinstalado',
|
||||||
|
'console' => [
|
||||||
|
'command' => 'Ejecutado ":command" en el servidor',
|
||||||
|
],
|
||||||
|
'power' => [
|
||||||
|
'start' => 'Iniciado el servidor',
|
||||||
|
'stop' => 'Detenido el servidor',
|
||||||
|
'restart' => 'Reiniciado el servidor',
|
||||||
|
'kill' => 'Finalizado el proceso del servidor',
|
||||||
|
],
|
||||||
|
'backup' => [
|
||||||
|
'download' => 'Descargada la copia de seguridad :name',
|
||||||
|
'delete' => 'Eliminada la copia de seguridad :name',
|
||||||
|
'restore' => 'Restaurada la copia de seguridad :name (archivos eliminados: :truncate)',
|
||||||
|
'restore-complete' => 'Restauración completa de la copia de seguridad :name',
|
||||||
|
'restore-failed' => 'Falló la restauración de la copia de seguridad :name',
|
||||||
|
'start' => 'Iniciada una nueva copia de seguridad :name',
|
||||||
|
'complete' => 'Marcada la copia de seguridad :name como completada',
|
||||||
|
'fail' => 'Marcada la copia de seguridad :name como fallida',
|
||||||
|
'lock' => 'Bloqueada la copia de seguridad :name',
|
||||||
|
'unlock' => 'Desbloqueada la copia de seguridad :name',
|
||||||
|
],
|
||||||
|
'database' => [
|
||||||
|
'create' => 'Creada nueva base de datos :name',
|
||||||
|
'rotate-password' => 'Contraseña rotada para la base de datos :name',
|
||||||
|
'delete' => 'Eliminada la base de datos :name',
|
||||||
|
],
|
||||||
|
'file' => [
|
||||||
|
'compress_one' => 'Comprimido :directory:file',
|
||||||
|
'compress_other' => 'Comprimidos :count archivos en :directory',
|
||||||
|
'read' => 'Visto el contenido de :file',
|
||||||
|
'copy' => 'Creada una copia de :file',
|
||||||
|
'create-directory' => 'Creado directorio :directory:name',
|
||||||
|
'decompress' => 'Descomprimidos :files en :directory',
|
||||||
|
'delete_one' => 'Eliminado :directory:files.0',
|
||||||
|
'delete_other' => 'Eliminados :count archivos en :directory',
|
||||||
|
'download' => 'Descargado :file',
|
||||||
|
'pull' => 'Descargado un archivo remoto desde :url a :directory',
|
||||||
|
'rename_one' => 'Renombrado :directory:files.0.from a :directory:files.0.to',
|
||||||
|
'rename_other' => 'Renombrados :count archivos en :directory',
|
||||||
|
'write' => 'Escrito nuevo contenido en :file',
|
||||||
|
'upload' => 'Iniciada una carga de archivo',
|
||||||
|
'uploaded' => 'Cargado :directory:file',
|
||||||
|
],
|
||||||
|
'sftp' => [
|
||||||
|
'denied' => 'Acceso SFTP bloqueado debido a permisos',
|
||||||
|
'create_one' => 'Creado :files.0',
|
||||||
|
'create_other' => 'Creados :count nuevos archivos',
|
||||||
|
'write_one' => 'Modificado el contenido de :files.0',
|
||||||
|
'write_other' => 'Modificado el contenido de :count archivos',
|
||||||
|
'delete_one' => 'Eliminado :files.0',
|
||||||
|
'delete_other' => 'Eliminados :count archivos',
|
||||||
|
'create-directory_one' => 'Creado el directorio :files.0',
|
||||||
|
'create-directory_other' => 'Creados :count directorios',
|
||||||
|
'rename_one' => 'Renombrado :files.0.from a :files.0.to',
|
||||||
|
'rename_other' => 'Renombrados o movidos :count archivos',
|
||||||
|
],
|
||||||
|
'allocation' => [
|
||||||
|
'create' => 'Añadida :allocation al servidor',
|
||||||
|
'notes' => 'Actualizadas las notas para :allocation de ":old" a ":new"',
|
||||||
|
'primary' => 'Establecida :allocation como la asignación primaria del servidor',
|
||||||
|
'delete' => 'Eliminada la asignación :allocation',
|
||||||
|
],
|
||||||
|
'schedule' => [
|
||||||
|
'create' => 'Creado el horario :name',
|
||||||
|
'update' => 'Actualizado el horario :name',
|
||||||
|
'execute' => 'Ejecutado manualmente el horario :name',
|
||||||
|
'delete' => 'Eliminado el horario :name',
|
||||||
|
],
|
||||||
|
'task' => [
|
||||||
|
'create' => 'Creada una nueva tarea ":action" para el horario :name',
|
||||||
|
'update' => 'Actualizada la tarea ":action" para el horario :name',
|
||||||
|
'delete' => 'Eliminada una tarea para el horario :name',
|
||||||
|
],
|
||||||
|
'settings' => [
|
||||||
|
'rename' => 'Renombrado el servidor de :old a :new',
|
||||||
|
'description' => 'Cambiada la descripción del servidor de :old a :new',
|
||||||
|
],
|
||||||
|
'startup' => [
|
||||||
|
'edit' => 'Cambiada la variable :variable de ":old" a ":new"',
|
||||||
|
'image' => 'Actualizada la imagen de Docker del servidor de :old a :new',
|
||||||
|
],
|
||||||
|
'subuser' => [
|
||||||
|
'create' => 'Añadido :email como subusuario',
|
||||||
|
'update' => 'Actualizados los permisos del subusuario :email',
|
||||||
|
'delete' => 'Eliminado :email como subusuario',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
19
lang/es/admin/eggs.php
Normal file
19
lang/es/admin/eggs.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'notices' => [
|
||||||
|
'imported' => 'El Egg y sus variables asociadas se importaron correctamente.',
|
||||||
|
'updated_via_import' => 'Este Egg se ha actualizado utilizando el archivo proporcionado.',
|
||||||
|
'deleted' => 'Se eliminó correctamente el Egg solicitado del Panel.',
|
||||||
|
'updated' => 'La configuración del Egg se ha actualizado correctamente.',
|
||||||
|
'script_updated' => 'El script de instalación del Egg se ha actualizado y se ejecutará cada vez que se instalen servidores.',
|
||||||
|
'egg_created' => 'Se ha creado un nuevo Egg correctamente. Deberás reiniciar cualquier daemon en ejecución para aplicar este nuevo Egg.',
|
||||||
|
],
|
||||||
|
'variables' => [
|
||||||
|
'notices' => [
|
||||||
|
'variable_deleted' => 'La variable ":variable" se ha eliminado y ya no estará disponible para los servidores una vez reconstruidos.',
|
||||||
|
'variable_updated' => 'La variable ":variable" se ha actualizado. Deberás reconstruir cualquier servidor que utilice esta variable para aplicar los cambios.',
|
||||||
|
'variable_created' => 'Se ha creado correctamente una nueva variable y se ha asignado a este Egg.',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
15
lang/es/admin/node.php
Normal file
15
lang/es/admin/node.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'validation' => [
|
||||||
|
'fqdn_not_resolvable' => 'El FQDN o la dirección IP proporcionada no se resuelve a una dirección IP válida.',
|
||||||
|
'fqdn_required_for_ssl' => 'Se requiere un nombre de dominio completo que se resuelva a una dirección IP pública para poder utilizar SSL en este nodo.',
|
||||||
|
],
|
||||||
|
'notices' => [
|
||||||
|
'allocations_added' => 'Se han añadido correctamente las asignaciones a este nodo.',
|
||||||
|
'node_deleted' => 'El nodo se ha eliminado correctamente del panel.',
|
||||||
|
'node_created' => 'Se ha creado correctamente un nuevo nodo. Puedes configurar automáticamente el daemon en esta máquina visitando la pestaña \'Configuración\'. <strong>Antes de poder añadir cualquier servidor, primero debes asignar al menos una dirección IP y puerto.</strong>',
|
||||||
|
'node_updated' => 'Se ha actualizado la información del nodo. Si se cambiaron ajustes del daemon, necesitarás reiniciarlo para que los cambios surtan efecto.',
|
||||||
|
'unallocated_deleted' => 'Se han eliminado todos los puertos no asignados para <code>:ip</code>.',
|
||||||
|
],
|
||||||
|
];
|
27
lang/es/admin/server.php
Normal file
27
lang/es/admin/server.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exceptions' => [
|
||||||
|
'no_new_default_allocation' => 'Estás intentando eliminar la asignación predeterminada para este servidor pero no hay una asignación de respaldo para usar.',
|
||||||
|
'marked_as_failed' => 'Este servidor fue marcado como que ha fallado en una instalación anterior. El estado actual no se puede cambiar en este estado.',
|
||||||
|
'bad_variable' => 'Hubo un error de validación con la variable :name.',
|
||||||
|
'daemon_exception' => 'Hubo una excepción al intentar comunicarse con el daemon que resultó en un código de respuesta HTTP/:code. Esta excepción ha sido registrada. (ID de solicitud: :request_id)',
|
||||||
|
'default_allocation_not_found' => 'La asignación predeterminada solicitada no se encontró en las asignaciones de este servidor.',
|
||||||
|
],
|
||||||
|
'alerts' => [
|
||||||
|
'startup_changed' => 'La configuración de inicio de este servidor se ha actualizado. Si se cambió el huevo de este servidor, se iniciará una reinstalación ahora.',
|
||||||
|
'server_deleted' => 'El servidor se ha eliminado correctamente del sistema.',
|
||||||
|
'server_created' => 'El servidor se ha creado correctamente en el panel. Por favor, permite al daemon unos minutos para instalar completamente este servidor.',
|
||||||
|
'build_updated' => 'Los detalles de construcción para este servidor se han actualizado. Algunos cambios pueden requerir un reinicio para surtir efecto.',
|
||||||
|
'suspension_toggled' => 'El estado de suspensión del servidor se ha cambiado a :status.',
|
||||||
|
'rebuild_on_boot' => 'Este servidor se ha marcado como que requiere una reconstrucción del contenedor Docker. Esto ocurrirá la próxima vez que se inicie el servidor.',
|
||||||
|
'install_toggled' => 'El estado de instalación para este servidor se ha cambiado.',
|
||||||
|
'server_reinstalled' => 'Este servidor ha sido encolado para una reinstalación que comienza ahora.',
|
||||||
|
'details_updated' => 'Los detalles del servidor se han actualizado correctamente.',
|
||||||
|
'docker_image_updated' => 'Se cambió con éxito la imagen Docker predeterminada para usar en este servidor. Se requiere un reinicio para aplicar este cambio.',
|
||||||
|
'node_required' => 'Debes tener al menos un nodo configurado antes de poder añadir un servidor a este panel.',
|
||||||
|
'transfer_nodes_required' => 'Debes tener al menos dos nodos configurados antes de poder transferir servidores.',
|
||||||
|
'transfer_started' => 'La transferencia del servidor se ha iniciado.',
|
||||||
|
'transfer_not_viable' => 'El nodo que seleccionaste no tiene el espacio en disco o la memoria disponible requerida para acomodar este servidor.',
|
||||||
|
],
|
||||||
|
];
|
12
lang/es/admin/user.php
Normal file
12
lang/es/admin/user.php
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exceptions' => [
|
||||||
|
'user_has_servers' => 'No se puede eliminar un usuario con servidores activos asociados a su cuenta. Por favor, elimina sus servidores antes de continuar.',
|
||||||
|
'user_is_self' => 'No se puede eliminar tu propia cuenta de usuario.',
|
||||||
|
],
|
||||||
|
'notices' => [
|
||||||
|
'account_created' => 'La cuenta se ha creado correctamente.',
|
||||||
|
'account_updated' => 'La cuenta se ha actualizado correctamente.',
|
||||||
|
],
|
||||||
|
];
|
27
lang/es/auth.php
Normal file
27
lang/es/auth.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'sign_in' => 'Iniciar sesión',
|
||||||
|
'go_to_login' => 'Ir al inicio de sesión',
|
||||||
|
'failed' => 'No se pudo encontrar ninguna cuenta que coincida con esas credenciales.',
|
||||||
|
|
||||||
|
'forgot_password' => [
|
||||||
|
'label' => '¿Olvidaste tu contraseña?',
|
||||||
|
'label_help' => 'Ingresa la dirección de correo electrónico de tu cuenta para recibir instrucciones sobre cómo restablecer tu contraseña.',
|
||||||
|
'button' => 'Recuperar cuenta',
|
||||||
|
],
|
||||||
|
|
||||||
|
'reset_password' => [
|
||||||
|
'button' => 'Restablecer e iniciar sesión',
|
||||||
|
],
|
||||||
|
|
||||||
|
'two_factor' => [
|
||||||
|
'label' => 'Token de 2 Factores',
|
||||||
|
'label_help' => 'Esta cuenta requiere un segundo nivel de autenticación para continuar. Por favor, ingresa el código generado por tu dispositivo para completar este inicio de sesión.',
|
||||||
|
'checkpoint_failed' => 'El token de autenticación de dos factores no era válido.',
|
||||||
|
],
|
||||||
|
|
||||||
|
'throttle' => 'Demasiados intentos de inicio de sesión. Por favor, inténtalo de nuevo en :seconds segundos.',
|
||||||
|
'password_requirements' => 'La contraseña debe tener al menos 8 caracteres de longitud y debe ser única para este sitio.',
|
||||||
|
'2fa_must_be_enabled' => 'El administrador ha requerido que la Autenticación de 2 Factores esté habilitada para tu cuenta para poder usar el Panel.',
|
||||||
|
];
|
59
lang/es/command/messages.php
Normal file
59
lang/es/command/messages.php
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'user' => [
|
||||||
|
'search_users' => 'Introduce un nombre de usuario, ID de usuario o dirección de correo electrónico',
|
||||||
|
'select_search_user' => 'ID del usuario a eliminar (Introduce \'0\' para volver a buscar)',
|
||||||
|
'deleted' => 'Usuario eliminado correctamente del Panel.',
|
||||||
|
'confirm_delete' => '¿Estás seguro de que quieres eliminar este usuario del Panel?',
|
||||||
|
'no_users_found' => 'No se encontraron usuarios para el término de búsqueda proporcionado.',
|
||||||
|
'multiple_found' => 'Se encontraron varias cuentas para el usuario proporcionado, no se puede eliminar un usuario debido a la bandera --no-interaction.',
|
||||||
|
'ask_admin' => '¿Es este usuario un administrador?',
|
||||||
|
'ask_email' => 'Dirección de correo electrónico',
|
||||||
|
'ask_username' => 'Nombre de usuario',
|
||||||
|
'ask_name_first' => 'Nombre',
|
||||||
|
'ask_name_last' => 'Apellido',
|
||||||
|
'ask_password' => 'Contraseña',
|
||||||
|
'ask_password_tip' => 'Si deseas crear una cuenta con una contraseña aleatoria enviada por correo electrónico al usuario, vuelve a ejecutar este comando (CTRL+C) y pasa la bandera `--no-password`.',
|
||||||
|
'ask_password_help' => 'Las contraseñas deben tener al menos 8 caracteres de longitud y contener al menos una letra mayúscula y un número.',
|
||||||
|
'2fa_help_text' => [
|
||||||
|
'Este comando deshabilitará la autenticación de dos factores para la cuenta de un usuario si está habilitada. Esto solo debe usarse como un comando de recuperación de cuenta si el usuario está bloqueado fuera de su cuenta.',
|
||||||
|
'Si esto no es lo que querías hacer, presiona CTRL+C para salir de este proceso.',
|
||||||
|
],
|
||||||
|
'2fa_disabled' => 'La autenticación de dos factores ha sido desactivada para :email.',
|
||||||
|
],
|
||||||
|
'schedule' => [
|
||||||
|
'output_line' => 'Enviando trabajo para la primera tarea en `:schedule` (:hash).',
|
||||||
|
],
|
||||||
|
'maintenance' => [
|
||||||
|
'deleting_service_backup' => 'Eliminando archivo de copia de seguridad del servicio :file.',
|
||||||
|
],
|
||||||
|
'server' => [
|
||||||
|
'rebuild_failed' => 'La solicitud de reconstrucción para ":name" (#:id) en el nodo ":node" falló con el error: :message',
|
||||||
|
'reinstall' => [
|
||||||
|
'failed' => 'La solicitud de reinstalación para ":name" (#:id) en el nodo ":node" falló con el error: :message',
|
||||||
|
'confirm' => 'Estás a punto de reinstalar contra un grupo de servidores. ¿Deseas continuar?',
|
||||||
|
],
|
||||||
|
'power' => [
|
||||||
|
'confirm' => 'Estás a punto de realizar una :action contra :count servidores. ¿Deseas continuar?',
|
||||||
|
'action_failed' => 'La acción de energía para ":name" (#:id) en el nodo ":node" falló con el error: :message',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'environment' => [
|
||||||
|
'mail' => [
|
||||||
|
'ask_smtp_host' => 'Host SMTP (por ejemplo, smtp.gmail.com)',
|
||||||
|
'ask_smtp_port' => 'Puerto SMTP',
|
||||||
|
'ask_smtp_username' => 'Nombre de usuario SMTP',
|
||||||
|
'ask_smtp_password' => 'Contraseña SMTP',
|
||||||
|
'ask_mailgun_domain' => 'Dominio de Mailgun',
|
||||||
|
'ask_mailgun_endpoint' => 'Extremo de Mailgun',
|
||||||
|
'ask_mailgun_secret' => 'Secreto de Mailgun',
|
||||||
|
'ask_mandrill_secret' => 'Secreto de Mandrill',
|
||||||
|
'ask_postmark_username' => 'Clave API de Postmark',
|
||||||
|
'ask_driver' => '¿Qué controlador debe usarse para enviar correos electrónicos?',
|
||||||
|
'ask_mail_from' => 'Dirección de correo electrónico desde la cual deben originarse los correos electrónicos',
|
||||||
|
'ask_mail_name' => 'Nombre que debe aparecer en los correos electrónicos',
|
||||||
|
'ask_encryption' => 'Método de cifrado a utilizar',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
28
lang/es/dashboard/account.php
Normal file
28
lang/es/dashboard/account.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'email' => [
|
||||||
|
'title' => 'Actualizar tu correo electrónico',
|
||||||
|
'updated' => 'Tu dirección de correo electrónico ha sido actualizada.',
|
||||||
|
],
|
||||||
|
'password' => [
|
||||||
|
'title' => 'Cambiar tu contraseña',
|
||||||
|
'requirements' => 'Tu nueva contraseña debe tener al menos 8 caracteres de longitud.',
|
||||||
|
'updated' => 'Tu contraseña ha sido actualizada.',
|
||||||
|
],
|
||||||
|
'two_factor' => [
|
||||||
|
'button' => 'Configurar autenticación de 2 factores',
|
||||||
|
'disabled' => 'La autenticación de dos factores ha sido desactivada en tu cuenta. Ya no se te pedirá que proporciones un token al iniciar sesión.',
|
||||||
|
'enabled' => '¡La autenticación de dos factores ha sido activada en tu cuenta! A partir de ahora, al iniciar sesión, se te pedirá que proporciones el código generado por tu dispositivo.',
|
||||||
|
'invalid' => 'El token proporcionado no era válido.',
|
||||||
|
'setup' => [
|
||||||
|
'title' => 'Configurar autenticación de dos factores',
|
||||||
|
'help' => '¿No puedes escanear el código? Ingresa el código a continuación en tu aplicación:',
|
||||||
|
'field' => 'Introduce el token',
|
||||||
|
],
|
||||||
|
'disable' => [
|
||||||
|
'title' => 'Desactivar autenticación de dos factores',
|
||||||
|
'field' => 'Introduce el token',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
8
lang/es/dashboard/index.php
Normal file
8
lang/es/dashboard/index.php
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'search' => 'Buscar servidores...',
|
||||||
|
'no_matches' => 'No se encontraron servidores que coincidan con los criterios de búsqueda proporcionados.',
|
||||||
|
'cpu_title' => 'CPU',
|
||||||
|
'memory_title' => 'Memoria',
|
||||||
|
];
|
55
lang/es/exceptions.php
Normal file
55
lang/es/exceptions.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'daemon_connection_failed' => 'Se produjo una excepción al intentar comunicarse con el daemon, lo que resultó en un código de respuesta HTTP/:code. Esta excepción ha sido registrada.',
|
||||||
|
'node' => [
|
||||||
|
'servers_attached' => 'Un nodo no debe tener servidores vinculados a él para poder ser eliminado.',
|
||||||
|
'daemon_off_config_updated' => 'La configuración del daemon <strong>se ha actualizado</strong>, sin embargo, se encontró un error al intentar actualizar automáticamente el archivo de configuración en el daemon. Deberás actualizar manualmente el archivo de configuración (config.yml) para que el daemon aplique estos cambios.',
|
||||||
|
],
|
||||||
|
'allocations' => [
|
||||||
|
'server_using' => 'Actualmente hay un servidor asignado a esta asignación. Una asignación solo puede ser eliminada si ningún servidor está asignado actualmente.',
|
||||||
|
'too_many_ports' => 'Agregar más de 1000 puertos en un solo rango a la vez no está soportado.',
|
||||||
|
'invalid_mapping' => 'El mapeo proporcionado para el puerto :port era inválido y no pudo ser procesado.',
|
||||||
|
'cidr_out_of_range' => 'La notación CIDR solo permite máscaras entre /25 y /32.',
|
||||||
|
'port_out_of_range' => 'Los puertos en una asignación deben ser mayores que 1024 y menores o iguales a 65535.',
|
||||||
|
],
|
||||||
|
'egg' => [
|
||||||
|
'delete_has_servers' => 'Un Huevo con servidores activos vinculados a él no puede ser eliminado del Panel.',
|
||||||
|
'invalid_copy_id' => 'El Huevo seleccionado para copiar un script desde no existe o está copiando un script en sí mismo.',
|
||||||
|
'has_children' => 'Este Huevo es padre de uno o más otros Huevos. Por favor, elimina esos Huevos antes de eliminar este Huevo.',
|
||||||
|
],
|
||||||
|
'variables' => [
|
||||||
|
'env_not_unique' => 'La variable de entorno :name debe ser única para este Huevo.',
|
||||||
|
'reserved_name' => 'La variable de entorno :name está protegida y no se puede asignar a una variable.',
|
||||||
|
'bad_validation_rule' => 'La regla de validación ":rule" no es una regla válida para esta aplicación.',
|
||||||
|
],
|
||||||
|
'importer' => [
|
||||||
|
'json_error' => 'Hubo un error al intentar analizar el archivo JSON: :error.',
|
||||||
|
'file_error' => 'El archivo JSON proporcionado no era válido.',
|
||||||
|
'invalid_json_provided' => 'El archivo JSON proporcionado no está en un formato que pueda ser reconocido.',
|
||||||
|
],
|
||||||
|
'subusers' => [
|
||||||
|
'editing_self' => 'No está permitido editar tu propia cuenta de subusuario.',
|
||||||
|
'user_is_owner' => 'No puedes agregar al propietario del servidor como subusuario para este servidor.',
|
||||||
|
'subuser_exists' => 'Ya hay un usuario con esa dirección de correo electrónico asignado como subusuario para este servidor.',
|
||||||
|
],
|
||||||
|
'databases' => [
|
||||||
|
'delete_has_databases' => 'No se puede eliminar un servidor de host de base de datos que tiene bases de datos activas vinculadas a él.',
|
||||||
|
],
|
||||||
|
'tasks' => [
|
||||||
|
'chain_interval_too_long' => 'El tiempo máximo de intervalo para una tarea encadenada es de 15 minutos.',
|
||||||
|
],
|
||||||
|
'locations' => [
|
||||||
|
'has_nodes' => 'No se puede eliminar una ubicación que tiene nodos activos vinculados a ella.',
|
||||||
|
],
|
||||||
|
'users' => [
|
||||||
|
'node_revocation_failed' => 'Error al revocar las claves en <a href=":link">Nodo #:node</a>. :error',
|
||||||
|
],
|
||||||
|
'deployment' => [
|
||||||
|
'no_viable_nodes' => 'No se encontraron nodos que satisfagan los requisitos especificados para el despliegue automático.',
|
||||||
|
'no_viable_allocations' => 'No se encontraron asignaciones que satisfagan los requisitos para el despliegue automático.',
|
||||||
|
],
|
||||||
|
'api' => [
|
||||||
|
'resource_not_found' => 'El recurso solicitado no existe en este servidor.',
|
||||||
|
],
|
||||||
|
];
|
17
lang/es/pagination.php
Normal file
17
lang/es/pagination.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Pagination Language Lines
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following language lines are used by the paginator library to build
|
||||||
|
| the simple pagination links. You are free to change them to anything
|
||||||
|
| you want to customize your views to better match your application.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'previous' => '« Anterior',
|
||||||
|
'next' => 'Siguiente »',
|
||||||
|
];
|
19
lang/es/passwords.php
Normal file
19
lang/es/passwords.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Password Reset Language Lines
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following language lines are the default lines which match reasons
|
||||||
|
| that are given by the password broker for a password update attempt
|
||||||
|
| has failed, such as for an invalid token or invalid new password.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
'password' => 'Las contraseñas deben tener al menos seis caracteres y coincidir con la confirmación.',
|
||||||
|
'reset' => '¡Tu contraseña ha sido restablecida!',
|
||||||
|
'sent' => '¡Hemos enviado por correo electrónico el enlace para restablecer tu contraseña!',
|
||||||
|
'token' => 'Este token de restablecimiento de contraseña no es válido.',
|
||||||
|
'user' => 'No podemos encontrar un usuario con esa dirección de correo electrónico.',
|
||||||
|
];
|
33
lang/es/server/users.php
Normal file
33
lang/es/server/users.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'permissions' => [
|
||||||
|
'websocket_*' => 'Permite el acceso al websocket para este servidor.',
|
||||||
|
'control_console' => 'Permite al usuario enviar datos a la consola del servidor.',
|
||||||
|
'control_start' => 'Permite al usuario iniciar la instancia del servidor.',
|
||||||
|
'control_stop' => 'Permite al usuario detener la instancia del servidor.',
|
||||||
|
'control_restart' => 'Permite al usuario reiniciar la instancia del servidor.',
|
||||||
|
'control_kill' => 'Permite al usuario eliminar la instancia del servidor.',
|
||||||
|
'user_create' => 'Permite al usuario crear nuevas cuentas de usuario para el servidor.',
|
||||||
|
'user_read' => 'Permite al usuario ver los usuarios asociados con este servidor.',
|
||||||
|
'user_update' => 'Permite al usuario modificar otros usuarios asociados con este servidor.',
|
||||||
|
'user_delete' => 'Permite al usuario eliminar otros usuarios asociados con este servidor.',
|
||||||
|
'file_create' => 'Permite al usuario crear nuevos archivos y directorios.',
|
||||||
|
'file_read' => 'Permite al usuario ver archivos y carpetas asociados con esta instancia de servidor, así como ver su contenido.',
|
||||||
|
'file_update' => 'Permite al usuario actualizar archivos y carpetas asociados con el servidor.',
|
||||||
|
'file_delete' => 'Permite al usuario eliminar archivos y directorios.',
|
||||||
|
'file_archive' => 'Permite al usuario crear archivos de archivos y descomprimir archivos existentes.',
|
||||||
|
'file_sftp' => 'Permite al usuario realizar las acciones de archivo anteriores utilizando un cliente SFTP.',
|
||||||
|
'allocation_read' => 'Permite el acceso a las páginas de gestión de asignación del servidor.',
|
||||||
|
'allocation_update' => 'Permite al usuario realizar modificaciones en las asignaciones del servidor.',
|
||||||
|
'database_create' => 'Permite al usuario crear una nueva base de datos para el servidor.',
|
||||||
|
'database_read' => 'Permite al usuario ver las bases de datos del servidor.',
|
||||||
|
'database_update' => 'Permite al usuario realizar modificaciones en una base de datos. Si el usuario no tiene también el permiso de "Ver contraseña", no podrá modificar la contraseña.',
|
||||||
|
'database_delete' => 'Permite al usuario eliminar una instancia de base de datos.',
|
||||||
|
'database_view_password' => 'Permite al usuario ver la contraseña de una base de datos en el sistema.',
|
||||||
|
'schedule_create' => 'Permite al usuario crear un nuevo horario para el servidor.',
|
||||||
|
'schedule_read' => 'Permite al usuario ver los horarios de un servidor.',
|
||||||
|
'schedule_update' => 'Permite al usuario realizar modificaciones en un horario existente del servidor.',
|
||||||
|
'schedule_delete' => 'Permite al usuario eliminar un horario del servidor.',
|
||||||
|
],
|
||||||
|
];
|
95
lang/es/strings.php
Normal file
95
lang/es/strings.php
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'email' => 'Correo electrónico',
|
||||||
|
'email_address' => 'Dirección de correo electrónico',
|
||||||
|
'user_identifier' => 'Nombre de usuario o Correo electrónico',
|
||||||
|
'password' => 'Contraseña',
|
||||||
|
'new_password' => 'Nueva contraseña',
|
||||||
|
'confirm_password' => 'Confirmar nueva contraseña',
|
||||||
|
'login' => 'Iniciar sesión',
|
||||||
|
'home' => 'Inicio',
|
||||||
|
'servers' => 'Servidores',
|
||||||
|
'id' => 'ID',
|
||||||
|
'name' => 'Nombre',
|
||||||
|
'node' => 'Nodo',
|
||||||
|
'connection' => 'Conexión',
|
||||||
|
'memory' => 'Memoria',
|
||||||
|
'cpu' => 'CPU',
|
||||||
|
'disk' => 'Disco',
|
||||||
|
'status' => 'Estado',
|
||||||
|
'search' => 'Buscar',
|
||||||
|
'suspended' => 'Suspendido',
|
||||||
|
'account' => 'Cuenta',
|
||||||
|
'security' => 'Seguridad',
|
||||||
|
'ip' => 'Dirección IP',
|
||||||
|
'last_activity' => 'Última Actividad',
|
||||||
|
'revoke' => 'Revocar',
|
||||||
|
'2fa_token' => 'Token de Autenticación',
|
||||||
|
'submit' => 'Enviar',
|
||||||
|
'close' => 'Cerrar',
|
||||||
|
'settings' => 'Ajustes',
|
||||||
|
'configuration' => 'Configuración',
|
||||||
|
'sftp' => 'SFTP',
|
||||||
|
'databases' => 'Bases de Datos',
|
||||||
|
'memo' => 'Nota',
|
||||||
|
'created' => 'Creado',
|
||||||
|
'expires' => 'Caduca',
|
||||||
|
'public_key' => 'Token',
|
||||||
|
'api_access' => 'Acceso API',
|
||||||
|
'never' => 'nunca',
|
||||||
|
'sign_out' => 'Cerrar sesión',
|
||||||
|
'admin_control' => 'Control de Administrador',
|
||||||
|
'required' => 'Requerido',
|
||||||
|
'port' => 'Puerto',
|
||||||
|
'username' => 'Nombre de usuario',
|
||||||
|
'database' => 'Base de datos',
|
||||||
|
'new' => 'Nuevo',
|
||||||
|
'danger' => 'Peligro',
|
||||||
|
'create' => 'Crear',
|
||||||
|
'select_all' => 'Seleccionar Todo',
|
||||||
|
'select_none' => 'Seleccionar Ninguno',
|
||||||
|
'alias' => 'Alias',
|
||||||
|
'primary' => 'Principal',
|
||||||
|
'make_primary' => 'Hacer Principal',
|
||||||
|
'none' => 'Ninguno',
|
||||||
|
'cancel' => 'Cancelar',
|
||||||
|
'created_at' => 'Creado en',
|
||||||
|
'action' => 'Acción',
|
||||||
|
'data' => 'Datos',
|
||||||
|
'queued' => 'En cola',
|
||||||
|
'last_run' => 'Última Ejecución',
|
||||||
|
'next_run' => 'Próxima Ejecución',
|
||||||
|
'not_run_yet' => 'Todavía no se ha ejecutado',
|
||||||
|
'yes' => 'Sí',
|
||||||
|
'no' => 'No',
|
||||||
|
'delete' => 'Eliminar',
|
||||||
|
'2fa' => '2FA',
|
||||||
|
'logout' => 'Cerrar sesión',
|
||||||
|
'admin_cp' => 'Panel de Control de Administrador',
|
||||||
|
'optional' => 'Opcional',
|
||||||
|
'read_only' => 'Solo Lectura',
|
||||||
|
'relation' => 'Relación',
|
||||||
|
'owner' => 'Propietario',
|
||||||
|
'admin' => 'Administrador',
|
||||||
|
'subuser' => 'Subusuario',
|
||||||
|
'captcha_invalid' => 'El captcha proporcionado no es válido.',
|
||||||
|
'tasks' => 'Tareas',
|
||||||
|
'seconds' => 'Segundos',
|
||||||
|
'minutes' => 'Minutos',
|
||||||
|
'under_maintenance' => 'En Mantenimiento',
|
||||||
|
'days' => [
|
||||||
|
'sun' => 'Domingo',
|
||||||
|
'mon' => 'Lunes',
|
||||||
|
'tues' => 'Martes',
|
||||||
|
'wed' => 'Miércoles',
|
||||||
|
'thurs' => 'Jueves',
|
||||||
|
'fri' => 'Viernes',
|
||||||
|
'sat' => 'Sábado',
|
||||||
|
],
|
||||||
|
'last_used' => 'Último Uso',
|
||||||
|
'enable' => 'Activar',
|
||||||
|
'disable' => 'Desactivar',
|
||||||
|
'save' => 'Guardar',
|
||||||
|
'copyright' => '® 2024 - :year Pelican',
|
||||||
|
];
|
106
lang/es/validation.php
Normal file
106
lang/es/validation.php
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Validation Language Lines
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following language lines contain the default error messages used by
|
||||||
|
| the validator class. Some of these rules have multiple versions such
|
||||||
|
| as the size rules. Feel free to tweak each of these messages here.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'accepted' => 'El campo :attribute debe ser aceptado.',
|
||||||
|
'active_url' => 'El campo :attribute no es 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 solo puede contener letras.',
|
||||||
|
'alpha_dash' => 'El campo :attribute solo puede contener letras, números y guiones.',
|
||||||
|
'alpha_num' => 'El campo :attribute solo puede contener letras y números.',
|
||||||
|
'array' => 'El campo :attribute debe ser un conjunto.',
|
||||||
|
'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' => [
|
||||||
|
'numeric' => 'El campo :attribute debe estar entre :min y :max.',
|
||||||
|
'file' => 'El campo :attribute debe tener entre :min y :max kilobytes.',
|
||||||
|
'string' => 'El campo :attribute debe tener entre :min y :max caracteres.',
|
||||||
|
'array' => 'El campo :attribute debe tener entre :min y :max elementos.',
|
||||||
|
],
|
||||||
|
'boolean' => 'El campo :attribute debe ser verdadero o falso.',
|
||||||
|
'confirmed' => 'La confirmación de :attribute no coincide.',
|
||||||
|
'date' => 'El campo :attribute no es una fecha válida.',
|
||||||
|
'date_format' => 'El campo :attribute no coincide con el formato :format.',
|
||||||
|
'different' => 'Los campos :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' => 'Las dimensiones de la imagen :attribute no son válidas.',
|
||||||
|
'distinct' => 'El campo :attribute tiene un valor duplicado.',
|
||||||
|
'email' => 'El campo :attribute debe ser una dirección de correo electrónico válida.',
|
||||||
|
'exists' => 'El :attribute seleccionado no es válido.',
|
||||||
|
'file' => 'El campo :attribute debe ser un archivo.',
|
||||||
|
'filled' => 'El campo :attribute es obligatorio.',
|
||||||
|
'image' => 'El campo :attribute debe ser una imagen.',
|
||||||
|
'in' => 'El :attribute seleccionado no es válido.',
|
||||||
|
'in_array' => 'El campo :attribute no existe en :other.',
|
||||||
|
'integer' => 'El campo :attribute debe ser un número entero.',
|
||||||
|
'ip' => 'El campo :attribute debe ser una dirección IP válida.',
|
||||||
|
'json' => 'El campo :attribute debe ser una cadena JSON válida.',
|
||||||
|
'max' => [
|
||||||
|
'numeric' => 'El campo :attribute no debe ser mayor que :max.',
|
||||||
|
'file' => 'El tamaño del archivo :attribute no debe ser mayor que :max kilobytes.',
|
||||||
|
'string' => 'El campo :attribute no debe contener más de :max caracteres.',
|
||||||
|
'array' => 'El campo :attribute no debe contener más de :max elementos.',
|
||||||
|
],
|
||||||
|
'mimes' => 'El campo :attribute debe ser un archivo del tipo: :values.',
|
||||||
|
'mimetypes' => 'El campo :attribute debe ser un archivo del tipo: :values.',
|
||||||
|
'min' => [
|
||||||
|
'numeric' => 'El campo :attribute debe tener al menos :min.',
|
||||||
|
'file' => 'El tamaño del archivo :attribute debe ser al menos :min kilobytes.',
|
||||||
|
'string' => 'El campo :attribute debe tener al menos :min caracteres.',
|
||||||
|
'array' => 'El campo :attribute debe tener al menos :min elementos.',
|
||||||
|
],
|
||||||
|
'not_in' => 'El campo :attribute seleccionado no es válido.',
|
||||||
|
'numeric' => 'El campo :attribute debe ser un número.',
|
||||||
|
'present' => 'El campo :attribute debe estar presente.',
|
||||||
|
'regex' => 'El formato del campo :attribute no es válido.',
|
||||||
|
'required' => 'El campo :attribute es obligatorio.',
|
||||||
|
'required_if' => 'El campo :attribute es obligatorio cuando :other es :value.',
|
||||||
|
'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á presente.',
|
||||||
|
'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' => [
|
||||||
|
'numeric' => 'El campo :attribute debe ser :size.',
|
||||||
|
'file' => 'El campo :attribute debe tener :size kilobytes.',
|
||||||
|
'string' => 'El campo :attribute debe tener :size caracteres.',
|
||||||
|
'array' => 'El campo :attribute debe contener :size elementos.',
|
||||||
|
],
|
||||||
|
'string' => 'El campo :attribute debe ser una cadena de texto.',
|
||||||
|
'timezone' => 'El campo :attribute debe ser una zona horaria válida.',
|
||||||
|
'unique' => 'El valor del campo :attribute ya ha sido tomado.',
|
||||||
|
'uploaded' => 'La carga del archivo :attribute ha fallado.',
|
||||||
|
'url' => 'El formato de :attribute no es válido.',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Custom Validation Attributes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The following language lines are used to swap attribute place-holders
|
||||||
|
| with something more reader friendly such as E-Mail Address instead
|
||||||
|
| of "email". This simply helps us make messages a little cleaner.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'attributes' => [],
|
||||||
|
|
||||||
|
// Internal validation logic for Panel
|
||||||
|
'internal' => [
|
||||||
|
'variable_value' => 'Variable :env',
|
||||||
|
'invalid_password' => 'La contraseña proporcionada no es válida para esta cuenta.',
|
||||||
|
],
|
||||||
|
];
|
4
license
4
license
@ -1,3 +1,7 @@
|
|||||||
|
Pelican Panel is offered under the AGPL-3 license to the open source community.
|
||||||
|
Pelican Panel is alternatively available under a commercial license.
|
||||||
|
Contact team@pelican.dev for information about commercial licensing.
|
||||||
|
|
||||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
Version 3, 19 November 2007
|
Version 3, 19 November 2007
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ const PageContentBlock: React.FC<PageContentBlockProps> = ({ title, showFlashKey
|
|||||||
<p css={tw`text-center text-neutral-500 text-xs`}>
|
<p css={tw`text-center text-neutral-500 text-xs`}>
|
||||||
<a
|
<a
|
||||||
rel={'noopener nofollow noreferrer'}
|
rel={'noopener nofollow noreferrer'}
|
||||||
href={'https://example.com'}
|
href={'https://pelican.dev'}
|
||||||
target={'_blank'}
|
target={'_blank'}
|
||||||
css={tw`no-underline text-neutral-500 hover:text-neutral-300`}
|
css={tw`no-underline text-neutral-500 hover:text-neutral-300`}
|
||||||
>
|
>
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
<a href="{{ $version->getDiscord() }}"><button class="btn btn-warning" style="width:100%;"><i class="fa fa-fw fa-support"></i> Get Help <small>(via Discord)</small></button></a>
|
<a href="{{ $version->getDiscord() }}"><button class="btn btn-warning" style="width:100%;"><i class="fa fa-fw fa-support"></i> Get Help <small>(via Discord)</small></button></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 col-sm-3 text-center">
|
<div class="col-xs-6 col-sm-3 text-center">
|
||||||
<a href="https://example.com"><button class="btn btn-primary" style="width:100%;"><i class="fa fa-fw fa-link"></i> Documentation</button></a>
|
<a href="https://pelican.dev"><button class="btn btn-primary" style="width:100%;"><i class="fa fa-fw fa-link"></i> Documentation</button></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix visible-xs-block"> </div>
|
<div class="clearfix visible-xs-block"> </div>
|
||||||
<div class="col-xs-6 col-sm-3 text-center">
|
<div class="col-xs-6 col-sm-3 text-center">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user