Add Laravel guidelines, Spanish translations, and configuration updates

- Added Laravel Boost Guidelines for structured development practices.
- Introduced Spanish translations for `auth`, `passwords`, and additional JSON keys.
- Configured markdown highlighting with Shiki in `config/markdown.php`.
- Updated sidebar layout for improved interactivity and styling.
- Enhanced user feedback with a copy-to-clipboard directive and toast notifications in Flux.
This commit is contained in:
HolgerHatGarKeineNode
2025-11-21 09:48:30 +01:00
parent c2193233f7
commit 1ef9b62762
22 changed files with 2262 additions and 19 deletions

9
lang/es/auth.php Normal file
View File

@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
return [
'failed' => 'Estas credenciales no coinciden con nuestros registros.',
'password' => 'La contraseña es incorrecta.',
'throttle' => 'Demasiados intentos de acceso. Por favor intente nuevamente en :seconds segundos.',
];

251
lang/es/countries.php Normal file
View File

@@ -0,0 +1,251 @@
<?php return array (
'AF' => 'Afganistán',
'AL' => 'Albania',
'DE' => 'Alemania',
'AD' => 'Andorra',
'AO' => 'Angola',
'AI' => 'Anguila',
'AQ' => 'Antártida',
'AG' => 'Antigua y Barbuda',
'SA' => 'Arabia Saudí',
'DZ' => 'Argelia',
'AR' => 'Argentina',
'AM' => 'Armenia',
'AW' => 'Aruba',
'AU' => 'Australia',
'AT' => 'Austria',
'AZ' => 'Azerbaiyán',
'BS' => 'Bahamas',
'BD' => 'Bangladés',
'BB' => 'Barbados',
'BH' => 'Baréin',
'BE' => 'Bélgica',
'BZ' => 'Belice',
'BJ' => 'Benín',
'BM' => 'Bermudas',
'BY' => 'Bielorrusia',
'BO' => 'Bolivia',
'BA' => 'Bosnia y Herzegovina',
'BW' => 'Botsuana',
'BR' => 'Brasil',
'BN' => 'Brunéi',
'BG' => 'Bulgaria',
'BF' => 'Burkina Faso',
'BI' => 'Burundi',
'BT' => 'Bután',
'CV' => 'Cabo Verde',
'KH' => 'Camboya',
'CM' => 'Camerún',
'CA' => 'Canadá',
'BQ' => 'Caribe neerlandés',
'QA' => 'Catar',
'TD' => 'Chad',
'CZ' => 'Chequia',
'CL' => 'Chile',
'CN' => 'China',
'CY' => 'Chipre',
'VA' => 'Ciudad del Vaticano',
'CO' => 'Colombia',
'KM' => 'Comoras',
'CG' => 'Congo',
'KP' => 'Corea del Norte',
'KR' => 'Corea del Sur',
'CR' => 'Costa Rica',
'CI' => 'Côte dIvoire',
'HR' => 'Croacia',
'CU' => 'Cuba',
'CW' => 'Curazao',
'DK' => 'Dinamarca',
'DM' => 'Dominica',
'EC' => 'Ecuador',
'EG' => 'Egipto',
'SV' => 'El Salvador',
'AE' => 'Emiratos Árabes Unidos',
'ER' => 'Eritrea',
'SK' => 'Eslovaquia',
'SI' => 'Eslovenia',
'ES' => 'España',
'US' => 'Estados Unidos',
'EE' => 'Estonia',
'SZ' => 'Esuatini',
'ET' => 'Etiopía',
'PH' => 'Filipinas',
'FI' => 'Finlandia',
'FJ' => 'Fiyi',
'FR' => 'Francia',
'GA' => 'Gabón',
'GM' => 'Gambia',
'GE' => 'Georgia',
'GH' => 'Ghana',
'GI' => 'Gibraltar',
'GD' => 'Granada',
'GR' => 'Grecia',
'GL' => 'Groenlandia',
'GP' => 'Guadalupe',
'GU' => 'Guam',
'GT' => 'Guatemala',
'GF' => 'Guayana Francesa',
'GG' => 'Guernsey',
'GN' => 'Guinea',
'GQ' => 'Guinea Ecuatorial',
'GW' => 'Guinea-Bisáu',
'GY' => 'Guyana',
'HT' => 'Haití',
'HN' => 'Honduras',
'HU' => 'Hungría',
'IN' => 'India',
'ID' => 'Indonesia',
'IQ' => 'Irak',
'IR' => 'Irán',
'IE' => 'Irlanda',
'BV' => 'Isla Bouvet',
'IM' => 'Isla de Man',
'CX' => 'Isla de Navidad',
'NF' => 'Isla Norfolk',
'IS' => 'Islandia',
'AX' => 'Islas Åland',
'KY' => 'Islas Caimán',
'CC' => 'Islas Cocos',
'CK' => 'Islas Cook',
'FO' => 'Islas Feroe',
'GS' => 'Islas Georgia del Sur y Sandwich del Sur',
'HM' => 'Islas Heard y McDonald',
'FK' => 'Islas Malvinas',
'MP' => 'Islas Marianas del Norte',
'MH' => 'Islas Marshall',
'UM' => 'Islas menores alejadas de EE. UU.',
'PN' => 'Islas Pitcairn',
'SB' => 'Islas Salomón',
'TC' => 'Islas Turcas y Caicos',
'VG' => 'Islas Vírgenes Británicas',
'VI' => 'Islas Vírgenes de EE. UU.',
'IL' => 'Israel',
'IT' => 'Italia',
'JM' => 'Jamaica',
'JP' => 'Japón',
'JE' => 'Jersey',
'JO' => 'Jordania',
'KZ' => 'Kazajistán',
'KE' => 'Kenia',
'KG' => 'Kirguistán',
'KI' => 'Kiribati',
'KW' => 'Kuwait',
'LA' => 'Laos',
'LS' => 'Lesoto',
'LV' => 'Letonia',
'LB' => 'Líbano',
'LR' => 'Liberia',
'LY' => 'Libia',
'LI' => 'Liechtenstein',
'LT' => 'Lituania',
'LU' => 'Luxemburgo',
'MK' => 'Macedonia del Norte',
'MG' => 'Madagascar',
'MY' => 'Malasia',
'MW' => 'Malaui',
'MV' => 'Maldivas',
'ML' => 'Mali',
'MT' => 'Malta',
'MA' => 'Marruecos',
'MQ' => 'Martinica',
'MU' => 'Mauricio',
'MR' => 'Mauritania',
'YT' => 'Mayotte',
'MX' => 'México',
'FM' => 'Micronesia',
'MD' => 'Moldavia',
'MC' => 'Mónaco',
'MN' => 'Mongolia',
'ME' => 'Montenegro',
'MS' => 'Montserrat',
'MZ' => 'Mozambique',
'MM' => 'Myanmar (Birmania)',
'NA' => 'Namibia',
'NR' => 'Nauru',
'NP' => 'Nepal',
'NI' => 'Nicaragua',
'NE' => 'Níger',
'NG' => 'Nigeria',
'NU' => 'Niue',
'NO' => 'Noruega',
'NC' => 'Nueva Caledonia',
'NZ' => 'Nueva Zelanda',
'OM' => 'Omán',
'NL' => 'Países Bajos',
'PK' => 'Pakistán',
'PW' => 'Palaos',
'PA' => 'Panamá',
'PG' => 'Papúa Nueva Guinea',
'PY' => 'Paraguay',
'PE' => 'Perú',
'PF' => 'Polinesia Francesa',
'PL' => 'Polonia',
'PT' => 'Portugal',
'PR' => 'Puerto Rico',
'HK' => 'RAE de Hong Kong (China)',
'MO' => 'RAE de Macao (China)',
'GB' => 'Reino Unido',
'CF' => 'República Centroafricana',
'CD' => 'República Democrática del Congo',
'DO' => 'República Dominicana',
'RE' => 'Reunión',
'RW' => 'Ruanda',
'RO' => 'Rumanía',
'RU' => 'Rusia',
'EH' => 'Sáhara Occidental',
'WS' => 'Samoa',
'AS' => 'Samoa Americana',
'BL' => 'San Bartolomé',
'KN' => 'San Cristóbal y Nieves',
'SM' => 'San Marino',
'MF' => 'San Martín',
'PM' => 'San Pedro y Miquelón',
'VC' => 'San Vicente y las Granadinas',
'SH' => 'Santa Elena',
'LC' => 'Santa Lucía',
'ST' => 'Santo Tomé y Príncipe',
'SN' => 'Senegal',
'RS' => 'Serbia',
'SC' => 'Seychelles',
'SL' => 'Sierra Leona',
'SG' => 'Singapur',
'SX' => 'Sint Maarten',
'SY' => 'Siria',
'SO' => 'Somalia',
'LK' => 'Sri Lanka',
'ZA' => 'Sudáfrica',
'SD' => 'Sudán',
'SS' => 'Sudán del Sur',
'SE' => 'Suecia',
'CH' => 'Suiza',
'SR' => 'Surinam',
'SJ' => 'Svalbard y Jan Mayen',
'TH' => 'Tailandia',
'TW' => 'Taiwán',
'TZ' => 'Tanzania',
'TJ' => 'Tayikistán',
'IO' => 'Territorio Británico del Océano Índico',
'TF' => 'Territorios Australes Franceses',
'PS' => 'Territorios Palestinos',
'TL' => 'Timor-Leste',
'TG' => 'Togo',
'TK' => 'Tokelau',
'TO' => 'Tonga',
'TT' => 'Trinidad y Tobago',
'TN' => 'Túnez',
'TM' => 'Turkmenistán',
'TR' => 'Turquía',
'TV' => 'Tuvalu',
'UA' => 'Ucrania',
'UG' => 'Uganda',
'UY' => 'Uruguay',
'UZ' => 'Uzbekistán',
'VU' => 'Vanuatu',
'VE' => 'Venezuela',
'VN' => 'Vietnam',
'WF' => 'Wallis y Futuna',
'YE' => 'Yemen',
'DJ' => 'Yibuti',
'ZM' => 'Zambia',
'ZW' => 'Zimbabue',
);

8
lang/es/pagination.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
declare(strict_types=1);
return [
'next' => 'Siguiente &raquo;',
'previous' => '&laquo; Anterior',
];

11
lang/es/passwords.php Normal file
View File

@@ -0,0 +1,11 @@
<?php
declare(strict_types=1);
return [
'reset' => 'Su contraseña ha sido restablecida.',
'sent' => 'Le hemos enviado por correo electrónico el enlace para restablecer su contraseña.',
'throttled' => 'Por favor espere antes de intentar de nuevo.',
'token' => 'El token de restablecimiento de contraseña es inválido.',
'user' => 'No encontramos ningún usuario con ese correo electrónico.',
];

158
lang/es/validation.php Normal file
View File

@@ -0,0 +1,158 @@
<?php
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.',
'numeric' => 'El campo :attribute tiene que estar entre :min - :max.',
'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.',
'numeric' => 'El campo :attribute debe ser mayor que :value.',
'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.',
'numeric' => 'El campo :attribute debe ser como mínimo :value.',
'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.',
'numeric' => 'El campo :attribute debe ser menor que :value.',
'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.',
'numeric' => 'El campo :attribute debe ser como máximo :value.',
'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.',
'numeric' => 'El campo :attribute no debe ser mayor que :max.',
'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.',
'numeric' => 'El tamaño de :attribute debe ser de al menos :min.',
'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.',
'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.',
'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.',
'numeric' => 'El tamaño de :attribute debe ser :size.',
'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.',
];