Upgrade to 3.3.1
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "getkirby/cms",
|
||||
"description": "The Kirby 3 core",
|
||||
"version": "3.3.0",
|
||||
"version": "3.3.1",
|
||||
"license": "proprietary",
|
||||
"keywords": ["kirby", "cms", "core"],
|
||||
"homepage": "https://getkirby.com",
|
||||
|
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": "b6f220540a714bd27218b0fea5f2aad6",
|
||||
"content-hash": "e10295fa58c27caa37474e7fa503bb8e",
|
||||
"packages": [
|
||||
{
|
||||
"name": "claviska/simpleimage",
|
||||
|
@@ -25,7 +25,7 @@ return [
|
||||
/**
|
||||
* Allowed incremental steps between numbers (i.e `0.5`)
|
||||
*/
|
||||
'step' => function ($step = 1) {
|
||||
'step' => function ($step = null) {
|
||||
return $this->toNumber($step);
|
||||
},
|
||||
'value' => function ($value = null) {
|
||||
|
@@ -122,6 +122,7 @@ function css($url, $options = null): ?string
|
||||
|
||||
/**
|
||||
* Triggers a deprecation warning if debug mode is active
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param string $message
|
||||
* @return bool Whether the warning was triggered
|
||||
|
@@ -327,6 +327,7 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts all line breaks in the field content to `<br>` tags.
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param \Kirby\Cms\Field $field
|
||||
* @return \Kirby\Cms\Field
|
||||
@@ -387,6 +388,7 @@ return function (App $app) {
|
||||
* Strips all block-level HTML elements from the field value,
|
||||
* it can be safely placed inside of other inline elements
|
||||
* without the risk of breaking the HTML structure.
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param \Kirby\Cms\Field $field
|
||||
* @return \Kirby\Cms\Field
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Файловото разширение \"{extension}\" не е позволено",
|
||||
"error.file.extension.missing":
|
||||
"Липсва файлово разширение за файла \"{filename}\"",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Каченият файл трябва да бъде от същия mime тип \"{mime}\"",
|
||||
"error.file.mime.forbidden": "The media type \"{mime}\" is not allowed",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"The media type for \"{filename}\" cannot be detected",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Името на файла е задължително",
|
||||
"error.file.notFound": "Файлът \"{filename}\" не може да бъде намерен",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Не е позволен ъплоуда на файлове от тип {type}",
|
||||
"error.file.undefined": "\u0424\u0430\u0439\u043b\u044a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby екип",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Български",
|
||||
"translation.locale": "bg_BG",
|
||||
|
||||
"upload": "Прикачи",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"L'extensió de l'arxiu \"{extension}\" no està permesa",
|
||||
"error.file.extension.missing":
|
||||
"Falta l'extensió de l'arxiu \"{filename}\"",
|
||||
"error.file.maxheight": "L'alçada de la imatge no ha de ser superior a {height} píxels",
|
||||
"error.file.maxsize": "El fitxer és massa gran",
|
||||
"error.file.maxwidth": "L'amplada de la imatge no ha de ser superior a {width} píxels",
|
||||
"error.file.mime.differs":
|
||||
"L'arxiu carregat ha ha de ser del mateix tipus de mime \"{mime}\"",
|
||||
"error.file.mime.forbidden": "El tipus de mitjà \"{mime}\" no està permès",
|
||||
"error.file.mime.invalid": "Mime type no vàlid: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"El tipus de suport per a \"{filename}\" no es pot detectar",
|
||||
"error.file.minheight": "L'alçada de la imatge ha de ser com a mínim de {height} píxels",
|
||||
"error.file.minsize": "El fitxer és massa petit",
|
||||
"error.file.minwidth": "L'amplada de la imatge ha de ser com a mínim de {width} píxels",
|
||||
"error.file.name.missing": "El nom del fitxer no pot estar buit",
|
||||
"error.file.notFound": "L'arxiu \"{filename}\" no s'ha trobat",
|
||||
"error.file.orientation": "L’orientació de la imatge ha de ser \"{orientation}\"",
|
||||
"error.file.type.forbidden": "No tens permís per penjar fitxers {type}",
|
||||
"error.file.undefined": "L'arxiu no s'ha trobat",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Equip Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Catalan",
|
||||
"translation.locale": "ca_ES",
|
||||
|
||||
"upload": "Carregar",
|
||||
"upload.error.cantMove": "El fitxer carregat no s'ha pogut moure",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Přípona souboru \"{extension}\" není povolena",
|
||||
"error.file.extension.missing":
|
||||
"Nem\u016f\u017eete nahr\u00e1t soubor bez p\u0159\u00edpony",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Nahraný soubor musí být stejného typu \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Soubor typu \"{mime}\" není povolený",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Nelze rozeznat mime typ souboru \"{filename}\"",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Název souboru nesmí být prázdný",
|
||||
"error.file.notFound": "Soubor se nepoda\u0159ilo nal\u00e9zt",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Nemáte povoleno nahrávat soubory typu {type} ",
|
||||
"error.file.undefined": "Soubor se nepoda\u0159ilo nal\u00e9zt",
|
||||
|
||||
@@ -223,7 +231,7 @@
|
||||
"error.validation.time": "Zadejte prosím platný čas",
|
||||
"error.validation.url": "Zadejte prosím platnou adresu URL",
|
||||
|
||||
"field.required": "The field is required",
|
||||
"field.required": "Pole musí být vyplněno.",
|
||||
"field.files.empty": "Nebyly zatím vybrány žádné soubory",
|
||||
"field.pages.empty": "Nebyly zatím vybrány žádné stránky",
|
||||
"field.structure.delete.confirm": "Opravdu chcete smazat tento z\u00e1znam?",
|
||||
@@ -296,7 +304,7 @@
|
||||
"loading": "Načítám",
|
||||
|
||||
"lock.unsaved": "Neuložené změny",
|
||||
"lock.unsaved.empty": "There are no more unsaved changes",
|
||||
"lock.unsaved.empty": "Nezbývají již žádné neuložené změny.",
|
||||
"lock.isLocked": "Neuložené změny provedené <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "Soubor nelze změnit, právě jej upravuje {email}.",
|
||||
"lock.page.isLocked": "Stránku nelze změnit, právě jí upravuje {email} .",
|
||||
@@ -393,7 +401,7 @@
|
||||
"save": "Ulo\u017eit",
|
||||
"search": "Hledat",
|
||||
|
||||
"section.required": "The section is required",
|
||||
"section.required": "Sekce musí být vyplněna",
|
||||
|
||||
"select": "Vybrat",
|
||||
"settings": "Nastavení",
|
||||
@@ -422,19 +430,20 @@
|
||||
"translation.author": "Kirby tým",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "\u010cesky",
|
||||
"translation.locale": "cs_CZ",
|
||||
|
||||
"upload": "Nahrát",
|
||||
"upload.error.cantMove": "Nahraný soubor nemohl být přesunut",
|
||||
"upload.error.cantWrite": "Zápis souboru na disk se nezdařil",
|
||||
"upload.error.default": "Soubor se nepodařilo nahrát",
|
||||
"upload.error.extension": "File upload stopped by extension",
|
||||
"upload.error.formSize": "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the form",
|
||||
"upload.error.iniPostSize": "The uploaded file exceeds the post_max_size directive in php.ini",
|
||||
"upload.error.iniSize": "The uploaded file exceeds the upload_max_filesize directive in php.ini",
|
||||
"upload.error.noFile": "No file was uploaded",
|
||||
"upload.error.noFiles": "No files were uploaded",
|
||||
"upload.error.partial": "The uploaded file was only partially uploaded",
|
||||
"upload.error.tmpDir": "Missing a temporary folder",
|
||||
"upload.error.extension": "Nahrávání souboru přerušeno rozšířením.",
|
||||
"upload.error.formSize": "Velikost nahrávaného souboru převyšuje omezení stanovené direktivou MAX_FILE_SIZE",
|
||||
"upload.error.iniPostSize": "Velikost nahrávaného souboru převyšuje omezení stanovené direktivou post_max_size, která je nastavena v php.ini",
|
||||
"upload.error.iniSize": "Velikost nahrávaného souboru převyšuje omezení stanovené direktivou upload_max_filesize, která je nastavena v php.ini ",
|
||||
"upload.error.noFile": "Nebyl nahrán žádný soubor",
|
||||
"upload.error.noFiles": "Nebyly nahrány žádné soubory",
|
||||
"upload.error.partial": "Soubor byl nahrán pouze z části",
|
||||
"upload.error.tmpDir": "Chybí dočasná složka",
|
||||
"upload.errors": "Chyba",
|
||||
"upload.progress": "Nahrávání...",
|
||||
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Uacceptabel fil-endelse",
|
||||
"error.file.extension.missing":
|
||||
"Du kan ikke uploade filer uden fil-endelse",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Den uploadede fil skal være af samme mime type \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Media typen \"{mime}\" er ikke tilladt",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Media typen for \"{filename}\" kan ikke bestemmes",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Filnavn må ikke være tomt",
|
||||
"error.file.notFound": "Filen kunne ikke findes",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Du har ikke tilladelse til at uploade {type} filer",
|
||||
"error.file.undefined": "Filen kunne ikke findes",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Dansk",
|
||||
"translation.locale": "da_DK",
|
||||
|
||||
"upload": "Upload",
|
||||
"upload.error.cantMove": "Den uploadede fil kunne ikke flyttes",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Verbotene Dateiendung \"{extension}\"",
|
||||
"error.file.extension.missing":
|
||||
"Du kannst keine Dateien ohne Dateiendung hochladen",
|
||||
"error.file.maxheight": "Die Bildhöhe darf {height} Pixel nicht überschreiten",
|
||||
"error.file.maxsize": "Die Datei ist zu groß",
|
||||
"error.file.maxwidth": "Die Bildbreite darf {height} Pixel nicht überschreiten",
|
||||
"error.file.mime.differs":
|
||||
"Die Datei muss den Medientyp \"{mime}\" haben.",
|
||||
"error.file.mime.forbidden": "Der Medientyp \"{mime}\" ist nicht erlaubt",
|
||||
"error.file.mime.invalid": "Ungültiger Dateityp: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Der Medientyp für \"{filename}\" konnte nicht erkannt werden",
|
||||
"error.file.minheight": "Die Bildhöhe muss mindestens {height} Pixel betragen",
|
||||
"error.file.minsize": "Die Datei ist zu klein",
|
||||
"error.file.minwidth": "Die Bildbreite muss mindestens {height} Pixel betragen",
|
||||
"error.file.name.missing": "Bitte gib einen Dateinamen an",
|
||||
"error.file.notFound": "Die Datei \"{filename}\" konnte nicht gefunden werden",
|
||||
"error.file.orientation": "Das Bildformat ist ungültig. Erwartetes Format: \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Du kannst keinen {type}-Dateien hochladen",
|
||||
"error.file.undefined": "Die Datei konnte nicht gefunden werden",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Deutsch",
|
||||
"translation.locale": "de_DE",
|
||||
|
||||
"upload": "Hochladen",
|
||||
"upload.error.cantMove": "Die Datei konnte nicht an ihren Zielort bewegt werden",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"\u039c\u03b7 \u03b1\u03c0\u03bf\u03b4\u03b5\u03ba\u03c4\u03ae \u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5",
|
||||
"error.file.extension.missing":
|
||||
"Λείπει η επέκταση για το \"{filename}\"",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Το αρχείο πρέπει να είναι του ίδιου τύπου mime \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Ο τύπος μέσου \"{mime}\" δεν επιτρέπεται",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Δεν είναι δυνατό να εντοπιστεί ο τύπος μέσου για το \"{filename}\"",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Το όνομα αρχείου δεν μπορεί να είναι άδειο",
|
||||
"error.file.notFound": "Δεν είναι δυνατό να βρεθεί το αρχείο \"{filename}\"",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Δεν επιτρέπεται η μεταφόρτωση αρχείων {type}",
|
||||
"error.file.undefined": "Δεν ήταν δυνατή η εύρεση του αρχείου",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Ομάδα Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
|
||||
"translation.locale": "el_GR",
|
||||
|
||||
"upload": "Μεταφόρτωση",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"The extension \"{extension}\" is not allowed",
|
||||
"error.file.extension.missing":
|
||||
"The extensions for \"{filename}\" is missing",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"The uploaded file must be of the same mime type \"{mime}\"",
|
||||
"error.file.mime.forbidden": "The media type \"{mime}\" is not allowed",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"The media type for \"{filename}\" cannot be detected",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "The filename must not be empty",
|
||||
"error.file.notFound": "The file \"{filename}\" cannot be found",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "You are not allowed to upload {type} files",
|
||||
"error.file.undefined": "The file cannot be found",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "English",
|
||||
"translation.locale": "en_US",
|
||||
|
||||
"upload": "Upload",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -23,22 +23,22 @@
|
||||
|
||||
"delete": "Eliminar",
|
||||
"dimensions": "Dimensiones",
|
||||
"disabled": "Disabled",
|
||||
"disabled": "Desabilitado",
|
||||
"discard": "Descartar",
|
||||
"download": "Download",
|
||||
"duplicate": "Duplicate",
|
||||
"download": "Descargar",
|
||||
"duplicate": "Duplicar",
|
||||
"edit": "Editar",
|
||||
|
||||
"dialog.files.empty": "No files to select",
|
||||
"dialog.pages.empty": "No pages to select",
|
||||
"dialog.users.empty": "No users to select",
|
||||
"dialog.files.empty": "No has seleccionado ningún archivo",
|
||||
"dialog.pages.empty": "No has seleccionado ninguna página",
|
||||
"dialog.users.empty": "No has seleccionado ningún usuario",
|
||||
|
||||
"email": "Correo Electrónico",
|
||||
"email.placeholder": "correo@ejemplo.com",
|
||||
|
||||
"error.access.login": "Ingreso inválido",
|
||||
"error.access.panel": "No tienes permitido acceder al panel.",
|
||||
"error.access.view": "You are not allowed to access this part of the 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 eliminar la foto de perfil.",
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
"error.field.converter.invalid": "Convertidor inválido \"{converter}\"",
|
||||
|
||||
"error.file.changeName.empty": "The name must not be empty",
|
||||
"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.duplicate": "Ya existe un archivo con el nombre \"{filename}\".",
|
||||
@@ -61,26 +61,34 @@
|
||||
"La extensión \"{extension}\" no está permitida.",
|
||||
"error.file.extension.missing":
|
||||
"Falta la extensión para \"{filename}\".",
|
||||
"error.file.maxheight": "La altura de la imagen no debe exceder {height} pixeles",
|
||||
"error.file.maxsize": "El archivo es muy grande",
|
||||
"error.file.maxwidth": "El ancho de la imagen no debe exceder {width} pixeles",
|
||||
"error.file.mime.differs":
|
||||
"El archivo cargado debe ser del mismo tipo mime \"{mime}\".",
|
||||
"error.file.mime.forbidden": "El tipo de medios \"{mime}\" no está permitido.",
|
||||
"error.file.mime.invalid": "Tipo invalido de mime: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"No se puede detectar el tipo de medio para \"{filename}\".",
|
||||
"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 del archivo no debe estar vacío.",
|
||||
"error.file.notFound": "El archivo \"{filename}\" no pudo ser encontrado.",
|
||||
"error.file.orientation": "La orientación de la imagen debe ser \"{orientation}\"",
|
||||
"error.file.type.forbidden": "No está permitido subir archivos {type}.",
|
||||
"error.file.undefined": "El archivo no se puede encontrar.",
|
||||
|
||||
"error.form.incomplete": "Por favor, corrige todos los errores del formulario...",
|
||||
"error.form.notSaved": "No se pudo guardar el formulario.",
|
||||
|
||||
"error.language.code": "Please enter a valid code for the language",
|
||||
"error.language.duplicate": "The language already exists",
|
||||
"error.language.name": "Please enter a valid name for the language",
|
||||
"error.language.code": "Por favor introduce un código válido para el lenguaje",
|
||||
"error.language.duplicate": "El lenguaje ya existe",
|
||||
"error.language.name": "Por favor introduce un nombre válido para el lenguaje",
|
||||
|
||||
"error.license.format": "Please enter a valid license key",
|
||||
"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": "The license could not be verified",
|
||||
"error.license.verification": "La licencia no pude ser verificada",
|
||||
|
||||
"error.page.changeSlug.permission":
|
||||
"No está permitido cambiar el apéndice de URL para \"{slug}\".",
|
||||
@@ -107,7 +115,7 @@
|
||||
"Ya existe un borrador de página con el apéndice de URL \"{slug}\"",
|
||||
"error.page.duplicate":
|
||||
"Ya existe una página con el apéndice de URL \"{slug}\"",
|
||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||
"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.",
|
||||
@@ -122,18 +130,18 @@
|
||||
"error.section.files.max.singular":
|
||||
"No debes agregar más de un archivo a la sección \"{section}\"",
|
||||
"error.section.files.min.plural":
|
||||
"The \"{section}\" section requires at least {min} files",
|
||||
"La sección \"{section}\" requiere al menos {min} archivos",
|
||||
"error.section.files.min.singular":
|
||||
"The \"{section}\" section requires at least one file",
|
||||
"La sección \"{section}\" requiere al menos un archivo",
|
||||
|
||||
"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":
|
||||
"The \"{section}\" section requires at least {min} pages",
|
||||
"La sección \"{section}\" requiere al menos {min} páginas",
|
||||
"error.section.pages.min.singular":
|
||||
"The \"{section}\" section requires at least one page",
|
||||
"La sección \"{section}\" requiere al menos una página",
|
||||
|
||||
"error.section.notLoaded": "La sección \"{name}\" no se pudo cargar",
|
||||
"error.section.type.invalid": "La sección \"{type}\" no es valida",
|
||||
@@ -158,7 +166,7 @@
|
||||
"error.user.changeRole.permission":
|
||||
"No tienes permiso para cambiar el rol del usuario \"{name}\"",
|
||||
"error.user.changeRole.toAdmin":
|
||||
"You are not allowed to promote someone to the admin role",
|
||||
"No tienes permitido promover a alguien al rol de admin",
|
||||
"error.user.create.permission": "No tienes permiso de crear este usuario",
|
||||
"error.user.delete": "El ususario no pudo ser eliminado",
|
||||
"error.user.delete.lastAdmin": "Usted no puede borrar el \u00faltimo administrador",
|
||||
@@ -188,9 +196,9 @@
|
||||
"error.validation.contains":
|
||||
"Por favor ingrese valores que contengan \"{needle}\"",
|
||||
"error.validation.date": "Por favor ingresa una fecha válida",
|
||||
"error.validation.date.after": "Please enter a date after {date}",
|
||||
"error.validation.date.before": "Please enter a date before {date}",
|
||||
"error.validation.date.between": "Please enter a date between {min} and {max}",
|
||||
"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 niegue",
|
||||
"error.validation.different": "EL valor no debe ser \"{other}\"",
|
||||
"error.validation.email": "Por favor ingresa un correo electrónico valido",
|
||||
@@ -223,7 +231,7 @@
|
||||
"error.validation.time": "Por favor ingresa una hora válida",
|
||||
"error.validation.url": "Por favor ingresa un URL válido",
|
||||
|
||||
"field.required": "The field is required",
|
||||
"field.required": "Este campo es requerido",
|
||||
"field.files.empty": "Aún no ha seleccionado ningún archivo",
|
||||
"field.pages.empty": "Aún no ha seleccionado ningúna pagina",
|
||||
"field.structure.delete.confirm": "\u00bfEn realidad desea borrar esta entrada?",
|
||||
@@ -271,7 +279,7 @@
|
||||
"language.direction.ltr": "De Izquierda a derecha",
|
||||
"language.direction.rtl": "De derecha a izquierda",
|
||||
"language.locale": "Cadena de localización PHP",
|
||||
"language.locale.warning": "You are using a custom locale set up. Please modify it in the language file in /site/languages",
|
||||
"language.locale.warning": "Estas utilizando un configuración local. Por favor modifícalo en el archivo del lenguaje en /site/languages",
|
||||
"language.name": "Nombre",
|
||||
"language.updated": "El idioma a sido actualizado",
|
||||
|
||||
@@ -295,13 +303,13 @@
|
||||
|
||||
"loading": "Cargando",
|
||||
|
||||
"lock.unsaved": "Unsaved changes",
|
||||
"lock.unsaved.empty": "There are no more unsaved changes",
|
||||
"lock.isLocked": "Unsaved changes by <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "The file is currently being edited by {email} and cannot be changed.",
|
||||
"lock.page.isLocked": "The page is currently being edited by {email} and cannot be changed.",
|
||||
"lock.unlock": "Unlock",
|
||||
"lock.isUnlocked": "Your unsaved changes have been overwritten by another user. You can download your changes to merge them manually.",
|
||||
"lock.unsaved": "Cambios sin guardar",
|
||||
"lock.unsaved.empty": "No hay más cambios sin guardar",
|
||||
"lock.isLocked": "Cambios sin guardar por <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "El archivo está siendo actualmente editado por {email} y no puede ser cambiado.",
|
||||
"lock.page.isLocked": "La página está siendo actualmente editada por {email} y no puede ser cambiada.",
|
||||
"lock.unlock": "Desbloquear",
|
||||
"lock.isUnlocked": "Tus cambios sin guardar han sido sobrescritos por otro usuario. Puedes descargar los cambios y fusionarlos manualmente.",
|
||||
|
||||
"login": "Iniciar sesi\u00f3n",
|
||||
"login.remember": "Mantener mi sesión iniciada",
|
||||
@@ -330,8 +338,8 @@
|
||||
"more": "Màs",
|
||||
"name": "Nombre",
|
||||
"next": "Siguiente",
|
||||
"off": "off",
|
||||
"on": "on",
|
||||
"off": "Apagado",
|
||||
"on": "Encendido",
|
||||
"open": "Abrir",
|
||||
"options": "Opciones",
|
||||
|
||||
@@ -353,8 +361,8 @@
|
||||
"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": "Copy files",
|
||||
"page.duplicate.pages": "Copy pages",
|
||||
"page.duplicate.files": "Copiar archivos",
|
||||
"page.duplicate.pages": "Copiar páginas",
|
||||
"page.status": "Estado",
|
||||
"page.status.draft": "Borrador",
|
||||
"page.status.draft.description":
|
||||
@@ -382,18 +390,18 @@
|
||||
"revert": "Revertir",
|
||||
|
||||
"role": "Rol",
|
||||
"role.admin.description": "The admin has all rights",
|
||||
"role.admin.title": "Admin",
|
||||
"role.admin.description": "El administrador tiene todos los derechos",
|
||||
"role.admin.title": "Administrador",
|
||||
"role.all": "Todos",
|
||||
"role.empty": "No hay usuarios con este rol",
|
||||
"role.description.placeholder": "Sin descripción",
|
||||
"role.nobody.description": "This is a fallback role without any permissions",
|
||||
"role.nobody.title": "Nobody",
|
||||
"role.nobody.description": "Este es un rol alternativo sin permisos",
|
||||
"role.nobody.title": "Nadie",
|
||||
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
|
||||
"section.required": "The section is required",
|
||||
"section.required": "Esta sección es requerida",
|
||||
|
||||
"select": "Seleccionar",
|
||||
"settings": "Ajustes",
|
||||
@@ -413,8 +421,8 @@
|
||||
"toolbar.button.heading.3": "Encabezado 3",
|
||||
"toolbar.button.italic": "Texto en It\u00e1licas",
|
||||
"toolbar.button.file": "Archivo",
|
||||
"toolbar.button.file.select": "Select a file",
|
||||
"toolbar.button.file.upload": "Upload a file",
|
||||
"toolbar.button.file.select": "Selecciona un archivo",
|
||||
"toolbar.button.file.upload": "Sube un archivo",
|
||||
"toolbar.button.link": "Enlace",
|
||||
"toolbar.button.ol": "Lista en orden",
|
||||
"toolbar.button.ul": "Lista de viñetas",
|
||||
@@ -422,13 +430,14 @@
|
||||
"translation.author": "Equipo Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Español (América Latina)",
|
||||
"translation.locale": "es_419",
|
||||
|
||||
"upload": "Subir",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
"upload.error.cantWrite": "Failed to write file to disk",
|
||||
"upload.error.default": "The file could not be uploaded",
|
||||
"upload.error.extension": "File upload stopped by extension",
|
||||
"upload.error.formSize": "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the form",
|
||||
"upload.error.cantMove": "El archivo subido no puede 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": "The uploaded file exceeds the post_max_size directive in php.ini",
|
||||
"upload.error.iniSize": "The uploaded file exceeds the upload_max_filesize directive in php.ini",
|
||||
"upload.error.noFile": "No file was uploaded",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"La extensión \"{extension}\" no está permitida",
|
||||
"error.file.extension.missing":
|
||||
"Falta la extensión para \"{filename}\"",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"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": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"El tipo de medio para \"{filename}\" no pudo ser detectado",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"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.undefined": "El archivo no pudo ser encontrado",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Turqueso",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Español",
|
||||
"translation.locale": "es_ES",
|
||||
|
||||
"upload": "Subir",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"پسوند فایل «{extension}» غیرمجاز است",
|
||||
"error.file.extension.missing":
|
||||
"\u0634\u0645\u0627 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u067e\u0633\u0648\u0646\u062f \u0631\u0627 \u0622\u067e\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"فایل آپلود شده باید از همان نوع باشد «{mime}»",
|
||||
"error.file.mime.forbidden": "فرمت فایل «{mime}» غیرمجاز است",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"فرمت فایل «{filename}» قابل شناسایی نیست",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "نام فایل اجباری است",
|
||||
"error.file.notFound": "فایل «{filename}» پیدا نشد.",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "شما اجازه بارگذاری فایلهای «{type}» را ندارید",
|
||||
"error.file.undefined": "\u0641\u0627\u06cc\u0644 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f.",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "تیم کربی",
|
||||
"translation.direction": "rtl",
|
||||
"translation.name": "انگلیسی",
|
||||
"translation.locale": "fa_IR",
|
||||
|
||||
"upload": "بارگذاری",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Tiedostopääte \"{extension}\" ei ole sallittu",
|
||||
"error.file.extension.missing":
|
||||
"Tiedoston \"{filename}\" tiedostopääte puuttuu",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Lähetetyllä tiedostolla täytyy olla sama mime-tyyppi \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Median tyyppi \"{mime}\" ei ole sallittu",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Tiedoston \"{filename}\" mediatyyppiä ei voida tunnistaa",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Tiedostonimi ei voi olla tyhjä",
|
||||
"error.file.notFound": "Tiedostoa \"{filename}\" ei löytynyt",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Sinulla ei ole oikeutta lähettää tiedostoja joiden tyyppi on {type}",
|
||||
"error.file.undefined": "Tiedostoa ei l\u00f6ytynyt",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby-tiimi",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Suomi",
|
||||
"translation.locale": "fi_FI",
|
||||
|
||||
"upload": "Lähetä",
|
||||
"upload.error.cantMove": "Lähetettyä tiedostoa ei voitu siirtää",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"L’extension « {extension} » n’est pas autorisée",
|
||||
"error.file.extension.missing":
|
||||
"L’extension pour « {filename} » est manquante",
|
||||
"error.file.maxheight": "La hauteur de l'image ne doit pas excéder {height} pixels",
|
||||
"error.file.maxsize": "Le fichier est trop volumineux",
|
||||
"error.file.maxwidth": "La largeur de l'image ne doit pas excéder {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Le fichier transféré doit être du même type de média « {mime} »",
|
||||
"error.file.mime.forbidden": "Le type de média « {mime} » n’est pas autorisé",
|
||||
"error.file.mime.invalid": "Type de média invalide : {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Le type de média de « {filename} » n’a pu être détecté",
|
||||
"error.file.minheight": "La hauteur de l'image doit être au moins {height} pixels",
|
||||
"error.file.minsize": "Le fichier n'est pas assez volumineux",
|
||||
"error.file.minwidth": "La largeur de l'image doit être au moins {width} pixels",
|
||||
"error.file.name.missing": "Veuillez entrer un titre",
|
||||
"error.file.notFound": "Le fichier « {filename} » n’a pu être trouvé",
|
||||
"error.file.orientation": "L'orientation de l'image doit être \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Vous n’êtes pas autorisé à transférer des fichiers {type}",
|
||||
"error.file.undefined": "Le fichier n’a pu être trouvé",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Français",
|
||||
"translation.locale": "fr_FR",
|
||||
|
||||
"upload": "Transférer",
|
||||
"upload.error.cantMove": "Le fichier transféré n’a pu être déplacé",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Tiltott kiterjeszt\u00e9s\u0171 f\u00e1jl",
|
||||
"error.file.extension.missing":
|
||||
"Kiterjeszt\u00e9s n\u00e9lk\u00fcli f\u00e1jl nem t\u00f6lthet\u0151 fel",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"A feltöltött fájlnak azonos \"{mime}\" típusúnak kell lennie",
|
||||
"error.file.mime.forbidden": "A \"{mime}\" típusú médiafájlok nem engedélyezettek",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"A \"{filename}\" fájl típusa nem állapítható meg",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "A fálj neve nem lehet üres",
|
||||
"error.file.notFound": "A \"{filename}\" fájl nem található",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Nem tölthetsz fel \"{type}\" típusú fájlokat",
|
||||
"error.file.undefined": "A f\u00e1jl nem tal\u00e1lhat\u00f3",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "A Kirby csapata",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Magyar",
|
||||
"translation.locale": "hu_HU",
|
||||
|
||||
"upload": "Feltöltés",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Ekstensi \"{extension}\" tidak diizinkan",
|
||||
"error.file.extension.missing":
|
||||
"Berkas \"{filename}\" harus memiliki ekstensi",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Berkas yang diunggah harus memiliki tipe mime sama \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Media dengan tipe mime \"{mime}\" tidak diizinkan",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Tipe media untuk \"{filename}\" tidak dapat dideteksi",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Nama berkas harus diisi",
|
||||
"error.file.notFound": "Berkas \"{filename}\" tidak dapat ditemukan",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Anda tidak diizinkan mengunggah berkas dengan tipe {type}",
|
||||
"error.file.undefined": "Berkas tidak dapat ditemukan",
|
||||
|
||||
@@ -296,7 +304,7 @@
|
||||
"loading": "Memuat",
|
||||
|
||||
"lock.unsaved": "Perubahan belum tersimpan",
|
||||
"lock.unsaved.empty": "There are no more unsaved changes",
|
||||
"lock.unsaved.empty": "Tidak ada lagi perubahan belum tersimpan",
|
||||
"lock.isLocked": "Perubahan belum tersimpan oleh <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "Berkas sedang disunting oleh {email} dan tidak dapat diubah.",
|
||||
"lock.page.isLocked": "Halaman sedang disunting oleh {email} dan tidak dapat diubah.",
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Tim Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Bahasa Indonesia",
|
||||
"translation.locale": "id_ID",
|
||||
|
||||
"upload": "Unggah",
|
||||
"upload.error.cantMove": "Berkas unggahan tidak dapat dipindahkan",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"L'estensione \"{extension}\" non è consentita",
|
||||
"error.file.extension.missing":
|
||||
"Il file \"{filename}\" non ha estensione",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Il file caricato dev'essere dello stesso MIME type \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Il MIME type \"{mime}\" non è consentito",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Il MIME type per \"{filename}\" non può essere rilevato",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Il nome del file non può essere vuoto",
|
||||
"error.file.notFound": "Il file non \u00e8 stato trovato",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Non ti è permesso caricare file {type}",
|
||||
"error.file.undefined": "Il file non \u00e8 stato trovato",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team, Roman Steiner, Manu Moreale",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Italiano",
|
||||
"translation.locale": "it_IT",
|
||||
|
||||
"upload": "Carica",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"이 확장자({extension})는 업로드할 수 없습니다.",
|
||||
"error.file.extension.missing":
|
||||
"파일({filename})에 확장자가 없습니다.",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"기존 파일과 MIME 형식({mime})이 다릅니다.",
|
||||
"error.file.mime.forbidden": "이 MIME 형식({mime})은 업로드할 수 없습니다.",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"파일({filename})의 형식을 알 수 없습니다.",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "파일명을 입력하세요.",
|
||||
"error.file.notFound": "파일({filename})이 없습니다.",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "이 형식({type})의 파일을 업로드할 권한이 없습니다.",
|
||||
"error.file.undefined": "\ud30c\uc77c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby 팀",
|
||||
"translation.direction": "LTR",
|
||||
"translation.name": "한국어",
|
||||
"translation.locale": "ko_KR",
|
||||
|
||||
"upload": "업로드",
|
||||
"upload.error.cantMove": "업로드한 파일을 이동할 수 없습니다.",
|
||||
|
@@ -13,13 +13,13 @@
|
||||
"date.select": "Pasirinkite datą",
|
||||
|
||||
"day": "Diena",
|
||||
"days.fri": "Penktadienis",
|
||||
"days.mon": "Pirmadienis",
|
||||
"days.sat": "Šeštadienis",
|
||||
"days.sun": "Sekmadienis",
|
||||
"days.thu": "Ketvirtadienis",
|
||||
"days.tue": "Antradienis",
|
||||
"days.wed": "Trečiadienis",
|
||||
"days.fri": "Pen",
|
||||
"days.mon": "Pir",
|
||||
"days.sat": "Šeš",
|
||||
"days.sun": "Sek",
|
||||
"days.thu": "Ket",
|
||||
"days.tue": "Ant",
|
||||
"days.wed": "Tre",
|
||||
|
||||
"delete": "Pašalinti",
|
||||
"dimensions": "Išmatavimai",
|
||||
@@ -61,13 +61,21 @@
|
||||
"Failo tipas (plėtinys) \"{extension}\" neleidžiamas",
|
||||
"error.file.extension.missing":
|
||||
"Failui \"{filename}\" trūksta tipo (plėtinio)",
|
||||
"error.file.maxheight": "Failo aukštis neturi viršyti {height} px",
|
||||
"error.file.maxsize": "Failas per didelis",
|
||||
"error.file.maxwidth": "Failo plotis neturi viršyti {width} px",
|
||||
"error.file.mime.differs":
|
||||
"Įkėliamas failas turi būti tokio pat mime tipo \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Media tipas \"{mime}\" neleidžiamas",
|
||||
"error.file.mime.invalid": "Neteisingas mime tipas: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Failui \"{filename}\" nepavyko atpažinti media (mime) tipo",
|
||||
"error.file.minheight": "Failo aukštis turi būti bent {height} px",
|
||||
"error.file.minsize": "Failas per mažas",
|
||||
"error.file.minwidth": "Failo plotis turi būti bent {width} px",
|
||||
"error.file.name.missing": "Failo pavadinimas negali būti tuščias",
|
||||
"error.file.notFound": "Failas \"{filename}\" nerastas",
|
||||
"error.file.orientation": "Failo orientacija turi būti \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Jūs neturite teisės įkelti {type} tipo failų",
|
||||
"error.file.undefined": "Failas nerastas",
|
||||
|
||||
@@ -296,7 +304,7 @@
|
||||
"loading": "Kraunasi",
|
||||
|
||||
"lock.unsaved": "Neišsaugoti pakeitimai",
|
||||
"lock.unsaved.empty": "There are no more unsaved changes",
|
||||
"lock.unsaved.empty": "Nebeliko neišsaugotų pakeitimų",
|
||||
"lock.isLocked": "Vartotojo <strong>{email}</strong> neišsaugoti pakeitimai",
|
||||
"lock.file.isLocked": "Šį failą dabar redaguoja kitas vartotojas {email}, tad jo negalima pekeisti.",
|
||||
"lock.page.isLocked": "Šį puslapį dabar redaguoja kitas vartotojas {email}, tad jo negalima pekeisti.",
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Roman U",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Lietuvių",
|
||||
"translation.locale": "lt_LT",
|
||||
|
||||
"upload": "Įkelti",
|
||||
"upload.error.cantMove": "Įkeltas failas negali būti perkeltas",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Ugyldig filtype",
|
||||
"error.file.extension.missing":
|
||||
"Du kan ikke laste opp filer uten filtype",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Den opplastede filen må være av samme MIME-type \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Mediatypen \"{mime}\" er ikke tillatt",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Mediatypen for \"{filename}\" kan ikke gjenkjennes",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Filnavnet kan ikke være tomt",
|
||||
"error.file.notFound": "Filen kunne ikke bli funnet",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Du har ikke lov til å laste opp filer av typen {type}",
|
||||
"error.file.undefined": "Filen kunne ikke bli funnet",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Norsk Bokm\u00e5l",
|
||||
"translation.locale": "nb_NO",
|
||||
|
||||
"upload": "Last opp",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Bestandsextensie \"{extension}\" is niet toegestaan",
|
||||
"error.file.extension.missing":
|
||||
"Je kunt geen bestanden uploaden zonder bestandsextensie",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Het geüploade bestand moet van hetzelfde mime-type zijn: \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Het type \"{mime}\" is niet toegestaan",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Het mediatype voor \"{filename}\" kan niet worden gedecteerd",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "De bestandsnaam mag niet leeg zijn",
|
||||
"error.file.notFound": "Het bestand kan niet worden gevonden",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Je hebt geen rechten om {type} bestanden up te loaden",
|
||||
"error.file.undefined": "Het bestand kan niet worden gevonden",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Het team van Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Nederlands",
|
||||
"translation.locale": "nl_NL",
|
||||
|
||||
"upload": "Upload",
|
||||
"upload.error.cantMove": "Het geüploadde bestand kon niet worden verplaatst",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Rozszerzenie \"{extension}\" jest niedozwolone",
|
||||
"error.file.extension.missing":
|
||||
"Brak rozszerzenia pliku \"{filename}\"",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Przesłany plik musi być tego samego typu mime \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Typ multimediów \"{mime}\" jest niedozwolony",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Nie można wykryć typu multimediów dla \"{filename}\"",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Nazwa pliku nie może być pusta",
|
||||
"error.file.notFound": "Nie można znaleźć pliku \"{filename}\"",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Nie możesz przesyłać plików {type}",
|
||||
"error.file.undefined": "Nie można znaleźć pliku",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Zespół Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Polski",
|
||||
"translation.locale": "pl_PL",
|
||||
|
||||
"upload": "Prześlij",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Extensão \"{extension}\" não permitida",
|
||||
"error.file.extension.missing":
|
||||
"Extensão de \"{filename}\" em falta",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"O arquivo enviado precisa ser do tipo \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Tipo de mídia \"{mime}\" não permitido",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Tipo de mídia de \"{filename}\" não detectado",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "O nome do arquivo não pode ficar em branco",
|
||||
"error.file.notFound": "Arquivo \"{filename}\" não encontrado",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Você não tem permissão para enviar arquivos {type}",
|
||||
"error.file.undefined": "Arquivo n\u00e3o encontrado",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Português (Brasileiro)",
|
||||
"translation.locale": "pt_BR",
|
||||
|
||||
"upload": "Enviar",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Extensão \"{extension}\" não permitida",
|
||||
"error.file.extension.missing":
|
||||
"Extensão de \"{filename}\" em falta",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"O arquivo enviado precisa ser do tipo \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Tipo de mídia \"{mime}\" não permitido",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Tipo de mídia de \"{filename}\" não detectado",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "O nome do arquivo não pode ficar em branco",
|
||||
"error.file.notFound": "Arquivo \"{filename}\" não encontrado",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Não tem permissões para enviar arquivos {type}",
|
||||
"error.file.undefined": "Arquivo n\u00e3o encontrado",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Português (Europeu)",
|
||||
"translation.locale": "pt_PT",
|
||||
|
||||
"upload": "Enviar",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Расширение файла \"{extension}\" неразрешено",
|
||||
"error.file.extension.missing":
|
||||
"Файлу \"{filename}\" не хватает расширения",
|
||||
"error.file.maxheight": "Высота картинки не должна превышать {height} px",
|
||||
"error.file.maxsize": "Файл слишком большой",
|
||||
"error.file.maxwidth": "Ширина картинки не должна превышать {width} px",
|
||||
"error.file.mime.differs":
|
||||
"Загруженный файл должен быть того же mime типа: \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Тип медиа \"{mime}\" не допустим",
|
||||
"error.file.mime.invalid": "Неверный тип mime: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Не удалось определить тип медиа для файла \"{filename}\"",
|
||||
"error.file.minheight": "Высота файла должна быть хотя бы {height} px",
|
||||
"error.file.minsize": "Файл слишком маленький",
|
||||
"error.file.minwidth": "Ширина файла должна быть хотя бы {width} px",
|
||||
"error.file.name.missing": "Название файла не может быть пустым",
|
||||
"error.file.notFound": "\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
||||
"error.file.orientation": "Ориентация картинки должна быть \"{orientation}\"",
|
||||
"error.file.type.forbidden": "У вас нет права загружать файлы {type}",
|
||||
"error.file.undefined": "\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
||||
|
||||
@@ -296,7 +304,7 @@
|
||||
"loading": "Загрузка",
|
||||
|
||||
"lock.unsaved": "Несохраненные изменения",
|
||||
"lock.unsaved.empty": "There are no more unsaved changes",
|
||||
"lock.unsaved.empty": "Больше нет несохраненных изменений",
|
||||
"lock.isLocked": "Несохраненные изменения пользователя <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "В данный момент этот файл редактирует {email}, поэтому его нельзя изменить.",
|
||||
"lock.page.isLocked": "В данный момент эту страницу редактирует {email}, поэтому его нельзя изменить.",
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Команда Кирби",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Русский (Russian)",
|
||||
"translation.locale": "ru_RU",
|
||||
|
||||
"upload": "Закачать",
|
||||
"upload.error.cantMove": "Загруженный файл не может быть перемещен",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Prípona \"{extension}\" nie je povolená",
|
||||
"error.file.extension.missing":
|
||||
"Prípona pre \"{filename}\" chýba",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"MIME typ nahratého súboru msa musí zhodovať s \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Typ média \"{mime}\" nie je povolený",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Typ média pre \"{filename}\" sa nepodarilo zistiť",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Názov súboru nemôže byť prázdny",
|
||||
"error.file.notFound": "Súbor \"{filename}\" sa nepodarilo nájsť",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Nemáte povolenie na nahrávanie súborov s typom {type}",
|
||||
"error.file.undefined": "Súbor nie je možné nájsť",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Tím Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Slovensky",
|
||||
"translation.locale": "sk_SK",
|
||||
|
||||
"upload": "Nahrať",
|
||||
"upload.error.cantMove": "The uploaded file could not be moved",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"Filändelsen \"{extension}\" är inte tillåten",
|
||||
"error.file.extension.missing":
|
||||
"Filen \"{filename}\" saknar filändelse",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
"error.file.maxsize": "The file is too large",
|
||||
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
|
||||
"error.file.mime.differs":
|
||||
"Den uppladdade filen måste vara av samma mime-typ \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Mediatypen \"{mime}\" är inte tillåten",
|
||||
"error.file.mime.invalid": "Invalid mime type: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"Mediatypen för \"{filename}\" kan inte detekteras",
|
||||
"error.file.minheight": "The height of the image must be at least {height} pixels",
|
||||
"error.file.minsize": "The file is too small",
|
||||
"error.file.minwidth": "The width of the image must be at least {width} pixels",
|
||||
"error.file.name.missing": "Filnamnet får inte vara tomt",
|
||||
"error.file.notFound": "Filen \"{filename}\" kan ej hittas",
|
||||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Du har inte behörighet att ladda upp filer av typen {type}",
|
||||
"error.file.undefined": "Filen kan inte hittas",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby-teamet, Ola Christensson",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Svenska",
|
||||
"translation.locale": "sv_SE",
|
||||
|
||||
"upload": "Ladda upp",
|
||||
"upload.error.cantMove": "Den överförda filen kunde inte flyttas",
|
||||
|
@@ -61,13 +61,21 @@
|
||||
"\"{extension}\" dosya uzantısına izin verilmiyor",
|
||||
"error.file.extension.missing":
|
||||
"\"{filename}\" dosyasının uzantısı yok",
|
||||
"error.file.maxheight": "Resmin yüksekliği {height} pikselden büyük olmamalıdır",
|
||||
"error.file.maxsize": "Dosya çok büyük",
|
||||
"error.file.maxwidth": "Resmin genişliği {width} pikselden büyük olmamalıdır",
|
||||
"error.file.mime.differs":
|
||||
"Yüklenen dosya aynı dosya türü \"{mime}\" olmalıdır",
|
||||
"error.file.mime.forbidden": "\"{mime}\" medya türüne izin verilmiyor",
|
||||
"error.file.mime.invalid": "Geçersiz medya türü: {mime}",
|
||||
"error.file.mime.missing":
|
||||
"\"{filename}\" için medya türü tespit edilemiyor",
|
||||
"error.file.minheight": "Resmin yüksekliği en az {height} piksel olmalıdır",
|
||||
"error.file.minsize": "Dosya çok küçük",
|
||||
"error.file.minwidth": "Resmin genişliği en az {width} piksel olmalıdır",
|
||||
"error.file.name.missing": "Dosya adı boş bırakılamaz",
|
||||
"error.file.notFound": "\"{filename}\" dosyası bulunamadı",
|
||||
"error.file.orientation": "Resmin oryantasyonu \"{orientation}\" olmalıdır",
|
||||
"error.file.type.forbidden": "{type} dosya yükleme izni yok",
|
||||
"error.file.undefined": "Dosya bulunamad\u0131",
|
||||
|
||||
@@ -422,6 +430,7 @@
|
||||
"translation.author": "Kirby Takımı",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "T\u00fcrk\u00e7e",
|
||||
"translation.locale": "tr_TR",
|
||||
|
||||
"upload": "Yükle",
|
||||
"upload.error.cantMove": "Yüklenen dosya taşınamadı",
|
||||
|
2
kirby/panel/dist/css/app.css
vendored
2
kirby/panel/dist/css/app.css
vendored
File diff suppressed because one or more lines are too long
2
kirby/panel/dist/js/app.js
vendored
2
kirby/panel/dist/js/app.js
vendored
File diff suppressed because one or more lines are too long
6
kirby/panel/dist/js/vendor.js
vendored
6
kirby/panel/dist/js/vendor.js
vendored
File diff suppressed because one or more lines are too long
@@ -174,21 +174,19 @@ class Api
|
||||
// set PHP locales based on *user* language
|
||||
// so that e.g. strftime() gets formatted correctly
|
||||
if (is_a($user, 'Kirby\Cms\User') === true) {
|
||||
$locale = $language = $user->language();
|
||||
$language = $user->language();
|
||||
|
||||
// if it's not already a full locale, "fake" one
|
||||
// and assume that the country equals the language
|
||||
if (Str::contains($locale, '_') !== true) {
|
||||
$locale .= '_' . strtoupper($locale);
|
||||
}
|
||||
// get the locale from the translation
|
||||
$translation = $user->kirby()->translation($language);
|
||||
$locale = ($translation !== null)? $translation->locale() : $language;
|
||||
|
||||
// provide some variants as fallbacks to be
|
||||
// compatible with as many systems as possible
|
||||
$locales = [
|
||||
$locale,
|
||||
$locale . '.UTF-8',
|
||||
$locale . '.UTF8',
|
||||
$locale . '.ISO8859-1',
|
||||
$locale,
|
||||
$language,
|
||||
setlocale(LC_ALL, 0) // fall back to the previously defined locale
|
||||
];
|
||||
@@ -225,7 +223,7 @@ class Api
|
||||
* @param array|null $collection
|
||||
* @return \Kirby\Api\Collection
|
||||
*
|
||||
* @throws NotFoundException If no collection for `$name` exists
|
||||
* @throws \Kirby\Exception\NotFoundException If no collection for `$name` exists
|
||||
*/
|
||||
public function collection(string $name, $collection = null)
|
||||
{
|
||||
@@ -254,7 +252,7 @@ class Api
|
||||
* @param mixed ...$args
|
||||
* @return mixed
|
||||
*
|
||||
* @throws NotFoundException If no data for `$key` exists
|
||||
* @throws \Kirby\Exception\NotFoundException If no data for `$key` exists
|
||||
*/
|
||||
public function data($key = null, ...$args)
|
||||
{
|
||||
@@ -302,7 +300,7 @@ class Api
|
||||
* @param mixed $object
|
||||
* @return \Kirby\Api\Model
|
||||
*
|
||||
* @throws NotFoundException If no model for `$name` exists
|
||||
* @throws \Kirby\Exception\NotFoundException If no model for `$name` exists
|
||||
*/
|
||||
public function model(string $name, $object = null)
|
||||
{
|
||||
@@ -414,7 +412,7 @@ class Api
|
||||
* @param mixed $object
|
||||
* @return \Kirby\Api\Model|\Kirby\Api\Collection
|
||||
*
|
||||
* @throws NotFoundException If `$object` cannot be resolved
|
||||
* @throws \Kirby\Exception\NotFoundException If `$object` cannot be resolved
|
||||
*/
|
||||
public function resolve($object)
|
||||
{
|
||||
@@ -705,8 +703,8 @@ class Api
|
||||
* @param bool $single
|
||||
* @return array
|
||||
*
|
||||
* @throws Exception If request has no files
|
||||
* @throws Exception If there was an error with the upload
|
||||
* @throws \Exception If request has no files
|
||||
* @throws \Exception If there was an error with the upload
|
||||
*/
|
||||
public function upload(Closure $callback, $single = false): array
|
||||
{
|
||||
|
@@ -67,7 +67,7 @@ class App
|
||||
protected $routes;
|
||||
protected $router;
|
||||
protected $server;
|
||||
protected $session;
|
||||
protected $sessionHandler;
|
||||
protected $site;
|
||||
protected $system;
|
||||
protected $urls;
|
||||
@@ -784,6 +784,7 @@ class App
|
||||
/**
|
||||
* Returns the nonce, which is used
|
||||
* in the panel for inline scripts
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
@@ -1105,8 +1106,18 @@ class App
|
||||
*/
|
||||
public function session(array $options = [])
|
||||
{
|
||||
$this->session = $this->session ?? new AutoSession($this->root('sessions'), $this->options['session'] ?? []);
|
||||
return $this->session->get($options);
|
||||
return $this->sessionHandler()->get($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the session handler
|
||||
*
|
||||
* @return \Kirby\Session\AutoSession
|
||||
*/
|
||||
public function sessionHandler()
|
||||
{
|
||||
$this->sessionHandler = $this->sessionHandler ?? new AutoSession($this->root('sessions'), $this->option('session', []));
|
||||
return $this->sessionHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -198,9 +198,9 @@ class Auth
|
||||
* @param bool $long
|
||||
* @return \Kirby\Cms\User
|
||||
*
|
||||
* @throws PermissionException If the rate limit was exceeded or if any other error occured with debug mode off
|
||||
* @throws NotFoundException If the email was invalid
|
||||
* @throws InvalidArgumentException If the password is not valid (via `$user->login()`)
|
||||
* @throws \Kirby\Exception\PermissionException If the rate limit was exceeded or if any other error occured with debug mode off
|
||||
* @throws \Kirby\Exception\NotFoundException If the email was invalid
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the password is not valid (via `$user->login()`)
|
||||
*/
|
||||
public function login(string $email, string $password, bool $long = false)
|
||||
{
|
||||
@@ -214,10 +214,22 @@ class Auth
|
||||
$user = $this->validatePassword($email, $password);
|
||||
$user->loginPasswordless($options);
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a user object as the current user in the cache
|
||||
* @internal
|
||||
*
|
||||
* @param \Kirby\Cms\User $user
|
||||
* @return void
|
||||
*/
|
||||
public function setUser(User $user): void
|
||||
{
|
||||
// stop impersonating
|
||||
$this->impersonate = null;
|
||||
|
||||
return $this->user = $user;
|
||||
$this->user = $user;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -228,9 +240,9 @@ class Auth
|
||||
* @param string $password
|
||||
* @return \Kirby\Cms\User
|
||||
*
|
||||
* @throws PermissionException If the rate limit was exceeded or if any other error occured with debug mode off
|
||||
* @throws NotFoundException If the email was invalid
|
||||
* @throws InvalidArgumentException If the password is not valid (via `$user->login()`)
|
||||
* @throws \Kirby\Exception\PermissionException If the rate limit was exceeded or if any other error occured with debug mode off
|
||||
* @throws \Kirby\Exception\NotFoundException If the email was invalid
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the password is not valid (via `$user->login()`)
|
||||
*/
|
||||
public function validatePassword(string $email, string $password)
|
||||
{
|
||||
@@ -334,20 +346,30 @@ class Auth
|
||||
/**
|
||||
* Logout the current user
|
||||
*
|
||||
* @return bool
|
||||
* @return void
|
||||
*/
|
||||
public function logout(): bool
|
||||
public function logout(): void
|
||||
{
|
||||
// stop impersonating
|
||||
// stop impersonating;
|
||||
// ensures that we log out the actually logged in user
|
||||
$this->impersonate = null;
|
||||
|
||||
// logout the current user if it exists
|
||||
if ($user = $this->user()) {
|
||||
$user->logout();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the cached user data after logout
|
||||
* @internal
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function flush(): void
|
||||
{
|
||||
$this->impersonate = null;
|
||||
$this->user = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -415,7 +437,8 @@ class Auth
|
||||
*
|
||||
* @param \Kirby\Session\Session|array|null $session
|
||||
* @return \Kirby\Cms\User
|
||||
* @throws
|
||||
*
|
||||
* @throws \Throwable If an authentication error occured
|
||||
*/
|
||||
public function user($session = null)
|
||||
{
|
||||
|
@@ -405,6 +405,7 @@ abstract class ModelWithContent extends Model
|
||||
* Returns an array of all actions
|
||||
* that can be performed in the Panel
|
||||
* This also checks for the lock status
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param array $unlock An array of options that will be force-unlocked
|
||||
* @return array
|
||||
|
@@ -438,6 +438,7 @@ class Pages extends Collection
|
||||
|
||||
/**
|
||||
* Filter all pages by excluding the given template
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param string|array $templates
|
||||
* @return \Kirby\Cms\Pages
|
||||
|
@@ -4,6 +4,7 @@ namespace Kirby\Cms;
|
||||
|
||||
use Exception;
|
||||
use Kirby\Data\Data;
|
||||
use Kirby\Toolkit\Str;
|
||||
|
||||
/**
|
||||
* Wrapper around Kirby's localization files,
|
||||
@@ -149,6 +150,21 @@ class Translation
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the PHP locale of the translation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function locale(): string
|
||||
{
|
||||
$default = $this->code;
|
||||
if (Str::contains($default, '_') !== true) {
|
||||
$default .= '_' . strtoupper($this->code);
|
||||
}
|
||||
|
||||
return $this->get('translation.locale', $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the human-readable translation name.
|
||||
*
|
||||
|
@@ -5,7 +5,6 @@ namespace Kirby\Cms;
|
||||
use Exception;
|
||||
use Kirby\Exception\InvalidArgumentException;
|
||||
use Kirby\Exception\NotFoundException;
|
||||
use Kirby\Exception\PermissionException;
|
||||
use Kirby\Session\Session;
|
||||
use Kirby\Toolkit\F;
|
||||
use Kirby\Toolkit\Str;
|
||||
@@ -408,7 +407,7 @@ class User extends ModelWithContent
|
||||
* @param \Kirby\Session\Session|array $session Session options or session object to set the user in
|
||||
* @return bool
|
||||
*
|
||||
* @throws PermissionException If the password is not valid
|
||||
* @throws \Kirby\Exception\PermissionException If the password is not valid
|
||||
*/
|
||||
public function login(string $password, $session = null): bool
|
||||
{
|
||||
@@ -434,6 +433,7 @@ class User extends ModelWithContent
|
||||
|
||||
$session->regenerateToken(); // privilege change
|
||||
$session->data()->set('user.id', $this->id());
|
||||
$this->kirby()->auth()->setUser($this);
|
||||
|
||||
$kirby->trigger('user.login:after', $this, $session);
|
||||
}
|
||||
@@ -451,8 +451,12 @@ class User extends ModelWithContent
|
||||
|
||||
$kirby->trigger('user.logout:before', $this, $session);
|
||||
|
||||
// remove the user from the session for future requests
|
||||
$session->data()->remove('user.id');
|
||||
|
||||
// clear the cached user object from the app state of the current request
|
||||
$this->kirby()->auth()->flush();
|
||||
|
||||
if ($session->data()->get() === []) {
|
||||
// session is now empty, we might as well destroy it
|
||||
$session->destroy();
|
||||
@@ -872,9 +876,9 @@ class User extends ModelWithContent
|
||||
* @param string $password
|
||||
* @return bool
|
||||
*
|
||||
* @throws NotFoundException If the user has no password
|
||||
* @throws InvalidArgumentException If the entered password is not valid
|
||||
* @throws InvalidArgumentException If the entered password does not match the user password
|
||||
* @throws \Kirby\Exception\NotFoundException If the user has no password
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the entered password is not valid
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the entered password does not match the user password
|
||||
*/
|
||||
public function validatePassword(string $password = null): bool
|
||||
{
|
||||
|
@@ -5,6 +5,7 @@ namespace Kirby\Exception;
|
||||
/**
|
||||
* ErrorPageException
|
||||
* Thrown to trigger the CMS error page
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @package Kirby Exception
|
||||
* @author Lukas Bestle <lukas@getkirby.com>
|
||||
|
@@ -180,6 +180,7 @@ class Visitor
|
||||
/**
|
||||
* Returns the MIME type from the provided list that
|
||||
* is most accepted (= preferred) by the visitor
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param string ...$mimeTypes MIME types to query for
|
||||
* @return string|null Preferred MIME type
|
||||
@@ -206,6 +207,7 @@ class Visitor
|
||||
/**
|
||||
* Returns true if the visitor prefers a JSON response over
|
||||
* an HTML response based on the `Accept` request header
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
|
@@ -6,6 +6,7 @@ use Exception;
|
||||
use Kirby\Http\Response;
|
||||
use Kirby\Toolkit\File;
|
||||
use Kirby\Toolkit\Html;
|
||||
use Kirby\Toolkit\I18n;
|
||||
use Kirby\Toolkit\Mime;
|
||||
use Kirby\Toolkit\V;
|
||||
|
||||
@@ -205,30 +206,35 @@ class Image extends File
|
||||
{
|
||||
if (($rules['mime'] ?? null) !== null) {
|
||||
if (Mime::isAccepted($this->mime(), $rules['mime']) !== true) {
|
||||
throw new Exception(sprintf('Invalid mime type: %s', $this->mime()));
|
||||
throw new Exception(I18n::template('error.file.mime.invalid', [
|
||||
'mime' => $this->mime()
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
$rules = array_change_key_case($rules);
|
||||
|
||||
$validations = [
|
||||
'maxsize' => ['size', 'max', 'The file is too large'],
|
||||
'minsize' => ['size', 'min', 'The file is too small'],
|
||||
'maxwidth' => ['width', 'max', 'The width of the image must not exceed %s pixels'],
|
||||
'minwidth' => ['width', 'min', 'The width of the image must be at least %s pixels'],
|
||||
'maxheight' => ['height', 'max', 'The height of the image must not exceed %s pixels'],
|
||||
'minheight' => ['height', 'min', 'The height of the image must be at least %s pixels'],
|
||||
'orientation' => ['orientation', 'same', 'The orientation of the image must be "%s"']
|
||||
'maxsize' => ['size', 'max'],
|
||||
'minsize' => ['size', 'min'],
|
||||
'maxwidth' => ['width', 'max'],
|
||||
'minwidth' => ['width', 'min'],
|
||||
'maxheight' => ['height', 'max'],
|
||||
'minheight' => ['height', 'min'],
|
||||
'orientation' => ['orientation', 'same']
|
||||
];
|
||||
|
||||
foreach ($validations as $key => $arguments) {
|
||||
if (isset($rules[$key]) === true && $rules[$key] !== null) {
|
||||
$rule = $rules[$key] ?? null;
|
||||
|
||||
if ($rule !== null) {
|
||||
$property = $arguments[0];
|
||||
$validator = $arguments[1];
|
||||
$message = $arguments[2];
|
||||
|
||||
if (V::$validator($this->$property(), $rules[$key]) === false) {
|
||||
throw new Exception(sprintf($message, $rules[$key]));
|
||||
if (V::$validator($this->$property(), $rule) === false) {
|
||||
throw new Exception(I18n::template('error.file.' . $key, [
|
||||
$property => $rule
|
||||
]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -144,6 +144,18 @@ class AutoSession
|
||||
return $this->sessions->create($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the specified Session object
|
||||
* @since 3.3.1
|
||||
*
|
||||
* @param string $token Session token, either including or without the key
|
||||
* @return \Kirby\Session\Session
|
||||
*/
|
||||
public function getManually(string $token)
|
||||
{
|
||||
return $this->sessions->get($token, 'manual');
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes all expired sessions
|
||||
*
|
||||
|
@@ -544,6 +544,7 @@ class Collection extends Iterator implements Countable
|
||||
|
||||
/**
|
||||
* Returns a Collection with the intersection of the given elements
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param \Kirby\Toolkit\Collection $other
|
||||
* @return \Kirby\Toolkit\Collection
|
||||
@@ -555,6 +556,7 @@ class Collection extends Iterator implements Countable
|
||||
|
||||
/**
|
||||
* Checks if there is an intersection between the given collection and this collection
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param \Kirby\Toolkit\Collection $other
|
||||
* @return bool
|
||||
@@ -1060,6 +1062,7 @@ class Collection extends Iterator implements Countable
|
||||
* is true. If the first parameter is false, the Closure will not be executed.
|
||||
* You may pass another Closure as the third parameter to the when method.
|
||||
* This Closure will execute if the first parameter evaluates as false
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param mixed $condition
|
||||
* @param Closure $callback
|
||||
|
@@ -242,6 +242,7 @@ class Mime
|
||||
/**
|
||||
* Tests if a MIME wildcard pattern from an `Accept` header
|
||||
* matches a given type
|
||||
* @since 3.3.0
|
||||
*
|
||||
* @param string $test
|
||||
* @param string $wildcard
|
||||
|
Reference in New Issue
Block a user