Upgrade to 3.9.1
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
[<img src="http://getkirby.com/assets/images/github/kirby.jpg" width="300">](https://getkirby.com)
|
||||
[<img src="https://getkirby.com/assets/images/github/kirby.jpg" width="300">](https://getkirby.com)
|
||||
|
||||
[](https://github.com/getkirby/kirby/releases/latest)
|
||||
[](https://github.com/getkirby/kirby/actions?query=workflow%3ACI)
|
||||
[](https://codecov.io/gh/getkirby/kirby)
|
||||
[](https://github.com/getkirby/kirby/releases/latest)
|
||||
[](https://twitter.com/getkirby)
|
||||
[](https://github.com/getkirby/kirby/releases/latest)
|
||||
[](https://github.com/getkirby/kirby/actions?query=workflow%3ACI+branch%3Amain)
|
||||
[](https://codecov.io/gh/getkirby/kirby)
|
||||
[](https://github.com/getkirby/kirby/releases/latest)
|
||||
|
||||
**Kirby: the CMS that adapts to any project, loved by developers and editors alike.**
|
||||
With Kirby, you build your own ideal interface. Combine forms, galleries, articles, spreadsheets and more into an amazing editing experience. You can learn more about Kirby at [getkirby.com](https://getkirby.com).
|
||||
@@ -14,7 +13,7 @@ This is Kirby's core application folder. Get started with one of the following r
|
||||
- [Starterkit](https://github.com/getkirby/starterkit)
|
||||
- [Plainkit](https://github.com/getkirby/plainkit)
|
||||
|
||||
<img src="http://getkirby.com/assets/images/github/kirby-screen.png" />
|
||||
<img src="https://getkirby.com/assets/images/github/kirby-screen.png" />
|
||||
|
||||
### Try Kirby for free
|
||||
Kirby is not free software. However, you can try Kirby and the Starterkit on your local machine or on a test server as long as you need to make sure it is the right tool for your next project. … and when you’re convinced, [buy your license](https://getkirby.com/buy).
|
||||
@@ -30,8 +29,6 @@ If you have ideas for a feature or enhancement for Kirby, please use our [feedba
|
||||
**Translations, bug fixes, code contributions ...**
|
||||
Read about how to contribute to the development in our [contributing guide](/CONTRIBUTING.md).
|
||||
|
||||
|
||||
|
||||
## What's Kirby?
|
||||
- **[getkirby.com](https://getkirby.com)** – Get to know the CMS.
|
||||
- **[Try it](https://getkirby.com/try)** – Take a test ride with our online demo. Or download one of our kits to get started.
|
||||
@@ -40,10 +37,11 @@ Read about how to contribute to the development in our [contributing guide](/CON
|
||||
- **[Feedback](https://feedback.getkirby.com)** – You have an idea for Kirby? Share it.
|
||||
- **[Forum](https://forum.getkirby.com)** – Whenever you get stuck, don't hesitate to reach out for questions and support.
|
||||
- **[Discord](https://chat.getkirby.com)** – Hang out and meet the community.
|
||||
- **[Twitter](https://twitter.com/getkirby)** – Spread the word.
|
||||
- **[YouTube](https://youtube.com/kirbyCasts)** - Watch the latest video tutorials visually with Bastian.
|
||||
- **[Mastodon](https://mastodon.social/@getkirby)** – Spread the word.
|
||||
- **[Instagram](https://www.instagram.com/getkirby/)** – Share your creations: #madewithkirby.
|
||||
|
||||
---
|
||||
|
||||
© 2009-2022 Bastian Allgeier
|
||||
© 2009-2023 Bastian Allgeier
|
||||
[getkirby.com](https://getkirby.com) · [License agreement](https://getkirby.com/license)
|
||||
|
@@ -3,7 +3,7 @@
|
||||
"description": "The Kirby 3 core",
|
||||
"license": "proprietary",
|
||||
"type": "kirby-cms",
|
||||
"version": "3.9.0",
|
||||
"version": "3.9.1",
|
||||
"keywords": [
|
||||
"kirby",
|
||||
"cms",
|
||||
|
2
kirby/composer.lock
generated
2
kirby/composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "65b578807e38bf1bf4af1ba64445d9f9",
|
||||
"content-hash": "befcfd99f474ab4c303eb4b9fa9262ad",
|
||||
"packages": [
|
||||
{
|
||||
"name": "claviska/simpleimage",
|
||||
|
@@ -82,7 +82,7 @@ return [
|
||||
$this->user($id)->avatar()?->delete();
|
||||
|
||||
return $this->upload(
|
||||
function ($source, $filename) {
|
||||
function ($source, $filename) use ($id) {
|
||||
$props = [
|
||||
'filename' => 'profile.' . F::extension($filename),
|
||||
'template' => 'avatar',
|
||||
|
@@ -280,7 +280,7 @@ return [
|
||||
* @param string|array $name Snippet name
|
||||
* @param array $data Data array for the snippet
|
||||
*/
|
||||
'snippet' => function (App $kirby, string|array $name, array $data = [], bool $slots = false): Snippet|string {
|
||||
'snippet' => function (App $kirby, string|array|null $name, array $data = [], bool $slots = false): Snippet|string {
|
||||
return Snippet::factory($name, $data, $slots);
|
||||
},
|
||||
|
||||
|
@@ -570,9 +570,18 @@ class ParsedownExtra extends Parsedown
|
||||
|
||||
$DOMDocument = new DOMDocument();
|
||||
|
||||
# http://stackoverflow.com/q/11309194/200145
|
||||
$elementMarkup = htmlentities($elementMarkup);
|
||||
$elementMarkup = htmlspecialchars_decode($elementMarkup);
|
||||
// Migrating away from `mb_convert_encoding($elementMarkup,
|
||||
//'HTML-ENTITIES', 'UTF-8');` has caused multibyte characters like
|
||||
// emojis not to be converted into entities, which is needed so that
|
||||
// the `DOM` extension can properly parse the markup.
|
||||
// The following line works like this: It treats the input string
|
||||
// as UTF-8 and converts every Unicode character with 8 or more bits
|
||||
// (= character code starting at 128 or 0x80 up to the Unicode limit
|
||||
// of 0x10ffff) to an entity; the third and fourth arguments for the
|
||||
// map are not needed for our use case and are set to the default values
|
||||
// (no offset and a full mask)
|
||||
// [http://stackoverflow.com/q/11309194/200145]
|
||||
$elementMarkup = mb_encode_numericentity($elementMarkup, [0x80, 0x10ffff, 0, 0xffffff], 'UTF-8');
|
||||
|
||||
# Ensure that saveHTML() is not remove new line characters. New lines will be split by this character.
|
||||
$DOMDocument->formatOutput = true;
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "You must add at least one block",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Email шаблонът \"{name}\" не може да бъде открит",
|
||||
|
||||
"error.field.converter.invalid": "Невалиден конвертор \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Панелът не може да бъде инсталиран",
|
||||
"installation.issues.mbstring": "Изисква се разширението <code>MB String</code>",
|
||||
"installation.issues.media": "Папката <code>/media</code> не съществува или няма права за запис",
|
||||
"installation.issues.php": "Бъдете сигурни, че използвате <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Бъдете сигурни, че използвате <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby изисква <code>Apache</code>, <code>Nginx</code> или <code>Caddy</code>",
|
||||
"installation.issues.sessions": "The <code>/site/sessions</code> folder does not exist or is not writable",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "You must add at least one block",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "No es pot trobar la configuració de correu electrònic \"{name}\"",
|
||||
|
||||
"error.field.converter.invalid": "Convertidor no vàlid \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "El panell no es pot instal·lar",
|
||||
"installation.issues.mbstring": "Es requereix l'extensió de <code>MB String</code>",
|
||||
"installation.issues.media": "La carpeta <code>/media</code> no existeix o no es pot escriure",
|
||||
"installation.issues.php": "Assegureu-vos d'utilitzar <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Assegureu-vos d'utilitzar <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby requereix <code>Apache</code>, <code>Nginx</code> o <code>Caddy</code>",
|
||||
"installation.issues.sessions": "La carpeta <code>/site/sessions</code> no existeix o no es pot escriure",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Musíte přidat alespoň jeden blok",
|
||||
"error.blocks.validation": "V poli \"{field}\" v bloku {index} je při použití \"{fieldset}\" typu chyba",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Nelze nalézt emailové přednastavení \"{name}\"",
|
||||
|
||||
"error.field.converter.invalid": "Neplatný konvertor \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Panel nelze nainstalovat",
|
||||
"installation.issues.mbstring": "Je vyžadováno rozšíření<code>MB String</code>",
|
||||
"installation.issues.media": "Složka<code>/media</code> neexistuje, nebo nemá povolený zápis",
|
||||
"installation.issues.php": "Ujistěte se, že používáte<code>PHP 7+</code>",
|
||||
"installation.issues.php": "Ujistěte se, že používáte<code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby vyžaduje<code>Apache</code>, <code>Nginx</code> nebo<code>Caddy</code>",
|
||||
"installation.issues.sessions": "Složka<code>/site/sessions</code> neexistuje, nebo nemá povolený zápis",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Du skal tilføje minimum een blok",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Email preset \"{name}\" findes ikke",
|
||||
|
||||
"error.field.converter.invalid": "Ugyldig converter \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Panelet kan ikke installeres",
|
||||
"installation.issues.mbstring": "<code>MB String</code> extension er påkrævet",
|
||||
"installation.issues.media": "<code>/media</code> mappen eksisterer ikke eller er ikke skrivbar",
|
||||
"installation.issues.php": "Sikre dig at der benyttes <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Sikre dig at der benyttes <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby kræver <code>Apache</code>, <code>Nginx</code> eller <code>Caddy</code>",
|
||||
"installation.issues.sessions": "/site/sessions mappen eksisterer ikke eller er ikke skrivbar",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Bitte füge mindestens einen Block hinzu",
|
||||
"error.blocks.validation": "Fehler im \"{field}\" Feld in Block {index} mit dem Block Typ \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Ungültiger Cachetyp: \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Die E-Mailvorlage \"{name}\" wurde nicht gefunden",
|
||||
|
||||
"error.field.converter.invalid": "Ungültiger Konverter: \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Das Panel kann nicht installiert werden",
|
||||
"installation.issues.mbstring": "Die <code>MB String</code> Erweiterung wird benötigt",
|
||||
"installation.issues.media": "Der <code>/media</code> Ordner ist nicht beschreibbar",
|
||||
"installation.issues.php": "Bitte verwende <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Bitte verwende <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby benötigt <code>Apache</code>, <code>Nginx</code> or <code>Caddy</code>",
|
||||
"installation.issues.sessions": "<code>/site/sessions</code> ist nicht beschreibbar",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "You must add at least one block",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Δεν είναι δυνατή η εύρεση της προεπιλογής διεύθινσης ηλεκτρονικού ταχυδρομείου \"{name}\"",
|
||||
|
||||
"error.field.converter.invalid": "Μη έγκυρος μετατροπέας \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Ο πίνακας ελέγχου δεν μπορεί να εγκατασταθεί",
|
||||
"installation.issues.mbstring": "Απαιτείται η επέκταση <code>MB String</code> ",
|
||||
"installation.issues.media": "Ο φάκελος <code>/media</code> δεν υπάρχει ή δεν είναι εγγράψιμος",
|
||||
"installation.issues.php": "Βεβαιωθείτε ότι χρησιμοποιήτε <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Βεβαιωθείτε ότι χρησιμοποιήτε <code>PHP 8+</code>",
|
||||
"installation.issues.server": "To Kirby απαιτεί <code>Apache</code>, <code>Nginx</code> ή <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Ο φάκελος <code>/site/sessions</code> δεν υπάρχει ή δεν είναι εγγράψιμος",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "You must add at least one block",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "The email preset \"{name}\" cannot be found",
|
||||
|
||||
"error.field.converter.invalid": "Invalid converter \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "The panel cannot be installed",
|
||||
"installation.issues.mbstring": "The <code>MB String</code> extension is required",
|
||||
"installation.issues.media": "The <code>/media</code> folder does not exist or is not writable",
|
||||
"installation.issues.php": "Make sure to use <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Make sure to use <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby requires <code>Apache</code>, <code>Nginx</code> or <code>Caddy</code>",
|
||||
"installation.issues.sessions": "The <code>/site/sessions</code> folder does not exist or is not writable",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Oni devas aldoni almenaŭ unu blokon",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "La retpoŝta antaŭagordo \"{name}\" ne estas trovebla",
|
||||
|
||||
"error.field.converter.invalid": "Nevalida konvertilo \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Ne eblas instali la panelon",
|
||||
"installation.issues.mbstring": "La kromprogramo <code>MB String</code> estas deviga",
|
||||
"installation.issues.media": "La dosierujo <code>/media</code> ne ekzistas, aũ ne estas skribebla",
|
||||
"installation.issues.php": "Nepre uzu <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Nepre uzu <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby bezonas <code>Apache</code>, <code>Nginx</code> aŭ <code>Caddy</code>",
|
||||
"installation.issues.sessions": "La dosierujo <code>/site/sessions</code> ne ekzistas, aŭ ne estas skribebla",
|
||||
|
||||
|
@@ -29,7 +29,7 @@
|
||||
"days.tue": "Mar",
|
||||
"days.wed": "Mi\u00e9",
|
||||
|
||||
"debugging": "Debugging",
|
||||
"debugging": "Depuración",
|
||||
|
||||
"delete": "Eliminar",
|
||||
"delete.all": "Eliminar todos",
|
||||
@@ -49,8 +49,8 @@
|
||||
"email": "Correo Electrónico",
|
||||
"email.placeholder": "correo@ejemplo.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
"entries": "Entradas",
|
||||
"entry": "Entrada",
|
||||
|
||||
"environment": "Ambiente",
|
||||
|
||||
@@ -70,12 +70,14 @@
|
||||
"error.blocks.max.singular": "No debes añadir más de un bloque",
|
||||
"error.blocks.min.plural": "Debes añadir al menos {min} bloques ",
|
||||
"error.blocks.min.singular": "Debes añadir al menos un bloque",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
"error.blocks.validation": "Hay un error en el campo \"{field}\" del bloque {index} que utiliza el tipo de bloque \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Tipo de caché \"{tipo}\" no válido",
|
||||
|
||||
"error.email.preset.notFound": "El preajuste de email \"{name}\" no se pudo encontrar.",
|
||||
|
||||
"error.field.converter.invalid": "Convertidor inválido \"{converter}\"",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Campo \"{ name }\": El tipo de campo \"{ type }\" no existe",
|
||||
|
||||
"error.file.changeName.empty": "El nombre no debe estar vacío",
|
||||
"error.file.changeName.permission": "No tienes permitido cambiar el nombre de \"{filename}\"",
|
||||
@@ -108,14 +110,14 @@
|
||||
"error.language.name": "Por favor introduce un nombre válido para el idioma",
|
||||
"error.language.notFound": "No se pudo encontrar el idioma",
|
||||
|
||||
"error.layout.validation.block": "There's an error on the \"{field}\" field in block {blockIndex} using the \"{fieldset}\" block type in layout {layoutIndex}",
|
||||
"error.layout.validation.settings": "There's an error in layout {index} settings",
|
||||
"error.layout.validation.block": "Hay un error en el campo \"{field}\" del bloque {blockIndex} que utiliza el tipo de bloque \"{fieldset}\" en el layout {layoutIndex}",
|
||||
"error.layout.validation.settings": "Hay un error en los ajustes del layout {index}",
|
||||
|
||||
"error.license.format": "Por favor introduce una llave de licencia válida",
|
||||
"error.license.email": "Por favor ingresa un correo electrónico valido",
|
||||
"error.license.verification": "La licencia no pude ser verificada",
|
||||
|
||||
"error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
|
||||
"error.object.validation": "Hay un error en el campo \"{label}\":\n{message}",
|
||||
|
||||
"error.offline": "El Panel se encuentra fuera de linea ",
|
||||
|
||||
@@ -137,8 +139,8 @@
|
||||
"error.page.duplicate.permission": "No tienes permitido duplicar \"{slug}\"",
|
||||
"error.page.notFound": "La página \"{slug}\" no se encuentra",
|
||||
"error.page.num.invalid": "Por favor, introduce un número de posición válido. Los números no deben ser negativos.",
|
||||
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||
"error.page.slug.invalid": "Por favor, introduce un apéndice de URL válido",
|
||||
"error.page.slug.maxlength": "La longitud del slug debe ser inferior a \"{length}\" caracteres",
|
||||
"error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
|
||||
"error.page.status.invalid": "Por favor, establece una estado de página válido",
|
||||
"error.page.undefined": "La p\u00e1gina no fue encontrada",
|
||||
@@ -163,7 +165,7 @@
|
||||
|
||||
"error.template.default.notFound": "La plantilla predeterminada no existe",
|
||||
|
||||
"error.unexpected": "An unexpected error occurred! Enable debug mode for more info: https://getkirby.com/docs/reference/system/options/debug",
|
||||
"error.unexpected": "¡Se ha producido un error inesperado! Activa el modo de depuración para obtener más información: https://getkirby.com/docs/reference/system/options/debug",
|
||||
|
||||
"error.user.changeEmail.permission": "No tienes permiso para cambiar el email del usuario \"{name}\"",
|
||||
"error.user.changeLanguage.permission": "No tienes permiso para cambiar el idioma del usuario \"{name}\"",
|
||||
@@ -268,47 +270,47 @@
|
||||
"field.blocks.quote.name": "Cita",
|
||||
"field.blocks.quote.text.label": "Texto",
|
||||
"field.blocks.quote.text.placeholder": "Cita...",
|
||||
"field.blocks.quote.citation.label": "Citation",
|
||||
"field.blocks.quote.citation.label": "Cita",
|
||||
"field.blocks.quote.citation.placeholder": "Por ...",
|
||||
"field.blocks.text.name": "Texto",
|
||||
"field.blocks.text.placeholder": "Text …",
|
||||
"field.blocks.text.placeholder": "Texto ...",
|
||||
"field.blocks.video.caption": "Leyenda",
|
||||
"field.blocks.video.name": "Video",
|
||||
"field.blocks.video.placeholder": "Enter a video URL",
|
||||
"field.blocks.video.url.label": "Video-URL",
|
||||
"field.blocks.video.placeholder": "Introduce la URL de un vídeo",
|
||||
"field.blocks.video.url.label": "Vídeo-URL",
|
||||
"field.blocks.video.url.placeholder": "https://youtube.com/?v=",
|
||||
|
||||
"field.files.empty": "Aún no ha seleccionado ningún archivo",
|
||||
|
||||
"field.layout.delete": "Delete layout",
|
||||
"field.layout.delete.confirm": "Do you really want to delete this layout?",
|
||||
"field.layout.empty": "No rows yet",
|
||||
"field.layout.select": "Select a layout",
|
||||
"field.layout.delete": "Eliminar layout",
|
||||
"field.layout.delete.confirm": "¿Realmente quieres eliminar este layout?",
|
||||
"field.layout.empty": "Aún no hay filas",
|
||||
"field.layout.select": "Seleccionar layout",
|
||||
|
||||
"field.object.empty": "No information yet",
|
||||
"field.object.empty": "Aún no hay información",
|
||||
|
||||
"field.pages.empty": "Aún no ha seleccionado ningúna pagina",
|
||||
|
||||
"field.structure.delete.confirm": "\u00bfEn realidad desea borrar esta entrada?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "¿Realmente quieres eliminar todas las entradas?",
|
||||
"field.structure.empty": "A\u00fan no existen entradas.",
|
||||
|
||||
"field.users.empty": "Aún no ha seleccionado ningún usuario",
|
||||
|
||||
"file.blueprint": "This file has no blueprint yet. You can define the setup in <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.delete.confirm": "\u00bfEst\u00e1s seguro que deseas eliminar este archivo?",
|
||||
"file.sort": "Change position",
|
||||
"file.sort": "Cambiar posición",
|
||||
|
||||
"files": "Archivos",
|
||||
"files.empty": "Aún no existen archivos",
|
||||
|
||||
"hide": "Hide",
|
||||
"hide": "Ocultar",
|
||||
"hour": "Hora",
|
||||
"import": "Import",
|
||||
"import": "Importar",
|
||||
"info": "Info",
|
||||
"insert": "Insertar",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
"insert.after": "Insertar después",
|
||||
"insert.before": "Insertar antes",
|
||||
"install": "Instalar",
|
||||
|
||||
"installation": "Instalación",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "El panel no puede ser instalado.",
|
||||
"installation.issues.mbstring": "Se requiere la extensión <code>MB String</code>.",
|
||||
"installation.issues.media": "La carpeta <code>/media</code> no existe o no posee permisos de escritura.",
|
||||
"installation.issues.php": "Asegurese de estar usando <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Asegurese de estar usando <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby requiere <code>Apache</code>, <code>Nginx</code>, <code>Caddy</code>",
|
||||
"installation.issues.sessions": "La carpeta <code>/site/sessions</code> no existe o no posee permisos de escritura.",
|
||||
|
||||
@@ -348,14 +350,14 @@
|
||||
"license": "Licencia",
|
||||
"license.buy": "Comprar una licencia",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.manage": "Gestiona tus licencias",
|
||||
"license.register.help": "Recibió su código de licencia después de la compra por correo electrónico. Por favor copie y pegue para registrarse.",
|
||||
"license.register.label": "Por favor, ingresa tu código de licencia",
|
||||
"license.register.domain": "Your license will be registered to <strong>{host}</strong>.",
|
||||
"license.register.local": "You are about to register your license for your local domain <strong>{host}</strong>. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
|
||||
"license.register.domain": "Tu licencia será registrada para <strong>{host}</strong>.",
|
||||
"license.register.local": "Estás a punto de registrar tu licencia para el dominio local {host}. Si este sitio va a ser desplegado en un dominio público, por favor regístralo allí. Si {host} es el dominio en el que quiere registrar Kirby, por favor continúa.",
|
||||
"license.register.success": "Gracias por apoyar a Kirby",
|
||||
"license.unregistered": "Este es un demo no registrado de Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
"license.unregistered.label": "No registrado",
|
||||
|
||||
"link": "Enlace",
|
||||
"link.text": "Texto de Enlace",
|
||||
@@ -371,20 +373,20 @@
|
||||
"lock.isUnlocked": "Tus cambios sin guardar han sido sobrescritos por otro usuario. Puedes descargar los cambios y fusionarlos manualmente.",
|
||||
|
||||
"login": "Iniciar sesión",
|
||||
"login.code.label.login": "Login code",
|
||||
"login.code.label.password-reset": "Password reset code",
|
||||
"login.code.label.login": "Código de inicio de sesión",
|
||||
"login.code.label.password-reset": "Código de restablecimiento de contraseña",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
"login.code.text.email": "If your email address is registered, the requested code was sent via email.",
|
||||
"login.email.login.body": "Hi {user.nameOrEmail},\n\nYou recently requested a login code for the Panel of {site}.\nThe following login code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a login code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
|
||||
"login.email.login.subject": "Your login code",
|
||||
"login.email.password-reset.body": "Hi {user.nameOrEmail},\n\nYou recently requested a password reset code for the Panel of {site}.\nThe following password reset code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a password reset code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
|
||||
"login.email.password-reset.subject": "Your password reset code",
|
||||
"login.code.text.email": "Si tu dirección de correo electrónico está registrada, el código solicitado fue enviado por correo electrónico.",
|
||||
"login.email.login.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.",
|
||||
"login.email.login.subject": "Tu código de inicio de sesión",
|
||||
"login.email.password-reset.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.",
|
||||
"login.email.password-reset.subject": "Tu código de restablecimiento de contraseña",
|
||||
"login.remember": "Mantener mi sesión iniciada",
|
||||
"login.reset": "Reset password",
|
||||
"login.toggleText.code.email": "Login via email",
|
||||
"login.toggleText.code.email-password": "Login with password",
|
||||
"login.toggleText.password-reset.email": "Forgot your password?",
|
||||
"login.toggleText.password-reset.email-password": "← Back to login",
|
||||
"login.reset": "Restablecer contraseña",
|
||||
"login.toggleText.code.email": "Iniciar sesión por correo electrónico",
|
||||
"login.toggleText.code.email-password": "Iniciar sesión con contraseña",
|
||||
"login.toggleText.password-reset.email": "¿Olvidaste tu contraseña?",
|
||||
"login.toggleText.password-reset.email-password": "← Volver al inicio de sesión",
|
||||
|
||||
"logout": "Cerrar sesi\u00f3n",
|
||||
|
||||
@@ -414,16 +416,16 @@
|
||||
"off": "Apagado",
|
||||
"on": "Encendido",
|
||||
"open": "Abrir",
|
||||
"open.newWindow": "Open in new window",
|
||||
"open.newWindow": "Abrir en una ventana nueva",
|
||||
"options": "Opciones",
|
||||
"options.none": "No options",
|
||||
"options.none": "Sin opciones",
|
||||
|
||||
"orientation": "Orientación",
|
||||
"orientation.landscape": "Paisaje",
|
||||
"orientation.portrait": "Retrato",
|
||||
"orientation.square": "Diapositiva",
|
||||
|
||||
"page.blueprint": "This page has no blueprint yet. You can define the setup in <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Cambiar URL",
|
||||
"page.changeSlug.fromTitle": "Crear a partir del t\u00edtulo",
|
||||
"page.changeStatus": "Cambiar estado",
|
||||
@@ -437,10 +439,10 @@
|
||||
"page.duplicate.appendix": "Copiar",
|
||||
"page.duplicate.files": "Copiar archivos",
|
||||
"page.duplicate.pages": "Copiar páginas",
|
||||
"page.sort": "Change position",
|
||||
"page.sort": "Cambiar posición",
|
||||
"page.status": "Estado",
|
||||
"page.status.draft": "Borrador",
|
||||
"page.status.draft.description": "The page is in draft mode and only visible for logged in editors or via secret link",
|
||||
"page.status.draft.description": "La página está en modo borrador y solo es visible para editores conectados o mediante enlace secreto.",
|
||||
"page.status.listed": "Pública",
|
||||
"page.status.listed.description": "La página es pública para cualquiera",
|
||||
"page.status.unlisted": "No publicada",
|
||||
@@ -455,19 +457,19 @@
|
||||
"pagination.page": "Página",
|
||||
|
||||
"password": "Contrase\u00f1a",
|
||||
"paste": "Paste",
|
||||
"paste.after": "Paste after",
|
||||
"paste": "Pegar",
|
||||
"paste.after": "Pegar después",
|
||||
"pixel": "Pixel",
|
||||
"plugin": "Plugin",
|
||||
"plugins": "Plugins",
|
||||
"prev": "Anterior",
|
||||
"preview": "Preview",
|
||||
"preview": "Previsualizar",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Renombrar",
|
||||
"replace": "Reemplazar",
|
||||
"retry": "Reintentar",
|
||||
"revert": "Revertir",
|
||||
"revert.confirm": "Do you really want to <strong>delete all unsaved changes</strong>?",
|
||||
"revert.confirm": "¿Realmente quieres <strong>eliminar todos los cambios sin guardar</strong>?",
|
||||
|
||||
"role": "Rol",
|
||||
"role.admin.description": "El administrador tiene todos los derechos",
|
||||
@@ -480,42 +482,42 @@
|
||||
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"search.min": "Enter {min} characters to search",
|
||||
"search.all": "Show all",
|
||||
"search.results.none": "No results",
|
||||
"search.min": "Introduce {min} caracteres para buscar",
|
||||
"search.all": "Mostrar todo",
|
||||
"search.results.none": "Sin resultados",
|
||||
|
||||
"section.required": "Esta sección es requerida",
|
||||
|
||||
"security": "Security",
|
||||
"security": "Seguridad",
|
||||
"select": "Seleccionar",
|
||||
"server": "Server",
|
||||
"server": "Servidor",
|
||||
"settings": "Ajustes",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"show": "Mostrar",
|
||||
"site.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamaño",
|
||||
"slug": "Apéndice URL",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.eol.kirby": "Your installed Kirby version has reached end-of-life and will not receive further security updates",
|
||||
"system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
"system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
|
||||
"system.issues.vulnerability.plugin": "Your installation might be affected by the following vulnerability in the { plugin } plugin ({ severity } severity): { description }",
|
||||
"system.updateStatus": "Update status",
|
||||
"system.updateStatus.error": "Could not check for updates",
|
||||
"system.updateStatus.not-vulnerable": "No known vulnerabilities",
|
||||
"system.updateStatus.security-update": "Free security update { version } available",
|
||||
"system.updateStatus.security-upgrade": "Upgrade { version } with security fixes available",
|
||||
"system.updateStatus.unreleased": "Unreleased version",
|
||||
"system.updateStatus.up-to-date": "Up to date",
|
||||
"system.updateStatus.update": "Free update { version } available",
|
||||
"system.updateStatus.upgrade": "Upgrade { version } available",
|
||||
"stats.empty": "Sin informes",
|
||||
"system.issues.content": "La carpeta content parece estar expuesta",
|
||||
"system.issues.eol.kirby": "La versión de Kirby que tienes instalada ha llegado al final de su vida útil y no recibirá más actualizaciones de seguridad.",
|
||||
"system.issues.eol.plugin": "Tu versión instalada del plugin { plugin } ha llegado al final de su vida útil y no recibirá más actualizaciones de seguridad.",
|
||||
"system.issues.debug": "La depuración debe estar desactivada en producción",
|
||||
"system.issues.git": "La carpeta .git parece estar expuesta",
|
||||
"system.issues.https": "Recomendamos HTTPS para todos tus sitios web",
|
||||
"system.issues.kirby": "La carpeta kirby parece estar expuesta",
|
||||
"system.issues.site": "La carpeta site parece estar expuesta",
|
||||
"system.issues.vulnerability.kirby": "Tu instalación podría estar afectada por la siguiente vulnerabilidad ({ severity } gravedad): { description }",
|
||||
"system.issues.vulnerability.plugin": "Tu instalación podría estar afectada por la siguiente vulnerabilidad en el plugin { plugin } ({ severity } gravedad): { description }",
|
||||
"system.updateStatus": "Estado de actualización",
|
||||
"system.updateStatus.error": "No se ha podido comprobar si hay actualizaciones",
|
||||
"system.updateStatus.not-vulnerable": "No hay vulnerabilidades conocidas",
|
||||
"system.updateStatus.security-update": "Actualización gratuita de seguridad { version } disponible",
|
||||
"system.updateStatus.security-upgrade": "Actualización { versión } con correcciones de seguridad disponibles",
|
||||
"system.updateStatus.unreleased": "Versión no publicada",
|
||||
"system.updateStatus.up-to-date": "Actualizado",
|
||||
"system.updateStatus.update": "Actualización gratuita {version} disponible",
|
||||
"system.updateStatus.upgrade": "Actualización {versión} disponible",
|
||||
|
||||
"title": "Título",
|
||||
"template": "Plantilla",
|
||||
@@ -536,10 +538,10 @@
|
||||
"toolbar.button.file.select": "Selecciona un archivo",
|
||||
"toolbar.button.file.upload": "Sube un archivo",
|
||||
"toolbar.button.link": "Enlace",
|
||||
"toolbar.button.paragraph": "Paragraph",
|
||||
"toolbar.button.strike": "Strike-through",
|
||||
"toolbar.button.paragraph": "Parágrafo",
|
||||
"toolbar.button.strike": "Tachado",
|
||||
"toolbar.button.ol": "Lista en orden",
|
||||
"toolbar.button.underline": "Underline",
|
||||
"toolbar.button.underline": "Subrayado",
|
||||
"toolbar.button.ul": "Lista de viñetas",
|
||||
|
||||
"translation.author": "Equipo Kirby",
|
||||
@@ -566,7 +568,7 @@
|
||||
"url.placeholder": "https://ejemplo.com",
|
||||
|
||||
"user": "Usuario",
|
||||
"user.blueprint": "You can define additional sections and form fields for this user role in <strong>/site/blueprints/users/{blueprint}.yml</strong>",
|
||||
"user.blueprint": "Puedes definir secciones y campos de formulario adicionales para este rol de usuario en <strong>/site/blueprints/users/{blueprint}.yml</strong>",
|
||||
"user.changeEmail": "Cambiar correo electrónico",
|
||||
"user.changeLanguage": "Cambiar idioma",
|
||||
"user.changeName": "Renombrar este usuario",
|
||||
@@ -582,19 +584,19 @@
|
||||
"users": "Usuarios",
|
||||
|
||||
"version": "Versión",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
"version.current": "Versión actual",
|
||||
"version.latest": "Última versión",
|
||||
"versionInformation": "información sobre la versión",
|
||||
|
||||
"view.account": "Tu cuenta",
|
||||
"view.installation": "Instalaci\u00f3n",
|
||||
"view.languages": "Idiomas",
|
||||
"view.resetPassword": "Reset password",
|
||||
"view.resetPassword": "Restablecer contraseña",
|
||||
"view.site": "Sitio",
|
||||
"view.system": "System",
|
||||
"view.system": "Sistema",
|
||||
"view.users": "Usuarios",
|
||||
|
||||
"welcome": "Bienvenido",
|
||||
"year": "Año",
|
||||
"yes": "yes"
|
||||
"yes": "Sí"
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"account.changeName": "Cambia tu nombre",
|
||||
"account.delete": "Borrar tu cuenta",
|
||||
"account.changeName": "Cambiar nombre",
|
||||
"account.delete": "Borrar cuenta",
|
||||
"account.delete.confirm": "¿Realmente quieres eliminar tu cuenta? Tu sesión se cerrará inmediatamente. La cuenta no podrá ser recuperada.",
|
||||
|
||||
"add": "Añadir",
|
||||
@@ -29,14 +29,14 @@
|
||||
"days.tue": "Ma",
|
||||
"days.wed": "Mi",
|
||||
|
||||
"debugging": "Debugging",
|
||||
"debugging": "Depuración",
|
||||
|
||||
"delete": "Borrar",
|
||||
"delete": "Eliminar",
|
||||
"delete.all": "Eliminar todos",
|
||||
|
||||
"dialog.files.empty": "No se ha seleccionado ningún archivo",
|
||||
"dialog.pages.empty": "No se ha seleccionado ninguna página",
|
||||
"dialog.users.empty": "No se ha seleccionado ningún usuario",
|
||||
"dialog.files.empty": "No hay archivos para seleccionar",
|
||||
"dialog.pages.empty": "No hay páginas para seleccionar",
|
||||
"dialog.users.empty": "No hay usuarios para seleccionar",
|
||||
|
||||
"dimensions": "Dimensiones",
|
||||
"disabled": "Desabilitado",
|
||||
@@ -49,19 +49,19 @@
|
||||
"email": "Correo electrónico",
|
||||
"email.placeholder": "correo@ejemplo.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
"entries": "Entradas",
|
||||
"entry": "Entrada",
|
||||
|
||||
"environment": "Ambiente",
|
||||
"environment": "Entorno",
|
||||
|
||||
"error.access.code": "Código inválido",
|
||||
"error.access.login": "Ingreso inválido",
|
||||
"error.access.panel": "No estás autorizado para acceder al panel",
|
||||
"error.access.login": "Inicio de sesión inválido",
|
||||
"error.access.panel": "No tienes permiso para acceder al panel",
|
||||
"error.access.view": "No tienes permiso para acceder a esta parte del panel",
|
||||
|
||||
"error.avatar.create.fail": "No se pudo subir la foto de perfil.",
|
||||
"error.avatar.delete.fail": "No se pudo borrar la foto de perfil",
|
||||
"error.avatar.dimensions.invalid": "Por favor, mantenga el ancho y la altura de la imagen de perfil debajo de 3000 píxeles",
|
||||
"error.avatar.dimensions.invalid": "Por favor, mantén el ancho y la altura de la imagen de perfil por debajo de 3000 píxeles",
|
||||
"error.avatar.mime.forbidden": "La imagen del perfil debe ser JPEG o PNG.",
|
||||
|
||||
"error.blueprint.notFound": "El blueprint \"{name}\" no pudo ser cargado",
|
||||
@@ -70,15 +70,17 @@
|
||||
"error.blocks.max.singular": "No debes añadir más de un bloque",
|
||||
"error.blocks.min.plural": "Debes añadir al menos {min} bloques ",
|
||||
"error.blocks.min.singular": "Debes añadir al menos un bloque",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
"error.blocks.validation": "Hay un error en el campo \"{field}\" del bloque {index} que utiliza el tipo de bloque \"{fieldset}\"",
|
||||
|
||||
"error.email.preset.notFound": "El preset del correo \"{name}\" no pudo ser encontrado",
|
||||
"error.cache.type.invalid": "Tipo de caché inválido \"{tipo}\"",
|
||||
|
||||
"error.email.preset.notFound": "El preset del correo \"{name}\" no puede ser encontrado",
|
||||
|
||||
"error.field.converter.invalid": "Convertidor \"{converter}\" inválido",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Campo \"{ name }\": El tipo de campo \"{ type }\" no existe",
|
||||
|
||||
"error.file.changeName.empty": "El nombre no debe estar vacío",
|
||||
"error.file.changeName.permission": "No tienes permitido cambiar el nombre de \"{filename}\"",
|
||||
"error.file.changeName.permission": "No tienes permiso para cambiar el nombre de \"{filename}\"",
|
||||
"error.file.duplicate": "Ya existe un archivo con el nombre \"{filename}\"",
|
||||
"error.file.extension.forbidden": "La extensión \"{extension}\" no está permitida",
|
||||
"error.file.extension.invalid": "Extensión inválida: {extension}",
|
||||
@@ -89,68 +91,68 @@
|
||||
"error.file.mime.differs": "El archivo cargado debe ser del mismo tipo mime \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Los medios tipo \"{mime}\" no están permitidos",
|
||||
"error.file.mime.invalid": "Tipo invalido de mime: {mime}",
|
||||
"error.file.mime.missing": "El tipo de medio para \"{filename}\" no pudo ser detectado",
|
||||
"error.file.mime.missing": "El tipo de medio para \"{filename}\" no puede ser detectado",
|
||||
"error.file.minheight": "La altura de la imagen debe ser de al menos {height} pixeles",
|
||||
"error.file.minsize": "El archivo es muy pequeño",
|
||||
"error.file.minwidth": "El ancho de la imagen debe ser de al menos {width} pixeles",
|
||||
"error.file.name.missing": "El nombre de archivo no debe estar vacío",
|
||||
"error.file.notFound": "El archivo \"{filename}\" no pudo ser encontrado",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "No está permitido subir archivos {type}",
|
||||
"error.file.notFound": "El archivo \"{filename}\" no puede ser encontrado",
|
||||
"error.file.orientation": "La orientación de la imagen debe ser \"{orientation}",
|
||||
"error.file.type.forbidden": "No tienes permiso para subir archivos {type}",
|
||||
"error.file.type.invalid": "Tipo de archivo inválido: {type}",
|
||||
"error.file.undefined": "El archivo no pudo ser encontrado",
|
||||
"error.file.undefined": "El archivo no puede ser encontrado",
|
||||
|
||||
"error.form.incomplete": "Por favor, corrija todos los errores del formulario…",
|
||||
"error.form.incomplete": "Por favor, corrige todos los errores del formulario…",
|
||||
"error.form.notSaved": "El formulario no pudo ser guardado",
|
||||
|
||||
"error.language.code": "Por favor introduce un código válido para el idioma",
|
||||
"error.language.code": "Por favor, introduce un código válido para el idioma",
|
||||
"error.language.duplicate": "El idioma ya existe",
|
||||
"error.language.name": "Por favor introduce un nombre válido para el idioma",
|
||||
"error.language.name": "Por favor, introduce un nombre válido para el idioma",
|
||||
"error.language.notFound": "No se pudo encontrar el idioma",
|
||||
|
||||
"error.layout.validation.block": "There's an error on the \"{field}\" field in block {blockIndex} using the \"{fieldset}\" block type in layout {layoutIndex}",
|
||||
"error.layout.validation.settings": "There's an error in layout {index} settings",
|
||||
"error.layout.validation.block": "Hay un error en el campo \"{field}\" del bloque {blockIndex} que utiliza el tipo de bloque \"{fieldset}\" en el layout {layoutIndex}",
|
||||
"error.layout.validation.settings": "Hay un error en los ajustes del layout {index}",
|
||||
|
||||
"error.license.format": "Por favor introduce una llave de licencia válida",
|
||||
"error.license.format": "Por favor, introduce una llave de licencia válida",
|
||||
"error.license.email": "Por favor, introduce un correo electrónico válido",
|
||||
"error.license.verification": "La licencia no pude ser verificada",
|
||||
"error.license.verification": "La licencia no pudo ser verificada",
|
||||
|
||||
"error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
|
||||
"error.object.validation": "Hay un error en el campo \"{label}\":\n{message}",
|
||||
|
||||
"error.offline": "El Panel se encuentra fuera de linea ",
|
||||
"error.offline": "El Panel se encuentra actualmente fuera de línea ",
|
||||
|
||||
"error.page.changeSlug.permission": "No está permitido cambiar el apéndice de URL para \"{slug}\"",
|
||||
"error.page.changeSlug.permission": "No tienes permiso para cambiar el apéndice de URL para \"{slug}\"",
|
||||
"error.page.changeStatus.incomplete": "La página tiene errores y no puede ser publicada.",
|
||||
"error.page.changeStatus.permission": "El estado de esta página no se puede cambiar",
|
||||
"error.page.changeStatus.toDraft.invalid": "La página \"{slug}\" no se puede convertir a borrador",
|
||||
"error.page.changeTemplate.invalid": "La plantilla para la página \"{slug}\" no se puede cambiar",
|
||||
"error.page.changeTemplate.permission": "No tienes permitido cambiar la plantilla para \"{slug}\"",
|
||||
"error.page.changeTemplate.permission": "No tienes permiso para cambiar la plantilla para \"{slug}\"",
|
||||
"error.page.changeTitle.empty": "El título no debe estar vacío.",
|
||||
"error.page.changeTitle.permission": "No tienes permitido cambiar el título por \"{slug}\"",
|
||||
"error.page.create.permission": "No tienes permitido crear \"{slug}\"",
|
||||
"error.page.delete": "La página \"{slug}\" no puede ser eliminada",
|
||||
"error.page.delete.confirm": "Por favor, introduzca el título de la página para confirmar",
|
||||
"error.page.changeTitle.permission": "No tienes permiso para cambiar el título por \"{slug}\"",
|
||||
"error.page.create.permission": "No tienes permiso para crear \"{slug}\"",
|
||||
"error.page.delete": "La página \"{slug}\" no se puede eliminar",
|
||||
"error.page.delete.confirm": "Por favor, introduce el título de la página para confirmar",
|
||||
"error.page.delete.hasChildren": "La página tiene subpáginas y no se puede eliminar",
|
||||
"error.page.delete.permission": "No tienes permiso de eliminar \"{slug}\"",
|
||||
"error.page.delete.permission": "No tienes permiso para eliminar \"{slug}\"",
|
||||
"error.page.draft.duplicate": "Un borrador de página con el apéndice de URL \"{slug}\" ya existe",
|
||||
"error.page.duplicate": "Una página con el apéndice de URL. \"{slug}\" ya existe",
|
||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||
"error.page.notFound": "La página \"{slug}\" no puede ser encontrada",
|
||||
"error.page.num.invalid": "Por favor, introduzca un número válido. Estos no deben ser negativos.",
|
||||
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||
"error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
|
||||
"error.page.status.invalid": "Por favor, establezca un estado de página válido",
|
||||
"error.page.undefined": "La página no se puede encontrar",
|
||||
"error.page.update.permission": "No tienes permitido actualizar \"{slug}\"",
|
||||
"error.page.duplicate": "Una página con el apéndice de URL \"{slug}\" ya existe",
|
||||
"error.page.duplicate.permission": "No tienes permiso para duplicar \"{slug}\"",
|
||||
"error.page.notFound": "No se puede encontrar la página \"{slug}\"",
|
||||
"error.page.num.invalid": "Por favor, introduce un número de ordenación válido. Los números no deben ser negativos.",
|
||||
"error.page.slug.invalid": "Por favor, introduce un apéndice de URL válido",
|
||||
"error.page.slug.maxlength": "La longitud del slug debe ser inferior a \"{length}\" caracteres",
|
||||
"error.page.sort.permission": "No se puede encontrar la página \"{slug}\"",
|
||||
"error.page.status.invalid": "Por favor, establece un estado de página válido",
|
||||
"error.page.undefined": "No se puede encontrar la página",
|
||||
"error.page.update.permission": "No tienes permiso para actualizar \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "No debes agregar más de {max} archivos a la sección \"{section}\"",
|
||||
"error.section.files.max.singular": "No debes agregar más de 1 archivo a la sección \"{section}\"",
|
||||
"error.section.files.min.plural": "La sección \"{section}\" requiere al menos {min} archivos",
|
||||
"error.section.files.min.singular": "La sección \"{section}\" requiere al menos un archivo",
|
||||
|
||||
"error.section.pages.max.plural": "No debe agregar más de {max} páginas a la sección \"{section}\"",
|
||||
"error.section.pages.max.singular": "No debe agregar más de una página a la sección \"{section}\"",
|
||||
"error.section.pages.max.plural": "No debes agregar más de {max} páginas a la sección \"{section}\"",
|
||||
"error.section.pages.max.singular": "No debes agregar más de una página a la sección \"{section}\"",
|
||||
"error.section.pages.min.plural": "La sección \"{section}\" requiere al menos {min} páginas",
|
||||
"error.section.pages.min.singular": "La sección \"{section}\" requiere al menos una página",
|
||||
|
||||
@@ -158,94 +160,94 @@
|
||||
"error.section.type.invalid": "El sección tipo \"{tipo}\" no es válido",
|
||||
|
||||
"error.site.changeTitle.empty": "El título no debe estar vacío.",
|
||||
"error.site.changeTitle.permission": "No está permitido cambiar el título del sitio",
|
||||
"error.site.update.permission": "No tienes permitido actualizar el sitio",
|
||||
"error.site.changeTitle.permission": "No tienes permiso para cambiar el título del sitio",
|
||||
"error.site.update.permission": "No tienes permiso para actualizar el sitio",
|
||||
|
||||
"error.template.default.notFound": "La plantilla por defecto no existe",
|
||||
|
||||
"error.unexpected": "An unexpected error occurred! Enable debug mode for more info: https://getkirby.com/docs/reference/system/options/debug",
|
||||
"error.unexpected": "¡Se ha producido un error inesperado! Activa el modo de depuración para obtener más información: https://getkirby.com/docs/reference/system/options/debug",
|
||||
|
||||
"error.user.changeEmail.permission": "No tienes permitido cambiar el correo electrónico para el usuario \"{name}\"",
|
||||
"error.user.changeLanguage.permission": "No tienes permitido cambiar el idioma para el usuario \"{name}\"",
|
||||
"error.user.changeName.permission": "No tienes permitido cambiar el nombre del usuario \"{name}\"",
|
||||
"error.user.changePassword.permission": "No tienes permitido cambiar la contraseña del usuario \"{name}\"",
|
||||
"error.user.changeRole.lastAdmin": "El rol para el último administrador no puede ser cambiado",
|
||||
"error.user.changeRole.permission": "No tienes permitido cambiar el rol del usuario \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "No tienes permitido promover a alguien al rol de admin",
|
||||
"error.user.changeEmail.permission": "No tienes permiso para cambiar el correo electrónico para el usuario \"{name}\"",
|
||||
"error.user.changeLanguage.permission": "No tienes permiso para cambiar el idioma para el usuario \"{name}\"",
|
||||
"error.user.changeName.permission": "No tienes permiso para cambiar el nombre del usuario \"{name}\"",
|
||||
"error.user.changePassword.permission": "No tienes permiso para cambiar la contraseña del usuario \"{name}\"",
|
||||
"error.user.changeRole.lastAdmin": "No se puede cambiar el rol del último administrador",
|
||||
"error.user.changeRole.permission": "No tienes permiso para cambiar el rol del usuario \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "No tienes permiso para promover a alguien al rol de admin",
|
||||
"error.user.create.permission": "No tienes permiso para crear este usuario",
|
||||
"error.user.delete": "El usuario \"{name}\" no puede ser eliminado",
|
||||
"error.user.delete.lastAdmin": "El último administrador no puede ser eliminado",
|
||||
"error.user.delete.lastUser": "El último usuario no puede ser eliminado",
|
||||
"error.user.delete.permission": "No tienes permitido eliminar el usuario \"{name}\"",
|
||||
"error.user.delete": "No se puede eliminar el usuario \"{name}\"",
|
||||
"error.user.delete.lastAdmin": "No se puede eliminar el último admin",
|
||||
"error.user.delete.lastUser": "No se puede eliminar el último usuario ",
|
||||
"error.user.delete.permission": "No tienes permiso para eliminar el usuario \"{name}\"",
|
||||
"error.user.duplicate": "Un usuario con la dirección de correo electrónico \"{email}\" ya existe",
|
||||
"error.user.email.invalid": "Por favor, introduce una dirección de correo electrónico válida",
|
||||
"error.user.language.invalid": "Por favor ingrese un idioma válido",
|
||||
"error.user.notFound": "El usuario \"{name}\" no pudo ser encontrado",
|
||||
"error.user.password.invalid": "Por favor introduce una contraseña válida. Las contraseñas deben tener al menos 8 caracteres de largo.",
|
||||
"error.user.language.invalid": "Por favor, introduce un idioma válido",
|
||||
"error.user.notFound": "No se puede encontrar el usuario \"{name}\"",
|
||||
"error.user.password.invalid": "Por favor, introduce una contraseña válida. Las contraseñas deben tener al menos 8 caracteres de largo.",
|
||||
"error.user.password.notSame": "Las contraseñas no coinciden",
|
||||
"error.user.password.undefined": "El usuario no tiene contraseña",
|
||||
"error.user.password.wrong": "Contraseña incorrecta",
|
||||
"error.user.role.invalid": "Por favor ingrese un rol válido",
|
||||
"error.user.undefined": "El usuario no puede ser encontrado",
|
||||
"error.user.update.permission": "No tienes permitido actualizar al usuario \"{name}\"",
|
||||
"error.user.role.invalid": "Por favor, introduce un rol válido",
|
||||
"error.user.undefined": "No se puede encontrar el usuario",
|
||||
"error.user.update.permission": "No tienes permiso para actualizar el usuario \"{name}\"",
|
||||
|
||||
"error.validation.accepted": "Por favor, confirma",
|
||||
"error.validation.alpha": "Por favor solo ingresa caracteres entre a-z",
|
||||
"error.validation.alphanum": "Por favor solo ingrese caracteres entre a-z o numerales 0-9",
|
||||
"error.validation.between": "Por favor, introduzca un valor entre \"{min}\" y \"{max}\"",
|
||||
"error.validation.boolean": "Por favor confirme o rechace",
|
||||
"error.validation.contains": "Por favor ingrese un valor que contenga \"{needle}\"",
|
||||
"error.validation.date": "Por favor introduzca una fecha valida",
|
||||
"error.validation.date.after": "Por favor introduce una fecha posterior a {date}",
|
||||
"error.validation.date.before": "Por favor introduce una fecha anterior a {date}",
|
||||
"error.validation.date.between": "Por favor introduce un número entre {min} y {max}",
|
||||
"error.validation.denied": "Por favor, rechace",
|
||||
"error.validation.alpha": "Por favor, introduce solo caracteres entre a-z",
|
||||
"error.validation.alphanum": "Por favor, introduce solo caracteres entre a-z o numerales 0-9",
|
||||
"error.validation.between": "Por favor, introduce un valor entre \"{min}\" y \"{max}\"",
|
||||
"error.validation.boolean": "Por favor, confirma o rechaza",
|
||||
"error.validation.contains": "Por favor, introduce un valor que contenga \"{needle}\"",
|
||||
"error.validation.date": "Por favor, introduce una fecha válida",
|
||||
"error.validation.date.after": "Por favor, introduce una fecha posterior a {date}",
|
||||
"error.validation.date.before": "Por favor, introduce una fecha anterior a {date}",
|
||||
"error.validation.date.between": "Por favor, introduce un número entre {min} y {max}",
|
||||
"error.validation.denied": "Por favor, rechaza",
|
||||
"error.validation.different": "El valor no debe ser \"{other}\"",
|
||||
"error.validation.email": "Por favor, introduce un correo electrónico válido",
|
||||
"error.validation.endswith": "El valor debe terminar con \"{end}\"",
|
||||
"error.validation.filename": "Por favor ingrese un nombre de archivo válido",
|
||||
"error.validation.in": "Por favor ingrese uno de los siguientes: ({in})",
|
||||
"error.validation.filename": "Por favor, introduce un nombre de archivo válido",
|
||||
"error.validation.in": "Por favor, introduce uno de los siguientes: ({in})",
|
||||
"error.validation.integer": "Por favor, introduce un numero integro válido",
|
||||
"error.validation.ip": "Por favor ingrese una dirección IP válida",
|
||||
"error.validation.less": "Por favor, introduzca un valor inferior a {max}",
|
||||
"error.validation.ip": "Por favor, introduce una dirección IP válida",
|
||||
"error.validation.less": "Por favor, introduce un valor inferior a {max}",
|
||||
"error.validation.match": "El valor no coincide con el patrón esperado",
|
||||
"error.validation.max": "Por favor, introduzca un valor igual o inferior a {max}",
|
||||
"error.validation.maxlength": "Por favor, introduzca un valor más corto. (max. {max} caracteres)",
|
||||
"error.validation.maxwords": "Por favor ingrese no más de {max} palabra(s)",
|
||||
"error.validation.min": "Por favor, introduzca un valor igual o mayor a {min}",
|
||||
"error.validation.minlength": "Por favor, introduzca un valor más largo. (min. {min} caracteres)",
|
||||
"error.validation.minwords": "Por favor ingrese al menos {min} palabra(s)",
|
||||
"error.validation.more": "Por favor, introduzca un valor mayor a {min}",
|
||||
"error.validation.notcontains": "Por favor ingrese un valor que no contenga \"{needle}\"",
|
||||
"error.validation.notin": "Por favor, no ingrese ninguno de los siguientes: ({notIn})",
|
||||
"error.validation.option": "Por favor seleccione una opción válida",
|
||||
"error.validation.num": "Por favor ingrese un número valido",
|
||||
"error.validation.required": "Por favor ingrese algo",
|
||||
"error.validation.same": "Por favor escribe \"{other}\"",
|
||||
"error.validation.max": "Por favor, introduce un valor igual o inferior a {max}",
|
||||
"error.validation.maxlength": "Por favor, introduce un valor más corto. (max. {max} caracteres)",
|
||||
"error.validation.maxwords": "Por favor, introduce no más de {max} palabra(s)",
|
||||
"error.validation.min": "Por favor, introduce un valor igual o mayor a {min}",
|
||||
"error.validation.minlength": "Por favor, introduce un valor más largo. (min. {min} caracteres)",
|
||||
"error.validation.minwords": "Por favor, introduce al menos {min} palabra(s)",
|
||||
"error.validation.more": "Por favor, introduce un valor mayor a {min}",
|
||||
"error.validation.notcontains": "Por favor, introduce un valor que no contenga \"{needle}\"",
|
||||
"error.validation.notin": "Por favor, no introduzcas ninguno de los siguientes: ({notIn})",
|
||||
"error.validation.option": "Por favor, selecciona una opción válida",
|
||||
"error.validation.num": "Por favor, introduce un número valido",
|
||||
"error.validation.required": "Por favor, introduce algo",
|
||||
"error.validation.same": "Por favor, introduce \"{other}\"",
|
||||
"error.validation.size": "El tamaño del valor debe ser \"{size}\"",
|
||||
"error.validation.startswith": "El valor debe comenzar con \"{start}\"",
|
||||
"error.validation.time": "Por favor ingrese una hora válida",
|
||||
"error.validation.time.after": "Por favor ingresa una fecha después de {time}",
|
||||
"error.validation.time.before": "Por favor ingresa una fecha antes de {time}",
|
||||
"error.validation.time.between": "Por favor ingresa un fecha entre {min} y {max}",
|
||||
"error.validation.url": "Por favor introduzca un URL válido",
|
||||
"error.validation.time": "Por favor, introduce una hora válida",
|
||||
"error.validation.time.after": "Por favor, introduce una fecha después de {time}",
|
||||
"error.validation.time.before": "Por favor, introduce una fecha antes de {time}",
|
||||
"error.validation.time.between": "Por favor, introduce un fecha entre {min} y {max}",
|
||||
"error.validation.url": "Por favor, introduce un URL válido",
|
||||
|
||||
"expand": "Expandir",
|
||||
"expand.all": "Expandir todo",
|
||||
|
||||
"field.required": "Este campo es requerido",
|
||||
"field.required": "Este campo es obligatorio",
|
||||
"field.blocks.changeType": "Cambiar tipo",
|
||||
"field.blocks.code.name": "Código",
|
||||
"field.blocks.code.language": "Idioma",
|
||||
"field.blocks.code.placeholder": "Tu código...",
|
||||
"field.blocks.delete.confirm": "¿Seguro que quieres eliminar este bloque?",
|
||||
"field.blocks.delete.confirm.all": "¿Seguro que quieres eliminar todos los bloques?",
|
||||
"field.blocks.delete.confirm.selected": "¿Seguro que quieres eliminar los bloques seleccionados?",
|
||||
"field.blocks.empty": "No hay bloques aún",
|
||||
"field.blocks.fieldsets.label": "Por favor selecciona un tipo de bloque...",
|
||||
"field.blocks.delete.confirm": "¿Realmente quieres eliminar este bloque?",
|
||||
"field.blocks.delete.confirm.all": "¿Realmente quieres eliminar todos los bloques?",
|
||||
"field.blocks.delete.confirm.selected": "¿Realmente quieres eliminar los bloques seleccionados?",
|
||||
"field.blocks.empty": "Aún no hay bloques",
|
||||
"field.blocks.fieldsets.label": "Por favor, selecciona un tipo de bloque...",
|
||||
"field.blocks.fieldsets.paste": "Presiona <kbd>{{ shortcut }}</kbd>para pegar/importar bloques en tu portapapeles ",
|
||||
"field.blocks.gallery.name": "Galería",
|
||||
"field.blocks.gallery.images.empty": "No hay imágenes aún",
|
||||
"field.blocks.gallery.images.empty": "Aún no hay imágenes",
|
||||
"field.blocks.gallery.images.label": "Imágenes",
|
||||
"field.blocks.heading.level": "Nivel",
|
||||
"field.blocks.heading.name": "Encabezado",
|
||||
@@ -268,94 +270,94 @@
|
||||
"field.blocks.quote.name": "Cita",
|
||||
"field.blocks.quote.text.label": "Texto",
|
||||
"field.blocks.quote.text.placeholder": "Cita...",
|
||||
"field.blocks.quote.citation.label": "Citation",
|
||||
"field.blocks.quote.citation.label": "Cita",
|
||||
"field.blocks.quote.citation.placeholder": "Por ...",
|
||||
"field.blocks.text.name": "Texto",
|
||||
"field.blocks.text.placeholder": "Text …",
|
||||
"field.blocks.text.placeholder": "Texto ...",
|
||||
"field.blocks.video.caption": "Leyenda",
|
||||
"field.blocks.video.name": "Video",
|
||||
"field.blocks.video.placeholder": "Enter a video URL",
|
||||
"field.blocks.video.url.label": "Video-URL",
|
||||
"field.blocks.video.placeholder": "Introduce la URL de un vídeo",
|
||||
"field.blocks.video.url.label": "Vídeo-URL",
|
||||
"field.blocks.video.url.placeholder": "https://youtube.com/?v=",
|
||||
|
||||
"field.files.empty": "Aún no hay archivos seleccionados",
|
||||
|
||||
"field.layout.delete": "Delete layout",
|
||||
"field.layout.delete.confirm": "Do you really want to delete this layout?",
|
||||
"field.layout.empty": "No rows yet",
|
||||
"field.layout.select": "Select a layout",
|
||||
"field.layout.delete": "Eliminar layout",
|
||||
"field.layout.delete.confirm": "¿Realmente quieres eliminar este layout?",
|
||||
"field.layout.empty": "Aún no hay filas",
|
||||
"field.layout.select": "Seleccionar layout",
|
||||
|
||||
"field.object.empty": "No information yet",
|
||||
"field.object.empty": "Aún no hay información",
|
||||
|
||||
"field.pages.empty": "Aún no hay páginas seleccionadas",
|
||||
|
||||
"field.structure.delete.confirm": "¿Realmente quieres eliminar esta fila?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "¿Realmente quieres eliminar todas las entradas?",
|
||||
"field.structure.empty": "Aún no hay entradas",
|
||||
|
||||
"field.users.empty": "Aún no hay usuarios seleccionados",
|
||||
|
||||
"file.blueprint": "This file has no blueprint yet. You can define the setup in <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.delete.confirm": "¿Realmente quieres eliminar <br><strong>{filename}</strong>?",
|
||||
"file.sort": "Change position",
|
||||
"file.sort": "Cambiar posición",
|
||||
|
||||
"files": "Archivos",
|
||||
"files.empty": "Aún no hay archivos",
|
||||
|
||||
"hide": "Hide",
|
||||
"hide": "Ocultar",
|
||||
"hour": "Hora",
|
||||
"import": "Import",
|
||||
"import": "Importar",
|
||||
"info": "Info",
|
||||
"insert": "Insertar",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
"insert.after": "Insertar después",
|
||||
"insert.before": "Insertar antes",
|
||||
"install": "Instalar",
|
||||
|
||||
"installation": "Instalación",
|
||||
"installation.completed": "El panel ha sido instalado",
|
||||
"installation.disabled": "El instalador del panel está deshabilitado en servidores públicos por defecto. Ejecute el instalador en una máquina local o habilítelo con la opción <code>panel.install</code>.",
|
||||
"installation.disabled": "El instalador del panel está deshabilitado en servidores públicos por defecto. Por favor, ejecuta el instalador en una máquina local o habilítalo con la opción <code>panel.install</code>.",
|
||||
"installation.issues.accounts": "La carpeta <code>/site/accounts</code> no existe o no se puede escribir",
|
||||
"installation.issues.content": "La carpeta <code>/content</code> no existe o no se puede escribir",
|
||||
"installation.issues.curl": "La extensión <code>CURL</code> es requerida",
|
||||
"installation.issues.headline": "No se pudo instalar el panel",
|
||||
"installation.issues.headline": "No se puede instalar el panel",
|
||||
"installation.issues.mbstring": "La extension <code>MB String</code> es requerida",
|
||||
"installation.issues.media": "La carpeta <code>/media</code> no existe o no se puede escribir",
|
||||
"installation.issues.php": "Asegúrate de usar <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Asegurese de estar usando <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby requiere <code>Apache</code>, <code>Nginx</code> o <code>Caddy</code>",
|
||||
"installation.issues.sessions": "La carpeta <code>/site/sessions</code> no existe o no se puede escribir",
|
||||
|
||||
"language": "Idioma",
|
||||
"language.code": "Código",
|
||||
"language.convert": "Hacer por defecto",
|
||||
"language.convert.confirm": "<p¿Realmente quieres convertir <strong>{name}</strong> al idioma por defecto? Esto no se puede deshacer.</p><p>Si <strong>{name}</strong> tiene contenido sin traducir, ya no habrá un respaldo válido y algunas partes de su sitio podrían estar vacías.</p>",
|
||||
"language.convert.confirm": "<p>¿Realmente quieres convertir <strong>{name}</strong> al idioma por defecto? Esto no se puede deshacer.</p><p>Si <strong>{name}</strong> tiene contenido sin traducir, ya no habrá un respaldo válido y algunas partes de tu sitio podrían estar vacías.</p>",
|
||||
"language.create": "Añadir un nuevo idioma",
|
||||
"language.delete.confirm": "¿De verdad quieres eliminar el idioma <strong>{name}</strong> incluyendo todas las traducciones? ¡Esto no se puede deshacer!",
|
||||
"language.delete.confirm": "¿Realmente quieres eliminar el idioma <strong>{name}</strong> incluyendo todas las traducciones? ¡Esto no se puede deshacer!",
|
||||
"language.deleted": "El idioma ha sido eliminado",
|
||||
"language.direction": "Leyendo dirección",
|
||||
"language.direction.ltr": "De izquierda a derecha",
|
||||
"language.direction.rtl": "De derecha a izquierda",
|
||||
"language.locale": "PHP locale string",
|
||||
"language.locale.warning": "Estas utilizando un configuración local. Por favor modifícalo en el archivo del lenguaje en /site/languages",
|
||||
"language.locale.warning": "Estás utilizando una configuración local. Por favor, modifícalo en el archivo del lenguaje en /site/languages",
|
||||
"language.name": "Nombre",
|
||||
"language.updated": "El idioma ha sido actualizado",
|
||||
|
||||
"languages": "Idiomas",
|
||||
"languages.default": "Idioma predeterminado",
|
||||
"languages.empty": "Todavía no hay idiomas",
|
||||
"languages.empty": "Aún no hay idiomas",
|
||||
"languages.secondary": "Idiomas secundarios",
|
||||
"languages.secondary.empty": "Todavía no hay idiomas secundarios",
|
||||
"languages.secondary.empty": "Aún no hay idiomas secundarios",
|
||||
|
||||
"license": "Licencia",
|
||||
"license.buy": "Comprar una licencia",
|
||||
"license.register": "Registro",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Recibió su código de licencia después de la compra por correo electrónico. Por favor copie y pegue para registrarse.",
|
||||
"license.register.label": "Por favor ingrese su código de licencia",
|
||||
"license.register.domain": "Your license will be registered to <strong>{host}</strong>.",
|
||||
"license.register.local": "You are about to register your license for your local domain <strong>{host}</strong>. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
|
||||
"license.manage": "Gestiona licencias",
|
||||
"license.register.help": "Recibiste tu código de licencia tras la compra por correo electrónico. Por favor, copia y pega para registrarte.",
|
||||
"license.register.label": "Por favor, introduce tu código de licencia",
|
||||
"license.register.domain": "Tu licencia será registrada para <strong>{host}</strong>.",
|
||||
"license.register.local": "Estás a punto de registrar tu licencia para el dominio local <strong>{host}</strong>. Si este sitio va a ser desplegado en un dominio público, por favor regístralo allí. Si {host} es el dominio en el que quiere registrar Kirby, por favor continúa.",
|
||||
"license.register.success": "Gracias por apoyar a Kirby",
|
||||
"license.unregistered": "Esta es una demo no registrada de Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
"license.unregistered.label": "No registrado",
|
||||
|
||||
"link": "Enlace",
|
||||
"link.text": "Texto del enlace",
|
||||
@@ -371,20 +373,20 @@
|
||||
"lock.isUnlocked": "Tus cambios sin guardar han sido sobrescritos por otro usuario. Puedes descargar los cambios y fusionarlos manualmente.",
|
||||
|
||||
"login": "Iniciar sesión",
|
||||
"login.code.label.login": "Login code",
|
||||
"login.code.label.password-reset": "Password reset code",
|
||||
"login.code.label.login": "Código de inicio de sesión",
|
||||
"login.code.label.password-reset": "Código de restablecimiento de contraseña",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
"login.code.text.email": "If your email address is registered, the requested code was sent via email.",
|
||||
"login.email.login.body": "Hi {user.nameOrEmail},\n\nYou recently requested a login code for the Panel of {site}.\nThe following login code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a login code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
|
||||
"login.email.login.subject": "Your login code",
|
||||
"login.email.password-reset.body": "Hi {user.nameOrEmail},\n\nYou recently requested a password reset code for the Panel of {site}.\nThe following password reset code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a password reset code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
|
||||
"login.email.password-reset.subject": "Your password reset code",
|
||||
"login.code.text.email": "Si tu dirección de correo electrónico está registrada, el código solicitado fue enviado por correo electrónico.",
|
||||
"login.email.login.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.",
|
||||
"login.email.login.subject": "Tu código de inicio de sesión",
|
||||
"login.email.password-reset.body": "Hola {user.nameOrEmail},\n\nHas pedido, recientemente, un código de restablecimiento de contraseña para el Panel del sitio {site}.\nEl siguiente código de restablecimiento de contraseña será válido por {timeout} minutos:\n\n{code}\n\nSi no pediste un código de restablecimiento de contraseña, por favor ignora este correo o contacta a tu administrador si tienes dudas.\nPor seguridad, por favor NO reenvíes este correo.",
|
||||
"login.email.password-reset.subject": "Tu código de restablecimiento de contraseña",
|
||||
"login.remember": "Mantener sesión iniciada",
|
||||
"login.reset": "Reset password",
|
||||
"login.toggleText.code.email": "Login via email",
|
||||
"login.toggleText.code.email-password": "Login with password",
|
||||
"login.toggleText.password-reset.email": "Forgot your password?",
|
||||
"login.toggleText.password-reset.email-password": "← Back to login",
|
||||
"login.reset": "Restablecer contraseña",
|
||||
"login.toggleText.code.email": "Iniciar sesión por correo electrónico",
|
||||
"login.toggleText.code.email-password": "Iniciar sesión con contraseña",
|
||||
"login.toggleText.password-reset.email": "¿Olvidaste tu contraseña?",
|
||||
"login.toggleText.password-reset.email-password": "← Volver al inicio de sesión",
|
||||
|
||||
"logout": "Cerrar sesión",
|
||||
|
||||
@@ -414,34 +416,34 @@
|
||||
"off": "Apagado",
|
||||
"on": "Encendido",
|
||||
"open": "Abrir",
|
||||
"open.newWindow": "Open in new window",
|
||||
"open.newWindow": "Abrir en una ventana nueva",
|
||||
"options": "Opciones",
|
||||
"options.none": "No options",
|
||||
"options.none": "Sin opciones",
|
||||
|
||||
"orientation": "Orientación",
|
||||
"orientation.landscape": "Paisaje",
|
||||
"orientation.portrait": "Retrato",
|
||||
"orientation.square": "Cuadrado",
|
||||
|
||||
"page.blueprint": "This page has no blueprint yet. You can define the setup in <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Cambiar URL",
|
||||
"page.changeSlug.fromTitle": "Crear en base al título",
|
||||
"page.changeStatus": "Cambiar estado",
|
||||
"page.changeStatus.position": "Por favor seleccione una posición",
|
||||
"page.changeStatus.select": "Seleccione un nuevo estado",
|
||||
"page.changeStatus.position": "Por favor, selecciona una posición",
|
||||
"page.changeStatus.select": "Selecciona un nuevo estado",
|
||||
"page.changeTemplate": "Cambiar plantilla",
|
||||
"page.delete.confirm": "¿Realmente quieres eliminar <strong>{title}</strong>?",
|
||||
"page.delete.confirm.subpages": "<strong>Esta página tiene subpáginas</strong>. <br>Todas las subpáginas también serán eliminadas.",
|
||||
"page.delete.confirm.title": "Introduzca el título de la página para confirmar",
|
||||
"page.delete.confirm.title": "Introduce el título de la página para confirmar",
|
||||
"page.draft.create": "Crear borrador",
|
||||
"page.duplicate.appendix": "Copiar",
|
||||
"page.duplicate.files": "Copiar archivos",
|
||||
"page.duplicate.pages": "Copiar páginas",
|
||||
"page.sort": "Change position",
|
||||
"page.sort": "Cambiar posición",
|
||||
"page.status": "Estado",
|
||||
"page.status.draft": "Borrador",
|
||||
"page.status.draft.description": "The page is in draft mode and only visible for logged in editors or via secret link",
|
||||
"page.status.listed": "Publica",
|
||||
"page.status.draft.description": "La página está en modo borrador y solo es visible para editores conectados o mediante enlace secreto.",
|
||||
"page.status.listed": "Pública",
|
||||
"page.status.listed.description": "La página es pública para cualquiera",
|
||||
"page.status.unlisted": "Sin publicar",
|
||||
"page.status.unlisted.description": "La página solo es accesible vía URL",
|
||||
@@ -455,24 +457,24 @@
|
||||
"pagination.page": "Página",
|
||||
|
||||
"password": "Contraseña",
|
||||
"paste": "Paste",
|
||||
"paste.after": "Paste after",
|
||||
"paste": "Pegar",
|
||||
"paste.after": "Pegar después",
|
||||
"pixel": "Pixel",
|
||||
"plugin": "Plugin",
|
||||
"plugins": "Plugins",
|
||||
"prev": "Anterior",
|
||||
"preview": "Preview",
|
||||
"preview": "Previsualizar",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Renombrar",
|
||||
"replace": "Remplazar",
|
||||
"retry": "Inténtalo de nuevo",
|
||||
"revert": "Revertir",
|
||||
"revert.confirm": "Do you really want to <strong>delete all unsaved changes</strong>?",
|
||||
"revert.confirm": "¿Realmente quieres <strong>eliminar todos los cambios sin guardar</strong>?",
|
||||
|
||||
"role": "Rol",
|
||||
"role.admin.description": "El administrador tiene todos los derechos",
|
||||
"role.admin.title": "Administrador",
|
||||
"role.all": "Todos",
|
||||
"role.all": "Todo",
|
||||
"role.empty": "No hay usuarios con este rol",
|
||||
"role.description.placeholder": "Sin descripción",
|
||||
"role.nobody.description": "Este es un rol alternativo sin permisos",
|
||||
@@ -480,49 +482,49 @@
|
||||
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"search.min": "Enter {min} characters to search",
|
||||
"search.all": "Show all",
|
||||
"search.results.none": "No results",
|
||||
"search.min": "Introduce {min} caracteres para buscar",
|
||||
"search.all": "Mostrar todo",
|
||||
"search.results.none": "Sin resultados",
|
||||
|
||||
"section.required": "Esta sección es requerida",
|
||||
"section.required": "Esta sección es obligatoria",
|
||||
|
||||
"security": "Security",
|
||||
"security": "Seguridad",
|
||||
"select": "Seleccionar",
|
||||
"server": "Server",
|
||||
"server": "Servidor",
|
||||
"settings": "Ajustes",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"show": "Mostrar",
|
||||
"site.blueprint": "Este archivo aún no tiene blueprint. Puedes definir la configuración en <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamaño",
|
||||
"slug": "Apéndice URL",
|
||||
"slug": "Apéndice de URL",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.eol.kirby": "Your installed Kirby version has reached end-of-life and will not receive further security updates",
|
||||
"system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
"system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
|
||||
"system.issues.vulnerability.plugin": "Your installation might be affected by the following vulnerability in the { plugin } plugin ({ severity } severity): { description }",
|
||||
"system.updateStatus": "Update status",
|
||||
"system.updateStatus.error": "Could not check for updates",
|
||||
"system.updateStatus.not-vulnerable": "No known vulnerabilities",
|
||||
"system.updateStatus.security-update": "Free security update { version } available",
|
||||
"system.updateStatus.security-upgrade": "Upgrade { version } with security fixes available",
|
||||
"system.updateStatus.unreleased": "Unreleased version",
|
||||
"system.updateStatus.up-to-date": "Up to date",
|
||||
"system.updateStatus.update": "Free update { version } available",
|
||||
"system.updateStatus.upgrade": "Upgrade { version } available",
|
||||
"stats.empty": "Sin informes",
|
||||
"system.issues.content": "La carpeta content parece estar expuesta",
|
||||
"system.issues.eol.kirby": "La versión de Kirby que tienes instalada ha llegado al final de su vida útil y no recibirá más actualizaciones de seguridad.",
|
||||
"system.issues.eol.plugin": "La versión del plugin { plugin } que tienes instalada ha llegado al final de su vida útil y no recibirá más actualizaciones de seguridad.",
|
||||
"system.issues.debug": "La depuración debe estar desactivada en producción",
|
||||
"system.issues.git": "La carpeta .git parece estar expuesta",
|
||||
"system.issues.https": "Recomendamos HTTPS para todos tus sitios web",
|
||||
"system.issues.kirby": "La carpeta kirby parece estar expuesta",
|
||||
"system.issues.site": "La carpeta site parece estar expuesta",
|
||||
"system.issues.vulnerability.kirby": "Tu instalación podría estar afectada por la siguiente vulnerabilidad ({ severity } gravedad): { description }",
|
||||
"system.issues.vulnerability.plugin": "Tu instalación podría estar afectada por la siguiente vulnerabilidad en el plugin { plugin } ({ severity } gravedad): { description }",
|
||||
"system.updateStatus": "Estado de actualización",
|
||||
"system.updateStatus.error": "No se pudo comprobar si hay actualizaciones",
|
||||
"system.updateStatus.not-vulnerable": "Sin vulnerabilidades conocidas",
|
||||
"system.updateStatus.security-update": "Actualización gratuita de seguridad { version } disponible",
|
||||
"system.updateStatus.security-upgrade": "Actualización { versión } con correcciones de seguridad disponibles",
|
||||
"system.updateStatus.unreleased": "Versión no publicada",
|
||||
"system.updateStatus.up-to-date": "Actualizado",
|
||||
"system.updateStatus.update": "Actualización gratuita {version} disponible",
|
||||
"system.updateStatus.upgrade": "Actualización {versión} disponible",
|
||||
|
||||
"title": "Titulo",
|
||||
"template": "Plantilla",
|
||||
"today": "Hoy",
|
||||
|
||||
"toolbar.button.code": "Código",
|
||||
"toolbar.button.bold": "Negritas",
|
||||
"toolbar.button.bold": "Negrita",
|
||||
"toolbar.button.email": "Correo electrónico",
|
||||
"toolbar.button.headings": "Encabezados",
|
||||
"toolbar.button.heading.1": "Encabezado 1",
|
||||
@@ -533,13 +535,13 @@
|
||||
"toolbar.button.heading.6": "Encabezado 6",
|
||||
"toolbar.button.italic": "Italica",
|
||||
"toolbar.button.file": "Archivo",
|
||||
"toolbar.button.file.select": "Seleccione un archivo",
|
||||
"toolbar.button.file.upload": "Sube un archivo",
|
||||
"toolbar.button.file.select": "Seleccionar un archivo",
|
||||
"toolbar.button.file.upload": "Subir un archivo",
|
||||
"toolbar.button.link": "Enlace",
|
||||
"toolbar.button.paragraph": "Paragraph",
|
||||
"toolbar.button.strike": "Strike-through",
|
||||
"toolbar.button.paragraph": "Parágrafo",
|
||||
"toolbar.button.strike": "Tachado",
|
||||
"toolbar.button.ol": "Lista ordenada",
|
||||
"toolbar.button.underline": "Underline",
|
||||
"toolbar.button.underline": "Subrayado",
|
||||
"toolbar.button.ul": "Lista de viñetas",
|
||||
|
||||
"translation.author": "Turqueso",
|
||||
@@ -548,15 +550,15 @@
|
||||
"translation.locale": "es_ES",
|
||||
|
||||
"upload": "Subir",
|
||||
"upload.error.cantMove": "El archivo subido no puede ser movido",
|
||||
"upload.error.cantMove": "El archivo subido no pudo ser movido",
|
||||
"upload.error.cantWrite": "Error al escribir el archivo en el disco",
|
||||
"upload.error.default": "El archivo no pudo ser subido",
|
||||
"upload.error.extension": "Subida de archivo detenida por la extensión",
|
||||
"upload.error.formSize": "El archivo subido excede la directiva MAX_FILE_SIZE que fue especificada en el formulario",
|
||||
"upload.error.iniPostSize": "El archivo subido excede la directiva post_max_size directive en php.ini",
|
||||
"upload.error.iniSize": "El archivo subido excede la directiva upload_max_filesize en php.ini",
|
||||
"upload.error.noFile": "Ningún archivo ha sido subido",
|
||||
"upload.error.noFiles": "Ningún archivo ha sido subido",
|
||||
"upload.error.noFile": "No se ha subido ningún archivo",
|
||||
"upload.error.noFiles": "No se ha subido ningún archivo",
|
||||
"upload.error.partial": "El archivo ha sido subido solo parcialmente",
|
||||
"upload.error.tmpDir": "No se encuentra la carpeta temporal",
|
||||
"upload.errors": "Error",
|
||||
@@ -566,15 +568,15 @@
|
||||
"url.placeholder": "https://ejemplo.com",
|
||||
|
||||
"user": "Usuario",
|
||||
"user.blueprint": "You can define additional sections and form fields for this user role in <strong>/site/blueprints/users/{blueprint}.yml</strong>",
|
||||
"user.blueprint": "Puedes definir secciones y campos de formulario adicionales para este rol de usuario en <strong>/site/blueprints/users/{blueprint}.yml</strong>",
|
||||
"user.changeEmail": "Cambiar correo electrónico",
|
||||
"user.changeLanguage": "Cambiar idioma",
|
||||
"user.changeName": "Renombrar a este usuario",
|
||||
"user.changePassword": "Cambia contraseña",
|
||||
"user.changePassword": "Cambiar contraseña",
|
||||
"user.changePassword.new": "Nueva contraseña",
|
||||
"user.changePassword.new.confirm": "Confirmar nueva contraseña…",
|
||||
"user.changeRole": "Cambiar rol",
|
||||
"user.changeRole.select": "Seleccione un nuevo rol",
|
||||
"user.changeRole.select": "Seleccionar un nuevo rol",
|
||||
"user.create": "Añadir un nuevo usuario",
|
||||
"user.delete": "Eliminar este usuario",
|
||||
"user.delete.confirm": "¿Realmente quieres eliminar <br><strong>{email}</strong>?",
|
||||
@@ -582,19 +584,19 @@
|
||||
"users": "Usuarios",
|
||||
|
||||
"version": "Versión",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
"version.current": "Versión actual",
|
||||
"version.latest": "Última versión",
|
||||
"versionInformation": "Información sobre la versión",
|
||||
|
||||
"view.account": "Su cuenta",
|
||||
"view.account": "Tu cuenta",
|
||||
"view.installation": "Instalación",
|
||||
"view.languages": "Idiomas",
|
||||
"view.resetPassword": "Reset password",
|
||||
"view.resetPassword": "Restablecer contraseña",
|
||||
"view.site": "Sitio",
|
||||
"view.system": "System",
|
||||
"view.system": "Sistema",
|
||||
"view.users": "Usuarios",
|
||||
|
||||
"welcome": "Bienvenido(a)",
|
||||
"year": "Año",
|
||||
"yes": "yes"
|
||||
"yes": "Sí"
|
||||
}
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "You must add at least one block",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "قالب ایمیل «{name}» پیدا نشد",
|
||||
|
||||
"error.field.converter.invalid": "مبدل «{converter}» نامعتبر است",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "نصب پانل کاربری ممکن نیست",
|
||||
"installation.issues.mbstring": "افزونه <code>MB String</code> مورد نیاز است",
|
||||
"installation.issues.media": "پوشه <code>/media</code> موجود نیست یا قابل نوشتن نیست",
|
||||
"installation.issues.php": "لطفا از پیاچپی 7 یا بالاتر استفاده کنید",
|
||||
"installation.issues.php": "لطفا از پیاچپی 8 یا بالاتر استفاده کنید",
|
||||
"installation.issues.server": "کربی نیاز به <code>Apache</code>، <code>Nginx</code> یا <code>Caddy</code> دارد",
|
||||
"installation.issues.sessions": "پوشه <code>/site/sessions</code> وجود ندارد یا قابل نوشتن نیست",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Lisää vähintään yksi lohko",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Nimellä \"{name}\" ja kyseisellä verkkotunnuksella ei löydy sähköpostiosoitetta",
|
||||
|
||||
"error.field.converter.invalid": "Muunnin \"{converter}\" ei kelpaa",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Paneelia ei voida asentaa",
|
||||
"installation.issues.mbstring": "<code>MB String</code>-laajennos on pakollinen",
|
||||
"installation.issues.media": "<code>/media</code> -kansio ei ole olemassa tai siihen ei voi kirjoittaa",
|
||||
"installation.issues.php": "Varmista että <code>PHP 7+</code> on käytössä",
|
||||
"installation.issues.php": "Varmista että <code>PHP 8+</code> on käytössä",
|
||||
"installation.issues.server": "Kirby tarvitsee jonkun seuraavista: <code>Apache</code>, <code>Nginx</code> tai <code>Caddy</code>",
|
||||
"installation.issues.sessions": "<code>/site/sessions</code> -kansio ei ole olemassa tai siihen ei voi kirjoittaa",
|
||||
|
||||
|
@@ -72,10 +72,12 @@
|
||||
"error.blocks.min.singular": "Vous devez ajouter au moins un bloc",
|
||||
"error.blocks.validation": "Il y a une erreur sur le champ \"{field}\" du bloc {index} utilisant le type de bloc \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Type de cache incorrect \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "La configuration de courriel « {name} » n’a pu être trouvé ",
|
||||
|
||||
"error.field.converter.invalid": "Convertisseur « {converter} » incorrect",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Champ \"{ name }\" : Le type de champ \"{ type }\" n’existe pas",
|
||||
|
||||
"error.file.changeName.empty": "Le nom ne peut être vide",
|
||||
"error.file.changeName.permission": "Vous n’êtes pas autorisé à modifier le nom de « {filename} »",
|
||||
@@ -290,7 +292,7 @@
|
||||
"field.pages.empty": "Pas encore de page sélectionnée",
|
||||
|
||||
"field.structure.delete.confirm": "Voulez-vous vraiment supprimer cette ligne ?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "Voulez-vous vraiment supprimer toutes les entrées ?",
|
||||
"field.structure.empty": "Pas encore d’entrée",
|
||||
|
||||
"field.users.empty": "Pas encore d’utilisateur sélectionné",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Le Panel ne peut être installé",
|
||||
"installation.issues.mbstring": "L’extension <code>MB String</code> est requise",
|
||||
"installation.issues.media": "Le dossier <code>/media</code> n’existe pas ou n’est pas accessible en écriture",
|
||||
"installation.issues.php": "Veuillez utiliser <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Veuillez utiliser <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby requiert <code>Apache</code>, <code>Nginx</code> ou <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Le dossier <code>/site/sessions</code> n’existe pas ou n’est pas accessible en écriture",
|
||||
|
||||
@@ -351,8 +353,8 @@
|
||||
"license.manage": "Gérer vos licences",
|
||||
"license.register.help": "Vous avez reçu votre numéro de licence par courriel après l'achat. Veuillez le copier et le coller ici pour l'enregistrer.",
|
||||
"license.register.label": "Veuillez saisir votre numéro de licence",
|
||||
"license.register.domain": "Your license will be registered to <strong>{host}</strong>.",
|
||||
"license.register.local": "You are about to register your license for your local domain <strong>{host}</strong>. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
|
||||
"license.register.domain": "Votre licence sera enregistrée pour <strong>{host}</strong>.",
|
||||
"license.register.local": "Vous êtes sur le point d’enregistrer votre licence pour votre domaine local <strong>{host}</strong>. Si votre site sera déployé sur un domaine publique, veuillez plutôt l’y l’enregistrer. Si {host} est le domaine pour lequel vous voulez enregistrer Kirby, veuillez continuer.",
|
||||
"license.register.success": "Merci pour votre soutien à Kirby",
|
||||
"license.unregistered": "Ceci est une démo non enregistrée de Kirby",
|
||||
"license.unregistered.label": "Non enregistré",
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Legalább egy blokkot hozzá kell adnod",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "A \"{name}\" email-beállítás nem található",
|
||||
|
||||
"error.field.converter.invalid": "Érvénytelen konverter: \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "A panel telepítése sikertelen",
|
||||
"installation.issues.mbstring": "Az <code>MB String</code> bővítmény engedélyezése szükséges",
|
||||
"installation.issues.media": "A <code>/media</code> mappa nem létezik vagy nem írható",
|
||||
"installation.issues.php": "Bizonyosodj meg róla, hogy az általad használt PHP-verzió <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Bizonyosodj meg róla, hogy az általad használt PHP-verzió <code>PHP 8+</code>",
|
||||
"installation.issues.server": "A Kirby az alábbi szervereken futtatható: <code>Apache</code>, <code>Nginx</code> vagy <code>Caddy</code>",
|
||||
"installation.issues.sessions": "A <code>/site/sessions</code> könyvtár nem létezik vagy nem írható",
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"account.changeName": "Change your name",
|
||||
"account.delete": "Delete your account",
|
||||
"account.delete.confirm": "Do you really want to delete your account? You will be logged out immediately. Your account cannot be recovered.",
|
||||
"account.changeName": "Ubah nama Anda",
|
||||
"account.delete": "Hapus akun Anda",
|
||||
"account.delete.confirm": "Anda yakin menghapus akun? Anda akan dikeluarkan segera. Akun Anda tidak dapat dipulihkan.",
|
||||
|
||||
"add": "Tambah",
|
||||
"author": "Author",
|
||||
"author": "Penulis",
|
||||
"avatar": "Gambar profil",
|
||||
"back": "Kembali",
|
||||
"cancel": "Batal",
|
||||
@@ -14,7 +14,7 @@
|
||||
"collapse": "Lipat",
|
||||
"collapse.all": "Lipat Semua",
|
||||
"copy": "Salin",
|
||||
"copy.all": "Copy all",
|
||||
"copy.all": "Salin semua",
|
||||
"create": "Buat",
|
||||
|
||||
"date": "Tanggal",
|
||||
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Anda setidaknya menambahkan satu blok",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Surel \"{name}\" tidak dapat ditemukan",
|
||||
|
||||
"error.field.converter.invalid": "Konverter \"{converter}\" tidak valid",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Panel tidak dapat dipasang",
|
||||
"installation.issues.mbstring": "Ekstensi <code>MB String</code> diperlukan",
|
||||
"installation.issues.media": "Folder <code>/media</code> tidak ada atau tidak dapat ditulis",
|
||||
"installation.issues.php": "Pastikan Anda menggunakan <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Pastikan Anda menggunakan <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby memerlukan <code>Apache</code>, <code>Nginx</code>, atau <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Folder <code>/site/sessions</code> tidak ada atau tidak dapat ditulis",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Allavegana einn bálkur takk",
|
||||
"error.blocks.validation": "Það er villa í {field} sviðinu í bálkinum {index} sem notar {fieldset} bálkgerðina",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Netfangstillingarnar: \"{name}\" fundust ekki",
|
||||
|
||||
"error.field.converter.invalid": "Ógildur umbreytari \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Uppsetning Panelsins mistókst hrapalega",
|
||||
"installation.issues.mbstring": "<code>MB String</code> er hér bráðnauðsynleg",
|
||||
"installation.issues.media": "<code>/media</code> mappan er annaðhvort ekki til eða er ekki skrifanleg",
|
||||
"installation.issues.php": "Notaðu <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Notaðu <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby krefst <code>Apache</code>, <code>Nginx</code> eða <code>Caddy</code>",
|
||||
"installation.issues.sessions": "<code>/site/sessions</code> mappan er annaðhvort ekki til eða er ekki skrifanleg",
|
||||
|
||||
|
@@ -49,13 +49,13 @@
|
||||
"email": "Email",
|
||||
"email.placeholder": "mail@esempio.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
"entries": "Voci",
|
||||
"entry": "Voce",
|
||||
|
||||
"environment": "Ambiente",
|
||||
|
||||
"error.access.code": "Codice non valido",
|
||||
"error.access.login": "Login Invalido",
|
||||
"error.access.login": "Login invalido",
|
||||
"error.access.panel": "Non ti è permesso accedere al pannello",
|
||||
"error.access.view": "Non ti è permesso accedere a questa parte del pannello",
|
||||
|
||||
@@ -70,12 +70,14 @@
|
||||
"error.blocks.max.singular": "Non puoi aggiungere più di un blocco",
|
||||
"error.blocks.min.plural": "Devi aggiungere almeno {min} blocchi",
|
||||
"error.blocks.min.singular": "Devi aggiungere almeno un blocco",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
"error.blocks.validation": "C'è un errore sul campo \"{field}\" nel blocco {index} che utilizza il tipo di blocco \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Tipo di cache \"{type}\" non valido",
|
||||
|
||||
"error.email.preset.notFound": "Non è stato possibile trovare il preset email \"{name}\"",
|
||||
|
||||
"error.field.converter.invalid": "Convertitore \"{converter}\" non valido",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Campo \"{ name }\": il tipo di campo \"{ type }\" non esiste",
|
||||
|
||||
"error.file.changeName.empty": "Il nome non dev'essere vuoto",
|
||||
"error.file.changeName.permission": "Non ti è permesso modificare il nome di \"{filename}\"",
|
||||
@@ -108,14 +110,14 @@
|
||||
"error.language.name": "Inserisci un nome valido per la lingua",
|
||||
"error.language.notFound": "La lingua non è stata trovata",
|
||||
|
||||
"error.layout.validation.block": "There's an error on the \"{field}\" field in block {blockIndex} using the \"{fieldset}\" block type in layout {layoutIndex}",
|
||||
"error.layout.validation.block": "C'è un errore sul campo \"{field}\" nel blocco {blockIndex} che utilizza il tipo di blocco \"{fieldset}\" nel layout {layoutIndex}",
|
||||
"error.layout.validation.settings": "C'è un errore nelle impostazioni del layout {index}",
|
||||
|
||||
"error.license.format": "Inserisci un codice di licenza valido",
|
||||
"error.license.email": "Inserisci un indirizzo email valido",
|
||||
"error.license.verification": "Non è stato possibile verificare la licenza",
|
||||
|
||||
"error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
|
||||
"error.object.validation": "C'è un errore nel campo \"{label}\":\n{message}",
|
||||
|
||||
"error.offline": "Il pannello di controllo è attualmente offline",
|
||||
|
||||
@@ -285,12 +287,12 @@
|
||||
"field.layout.empty": "Nessuna riga inserita",
|
||||
"field.layout.select": "Scegli un layout",
|
||||
|
||||
"field.object.empty": "No information yet",
|
||||
"field.object.empty": "Ancora nessuna informazione",
|
||||
|
||||
"field.pages.empty": "Nessuna pagina selezionata",
|
||||
|
||||
"field.structure.delete.confirm": "Vuoi veramente eliminare questo elemento?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "Vuoi davvero cancellare tutte le voci?",
|
||||
"field.structure.empty": "Non ci sono ancora elementi.",
|
||||
|
||||
"field.users.empty": "Nessun utente selezionato",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Il pannello non può esser installato",
|
||||
"installation.issues.mbstring": "È necessaria l'estensione <code>MB String</code>",
|
||||
"installation.issues.media": "La cartella <code>/media</code> non esiste o non dispone dei permessi di scrittura",
|
||||
"installation.issues.php": "Assicurati di utilizzare <code>PHP 7.1+</code>",
|
||||
"installation.issues.php": "Assicurati di utilizzare <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby necessita di <code>Apache</code>, <code>Nginx</code> o <code>Caddy</code>",
|
||||
"installation.issues.sessions": "La cartella <code>/site/sessions</code>non esiste o non dispone dei permessi di scrittura",
|
||||
|
||||
@@ -348,14 +350,14 @@
|
||||
"license": "Licenza di Kirby",
|
||||
"license.buy": "Acquista una licenza",
|
||||
"license.register": "Registra",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.manage": "Gestisci le tue licenze",
|
||||
"license.register.help": "Hai ricevuto il codice di licenza tramite email dopo l'acquisto. Per favore inseriscilo per registrare Kirby.",
|
||||
"license.register.label": "Inserisci il codice di licenza",
|
||||
"license.register.domain": "Your license will be registered to <strong>{host}</strong>.",
|
||||
"license.register.local": "You are about to register your license for your local domain <strong>{host}</strong>. If this site will be deployed to a public domain, please register it there instead. If {host} is the domain you want to license Kirby to, please continue.",
|
||||
"license.register.domain": "La tua licenza verrà registrata su <strong>{host}</strong>.",
|
||||
"license.register.local": "Stai per registrare la licenza per il dominio locale <strong>{host}</strong>. Se questo sito verrà rilasciato su un dominio pubblico, ti preghiamo di registrarlo lì. Se {host} è il dominio per il quale desideri ottenere la licenza di Kirby, procedi pure.",
|
||||
"license.register.success": "Ti ringraziamo per aver supportato Kirby",
|
||||
"license.unregistered": "Questa è una versione demo di Kirby non registrata",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
"license.unregistered.label": "Non registrato",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Testo del link",
|
||||
@@ -486,7 +488,7 @@
|
||||
|
||||
"section.required": "La sezione è obbligatoria",
|
||||
|
||||
"security": "Security",
|
||||
"security": "Sicurezza",
|
||||
"select": "Seleziona",
|
||||
"server": "Server",
|
||||
"settings": "Impostazioni",
|
||||
@@ -496,26 +498,26 @@
|
||||
"slug": "URL",
|
||||
"sort": "Ordina",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.eol.kirby": "Your installed Kirby version has reached end-of-life and will not receive further security updates",
|
||||
"system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
"system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
|
||||
"system.issues.vulnerability.plugin": "Your installation might be affected by the following vulnerability in the { plugin } plugin ({ severity } severity): { description }",
|
||||
"system.updateStatus": "Update status",
|
||||
"system.updateStatus.error": "Could not check for updates",
|
||||
"system.updateStatus.not-vulnerable": "No known vulnerabilities",
|
||||
"system.updateStatus.security-update": "Free security update { version } available",
|
||||
"system.updateStatus.security-upgrade": "Upgrade { version } with security fixes available",
|
||||
"system.updateStatus.unreleased": "Unreleased version",
|
||||
"system.updateStatus.up-to-date": "Up to date",
|
||||
"system.updateStatus.update": "Free update { version } available",
|
||||
"system.updateStatus.upgrade": "Upgrade { version } available",
|
||||
"stats.empty": "Nessuna segnalazione",
|
||||
"system.issues.content": "La cartella content sembra essere esposta",
|
||||
"system.issues.eol.kirby": "La versione di Kirby installata è giunta alla fine del suo ciclo di vita e non riceverà ulteriori aggiornamenti di sicurezza ",
|
||||
"system.issues.eol.plugin": "La versione installata del plugin { plugin } è giunta alla fine del suo ciclo di vita e non riceverà ulteriori aggiornamenti di sicurezza",
|
||||
"system.issues.debug": "Il debug deve essere disattivato in produzione",
|
||||
"system.issues.git": "La cartella .git sembra essere esposta",
|
||||
"system.issues.https": "Raccomandiamo l'utilizzo di HTTPS per tutti i siti",
|
||||
"system.issues.kirby": "La cartella kirby sembra essere esposta",
|
||||
"system.issues.site": "La cartella site sembra essere esposta",
|
||||
"system.issues.vulnerability.kirby": "La tua installazione potrebbe essere colpita dalla seguente vulnerabilità ({ severity } gravità): { description }",
|
||||
"system.issues.vulnerability.plugin": "La tua installazione potrebbe essere colpita dalla seguente vulnerabilità nel plugin { plugin } ({ severity } gravità): { description }",
|
||||
"system.updateStatus": "Aggiorna lo stato",
|
||||
"system.updateStatus.error": "Impossibile verificare gli aggiornamenti",
|
||||
"system.updateStatus.not-vulnerable": "Nessuna vulnerabilità conosciuta",
|
||||
"system.updateStatus.security-update": "Aggiornamento di sicurezza gratuito { version } disponibile",
|
||||
"system.updateStatus.security-upgrade": "Aggiornamento { version } con le correzioni di sicurezza disponibili",
|
||||
"system.updateStatus.unreleased": "Versione non rilasciata",
|
||||
"system.updateStatus.up-to-date": "Aggiornato",
|
||||
"system.updateStatus.update": "Aggiornamento gratuito { version } disponibile",
|
||||
"system.updateStatus.upgrade": "Aggiornamento { version } disponibile",
|
||||
|
||||
"title": "Titolo",
|
||||
"template": "Template",
|
||||
@@ -582,9 +584,9 @@
|
||||
"users": "Utenti",
|
||||
|
||||
"version": "Versione di Kirby",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
"version.current": "Versione corrente",
|
||||
"version.latest": "Ultima versione",
|
||||
"versionInformation": "Informazioni sulla versione",
|
||||
|
||||
"view.account": "Il tuo account",
|
||||
"view.installation": "Installazione",
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "블록을 하나 이상 추가하세요.",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "기본 이메일 주소({name})가 없습니다.",
|
||||
|
||||
"error.field.converter.invalid": "컨버터({converter})가 올바르지 않습니다.",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "패널을 설치할 수 없습니다.",
|
||||
"installation.issues.mbstring": "<code>MB String</code> 확장 모듈이 필요합니다.",
|
||||
"installation.issues.media": "<code>/media</code> 폴더의 쓰기 권한을 확인하세요.",
|
||||
"installation.issues.php": "<code>PHP</code> 버전이 7 이상인지 확인하세요.",
|
||||
"installation.issues.php": "<code>PHP</code> 버전이 8 이상인지 확인하세요.",
|
||||
"installation.issues.server": "Kirby를 실행하려면 <code>Apache</code>, <code>Nginx</code>, 또는 <code>Caddy</code>가 필요합니다.",
|
||||
"installation.issues.sessions": "<code>/site/sessions</code> 폴더의 쓰기 권한을 확인하세요.",
|
||||
|
||||
|
@@ -72,10 +72,12 @@
|
||||
"error.blocks.min.singular": "Jūs turite pridėti bent vieną bloką",
|
||||
"error.blocks.validation": "Yra klaida laukelyje \"{field}\" bloke {index} naudojant bloko tipą \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "El. pašto paruoštukas \"{name}\" nerastas",
|
||||
|
||||
"error.field.converter.invalid": "Neteisingas konverteris \"{converter}\"",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Laukelis \"{ name }\": Šio tipo (\"{ type }\") laukelis neegzistuoja",
|
||||
|
||||
"error.file.changeName.empty": "Pavadinimas negali būti tuščias",
|
||||
"error.file.changeName.permission": "Neturite teisės pakeisti failo pavadinimo \"{filename}\"",
|
||||
@@ -290,7 +292,7 @@
|
||||
"field.pages.empty": "Dar nėra puslapių",
|
||||
|
||||
"field.structure.delete.confirm": "Ar tikrai norite pašalinti šią eilutę?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "Ar tikrai norite išrtinti visus įrašus?",
|
||||
"field.structure.empty": "Dar nėra įrašų",
|
||||
|
||||
"field.users.empty": "Dar nėra vartotojų",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Nepavyko įdiegti valdymo pulto",
|
||||
"installation.issues.mbstring": "Plėtinys <code>MB String</code> yra privalomas",
|
||||
"installation.issues.media": "Katalogas <code>/media</code> neegzistuoja arba neturi įrašymo teisių",
|
||||
"installation.issues.php": "Įsitikinkite, kad naudojama <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Įsitikinkite, kad naudojama <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby reikalauja <code>Apache</code>, <code>Nginx</code> arba <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Katalogas <code>/site/sessions</code> neegzistuoja arba neturi įrašymo teisių",
|
||||
|
||||
@@ -502,7 +504,7 @@
|
||||
"system.issues.eol.plugin": "Your installed version of the { plugin } plugin is has reached end-of-life and will not receive further security updates",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.https": "Rekomenduojame HTTPS visoms svetainėms",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
"system.issues.vulnerability.kirby": "Your installation might be affected by the following vulnerability ({ severity } severity): { description }",
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Du må legge til minst en blokk",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "E-postinnstillingen \"{name}\" ble ikke funnet",
|
||||
|
||||
"error.field.converter.invalid": "Ugyldig omformer \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Panelet kan ikke installeres",
|
||||
"installation.issues.mbstring": "Utvidelsen <code>MB String</code> er nødvendig",
|
||||
"installation.issues.media": "Mappen <code>/media</code> eksisterer ikke eller er ikke skrivbar",
|
||||
"installation.issues.php": "Pass på at du bruker <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Pass på at du bruker <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby krever <code>Apache</code>, <code>Nginx</code> eller <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Mappen <code>/site/sessions</code> eksisterer ikke eller er ikke skrivbar",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Je moet ten minste één blok toevoegen",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "De e-mailvoorinstelling \"{name}\" kan niet worden gevonden",
|
||||
|
||||
"error.field.converter.invalid": "Ongeldige converter \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Het Panel kan niet worden geïnstalleerd",
|
||||
"installation.issues.mbstring": "De <code>MB String</code> extensie is verplicht",
|
||||
"installation.issues.media": "De map <code>/media</code>bestaat niet of heeft geen schrijfrechten",
|
||||
"installation.issues.php": "Gebruik <code>PHP7+</code>",
|
||||
"installation.issues.php": "Gebruik <code>PHP8+</code>",
|
||||
"installation.issues.server": "Kirby vereist <code>Apache</code>, <code>Nginx</code> of <code>Caddy</code>",
|
||||
"installation.issues.sessions": "De map <code>/site/sessions</code> bestaat niet of heeft geen schrijfrechten",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Musisz dodać co najmniej jeden blok",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Nie udało się załadować wzorca wiadomości e-mail \"{name}\"",
|
||||
|
||||
"error.field.converter.invalid": "Nieprawidłowy konwerter \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Nie można zainstalować panelu",
|
||||
"installation.issues.mbstring": "Wymagane jest rozszerzenie <code>MB String</code>",
|
||||
"installation.issues.media": "Folder <code>/media</code> nie istnieje lub nie ma uprawnień do zapisu",
|
||||
"installation.issues.php": "Upewnij się, że używasz <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Upewnij się, że używasz <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby wymaga <code>Apache</code>, <code>Nginx</code> lub <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Folder <code>/site/sessions</code> nie istnieje lub nie ma uprawnień do zapisu",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Você deve adicionar pelo menos um bloco",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Pré-configuração de email \"{name}\" não foi encontrada",
|
||||
|
||||
"error.field.converter.invalid": "Conversor \"{converter}\" inválido",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "O painel não pôde ser instalado",
|
||||
"installation.issues.mbstring": "A extensão <code>MB String</code> é necessária",
|
||||
"installation.issues.media": "A pasta <code>/media</code> não existe ou não possui permissão de escrita",
|
||||
"installation.issues.php": "Certifique-se que você está usando o <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Certifique-se que você está usando o <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby necessita do <code>Apache</code>, <code>Nginx</code> ou <code>Caddy</code>",
|
||||
"installation.issues.sessions": "A pasta <code>/site/sessions</code> não existe ou não possui permissão de escrita",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Você deve adicionar pelo menos um bloco",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Preset de email \"{name}\" não encontrado",
|
||||
|
||||
"error.field.converter.invalid": "Conversor \"{converter}\" inválido",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "O painel não pôde ser instalado",
|
||||
"installation.issues.mbstring": "A extensão <code>MB String</code> é necessária",
|
||||
"installation.issues.media": "A pasta <code>/media</code> não existe ou não possui permissão de escrita",
|
||||
"installation.issues.php": "Certifique-se que está a usar o <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Certifique-se que você está usando o <code>PHP 8+</code>",
|
||||
"installation.issues.server": "O Kirby necessita do <code>Apache</code>, <code>Nginx</code> ou <code>Caddy</code>",
|
||||
"installation.issues.sessions": "A pasta <code>/site/sessions</code> não existe ou não possui permissão de escrita",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Вы должны добавить хотя бы один блок",
|
||||
"error.blocks.validation": "Ошибка в поле \"{field}\" в блоке {index} типа \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Шаблон эл. почты \"{name}\" не найден",
|
||||
|
||||
"error.field.converter.invalid": "Неверный конвертер \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Не удалось установить панель",
|
||||
"installation.issues.mbstring": "Расширение <code>MB String</code> необходимо",
|
||||
"installation.issues.media": "Каталог <code>/media</code> не существует или нет прав записи",
|
||||
"installation.issues.php": "Убедитесь, что используется <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Убедитесь, что используется <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby требует <code>Apache</code>, <code>Nginx</code> или <code>Caddy</code> ",
|
||||
"installation.issues.sessions": "Каталог <code>/site/sessions</code> не существует или нет прав записи",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "You must add at least one block",
|
||||
"error.blocks.validation": "There's an error on the \"{field}\" field in block {index} using the \"{fieldset}\" block type",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "E-mailovú predvoľbu \"{name}\" nie je možné nájsť",
|
||||
|
||||
"error.field.converter.invalid": "Neplatný converter \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Panel nie je možné naištalovať",
|
||||
"installation.issues.mbstring": "<code>MB String</code> rozšírenie je povinné",
|
||||
"installation.issues.media": "Priečinok <code>/media</code> neexistuje alebo nie je nastavený ako zapisovateľný",
|
||||
"installation.issues.php": "Uistite sa, že používate <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Uistite sa, že používate <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby vyžaduje <code>Apache</code>, <code>Nginx</code> alebo <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Priečinok <code>/site/sessions</code> neexistuje alebo nie je nastavený ako zapisovateľný",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "Du måste lägga till minst ett block",
|
||||
"error.blocks.validation": "Det finns ett fel i fältet \"{field}\" i block {index} med blocktypen \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "E-postförinställningen \"{name}\" kan inte hittas",
|
||||
|
||||
"error.field.converter.invalid": "Ogiltig omvandlare \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Panelen kan inte installeras",
|
||||
"installation.issues.mbstring": "Tillägget <code>MB String</code> krävs",
|
||||
"installation.issues.media": "Mappen <code>/media</code> finns inte eller är inte skrivbar",
|
||||
"installation.issues.php": "Se till att du använder <code>PHP 7+</code>",
|
||||
"installation.issues.php": "Se till att du använder <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby kräver <code>Apache</code>, <code>Nginx</code> eller <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Mappen <code>/site/sessions</code> finns inte eller är inte skrivbar",
|
||||
|
||||
|
@@ -72,6 +72,8 @@
|
||||
"error.blocks.min.singular": "En az bir blok eklemelisiniz",
|
||||
"error.blocks.validation": "\"{fieldset}\" blok türünü kullanan {index}. bloktaki \"{field}\" alanında bir hata var",
|
||||
|
||||
"error.cache.type.invalid": "Geçersiz önbellek türü \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "\"{name}\" e-posta adresi bulunamadı",
|
||||
|
||||
"error.field.converter.invalid": "Geçersiz dönüştürücü \"{converter}\"",
|
||||
@@ -320,7 +322,7 @@
|
||||
"installation.issues.headline": "Panel kurulamadı",
|
||||
"installation.issues.mbstring": "<code>MB String</code> eklentisi gerekli",
|
||||
"installation.issues.media": "<code>/media</code> klasörü yok yada yazılamaz",
|
||||
"installation.issues.php": "<code>PHP 7+</code> kullandığınızdan emin olun. ",
|
||||
"installation.issues.php": "<code>PHP 8+</code> kullandığınızdan emin olun. ",
|
||||
"installation.issues.server": "Kirby <code>Apache</code>, <code>Nginx</code> veya <code>Caddy</code> gerektirir",
|
||||
"installation.issues.sessions": "<code>/site/sessions</code> klasörü mevcut değil veya yazılabilir değil",
|
||||
|
||||
|
2
kirby/panel/dist/js/index.js
vendored
2
kirby/panel/dist/js/index.js
vendored
File diff suppressed because one or more lines are too long
@@ -1612,13 +1612,11 @@ class App
|
||||
* Uses the snippet component to create
|
||||
* and return a template snippet
|
||||
*
|
||||
* @param mixed $name
|
||||
* @param array|object $data Variables or an object that becomes `$item`
|
||||
* @param bool $return On `false`, directly echo the snippet
|
||||
* @return string|null
|
||||
* @psalm-return ($return is true ? string : null)
|
||||
*/
|
||||
public function snippet($name, $data = [], bool $return = true, bool $slots = false): Snippet|string|null
|
||||
public function snippet(string|array|null $name, $data = [], bool $return = true, bool $slots = false): Snippet|string|null
|
||||
{
|
||||
if (is_object($data) === true) {
|
||||
$data = ['item' => $data];
|
||||
|
@@ -44,7 +44,7 @@ trait AppCaches
|
||||
|
||||
if (array_key_exists($type, $types) === false) {
|
||||
throw new InvalidArgumentException([
|
||||
'key' => 'app.invalid.cacheType',
|
||||
'key' => 'cache.type.invalid',
|
||||
'data' => ['type' => $type]
|
||||
]);
|
||||
}
|
||||
@@ -57,7 +57,7 @@ trait AppCaches
|
||||
// check if it is a usable cache object
|
||||
if ($cache instanceof Cache === false) {
|
||||
throw new InvalidArgumentException([
|
||||
'key' => 'app.invalid.cacheType',
|
||||
'key' => 'cache.type.invalid',
|
||||
'data' => ['type' => $type]
|
||||
]);
|
||||
}
|
||||
|
@@ -19,21 +19,57 @@ use Kirby\Toolkit\Str;
|
||||
class Helpers
|
||||
{
|
||||
/**
|
||||
* Triggers a deprecation warning if debug mode is active
|
||||
* Allows to disable specific deprecation warnings
|
||||
* by setting them to `false`.
|
||||
* You can do this by putting the following code in
|
||||
* `site/config/config.php`:
|
||||
*
|
||||
* @param string $message
|
||||
* ```php
|
||||
* Helpers::$deprecations['<deprecation-key>'] = false;
|
||||
* ```
|
||||
*/
|
||||
public static $deprecations = [
|
||||
// Passing the $slot or $slots variables to snippets is
|
||||
// deprecated and will break in a future version.
|
||||
'snippet-pass-slots' => true,
|
||||
|
||||
// The `Toolkit\Query` class has been deprecated and will
|
||||
// be removed in a future version. Use `Query\Query` instead:
|
||||
// Kirby\Query\Query::factory($query)->resolve($data).
|
||||
'toolkit-query-class' => true,
|
||||
|
||||
// Passing an empty string as value to `Xml::attr()` has been
|
||||
// deprecated. In a future version, passing an empty string won't
|
||||
// omit the attribute anymore but render it with an empty value.
|
||||
// To omit the attribute, please pass `null`.
|
||||
'xml-attr-empty-string' => false,
|
||||
];
|
||||
|
||||
/**
|
||||
* Triggers a deprecation warning if debug mode is active
|
||||
* and warning has not been surpressed via `Helpers::$deprecations`
|
||||
*
|
||||
* @param string|null $key If given, the key will be checked against the static array
|
||||
* @return bool Whether the warning was triggered
|
||||
*/
|
||||
public static function deprecated(string $message): bool
|
||||
public static function deprecated(string $message, string|null $key = null): bool
|
||||
{
|
||||
// only trigger warning in debug mode or when running PHPUnit tests
|
||||
// @codeCoverageIgnoreStart
|
||||
if (
|
||||
App::instance()->option('debug') === true ||
|
||||
(defined('KIRBY_TESTING') === true && KIRBY_TESTING === true)
|
||||
App::instance()->option('debug') !== true &&
|
||||
(defined('KIRBY_TESTING') !== true || KIRBY_TESTING !== true)
|
||||
) {
|
||||
return trigger_error($message, E_USER_DEPRECATED) === true;
|
||||
return false;
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
// don't trigger the warning if disabled by default or by the dev
|
||||
if ($key !== null && (static::$deprecations[$key] ?? true) === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
return trigger_error($message, E_USER_DEPRECATED) === true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -217,9 +217,6 @@ class Cookie
|
||||
{
|
||||
// lazily request the instance for non-CMS use cases
|
||||
$kirby = App::instance(null, true);
|
||||
|
||||
if ($kirby) {
|
||||
$kirby->response()->usesCookie($key);
|
||||
}
|
||||
$kirby?->response()->usesCookie($key);
|
||||
}
|
||||
}
|
||||
|
@@ -152,7 +152,7 @@ class Environment
|
||||
*/
|
||||
public function detect(array $options = null, array $info = null): array
|
||||
{
|
||||
$info ??= $_SERVER;
|
||||
$info ??= $_SERVER;
|
||||
$options = array_merge([
|
||||
'cli' => null,
|
||||
'allowed' => null
|
||||
@@ -922,7 +922,7 @@ class Environment
|
||||
protected function sanitizeScriptPath(string|null $scriptPath = null): string
|
||||
{
|
||||
$scriptPath ??= '';
|
||||
$scriptPath = trim($scriptPath);
|
||||
$scriptPath = trim($scriptPath);
|
||||
|
||||
// skip all the sanitizing steps if the path is empty
|
||||
if ($scriptPath === '') {
|
||||
|
@@ -101,8 +101,11 @@ class Header
|
||||
*
|
||||
* @return string|void
|
||||
*/
|
||||
public static function type(string $mime, string $charset = 'UTF-8', bool $send = true)
|
||||
{
|
||||
public static function type(
|
||||
string $mime,
|
||||
string $charset = 'UTF-8',
|
||||
bool $send = true
|
||||
) {
|
||||
return static::contentType($mime, $charset, $send);
|
||||
}
|
||||
|
||||
@@ -118,17 +121,25 @@ class Header
|
||||
* @return string|void
|
||||
* @psalm-return ($send is false ? string : void)
|
||||
*/
|
||||
public static function status(int|string|null $code = null, bool $send = true)
|
||||
{
|
||||
public static function status(
|
||||
int|string|null $code = null,
|
||||
bool $send = true
|
||||
) {
|
||||
$codes = static::$codes;
|
||||
$protocol = Environment::getGlobally('SERVER_PROTOCOL', 'HTTP/1.1');
|
||||
|
||||
// allow full control over code and message
|
||||
if (is_string($code) === true && preg_match('/^\d{3} \w.+$/', $code) === 1) {
|
||||
if (
|
||||
is_string($code) === true &&
|
||||
preg_match('/^\d{3} \w.+$/', $code) === 1
|
||||
) {
|
||||
$message = substr(rtrim($code), 4);
|
||||
$code = substr($code, 0, 3);
|
||||
} else {
|
||||
$code = array_key_exists('_' . $code, $codes) === false ? 500 : $code;
|
||||
if (array_key_exists('_' . $code, $codes) === false) {
|
||||
$code = 500;
|
||||
}
|
||||
|
||||
$message = $codes['_' . $code] ?? 'Something went wrong';
|
||||
}
|
||||
|
||||
|
@@ -120,8 +120,10 @@ class Params extends Obj
|
||||
* Converts the params object to a params string
|
||||
* which can then be used in the URL builder again
|
||||
*/
|
||||
public function toString(bool $leadingSlash = false, bool $trailingSlash = false): string
|
||||
{
|
||||
public function toString(
|
||||
bool $leadingSlash = false,
|
||||
bool $trailingSlash = false
|
||||
): string {
|
||||
if ($this->isEmpty() === true) {
|
||||
return '';
|
||||
}
|
||||
|
@@ -31,8 +31,10 @@ class Path extends Collection
|
||||
return $this->toString();
|
||||
}
|
||||
|
||||
public function toString(bool $leadingSlash = false, bool $trailingSlash = false): string
|
||||
{
|
||||
public function toString(
|
||||
bool $leadingSlash = false,
|
||||
bool $trailingSlash = false
|
||||
): string {
|
||||
if (empty($this->data) === true) {
|
||||
return '';
|
||||
}
|
||||
|
@@ -91,7 +91,13 @@ class Remote
|
||||
|
||||
public static function __callStatic(string $method, array $arguments = []): static
|
||||
{
|
||||
return new static($arguments[0], array_merge(['method' => strtoupper($method)], $arguments[1] ?? []));
|
||||
return new static(
|
||||
url: $arguments[0],
|
||||
options: array_merge(
|
||||
['method' => strtoupper($method)],
|
||||
$arguments[1] ?? []
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,10 +182,10 @@ class Remote
|
||||
$headers = [];
|
||||
foreach ($this->options['headers'] as $key => $value) {
|
||||
if (is_string($key) === true) {
|
||||
$headers[] = $key . ': ' . $value;
|
||||
} else {
|
||||
$headers[] = $value;
|
||||
$value = $key . ': ' . $value;
|
||||
}
|
||||
|
||||
$headers[] = $value;
|
||||
}
|
||||
|
||||
$this->curlopt[CURLOPT_HTTPHEADER] = $headers;
|
||||
@@ -264,7 +270,10 @@ class Remote
|
||||
$query = http_build_query($options['data']);
|
||||
|
||||
if (empty($query) === false) {
|
||||
$url = Url::hasQuery($url) === true ? $url . '&' . $query : $url . '?' . $query;
|
||||
$url = match (Url::hasQuery($url)) {
|
||||
true => $url . '&' . $query,
|
||||
default => $url . '?' . $query
|
||||
};
|
||||
}
|
||||
|
||||
// remove the data array from the options
|
||||
|
@@ -147,9 +147,7 @@ class Request
|
||||
// this ensures that the response is only cached for
|
||||
// unauthenticated visitors;
|
||||
// https://github.com/getkirby/kirby/issues/4423#issuecomment-1166300526
|
||||
if ($kirby) {
|
||||
$kirby->response()->usesAuth(true);
|
||||
}
|
||||
$kirby?->response()->usesAuth(true);
|
||||
|
||||
if ($auth = $this->authString()) {
|
||||
$type = Str::lower(Str::before($auth, ' '));
|
||||
@@ -292,7 +290,10 @@ class Request
|
||||
$headers = [];
|
||||
|
||||
foreach (Environment::getGlobally() as $key => $value) {
|
||||
if (substr($key, 0, 5) !== 'HTTP_' && substr($key, 0, 14) !== 'REDIRECT_HTTP_') {
|
||||
if (
|
||||
substr($key, 0, 5) !== 'HTTP_' &&
|
||||
substr($key, 0, 14) !== 'REDIRECT_HTTP_'
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@@ -50,8 +50,13 @@ class Response
|
||||
/**
|
||||
* Creates a new response object
|
||||
*/
|
||||
public function __construct(string|array $body = '', string|null $type = null, int|null $code = null, array|null $headers = null, string|null $charset = null)
|
||||
{
|
||||
public function __construct(
|
||||
string|array $body = '',
|
||||
string|null $type = null,
|
||||
int|null $code = null,
|
||||
array|null $headers = null,
|
||||
string|null $charset = null
|
||||
) {
|
||||
// array construction
|
||||
if (is_array($body) === true) {
|
||||
$params = $body;
|
||||
@@ -127,8 +132,11 @@ class Response
|
||||
*
|
||||
* @param array $props Custom overrides for response props (e.g. headers)
|
||||
*/
|
||||
public static function download(string $file, string|null $filename = null, array $props = []): static
|
||||
{
|
||||
public static function download(
|
||||
string $file,
|
||||
string|null $filename = null,
|
||||
array $props = []
|
||||
): static {
|
||||
if (file_exists($file) === false) {
|
||||
throw new Exception('The file could not be found');
|
||||
}
|
||||
@@ -224,8 +232,12 @@ class Response
|
||||
* Creates a json response with appropriate
|
||||
* header and automatic conversion of arrays.
|
||||
*/
|
||||
public static function json(string|array $body = '', int|null $code = null, bool|null $pretty = null, array $headers = []): static
|
||||
{
|
||||
public static function json(
|
||||
string|array $body = '',
|
||||
int|null $code = null,
|
||||
bool|null $pretty = null,
|
||||
array $headers = []
|
||||
): static {
|
||||
if (is_array($body) === true) {
|
||||
$body = json_encode($body, $pretty === true ? JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES : 0);
|
||||
}
|
||||
|
@@ -72,8 +72,12 @@ class Route
|
||||
* Creates a new Route object for the given
|
||||
* pattern(s), method(s) and the callback action
|
||||
*/
|
||||
public function __construct(string $pattern, string $method, Closure $action, array $attributes = [])
|
||||
{
|
||||
public function __construct(
|
||||
string $pattern,
|
||||
string $method,
|
||||
Closure $action,
|
||||
array $attributes = []
|
||||
) {
|
||||
$this->action = $action;
|
||||
$this->attributes = $attributes;
|
||||
$this->method = $method;
|
||||
|
@@ -117,7 +117,10 @@ class Router
|
||||
if ($callback) {
|
||||
$result = $callback($route);
|
||||
} else {
|
||||
$result = $route->action()->call($route, ...$route->arguments());
|
||||
$result = $route->action()->call(
|
||||
$route,
|
||||
...$route->arguments()
|
||||
);
|
||||
}
|
||||
|
||||
$loop = false;
|
||||
@@ -139,8 +142,12 @@ class Router
|
||||
* the routing action immediately
|
||||
* @since 3.7.0
|
||||
*/
|
||||
public static function execute(string|null $path = null, string $method = 'GET', array $routes = [], Closure|null $callback = null)
|
||||
{
|
||||
public static function execute(
|
||||
string|null $path = null,
|
||||
string $method = 'GET',
|
||||
array $routes = [],
|
||||
Closure|null $callback = null
|
||||
) {
|
||||
return (new static($routes))->call($path, $method, $callback);
|
||||
}
|
||||
|
||||
@@ -150,8 +157,11 @@ class Router
|
||||
* find matches and return all the found
|
||||
* arguments in the path.
|
||||
*/
|
||||
public function find(string $path, string $method, array|null $ignore = null): Route
|
||||
{
|
||||
public function find(
|
||||
string $path,
|
||||
string $method,
|
||||
array|null $ignore = null
|
||||
): Route {
|
||||
if (isset($this->routes[$method]) === false) {
|
||||
throw new InvalidArgumentException('Invalid routing method: ' . $method, 400);
|
||||
}
|
||||
@@ -163,7 +173,10 @@ class Router
|
||||
$arguments = $route->parse($route->pattern(), $path);
|
||||
|
||||
if ($arguments !== false) {
|
||||
if (empty($ignore) === true || in_array($route, $ignore) === false) {
|
||||
if (
|
||||
empty($ignore) === true ||
|
||||
in_array($route, $ignore) === false
|
||||
) {
|
||||
return $this->route = $route;
|
||||
}
|
||||
}
|
||||
|
@@ -227,7 +227,10 @@ class Uri
|
||||
|
||||
$domain .= $this->host;
|
||||
|
||||
if ($this->port !== null && in_array($this->port, [80, 443]) === false) {
|
||||
if (
|
||||
$this->port !== null &&
|
||||
in_array($this->port, [80, 443]) === false
|
||||
) {
|
||||
$domain .= ':' . $this->port;
|
||||
}
|
||||
|
||||
|
@@ -30,7 +30,8 @@ class Url
|
||||
*/
|
||||
public static function __callStatic(string $method, array $arguments)
|
||||
{
|
||||
return (new Uri($arguments[0] ?? static::current()))->$method(...array_slice($arguments, 1));
|
||||
$uri = new Uri($arguments[0] ?? static::current());
|
||||
return $uri->$method(...array_slice($arguments, 1));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -65,7 +66,11 @@ class Url
|
||||
public static function fix(string|null $url = null): string|null
|
||||
{
|
||||
// make sure to not touch absolute urls
|
||||
return (!preg_match('!^(https|http|ftp)\:\/\/!i', $url ?? '')) ? 'http://' . $url : $url;
|
||||
if (!preg_match('!^(https|http|ftp)\:\/\/!i', $url ?? '')) {
|
||||
return 'http://' . $url;
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -93,7 +98,9 @@ class Url
|
||||
// //example.com/uri
|
||||
// http://example.com/uri, https://example.com/uri, ftp://example.com/uri
|
||||
// mailto:example@example.com, geo:49.0158,8.3239?z=11
|
||||
return $url !== null && preg_match('!^(//|[a-z0-9+-.]+://|mailto:|tel:|geo:)!i', $url) === 1;
|
||||
return
|
||||
$url !== null &&
|
||||
preg_match('!^(//|[a-z0-9+-.]+://|mailto:|tel:|geo:)!i', $url) === 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,8 +134,11 @@ class Url
|
||||
/**
|
||||
* Returns the path for the given url
|
||||
*/
|
||||
public static function path(string|array|null $url = null, bool $leadingSlash = false, bool $trailingSlash = false): string
|
||||
{
|
||||
public static function path(
|
||||
string|array|null $url = null,
|
||||
bool $leadingSlash = false,
|
||||
bool $trailingSlash = false
|
||||
): string {
|
||||
return Url::toObject($url)->path()->toString($leadingSlash, $trailingSlash);
|
||||
}
|
||||
|
||||
@@ -151,8 +161,12 @@ class Url
|
||||
/**
|
||||
* Shortens the Url by removing all unnecessary parts
|
||||
*/
|
||||
public static function short(string|null $url = null, int $length = 0, bool $base = false, string $rep = '…'): string
|
||||
{
|
||||
public static function short(
|
||||
string|null $url = null,
|
||||
int $length = 0,
|
||||
bool $base = false,
|
||||
string $rep = '…'
|
||||
): string {
|
||||
$uri = static::toObject($url);
|
||||
|
||||
$uri->fragment = null;
|
||||
|
@@ -153,11 +153,14 @@ class Snippet extends Tpl
|
||||
* or the template string for self-enclosed snippets
|
||||
*/
|
||||
public static function factory(
|
||||
string|array $name,
|
||||
string|array|null $name,
|
||||
array $data = [],
|
||||
bool $slots = false
|
||||
): static|string {
|
||||
$file = static::file($name);
|
||||
// instead of returning empty string when `$name` is null
|
||||
// allow rest of code to run, otherwise the wrong snippet would be closed
|
||||
// and potential issues for nested snippets may occur
|
||||
$file = $name !== null ? static::file($name) : null;
|
||||
|
||||
// for snippets with slots, make sure to open a new
|
||||
// snippet and start capturing slots
|
||||
@@ -309,7 +312,7 @@ class Snippet extends Tpl
|
||||
array_key_exists('slot', $data) === true ||
|
||||
array_key_exists('slots', $data) === true
|
||||
) {
|
||||
Helpers::deprecated('Passing the $slot or $slots variables to snippets is deprecated and will break in Kirby 3.10.');
|
||||
Helpers::deprecated('Passing the $slot or $slots variables to snippets is deprecated and will break in a future version.', 'snippet-pass-slots');
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
|
@@ -58,7 +58,7 @@ class Query
|
||||
$this->query = $query;
|
||||
$this->data = $data;
|
||||
|
||||
Helpers::deprecated('The `Toolkit\Query` class has been deprecated and will be removed in a future version. Use `Query\Query` instead: Kirby\Query\Query::factory($query)->resolve($data).');
|
||||
Helpers::deprecated('The `Toolkit\Query` class has been deprecated and will be removed in a future version. Use `Query\Query` instead: Kirby\Query\Query::factory($query)->resolve($data).', 'toolkit-query-class');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -97,7 +97,7 @@ class Xml
|
||||
// TODO: Remove in 3.10
|
||||
// @codeCoverageIgnoreStart
|
||||
if ($value === '') {
|
||||
Helpers::deprecated('Passing an empty string as value to `Xml::attr()` has been deprecated. In a future version, passing an empty string won\'t omit the attribute anymore but render it with an empty value. To omit the attribute, please pass `null`.');
|
||||
Helpers::deprecated('Passing an empty string as value to `Xml::attr()` has been deprecated. In a future version, passing an empty string won\'t omit the attribute anymore but render it with an empty value. To omit the attribute, please pass `null`.', 'xml-attr-empty-string');
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
|
8
kirby/vendor/composer/installed.php
vendored
8
kirby/vendor/composer/installed.php
vendored
@@ -1,8 +1,8 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'name' => 'getkirby/cms',
|
||||
'pretty_version' => '3.9.0',
|
||||
'version' => '3.9.0.0',
|
||||
'pretty_version' => '3.9.1',
|
||||
'version' => '3.9.1.0',
|
||||
'reference' => NULL,
|
||||
'type' => 'kirby-cms',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
@@ -38,8 +38,8 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'getkirby/cms' => array(
|
||||
'pretty_version' => '3.9.0',
|
||||
'version' => '3.9.0.0',
|
||||
'pretty_version' => '3.9.1',
|
||||
'version' => '3.9.1.0',
|
||||
'reference' => NULL,
|
||||
'type' => 'kirby-cms',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
|
Reference in New Issue
Block a user