Update Composer packages
This commit is contained in:
parent
fed629e646
commit
fb8fa2afbb
306 changed files with 3542 additions and 50986 deletions
315
composer.lock
generated
315
composer.lock
generated
|
@ -8,16 +8,16 @@
|
|||
"packages": [
|
||||
{
|
||||
"name": "claviska/simpleimage",
|
||||
"version": "4.0.2",
|
||||
"version": "4.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/claviska/SimpleImage.git",
|
||||
"reference": "226d507cca0c8400d69bee7eb324158e3cbe246e"
|
||||
"reference": "969de5e61810ef91f6f83c475b192c4841367dfa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/226d507cca0c8400d69bee7eb324158e3cbe246e",
|
||||
"reference": "226d507cca0c8400d69bee7eb324158e3cbe246e",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/969de5e61810ef91f6f83c475b192c4841367dfa",
|
||||
"reference": "969de5e61810ef91f6f83c475b192c4841367dfa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -49,7 +49,7 @@
|
|||
"description": "A PHP class that makes working with images as simple as possible.",
|
||||
"support": {
|
||||
"issues": "https://github.com/claviska/SimpleImage/issues",
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/4.0.2"
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/4.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -57,20 +57,20 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-20T15:27:20+00:00"
|
||||
"time": "2023-07-27T16:48:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/semver",
|
||||
"version": "3.3.2",
|
||||
"version": "3.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/semver.git",
|
||||
"reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
|
||||
"reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
|
||||
"reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
|
||||
"reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -120,9 +120,9 @@
|
|||
"versioning"
|
||||
],
|
||||
"support": {
|
||||
"irc": "irc://irc.freenode.org/composer",
|
||||
"irc": "ircs://irc.libera.chat:6697/composer",
|
||||
"issues": "https://github.com/composer/semver/issues",
|
||||
"source": "https://github.com/composer/semver/tree/3.3.2"
|
||||
"source": "https://github.com/composer/semver/tree/3.4.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -138,20 +138,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-01T19:23:25+00:00"
|
||||
"time": "2023-08-31T09:50:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
"version": "2.15.2",
|
||||
"version": "2.15.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/filp/whoops.git",
|
||||
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73"
|
||||
"reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
|
||||
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
|
||||
"reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -201,7 +201,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/filp/whoops/issues",
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.2"
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -209,25 +209,25 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-12T12:00:00+00:00"
|
||||
"time": "2023-11-03T12:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "getkirby/cms",
|
||||
"version": "3.9.4",
|
||||
"version": "3.9.8.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/getkirby/kirby.git",
|
||||
"reference": "282b1e25faa0bc24c903237a7484dc45fa475c36"
|
||||
"reference": "40ae4e59227684709d45b202cb96f643da8684eb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/getkirby/kirby/zipball/282b1e25faa0bc24c903237a7484dc45fa475c36",
|
||||
"reference": "282b1e25faa0bc24c903237a7484dc45fa475c36",
|
||||
"url": "https://api.github.com/repos/getkirby/kirby/zipball/40ae4e59227684709d45b202cb96f643da8684eb",
|
||||
"reference": "40ae4e59227684709d45b202cb96f643da8684eb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"claviska/simpleimage": "4.0.2",
|
||||
"composer/semver": "3.3.2",
|
||||
"claviska/simpleimage": "4.0.6",
|
||||
"composer/semver": "3.4.0",
|
||||
"ext-ctype": "*",
|
||||
"ext-curl": "*",
|
||||
"ext-dom": "*",
|
||||
|
@ -239,15 +239,15 @@
|
|||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-simplexml": "*",
|
||||
"filp/whoops": "2.15.2",
|
||||
"filp/whoops": "2.15.4",
|
||||
"getkirby/composer-installer": "^1.2.1",
|
||||
"laminas/laminas-escaper": "2.12.0",
|
||||
"michelf/php-smartypants": "1.8.1",
|
||||
"php": ">=8.0.0 <8.3.0",
|
||||
"phpmailer/phpmailer": "6.8.0",
|
||||
"symfony/polyfill-intl-idn": "1.27.0",
|
||||
"symfony/polyfill-mbstring": "1.27.0",
|
||||
"symfony/yaml": "5.4.21"
|
||||
"phpmailer/phpmailer": "6.8.1",
|
||||
"symfony/polyfill-intl-idn": "1.28.0",
|
||||
"symfony/polyfill-mbstring": "1.28.0",
|
||||
"symfony/yaml": "5.4.30"
|
||||
},
|
||||
"replace": {
|
||||
"symfony/polyfill-php72": "*"
|
||||
|
@ -259,6 +259,7 @@
|
|||
"ext-fileinfo": "Improved mime type detection for files",
|
||||
"ext-intl": "Improved i18n number formatting",
|
||||
"ext-memcached": "Support for the Memcached cache driver",
|
||||
"ext-sodium": "Support for the crypto class and more robust session handling",
|
||||
"ext-zip": "Support for ZIP archive file functions",
|
||||
"ext-zlib": "Sanitization and validation for svgz files"
|
||||
},
|
||||
|
@ -310,7 +311,7 @@
|
|||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-21T09:23:46+00:00"
|
||||
"time": "2024-08-24T20:21:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "getkirby/composer-installer",
|
||||
|
@ -617,16 +618,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
"version": "v6.8.0",
|
||||
"version": "v6.8.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||
"reference": "df16b615e371d81fb79e506277faea67a1be18f1"
|
||||
"reference": "e88da8d679acc3824ff231fdc553565b802ac016"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/df16b615e371d81fb79e506277faea67a1be18f1",
|
||||
"reference": "df16b615e371d81fb79e506277faea67a1be18f1",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e88da8d679acc3824ff231fdc553565b802ac016",
|
||||
"reference": "e88da8d679acc3824ff231fdc553565b802ac016",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -636,13 +637,13 @@
|
|||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.2",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
|
||||
"doctrine/annotations": "^1.2.6 || ^1.13.3",
|
||||
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.7.1",
|
||||
"squizlabs/php_codesniffer": "^3.7.2",
|
||||
"yoast/phpunit-polyfills": "^1.0.4"
|
||||
},
|
||||
"suggest": {
|
||||
|
@ -685,7 +686,7 @@
|
|||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.8.0"
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.8.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -693,20 +694,20 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-06T14:43:22+00:00"
|
||||
"time": "2023-08-29T08:26:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "3.0.0",
|
||||
"version": "3.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
|
||||
"reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
|
||||
"reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -741,9 +742,9 @@
|
|||
"psr-3"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/log/tree/3.0.0"
|
||||
"source": "https://github.com/php-fig/log/tree/3.0.2"
|
||||
},
|
||||
"time": "2021-07-14T16:46:02+00:00"
|
||||
"time": "2024-09-11T13:17:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sylvainjule/matomo",
|
||||
|
@ -852,20 +853,20 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.31.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
|
||||
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
|
||||
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"provide": {
|
||||
"ext-ctype": "*"
|
||||
|
@ -875,12 +876,9 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -914,7 +912,7 @@
|
|||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -930,20 +928,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "639084e360537a19f9ee352433b84ce831f3d2da"
|
||||
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
|
||||
"reference": "639084e360537a19f9ee352433b84ce831f3d2da",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
|
||||
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -956,12 +954,12 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "1.28-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -1001,7 +999,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1017,36 +1015,33 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2023-01-26T09:30:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.31.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
|
||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
||||
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
|
||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -1085,7 +1080,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1101,20 +1096,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1128,12 +1123,12 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "1.28-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -1168,7 +1163,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1184,20 +1179,96 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2023-07-28T09:04:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v5.4.21",
|
||||
"name": "symfony/polyfill-php81",
|
||||
"version": "v1.31.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "3713e20d93e46e681e51605d213027e48dab3469"
|
||||
"url": "https://github.com/symfony/polyfill-php81.git",
|
||||
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/3713e20d93e46e681e51605d213027e48dab3469",
|
||||
"reference": "3713e20d93e46e681e51605d213027e48dab3469",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
|
||||
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php81\\": ""
|
||||
},
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v5.4.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "c6980e82a6656f6ebfabfd82f7585794cb122554"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/c6980e82a6656f6ebfabfd82f7585794cb122554",
|
||||
"reference": "c6980e82a6656f6ebfabfd82f7585794cb122554",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1243,7 +1314,7 @@
|
|||
"description": "Loads and dumps YAML files",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/yaml/tree/v5.4.21"
|
||||
"source": "https://github.com/symfony/yaml/tree/v5.4.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1259,33 +1330,42 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-21T19:46:44+00:00"
|
||||
"time": "2023-10-27T18:36:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v3.6.0",
|
||||
"version": "v3.17.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "106c170d08e8415d78be2d16c3d057d0d108262b"
|
||||
"reference": "677ef8da6497a03048192aeeb5aa3018e379ac71"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/106c170d08e8415d78be2d16c3d057d0d108262b",
|
||||
"reference": "106c170d08e8415d78be2d16c3d057d0d108262b",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/677ef8da6497a03048192aeeb5aa3018e379ac71",
|
||||
"reference": "677ef8da6497a03048192aeeb5aa3018e379ac71",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"php": ">=8.0.2",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"symfony/polyfill-ctype": "^1.8",
|
||||
"symfony/polyfill-mbstring": "^1.3"
|
||||
"symfony/polyfill-mbstring": "^1.3",
|
||||
"symfony/polyfill-php81": "^1.29"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"psr/container": "^1.0|^2.0",
|
||||
"symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
|
||||
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/Resources/core.php",
|
||||
"src/Resources/debug.php",
|
||||
"src/Resources/escaper.php",
|
||||
"src/Resources/string_loader.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Twig\\": "src/"
|
||||
}
|
||||
|
@ -1318,7 +1398,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/twigphp/Twig/issues",
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.6.0"
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.17.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1330,20 +1410,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-05-03T19:06:57+00:00"
|
||||
"time": "2024-12-12T09:58:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "wearejust/kirby-twig",
|
||||
"version": "5.0",
|
||||
"version": "5.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/wearejust/kirby-twig.git",
|
||||
"reference": "b8951bb5bdbeb829f492ee55709a2bdcc9d7475e"
|
||||
"reference": "0baba0ab1e6129b1a9ed879191e4e324406d57ec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/wearejust/kirby-twig/zipball/b8951bb5bdbeb829f492ee55709a2bdcc9d7475e",
|
||||
"reference": "b8951bb5bdbeb829f492ee55709a2bdcc9d7475e",
|
||||
"url": "https://api.github.com/repos/wearejust/kirby-twig/zipball/0baba0ab1e6129b1a9ed879191e4e324406d57ec",
|
||||
"reference": "0baba0ab1e6129b1a9ed879191e4e324406d57ec",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1376,20 +1456,21 @@
|
|||
],
|
||||
"description": "Twig templating support for Kirby CMS",
|
||||
"support": {
|
||||
"source": "https://github.com/wearejust/kirby-twig/tree/5.0"
|
||||
"issues": "https://github.com/wearejust/kirby-twig/issues",
|
||||
"source": "https://github.com/wearejust/kirby-twig/tree/5.0.2"
|
||||
},
|
||||
"time": "2023-02-24T12:16:24+00:00"
|
||||
"time": "2024-04-27T12:57:44+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"stability-flags": {},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": ">=7.3.0 <8.1.0"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.3.0"
|
||||
"platform-dev": {},
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ For bug fixes, please create a new branch following the name scheme: `fix/issue_
|
|||
- Every bug fix should include a [unit test](#tests) to avoid future regressions. Let us know if you need help with that.
|
||||
- Make sure your code [style](#style) matches ours and includes [comments/in-code documentation](#documentation).
|
||||
- Make sure your branch is up to date with the latest state on the `develop` branch. [Rebase](https://help.github.com/articles/about-pull-request-merges/) changes before you send the PR.
|
||||
- Please *don't* commit updated dist files in the `panel/dist` folder to avoid merge conflicts. We only build the dist files on release. Your branch should only contain changes to the source files.
|
||||
|
||||
### Features
|
||||
|
||||
|
@ -41,6 +42,7 @@ For features create a new branch following the name scheme: `feature/issue_numbe
|
|||
- New features should include [unit tests](#tests). Let us know if you need help with that.
|
||||
- Make your code [style](#style) matches ours and includes [comments/in-code documentation](#documentation).
|
||||
- Make sure your branch is up to date with the latest state on the `develop` branch. [Rebase](https://help.github.com/articles/about-pull-request-merges/) changes before you send the PR.
|
||||
- Please *don't* commit updated dist files in the `panel/dist` folder to avoid merge conflicts. We only build the dist files on release. Your branch should only contain changes to the source files.
|
||||
|
||||
We try to bundle features in our major releases, e.g. `3.x`. That is why we might only review and, if accepted, merge your PR once an appropriate release is upcoming. Please understand that we cannot merge all feature ideas or that it might take a while. Check out the [roadmap](https://roadmap.getkirby.com) to see upcoming releases.
|
||||
|
||||
|
@ -90,8 +92,6 @@ The Panel doesn't have extensive test coverage yet. That's an area we are still
|
|||
|
||||
We use [vitest](https://vitest.dev) for unit tests for JavaScript and Vue components - `.test.js` files next to the actual JavaScript/Vue file.
|
||||
|
||||
For integration tests, we use [cypress](https://www.cypress.io) - `.e2e.js` files.
|
||||
|
||||
## And last…
|
||||
|
||||
Let us know [in the forum](https://forum.getkirby.com) if you have questions.
|
||||
|
|
|
@ -21,7 +21,7 @@ Kirby is not free software. However, you can try Kirby and the Starterkit on you
|
|||
### Contribute
|
||||
|
||||
**Found a bug?**
|
||||
Please post all bug reports in our [issue tracker](https://github.com/getkirby/kirby/issues).
|
||||
Please post all bugs as individual reports in our [issue tracker](https://github.com/getkirby/kirby/issues).
|
||||
|
||||
**Suggest a feature**
|
||||
If you have ideas for a feature or enhancement for Kirby, please use our [feedback platform](https://feedback.getkirby.com).
|
||||
|
|
574
kirby/cacert.pem
574
kirby/cacert.pem
|
@ -1,7 +1,7 @@
|
|||
##
|
||||
## Bundle of CA Root Certificates
|
||||
##
|
||||
## Certificate data from Mozilla as of: Tue Jan 10 04:12:06 2023 GMT
|
||||
## Certificate data from Mozilla as of: Tue Jul 2 03:12:04 2024 GMT
|
||||
##
|
||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||
|
@ -14,7 +14,7 @@
|
|||
## Just configure this file as the SSLCACertificateFile.
|
||||
##
|
||||
## Conversion done with mk-ca-bundle.pl version 1.29.
|
||||
## SHA256: 90c470e705b4b5f36f09684dc50e2b79c8b86989a848b62cd1a7bd6460ee65f6
|
||||
## SHA256: 456ff095dde6dd73354c5c28c73d9c06f53b61a803963414cb91a1d92945cdd3
|
||||
##
|
||||
|
||||
|
||||
|
@ -200,27 +200,6 @@ vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
|
|||
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Security Communication Root CA
|
||||
==============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
||||
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
||||
HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
||||
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
|
||||
8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
|
||||
DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
|
||||
5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
|
||||
DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
|
||||
JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
|
||||
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
|
||||
0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
|
||||
mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
|
||||
s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
|
||||
6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
|
||||
FL39vmwLAw==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
XRamp Global CA Root
|
||||
====================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
@ -603,26 +582,6 @@ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
|||
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Hongkong Post Root CA 1
|
||||
=======================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
|
||||
DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
|
||||
NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
|
||||
IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
|
||||
ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
|
||||
auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
|
||||
qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
|
||||
V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
|
||||
HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
|
||||
h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
|
||||
l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
|
||||
IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
|
||||
T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
|
||||
c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
SecureSign RootCA11
|
||||
===================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
@ -689,39 +648,6 @@ YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
|
|||
kpeDMdmztcpHWD9f
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Autoridad de Certificacion Firmaprofesional CIF A62634068
|
||||
=========================================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
|
||||
BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
|
||||
MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
|
||||
QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
|
||||
NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
|
||||
Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
|
||||
B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
|
||||
7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
|
||||
ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
|
||||
plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
|
||||
MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
|
||||
LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
|
||||
bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
|
||||
vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
|
||||
EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
|
||||
DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
|
||||
cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
|
||||
bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
|
||||
ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
|
||||
51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
|
||||
R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
|
||||
T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
|
||||
Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
|
||||
osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
|
||||
crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
|
||||
saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
|
||||
KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
|
||||
6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Izenpe.com
|
||||
==========
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
@ -1261,40 +1187,6 @@ Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
|
|||
WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
E-Tugra Certification Authority
|
||||
===============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
|
||||
DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
|
||||
ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
|
||||
ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
|
||||
NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
|
||||
QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
|
||||
cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
|
||||
DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
|
||||
MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
|
||||
hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
|
||||
CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
|
||||
ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
|
||||
BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
|
||||
E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
|
||||
rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
|
||||
jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
|
||||
rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
|
||||
dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
|
||||
/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
|
||||
MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
|
||||
kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
|
||||
XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
|
||||
VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
|
||||
a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
|
||||
dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
|
||||
KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
|
||||
Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
|
||||
8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
|
||||
C7TbO6Orb1wdtn7os4I07QZcJA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
T-TeleSec GlobalRoot Class 2
|
||||
============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
@ -2708,36 +2600,6 @@ vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+
|
|||
CAezNIm8BZ/3Hobui3A=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
GLOBALTRUST 2020
|
||||
================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
ANF Secure Server Root CA
|
||||
=========================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
@ -3276,55 +3138,6 @@ AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8
|
|||
rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
E-Tugra Global Root CA RSA v3
|
||||
=============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
E-Tugra Global Root CA ECC v3
|
||||
=============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMwgYAxCzAJBgNV
|
||||
BAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAbBgNV
|
||||
BAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENB
|
||||
IEVDQyB2MzAeFw0yMDAzMTgwOTQ2NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEP
|
||||
MA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1
|
||||
Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBFQ0MgdjMw
|
||||
djAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQKczLWYHMjLiSF4mDKpL2
|
||||
w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YKfWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31
|
||||
Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQ
|
||||
zPUwHQYDVR0OBBYEFP+CMXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
|
||||
PQQDAwNpADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/67W4W
|
||||
Aie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFxvmjkI6TZraE3
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Security Communication RootCA3
|
||||
==============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
@ -3370,3 +3183,386 @@ BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L
|
|||
snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e
|
||||
N9k=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
BJCA Global Root CA1
|
||||
====================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
BJCA Global Root CA2
|
||||
====================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD
|
||||
TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg
|
||||
R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE
|
||||
BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC
|
||||
SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl
|
||||
SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK
|
||||
/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI
|
||||
1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8
|
||||
W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g
|
||||
UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Sectigo Public Server Authentication Root E46
|
||||
=============================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH
|
||||
QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2
|
||||
ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5
|
||||
WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0
|
||||
aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr
|
||||
gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0
|
||||
NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud
|
||||
DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
|
||||
/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH
|
||||
lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U
|
||||
SAGKcw==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Sectigo Public Server Authentication Root R46
|
||||
=============================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
SSL.com TLS RSA Root CA 2022
|
||||
============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
SSL.com TLS ECC Root CA 2022
|
||||
============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV
|
||||
UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v
|
||||
dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx
|
||||
GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg
|
||||
Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy
|
||||
JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1
|
||||
5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7
|
||||
81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG
|
||||
MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w
|
||||
7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5
|
||||
Zn6g6g==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Atos TrustedRoot Root CA ECC TLS 2021
|
||||
=====================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB
|
||||
dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD
|
||||
VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg
|
||||
VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT
|
||||
AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K
|
||||
DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS
|
||||
b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX
|
||||
NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+
|
||||
uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY
|
||||
a3cpetskz2VAv9LcjBHo9H1/IISpQuQo
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Atos TrustedRoot Root CA RSA TLS 2021
|
||||
=====================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
HYMfRsCbvUOZ58SWLs5fyQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
TrustAsia Global Root CA G3
|
||||
===========================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
TrustAsia Global Root CA G4
|
||||
===========================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE
|
||||
BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry
|
||||
dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa
|
||||
MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw
|
||||
IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
|
||||
AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8
|
||||
m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF
|
||||
MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/
|
||||
pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA
|
||||
bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk
|
||||
dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
CommScope Public Trust ECC Root-01
|
||||
==================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE
|
||||
BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz
|
||||
dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT
|
||||
AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg
|
||||
RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx
|
||||
eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot
|
||||
6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
|
||||
A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2
|
||||
Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW
|
||||
pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
CommScope Public Trust ECC Root-02
|
||||
==================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE
|
||||
BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz
|
||||
dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT
|
||||
AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg
|
||||
RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M
|
||||
MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE
|
||||
SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
|
||||
A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9
|
||||
Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7
|
||||
3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
CommScope Public Trust RSA Root-01
|
||||
==================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
CommScope Public Trust RSA Root-02
|
||||
==================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
lM47ni3niAIi9G7oyOzWPPO5std3eqx7
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Telekom Security TLS ECC Root 2020
|
||||
==================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE
|
||||
RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl
|
||||
a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz
|
||||
NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg
|
||||
R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG
|
||||
SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1
|
||||
2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC
|
||||
MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
||||
AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ
|
||||
Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU
|
||||
ga/sf+Rn27iQ7t0l
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Telekom Security TLS RSA Root 2023
|
||||
==================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
FIRMAPROFESIONAL CA ROOT-A WEB
|
||||
==============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF
|
||||
UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4
|
||||
MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2
|
||||
WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h
|
||||
bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM
|
||||
IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6
|
||||
iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg
|
||||
st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD
|
||||
Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB
|
||||
/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL
|
||||
cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ
|
||||
pYXFuXqUPoeovQA=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"description": "The Kirby 3 core",
|
||||
"license": "proprietary",
|
||||
"type": "kirby-cms",
|
||||
"version": "3.9.4",
|
||||
"version": "3.9.8.2",
|
||||
"keywords": [
|
||||
"kirby",
|
||||
"cms",
|
||||
|
@ -36,16 +36,16 @@
|
|||
"ext-libxml": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*",
|
||||
"claviska/simpleimage": "4.0.2",
|
||||
"composer/semver": "3.3.2",
|
||||
"filp/whoops": "2.15.2",
|
||||
"claviska/simpleimage": "4.0.6",
|
||||
"composer/semver": "3.4.0",
|
||||
"filp/whoops": "2.15.4",
|
||||
"getkirby/composer-installer": "^1.2.1",
|
||||
"laminas/laminas-escaper": "2.12.0",
|
||||
"michelf/php-smartypants": "1.8.1",
|
||||
"phpmailer/phpmailer": "6.8.0",
|
||||
"symfony/polyfill-intl-idn": "1.27.0",
|
||||
"symfony/polyfill-mbstring": "1.27.0",
|
||||
"symfony/yaml": "5.4.21"
|
||||
"phpmailer/phpmailer": "6.8.1",
|
||||
"symfony/polyfill-intl-idn": "1.28.0",
|
||||
"symfony/polyfill-mbstring": "1.28.0",
|
||||
"symfony/yaml": "5.4.30"
|
||||
},
|
||||
"replace": {
|
||||
"symfony/polyfill-php72": "*"
|
||||
|
@ -57,6 +57,7 @@
|
|||
"ext-fileinfo": "Improved mime type detection for files",
|
||||
"ext-intl": "Improved i18n number formatting",
|
||||
"ext-memcached": "Support for the Memcached cache driver",
|
||||
"ext-sodium": "Support for the crypto class and more robust session handling",
|
||||
"ext-zip": "Support for ZIP archive file functions",
|
||||
"ext-zlib": "Sanitization and validation for svgz files"
|
||||
},
|
||||
|
|
152
kirby/composer.lock
generated
152
kirby/composer.lock
generated
|
@ -4,20 +4,20 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "69b8764b73a3ee160520dca4ac70a53d",
|
||||
"content-hash": "677f7cca91b0fc32ce6dd0c1b75fedfd",
|
||||
"packages": [
|
||||
{
|
||||
"name": "claviska/simpleimage",
|
||||
"version": "4.0.2",
|
||||
"version": "4.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/claviska/SimpleImage.git",
|
||||
"reference": "226d507cca0c8400d69bee7eb324158e3cbe246e"
|
||||
"reference": "969de5e61810ef91f6f83c475b192c4841367dfa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/226d507cca0c8400d69bee7eb324158e3cbe246e",
|
||||
"reference": "226d507cca0c8400d69bee7eb324158e3cbe246e",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/969de5e61810ef91f6f83c475b192c4841367dfa",
|
||||
"reference": "969de5e61810ef91f6f83c475b192c4841367dfa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -49,7 +49,7 @@
|
|||
"description": "A PHP class that makes working with images as simple as possible.",
|
||||
"support": {
|
||||
"issues": "https://github.com/claviska/SimpleImage/issues",
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/4.0.2"
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/4.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -57,20 +57,20 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-20T15:27:20+00:00"
|
||||
"time": "2023-07-27T16:48:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/semver",
|
||||
"version": "3.3.2",
|
||||
"version": "3.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/semver.git",
|
||||
"reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
|
||||
"reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
|
||||
"reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
|
||||
"reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -120,9 +120,9 @@
|
|||
"versioning"
|
||||
],
|
||||
"support": {
|
||||
"irc": "irc://irc.freenode.org/composer",
|
||||
"irc": "ircs://irc.libera.chat:6697/composer",
|
||||
"issues": "https://github.com/composer/semver/issues",
|
||||
"source": "https://github.com/composer/semver/tree/3.3.2"
|
||||
"source": "https://github.com/composer/semver/tree/3.4.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -138,20 +138,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-01T19:23:25+00:00"
|
||||
"time": "2023-08-31T09:50:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
"version": "2.15.2",
|
||||
"version": "2.15.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/filp/whoops.git",
|
||||
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73"
|
||||
"reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
|
||||
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
|
||||
"reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -201,7 +201,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/filp/whoops/issues",
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.2"
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -209,7 +209,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-12T12:00:00+00:00"
|
||||
"time": "2023-11-03T12:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "getkirby/composer-installer",
|
||||
|
@ -437,16 +437,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
"version": "v6.8.0",
|
||||
"version": "v6.8.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||
"reference": "df16b615e371d81fb79e506277faea67a1be18f1"
|
||||
"reference": "e88da8d679acc3824ff231fdc553565b802ac016"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/df16b615e371d81fb79e506277faea67a1be18f1",
|
||||
"reference": "df16b615e371d81fb79e506277faea67a1be18f1",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e88da8d679acc3824ff231fdc553565b802ac016",
|
||||
"reference": "e88da8d679acc3824ff231fdc553565b802ac016",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -456,13 +456,13 @@
|
|||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.2",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
|
||||
"doctrine/annotations": "^1.2.6 || ^1.13.3",
|
||||
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.7.1",
|
||||
"squizlabs/php_codesniffer": "^3.7.2",
|
||||
"yoast/phpunit-polyfills": "^1.0.4"
|
||||
},
|
||||
"suggest": {
|
||||
|
@ -505,7 +505,7 @@
|
|||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.8.0"
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.8.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -513,20 +513,20 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-06T14:43:22+00:00"
|
||||
"time": "2023-08-29T08:26:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "3.0.0",
|
||||
"version": "3.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
|
||||
"reference": "79dff0b268932c640297f5208d6298f71855c03e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e",
|
||||
"reference": "79dff0b268932c640297f5208d6298f71855c03e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -561,22 +561,22 @@
|
|||
"psr-3"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/log/tree/3.0.0"
|
||||
"source": "https://github.com/php-fig/log/tree/3.0.1"
|
||||
},
|
||||
"time": "2021-07-14T16:46:02+00:00"
|
||||
"time": "2024-08-21T13:31:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
"version": "v2.5.2",
|
||||
"version": "v2.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
|
||||
"reference": "80d075412b557d41002320b96a096ca65aa2c98d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
|
||||
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
|
||||
"reference": "80d075412b557d41002320b96a096ca65aa2c98d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -614,7 +614,7 @@
|
|||
"description": "A generic function and convention to trigger deprecation notices",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -630,20 +630,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-02T09:53:40+00:00"
|
||||
"time": "2023-01-24T14:02:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.30.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
|
||||
"reference": "0424dff1c58f028c451efff2045f5d92410bd540"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
|
||||
"reference": "0424dff1c58f028c451efff2045f5d92410bd540",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -657,9 +657,6 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
|
@ -696,7 +693,7 @@
|
|||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -712,20 +709,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2024-05-31T15:07:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "639084e360537a19f9ee352433b84ce831f3d2da"
|
||||
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
|
||||
"reference": "639084e360537a19f9ee352433b84ce831f3d2da",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
|
||||
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -739,7 +736,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -783,7 +780,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -799,20 +796,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2023-01-26T09:30:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.30.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
|
||||
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
||||
"reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
|
||||
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -823,9 +820,6 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
|
@ -867,7 +861,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -883,20 +877,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2024-05-31T15:07:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -911,7 +905,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -950,7 +944,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -966,20 +960,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2023-07-28T09:04:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v5.4.21",
|
||||
"version": "v5.4.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "3713e20d93e46e681e51605d213027e48dab3469"
|
||||
"reference": "c6980e82a6656f6ebfabfd82f7585794cb122554"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/3713e20d93e46e681e51605d213027e48dab3469",
|
||||
"reference": "3713e20d93e46e681e51605d213027e48dab3469",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/c6980e82a6656f6ebfabfd82f7585794cb122554",
|
||||
"reference": "c6980e82a6656f6ebfabfd82f7585794cb122554",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1025,7 +1019,7 @@
|
|||
"description": "Loads and dumps YAML files",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/yaml/tree/v5.4.21"
|
||||
"source": "https://github.com/symfony/yaml/tree/v5.4.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1041,7 +1035,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-21T19:46:44+00:00"
|
||||
"time": "2023-10-27T18:36:14+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
@ -1068,5 +1062,5 @@
|
|||
"platform-overrides": {
|
||||
"php": "8.0.0"
|
||||
},
|
||||
"plugin-api-version": "2.3.0"
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ use Kirby\Form\Form;
|
|||
return [
|
||||
'default' => fn () => $this->user(),
|
||||
'fields' => [
|
||||
'avatar' => fn (User $user) => $user->avatar() ? $user->avatar()->crop(512) : null,
|
||||
'avatar' => fn (User $user) => $user->avatar()?->crop(512),
|
||||
'blueprint' => fn (User $user) => $user->blueprint(),
|
||||
'content' => fn (User $user) => Form::for($user)->values(),
|
||||
'email' => fn (User $user) => $user->email(),
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Exception\Exception;
|
||||
use Kirby\Filesystem\F;
|
||||
use Kirby\Toolkit\Str;
|
||||
|
||||
/**
|
||||
* User Routes
|
||||
|
@ -79,10 +81,27 @@ return [
|
|||
],
|
||||
'method' => 'POST',
|
||||
'action' => function (string $id) {
|
||||
$this->user($id)->avatar()?->delete();
|
||||
|
||||
return $this->upload(
|
||||
function ($source, $filename) use ($id) {
|
||||
$type = F::type($filename);
|
||||
if ($type !== 'image') {
|
||||
throw new Exception([
|
||||
'key' => 'file.type.invalid',
|
||||
'data' => compact('type')
|
||||
]);
|
||||
}
|
||||
|
||||
$mime = F::mime($source);
|
||||
if (Str::startsWith($mime, 'image/') !== true) {
|
||||
throw new Exception([
|
||||
'key' => 'file.mime.invalid',
|
||||
'data' => compact('mime')
|
||||
]);
|
||||
}
|
||||
|
||||
// delete the old avatar
|
||||
$this->user($id)->avatar()?->delete();
|
||||
|
||||
$props = [
|
||||
'filename' => 'profile.' . F::extension($filename),
|
||||
'template' => 'avatar',
|
||||
|
|
|
@ -199,7 +199,7 @@ return [
|
|||
'slug' => Field::slug([
|
||||
'required' => true,
|
||||
'preselect' => $select === 'slug',
|
||||
'path' => $page->parent() ? '/' . $page->parent()->id() . '/' : '/',
|
||||
'path' => $page->parent() ? '/' . $page->parent()->uri() . '/' : '/',
|
||||
'disabled' => $permissions->can('changeSlug') === false,
|
||||
'wizard' => [
|
||||
'text' => I18n::translate('page.changeSlug.fromTitle'),
|
||||
|
@ -479,6 +479,26 @@ return [
|
|||
];
|
||||
}
|
||||
|
||||
$slugAppendix = Str::slug(I18n::translate('page.duplicate.appendix'));
|
||||
$titleAppendix = I18n::translate('page.duplicate.appendix');
|
||||
|
||||
// if the item to be duplicated already exists
|
||||
// add a suffix at the end of slug and title
|
||||
$duplicateSlug = $page->slug() . '-' . $slugAppendix;
|
||||
$siblingKeys = $page->parentModel()->childrenAndDrafts()->pluck('uid');
|
||||
|
||||
if (in_array($duplicateSlug, $siblingKeys) === true) {
|
||||
$suffixCounter = 2;
|
||||
$newSlug = $duplicateSlug . $suffixCounter;
|
||||
|
||||
while (in_array($newSlug, $siblingKeys) === true) {
|
||||
$newSlug = $duplicateSlug . ++$suffixCounter;
|
||||
}
|
||||
|
||||
$slugAppendix .= $suffixCounter;
|
||||
$titleAppendix .= ' ' . $suffixCounter;
|
||||
}
|
||||
|
||||
return [
|
||||
'component' => 'k-form-dialog',
|
||||
'props' => [
|
||||
|
@ -487,8 +507,8 @@ return [
|
|||
'value' => [
|
||||
'children' => false,
|
||||
'files' => false,
|
||||
'slug' => $page->slug() . '-' . Str::slug(I18n::translate('page.duplicate.appendix')),
|
||||
'title' => $page->title() . ' ' . I18n::translate('page.duplicate.appendix')
|
||||
'slug' => $page->slug() . '-' . $slugAppendix,
|
||||
'title' => $page->title() . ' ' . $titleAppendix
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
@ -135,18 +135,14 @@ return [
|
|||
/**
|
||||
* Add your own search engine
|
||||
*
|
||||
* @param \Kirby\Cms\App $kirby Kirby instance
|
||||
* @param \Kirby\Cms\Collection $collection Collection of searchable models
|
||||
* @param string $query
|
||||
* @param mixed $params
|
||||
* @return \Kirby\Cms\Collection|bool
|
||||
*/
|
||||
'search' => function (App $kirby, Collection $collection, string $query = null, $params = []) {
|
||||
// empty search query
|
||||
if (empty(trim($query ?? '')) === true) {
|
||||
return $collection->limit(0);
|
||||
}
|
||||
|
||||
'search' => function (
|
||||
App $kirby,
|
||||
Collection $collection,
|
||||
string|null $query = '',
|
||||
array|string $params = []
|
||||
): Collection|bool {
|
||||
if (is_string($params) === true) {
|
||||
$params = ['fields' => Str::split($params, '|')];
|
||||
}
|
||||
|
@ -158,30 +154,41 @@ return [
|
|||
'words' => false,
|
||||
];
|
||||
|
||||
$options = array_merge($defaults, $params);
|
||||
$collection = clone $collection;
|
||||
$options = array_merge($defaults, $params);
|
||||
$query = trim($query ?? '');
|
||||
|
||||
// empty or too short search query
|
||||
if (Str::length($query) < $options['minlength']) {
|
||||
return $collection->limit(0);
|
||||
}
|
||||
|
||||
$words = preg_replace('/(\s)/u', ',', $query);
|
||||
$words = Str::split($words, ',', $options['minlength']);
|
||||
$exact = $options['words'] ? '(\b' . preg_quote($query) . '\b)' : preg_quote($query);
|
||||
$query = Str::lower($query);
|
||||
|
||||
if (empty($options['stopwords']) === false) {
|
||||
$words = array_diff($words, $options['stopwords']);
|
||||
}
|
||||
|
||||
$words = A::map(
|
||||
$words,
|
||||
fn ($value) => $options['words'] ? '\b' . preg_quote($value) . '\b' : preg_quote($value)
|
||||
);
|
||||
|
||||
// returns an empty collection if there is no search word
|
||||
if (empty($words) === true) {
|
||||
return $collection->limit(0);
|
||||
}
|
||||
|
||||
$preg = '!(' . implode('|', $words) . ')!i';
|
||||
$words = A::map(
|
||||
$words,
|
||||
fn ($value) => Str::wrap(preg_quote($value), $options['words'] ? '\b' : '')
|
||||
);
|
||||
|
||||
$exact = preg_quote($query);
|
||||
|
||||
if ($options['words']) {
|
||||
$exact = '(\b' . $exact . '\b)';
|
||||
}
|
||||
|
||||
$query = Str::lower($query);
|
||||
$preg = '!(' . implode('|', $words) . ')!iu';
|
||||
$scores = [];
|
||||
|
||||
$results = $collection->filter(function ($item) use ($query, $exact, $preg, $options, &$scores) {
|
||||
$data = $item->content()->toArray();
|
||||
$keys = array_keys($data);
|
||||
|
@ -193,10 +200,10 @@ return [
|
|||
$keys[] = 'role';
|
||||
} elseif ($item instanceof Page) {
|
||||
// apply the default score for pages
|
||||
$options['score'] = array_merge([
|
||||
'id' => 64,
|
||||
'title' => 64,
|
||||
], $options['score']);
|
||||
$options['score'] = array_merge(
|
||||
['id' => 64, 'title' => 64],
|
||||
$options['score']
|
||||
);
|
||||
}
|
||||
|
||||
if (empty($options['fields']) === false) {
|
||||
|
@ -229,7 +236,7 @@ return [
|
|||
$scoring['hits'] += 1;
|
||||
|
||||
// check for exact query matches
|
||||
} elseif ($matches = preg_match_all('!' . $exact . '!i', $value, $r)) {
|
||||
} elseif ($matches = preg_match_all('!' . $exact . '!ui', $value, $r)) {
|
||||
$scoring['score'] += 2 * $score;
|
||||
$scoring['hits'] += $matches;
|
||||
}
|
||||
|
@ -242,6 +249,7 @@ return [
|
|||
}
|
||||
|
||||
$scores[$item->id()] = $scoring;
|
||||
|
||||
return $scoring['hits'] > 0;
|
||||
});
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ return [
|
|||
'key' => 'validation.date.between',
|
||||
'data' => [
|
||||
'min' => $min->format($format),
|
||||
'max' => $min->format($format)
|
||||
'max' => $max->format($format)
|
||||
]
|
||||
]);
|
||||
} elseif ($min && $value->isMin($min) === false) {
|
||||
|
|
|
@ -8,7 +8,7 @@ return [
|
|||
* Default number that will be saved when a new page/user/file is created
|
||||
*/
|
||||
'default' => function ($default = null) {
|
||||
return $this->toNumber($default);
|
||||
return $this->toNumber($default) ?? '';
|
||||
},
|
||||
/**
|
||||
* The lowest allowed number
|
||||
|
@ -26,10 +26,10 @@ return [
|
|||
* Allowed incremental steps between numbers (i.e `0.5`)
|
||||
*/
|
||||
'step' => function ($step = null) {
|
||||
return $this->toNumber($step);
|
||||
return $this->toNumber($step) ?? '';
|
||||
},
|
||||
'value' => function ($value = null) {
|
||||
return $this->toNumber($value);
|
||||
return $this->toNumber($value) ?? '';
|
||||
}
|
||||
],
|
||||
'methods' => [
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Collection;
|
||||
use Kirby\Cms\File;
|
||||
use Kirby\Cms\Helpers;
|
||||
use Kirby\Cms\Html;
|
||||
|
@ -50,10 +49,13 @@ if (Helpers::hasOverride('attr') === false) { // @codeCoverageIgnore
|
|||
if (Helpers::hasOverride('collection') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Returns the result of a collection by name
|
||||
*
|
||||
* @return \Kirby\Toolkit\Collection|null
|
||||
* @todo 5.0 Add return type declaration
|
||||
*/
|
||||
function collection(string $name): Collection|null
|
||||
function collection(string $name, array $options = [])
|
||||
{
|
||||
return App::instance()->collection($name);
|
||||
return App::instance()->collection($name, $options);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ return function ($kirby) {
|
|||
}
|
||||
],
|
||||
[
|
||||
'pattern' => $media . '/plugins/(:any)/(:any)/(:all).(css|map|gif|js|mjs|jpg|png|svg|webp|avif|woff2|woff|json)',
|
||||
'pattern' => $media . '/plugins/(:any)/(:any)/(:all)\.(css|map|gif|js|mjs|jpg|png|svg|webp|avif|woff2|woff|json)',
|
||||
'env' => 'media',
|
||||
'action' => function (string $provider, string $pluginName, string $filename, string $extension) {
|
||||
return PluginAssets::resolve($provider . '/' . $pluginName, $filename . '.' . $extension);
|
||||
|
|
|
@ -34,9 +34,9 @@ return [
|
|||
],
|
||||
'computed' => [
|
||||
'reports' => function () {
|
||||
$reports = [];
|
||||
$model = $this->model();
|
||||
$value = fn ($value) => $value === null ? null : $model->toString($value);
|
||||
$reports = [];
|
||||
$model = $this->model();
|
||||
$toString = fn ($value) => $value === null ? null : $model->toString($value);
|
||||
|
||||
foreach ($this->reports as $report) {
|
||||
if (is_string($report) === true) {
|
||||
|
@ -47,14 +47,17 @@ return [
|
|||
continue;
|
||||
}
|
||||
|
||||
$info = $report['info'] ?? null;
|
||||
$info = $report['info'] ?? null;
|
||||
$label = $report['label'] ?? null;
|
||||
$link = $report['link'] ?? null;
|
||||
$value = $report['value'] ?? null;
|
||||
|
||||
$reports[] = [
|
||||
'label' => I18n::translate($report['label'], $report['label']),
|
||||
'value' => $value($report['value'] ?? null),
|
||||
'info' => $value(I18n::translate($info, $info)),
|
||||
'link' => $value($report['link'] ?? null),
|
||||
'theme' => $value($report['theme'] ?? null)
|
||||
'info' => $toString(I18n::translate($info, $info)),
|
||||
'label' => $toString(I18n::translate($label, $label)),
|
||||
'link' => $toString(I18n::translate($link, $link)),
|
||||
'theme' => $toString($report['theme'] ?? null),
|
||||
'value' => $toString(I18n::translate($value, $value))
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"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.",
|
||||
|
||||
"add": "\u0414\u043e\u0431\u0430\u0432\u0438",
|
||||
"add": "Добави",
|
||||
"author": "Author",
|
||||
"avatar": "Профилна снимка",
|
||||
"back": "Назад",
|
||||
"cancel": "\u041e\u0442\u043a\u0430\u0436\u0438",
|
||||
"change": "\u041f\u0440\u043e\u043c\u0435\u043d\u0438",
|
||||
"close": "\u0417\u0430\u0442\u0432\u043e\u0440\u0438",
|
||||
"cancel": "Откажи",
|
||||
"change": "Промени",
|
||||
"close": "Затвори",
|
||||
"confirm": "Ок",
|
||||
"collapse": "Collapse",
|
||||
"collapse.all": "Collapse All",
|
||||
|
@ -21,17 +21,17 @@
|
|||
"date.select": "Select a date",
|
||||
|
||||
"day": "Day",
|
||||
"days.fri": "\u041f\u0442",
|
||||
"days.mon": "\u041f\u043d",
|
||||
"days.sat": "\u0421\u0431",
|
||||
"days.sun": "\u041d\u0434",
|
||||
"days.thu": "\u0427\u0442",
|
||||
"days.tue": "\u0412\u0442",
|
||||
"days.wed": "\u0421\u0440",
|
||||
"days.fri": "Пт",
|
||||
"days.mon": "Пн",
|
||||
"days.sat": "Сб",
|
||||
"days.sun": "Нд",
|
||||
"days.thu": "Чт",
|
||||
"days.tue": "Вт",
|
||||
"days.wed": "Ср",
|
||||
|
||||
"debugging": "Debugging",
|
||||
|
||||
"delete": "\u0418\u0437\u0442\u0440\u0438\u0439",
|
||||
"delete": "Изтрий",
|
||||
"delete.all": "Delete all",
|
||||
|
||||
"dialog.files.empty": "No files to select",
|
||||
|
@ -40,11 +40,11 @@
|
|||
|
||||
"dimensions": "Размери",
|
||||
"disabled": "Disabled",
|
||||
"discard": "\u041e\u0442\u043c\u0435\u043d\u0438",
|
||||
"discard": "Отмени",
|
||||
"download": "Download",
|
||||
"duplicate": "Duplicate",
|
||||
|
||||
"edit": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u0439",
|
||||
"edit": "Редактирай",
|
||||
|
||||
"email": "Email",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Не е позволен ъплоуда на файлове от тип {type}",
|
||||
"error.file.type.invalid": "Invalid file type: {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",
|
||||
"error.file.undefined": "Файлът не може да бъде намерен",
|
||||
|
||||
"error.form.incomplete": "Моля коригирайте всички грешки във формата...",
|
||||
"error.form.notSaved": "Формата не може да бъде запазена",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||
"error.page.sort.permission": "Страницата \"{slug}\" не може да бъде сортирана",
|
||||
"error.page.status.invalid": "Моля изберете валиден статус на страницата",
|
||||
"error.page.undefined": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0430",
|
||||
"error.page.undefined": "Страницата не може да бъде намерена",
|
||||
"error.page.update.permission": "Не можете да обновите \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Не можете да добавяте повече от {max} файлa в секция \"{section}\"",
|
||||
|
@ -175,16 +175,17 @@
|
|||
"error.user.changeRole.permission": "Нямате права да промените ролята на този потребител \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "You are not allowed to promote someone to the admin role",
|
||||
"error.user.create.permission": "Нямате права да създадете този потребител",
|
||||
"error.user.delete": "\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0438\u0437\u0442\u0440\u0438\u0442",
|
||||
"error.user.delete.lastAdmin": "\u041d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440",
|
||||
"error.user.delete": "Потребителят не може да бъде изтрит",
|
||||
"error.user.delete.lastAdmin": "Не можете да изтриете последния администратор",
|
||||
"error.user.delete.lastUser": "Последният потребител не може да бъде изтрит",
|
||||
"error.user.delete.permission": "\u041d\u0435 \u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u043e \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0432\u0430\u0442\u0435 \u0442\u043e\u0437\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b",
|
||||
"error.user.delete.permission": "Не е позволено да изтривате този потребител",
|
||||
"error.user.duplicate": "Потребител с имейл \"{email}\" вече съществува",
|
||||
"error.user.email.invalid": "Моля въведете валиден email адрес",
|
||||
"error.user.language.invalid": "Моля въведете валиден език",
|
||||
"error.user.notFound": "\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.",
|
||||
"error.user.notFound": "Потребителят не може да бъде намерен.",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Моля въведете валидна парола. Тя трабва да съдържа поне 8 символа.",
|
||||
"error.user.password.notSame": "\u041c\u043e\u043b\u044f, \u043f\u043e\u0442\u0432\u044a\u0440\u0434\u0435\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430",
|
||||
"error.user.password.notSame": "Моля, потвърдете паролата",
|
||||
"error.user.password.undefined": "Потребителят няма парола",
|
||||
"error.user.password.wrong": "Wrong password",
|
||||
"error.user.role.invalid": "Моля въведете валидна роля",
|
||||
|
@ -308,7 +309,7 @@
|
|||
"hour": "Hour",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "\u0412\u043c\u044a\u043a\u043d\u0438",
|
||||
"insert": "Вмъкни",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
"install": "Инсталирай",
|
||||
|
@ -326,7 +327,7 @@
|
|||
"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",
|
||||
|
||||
"language": "\u0415\u0437\u0438\u043a",
|
||||
"language": "Език",
|
||||
"language.code": "Код",
|
||||
"language.convert": "Направи по подразбиране",
|
||||
"language.convert.confirm": "<p>Сигурни ли сте, че искате да зададете <strong>{name}</strong> за език по подразбиране? Действието не може да бъде отменено.</p><p>В случай, че в <strong>{name}</strong> има непреведено съдържание, то части от сайта ви могат да останат празни.</p>",
|
||||
|
@ -347,7 +348,7 @@
|
|||
"languages.secondary": "Второстепенни езици",
|
||||
"languages.secondary.empty": "Все още няма второстепенни езици",
|
||||
|
||||
"license": "\u041b\u0438\u0446\u0435\u043d\u0437 \u0437\u0430 Kirby",
|
||||
"license": "Лиценз за Kirby",
|
||||
"license.buy": "Купи лиценз",
|
||||
"license.register": "Регистрирай",
|
||||
"license.manage": "Manage your licenses",
|
||||
|
@ -359,7 +360,7 @@
|
|||
"license.unregistered": "Това е нерегистрирана демо версия на Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "\u0412\u0440\u044a\u0437\u043a\u0430",
|
||||
"link": "Връзка",
|
||||
"link.text": "Текстова връзка",
|
||||
|
||||
"loading": "Зареждане",
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "Minutes",
|
||||
|
||||
"month": "Month",
|
||||
"months.april": "\u0410\u043f\u0440\u0438\u043b",
|
||||
"months.august": "\u0410\u0432\u0433\u0443\u0441\u0442",
|
||||
"months.december": "\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438",
|
||||
"months.april": "Април",
|
||||
"months.august": "Август",
|
||||
"months.december": "Декември",
|
||||
"months.february": "Февруари",
|
||||
"months.january": "\u042f\u043d\u0443\u0430\u0440\u0438",
|
||||
"months.july": "\u042e\u043b\u0438",
|
||||
"months.june": "\u042e\u043d\u0438",
|
||||
"months.march": "\u041c\u0430\u0440\u0442",
|
||||
"months.may": "\u041c\u0430\u0439",
|
||||
"months.november": "\u041d\u043e\u0435\u043c\u0432\u0440\u0438",
|
||||
"months.october": "\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438",
|
||||
"months.september": "\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438",
|
||||
"months.january": "Януари",
|
||||
"months.july": "Юли",
|
||||
"months.june": "Юни",
|
||||
"months.march": "Март",
|
||||
"months.may": "Май",
|
||||
"months.november": "Ноември",
|
||||
"months.october": "Октомври",
|
||||
"months.september": "Септември",
|
||||
|
||||
"more": "Още",
|
||||
"name": "Име",
|
||||
|
@ -426,8 +427,8 @@
|
|||
"orientation.square": "Квадрат",
|
||||
|
||||
"page.blueprint": "This page has no blueprint yet. You can define the setup in <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "\u041f\u0440\u043e\u043c\u0435\u043d\u0438 URL",
|
||||
"page.changeSlug.fromTitle": "\u0421\u044a\u0437\u0434\u0430\u0439\u0442\u0435 \u043e\u0442 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435\u0442\u043e",
|
||||
"page.changeSlug": "Промени URL",
|
||||
"page.changeSlug.fromTitle": "Създайте от заглавието",
|
||||
"page.changeStatus": "Промени статус",
|
||||
"page.changeStatus.position": "Моля изберете позиция",
|
||||
"page.changeStatus.select": "Изберете нов статус",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "Страница",
|
||||
|
||||
"password": "\u041f\u0430\u0440\u043e\u043b\u0430",
|
||||
"password": "Парола",
|
||||
"paste": "Paste",
|
||||
"paste.after": "Paste after",
|
||||
"pixel": "Пиксел",
|
||||
|
@ -466,12 +467,12 @@
|
|||
"preview": "Preview",
|
||||
"remove": "Премахни",
|
||||
"rename": "Преименувай",
|
||||
"replace": "\u0417\u0430\u043c\u0435\u0441\u0442\u0438",
|
||||
"retry": "\u041e\u043f\u0438\u0442\u0430\u0439 \u043f\u0430\u043a",
|
||||
"revert": "\u041e\u0442\u043c\u0435\u043d\u0438",
|
||||
"replace": "Замести",
|
||||
"retry": "Опитай пак",
|
||||
"revert": "Отмени",
|
||||
"revert.confirm": "Do you really want to <strong>delete all unsaved changes</strong>?",
|
||||
|
||||
"role": "\u0420\u043e\u043b\u044f",
|
||||
"role": "Роля",
|
||||
"role.admin.description": "The admin has all rights",
|
||||
"role.admin.title": "Admin",
|
||||
"role.all": "Всички",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "This is a fallback role without any permissions",
|
||||
"role.nobody.title": "Nobody",
|
||||
|
||||
"save": "\u0417\u0430\u043f\u0438\u0448\u0438",
|
||||
"save": "Запиши",
|
||||
"search": "Търси",
|
||||
"search.min": "Enter {min} characters to search",
|
||||
"search.all": "Show all",
|
||||
|
@ -495,7 +496,7 @@
|
|||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Размер",
|
||||
"slug": "URL-\u0434\u043e\u0431\u0430\u0432\u043a\u0430",
|
||||
"slug": "URL-добавка",
|
||||
"sort": "Сортирай",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
|
@ -524,7 +525,7 @@
|
|||
"today": "Днес",
|
||||
|
||||
"toolbar.button.code": "Код",
|
||||
"toolbar.button.bold": "\u041f\u043e\u043b\u0443\u0447\u0435\u0440 \u0448\u0440\u0438\u0444\u0442",
|
||||
"toolbar.button.bold": "Получер шрифт",
|
||||
"toolbar.button.email": "Email",
|
||||
"toolbar.button.headings": "Заглавия",
|
||||
"toolbar.button.heading.1": "Заглавие 1",
|
||||
|
@ -533,11 +534,11 @@
|
|||
"toolbar.button.heading.4": "Heading 4",
|
||||
"toolbar.button.heading.5": "Heading 5",
|
||||
"toolbar.button.heading.6": "Heading 6",
|
||||
"toolbar.button.italic": "\u041d\u0430\u043a\u043b\u043e\u043d\u0435\u043d \u0448\u0440\u0438\u0444\u0442",
|
||||
"toolbar.button.italic": "Наклонен шрифт",
|
||||
"toolbar.button.file": "Файл",
|
||||
"toolbar.button.file.select": "Select a file",
|
||||
"toolbar.button.file.upload": "Upload a file",
|
||||
"toolbar.button.link": "\u0412\u0440\u044a\u0437\u043a\u0430",
|
||||
"toolbar.button.link": "Връзка",
|
||||
"toolbar.button.paragraph": "Paragraph",
|
||||
"toolbar.button.strike": "Strike-through",
|
||||
"toolbar.button.ol": "Подреден списък",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"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.errors": "Грешка",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Uploading…",
|
||||
|
||||
"url": "Url",
|
||||
|
@ -583,18 +584,18 @@
|
|||
|
||||
"users": "Потребители",
|
||||
|
||||
"version": "\u0412\u0435\u0440\u0441\u0438\u044f \u043d\u0430 Kirby",
|
||||
"version": "Версия на Kirby",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
|
||||
"view.account": "\u0412\u0430\u0448\u0438\u044f \u0430\u043a\u0430\u0443\u043d\u0442",
|
||||
"view.installation": "\u0418\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u044f",
|
||||
"view.account": "Вашия акаунт",
|
||||
"view.installation": "Инсталация",
|
||||
"view.languages": "Езици",
|
||||
"view.resetPassword": "Reset password",
|
||||
"view.site": "Сайт",
|
||||
"view.system": "System",
|
||||
"view.users": "\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438",
|
||||
"view.users": "Потребители",
|
||||
|
||||
"welcome": "Добре дошли",
|
||||
"year": "Year",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"author": "Author",
|
||||
"avatar": "Imatge del perfil",
|
||||
"back": "Tornar",
|
||||
"cancel": "Cancel\u00b7lar",
|
||||
"cancel": "Cancel·lar",
|
||||
"change": "Canviar",
|
||||
"close": "Tancar",
|
||||
"confirm": "Ok",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "La longitud del nom ha de tenir menys de caràcters \"{length}\"",
|
||||
"error.page.sort.permission": "La pàgina \"{slug}\" no es pot ordenar",
|
||||
"error.page.status.invalid": "Si us plau, estableix un estat de pàgina vàlid",
|
||||
"error.page.undefined": "La p\u00e0gina no s'ha trobat",
|
||||
"error.page.undefined": "La pàgina no s'ha trobat",
|
||||
"error.page.update.permission": "No tens permís per actualitzar \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "No has d'afegir més de {max} fitxers a la secció \"{section}\"",
|
||||
|
@ -176,13 +176,14 @@
|
|||
"error.user.changeRole.toAdmin": "No tens permís per promocionar algú al rol d’administrador",
|
||||
"error.user.create.permission": "No tens permís per crear aquest usuari",
|
||||
"error.user.delete": "L'usuari \"{name}\" no es pot eliminar",
|
||||
"error.user.delete.lastAdmin": "No es pot eliminar l'\u00faltim administrador",
|
||||
"error.user.delete.lastAdmin": "No es pot eliminar l'últim administrador",
|
||||
"error.user.delete.lastUser": "El darrer usuari no es pot eliminar",
|
||||
"error.user.delete.permission": "No pots eliminar l'usuari \"{name}\"",
|
||||
"error.user.duplicate": "Ja existeix un usuari amb l'adreça electrònica \"{email}\"",
|
||||
"error.user.email.invalid": "Si us plau, introdueix una adreça de correu electrònic vàlida",
|
||||
"error.user.language.invalid": "Introduïu un idioma vàlid",
|
||||
"error.user.notFound": "L'usuari \"{name}\" no s'ha trobat",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Introduïu una contrasenya vàlida. Les contrasenyes han de tenir com a mínim 8 caràcters.",
|
||||
"error.user.password.notSame": "Les contrasenyes no coincideixen",
|
||||
"error.user.password.undefined": "L'usuari no té una contrasenya",
|
||||
|
@ -347,7 +348,7 @@
|
|||
"languages.secondary": "Idiomes secundaris",
|
||||
"languages.secondary.empty": "Encara no hi ha idiomes secundaris",
|
||||
|
||||
"license": "Llic\u00e8ncia Kirby",
|
||||
"license": "Llicència Kirby",
|
||||
"license.buy": "Comprar una llicència",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
|
@ -359,7 +360,7 @@
|
|||
"license.unregistered": "Aquesta és una demo no registrada de Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Enlla\u00e7",
|
||||
"link": "Enllaç",
|
||||
"link.text": "Enllaç de text",
|
||||
|
||||
"loading": "Carregant",
|
||||
|
@ -403,7 +404,7 @@
|
|||
"months.january": "Gener",
|
||||
"months.july": "Juliol",
|
||||
"months.june": "Juny",
|
||||
"months.march": "Mar\u00e7",
|
||||
"months.march": "Març",
|
||||
"months.may": "Maig",
|
||||
"months.november": "Novembre",
|
||||
"months.october": "Octubre",
|
||||
|
@ -427,7 +428,7 @@
|
|||
|
||||
"page.blueprint": "This page has no blueprint yet. You can define the setup in <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Canviar URL",
|
||||
"page.changeSlug.fromTitle": "Crear a partir del t\u00edtol",
|
||||
"page.changeSlug.fromTitle": "Crear a partir del títol",
|
||||
"page.changeStatus": "Canviar l'estat",
|
||||
"page.changeStatus.position": "Si us plau, seleccioneu una posició",
|
||||
"page.changeStatus.select": "Seleccioneu un nou estat",
|
||||
|
@ -454,7 +455,7 @@
|
|||
"pages.status.listed": "Publicat",
|
||||
"pages.status.unlisted": "Sense classificar",
|
||||
|
||||
"pagination.page": "Pàgina",
|
||||
"pagination.page": "Page",
|
||||
|
||||
"password": "Contrasenya",
|
||||
"paste": "Paste",
|
||||
|
@ -466,7 +467,7 @@
|
|||
"preview": "Preview",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Canviar el nom",
|
||||
"replace": "Reempla\u00e7ar",
|
||||
"replace": "Reemplaçar",
|
||||
"retry": "Reintentar",
|
||||
"revert": "Revertir",
|
||||
"revert.confirm": "Segur que voleu eliminar <strong>tots els canvis pendents desar</strong>?",
|
||||
|
@ -495,7 +496,7 @@
|
|||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamany",
|
||||
"slug": "URL-ap\u00e8ndix",
|
||||
"slug": "URL-apèndix",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
|
@ -537,7 +538,7 @@
|
|||
"toolbar.button.file": "Arxiu",
|
||||
"toolbar.button.file.select": "Selecciona un fitxer",
|
||||
"toolbar.button.file.upload": "Carrega un fitxer",
|
||||
"toolbar.button.link": "Enlla\u00e7",
|
||||
"toolbar.button.link": "Enllaç",
|
||||
"toolbar.button.paragraph": "Paragraph",
|
||||
"toolbar.button.strike": "Strike-through",
|
||||
"toolbar.button.ol": "Llista ordenada",
|
||||
|
@ -583,7 +584,7 @@
|
|||
|
||||
"users": "Usuaris",
|
||||
|
||||
"version": "Versi\u00f3 de Kirby",
|
||||
"version": "Versió de Kirby",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"account.changeName": "Přejmenovat",
|
||||
"account.changeName": "Přejmenovat uživatele",
|
||||
"account.delete": "Smazat účet",
|
||||
"account.delete.confirm": "Opravdu chcete smazat svůj účet? Budete okamžitě odhlášeni. Účet nemůže být zpětně obnoven.",
|
||||
|
||||
"add": "P\u0159idat",
|
||||
"add": "Přidat",
|
||||
"author": "Autor",
|
||||
"avatar": "Profilov\u00fd obr\u00e1zek",
|
||||
"avatar": "Profilový obrázek",
|
||||
"back": "Zpět",
|
||||
"cancel": "Zru\u0161it",
|
||||
"change": "Zm\u011bnit",
|
||||
"cancel": "Zrušit",
|
||||
"change": "Změnit",
|
||||
"close": "Zavřít",
|
||||
"confirm": "Ok",
|
||||
"collapse": "Sbalit",
|
||||
|
@ -21,12 +21,12 @@
|
|||
"date.select": "Vyberte datum",
|
||||
|
||||
"day": "Den",
|
||||
"days.fri": "p\u00e1",
|
||||
"days.fri": "pá",
|
||||
"days.mon": "po",
|
||||
"days.sat": "so",
|
||||
"days.sun": "ne",
|
||||
"days.thu": "\u010dt",
|
||||
"days.tue": "\u00fat",
|
||||
"days.thu": "čt",
|
||||
"days.tue": "út",
|
||||
"days.wed": "st",
|
||||
|
||||
"debugging": "Ladění",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"error.access.view": "Nemáte oprávnění ke vstupu do této části panelu.",
|
||||
|
||||
"error.avatar.create.fail": "Nebylo možné nahrát profilový obrázek",
|
||||
"error.avatar.delete.fail": "Nebylo mo\u017en\u00e9 smazat profilov\u00fd obr\u00e1zek",
|
||||
"error.avatar.delete.fail": "Nebylo možné smazat profilový obrázek",
|
||||
"error.avatar.dimensions.invalid": "Šířka a výška obrázku musí být pod 3000 pixelů",
|
||||
"error.avatar.mime.forbidden": "Profilový obrázek musí být ve formátu JPEG nebo PNG",
|
||||
|
||||
|
@ -72,7 +72,7 @@
|
|||
"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.cache.type.invalid": "Neplatný typ cache \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Nelze nalézt emailové přednastavení \"{name}\"",
|
||||
|
||||
|
@ -84,7 +84,7 @@
|
|||
"error.file.duplicate": "Soubor s názvem \"{filename}\" již existuje",
|
||||
"error.file.extension.forbidden": "Přípona souboru \"{extension}\" není povolena",
|
||||
"error.file.extension.invalid": "Neplatná přípona souboru: {extension}",
|
||||
"error.file.extension.missing": "Nem\u016f\u017eete nahr\u00e1t soubor bez p\u0159\u00edpony",
|
||||
"error.file.extension.missing": "Nemůžete nahrát soubor bez přípony",
|
||||
"error.file.maxheight": "Výška obrázku nesmí přesáhnout {height} pixelů",
|
||||
"error.file.maxsize": "Soubor je příliš velký",
|
||||
"error.file.maxwidth": "Šířka obrázku nesmí přesáhnout {width} pixelů",
|
||||
|
@ -96,11 +96,11 @@
|
|||
"error.file.minsize": "Soubor je příliš malý",
|
||||
"error.file.minwidth": "Šířka obrázku musí být alespoň {width} pixelů",
|
||||
"error.file.name.missing": "Název souboru nesmí být prázdný",
|
||||
"error.file.notFound": "Soubor se nepoda\u0159ilo nal\u00e9zt",
|
||||
"error.file.notFound": "Soubor se nepodařilo nalézt",
|
||||
"error.file.orientation": "Orientace obrázku másí být \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Nemáte povoleno nahrávat soubory typu {type} ",
|
||||
"error.file.type.invalid": "Neplatný typ souboru: {type}",
|
||||
"error.file.undefined": "Soubor se nepoda\u0159ilo nal\u00e9zt",
|
||||
"error.file.undefined": "Soubor se nepodařilo nalézt",
|
||||
|
||||
"error.form.incomplete": "Prosím opravte všechny chyby ve formuláři",
|
||||
"error.form.notSaved": "Formulář nemohl být uložen",
|
||||
|
@ -121,7 +121,7 @@
|
|||
|
||||
"error.offline": "Panel je v současnosti off-line",
|
||||
|
||||
"error.page.changeSlug.permission": "Nem\u016f\u017eete zm\u011bnit URL t\u00e9to str\u00e1nky",
|
||||
"error.page.changeSlug.permission": "Nemůžete změnit URL této stránky",
|
||||
"error.page.changeStatus.incomplete": "Stránka obsahuje chyby a nemohla být zveřejněna",
|
||||
"error.page.changeStatus.permission": "Status této stránky nelze změnit",
|
||||
"error.page.changeStatus.toDraft.invalid": "Stránka \"{slug}\" nemůže být převedena na koncept",
|
||||
|
@ -137,13 +137,13 @@
|
|||
"error.page.draft.duplicate": "Koncept stránky, který obsahuje v adrese URL \"{slug}\" již existuje ",
|
||||
"error.page.duplicate": "Stránka, která v adrese URL obsahuje \"{slug}\" již existuje",
|
||||
"error.page.duplicate.permission": "Nemáte dovoleno duplikovat \"{slug}\"",
|
||||
"error.page.notFound": "Str\u00e1nku se nepoda\u0159ilo nal\u00e9zt.",
|
||||
"error.page.notFound": "Stránku se nepodařilo nalézt.",
|
||||
"error.page.num.invalid": "Zadejte prosím platné pořadové číslo. Čísla nesmí být záporná.",
|
||||
"error.page.slug.invalid": "Podtržení",
|
||||
"error.page.slug.maxlength": "URL musí mít méně než \"{length}\" znaků",
|
||||
"error.page.sort.permission": "Stránce \"{slug}\" nelze změnit pořadí",
|
||||
"error.page.status.invalid": "Nastavte prosím platný status stránky",
|
||||
"error.page.undefined": "Str\u00e1nku se nepoda\u0159ilo nal\u00e9zt.",
|
||||
"error.page.undefined": "Stránku se nepodařilo nalézt.",
|
||||
"error.page.update.permission": "Nemáte dovoleno upravit \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Sekce \"{section}\" nesmí obsahovat více jak {max} souborů",
|
||||
|
@ -175,16 +175,17 @@
|
|||
"error.user.changeRole.permission": "Nemáte dovoleno změnit roli uživatele \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "Nemáte dovoleno povýšit uživatele do role administrátora.",
|
||||
"error.user.create.permission": "Nemáte dovoleno vytvořit tohoto uživatele",
|
||||
"error.user.delete": "U\u017eivatel nemohl b\u00fdt smaz\u00e1n",
|
||||
"error.user.delete.lastAdmin": "Nem\u016f\u017eete smazat posledn\u00edho administr\u00e1tora",
|
||||
"error.user.delete": "Uživatel nemohl být smazán",
|
||||
"error.user.delete.lastAdmin": "Nemůžete smazat posledního administrátora",
|
||||
"error.user.delete.lastUser": "Poslední uživatel nemůže být smazán",
|
||||
"error.user.delete.permission": "Nem\u00e1te dovoleno smazat tohoto u\u017eivatele",
|
||||
"error.user.delete.permission": "Nemáte dovoleno smazat tohoto uživatele",
|
||||
"error.user.duplicate": "Uživatel s emailovou adresou \"{email}\" již existuje",
|
||||
"error.user.email.invalid": "Zadejte prosím platnou emailovou adresu",
|
||||
"error.user.language.invalid": "Zadejte prosím platný jazyk",
|
||||
"error.user.notFound": "U\u017eivatele se nepoda\u0159ilo nal\u00e9zt",
|
||||
"error.user.notFound": "Uživatele se nepodařilo nalézt",
|
||||
"error.user.password.excessive": "Zadejte prosím platné heslo. Heslo nesmí být delší než 1000 znaků.",
|
||||
"error.user.password.invalid": "Zadejte prosím platné heslo. Heslo musí být dlouhé alespoň 8 znaků.",
|
||||
"error.user.password.notSame": "Pros\u00edm potvr\u010fte heslo",
|
||||
"error.user.password.notSame": "Prosím potvrďte heslo",
|
||||
"error.user.password.undefined": "Uživatel nemá nastavené heslo.",
|
||||
"error.user.password.wrong": "Špatné heslo",
|
||||
"error.user.role.invalid": "Zadejte prosím platnou roli",
|
||||
|
@ -282,18 +283,18 @@
|
|||
|
||||
"field.files.empty": "Nebyly zatím vybrány žádné soubory",
|
||||
|
||||
"field.layout.delete": "Smazat rozložení",
|
||||
"field.layout.delete.confirm": "Opravdu chcete smazat toto rozložení?",
|
||||
"field.layout.delete": "Smazat rozvržení",
|
||||
"field.layout.delete.confirm": "Opravdu chcete smazat toto rozvržení?",
|
||||
"field.layout.empty": "Zatím žádné řádky",
|
||||
"field.layout.select": "Vyberte rozložení",
|
||||
"field.layout.select": "Vyberte rozvržení",
|
||||
|
||||
"field.object.empty": "Zatím žádná informace",
|
||||
|
||||
"field.pages.empty": "Nebyly zatím vybrány žádné stránky",
|
||||
|
||||
"field.structure.delete.confirm": "Opravdu chcete smazat tento z\u00e1znam?",
|
||||
"field.structure.delete.confirm": "Opravdu chcete smazat tento záznam?",
|
||||
"field.structure.delete.confirm.all": "Opravdu chcete smazat všechny záznamy?",
|
||||
"field.structure.empty": "Zat\u00edm nejsou \u017e\u00e1dn\u00e9 z\u00e1znamy.",
|
||||
"field.structure.empty": "Zatím nejsou žádné záznamy.",
|
||||
|
||||
"field.users.empty": "Nebyli zatím vybráni žádní uživatelé",
|
||||
|
||||
|
@ -308,7 +309,7 @@
|
|||
"hour": "Hodina",
|
||||
"import": "Import",
|
||||
"info": "Informace",
|
||||
"insert": "Vlo\u017eit",
|
||||
"insert": "Vložit",
|
||||
"insert.after": "Vložit za",
|
||||
"insert.before": "Vložit před",
|
||||
"install": "Instalovat",
|
||||
|
@ -316,8 +317,8 @@
|
|||
"installation": "Instalace",
|
||||
"installation.completed": "Panel byl nainstalován",
|
||||
"installation.disabled": "Instalátor panelu je ve výchozím nastavení na veřejných serverech zakázán. Spusťte prosím instalátor na lokálním počítači nebo jej povolte prostřednictvím <code>panel.install</code>.",
|
||||
"installation.issues.accounts": "\/site\/accounts nen\u00ed zapisovateln\u00e9",
|
||||
"installation.issues.content": "Slo\u017eka content a v\u0161echny soubory a slo\u017eky v n\u00ed mus\u00ed b\u00fdt zapisovateln\u00e9.",
|
||||
"installation.issues.accounts": "/site/accounts není zapisovatelné",
|
||||
"installation.issues.content": "Složka content a všechny soubory a složky v ní musí být zapisovatelné.",
|
||||
"installation.issues.curl": "Je vyžadováno rozšíření<code>CURL</code>",
|
||||
"installation.issues.headline": "Panel nelze nainstalovat",
|
||||
"installation.issues.mbstring": "Je vyžadováno rozšíření<code>MB String</code>",
|
||||
|
@ -401,13 +402,13 @@
|
|||
"months.december": "Prosinec",
|
||||
"months.february": "Únor",
|
||||
"months.january": "Leden",
|
||||
"months.july": "\u010cervenec",
|
||||
"months.june": "\u010cerven",
|
||||
"months.march": "B\u0159ezen",
|
||||
"months.may": "Kv\u011bten",
|
||||
"months.july": "Červenec",
|
||||
"months.june": "Červen",
|
||||
"months.march": "Březen",
|
||||
"months.may": "Květen",
|
||||
"months.november": "Listopad",
|
||||
"months.october": "\u0158\u00edjen",
|
||||
"months.september": "Z\u00e1\u0159\u00ed",
|
||||
"months.october": "Říjen",
|
||||
"months.september": "Září",
|
||||
|
||||
"more": "Více",
|
||||
"name": "Jméno",
|
||||
|
@ -426,13 +427,13 @@
|
|||
"orientation.square": "Čtverec",
|
||||
|
||||
"page.blueprint": "Tento typ stránky nemá blueprint. Blueprint můžete definovat v <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Zm\u011bnit URL",
|
||||
"page.changeSlug.fromTitle": "Vytvo\u0159it z n\u00e1zvu",
|
||||
"page.changeSlug": "Změnit URL",
|
||||
"page.changeSlug.fromTitle": "Vytvořit z názvu",
|
||||
"page.changeStatus": "Změnit status",
|
||||
"page.changeStatus.position": "Vyberte prosím pozici",
|
||||
"page.changeStatus.select": "Vybrat nový status",
|
||||
"page.changeTemplate": "Změnit šablonu",
|
||||
"page.delete.confirm": "Opravdu chcete smazat tuto str\u00e1nku?",
|
||||
"page.delete.confirm": "Opravdu chcete smazat tuto stránku?",
|
||||
"page.delete.confirm.subpages": "<strong>Tato stránka má podstránky</strong>. <br>Všechny podstránky budou vymazány.",
|
||||
"page.delete.confirm.title": "Pro potvrzení zadejte titulek stránky",
|
||||
"page.draft.create": "Vytvořit koncept",
|
||||
|
@ -454,7 +455,7 @@
|
|||
"pages.status.listed": "Zveřejněno",
|
||||
"pages.status.unlisted": "Neveřejná",
|
||||
|
||||
"pagination.page": "Stránka",
|
||||
"pagination.page": "Page",
|
||||
|
||||
"password": "Heslo",
|
||||
"paste": "Vložit",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "Toto je výchozí role bez jakýchkoli oprávnění",
|
||||
"role.nobody.title": "Nikdo",
|
||||
|
||||
"save": "Ulo\u017eit",
|
||||
"save": "Uložit",
|
||||
"search": "Hledat",
|
||||
"search.min": "Pro vyhledání zadejte alespoň {min} znaky",
|
||||
"search.all": "Zobrazit vše",
|
||||
|
@ -495,7 +496,7 @@
|
|||
"show": "Zobrazit",
|
||||
"site.blueprint": "Hlavní panel nemá blueprint. Blueprint můžete definovat v <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Velikost",
|
||||
"slug": "P\u0159\u00edpona URL",
|
||||
"slug": "Přípona URL",
|
||||
"sort": "Řadit",
|
||||
|
||||
"stats.empty": "Žádná hlášení",
|
||||
|
@ -520,11 +521,11 @@
|
|||
"system.updateStatus.upgrade": "Je dostupný upgrade na verzi { version }",
|
||||
|
||||
"title": "Název",
|
||||
"template": "\u0160ablona",
|
||||
"template": "Šablona",
|
||||
"today": "Dnes",
|
||||
|
||||
"toolbar.button.code": "Kód",
|
||||
"toolbar.button.bold": "Tu\u010dn\u00fd text",
|
||||
"toolbar.button.bold": "Tučný text",
|
||||
"toolbar.button.email": "Email",
|
||||
"toolbar.button.headings": "Nadpisy",
|
||||
"toolbar.button.heading.1": "Nadpis 1",
|
||||
|
@ -533,7 +534,7 @@
|
|||
"toolbar.button.heading.4": "Nadpis 4",
|
||||
"toolbar.button.heading.5": "Nadpis 5",
|
||||
"toolbar.button.heading.6": "Nadpis 6",
|
||||
"toolbar.button.italic": "Kurz\u00edva",
|
||||
"toolbar.button.italic": "Kurzíva",
|
||||
"toolbar.button.file": "Soubor",
|
||||
"toolbar.button.file.select": "Vyberte soubor",
|
||||
"toolbar.button.file.upload": "Nahrajte soubor",
|
||||
|
@ -546,7 +547,7 @@
|
|||
|
||||
"translation.author": "Kirby tým",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "\u010cesky",
|
||||
"translation.name": "Česky",
|
||||
"translation.locale": "cs_CZ",
|
||||
|
||||
"upload": "Nahrát",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"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.errors": "Error",
|
||||
"upload.progress": "Nahrávání...",
|
||||
|
||||
"url": "Url",
|
||||
|
@ -579,7 +580,7 @@
|
|||
"user.changeRole.select": "Vybrat novou roli",
|
||||
"user.create": "Přidat nového uživatele",
|
||||
"user.delete": "Smazat tohoto uživatele",
|
||||
"user.delete.confirm": "Opravdu chcete smazat tohoto u\u017eivatele?",
|
||||
"user.delete.confirm": "Opravdu chcete smazat tohoto uživatele?",
|
||||
|
||||
"users": "Uživatelé",
|
||||
|
||||
|
@ -588,13 +589,13 @@
|
|||
"version.latest": "Poslední verze",
|
||||
"versionInformation": "Informace o verzi",
|
||||
|
||||
"view.account": "V\u00e1\u0161 \u00fa\u010det",
|
||||
"view.account": "Váš účet",
|
||||
"view.installation": "Instalace",
|
||||
"view.languages": "Jazyky",
|
||||
"view.resetPassword": "Resetovat heslo",
|
||||
"view.site": "Stránka",
|
||||
"view.system": "Systém",
|
||||
"view.users": "U\u017eivatel\u00e9",
|
||||
"view.users": "Uživatelé",
|
||||
|
||||
"welcome": "Vítejte",
|
||||
"year": "Rok",
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"avatar": "Profilbillede",
|
||||
"back": "Tilbage",
|
||||
"cancel": "Annuller",
|
||||
"change": "\u00c6ndre",
|
||||
"change": "Ændre",
|
||||
"close": "Luk",
|
||||
"confirm": "Gem",
|
||||
"collapse": "Fold sammen",
|
||||
|
@ -23,8 +23,8 @@
|
|||
"day": "Dag",
|
||||
"days.fri": "Fre",
|
||||
"days.mon": "Man",
|
||||
"days.sat": "L\u00f8r",
|
||||
"days.sun": "S\u00f8n",
|
||||
"days.sat": "Lør",
|
||||
"days.sun": "Søn",
|
||||
"days.thu": "Tor",
|
||||
"days.tue": "Tir",
|
||||
"days.wed": "Ons",
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
"dimensions": "Dimensioner",
|
||||
"disabled": "Deaktiveret",
|
||||
"discard": "Kass\u00e9r",
|
||||
"discard": "Kassér",
|
||||
"download": "Download",
|
||||
"duplicate": "Dupliker",
|
||||
|
||||
|
@ -183,8 +183,9 @@
|
|||
"error.user.email.invalid": "Indtast venligst en gyldig email adresse",
|
||||
"error.user.language.invalid": "Indtast venligst et gyldigt sprog",
|
||||
"error.user.notFound": "Brugeren kunne ikke findes",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Indtast venligst en gyldig adgangskode. Adgangskoder skal minimum være 8 tegn lange.",
|
||||
"error.user.password.notSame": "Bekr\u00e6ft venligst adgangskoden",
|
||||
"error.user.password.notSame": "Bekræft venligst adgangskoden",
|
||||
"error.user.password.undefined": "Brugeren har ikke en adgangskode",
|
||||
"error.user.password.wrong": "Forkert adgangskode",
|
||||
"error.user.role.invalid": "Indtast venligst en gyldig rolle",
|
||||
|
@ -291,14 +292,14 @@
|
|||
|
||||
"field.pages.empty": "Ingen sider valgt endnu",
|
||||
|
||||
"field.structure.delete.confirm": "\u00d8nsker du virkelig at slette denne indtastning?",
|
||||
"field.structure.delete.confirm": "Ønsker du virkelig at slette denne indtastning?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.empty": "Ingen indtastninger endnu.",
|
||||
|
||||
"field.users.empty": "Ingen brugere er valgt",
|
||||
|
||||
"file.blueprint": "Denne fil har intet blueprint endnu. Du kan definere opsætningen i <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.delete.confirm": "\u00d8nsker du virkelig at slette denne fil?",
|
||||
"file.delete.confirm": "Ønsker du virkelig at slette denne fil?",
|
||||
"file.sort": "Skift position",
|
||||
|
||||
"files": "Filer",
|
||||
|
@ -308,7 +309,7 @@
|
|||
"hour": "Time",
|
||||
"import": "Importer",
|
||||
"info": "Info",
|
||||
"insert": "Inds\u00e6t",
|
||||
"insert": "Indsæt",
|
||||
"insert.after": "Indsæt efter",
|
||||
"insert.before": "Indsæt før",
|
||||
"install": "Installer",
|
||||
|
@ -316,8 +317,8 @@
|
|||
"installation": "Installation",
|
||||
"installation.completed": "Panelet er blevet installeret",
|
||||
"installation.disabled": "Panel installationen er deaktiveret på offentlige servere som standard. Kør venligst installationen på en lokal maskine eller aktiver det med panel.install <code>panel.install</code> muligheden.",
|
||||
"installation.issues.accounts": "\/site\/accounts er ikke skrivbar",
|
||||
"installation.issues.content": "Content mappen samt alle underliggende filer og mapper skal v\u00e6re skrivbare.",
|
||||
"installation.issues.accounts": "/site/accounts er ikke skrivbar",
|
||||
"installation.issues.content": "Content mappen samt alle underliggende filer og mapper skal være skrivbare.",
|
||||
"installation.issues.curl": "<code>CURL</code> extension er påkrævet",
|
||||
"installation.issues.headline": "Panelet kan ikke installeres",
|
||||
"installation.issues.mbstring": "<code>MB String</code> extension er påkrævet",
|
||||
|
@ -426,13 +427,13 @@
|
|||
"orientation.square": "Kvadrat",
|
||||
|
||||
"page.blueprint": "Denne side har intet blueprint endnu. Du kan definere opsætningen i <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "\u00c6ndre URL",
|
||||
"page.changeSlug": "Ændre URL",
|
||||
"page.changeSlug.fromTitle": "Generer udfra titel",
|
||||
"page.changeStatus": "Skift status",
|
||||
"page.changeStatus.position": "Vælg venligst position",
|
||||
"page.changeStatus.select": "Vælg en ny status",
|
||||
"page.changeTemplate": "Skift skabelon",
|
||||
"page.delete.confirm": "\u00d8nsker du virkelig at slette denne side?",
|
||||
"page.delete.confirm": "Ønsker du virkelig at slette denne side?",
|
||||
"page.delete.confirm.subpages": "<strong>Denne side har undersider</strong>. <br>Alle undersider vil også blive slettet.",
|
||||
"page.delete.confirm.title": "Indtast sidens titel for at bekræfte",
|
||||
"page.draft.create": "Opret kladde",
|
||||
|
@ -454,7 +455,7 @@
|
|||
"pages.status.listed": "Udgivede",
|
||||
"pages.status.unlisted": "Ulistede",
|
||||
|
||||
"pagination.page": "Side",
|
||||
"pagination.page": "Page",
|
||||
|
||||
"password": "Adgangskode",
|
||||
"paste": "Indsæt",
|
||||
|
@ -467,8 +468,8 @@
|
|||
"remove": "Fjern",
|
||||
"rename": "Omdøb",
|
||||
"replace": "Erstat",
|
||||
"retry": "Pr\u00f8v igen",
|
||||
"revert": "Kass\u00e9r",
|
||||
"retry": "Prøv igen",
|
||||
"revert": "Kassér",
|
||||
"revert.confirm": "Ønsker du virkelig at <strong>slette all ændringer der ikke er gemt</strong>?",
|
||||
|
||||
"role": "Rolle",
|
||||
|
@ -534,7 +535,7 @@
|
|||
"toolbar.button.heading.5": "Overskrift 5",
|
||||
"toolbar.button.heading.6": "Overskrift 6",
|
||||
"toolbar.button.italic": "Kursiv tekst",
|
||||
"toolbar.button.file": "Fil",
|
||||
"toolbar.button.file": "File",
|
||||
"toolbar.button.file.select": "Vælg en fil",
|
||||
"toolbar.button.file.upload": "Upload en fil",
|
||||
"toolbar.button.link": "Link",
|
||||
|
@ -579,7 +580,7 @@
|
|||
"user.changeRole.select": "Vælg en ny rolle",
|
||||
"user.create": "Tilføj en ny bruger",
|
||||
"user.delete": "Slet denne bruger",
|
||||
"user.delete.confirm": "\u00d8nsker du virkelig at slette denne bruger?",
|
||||
"user.delete.confirm": "Ønsker du virkelig at slette denne bruger?",
|
||||
|
||||
"users": "Brugere",
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"account.delete": "Deinen Account löschen",
|
||||
"account.delete.confirm": "Willst du deinen Account wirklich löschen? Du wirst sofort danach abgemeldet. Dein Account kann nicht wieder hergestellt werden.",
|
||||
|
||||
"add": "Hinzuf\u00fcgen",
|
||||
"add": "Hinzufügen",
|
||||
"author": "Autor",
|
||||
"avatar": "Profilbild",
|
||||
"back": "Zurück",
|
||||
"cancel": "Abbrechen",
|
||||
"change": "\u00c4ndern",
|
||||
"close": "Schlie\u00dfen",
|
||||
"change": "Ändern",
|
||||
"close": "Schließen",
|
||||
"confirm": "OK",
|
||||
"collapse": "Zusammenklappen",
|
||||
"collapse.all": "Alle zusammenklappen",
|
||||
|
@ -31,7 +31,7 @@
|
|||
|
||||
"debugging": "Debugging",
|
||||
|
||||
"delete": "L\u00f6schen",
|
||||
"delete": "Löschen",
|
||||
"delete.all": "Alle löschen",
|
||||
|
||||
"dialog.files.empty": "Keine verfügbaren Dateien",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"error.access.view": "Du hast keinen Zugriff auf diesen Teil des Panels",
|
||||
|
||||
"error.avatar.create.fail": "Das Profilbild konnte nicht hochgeladen werden",
|
||||
"error.avatar.delete.fail": "Das Profilbild konnte nicht gel\u00f6scht werden",
|
||||
"error.avatar.delete.fail": "Das Profilbild konnte nicht gelöscht werden",
|
||||
"error.avatar.dimensions.invalid": "Bitte lade ein Profilbild hoch, das nicht breiter oder höher als 3000 Pixel ist.",
|
||||
"error.avatar.mime.forbidden": "Das Profilbild muss vom Format JPEG oder PNG sein",
|
||||
|
||||
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Bitte gib eine gültige E-Mailadresse an",
|
||||
"error.user.language.invalid": "Bitte gib eine gültige Sprache an",
|
||||
"error.user.notFound": "Der Account \"{name}\" wurde nicht gefunden",
|
||||
"error.user.password.excessive": "Bitte gib ein gültiges Passwort ein. Passwörter dürfen nicht länger als 1000 Zeichen sein.",
|
||||
"error.user.password.invalid": "Bitte gib ein gültiges Passwort ein. Passwörter müssen mindestens 8 Zeichen lang sein.",
|
||||
"error.user.password.notSame": "Die Passwörter stimmen nicht überein",
|
||||
"error.user.password.undefined": "Der Account hat kein Passwort",
|
||||
|
@ -291,9 +292,9 @@
|
|||
|
||||
"field.pages.empty": "Keine Seiten ausgewählt",
|
||||
|
||||
"field.structure.delete.confirm": "Willst du diesen Eintrag wirklich l\u00f6schen?",
|
||||
"field.structure.delete.confirm": "Willst du diesen Eintrag wirklich löschen?",
|
||||
"field.structure.delete.confirm.all": "Möchtest du wirklich alle Einträge löschen?",
|
||||
"field.structure.empty": "Es bestehen keine Eintr\u00e4ge.",
|
||||
"field.structure.empty": "Es bestehen keine Einträge.",
|
||||
|
||||
"field.users.empty": "Keine Accounts ausgewählt",
|
||||
|
||||
|
@ -308,7 +309,7 @@
|
|||
"hour": "Stunde",
|
||||
"import": "Importieren",
|
||||
"info": "Info",
|
||||
"insert": "Einf\u00fcgen",
|
||||
"insert": "Einfügen",
|
||||
"insert.after": "Danach einfügen",
|
||||
"insert.before": "Davor einfügen",
|
||||
"install": "Installieren",
|
||||
|
@ -403,7 +404,7 @@
|
|||
"months.january": "Januar",
|
||||
"months.july": "Juli",
|
||||
"months.june": "Juni",
|
||||
"months.march": "M\u00e4rz",
|
||||
"months.march": "März",
|
||||
"months.may": "Mai",
|
||||
"months.november": "November",
|
||||
"months.october": "Oktober",
|
||||
|
@ -426,7 +427,7 @@
|
|||
"orientation.square": "Quadratisch",
|
||||
|
||||
"page.blueprint": "Du kannst zusätzliche Felder und Bereiche für diese Seite in <strong>/site/blueprints/pages/{blueprint}.yml</strong> anlegen",
|
||||
"page.changeSlug": "URL \u00e4ndern",
|
||||
"page.changeSlug": "URL ändern",
|
||||
"page.changeSlug.fromTitle": "Aus Titel erzeugen",
|
||||
"page.changeStatus": "Status ändern",
|
||||
"page.changeStatus.position": "Bitte wähle eine Position aus",
|
||||
|
@ -436,7 +437,7 @@
|
|||
"page.delete.confirm.subpages": "<strong>Diese Seite hat Unterseiten</strong>. <br>Alle Unterseiten werden ebenfalls gelöscht.",
|
||||
"page.delete.confirm.title": "Gib zur Bestätigung den Seitentitel ein",
|
||||
"page.draft.create": "Entwurf anlegen",
|
||||
"page.duplicate.appendix": "Kopie",
|
||||
"page.duplicate.appendix": "Kopieren",
|
||||
"page.duplicate.files": "Dateien kopieren",
|
||||
"page.duplicate.pages": "Seiten kopieren",
|
||||
"page.sort": "Position ändern",
|
||||
|
|
|
@ -3,35 +3,35 @@
|
|||
"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.",
|
||||
|
||||
"add": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7",
|
||||
"add": "Add",
|
||||
"author": "Author",
|
||||
"avatar": "\u0395\u03b9\u03ba\u03cc\u03bd\u03b1 \u03c0\u03c1\u03bf\u03c6\u03af\u03bb",
|
||||
"back": "Πίσω",
|
||||
"cancel": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7",
|
||||
"change": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae",
|
||||
"close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf",
|
||||
"confirm": "Εντάξει",
|
||||
"avatar": "Profile picture",
|
||||
"back": "Back",
|
||||
"cancel": "Cancel",
|
||||
"change": "Change",
|
||||
"close": "Close",
|
||||
"confirm": "Ok",
|
||||
"collapse": "Collapse",
|
||||
"collapse.all": "Collapse All",
|
||||
"copy": "Αντιγραφή",
|
||||
"copy.all": "Copy all",
|
||||
"create": "Δημιουργία",
|
||||
|
||||
"date": "Ημερομηνία",
|
||||
"date": "Date",
|
||||
"date.select": "Επιλογή ημερομηνίας",
|
||||
|
||||
"day": "Ημέρα",
|
||||
"days.fri": "\u03a0\u03b1\u03c1",
|
||||
"days.mon": "\u0394\u03b5\u03c5",
|
||||
"days.sat": "\u03a3\u03ac\u03b2",
|
||||
"days.sun": "\u039a\u03c5\u03c1",
|
||||
"days.thu": "\u03a0\u03ad\u03bc",
|
||||
"days.tue": "\u03a4\u03c1\u03af",
|
||||
"days.wed": "\u03a4\u03b5\u03c4",
|
||||
"days.fri": "Fri",
|
||||
"days.mon": "Mon",
|
||||
"days.sat": "Sat",
|
||||
"days.sun": "Κυρ",
|
||||
"days.thu": "Thu",
|
||||
"days.tue": "Tue",
|
||||
"days.wed": "Wed",
|
||||
|
||||
"debugging": "Debugging",
|
||||
|
||||
"delete": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae",
|
||||
"delete": "Delete",
|
||||
"delete.all": "Delete all",
|
||||
|
||||
"dialog.files.empty": "No files to select",
|
||||
|
@ -44,7 +44,7 @@
|
|||
"download": "Λήψη",
|
||||
"duplicate": "Αντίγραφο",
|
||||
|
||||
"edit": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1",
|
||||
"edit": "Edit",
|
||||
|
||||
"email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
@ -62,7 +62,7 @@
|
|||
"error.avatar.create.fail": "Δεν ήταν δυνατή η μεταφόρτωση της εικόνας προφίλ",
|
||||
"error.avatar.delete.fail": "Δεν ήταν δυνατή η διαγραφή της εικόνας προφίλ",
|
||||
"error.avatar.dimensions.invalid": "Διατηρήστε το πλάτος και το ύψος της εικόνας προφίλ κάτω από 3000 εικονοστοιχεία",
|
||||
"error.avatar.mime.forbidden": "\u039c\u03b7 \u03b1\u03c0\u03bf\u03b4\u03b5\u03ba\u03c4\u03cc\u03c2 \u03c4\u03cd\u03c0\u03bf\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5",
|
||||
"error.avatar.mime.forbidden": "Μη αποδεκτός τύπος αρχείου",
|
||||
|
||||
"error.blueprint.notFound": "Δεν ήταν δυνατή η φόρτωση του προσχεδίου \"{name}\"",
|
||||
|
||||
|
@ -82,7 +82,7 @@
|
|||
"error.file.changeName.empty": "The name must not be empty",
|
||||
"error.file.changeName.permission": "Δεν επιτρέπεται να αλλάξετε το όνομα του \"{filename}\"",
|
||||
"error.file.duplicate": "Ένα αρχείο με το όνομα \"{filename}\" υπάρχει ήδη",
|
||||
"error.file.extension.forbidden": "\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.forbidden": "Μη αποδεκτή επέκταση αρχείου",
|
||||
"error.file.extension.invalid": "Invalid extension: {extension}",
|
||||
"error.file.extension.missing": "Λείπει η επέκταση για το \"{filename}\"",
|
||||
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
|
||||
|
@ -175,7 +175,7 @@
|
|||
"error.user.changeRole.permission": "Δεν επιτρέπεται να αλλάξετε το ρόλο του χρήστη \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "You are not allowed to promote someone to the admin role",
|
||||
"error.user.create.permission": "Δεν επιτρέπεται η δημιουργία αυτού του χρήστη",
|
||||
"error.user.delete": "\u039f \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03c3\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03b5\u03af",
|
||||
"error.user.delete": "Ο χρήστης δεν μπορούσε να διαγραφεί",
|
||||
"error.user.delete.lastAdmin": "Δεν είναι δυνατή η διαγραφή του τελευταίου διαχειριστή",
|
||||
"error.user.delete.lastUser": "Δεν είναι δυνατή η διαγραφή του τελευταίου χρήστη",
|
||||
"error.user.delete.permission": "Δεν επιτρέπεται να διαγράψετ τον χρήστη \"{name}\"",
|
||||
|
@ -183,8 +183,9 @@
|
|||
"error.user.email.invalid": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου",
|
||||
"error.user.language.invalid": "Παρακαλώ εισαγάγετε μια έγκυρη γλώσσα",
|
||||
"error.user.notFound": "Δεν είναι δυνατή η εύρεση του χρήστη \"{name}\"",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Παρακαλώ εισάγετε έναν έγκυρο κωδικό πρόσβασης. Οι κωδικοί πρόσβασης πρέπει να έχουν μήκος τουλάχιστον 8 χαρακτήρων.",
|
||||
"error.user.password.notSame": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u039a\u03c9\u03b4\u03b9\u03ba\u03cc \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2",
|
||||
"error.user.password.notSame": "Παρακαλούμε επιβεβαιώστε τον Κωδικό Πρόσβασης",
|
||||
"error.user.password.undefined": "Ο χρήστης δεν έχει κωδικό πρόσβασης",
|
||||
"error.user.password.wrong": "Wrong password",
|
||||
"error.user.role.invalid": "Παρακαλώ εισαγάγετε έναν έγκυρο ρόλο",
|
||||
|
@ -291,33 +292,33 @@
|
|||
|
||||
"field.pages.empty": "Δεν έχουν επιλεγεί ακόμη σελίδες",
|
||||
|
||||
"field.structure.delete.confirm": "\u0395\u03af\u03c3\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03bf\u03c2 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03b1\u03c7\u03ce\u03c1\u03b9\u03c3\u03b7;",
|
||||
"field.structure.delete.confirm": "Είστε σίγουρος ότι θέλετε να διαγράψετε αυτήν την καταχώριση;",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.empty": "\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03b1\u03ba\u03cc\u03bc\u03b7 \u03ba\u03b1\u03c4\u03b1\u03c7\u03c9\u03c1\u03af\u03c3\u03b5\u03b9\u03c2.",
|
||||
"field.structure.empty": "Δεν υπάρχουν ακόμη καταχωρίσεις.",
|
||||
|
||||
"field.users.empty": "Δεν έχουν επιλεγεί ακόμη χρήστες",
|
||||
|
||||
"file.blueprint": "This file has no blueprint yet. You can define the setup in <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.delete.confirm": "\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf;",
|
||||
"file.delete.confirm": "Θέλετε σίγουρα να διαγράψετε αυτό το αρχείο;",
|
||||
"file.sort": "Change position",
|
||||
|
||||
"files": "Αρχεία",
|
||||
"files": "Files",
|
||||
"files.empty": "Δεν υπάρχουν ακόμα αρχεία",
|
||||
|
||||
"hide": "Hide",
|
||||
"hour": "Ώρα",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae",
|
||||
"insert": "Insert",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
"install": "Εγκατάσταση",
|
||||
|
||||
"installation": "Εγκατάσταση",
|
||||
"installation": "Installation",
|
||||
"installation.completed": "Ο πίνακας ελέγχου έχει εγκατασταθεί",
|
||||
"installation.disabled": "Η εγκατάσταση του πίνακα ελέγχου είναι απενεργοποιημένη για δημόσιους διακομιστές από προεπιλογή. Εκτελέστε την εγκατάσταση σε ένα τοπικό μηχάνημα ή ενεργοποιήστε την με την επιλογή panel.install.",
|
||||
"installation.issues.accounts": "\u039f \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 \/site\/accounts \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03b3\u03b3\u03c1\u03ac\u03c8\u03b9\u03bc\u03bf\u03c2",
|
||||
"installation.issues.content": "\u039f \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 content \u03ba\u03b1\u03b9 \u03cc\u03bb\u03bf\u03b9 \u03bf\u03b9 \u03c5\u03c0\u03bf\u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03b9 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03b3\u03b3\u03c1\u03ac\u03c8\u03b9\u03bc\u03bf\u03b9.",
|
||||
"installation.issues.accounts": "Ο φάκελος /site/accounts δεν είναι εγγράψιμος",
|
||||
"installation.issues.content": "Ο φάκελος content και όλοι οι υποφάκελοι πρέπει να είναι εγγράψιμοι.",
|
||||
"installation.issues.curl": "Απαιτείται η επέκταση <code>CURL</code>",
|
||||
"installation.issues.headline": "Ο πίνακας ελέγχου δεν μπορεί να εγκατασταθεί",
|
||||
"installation.issues.mbstring": "Απαιτείται η επέκταση <code>MB String</code> ",
|
||||
|
@ -326,7 +327,7 @@
|
|||
"installation.issues.server": "To Kirby απαιτεί <code>Apache</code>, <code>Nginx</code> ή <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Ο φάκελος <code>/site/sessions</code> δεν υπάρχει ή δεν είναι εγγράψιμος",
|
||||
|
||||
"language": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1",
|
||||
"language": "Γλώσσα",
|
||||
"language.code": "Κώδικας",
|
||||
"language.convert": "Χρήση ως προεπιλογή",
|
||||
"language.convert.confirm": "<p>Θέλετε πραγματικά να μετατρέψετε τη <strong>{name}</strong> στην προεπιλεγμένη γλώσσα; Αυτό δεν μπορεί να ανακληθεί.</p><p>Αν το <strong>{name}</strong> χει μη μεταφρασμένο περιεχόμενο, δεν θα υπάρχει πλέον έγκυρη εναλλακτική λύση και τμήματα του ιστότοπού σας ενδέχεται να είναι κενά.</p>",
|
||||
|
@ -347,7 +348,7 @@
|
|||
"languages.secondary": "Δευτερεύουσες γλώσσες",
|
||||
"languages.secondary.empty": "Δεν υπάρχουν ακόμα δευτερεύουσες γλώσσες",
|
||||
|
||||
"license": "\u0386\u03b4\u03b5\u03b9\u03b1 \u03a7\u03c1\u03ae\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 Kirby",
|
||||
"license": "Άδεια Χρήσης του Kirby",
|
||||
"license.buy": "Αγοράστε μια άδεια",
|
||||
"license.register": "Εγγραφή",
|
||||
"license.manage": "Manage your licenses",
|
||||
|
@ -359,8 +360,8 @@
|
|||
"license.unregistered": "Αυτό είναι ένα μη καταχωρημένο demo του Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2",
|
||||
"link.text": "\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
|
||||
"link": "Σύνδεσμος",
|
||||
"link.text": "Κείμενο συνδέσμου",
|
||||
|
||||
"loading": "Φόρτωση",
|
||||
|
||||
|
@ -372,7 +373,7 @@
|
|||
"lock.unlock": "Unlock",
|
||||
"lock.isUnlocked": "Your unsaved changes have been overwritten by another user. You can download your changes to merge them manually.",
|
||||
|
||||
"login": "Σύνδεση",
|
||||
"login": "Log in",
|
||||
"login.code.label.login": "Login code",
|
||||
"login.code.label.password-reset": "Password reset code",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -388,7 +389,7 @@
|
|||
"login.toggleText.password-reset.email": "Forgot your password?",
|
||||
"login.toggleText.password-reset.email-password": "← Back to login",
|
||||
|
||||
"logout": "Αποσύνδεση",
|
||||
"logout": "Log out",
|
||||
|
||||
"menu": "Μενού",
|
||||
"meridiem": "Π.Μ./Μ.Μ",
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "Λεπτά",
|
||||
|
||||
"month": "Μήνας",
|
||||
"months.april": "\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2",
|
||||
"months.august": "\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2",
|
||||
"months.december": "\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2",
|
||||
"months.april": "Απρίλιος",
|
||||
"months.august": "August",
|
||||
"months.december": "December",
|
||||
"months.february": "Φεβρουάριος",
|
||||
"months.january": "\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2",
|
||||
"months.july": "\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2",
|
||||
"months.june": "\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2",
|
||||
"months.march": "\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2",
|
||||
"months.may": "\u039c\u03ac\u03b9\u03bf\u03c2",
|
||||
"months.november": "\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2",
|
||||
"months.october": "\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2",
|
||||
"months.september": "\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2",
|
||||
"months.january": "January",
|
||||
"months.july": "Ιούλιος",
|
||||
"months.june": "June",
|
||||
"months.march": "March",
|
||||
"months.may": "May",
|
||||
"months.november": "November",
|
||||
"months.october": "October",
|
||||
"months.september": "September",
|
||||
|
||||
"more": "Περισσότερα",
|
||||
"name": "Ονομασία",
|
||||
|
@ -426,13 +427,13 @@
|
|||
"orientation.square": "Τετράγωνος",
|
||||
|
||||
"page.blueprint": "This page has no blueprint yet. You can define the setup in <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae URL",
|
||||
"page.changeSlug.fromTitle": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c4\u03af\u03c4\u03bb\u03bf",
|
||||
"page.changeSlug": "Change URL",
|
||||
"page.changeSlug.fromTitle": "Create from title",
|
||||
"page.changeStatus": "Αλλαγή κατάστασης",
|
||||
"page.changeStatus.position": "Επιλέξτε μια θέση",
|
||||
"page.changeStatus.select": "Επιλέξτε μια νέα κατάσταση",
|
||||
"page.changeTemplate": "Αλλαγή προτύπου",
|
||||
"page.delete.confirm": "\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1;",
|
||||
"page.delete.confirm": "Θέλετε σίγουρα να διαγράψετε αυτήν τη σελίδα;",
|
||||
"page.delete.confirm.subpages": "<strong>Αυτή η σελίδα έχει υποσελίδες</strong>. <br>Όλες οι υποσελίδες θα διαγραφούν επίσης.",
|
||||
"page.delete.confirm.title": "Εισάγετε τον τίτλο της σελίδας για επιβεβαίωση",
|
||||
"page.draft.create": "Δημιουργία προσχεδίου",
|
||||
|
@ -448,15 +449,15 @@
|
|||
"page.status.unlisted": "Μη καταχωρημένο",
|
||||
"page.status.unlisted.description": "Η σελίδα είναι προσβάσιμη μόνο μέσω της διεύθυνσης URL",
|
||||
|
||||
"pages": "Σελίδες",
|
||||
"pages": "Pages",
|
||||
"pages.empty": "Δεν υπάρχουν ακόμα σελίδες",
|
||||
"pages.status.draft": "Προσχέδια",
|
||||
"pages.status.listed": "Δημοσιευμένο",
|
||||
"pages.status.unlisted": "Μη καταχωρημένο",
|
||||
|
||||
"pagination.page": "Σελίδα",
|
||||
"pagination.page": "Page",
|
||||
|
||||
"password": "\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2",
|
||||
"password": "Password",
|
||||
"paste": "Paste",
|
||||
"paste.after": "Paste after",
|
||||
"pixel": "Εικονοστοιχέιο",
|
||||
|
@ -466,12 +467,12 @@
|
|||
"preview": "Preview",
|
||||
"remove": "Αφαίρεση",
|
||||
"rename": "Μετονομασία",
|
||||
"replace": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7",
|
||||
"retry": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7",
|
||||
"revert": "\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7",
|
||||
"replace": "Replace",
|
||||
"retry": "Επανάληψη",
|
||||
"revert": "Αγνόηση",
|
||||
"revert.confirm": "Do you really want to <strong>delete all unsaved changes</strong>?",
|
||||
|
||||
"role": "\u03a1\u03cc\u03bb\u03bf\u03c2",
|
||||
"role": "Role",
|
||||
"role.admin.description": "The admin has all rights",
|
||||
"role.admin.title": "Admin",
|
||||
"role.all": "Όλα",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "This is a fallback role without any permissions",
|
||||
"role.nobody.title": "Nobody",
|
||||
|
||||
"save": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7",
|
||||
"save": "Save",
|
||||
"search": "Αναζήτηση",
|
||||
"search.min": "Enter {min} characters to search",
|
||||
"search.all": "Show all",
|
||||
|
@ -495,7 +496,7 @@
|
|||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Μέγεθος",
|
||||
"slug": "\u0395\u03c0\u03af\u03b8\u03b5\u03bc\u03b1 URL",
|
||||
"slug": "Επίθεμα URL",
|
||||
"sort": "Ταξινόμηση",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
|
@ -519,13 +520,13 @@
|
|||
"system.updateStatus.update": "Free update { version } available",
|
||||
"system.updateStatus.upgrade": "Upgrade { version } available",
|
||||
|
||||
"title": "Τίτλος",
|
||||
"template": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf",
|
||||
"title": "Title",
|
||||
"template": "Template",
|
||||
"today": "Σήμερα",
|
||||
|
||||
"toolbar.button.code": "Κώδικας",
|
||||
"toolbar.button.bold": "\u0388\u03bd\u03c4\u03bf\u03bd\u03b7 \u03b3\u03c1\u03b1\u03c6\u03ae",
|
||||
"toolbar.button.email": "Email",
|
||||
"toolbar.button.bold": "Έντονη γραφή",
|
||||
"toolbar.button.email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
|
||||
"toolbar.button.headings": "Επικεφαλίδες",
|
||||
"toolbar.button.heading.1": "Επικεφαλίδα 1",
|
||||
"toolbar.button.heading.2": "Επικεφαλίδα 2",
|
||||
|
@ -533,11 +534,11 @@
|
|||
"toolbar.button.heading.4": "Heading 4",
|
||||
"toolbar.button.heading.5": "Heading 5",
|
||||
"toolbar.button.heading.6": "Heading 6",
|
||||
"toolbar.button.italic": "\u03a0\u03bb\u03ac\u03b3\u03b9\u03b1 \u03b3\u03c1\u03b1\u03c6\u03ae",
|
||||
"toolbar.button.italic": "Πλάγια γραφή",
|
||||
"toolbar.button.file": "Αρχείο",
|
||||
"toolbar.button.file.select": "Select a file",
|
||||
"toolbar.button.file.upload": "Upload a file",
|
||||
"toolbar.button.link": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2",
|
||||
"toolbar.button.link": "Σύνδεσμος",
|
||||
"toolbar.button.paragraph": "Paragraph",
|
||||
"toolbar.button.strike": "Strike-through",
|
||||
"toolbar.button.ol": "Ταξινομημένη λίστα",
|
||||
|
@ -546,7 +547,7 @@
|
|||
|
||||
"translation.author": "Ομάδα Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
|
||||
"translation.name": "Ελληνικά",
|
||||
"translation.locale": "el_GR",
|
||||
|
||||
"upload": "Μεταφόρτωση",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"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.errors": "Σφάλμα",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Μεταφόρτωση...",
|
||||
|
||||
"url": "Διεύθινση url",
|
||||
|
@ -573,28 +574,28 @@
|
|||
"user.changeLanguage": "Αλλαγή γλώσσας",
|
||||
"user.changeName": "Μετονομασία χρήστη",
|
||||
"user.changePassword": "Αλλαγή κωδικού πρόσβασης",
|
||||
"user.changePassword.new": "Νέος Κωδικός Πρόσβασης",
|
||||
"user.changePassword.new": "New password",
|
||||
"user.changePassword.new.confirm": "Επαληθεύση κωδικού πρόσβασης",
|
||||
"user.changeRole": "Αλλαγή ρόλου",
|
||||
"user.changeRole.select": "Επιλογή νέου ρόλου",
|
||||
"user.create": "Προσθήκη νέου χρήστη",
|
||||
"user.create": "Add a new user",
|
||||
"user.delete": "Διαγραφή χρήστη",
|
||||
"user.delete.confirm": "\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7;",
|
||||
"user.delete.confirm": "Θέλετε σίγουρα να διαγράψετε αυτόν τον χρήστη;",
|
||||
|
||||
"users": "Χρήστες",
|
||||
"users": "Users",
|
||||
|
||||
"version": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7 Kirby",
|
||||
"version": "Έκδοση Kirby",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
|
||||
"view.account": "\u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 \u03c3\u03b1\u03c2",
|
||||
"view.installation": "\u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7",
|
||||
"view.account": "Your account",
|
||||
"view.installation": "Installation",
|
||||
"view.languages": "Γλώσσες",
|
||||
"view.resetPassword": "Reset password",
|
||||
"view.site": "Iστοσελίδα",
|
||||
"view.system": "System",
|
||||
"view.users": "\u03a7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2",
|
||||
"view.users": "Users",
|
||||
|
||||
"welcome": "Καλώς ήρθατε",
|
||||
"year": "Έτος",
|
||||
|
|
|
@ -106,9 +106,12 @@
|
|||
"error.form.notSaved": "The form could not be saved",
|
||||
|
||||
"error.language.code": "Please enter a valid code for the language",
|
||||
"error.language.create.permission": "You are not allowed to create a language",
|
||||
"error.language.delete.permission": "You are not allowed to delete the language",
|
||||
"error.language.duplicate": "The language already exists",
|
||||
"error.language.name": "Please enter a valid name for the language",
|
||||
"error.language.notFound": "The language could not be found",
|
||||
"error.language.update.permission": "You are not allowed to update the language",
|
||||
|
||||
"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",
|
||||
|
@ -183,6 +186,7 @@
|
|||
"error.user.email.invalid": "Please enter a valid email address",
|
||||
"error.user.language.invalid": "Please enter a valid language",
|
||||
"error.user.notFound": "The user \"{name}\" cannot be found",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Please enter a valid password. Passwords must be at least 8 characters long.",
|
||||
"error.user.password.notSame": "The passwords do not match",
|
||||
"error.user.password.undefined": "The user does not have a password",
|
||||
|
@ -502,6 +506,7 @@
|
|||
"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.eol.php": "Your installed PHP release { release } 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",
|
||||
|
|
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Bonvolu entajpi validan retpoŝtadreson",
|
||||
"error.user.language.invalid": "Bonvolu entajpi validan lingvon",
|
||||
"error.user.notFound": "La uzanto \"{name}\" ne troveblas",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Bonvolu entajpi validan pasvorton. Pasvortoj devas esti almenaŭ 8 literojn longaj.",
|
||||
"error.user.password.notSame": "La pasvortoj ne estas kongruantaj",
|
||||
"error.user.password.undefined": "La uzanto ne havas pasvorton",
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"account.delete": "Eliminar cuenta",
|
||||
"account.delete.confirm": "¿Realmente quieres eliminar tu cuenta? Tu sesión se cerrará inmediatamente. Tu cuenta no podrá ser recuperada. ",
|
||||
|
||||
"add": "Agregar",
|
||||
"add": "Add",
|
||||
"author": "Autor",
|
||||
"avatar": "Foto de perfil",
|
||||
"back": "Regresar",
|
||||
"cancel": "Cancelar",
|
||||
"avatar": "Profile picture",
|
||||
"back": "Back",
|
||||
"cancel": "Cancel",
|
||||
"change": "Cambiar",
|
||||
"close": "Cerrar",
|
||||
"close": "Close",
|
||||
"confirm": "De acuerdo",
|
||||
"collapse": "Colapsar",
|
||||
"collapse.all": "Colapsar todos",
|
||||
|
@ -17,17 +17,17 @@
|
|||
"copy.all": "Copiar todo",
|
||||
"create": "Crear",
|
||||
|
||||
"date": "Fecha",
|
||||
"date": "Date",
|
||||
"date.select": "Selecciona una fecha",
|
||||
|
||||
"day": "Día",
|
||||
"days.fri": "Vie",
|
||||
"days.mon": "Lun",
|
||||
"days.sat": "S\u00e1b",
|
||||
"days.mon": "Mon",
|
||||
"days.sat": "Sáb",
|
||||
"days.sun": "Dom",
|
||||
"days.thu": "Jue",
|
||||
"days.tue": "Mar",
|
||||
"days.wed": "Mi\u00e9",
|
||||
"days.thu": "Thu",
|
||||
"days.tue": "Tue",
|
||||
"days.wed": "Mi",
|
||||
|
||||
"debugging": "Depuración",
|
||||
|
||||
|
@ -40,11 +40,11 @@
|
|||
|
||||
"dimensions": "Dimensiones",
|
||||
"disabled": "Deshabilitado",
|
||||
"discard": "Descartar",
|
||||
"discard": "Discard",
|
||||
"download": "Descargar",
|
||||
"duplicate": "Duplicar",
|
||||
|
||||
"edit": "Editar",
|
||||
"edit": "Edit",
|
||||
|
||||
"email": "Correo Electrónico",
|
||||
"email.placeholder": "correo@ejemplo.com",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"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",
|
||||
"error.page.undefined": "La página no fue encontrada",
|
||||
"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}\"",
|
||||
|
@ -176,15 +176,16 @@
|
|||
"error.user.changeRole.toAdmin": "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",
|
||||
"error.user.delete.lastAdmin": "Usted no puede borrar el último administrador",
|
||||
"error.user.delete.lastUser": "El último usuario no puede ser borrado",
|
||||
"error.user.delete.permission": "Usted no tiene permitido borrar este usuario",
|
||||
"error.user.duplicate": "Ya existe un usuario con el email \"{email}\"",
|
||||
"error.user.email.invalid": "Por favor ingresa un correo electrónico valido",
|
||||
"error.user.language.invalid": "Por favor ingresa un idioma valido",
|
||||
"error.user.notFound": "El usuario no pudo ser encontrado",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Por favor ingresa una contraseña valida. Las contraseñas deben tener al menos 8 caracteres de largo.",
|
||||
"error.user.password.notSame": "Por favor confirma la contrase\u00f1a",
|
||||
"error.user.password.notSame": "Por favor confirma la contraseña",
|
||||
"error.user.password.undefined": "El usuario no tiene contraseña",
|
||||
"error.user.password.wrong": "Contraseña incorrecta",
|
||||
"error.user.role.invalid": "Por favor ingresa un rol valido",
|
||||
|
@ -291,17 +292,17 @@
|
|||
|
||||
"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": "¿En realidad desea borrar esta entrada?",
|
||||
"field.structure.delete.confirm.all": "¿Realmente quieres eliminar todas las entradas?",
|
||||
"field.structure.empty": "A\u00fan no existen entradas.",
|
||||
"field.structure.empty": "Aún no existen entradas.",
|
||||
|
||||
"field.users.empty": "Aún no ha seleccionado ningún usuario",
|
||||
|
||||
"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.delete.confirm": "¿Estás seguro que deseas eliminar este archivo?",
|
||||
"file.sort": "Cambiar posición",
|
||||
|
||||
"files": "Archivos",
|
||||
"files": "Files",
|
||||
"files.empty": "Aún no existen archivos",
|
||||
|
||||
"hide": "Ocultar",
|
||||
|
@ -372,7 +373,7 @@
|
|||
"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ón",
|
||||
"login": "Log in",
|
||||
"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",
|
||||
|
@ -388,7 +389,7 @@
|
|||
"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",
|
||||
"logout": "Log out",
|
||||
|
||||
"menu": "Menù",
|
||||
"meridiem": "AM/PM",
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "Minutos",
|
||||
|
||||
"month": "Mes",
|
||||
"months.april": "Abril",
|
||||
"months.august": "Agosto",
|
||||
"months.april": "April",
|
||||
"months.august": "August",
|
||||
"months.december": "Diciembre",
|
||||
"months.february": "Febrero",
|
||||
"months.january": "Enero",
|
||||
"months.july": "Julio",
|
||||
"months.june": "Junio",
|
||||
"months.march": "Marzo",
|
||||
"months.may": "Mayo",
|
||||
"months.january": "January",
|
||||
"months.july": "July",
|
||||
"months.june": "June",
|
||||
"months.march": "March",
|
||||
"months.may": "May",
|
||||
"months.november": "Noviembre",
|
||||
"months.october": "Octubre",
|
||||
"months.september": "Septiembre",
|
||||
"months.october": "October",
|
||||
"months.september": "September",
|
||||
|
||||
"more": "Màs",
|
||||
"name": "Nombre",
|
||||
|
@ -426,8 +427,8 @@
|
|||
"orientation.square": "Diapositiva",
|
||||
|
||||
"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.changeSlug": "Change URL",
|
||||
"page.changeSlug.fromTitle": "Crear en base al título",
|
||||
"page.changeStatus": "Cambiar estado",
|
||||
"page.changeStatus.position": "Por favor selecciona una posición",
|
||||
"page.changeStatus.select": "Selecciona un nuevo estado",
|
||||
|
@ -448,15 +449,15 @@
|
|||
"page.status.unlisted": "No publicada",
|
||||
"page.status.unlisted.description": "La página sólo es accesible vía URL",
|
||||
|
||||
"pages": "Páginas",
|
||||
"pages": "Paginas",
|
||||
"pages.empty": "No hay páginas aún",
|
||||
"pages.status.draft": "Borradores",
|
||||
"pages.status.listed": "Publicado",
|
||||
"pages.status.unlisted": "No publicado",
|
||||
"pages.status.unlisted": "No publicada",
|
||||
|
||||
"pagination.page": "Página",
|
||||
|
||||
"password": "Contrase\u00f1a",
|
||||
"password": "Password",
|
||||
"paste": "Pegar",
|
||||
"paste.after": "Pegar después",
|
||||
"pixel": "Pixel",
|
||||
|
@ -466,7 +467,7 @@
|
|||
"preview": "Previsualizar",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Renombrar",
|
||||
"replace": "Reemplazar",
|
||||
"replace": "Remplazar",
|
||||
"retry": "Reintentar",
|
||||
"revert": "Revertir",
|
||||
"revert.confirm": "¿Realmente quieres <strong>eliminar todos los cambios sin guardar</strong>?",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "Este es un rol alternativo sin permisos",
|
||||
"role.nobody.title": "Nadie",
|
||||
|
||||
"save": "Guardar",
|
||||
"save": "Save",
|
||||
"search": "Buscar",
|
||||
"search.min": "Introduce {min} caracteres para buscar",
|
||||
"search.all": "Mostrar todo",
|
||||
|
@ -520,12 +521,12 @@
|
|||
"system.updateStatus.upgrade": "Actualización {versión} disponible",
|
||||
|
||||
"title": "Título",
|
||||
"template": "Plantilla",
|
||||
"template": "Template",
|
||||
"today": "Hoy",
|
||||
|
||||
"toolbar.button.code": "Código",
|
||||
"toolbar.button.bold": "Negrita",
|
||||
"toolbar.button.email": "Email",
|
||||
"toolbar.button.email": "Correo Electrónico",
|
||||
"toolbar.button.headings": "Encabezados",
|
||||
"toolbar.button.heading.1": "Encabezado 1",
|
||||
"toolbar.button.heading.2": "Encabezado 2",
|
||||
|
@ -533,7 +534,7 @@
|
|||
"toolbar.button.heading.4": "Encabezado 4",
|
||||
"toolbar.button.heading.5": "Encabezado 5",
|
||||
"toolbar.button.heading.6": "Encabezado 6",
|
||||
"toolbar.button.italic": "Texto en It\u00e1licas",
|
||||
"toolbar.button.italic": "Texto en Itálicas",
|
||||
"toolbar.button.file": "Archivo",
|
||||
"toolbar.button.file.select": "Selecciona un archivo",
|
||||
"toolbar.button.file.upload": "Sube un archivo",
|
||||
|
@ -573,11 +574,11 @@
|
|||
"user.changeLanguage": "Cambiar idioma",
|
||||
"user.changeName": "Renombrar este usuario",
|
||||
"user.changePassword": "Cambiar la contraseña",
|
||||
"user.changePassword.new": "Nueva contraseña",
|
||||
"user.changePassword.new": "New password",
|
||||
"user.changePassword.new.confirm": "Confirma la nueva contraseña...",
|
||||
"user.changeRole": "Cambiar rol",
|
||||
"user.changeRole.select": "Selecciona un nuevo rol",
|
||||
"user.create": "Agregar un nuevo usuario",
|
||||
"user.create": "Añadir un nuevo usuario",
|
||||
"user.delete": "Eliminar este usuario",
|
||||
"user.delete.confirm": "¿Estás seguro que deseas eliminar <br><strong>{email}</strong>?",
|
||||
|
||||
|
@ -589,7 +590,7 @@
|
|||
"versionInformation": "información sobre la versión",
|
||||
|
||||
"view.account": "Tu cuenta",
|
||||
"view.installation": "Instalaci\u00f3n",
|
||||
"view.installation": "Instalación",
|
||||
"view.languages": "Idiomas",
|
||||
"view.resetPassword": "Restablecer contraseña",
|
||||
"view.site": "Sitio",
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"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",
|
||||
"add": "Add",
|
||||
"author": "Autor",
|
||||
"avatar": "Foto de perfil",
|
||||
"back": "Atrás",
|
||||
"cancel": "Cancelar",
|
||||
"avatar": "Profile picture",
|
||||
"back": "Back",
|
||||
"cancel": "Cancel",
|
||||
"change": "Cambiar",
|
||||
"close": "Cerrar",
|
||||
"close": "Close",
|
||||
"confirm": "Confirmar",
|
||||
"collapse": "Colapsar",
|
||||
"collapse.all": "Colapsar todo",
|
||||
|
@ -17,16 +17,16 @@
|
|||
"copy.all": "Copiar todo",
|
||||
"create": "Crear",
|
||||
|
||||
"date": "Fecha",
|
||||
"date": "Date",
|
||||
"date.select": "Selecciona una fecha",
|
||||
|
||||
"day": "Día",
|
||||
"days.fri": "Vi",
|
||||
"days.mon": "Lu",
|
||||
"days.fri": "Vie",
|
||||
"days.mon": "Mon",
|
||||
"days.sat": "Sá",
|
||||
"days.sun": "Do",
|
||||
"days.thu": "Ju",
|
||||
"days.tue": "Ma",
|
||||
"days.sun": "Dom",
|
||||
"days.thu": "Thu",
|
||||
"days.tue": "Tue",
|
||||
"days.wed": "Mi",
|
||||
|
||||
"debugging": "Depuración",
|
||||
|
@ -40,11 +40,11 @@
|
|||
|
||||
"dimensions": "Dimensiones",
|
||||
"disabled": "Desabilitado",
|
||||
"discard": "Descartar",
|
||||
"discard": "Discard",
|
||||
"download": "Descargar",
|
||||
"duplicate": "Duplicar",
|
||||
|
||||
"edit": "Editar",
|
||||
"edit": "Edit",
|
||||
|
||||
"email": "Correo electrónico",
|
||||
"email.placeholder": "correo@ejemplo.com",
|
||||
|
@ -180,9 +180,10 @@
|
|||
"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.email.invalid": "Por favor, introduce un correo electrónico válido",
|
||||
"error.user.language.invalid": "Por favor, introduce un idioma válido",
|
||||
"error.user.notFound": "No se puede encontrar el usuario \"{name}\"",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"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",
|
||||
|
@ -301,7 +302,7 @@
|
|||
"file.delete.confirm": "¿Realmente quieres eliminar <br><strong>{filename}</strong>?",
|
||||
"file.sort": "Cambiar posición",
|
||||
|
||||
"files": "Archivos",
|
||||
"files": "Files",
|
||||
"files.empty": "Aún no hay archivos",
|
||||
|
||||
"hide": "Ocultar",
|
||||
|
@ -360,7 +361,7 @@
|
|||
"license.unregistered.label": "No registrado",
|
||||
|
||||
"link": "Enlace",
|
||||
"link.text": "Texto del enlace",
|
||||
"link.text": "Texto de Enlace",
|
||||
|
||||
"loading": "Cargando",
|
||||
|
||||
|
@ -372,7 +373,7 @@
|
|||
"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ón",
|
||||
"login": "Log in",
|
||||
"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",
|
||||
|
@ -388,7 +389,7 @@
|
|||
"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",
|
||||
"logout": "Log out",
|
||||
|
||||
"menu": "Menu",
|
||||
"meridiem": "AM/PM",
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "Minutos",
|
||||
|
||||
"month": "Mes",
|
||||
"months.april": "Abril",
|
||||
"months.august": "Agosto",
|
||||
"months.april": "April",
|
||||
"months.august": "August",
|
||||
"months.december": "Diciembre",
|
||||
"months.february": "Febrero",
|
||||
"months.january": "Enero",
|
||||
"months.july": "Julio",
|
||||
"months.june": "Junio",
|
||||
"months.march": "Marzo",
|
||||
"months.may": "Mayo",
|
||||
"months.january": "January",
|
||||
"months.july": "July",
|
||||
"months.june": "June",
|
||||
"months.march": "March",
|
||||
"months.may": "May",
|
||||
"months.november": "Noviembre",
|
||||
"months.october": "Octubre",
|
||||
"months.september": "Septiembre",
|
||||
"months.october": "October",
|
||||
"months.september": "September",
|
||||
|
||||
"more": "Más",
|
||||
"name": "Nombre",
|
||||
|
@ -426,7 +427,7 @@
|
|||
"orientation.square": "Cuadrado",
|
||||
|
||||
"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": "Change URL",
|
||||
"page.changeSlug.fromTitle": "Crear en base al título",
|
||||
"page.changeStatus": "Cambiar estado",
|
||||
"page.changeStatus.position": "Por favor, selecciona una posición",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "Página",
|
||||
|
||||
"password": "Contraseña",
|
||||
"password": "Password",
|
||||
"paste": "Pegar",
|
||||
"paste.after": "Pegar después",
|
||||
"pixel": "Pixel",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "Este es un rol alternativo sin permisos",
|
||||
"role.nobody.title": "Nadie",
|
||||
|
||||
"save": "Guardar",
|
||||
"save": "Save",
|
||||
"search": "Buscar",
|
||||
"search.min": "Introduce {min} caracteres para buscar",
|
||||
"search.all": "Mostrar todo",
|
||||
|
@ -520,7 +521,7 @@
|
|||
"system.updateStatus.upgrade": "Actualización {versión} disponible",
|
||||
|
||||
"title": "Título",
|
||||
"template": "Plantilla",
|
||||
"template": "Template",
|
||||
"today": "Hoy",
|
||||
|
||||
"toolbar.button.code": "Código",
|
||||
|
@ -573,7 +574,7 @@
|
|||
"user.changeLanguage": "Cambiar idioma",
|
||||
"user.changeName": "Renombrar a este usuario",
|
||||
"user.changePassword": "Cambiar contraseña",
|
||||
"user.changePassword.new": "Nueva contraseña",
|
||||
"user.changePassword.new": "New password",
|
||||
"user.changePassword.new.confirm": "Confirmar nueva contraseña…",
|
||||
"user.changeRole": "Cambiar rol",
|
||||
"user.changeRole.select": "Seleccionar un nuevo rol",
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"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.",
|
||||
|
||||
"add": "\u0627\u0641\u0632\u0648\u062f\u0646",
|
||||
"add": "افزودن",
|
||||
"author": "Author",
|
||||
"avatar": "\u062a\u0635\u0648\u06cc\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644",
|
||||
"avatar": "تصویر پروفایل",
|
||||
"back": "بازگشت",
|
||||
"cancel": "\u0627\u0646\u0635\u0631\u0627\u0641",
|
||||
"change": "\u0627\u0635\u0644\u0627\u062d",
|
||||
"close": "\u0628\u0633\u062a\u0646",
|
||||
"cancel": "انصراف",
|
||||
"change": "اصلاح",
|
||||
"close": "بستن",
|
||||
"confirm": "تایید",
|
||||
"collapse": "Collapse",
|
||||
"collapse.all": "Collapse All",
|
||||
|
@ -21,17 +21,17 @@
|
|||
"date.select": "یک تاریخ را انتخاب کنید",
|
||||
|
||||
"day": "روز",
|
||||
"days.fri": "\u062c\u0645\u0639\u0647",
|
||||
"days.mon": "\u062f\u0648\u0634\u0646\u0628\u0647",
|
||||
"days.sat": "\u0634\u0646\u0628\u0647",
|
||||
"days.sun": "\u06cc\u06a9\u0634\u0646\u0628\u0647",
|
||||
"days.thu": "\u067e\u0646\u062c\u0634\u0646\u0628\u0647",
|
||||
"days.tue": "\u0633\u0647 \u0634\u0646\u0628\u0647",
|
||||
"days.wed": "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647",
|
||||
"days.fri": "جمعه",
|
||||
"days.mon": "دوشنبه",
|
||||
"days.sat": "شنبه",
|
||||
"days.sun": "یکشنبه",
|
||||
"days.thu": "پنجشنبه",
|
||||
"days.tue": "سه شنبه",
|
||||
"days.wed": "چهارشنبه",
|
||||
|
||||
"debugging": "Debugging",
|
||||
|
||||
"delete": "\u062d\u0630\u0641",
|
||||
"delete": "حذف",
|
||||
"delete.all": "Delete all",
|
||||
|
||||
"dialog.files.empty": "No files to select",
|
||||
|
@ -40,13 +40,13 @@
|
|||
|
||||
"dimensions": "ابعاد",
|
||||
"disabled": "Disabled",
|
||||
"discard": "\u0627\u0646\u0635\u0631\u0627\u0641",
|
||||
"discard": "انصراف",
|
||||
"download": "Download",
|
||||
"duplicate": "Duplicate",
|
||||
|
||||
"edit": "\u0648\u06cc\u0631\u0627\u06cc\u0634",
|
||||
"edit": "ویرایش",
|
||||
|
||||
"email": "\u067e\u0633\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9",
|
||||
"email": "پست الکترونیک",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"error.access.view": "You are not allowed to access this part of the panel",
|
||||
|
||||
"error.avatar.create.fail": "بارگزاری تصویر پروفایل موفق نبود",
|
||||
"error.avatar.delete.fail": "\u062a\u0635\u0648\u06cc\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0646\u0645\u06cc\u062a\u0648\u0627\u0646 \u062d\u0630\u0641 \u06a9\u0631\u062f",
|
||||
"error.avatar.delete.fail": "تصویر پروفایل را نمیتوان حذف کرد",
|
||||
"error.avatar.dimensions.invalid": "لطفا طول و عرض تصویر پروفایل را زیر 3000 پیکسل انتخاب کنید",
|
||||
"error.avatar.mime.forbidden": "تصویر پروفایل باید از نوع JPEG یا PNG باشد",
|
||||
|
||||
|
@ -84,7 +84,7 @@
|
|||
"error.file.duplicate": "فایلی هم نام با «{filename}» هم اکنون موجود است",
|
||||
"error.file.extension.forbidden": "پسوند فایل «{extension}» غیرمجاز است",
|
||||
"error.file.extension.invalid": "Invalid extension: {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.extension.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",
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
|
||||
"error.file.type.forbidden": "شما اجازه بارگذاری فایلهای «{type}» را ندارید",
|
||||
"error.file.type.invalid": "Invalid file type: {type}",
|
||||
"error.file.undefined": "\u0641\u0627\u06cc\u0644 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f.",
|
||||
"error.file.undefined": "فایل مورد نظر پیدا نشد.",
|
||||
|
||||
"error.form.incomplete": "لطفا کلیه خطاهای فرم را برطرف کنید",
|
||||
"error.form.notSaved": "امکان دخیره فرم وجود ندارد",
|
||||
|
@ -114,7 +114,7 @@
|
|||
"error.layout.validation.settings": "There's an error in layout {index} settings",
|
||||
|
||||
"error.license.format": "Please enter a valid license key",
|
||||
"error.license.email": "لطفا ایمیل صحیحی وارد کنید",
|
||||
"error.license.email": "لطفا یک ایمیل معتبر وارد کنید",
|
||||
"error.license.verification": "The license could not be verified",
|
||||
|
||||
"error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
|
||||
|
@ -176,15 +176,16 @@
|
|||
"error.user.changeRole.toAdmin": "You are not allowed to promote someone to the admin role",
|
||||
"error.user.create.permission": "شما اجازه ایجاد این کاربر را ندارید",
|
||||
"error.user.delete": "کاربر «{name}» نمی تواند حذف شود",
|
||||
"error.user.delete.lastAdmin": "\u062d\u0630\u0641 \u0622\u062e\u0631\u06cc\u0646 \u0645\u062f\u06cc\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0645\u06a9\u0646 \u0646\u06cc\u0633\u062a",
|
||||
"error.user.delete.lastAdmin": "حذف آخرین مدیر سیستم ممکن نیست",
|
||||
"error.user.delete.lastUser": "حذف آخرین کاربر ممکن نیست",
|
||||
"error.user.delete.permission": "شما اجازه حذف کاربر «{name}» را ندارید",
|
||||
"error.user.duplicate": "کاربری با ایمیل «{email}» هم اکنون موجود است",
|
||||
"error.user.email.invalid": "لطفا یک ایمیل معتبر وارد کنید",
|
||||
"error.user.language.invalid": "لطفا زبان معتبری انتخاب کنید",
|
||||
"error.user.notFound": "کاربر «{name}» پیدا نشد",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "لطفا گذرواژه صحیحی با حداقل طول 8 حرف وارد کنید. ",
|
||||
"error.user.password.notSame": "\u0644\u0637\u0641\u0627 \u062a\u06a9\u0631\u0627\u0631 \u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u0646\u0645\u0627\u06cc\u06cc\u062f",
|
||||
"error.user.password.notSame": "لطفا تکرار گذرواژه را وارد نمایید",
|
||||
"error.user.password.undefined": "کاربر فاقد گذرواژه است",
|
||||
"error.user.password.wrong": "Wrong password",
|
||||
"error.user.role.invalid": "لطفا نقش صحیحی وارد نمایید",
|
||||
|
@ -203,7 +204,7 @@
|
|||
"error.validation.date.between": "Please enter a date between {min} and {max}",
|
||||
"error.validation.denied": "لطفا رد کنید",
|
||||
"error.validation.different": "مقدار نباید مساوی «{other}» باشد",
|
||||
"error.validation.email": "لطفا ایمیل صحیحی وارد کنید",
|
||||
"error.validation.email": "لطفا یک ایمیل معتبر وارد کنید",
|
||||
"error.validation.endswith": "مقدار باید با «{end}» ختم شود",
|
||||
"error.validation.filename": "لطفا نام فایل صحیحی وارد کنید",
|
||||
"error.validation.in": "لطفا یکی از مقادیر روبرو را وارد کنید: ({in})",
|
||||
|
@ -291,9 +292,9 @@
|
|||
|
||||
"field.pages.empty": "صفحهای انتخاب نشده است",
|
||||
|
||||
"field.structure.delete.confirm": "\u0645\u062f\u062e\u0644 \u062c\u0627\u0631\u06cc \u062d\u0630\u0641 \u0634\u0648\u062f\u061f",
|
||||
"field.structure.delete.confirm": "مدخل جاری حذف شود؟",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.empty": "\u0645\u0648\u0631\u062f\u06cc \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f.",
|
||||
"field.structure.empty": "موردی وجود ندارد.",
|
||||
|
||||
"field.users.empty": "کاربری انتخاب نشده است",
|
||||
|
||||
|
@ -308,7 +309,7 @@
|
|||
"hour": "ساعت",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "\u062f\u0631\u062c",
|
||||
"insert": "درج",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
"install": "نصب",
|
||||
|
@ -326,7 +327,7 @@
|
|||
"installation.issues.server": "کربی نیاز به <code>Apache</code>، <code>Nginx</code> یا <code>Caddy</code> دارد",
|
||||
"installation.issues.sessions": "پوشه <code>/site/sessions</code> وجود ندارد یا قابل نوشتن نیست",
|
||||
|
||||
"language": "\u0632\u0628\u0627\u0646",
|
||||
"language": "زبان",
|
||||
"language.code": "کد",
|
||||
"language.convert": "پیشفرض شود",
|
||||
"language.convert.confirm": "<p>آیا واقعا میخواهید <strong>{name}</strong> را به زبان پیشفرض تبدیل کنید؟ این عمل برگشت ناپذیر است.</p> <p>اگر <strong>{name}</strong> دارای محتوای غیر ترجمه شده باشد، جایگزین معتبر دیگری نخواهد بود و ممکن است بخشهایی از سایت شما خالی باشد.</p>",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"language.direction.rtl": "راست به چپ",
|
||||
"language.locale": "PHP locale string",
|
||||
"language.locale.warning": "You are using a custom locale set up. Please modify it in the language file in /site/languages",
|
||||
"language.name": "پارسی",
|
||||
"language.name": "نام",
|
||||
"language.updated": "زبان به روز شد",
|
||||
|
||||
"languages": "زبانها",
|
||||
|
@ -347,7 +348,7 @@
|
|||
"languages.secondary": "زبانهای ثانویه",
|
||||
"languages.secondary.empty": "هنوز هیچ زبان ثانویهای موجود نیست",
|
||||
|
||||
"license": "\u0645\u062c\u0648\u0632",
|
||||
"license": "مجوز",
|
||||
"license.buy": "خرید مجوز",
|
||||
"license.register": "ثبت",
|
||||
"license.manage": "Manage your licenses",
|
||||
|
@ -359,8 +360,8 @@
|
|||
"license.unregistered": "این یک نسخه آزمایشی ثبت نشده از کربی است",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "\u067e\u06cc\u0648\u0646\u062f",
|
||||
"link.text": "\u0645\u062a\u0646 \u067e\u06cc\u0648\u0646\u062f",
|
||||
"link": "پیوند",
|
||||
"link.text": "متن پیوند",
|
||||
|
||||
"loading": "بارگزاری",
|
||||
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "دقیقه",
|
||||
|
||||
"month": "ماه",
|
||||
"months.april": "\u0622\u0648\u0631\u06cc\u0644",
|
||||
"months.august": "\u0627\u0648\u062a",
|
||||
"months.december": "\u062f\u0633\u0627\u0645\u0628\u0631",
|
||||
"months.april": "آوریل",
|
||||
"months.august": "اوت",
|
||||
"months.december": "دسامبر",
|
||||
"months.february": "فوریه",
|
||||
"months.january": "\u0698\u0627\u0646\u0648\u06cc\u0647",
|
||||
"months.july": "\u0698\u0648\u0626\u06cc\u0647",
|
||||
"months.june": "\u0698\u0648\u0626\u0646",
|
||||
"months.march": "\u0645\u0627\u0631\u0633",
|
||||
"months.may": "\u0645\u06cc",
|
||||
"months.november": "\u0646\u0648\u0627\u0645\u0628\u0631",
|
||||
"months.october": "\u0627\u06a9\u062a\u0628\u0631",
|
||||
"months.september": "\u0633\u067e\u062a\u0627\u0645\u0628\u0631",
|
||||
"months.january": "ژانویه",
|
||||
"months.july": "ژوئیه",
|
||||
"months.june": "ژوئن",
|
||||
"months.march": "مارس",
|
||||
"months.may": "می",
|
||||
"months.november": "نوامبر",
|
||||
"months.october": "اکتبر",
|
||||
"months.september": "سپتامبر",
|
||||
|
||||
"more": "بیشتر",
|
||||
"name": "نام",
|
||||
|
@ -427,7 +428,7 @@
|
|||
|
||||
"page.blueprint": "This page has no blueprint yet. You can define the setup in <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "تغییر Url صفحه",
|
||||
"page.changeSlug.fromTitle": "\u0627\u06cc\u062c\u0627\u062f \u0627\u0632 \u0631\u0648\u06cc \u0639\u0646\u0648\u0627\u0646",
|
||||
"page.changeSlug.fromTitle": "ایجاد از روی عنوان",
|
||||
"page.changeStatus": "تغییر وضعیت",
|
||||
"page.changeStatus.position": "لطفا یک موقعیت را انتخاب کنید",
|
||||
"page.changeStatus.select": "یک وضعیت جدید را انتخاب کنید",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "صفحه",
|
||||
|
||||
"password": "\u06af\u0630\u0631\u0648\u0627\u0698\u0647",
|
||||
"password": "گذرواژه",
|
||||
"paste": "Paste",
|
||||
"paste.after": "Paste after",
|
||||
"pixel": "پیکسل",
|
||||
|
@ -466,12 +467,12 @@
|
|||
"preview": "Preview",
|
||||
"remove": "حذف",
|
||||
"rename": "تغییر نام",
|
||||
"replace": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc",
|
||||
"retry": "\u062a\u0644\u0627\u0634 \u0645\u062c\u062f\u062f",
|
||||
"replace": "جایگزینی",
|
||||
"retry": "تلاش مجدد",
|
||||
"revert": "بازگرداندن تغییرات",
|
||||
"revert.confirm": "Do you really want to <strong>delete all unsaved changes</strong>?",
|
||||
|
||||
"role": "\u0646\u0642\u0634",
|
||||
"role": "نقش",
|
||||
"role.admin.description": "The admin has all rights",
|
||||
"role.admin.title": "Admin",
|
||||
"role.all": "همه",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "This is a fallback role without any permissions",
|
||||
"role.nobody.title": "Nobody",
|
||||
|
||||
"save": "\u0630\u062e\u06cc\u0631\u0647",
|
||||
"save": "ذخیره",
|
||||
"search": "جستجو",
|
||||
"search.min": "Enter {min} characters to search",
|
||||
"search.all": "Show all",
|
||||
|
@ -520,12 +521,12 @@
|
|||
"system.updateStatus.upgrade": "Upgrade { version } available",
|
||||
|
||||
"title": "عنوان",
|
||||
"template": "\u0642\u0627\u0644\u0628 \u0635\u0641\u062d\u0647",
|
||||
"template": "قالب صفحه",
|
||||
"today": "امروز",
|
||||
|
||||
"toolbar.button.code": "کد",
|
||||
"toolbar.button.bold": "\u0645\u062a\u0646 \u0628\u0627 \u062d\u0631\u0648\u0641 \u062f\u0631\u0634\u062a",
|
||||
"toolbar.button.email": "\u067e\u0633\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9",
|
||||
"toolbar.button.bold": "متن با حروف درشت",
|
||||
"toolbar.button.email": "پست الکترونیک",
|
||||
"toolbar.button.headings": "عنوانها",
|
||||
"toolbar.button.heading.1": "عنوان 1",
|
||||
"toolbar.button.heading.2": "عنوان 2",
|
||||
|
@ -533,11 +534,11 @@
|
|||
"toolbar.button.heading.4": "Heading 4",
|
||||
"toolbar.button.heading.5": "Heading 5",
|
||||
"toolbar.button.heading.6": "Heading 6",
|
||||
"toolbar.button.italic": "\u0645\u062a\u0646 \u0627\u0631\u06cc\u0628",
|
||||
"toolbar.button.file": "فایل",
|
||||
"toolbar.button.italic": "متن اریب",
|
||||
"toolbar.button.file": "File",
|
||||
"toolbar.button.file.select": "Select a file",
|
||||
"toolbar.button.file.upload": "Upload a file",
|
||||
"toolbar.button.link": "\u067e\u06cc\u0648\u0646\u062f",
|
||||
"toolbar.button.link": "پیوند",
|
||||
"toolbar.button.paragraph": "Paragraph",
|
||||
"toolbar.button.strike": "Strike-through",
|
||||
"toolbar.button.ol": "لیست مرتب",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"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.errors": "خطا",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "در حال بارگذاری...",
|
||||
|
||||
"url": "Url",
|
||||
|
@ -583,18 +584,18 @@
|
|||
|
||||
"users": "کاربران",
|
||||
|
||||
"version": "\u0646\u0633\u062e\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631",
|
||||
"version": "نسخه نرم افزار",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
|
||||
"view.account": "حساب کاربری شما",
|
||||
"view.installation": "\u0646\u0635\u0628 \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc",
|
||||
"view.installation": "نصب و راه اندازی",
|
||||
"view.languages": "زبانها",
|
||||
"view.resetPassword": "Reset password",
|
||||
"view.site": "سایت",
|
||||
"view.system": "System",
|
||||
"view.users": "\u06a9\u0627\u0631\u0628\u0631\u0627\u0646",
|
||||
"view.users": "کاربران",
|
||||
|
||||
"welcome": "خوش آمدید",
|
||||
"year": "سال",
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"account.delete": "Poista tilisi",
|
||||
"account.delete.confirm": "Haluatko varmasti poistaa tilisi? Sinut kirjataan ulos välittömästi, eikä tiliäsi voi palauttaa.",
|
||||
|
||||
"add": "Lis\u00e4\u00e4",
|
||||
"add": "Lisää",
|
||||
"author": "Tekijä",
|
||||
"avatar": "Profiilikuva",
|
||||
"back": "Takaisin",
|
||||
|
@ -46,7 +46,7 @@
|
|||
|
||||
"edit": "Muokkaa",
|
||||
|
||||
"email": "S\u00e4hk\u00f6posti",
|
||||
"email": "Sähköposti",
|
||||
"email.placeholder": "nimi@osoite.fi",
|
||||
|
||||
"entries": "Entries",
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "Kuvan suuntaus täytyy olla \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Sinulla ei ole oikeutta lähettää tiedostoja joiden tyyppi on {type}",
|
||||
"error.file.type.invalid": "Tiedostotyyppi {type} ei kelpaa",
|
||||
"error.file.undefined": "Tiedostoa ei l\u00f6ytynyt",
|
||||
"error.file.undefined": "Tiedostoa ei löytynyt",
|
||||
|
||||
"error.form.incomplete": "Korjaa kaikki lomakkeen virheet…",
|
||||
"error.form.notSaved": "Lomaketta ei voitu tallentaa",
|
||||
|
@ -114,7 +114,7 @@
|
|||
"error.layout.validation.settings": "Virhe asetelman {index} asetuksissa",
|
||||
|
||||
"error.license.format": "Anna lisenssiavain",
|
||||
"error.license.email": "Anna sähköpostiosoite",
|
||||
"error.license.email": "Anna kelpaava sähköpostiosoite",
|
||||
"error.license.verification": "Lisenssiä ei voitu vahvistaa",
|
||||
|
||||
"error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "URL-liite täytyy olla vähemmän kuin \"{length}\" merkkiä pitkä",
|
||||
"error.page.sort.permission": "Sivua \"{slug}\" ei voi järjestellä",
|
||||
"error.page.status.invalid": "Aseta kelvollinen sivun tila",
|
||||
"error.page.undefined": "Sivua ei l\u00f6ytynyt",
|
||||
"error.page.undefined": "Sivua ei löytynyt",
|
||||
"error.page.update.permission": "Sinulla ei ole oikeutta päivittää sivua \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Et voi lisätä enemmän kuin {max} tiedostoa osioon \"{section}\"",
|
||||
|
@ -182,7 +182,8 @@
|
|||
"error.user.duplicate": "Käyttäjä, jonka sähköpostiosoite on \"{name}\", on jo olemassa",
|
||||
"error.user.email.invalid": "Anna kelpaava sähköpostiosoite",
|
||||
"error.user.language.invalid": "Anna kelpaava kieli",
|
||||
"error.user.notFound": "K\u00e4ytt\u00e4j\u00e4\u00e4 ei l\u00f6ytynyt",
|
||||
"error.user.notFound": "Käyttäjää ei löytynyt",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Anna kelpaava salasana. Salasanan täytyy olla ainakin 8 merkkiä pitkä.",
|
||||
"error.user.password.notSame": "Salasanat eivät täsmää",
|
||||
"error.user.password.undefined": "Käyttäjällä ei ole salasanaa",
|
||||
|
@ -237,7 +238,7 @@
|
|||
|
||||
"field.required": "Kenttä on pakollinen",
|
||||
"field.blocks.changeType": "Vaihda tyyppiä",
|
||||
"field.blocks.code.name": "Koodi",
|
||||
"field.blocks.code.name": "Tunniste",
|
||||
"field.blocks.code.language": "Kieli",
|
||||
"field.blocks.code.placeholder": "Koodisi …",
|
||||
"field.blocks.delete.confirm": "Haluatko varmasti poistaa tämän lohkon?",
|
||||
|
@ -274,7 +275,7 @@
|
|||
"field.blocks.quote.citation.placeholder": "Lähde …",
|
||||
"field.blocks.text.name": "Teksti",
|
||||
"field.blocks.text.placeholder": "Teksti …",
|
||||
"field.blocks.video.caption": "Videon teksti",
|
||||
"field.blocks.video.caption": "Kuvateksti",
|
||||
"field.blocks.video.name": "Video",
|
||||
"field.blocks.video.placeholder": "Anna videon URL",
|
||||
"field.blocks.video.url.label": "Videon URL",
|
||||
|
@ -308,7 +309,7 @@
|
|||
"hour": "Tunti",
|
||||
"import": "Tuo",
|
||||
"info": "Tietoja",
|
||||
"insert": "Lis\u00e4\u00e4",
|
||||
"insert": "Lisää",
|
||||
"insert.after": "Lisää eteen",
|
||||
"insert.before": "Lisää jälkeen",
|
||||
"install": "Asenna",
|
||||
|
@ -401,8 +402,8 @@
|
|||
"months.december": "Joulukuu",
|
||||
"months.february": "Helmikuu",
|
||||
"months.january": "Tammikuu",
|
||||
"months.july": "Hein\u00e4kuu",
|
||||
"months.june": "Kes\u00e4kuu",
|
||||
"months.july": "Heinäkuu",
|
||||
"months.june": "Kesäkuu",
|
||||
"months.march": "Maaliskuu",
|
||||
"months.may": "Toukokuu",
|
||||
"months.november": "Marraskuu",
|
||||
|
@ -454,7 +455,7 @@
|
|||
"pages.status.listed": "Julkaistut",
|
||||
"pages.status.unlisted": "Listaamaton",
|
||||
|
||||
"pagination.page": "Sivu",
|
||||
"pagination.page": "Page",
|
||||
|
||||
"password": "Salasana",
|
||||
"paste": "Liitä",
|
||||
|
@ -467,11 +468,11 @@
|
|||
"remove": "Poista",
|
||||
"rename": "Nimeä uudelleen",
|
||||
"replace": "Korvaa",
|
||||
"retry": "Yrit\u00e4 uudelleen",
|
||||
"retry": "Yritä uudelleen",
|
||||
"revert": "Palauta",
|
||||
"revert.confirm": "Haluatko varmasti <strong>poistaa kaikki tallentamattomat muutokset</strong>?",
|
||||
|
||||
"role": "K\u00e4ytt\u00e4j\u00e4taso",
|
||||
"role": "Käyttäjätaso",
|
||||
"role.admin.description": "Pääkäyttäjällä on kaikki oikeudet",
|
||||
"role.admin.title": "Pääkäyttäjä",
|
||||
"role.all": "Kaikki",
|
||||
|
@ -523,9 +524,9 @@
|
|||
"template": "Sivupohja",
|
||||
"today": "Tänään",
|
||||
|
||||
"toolbar.button.code": "Koodi",
|
||||
"toolbar.button.code": "Tunniste",
|
||||
"toolbar.button.bold": "Lihavointi",
|
||||
"toolbar.button.email": "S\u00e4hk\u00f6posti",
|
||||
"toolbar.button.email": "Sähköposti",
|
||||
"toolbar.button.headings": "Otsikot",
|
||||
"toolbar.button.heading.1": "Otsikko 1",
|
||||
"toolbar.button.heading.2": "Otsikko 2",
|
||||
|
@ -534,7 +535,7 @@
|
|||
"toolbar.button.heading.5": "Otsikko 5",
|
||||
"toolbar.button.heading.6": "Otsikko 6",
|
||||
"toolbar.button.italic": "Kursivointi",
|
||||
"toolbar.button.file": "Tiedosto",
|
||||
"toolbar.button.file": "File",
|
||||
"toolbar.button.file.select": "Valitse tiedosto",
|
||||
"toolbar.button.file.upload": "Lähetä tiedosto",
|
||||
"toolbar.button.link": "Linkki",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"upload.error.noFiles": "Tiedostoja ei lähetetty",
|
||||
"upload.error.partial": "Tiedoston lähetys onnistui vain osittain",
|
||||
"upload.error.tmpDir": "Väliaikainen hakemisto puuttuu",
|
||||
"upload.errors": "Virhe",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Lähetetään...",
|
||||
|
||||
"url": "Url",
|
||||
|
@ -594,7 +595,7 @@
|
|||
"view.resetPassword": "Aseta salasana",
|
||||
"view.site": "Sivusto",
|
||||
"view.system": "Järjestelmä",
|
||||
"view.users": "K\u00e4ytt\u00e4j\u00e4t",
|
||||
"view.users": "Käyttäjät",
|
||||
|
||||
"welcome": "Tervetuloa",
|
||||
"year": "Vuosi",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
"add": "Ajouter",
|
||||
"author": "Auteur",
|
||||
"avatar": "Image du profil",
|
||||
"avatar": "Photo de profil",
|
||||
"back": "Retour",
|
||||
"cancel": "Annuler",
|
||||
"change": "Changer",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"error.access.view": "Vous n’êtes pas autorisé à accéder à cette section du Panel",
|
||||
|
||||
"error.avatar.create.fail": "L’image du profil n’a pu être transférée",
|
||||
"error.avatar.delete.fail": "L’image du profil n’a pu être supprimée",
|
||||
"error.avatar.delete.fail": "La photo de profil n‘a pu être supprimée",
|
||||
"error.avatar.dimensions.invalid": "Veuillez choisir une image de profil de largeur et hauteur inférieures à 3000 pixels",
|
||||
"error.avatar.mime.forbidden": "L'image du profil utilisateur doit être un fichier JPEG ou PNG",
|
||||
|
||||
|
@ -70,27 +70,27 @@
|
|||
"error.blocks.max.singular": "Vous ne devez pas ajouter plus d'un bloc",
|
||||
"error.blocks.min.plural": "Vous devez ajouter au moins {min} blocs",
|
||||
"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.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.cache.type.invalid": "Type de cache invalide « {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": "Champ \"{ name }\" : Le type de champ \"{ type }\" n’existe pas",
|
||||
"error.field.converter.invalid": "Convertisseur « {converter} » invalide",
|
||||
"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} »",
|
||||
"error.file.duplicate": "Un fichier nommé « {filename} » existe déjà",
|
||||
"error.file.extension.forbidden": "L’extension « {extension} » n’est pas autorisée",
|
||||
"error.file.extension.invalid": "Extension non valide : {extension}",
|
||||
"error.file.extension.invalid": "Extension incorrecte : {extension}",
|
||||
"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 non valide : {mime}",
|
||||
"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",
|
||||
|
@ -99,25 +99,25 @@
|
|||
"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.type.invalid": "Type de fichier non valide : {type}",
|
||||
"error.file.type.invalid": "Type de fichier invalide : {type}",
|
||||
"error.file.undefined": "Le fichier n’a pu être trouvé",
|
||||
|
||||
"error.form.incomplete": "Veuillez corriger toutes les erreurs du formulaire…",
|
||||
"error.form.notSaved": "Le formulaire n’a pu être enregistré",
|
||||
|
||||
"error.language.code": "Veuillez saisir un code valide pour cette langue",
|
||||
"error.language.code": "Veuillez saisir un code correct pour cette langue",
|
||||
"error.language.duplicate": "Cette langue existe déjà",
|
||||
"error.language.name": "Veuillez saisir un nom valide pour cette langue",
|
||||
"error.language.name": "Veuillez saisir un nom correct pour cette langue",
|
||||
"error.language.notFound": "La langue n’a pu être trouvée",
|
||||
|
||||
"error.layout.validation.block": "Il y a une erreur sur le champ \"{field}\" du bloc {blockIndex} utilisant le type de bloc \"{fieldset}\" dans le layout {layoutIndex}.",
|
||||
"error.layout.validation.block": "Il y a une erreur sur le champ « {field} » du bloc {blockIndex} utilisant le type de bloc « {fieldset} » dans le layout {layoutIndex}.",
|
||||
"error.layout.validation.settings": "Il y a une erreur dans les paramètres de la disposition {index}",
|
||||
|
||||
"error.license.format": "Veuillez saisir un numéro de licence valide",
|
||||
"error.license.email": "Veuillez saisir un courriel valide",
|
||||
"error.license.format": "Veuillez saisir un numéro de licence correct",
|
||||
"error.license.email": "Veuillez saisir un courriel correct",
|
||||
"error.license.verification": "La licence n’a pu être vérifiée",
|
||||
|
||||
"error.object.validation": "Il y a une erreur dans le champ \"{label}\" :\n{message}",
|
||||
"error.object.validation": "Il y a une erreur dans le champ « {label} » :\n{message}",
|
||||
|
||||
"error.offline": "Le Panel est actuellement hors ligne",
|
||||
|
||||
|
@ -138,11 +138,11 @@
|
|||
"error.page.duplicate": "Une page avec l’identifiant d’URL « {slug} » existe déjà",
|
||||
"error.page.duplicate.permission": "Vous n'êtes pas autorisé à dupliquer « {slug} »",
|
||||
"error.page.notFound": "La page « {slug} » n’a pu être trouvée",
|
||||
"error.page.num.invalid": "Veuillez saisir un numéro de position valide. Les numéros ne doivent pas être négatifs.",
|
||||
"error.page.slug.invalid": "Veuillez entrer un identifiant d’URL valide",
|
||||
"error.page.num.invalid": "Veuillez saisir un numéro de position correct. Les numéros ne doivent pas être négatifs.",
|
||||
"error.page.slug.invalid": "Veuillez saisir un identifiant d’URL correct",
|
||||
"error.page.slug.maxlength": "L’identifiant d’URL doit faire moins de « {length} » caractères",
|
||||
"error.page.sort.permission": "La page « {slug} » ne peut être réordonnée",
|
||||
"error.page.status.invalid": "Veuillez choisir un statut de page valide",
|
||||
"error.page.status.invalid": "Veuillez choisir un statut de page correct",
|
||||
"error.page.undefined": "La page n’a pu être trouvée",
|
||||
"error.page.update.permission": "Vous n’êtes pas autorisé à modifier « {slug} »",
|
||||
|
||||
|
@ -180,14 +180,15 @@
|
|||
"error.user.delete.lastUser": "Le dernier utilisateur ne peut être supprimé",
|
||||
"error.user.delete.permission": "Vous n’êtes pas autorisé à supprimer l’utilisateur « {name} »",
|
||||
"error.user.duplicate": "Un utilisateur avec le courriel « {email} » existe déjà",
|
||||
"error.user.email.invalid": "Veuillez saisir un courriel valide",
|
||||
"error.user.language.invalid": "Veuillez saisir une langue valide",
|
||||
"error.user.email.invalid": "Veuillez saisir un courriel correct",
|
||||
"error.user.language.invalid": "Veuillez saisir une langue correcte",
|
||||
"error.user.notFound": "L’utilisateur « {name} » n’a pu être trouvé",
|
||||
"error.user.password.excessive": "Veuillez entrer un mot de passe valide. Les mots de passe ne doivent pas dépasser 1000 caractères de long.",
|
||||
"error.user.password.invalid": "Veuillez saisir un mot de passe valide. Les mots de passe doivent comporter au moins 8 caractères.",
|
||||
"error.user.password.notSame": "Les mots de passe ne sont pas identiques",
|
||||
"error.user.password.undefined": "Cet utilisateur n’a pas de mot de passe",
|
||||
"error.user.password.wrong": "Mot de passe incorrect",
|
||||
"error.user.role.invalid": "Veuillez saisir un rôle valide",
|
||||
"error.user.role.invalid": "Veuillez saisir un rôle correct",
|
||||
"error.user.undefined": "L’utilisateur n’a pu être trouvé",
|
||||
"error.user.update.permission": "Vous n’êtes pas autorisé à modifier l’utilisateur « {name} »",
|
||||
|
||||
|
@ -197,18 +198,18 @@
|
|||
"error.validation.between": "Veuillez saisir une valeur entre « {min} » et « {max} »",
|
||||
"error.validation.boolean": "Veuillez confirmer ou refuser",
|
||||
"error.validation.contains": "Veuillez saisir une valeur contenant « {needle} »",
|
||||
"error.validation.date": "Veuillez saisir une date valide",
|
||||
"error.validation.date": "Veuillez saisir une date correcte",
|
||||
"error.validation.date.after": "Veuillez saisir une date après {date}",
|
||||
"error.validation.date.before": "Veuillez saisir une date avant {date}",
|
||||
"error.validation.date.between": "Veuillez saisir une date entre {min} et {max}",
|
||||
"error.validation.denied": "Veuillez refuser",
|
||||
"error.validation.different": "La valeur ne doit pas être « {other} »",
|
||||
"error.validation.email": "Veuillez saisir un courriel valide",
|
||||
"error.validation.email": "Veuillez saisir un courriel correct",
|
||||
"error.validation.endswith": "La valeur doit se terminer par « {end} »",
|
||||
"error.validation.filename": "Veuillez saisir un nom de fichier valide",
|
||||
"error.validation.filename": "Veuillez saisir un nom de fichier correct",
|
||||
"error.validation.in": "Veuillez saisir l’un des éléments suivants: ({in})",
|
||||
"error.validation.integer": "Veuillez saisir un entier valide",
|
||||
"error.validation.ip": "Veuillez saisir une adresse IP valide",
|
||||
"error.validation.integer": "Veuillez saisir un entier correct",
|
||||
"error.validation.ip": "Veuillez saisir une adresse IP correcte",
|
||||
"error.validation.less": "Veuillez saisir une valeur inférieure à {max}",
|
||||
"error.validation.match": "La valeur ne correspond pas au modèle attendu",
|
||||
"error.validation.max": "Veuillez saisir une valeur inférieure ou égale à {max}",
|
||||
|
@ -220,17 +221,17 @@
|
|||
"error.validation.more": "Veuillez saisir une valeur supérieure à {min}",
|
||||
"error.validation.notcontains": "Veuillez saisir une valeur ne contenant pas « {needle} »",
|
||||
"error.validation.notin": "Veuillez ne saisir aucun des éléments suivants: ({notIn})",
|
||||
"error.validation.option": "Veuillez sélectionner une option valide",
|
||||
"error.validation.num": "Veuillez saisir un nombre valide",
|
||||
"error.validation.option": "Veuillez sélectionner une option correcte",
|
||||
"error.validation.num": "Veuillez saisir un nombre correct",
|
||||
"error.validation.required": "Veuillez saisir quelque chose",
|
||||
"error.validation.same": "Veuillez saisir « {other} »",
|
||||
"error.validation.size": "La grandeur de la valeur doit être « {size} »",
|
||||
"error.validation.startswith": "La valeur doit commencer par « {start} »",
|
||||
"error.validation.time": "Veuillez saisir une heure valide",
|
||||
"error.validation.time.after": "Veuillez entrer une heure après {time}",
|
||||
"error.validation.time.before": "Veuillez entrer une heure avant {time}",
|
||||
"error.validation.time.between": "Veuillez entrer une heure entre {min} et {max}",
|
||||
"error.validation.url": "Veuillez saisir une URL valide",
|
||||
"error.validation.time": "Veuillez saisir une heure correcte",
|
||||
"error.validation.time.after": "Veuillez saisir une heure après {time}",
|
||||
"error.validation.time.before": "Veuillez saisir une heure avant {time}",
|
||||
"error.validation.time.between": "Veuillez saisir une heure entre {min} et {max}",
|
||||
"error.validation.url": "Veuillez saisir une URL correcte",
|
||||
|
||||
"expand": "Déplier",
|
||||
"expand.all": "Tout déplier",
|
||||
|
@ -276,7 +277,7 @@
|
|||
"field.blocks.text.placeholder": "Texte…",
|
||||
"field.blocks.video.caption": "Légende",
|
||||
"field.blocks.video.name": "Vidéo",
|
||||
"field.blocks.video.placeholder": "Entrez l’URL d’une vidéo",
|
||||
"field.blocks.video.placeholder": "Saisissez l’URL d’une vidéo",
|
||||
"field.blocks.video.url.label": "URL de la vidéo",
|
||||
"field.blocks.video.url.placeholder": "https://youtube.com/?v=",
|
||||
|
||||
|
@ -341,7 +342,7 @@
|
|||
"language.name": "Nom",
|
||||
"language.updated": "La langue a été mise à jour",
|
||||
|
||||
"languages": "Langages",
|
||||
"languages": "Langues",
|
||||
"languages.default": "Langue par défaut",
|
||||
"languages.empty": "Il n’y a pas encore de langues",
|
||||
"languages.secondary": "Langues secondaires",
|
||||
|
@ -377,9 +378,9 @@
|
|||
"login.code.label.password-reset": "Code de réinitialisation du mot de passe",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
"login.code.text.email": "Si votre adresse de courriel est enregistrée, le code demandé vous sera envoyé par courriel.",
|
||||
"login.email.login.body": "Bonjour {user.nameOrEmail},\n\nVous avez récemment demandé un code de connexion pour le Panel de {site}.\nLe code de connexion suivant sera valide pendant {timeout} minutes :\n\n{code}\n\nSi vous n’avez pas demandé de code de connexion, veuillez ignorer cet email ou contacter votre administrateur si vous avez des questions.\nPar sécurité, merci de ne PAS faire suivre cet email.",
|
||||
"login.email.login.body": "Bonjour {user.nameOrEmail},\n\nVous avez récemment demandé un code de connexion pour le Panel de {site}.\nLe code de connexion suivant sera valable pendant {timeout} minutes :\n\n{code}\n\nSi vous n’avez pas demandé de code de connexion, veuillez ignorer cet email ou contacter votre administrateur si vous avez des questions.\nPar sécurité, merci de ne PAS faire suivre cet email.",
|
||||
"login.email.login.subject": "Votre code de connexion",
|
||||
"login.email.password-reset.body": "Bonjour {user.nameOrEmail},\n\nVous avez récemment demandé un code de réinitialisation de mot de passe pour le Panel de {site}.\nLe code de réinitialisation de mot de passe suivant sera valide pendant {timeout} minutes :\n\n{code}\n\nSi vous n’avez pas demandé de code de réinitialisation de mot de passe, veuillez ignorer cet email ou contacter votre administrateur si vous avez des questions.\nPar sécurité, merci de ne PAS faire suivre cet email.",
|
||||
"login.email.password-reset.body": "Bonjour {user.nameOrEmail},\n\nVous avez récemment demandé un code de réinitialisation de mot de passe pour le Panel de {site}.\nLe code de réinitialisation de mot de passe suivant sera valable pendant {timeout} minutes :\n\n{code}\n\nSi vous n’avez pas demandé de code de réinitialisation de mot de passe, veuillez ignorer cet email ou contacter votre administrateur si vous avez des questions.\nPar sécurité, merci de ne PAS faire suivre cet email.",
|
||||
"login.email.password-reset.subject": "Votre code de réinitialisation du mot de passe",
|
||||
"login.remember": "Rester connecté",
|
||||
"login.reset": "Réinitialiser le mot de passe",
|
||||
|
@ -442,11 +443,11 @@
|
|||
"page.sort": "Modifier la position",
|
||||
"page.status": "Statut",
|
||||
"page.status.draft": "Brouillon",
|
||||
"page.status.draft.description": "Cette page est un brouillon et n’est visible que pour les éditeurs connectés ou par un lien secret",
|
||||
"page.status.draft.description": "La page est accessible uniquement pour les éditeurs connectés ou via un lien secret",
|
||||
"page.status.listed": "Public",
|
||||
"page.status.listed.description": "La page est publique pour tout le monde",
|
||||
"page.status.listed.description": "La page est accessible par tout le monde",
|
||||
"page.status.unlisted": "Non listé",
|
||||
"page.status.unlisted.description": "La page est uniquement accessible par son URL",
|
||||
"page.status.unlisted.description": "La page est accessible uniquement par son URL",
|
||||
|
||||
"pages": "Pages",
|
||||
"pages.empty": "Pas encore de pages",
|
||||
|
@ -469,7 +470,7 @@
|
|||
"replace": "Remplacer",
|
||||
"retry": "Essayer à nouveau",
|
||||
"revert": "Revenir",
|
||||
"revert.confirm": "Voulez-vous vraiment <strong>supprimer toutes les modifications non-enregistrées</strong> ?",
|
||||
"revert.confirm": "Voulez-vous vraiment <strong>supprimer toutes les modifications non enregistrées</strong> ?",
|
||||
|
||||
"role": "Rôle",
|
||||
"role.admin.description": "L’administrateur dispose de tous les droits",
|
||||
|
@ -482,7 +483,7 @@
|
|||
|
||||
"save": "Enregistrer",
|
||||
"search": "Rechercher",
|
||||
"search.min": "Entrez {min} caractères pour rechercher",
|
||||
"search.min": "Saisissez {min} caractères pour rechercher",
|
||||
"search.all": "Tout afficher",
|
||||
"search.results.none": "Pas de résultats",
|
||||
|
||||
|
@ -590,7 +591,7 @@
|
|||
|
||||
"view.account": "Votre compte",
|
||||
"view.installation": "Installation",
|
||||
"view.languages": "Langages",
|
||||
"view.languages": "Langues",
|
||||
"view.resetPassword": "Réinitialiser le mot de passe",
|
||||
"view.site": "Site",
|
||||
"view.system": "Système",
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"account.delete": "Fiók törlése",
|
||||
"account.delete.confirm": "Tényleg törölni szeretnéd a fiókodat? Azonnal kijelentkeztetünk és ez a folyamat visszavonhatatlan.",
|
||||
|
||||
"add": "Hozz\u00e1ad",
|
||||
"add": "Hozzáad",
|
||||
"author": "Szerző",
|
||||
"avatar": "Profilkép",
|
||||
"back": "Vissza",
|
||||
"cancel": "M\u00e9gsem",
|
||||
"change": "M\u00f3dos\u00edt\u00e1s",
|
||||
"close": "Bez\u00e1r",
|
||||
"cancel": "Mégsem",
|
||||
"change": "Módosítás",
|
||||
"close": "Bezár",
|
||||
"confirm": "Mentés",
|
||||
"collapse": "Bezárás",
|
||||
"collapse.all": "Összes bezárása",
|
||||
|
@ -21,17 +21,17 @@
|
|||
"date.select": "Dátum kiválasztása",
|
||||
|
||||
"day": "Nap",
|
||||
"days.fri": "p\u00e9",
|
||||
"days.mon": "h\u00e9",
|
||||
"days.fri": "pé",
|
||||
"days.mon": "hé",
|
||||
"days.sat": "szo",
|
||||
"days.sun": "va",
|
||||
"days.thu": "cs\u00fc",
|
||||
"days.thu": "csü",
|
||||
"days.tue": "ke",
|
||||
"days.wed": "sze",
|
||||
|
||||
"debugging": "Hibakeresés",
|
||||
|
||||
"delete": "T\u00f6rl\u00e9s",
|
||||
"delete": "Törlés",
|
||||
"delete.all": "Összes törlése",
|
||||
|
||||
"dialog.files.empty": "Nincsenek fájlok kiválasztva",
|
||||
|
@ -40,11 +40,11 @@
|
|||
|
||||
"dimensions": "Méretek",
|
||||
"disabled": "Inaktív",
|
||||
"discard": "Visszavon\u00e1s",
|
||||
"discard": "Visszavonás",
|
||||
"download": "Letöltés",
|
||||
"duplicate": "Másolat",
|
||||
|
||||
"edit": "Aloldal szerkeszt\u00e9se",
|
||||
"edit": "Aloldal szerkesztése",
|
||||
|
||||
"email": "Email",
|
||||
"email.placeholder": "mail@pelda.hu",
|
||||
|
@ -82,9 +82,9 @@
|
|||
"error.file.changeName.empty": "A név nem lehet üres",
|
||||
"error.file.changeName.permission": "Nincs jogosultságod megváltoztatni a \"{filename}\" fájl nevét",
|
||||
"error.file.duplicate": "Már létezik \"{filename}\" nevű fájl",
|
||||
"error.file.extension.forbidden": "Tiltott kiterjeszt\u00e9s\u0171 f\u00e1jl",
|
||||
"error.file.extension.forbidden": "Tiltott kiterjesztésű fájl",
|
||||
"error.file.extension.invalid": "Érvénytelen kiterjesztés: {extension}",
|
||||
"error.file.extension.missing": "Kiterjeszt\u00e9s n\u00e9lk\u00fcli f\u00e1jl nem t\u00f6lthet\u0151 fel",
|
||||
"error.file.extension.missing": "Kiterjesztés nélküli fájl nem tölthető fel",
|
||||
"error.file.maxheight": "A kép nem lehet magasabb {height} pixelnél",
|
||||
"error.file.maxsize": "A fájl túl nagy",
|
||||
"error.file.maxwidth": "A kép nem lehet szélesebb {width} pixelnél",
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "A képnek \"{orientation}\" tájolásúnak kell lennie",
|
||||
"error.file.type.forbidden": "Nem tölthetsz fel \"{type}\" típusú fájlokat",
|
||||
"error.file.type.invalid": "Érvénytelen fájltípus: {type}",
|
||||
"error.file.undefined": "A f\u00e1jl nem tal\u00e1lhat\u00f3",
|
||||
"error.file.undefined": "A fájl nem található",
|
||||
|
||||
"error.form.incomplete": "Kérlek javítsd ki az összes hibát az űrlapon",
|
||||
"error.form.notSaved": "Az űrlap nem menthető",
|
||||
|
@ -137,13 +137,13 @@
|
|||
"error.page.draft.duplicate": "Van már egy másik oldal ezzel az URL-lel: \"{slug}\"",
|
||||
"error.page.duplicate": "Van már egy másik oldal ezzel az URL-lel: \"{slug}\"",
|
||||
"error.page.duplicate.permission": "Nincs engedélyed a(z) \"{slug}\" másolat keszítéséhez",
|
||||
"error.page.notFound": "Az oldal nem tal\u00e1lhat\u00f3",
|
||||
"error.page.notFound": "Az oldal nem található",
|
||||
"error.page.num.invalid": "Kérlek megfelelő oldalszámozást adj meg. Negatív szám itt nem használható.",
|
||||
"error.page.slug.invalid": "Kérlek érvényes URL-kiterjesztést adj meg",
|
||||
"error.page.slug.maxlength": "Az URL maximum \"{length}\" karakter hosszúságú lehet",
|
||||
"error.page.sort.permission": "A(z) \"{slug}\" oldal nem illeszthető a sorrendbe",
|
||||
"error.page.status.invalid": "Kérlek add meg a megfelelő oldalstátuszt",
|
||||
"error.page.undefined": "Az oldal nem tal\u00e1lhat\u00f3",
|
||||
"error.page.undefined": "Az oldal nem található",
|
||||
"error.page.update.permission": "Nincs jogosultságod a(z) \"{slug}\" oldal frissítéséhez",
|
||||
|
||||
"error.section.files.max.plural": "Maximum {max} fájlt adhatsz hozzá a(z) \"{section}\" szekcióhoz",
|
||||
|
@ -175,16 +175,17 @@
|
|||
"error.user.changeRole.permission": "Nincs jogosultságod megváltoztatni \"{name}\" felhasználó szerepkörét",
|
||||
"error.user.changeRole.toAdmin": "Nincs jogosultságod előléptetni a felhasználót adminisztrátorrá",
|
||||
"error.user.create.permission": "Nincs jogosultságod létrehozni ezt a felhasználót",
|
||||
"error.user.delete": "A felhaszn\u00e1l\u00f3 nem t\u00f6r\u00f6lhet\u0151",
|
||||
"error.user.delete.lastAdmin": "Nem t\u00f6r\u00f6lheted az egyetlen adminisztr\u00e1tort",
|
||||
"error.user.delete": "A felhasználó nem törölhető",
|
||||
"error.user.delete.lastAdmin": "Nem törölheted az egyetlen adminisztrátort",
|
||||
"error.user.delete.lastUser": "Nem törölheted az egyetlen felhasználót",
|
||||
"error.user.delete.permission": "Nincs jogosults\u00e1god t\u00f6r\u00f6lni ezt a felhaszn\u00e1l\u00f3t",
|
||||
"error.user.delete.permission": "Nincs jogosultságod törölni ezt a felhasználót",
|
||||
"error.user.duplicate": "Már létezik felhasználó \"{email}\" email-címmel",
|
||||
"error.user.email.invalid": "Kérlek adj meg egy valós email-címet",
|
||||
"error.user.language.invalid": "Kérlek add meg a megfelelő nyelvi beállítást",
|
||||
"error.user.notFound": "A felhaszn\u00e1l\u00f3 nem tal\u00e1lhat\u00f3",
|
||||
"error.user.notFound": "A felhasználó nem található",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Kérlek adj meg egy megfelelő jelszót. A jelszónak legalább 8 karakter hosszúságúnak kell lennie.",
|
||||
"error.user.password.notSame": "K\u00e9rlek er\u0151s\u00edtsd meg a jelsz\u00f3t",
|
||||
"error.user.password.notSame": "Kérlek erősítsd meg a jelszót",
|
||||
"error.user.password.undefined": "A felhasználónak nincs jelszó megadva",
|
||||
"error.user.password.wrong": "Hibás jelszó",
|
||||
"error.user.role.invalid": "Kérlek adj meg egy megfelelő szerepkört",
|
||||
|
@ -291,9 +292,9 @@
|
|||
|
||||
"field.pages.empty": "Nincs oldal kiválasztva",
|
||||
|
||||
"field.structure.delete.confirm": "Biztos t\u00f6r\u00f6lni szeretn\u00e9d ezt a bejegyz\u00e9st?",
|
||||
"field.structure.delete.confirm": "Biztos törölni szeretnéd ezt a bejegyzést?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.empty": "Nincs m\u00e9g bejegyz\u00e9s",
|
||||
"field.structure.empty": "Nincs még bejegyzés",
|
||||
|
||||
"field.users.empty": "Nincs felhasználó kiválasztva",
|
||||
|
||||
|
@ -396,17 +397,17 @@
|
|||
"minutes": "Perc",
|
||||
|
||||
"month": "Hónap",
|
||||
"months.april": "\u00e1prilis",
|
||||
"months.april": "április",
|
||||
"months.august": "augusztus",
|
||||
"months.december": "december",
|
||||
"months.february": "február",
|
||||
"months.january": "janu\u00e1r",
|
||||
"months.july": "j\u00falius",
|
||||
"months.june": "j\u00fanius",
|
||||
"months.march": "m\u00e1rcius",
|
||||
"months.may": "m\u00e1jus",
|
||||
"months.january": "január",
|
||||
"months.july": "július",
|
||||
"months.june": "június",
|
||||
"months.march": "március",
|
||||
"months.may": "május",
|
||||
"months.november": "november",
|
||||
"months.october": "okt\u00f3ber",
|
||||
"months.october": "október",
|
||||
"months.september": "szeptember",
|
||||
|
||||
"more": "Több",
|
||||
|
@ -426,8 +427,8 @@
|
|||
"orientation.square": "Négyzetes",
|
||||
|
||||
"page.blueprint": "Ehhez az oldalhoz még nem tartozik oldalsablon. Itt hozhatod létre: <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "URL v\u00e1ltoztat\u00e1sa",
|
||||
"page.changeSlug.fromTitle": "L\u00e9trehoz\u00e1s c\u00edmb\u0151l",
|
||||
"page.changeSlug": "URL változtatása",
|
||||
"page.changeSlug.fromTitle": "Létrehozás címből",
|
||||
"page.changeStatus": "Állapot módosítása",
|
||||
"page.changeStatus.position": "Kérlek válaszd ki a pozíciót",
|
||||
"page.changeStatus.select": "Új állapot kiválasztása",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "Oldal",
|
||||
|
||||
"password": "Jelsz\u00f3",
|
||||
"password": "Jelszó",
|
||||
"paste": "Beillesztés",
|
||||
"paste.after": "Beillesztés utána",
|
||||
"pixel": "Pixel",
|
||||
|
@ -466,9 +467,9 @@
|
|||
"preview": "Előnézet",
|
||||
"remove": "Eltávolítás",
|
||||
"rename": "Átnevezés",
|
||||
"replace": "Cser\u00e9l",
|
||||
"replace": "Cserél",
|
||||
"retry": "Próbáld újra",
|
||||
"revert": "Visszavon\u00e1s",
|
||||
"revert": "Visszavonás",
|
||||
"revert.confirm": "Tényleg <strong>törölni szeretnél minden nem mentett változtatást</strong>?",
|
||||
|
||||
"role": "Szerepkör",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "Ez a visszatérő szabály a nem rendelkező jogosultsághoz",
|
||||
"role.nobody.title": "Senki",
|
||||
|
||||
"save": "Ment\u00e9s",
|
||||
"save": "Mentés",
|
||||
"search": "Keresés",
|
||||
"search.min": "A kereséshez írj be minimum {min} karaktert",
|
||||
"search.all": "Összes mutatása",
|
||||
|
@ -495,7 +496,7 @@
|
|||
"show": "Mutat",
|
||||
"site.blueprint": "Ehhez a weblaphoz még nem tartozik oldalsablon. Itt hozhatod létre: <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Méret",
|
||||
"slug": "URL n\u00e9v",
|
||||
"slug": "URL név",
|
||||
"sort": "Rendezés",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
|
@ -524,7 +525,7 @@
|
|||
"today": "Ma",
|
||||
|
||||
"toolbar.button.code": "Kód",
|
||||
"toolbar.button.bold": "F\u00e9lk\u00f6v\u00e9r sz\u00f6veg",
|
||||
"toolbar.button.bold": "Félkövér szöveg",
|
||||
"toolbar.button.email": "Email",
|
||||
"toolbar.button.headings": "Címsor",
|
||||
"toolbar.button.heading.1": "Címsor 1",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"upload.error.noFiles": "Nem lettek fájlok feltöltve",
|
||||
"upload.error.partial": "A fájl feltöltése csak részben sikerült",
|
||||
"upload.error.tmpDir": "Hiányzik egy átmeneti mappa",
|
||||
"upload.errors": "Hiba",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Feltöltés...",
|
||||
|
||||
"url": "Url",
|
||||
|
@ -583,18 +584,18 @@
|
|||
|
||||
"users": "Felhasználók",
|
||||
|
||||
"version": "Kirby verzi\u00f3",
|
||||
"version": "Kirby verzió",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
|
||||
"view.account": "Fi\u00f3kod",
|
||||
"view.installation": "Telep\u00edt\u00e9s",
|
||||
"view.account": "Fiókod",
|
||||
"view.installation": "Telepítés",
|
||||
"view.languages": "Nyelvek",
|
||||
"view.resetPassword": "Jelszó visszaállítása",
|
||||
"view.site": "Weboldal",
|
||||
"view.system": "Rendszer",
|
||||
"view.users": "Felhaszn\u00e1l\u00f3k",
|
||||
"view.users": "Felhasználók",
|
||||
|
||||
"welcome": "Üdvözlünk",
|
||||
"year": "Év",
|
||||
|
|
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Masukkan surel yang valid",
|
||||
"error.user.language.invalid": "Masukkan bahasa yang valid",
|
||||
"error.user.notFound": "Pengguna \"{name}\" tidak dapat ditemukan",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Masukkan sandi yang valid. Sandi setidaknya mengandung 8 karakter.",
|
||||
"error.user.password.notSame": "Sandi tidak cocok",
|
||||
"error.user.password.undefined": "Pengguna tidak memiliki sandi",
|
||||
|
@ -254,7 +255,7 @@
|
|||
"field.blocks.heading.text": "Teks",
|
||||
"field.blocks.heading.placeholder": "Penajukan …",
|
||||
"field.blocks.image.alt": "Teks alternatif",
|
||||
"field.blocks.image.caption": "Keterangan",
|
||||
"field.blocks.image.caption": "Deskripsi",
|
||||
"field.blocks.image.crop": "Pangkas",
|
||||
"field.blocks.image.link": "Tautan",
|
||||
"field.blocks.image.location": "Lokasi",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"account.changeName": "Breyta nafninu þínu",
|
||||
"account.delete": "Eyða reikningnum þínum",
|
||||
"account.delete": "Eyða notandareikning þínum",
|
||||
"account.delete.confirm": "Ertu alveg viss um að þú viljir endanlega eyða reikningnum þínum? Þú munt verða útskráð/ur án tafar. Ómögulegt verður að endurheimta reikninginn þinn.",
|
||||
|
||||
"add": "Bæta við",
|
||||
|
@ -10,9 +10,9 @@
|
|||
"cancel": "Hætta við",
|
||||
"change": "Breyta",
|
||||
"close": "Loka",
|
||||
"confirm": "Ok",
|
||||
"collapse": "Collapse",
|
||||
"collapse.all": "Collapse All",
|
||||
"confirm": "OK",
|
||||
"collapse": "Fella",
|
||||
"collapse.all": "Fella allt",
|
||||
"copy": "Afrita",
|
||||
"copy.all": "Afrita allt",
|
||||
"create": "Stofna",
|
||||
|
@ -72,12 +72,12 @@
|
|||
"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.cache.type.invalid": "Ógyld skyndiminnisgerð \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Netfangstillingarnar: \"{name}\" fundust ekki",
|
||||
|
||||
"error.field.converter.invalid": "Ógildur umbreytari \"{converter}\"",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Sviðið \"{ name }\": Sviðgerðin er \"{type}\" er alls ekki til.",
|
||||
|
||||
"error.file.changeName.empty": "Nafn skal fylla út",
|
||||
"error.file.changeName.permission": "Þú mátt ekkert breyta nafninu á skránni \"{filename}\"",
|
||||
|
@ -121,13 +121,13 @@
|
|||
|
||||
"error.offline": "Stjórnborðið er óvirkt eins og stendur.",
|
||||
|
||||
"error.page.changeSlug.permission": "Þú hefur ekkert leyfi til þess að breyta slóðarforskeytinu fyrir \"{slug}\"",
|
||||
"error.page.changeSlug.permission": "Þú hefur ekkert leyfi til þess að breyta slóðarviðskeytinu fyrir \"{slug}\"",
|
||||
"error.page.changeStatus.incomplete": "Það eru villur á síðunni og við getum ekki gefið hana út",
|
||||
"error.page.changeStatus.permission": "Stöðu síðunnar var ekki hægt að breyta",
|
||||
"error.page.changeStatus.toDraft.invalid": "Síðunni \"{slug}\" er ekki hægt að breyta í uppkast",
|
||||
"error.page.changeTemplate.invalid": "Sniðmáti fyrir síðuna \"{slug}\" er ekki hægt að breyta",
|
||||
"error.page.changeTemplate.permission": "Þú hefur engan veginn leyfi til að breyta sniðmáti fyrir síðuna \"{slug}\"",
|
||||
"error.page.changeTitle.empty": "Titillinn getur ekki verið óskilgreindur",
|
||||
"error.page.changeTitle.empty": "Ekki skilja titilinn eftir tóman",
|
||||
"error.page.changeTitle.permission": "Þú mátt ekki breyta titlinum fyrir \"{slug}\"",
|
||||
"error.page.create.permission": "Þú hefur ekki leyfi til að stofna \"{slug}\"",
|
||||
"error.page.delete": "Síðunni \"{slug}\" er ekki hægt að eyða",
|
||||
|
@ -180,9 +180,10 @@
|
|||
"error.user.delete.lastUser": "Síðasta notandanum er ekki hægt að eyða",
|
||||
"error.user.delete.permission": "Þú mátt ekkert eyða notandanum \"{name}\"",
|
||||
"error.user.duplicate": "Nú þegar finnst notandi með þetta netfang: \"{email}\"",
|
||||
"error.user.email.invalid": "Vinsamlegast ákjósanlegt netfang",
|
||||
"error.user.email.invalid": "Almennilegt netfang hér",
|
||||
"error.user.language.invalid": "Vinsamlegast ákjósanlegt tungumál",
|
||||
"error.user.notFound": "Þessi notandi; \"{name}\" fannst ekki",
|
||||
"error.user.password.excessive": "Vinsamlegast settu inn gilt lykilorð. Lykilorð hér meiga ekki vera lengri en 1000 stafabil.",
|
||||
"error.user.password.invalid": "Veldu ákjósanlegt lykilorð. Minnst 8 stafa langt.",
|
||||
"error.user.password.notSame": "Lykilorðin stemma ekki",
|
||||
"error.user.password.undefined": "Þessi notandi hefur ekki lykilorð",
|
||||
|
@ -203,7 +204,7 @@
|
|||
"error.validation.date.between": "Dagsetningu milli {min} og {max}",
|
||||
"error.validation.denied": "Hafnaðu",
|
||||
"error.validation.different": "Gildið má ekki vera \"{other}\"",
|
||||
"error.validation.email": "Ákjósanlegt netfang",
|
||||
"error.validation.email": "Almennilegt netfang hér",
|
||||
"error.validation.endswith": "Gildið verður að enda á \"{end}\"",
|
||||
"error.validation.filename": "Ákjósanlegt skrárnafn",
|
||||
"error.validation.in": "Vinsamlegast skráðu eitt af eftirfarandi: ({in})",
|
||||
|
@ -237,7 +238,7 @@
|
|||
|
||||
"field.required": "Þetta svið er nauðsynlegt",
|
||||
"field.blocks.changeType": "Breyta um bálkagerð",
|
||||
"field.blocks.code.name": "Kóði",
|
||||
"field.blocks.code.name": "Kóðasnið",
|
||||
"field.blocks.code.language": "Tungumal",
|
||||
"field.blocks.code.placeholder": "Kóðinn þinn …",
|
||||
"field.blocks.delete.confirm": "Ætlarðu virkilega að eyða þessum bálk?",
|
||||
|
@ -245,13 +246,13 @@
|
|||
"field.blocks.delete.confirm.selected": "Viltu virkilega eyða völdum bálkum?",
|
||||
"field.blocks.empty": "Öngvir bálkar enn",
|
||||
"field.blocks.fieldsets.label": "Veldu bálkagerð …",
|
||||
"field.blocks.fieldsets.paste": "Notaðu<kbd> {{ shortcut }}</kbd> flýtilyklaaðgerðina til að setja blokkina hér.",
|
||||
"field.blocks.fieldsets.paste": "Notaðu<kbd> {{ shortcut }}</kbd> flýtilyklaaðgerðina til að setja bálkinn hér.",
|
||||
"field.blocks.gallery.name": "Myndasafn",
|
||||
"field.blocks.gallery.images.empty": "Engar myndir enn",
|
||||
"field.blocks.gallery.images.label": "Myndir",
|
||||
"field.blocks.heading.level": "Stig",
|
||||
"field.blocks.heading.name": "Fyrirsögn",
|
||||
"field.blocks.heading.text": "Texti/Prósi",
|
||||
"field.blocks.heading.text": "Prósi",
|
||||
"field.blocks.heading.placeholder": "Fyrirsögn …",
|
||||
"field.blocks.image.alt": "ALT texti",
|
||||
"field.blocks.image.caption": "Myndartexti",
|
||||
|
@ -265,16 +266,16 @@
|
|||
"field.blocks.line.name": "Lína",
|
||||
"field.blocks.list.name": "Listi",
|
||||
"field.blocks.markdown.name": "Markdown",
|
||||
"field.blocks.markdown.label": "Texti",
|
||||
"field.blocks.markdown.label": "Prósi",
|
||||
"field.blocks.markdown.placeholder": "Markdown …",
|
||||
"field.blocks.quote.name": "Tilvitnun",
|
||||
"field.blocks.quote.text.label": "Innihald tilvitnunar",
|
||||
"field.blocks.quote.text.label": "Prósi",
|
||||
"field.blocks.quote.text.placeholder": "Þessi tilvitnun …",
|
||||
"field.blocks.quote.citation.label": "Heimild",
|
||||
"field.blocks.quote.citation.placeholder": "eftir …",
|
||||
"field.blocks.text.name": "Prósi",
|
||||
"field.blocks.text.placeholder": "Þessi prósi …",
|
||||
"field.blocks.video.caption": "Myndskeiðstexti",
|
||||
"field.blocks.video.caption": "Myndartexti",
|
||||
"field.blocks.video.name": "Myndskeið",
|
||||
"field.blocks.video.placeholder": "Vefslóð myndskeiðs (URL)",
|
||||
"field.blocks.video.url.label": "Vefslóð",
|
||||
|
@ -292,7 +293,7 @@
|
|||
"field.pages.empty": "Engar síður valdar ennþá",
|
||||
|
||||
"field.structure.delete.confirm": "Viltu virkilega eyða þessari röð?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "Ætlar þú virkilega að eyða öllum færslum?",
|
||||
"field.structure.empty": "Engar færslur enn",
|
||||
|
||||
"field.users.empty": "Engir notendur valdir enn",
|
||||
|
@ -326,14 +327,14 @@
|
|||
"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",
|
||||
|
||||
"language": "Tungumál",
|
||||
"language.code": "Kóði",
|
||||
"language": "Tungumal",
|
||||
"language.code": "Kóðasnið",
|
||||
"language.convert": "Gera sjálfgefið",
|
||||
"language.convert.confirm": "<p>Ertu viss um að þú viljir breyta <strong>{name}</strong> í sjálfgefið (lesist aðal) tungumál? Þessu verður ekki viðsnúið.</p><p>Ef <strong>{name}</strong> hefur innihald sem ekki hefur verið þýtt, þá verða engir möguleikar til þrautarvara og hluti vefsins gæti birtst tómur.</p>",
|
||||
"language.create": "Bættu við nýju tungumáli",
|
||||
"language.delete.confirm": "Ertu nú viss um að þú viljir eyða <strong>{name}</strong> og öllum tilheyrandi þýðingum? Þetta verður ekki tekið til baka!",
|
||||
"language.deleted": "Tungumálinu hefur verið eytt",
|
||||
"language.direction": "Lestursátt (hægri, vinstri)",
|
||||
"language.direction": "Lesátt",
|
||||
"language.direction.ltr": "Vinstra til hægri",
|
||||
"language.direction.rtl": "Hægra til vinstri",
|
||||
"language.locale": "PHP locale strengur",
|
||||
|
@ -349,12 +350,12 @@
|
|||
|
||||
"license": "Leyfi",
|
||||
"license.buy": "Kaupa leyfi",
|
||||
"license.register": "Skr\u00E1 Kirby",
|
||||
"license.register": "Skrá Kirby",
|
||||
"license.manage": "Sýslaðu með leyfin þín",
|
||||
"license.register.help": "Þú fékkst sendan tölvupóst með leyfiskóðanum þegar þú keyptir leyfi. Vinsamlegast afritaðu hann og settu hann hingað til að skrá þig.",
|
||||
"license.register.label": "Vinsamlegast settu inn leyfiskóðan",
|
||||
"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": "Leyfið þitt verður skráð á <strong>{host}</strong>.",
|
||||
"license.register.local": "Nú ertu að fara skrá leyfið þitt á staðbundna lénið (e. local domain) <strong>{host}</strong>. Ef þetta vefsvæði verður fært út á vefinn, vinsamlegast skráðu það frekar þar þegar það hefur verið gefið þar út. Ef {host] er raunverulega lénið sem þú vilt skrá leyfir þitt á, endilega haltu þínu striki.",
|
||||
"license.register.success": "Þakka þér fyrir að velja Kirby",
|
||||
"license.unregistered": "Þetta er óskráð prufueintak af Kirby",
|
||||
"license.unregistered.label": "Óskráð",
|
||||
|
@ -410,7 +411,7 @@
|
|||
"months.september": "September",
|
||||
|
||||
"more": "Meira",
|
||||
"name": "Nafn",
|
||||
"name": "Nafn tungumáls",
|
||||
"next": "Næst",
|
||||
"no": "nei",
|
||||
"off": "Af",
|
||||
|
@ -452,7 +453,7 @@
|
|||
"pages.empty": "Engar síður enn",
|
||||
"pages.status.draft": "Uppköst",
|
||||
"pages.status.listed": "Útgefnar og listaðar",
|
||||
"pages.status.unlisted": "Útgefnar",
|
||||
"pages.status.unlisted": "Útgefin",
|
||||
|
||||
"pagination.page": "Síða",
|
||||
|
||||
|
@ -495,26 +496,26 @@
|
|||
"show": "Sýna",
|
||||
"site.blueprint": "Þessi vefur hefur ekki skipan (e. blueprint) ennþá. Þú mátt skilgreina skipanina í <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Stærð",
|
||||
"slug": "Slögg",
|
||||
"slug": "Slóðar viðskeyti",
|
||||
"sort": "Raða",
|
||||
|
||||
"stats.empty": "Engar skýrslur",
|
||||
"system.issues.content": "Efnismappan virðist vera berskjölduð",
|
||||
"system.issues.eol.kirby": "Uppsett Kirby eintak þitt hefur runnið sitt skeið á enda og mun ekki verða uppfært framar",
|
||||
"system.issues.eol.plugin": "Uppsett eintak þitt af viðbótinni { plugin } hefur runnið sitt skeið á enda og mun ekki verða uppfærð framar",
|
||||
"system.issues.debug": "Aflúsun ætti alltaf að vera óvrikt í útgefnum vef",
|
||||
"system.issues.debug": "Aflúsun ætti alltaf að vera óvirk í útgefnum vef",
|
||||
"system.issues.git": ".git mappan virðist vera berskjölduð",
|
||||
"system.issues.https": "Við mælum harðlega með því að þú notir HTTPS fyrir öll þín vefsvæði",
|
||||
"system.issues.kirby": "Kirby mappan virðist vera berskjölduð",
|
||||
"system.issues.site": "Mappa vefsvæðisins virðist vera berskjölduð",
|
||||
"system.issues.vulnerability.kirby": "Uppsetningin þín gæti verið berskjölduð gagnvart eftirfarandi veikleika: ({ severity } veikleikinn): { description }",
|
||||
"system.issues.vulnerability.kirby": "Uppsetningin þín gæti verið berskjölduð gagnvart eftirfarandi veikleika: ({ severity } veikleiki): { description }",
|
||||
"system.issues.vulnerability.plugin": "Uppsetningin þín gæti verið berskjölduð gagnvart eftirfarandi veikleika í viðbótinni { plugin }: ({ severity } veikleikinn): { description }",
|
||||
"system.updateStatus": "Uppfærslustaða",
|
||||
"system.updateStatus.error": "Gat því miður ekki athugað með uppfærslur",
|
||||
"system.updateStatus.not-vulnerable": "Engir þekktir veikleikar",
|
||||
"system.updateStatus.security-update": "Ókeypis öryggisuppfærsla { version } fáanleg",
|
||||
"system.updateStatus.security-upgrade": "Uppfærsla { version } með öryggisuppfærslum fáanleg",
|
||||
"system.updateStatus.unreleased": "Óútgefin útgáfa",
|
||||
"system.updateStatus.unreleased": "Þróunarútgáfa",
|
||||
"system.updateStatus.up-to-date": "Allt spikk og span",
|
||||
"system.updateStatus.update": "Ókeypis uppfærsla { version } fáanleg",
|
||||
"system.updateStatus.upgrade": "Uppfærsla fyrir { version } fáanleg",
|
||||
|
@ -588,10 +589,10 @@
|
|||
"version.latest": "Nýjasta útgáfa",
|
||||
"versionInformation": "Útgáfuupplýsingar",
|
||||
|
||||
"view.account": "Notandareikningurinn þinn",
|
||||
"view.installation": "Uppsetning",
|
||||
"view.account": "Þínar stillingar",
|
||||
"view.installation": "Uppsettning",
|
||||
"view.languages": "Tungumál",
|
||||
"view.resetPassword": "Endurstilla lykilorð",
|
||||
"view.resetPassword": "Endurheimta lykilorð takk",
|
||||
"view.site": "Vefsvæðið",
|
||||
"view.system": "Kerfi",
|
||||
"view.users": "Notendur",
|
||||
|
|
|
@ -96,11 +96,11 @@
|
|||
"error.file.minsize": "Il file è troppo leggero",
|
||||
"error.file.minwidth": "L'immagine dev'essere larga almeno {width} pixel",
|
||||
"error.file.name.missing": "Il nome del file non può essere vuoto",
|
||||
"error.file.notFound": "Il file non \u00e8 stato trovato",
|
||||
"error.file.notFound": "Il file non è stato trovato",
|
||||
"error.file.orientation": "L'imaggine dev'essere orientata in \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Non ti è permesso caricare file {type}",
|
||||
"error.file.type.invalid": "Tipo di file non valido: {type}",
|
||||
"error.file.undefined": "Il file non \u00e8 stato trovato",
|
||||
"error.file.undefined": "Il file non è stato trovato",
|
||||
|
||||
"error.form.incomplete": "Correggi tutti gli errori nel form...",
|
||||
"error.form.notSaved": "Non è stato possibile salvare il form",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "Lo \"slug\" dev'essere più corto di \"{length}\" caratteri",
|
||||
"error.page.sort.permission": "La pagina \"{slug}\" non può essere ordinata",
|
||||
"error.page.status.invalid": "Imposta uno stato valido per la pagina",
|
||||
"error.page.undefined": "La pagina non \u00e8 stata trovata",
|
||||
"error.page.undefined": "La pagina non è stata trovata",
|
||||
"error.page.update.permission": "Non ti è permesso modificare \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Non puoi aggiungere più di {max} file alla sezione \"{section}\"",
|
||||
|
@ -175,14 +175,15 @@
|
|||
"error.user.changeRole.permission": "Non ti è permesso modificare il ruolo dell'utente \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "Non ti è permesso assegnare il ruolo di amministratore ad altri utenti",
|
||||
"error.user.create.permission": "Non ti è permesso creare questo utente",
|
||||
"error.user.delete": "L'utente non pu\u00f2 essere eliminato",
|
||||
"error.user.delete": "L'utente non può essere eliminato",
|
||||
"error.user.delete.lastAdmin": "L'ultimo amministratore non può essere eliminato",
|
||||
"error.user.delete.lastUser": "L'ultimo utente non può essere eliminato",
|
||||
"error.user.delete.permission": "Non ti \u00e8 permesso eliminare questo utente ",
|
||||
"error.user.delete.permission": "Non ti è permesso eliminare questo utente ",
|
||||
"error.user.duplicate": "Esiste già un utente con l'indirizzo email \"{email}\"",
|
||||
"error.user.email.invalid": "Inserisci un indirizzo email valido",
|
||||
"error.user.language.invalid": "Inserisci una lingua valida",
|
||||
"error.user.notFound": "L'utente non \u00e8 stato trovato",
|
||||
"error.user.notFound": "L'utente non è stato trovato",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Per favore inserisci una password valida. Le password devono essere lunghe almeno 8 caratteri",
|
||||
"error.user.password.notSame": "Le password non corrispondono",
|
||||
"error.user.password.undefined": "L'utente non ha una password",
|
||||
|
@ -454,7 +455,7 @@
|
|||
"pages.status.listed": "Pubblicato",
|
||||
"pages.status.unlisted": "Non in elenco",
|
||||
|
||||
"pagination.page": "Pagina",
|
||||
"pagination.page": "Page",
|
||||
|
||||
"password": "Password",
|
||||
"paste": "Incolla",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"upload.error.noFiles": "Nessun file è stato caricato",
|
||||
"upload.error.partial": "Il file è stato caricato solo parzialmente",
|
||||
"upload.error.tmpDir": "Manca la cartella temporanea",
|
||||
"upload.errors": "Errore",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Caricamento...",
|
||||
|
||||
"url": "URL",
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"account.delete": "계정 삭제",
|
||||
"account.delete.confirm": "계정을 삭제할까요? 계정을 삭제한 뒤에는 복구할 수 없습니다.",
|
||||
|
||||
"add": "\ucd94\uac00",
|
||||
"add": "추가",
|
||||
"author": "저자",
|
||||
"avatar": "프로필 이미지",
|
||||
"back": "뒤로",
|
||||
"cancel": "\ucde8\uc18c",
|
||||
"change": "\ubcc0\uacbd",
|
||||
"close": "\ub2eb\uae30",
|
||||
"cancel": "취소",
|
||||
"change": "변경",
|
||||
"close": "닫기",
|
||||
"confirm": "확인",
|
||||
"collapse": "접기",
|
||||
"collapse.all": "모두 접기",
|
||||
|
@ -21,17 +21,17 @@
|
|||
"date.select": "날짜 지정",
|
||||
|
||||
"day": "일",
|
||||
"days.fri": "\uae08",
|
||||
"days.mon": "\uc6d4",
|
||||
"days.sat": "\ud1a0",
|
||||
"days.sun": "\uc77c",
|
||||
"days.thu": "\ubaa9",
|
||||
"days.tue": "\ud654",
|
||||
"days.wed": "\uc218",
|
||||
"days.fri": "금",
|
||||
"days.mon": "월",
|
||||
"days.sat": "토",
|
||||
"days.sun": "일",
|
||||
"days.thu": "목",
|
||||
"days.tue": "화",
|
||||
"days.wed": "수",
|
||||
|
||||
"debugging": "디버그",
|
||||
|
||||
"delete": "\uc0ad\uc81c",
|
||||
"delete": "삭제",
|
||||
"delete.all": "모두 삭제",
|
||||
|
||||
"dialog.files.empty": "선택할 파일이 없습니다.",
|
||||
|
@ -44,9 +44,9 @@
|
|||
"download": "다운로드",
|
||||
"duplicate": "복제",
|
||||
|
||||
"edit": "\ud3b8\uc9d1",
|
||||
"edit": "편집",
|
||||
|
||||
"email": "\uc774\uba54\uc77c \uc8fc\uc18c",
|
||||
"email": "이메일 주소",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "항목",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"error.access.view": "패널에 접근할 권한이 없습니다.",
|
||||
|
||||
"error.avatar.create.fail": "프로필 이미지를 업로드할 수 없습니다.",
|
||||
"error.avatar.delete.fail": "\ud504\ub85c\ud544 \uc774\ubbf8\uc9c0\ub97c \uc0ad\uc81c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
"error.avatar.delete.fail": "프로필 이미지를 삭제할 수 없습니다.",
|
||||
"error.avatar.dimensions.invalid": "프로필 이미지의 너비와 높이를 3,000픽셀 이하로 설정하세요.",
|
||||
"error.avatar.mime.forbidden": "프로필 이미지의 확장자(JPG, JPEG, PNG)를 확인하세요.",
|
||||
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "이미지의 비율({orientation})을 확인하세요.",
|
||||
"error.file.type.forbidden": "이 형식({type})의 파일을 업로드할 권한이 없습니다.",
|
||||
"error.file.type.invalid": "파일의 형식({type})이 올바르지 않습니다.",
|
||||
"error.file.undefined": "\ud30c\uc77c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
"error.file.undefined": "파일이 없습니다.",
|
||||
|
||||
"error.form.incomplete": "항목에 오류가 있습니다.",
|
||||
"error.form.notSaved": "항목을 저장할 수 없습니다.",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "고유 주소를 {length}자 이하로 입력하세요.",
|
||||
"error.page.sort.permission": "페이지({slug})를 정렬할 수 없습니다.",
|
||||
"error.page.status.invalid": "올바른 상태를 설정하세요.",
|
||||
"error.page.undefined": "\ud398\uc774\uc9c0\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
"error.page.undefined": "페이지가 없습니다.",
|
||||
"error.page.update.permission": "페이지({slug})를 변경할 권한이 없습니다.",
|
||||
|
||||
"error.section.files.max.plural": "이 섹션({section})에는 파일을 {max}개 이상 추가할 수 없습니다.",
|
||||
|
@ -176,15 +176,16 @@
|
|||
"error.user.changeRole.toAdmin": "다른 사용자를 관리자로 지정할 권한이 없습니다.",
|
||||
"error.user.create.permission": "사용자를 등록할 권한이 없습니다.",
|
||||
"error.user.delete": "사용자({name})를 삭제할 수 없습니다.",
|
||||
"error.user.delete.lastAdmin": "\ucd5c\uc885 \uad00\ub9ac\uc790\ub294 \uc0ad\uc81c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
|
||||
"error.user.delete.lastAdmin": "최종 관리자는 삭제할 수 없습니다.",
|
||||
"error.user.delete.lastUser": "최종 사용자는 삭제할 수 없습니다.",
|
||||
"error.user.delete.permission": "사용자({name})를 삭제할 권한이 없습니다.",
|
||||
"error.user.duplicate": "이메일 주소({email})가 같은 사용자가 있습니다.",
|
||||
"error.user.email.invalid": "올바른 이메일 주소를 입력하세요.",
|
||||
"error.user.language.invalid": "올바른 언어를 입력하세요.",
|
||||
"error.user.notFound": "사용자({name})가 없습니다.",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "암호를 8자 이상으로 설정하세요.",
|
||||
"error.user.password.notSame": "\uc554\ud638\ub97c \ud655\uc778\ud558\uc138\uc694.",
|
||||
"error.user.password.notSame": "암호를 확인하세요.",
|
||||
"error.user.password.undefined": "암호가 설정되지 않았습니다.",
|
||||
"error.user.password.wrong": "암호가 올바르지 않습니다.",
|
||||
"error.user.role.invalid": "올바른 역할을 지정하세요.",
|
||||
|
@ -237,7 +238,7 @@
|
|||
|
||||
"field.required": "필드를 채우세요.",
|
||||
"field.blocks.changeType": "유형 변경",
|
||||
"field.blocks.code.name": "코드",
|
||||
"field.blocks.code.name": "언어 코드",
|
||||
"field.blocks.code.language": "언어",
|
||||
"field.blocks.code.placeholder": "코드",
|
||||
"field.blocks.delete.confirm": "블록을 삭제할까요?",
|
||||
|
@ -251,12 +252,12 @@
|
|||
"field.blocks.gallery.images.label": "이미지",
|
||||
"field.blocks.heading.level": "단계",
|
||||
"field.blocks.heading.name": "제목",
|
||||
"field.blocks.heading.text": "제목",
|
||||
"field.blocks.heading.text": "마크다운",
|
||||
"field.blocks.heading.placeholder": "제목",
|
||||
"field.blocks.image.alt": "대체 텍스트",
|
||||
"field.blocks.image.caption": "캡션",
|
||||
"field.blocks.image.crop": "자르기",
|
||||
"field.blocks.image.link": "링크",
|
||||
"field.blocks.image.link": "일반 링크",
|
||||
"field.blocks.image.location": "위치",
|
||||
"field.blocks.image.name": "이미지",
|
||||
"field.blocks.image.placeholder": "이미지 선택",
|
||||
|
@ -268,11 +269,11 @@
|
|||
"field.blocks.markdown.label": "마크다운",
|
||||
"field.blocks.markdown.placeholder": "마크다운",
|
||||
"field.blocks.quote.name": "인용문",
|
||||
"field.blocks.quote.text.label": "인용문",
|
||||
"field.blocks.quote.text.label": "마크다운",
|
||||
"field.blocks.quote.text.placeholder": "인용문",
|
||||
"field.blocks.quote.citation.label": "출처",
|
||||
"field.blocks.quote.citation.placeholder": "출처",
|
||||
"field.blocks.text.name": "텍스트",
|
||||
"field.blocks.text.name": "마크다운",
|
||||
"field.blocks.text.placeholder": "텍스트",
|
||||
"field.blocks.video.caption": "캡션",
|
||||
"field.blocks.video.name": "영상",
|
||||
|
@ -292,7 +293,7 @@
|
|||
"field.pages.empty": "선택한 페이지가 없습니다.",
|
||||
|
||||
"field.structure.delete.confirm": "이 항목을 삭제할까요?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "모든 항목을 삭제할까요?",
|
||||
"field.structure.empty": "항목이 없습니다.",
|
||||
|
||||
"field.users.empty": "선택한 사용자가 없습니다.",
|
||||
|
@ -308,7 +309,7 @@
|
|||
"hour": "시",
|
||||
"import": "가져오기",
|
||||
"info": "정보",
|
||||
"insert": "\uc0bd\uc785",
|
||||
"insert": "삽입",
|
||||
"insert.after": "뒤에 삽입",
|
||||
"insert.before": "앞에 삽입",
|
||||
"install": "설치",
|
||||
|
@ -326,7 +327,7 @@
|
|||
"installation.issues.server": "Kirby를 실행하려면 <code>Apache</code>, <code>Nginx</code>, 또는 <code>Caddy</code>가 필요합니다.",
|
||||
"installation.issues.sessions": "<code>/site/sessions</code> 폴더의 쓰기 권한을 확인하세요.",
|
||||
|
||||
"language": "\uc5b8\uc5b4",
|
||||
"language": "언어",
|
||||
"language.code": "언어 코드",
|
||||
"language.convert": "기본 언어로 지정",
|
||||
"language.convert.confirm": "이 언어(<strong>{name}</strong>)를 기본 언어로 지정할까요? 지정한 뒤에는 복원할 수 없으며, 이 언어로 번역되지 않은 항목은 올바르게 표시되지 않을 수 있습니다.",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"language.direction.rtl": "오른쪽에서 왼쪽",
|
||||
"language.locale": "PHP 로캘 문자열",
|
||||
"language.locale.warning": "사용자 지정 로캘을 사용 중입니다. <code>/site/languages</code> 폴더의 언어 파일을 수정하세요.",
|
||||
"language.name": "언어명",
|
||||
"language.name": "이름",
|
||||
"language.updated": "언어를 변경했습니다.",
|
||||
|
||||
"languages": "언어",
|
||||
|
@ -359,8 +360,8 @@
|
|||
"license.unregistered": "Kirby가 등록되지 않았습니다.",
|
||||
"license.unregistered.label": "Kirby가 등록되지 않았습니다.",
|
||||
|
||||
"link": "\uc77c\ubc18 \ub9c1\ud06c",
|
||||
"link.text": "\ubb38\uc790",
|
||||
"link": "일반 링크",
|
||||
"link.text": "문자",
|
||||
|
||||
"loading": "로딩 중…",
|
||||
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "분",
|
||||
|
||||
"month": "월",
|
||||
"months.april": "4\uc6d4",
|
||||
"months.august": "8\uc6d4",
|
||||
"months.december": "12\uc6d4",
|
||||
"months.april": "4월",
|
||||
"months.august": "8월",
|
||||
"months.december": "12월",
|
||||
"months.february": "2월",
|
||||
"months.january": "1\uc6d4",
|
||||
"months.july": "7\uc6d4",
|
||||
"months.june": "6\uc6d4",
|
||||
"months.march": "3\uc6d4",
|
||||
"months.may": "5\uc6d4",
|
||||
"months.november": "11\uc6d4",
|
||||
"months.october": "10\uc6d4",
|
||||
"months.september": "9\uc6d4",
|
||||
"months.january": "1월",
|
||||
"months.july": "7월",
|
||||
"months.june": "6월",
|
||||
"months.march": "3월",
|
||||
"months.may": "5월",
|
||||
"months.november": "11월",
|
||||
"months.october": "10월",
|
||||
"months.september": "9월",
|
||||
|
||||
"more": "더 보기",
|
||||
"name": "이름",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "페이지",
|
||||
|
||||
"password": "\uc554\ud638",
|
||||
"password": "암호",
|
||||
"paste": "붙여넣기",
|
||||
"paste.after": "뒤로 붙여넣기",
|
||||
"pixel": "픽셀",
|
||||
|
@ -466,8 +467,8 @@
|
|||
"preview": "미리 보기",
|
||||
"remove": "삭제",
|
||||
"rename": "이름 변경",
|
||||
"replace": "\uad50\uccb4",
|
||||
"retry": "\ub2e4\uc2dc \uc2dc\ub3c4",
|
||||
"replace": "교체",
|
||||
"retry": "다시 시도",
|
||||
"revert": "복원",
|
||||
"revert.confirm": "<strong>저장되지 않은 내용</strong>을 삭제할까요?",
|
||||
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "대체 사용자는 아무 권한이 없습니다.",
|
||||
"role.nobody.title": "사용자가 없습니다.",
|
||||
|
||||
"save": "\uc800\uc7a5",
|
||||
"save": "저장",
|
||||
"search": "검색",
|
||||
"search.min": "{min}자 이상 입력하세요.",
|
||||
"search.all": "모두 보기",
|
||||
|
@ -520,10 +521,10 @@
|
|||
"system.updateStatus.upgrade": "{ version } 버전으로 업그레이드",
|
||||
|
||||
"title": "제목",
|
||||
"template": "\ud15c\ud50c\ub9bf",
|
||||
"template": "템플릿",
|
||||
"today": "오늘",
|
||||
|
||||
"toolbar.button.code": "코드",
|
||||
"toolbar.button.code": "언어 코드",
|
||||
"toolbar.button.bold": "강조",
|
||||
"toolbar.button.email": "이메일 주소",
|
||||
"toolbar.button.headings": "제목",
|
||||
|
@ -537,7 +538,7 @@
|
|||
"toolbar.button.file": "파일",
|
||||
"toolbar.button.file.select": "파일 선택",
|
||||
"toolbar.button.file.upload": "파일 업로드",
|
||||
"toolbar.button.link": "링크",
|
||||
"toolbar.button.link": "일반 링크",
|
||||
"toolbar.button.paragraph": "문단",
|
||||
"toolbar.button.strike": "취소선",
|
||||
"toolbar.button.ol": "숫자 목록",
|
||||
|
@ -589,12 +590,12 @@
|
|||
"versionInformation": "버전 정보",
|
||||
|
||||
"view.account": "계정",
|
||||
"view.installation": "\uc124\uce58",
|
||||
"view.installation": "설치",
|
||||
"view.languages": "언어",
|
||||
"view.resetPassword": "암호 초기화",
|
||||
"view.site": "사이트",
|
||||
"view.system": "시스템",
|
||||
"view.users": "\uc0ac\uc6a9\uc790",
|
||||
"view.users": "사용자",
|
||||
|
||||
"welcome": "반갑습니다.",
|
||||
"year": "년",
|
||||
|
|
|
@ -180,9 +180,10 @@
|
|||
"error.user.delete.lastUser": "Vienintelio vartotojo negalima pašalinti",
|
||||
"error.user.delete.permission": "Neturite leidimo pašalinti vartotoją \"{name}\"",
|
||||
"error.user.duplicate": "Vartotojas su el. paštu \"{email}\" jau yra",
|
||||
"error.user.email.invalid": "Įrašykite teisingą el. pašto adresą",
|
||||
"error.user.email.invalid": "Prašome įrašyti teisingą el. pašto adresą",
|
||||
"error.user.language.invalid": "Įrašykite teisingą kalbą",
|
||||
"error.user.notFound": "Vartotojas \"{name}\" nerastas",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Prašome įrašyti galiojantį slaptažodį. Slaptažodį turi sudaryti bent 8 simboliai.",
|
||||
"error.user.password.notSame": "Slaptažodžiai nesutampa",
|
||||
"error.user.password.undefined": "Vartotojas neturi slaptažodžio",
|
||||
|
@ -203,7 +204,7 @@
|
|||
"error.validation.date.between": "Įrašykite datą tarp {min} ir {max}",
|
||||
"error.validation.denied": "Prašome neleisti",
|
||||
"error.validation.different": "Reikšmė neturi būti \"{other}\"",
|
||||
"error.validation.email": "Prašome įrašyti korektišką el. paštą",
|
||||
"error.validation.email": "Prašome įrašyti teisingą el. pašto adresą",
|
||||
"error.validation.endswith": "Reikšmė turi baigtis su \"{end}\"",
|
||||
"error.validation.filename": "Prašome įrašyti teisingą failo pavadinimą",
|
||||
"error.validation.in": "Prašome įrašyti vieną iš šių: ({in})",
|
||||
|
@ -313,7 +314,7 @@
|
|||
"insert.before": "Įterpti prieš",
|
||||
"install": "Įdiegti",
|
||||
|
||||
"installation": "Įdiegimas",
|
||||
"installation": "Installation",
|
||||
"installation.completed": "Valdymo pultas įdiegtas",
|
||||
"installation.disabled": "Pagal nutylėjimą valdymo pulto įdiegimas viešuose serveriuose yra negalimas. Prašome įdiegti lokalioje aplinkoje arba įgalinkite jį su <code>panel.install</code> opcija.",
|
||||
"installation.issues.accounts": "Katalogas <code>/site/accounts</code> neegzistuoja arba neturi įrašymo teisių",
|
||||
|
@ -452,7 +453,7 @@
|
|||
"pages.empty": "Dar nėra puslapių",
|
||||
"pages.status.draft": "Juodraščiai",
|
||||
"pages.status.listed": "Paskelbti",
|
||||
"pages.status.unlisted": "Nerodomi",
|
||||
"pages.status.unlisted": "Nerodomas",
|
||||
|
||||
"pagination.page": "Puslapis",
|
||||
|
||||
|
@ -561,7 +562,7 @@
|
|||
"upload.error.noFiles": "Failai nebuvo įkelti",
|
||||
"upload.error.partial": "Failas įkeltas tik iš dalies",
|
||||
"upload.error.tmpDir": "Trūksta laikinojo katalogo",
|
||||
"upload.errors": "Klaida",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Įkėlimas…",
|
||||
|
||||
"url": "Url",
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
"day": "Dag",
|
||||
"days.fri": "Fre",
|
||||
"days.mon": "Man",
|
||||
"days.sat": "L\u00f8r",
|
||||
"days.sun": "S\u00f8n",
|
||||
"days.sat": "Lør",
|
||||
"days.sun": "Søn",
|
||||
"days.thu": "Tor",
|
||||
"days.tue": "Tir",
|
||||
"days.wed": "Ons",
|
||||
|
@ -178,11 +178,12 @@
|
|||
"error.user.delete": "Denne brukeren kunne ikke bli slettet",
|
||||
"error.user.delete.lastAdmin": "Siste administrator kan ikke slettes",
|
||||
"error.user.delete.lastUser": "Den siste brukeren kan ikke slettes",
|
||||
"error.user.delete.permission": "Du er ikke tillat \u00e5 slette denne brukeren",
|
||||
"error.user.delete.permission": "Du er ikke tillat å slette denne brukeren",
|
||||
"error.user.duplicate": "En bruker med e-postadresse \"{email}\" eksisterer allerede",
|
||||
"error.user.email.invalid": "Vennligst skriv inn en gyldig e-postadresse",
|
||||
"error.user.language.invalid": "Vennligst skriv inn et gyldig språk",
|
||||
"error.user.notFound": "Brukeren kunne ikke bli funnet",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Vennligst skriv inn et gyldig passord. Passordet må minst være 8 tegn langt.",
|
||||
"error.user.password.notSame": "Vennligst bekreft passordet",
|
||||
"error.user.password.undefined": "Brukeren har ikke et passord",
|
||||
|
@ -291,9 +292,9 @@
|
|||
|
||||
"field.pages.empty": "Ingen side har blitt valgt",
|
||||
|
||||
"field.structure.delete.confirm": "\u00d8nsker du virkelig \u00e5 slette denne oppf\u00f8ringen?",
|
||||
"field.structure.delete.confirm": "Ønsker du virkelig å slette denne oppføringen?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.empty": "Ingen oppf\u00f8ringer enda",
|
||||
"field.structure.empty": "Ingen oppføringer enda",
|
||||
|
||||
"field.users.empty": "Ingen bruker har blitt valgt",
|
||||
|
||||
|
@ -316,8 +317,8 @@
|
|||
"installation": "Installasjon",
|
||||
"installation.completed": "Panelet har blitt installert",
|
||||
"installation.disabled": "Installasjonsprogrammet for Panelet er deaktivert på offentlige servere som standard. Vennligst kjør installasjonsprogrammet på en lokal maskin eller aktiver den med <code>panel.install</code> innstillingen.",
|
||||
"installation.issues.accounts": "\/site\/accounts er ikke skrivbar",
|
||||
"installation.issues.content": "Mappen content og alt av innhold m\u00e5 v\u00e6re skrivbar.",
|
||||
"installation.issues.accounts": "/site/accounts er ikke skrivbar",
|
||||
"installation.issues.content": "Mappen content og alt av innhold må være skrivbar.",
|
||||
"installation.issues.curl": "Utvidelsen <code>CURL</code> er nødvendig",
|
||||
"installation.issues.headline": "Panelet kan ikke installeres",
|
||||
"installation.issues.mbstring": "Utvidelsen <code>MB String</code> er nødvendig",
|
||||
|
@ -326,7 +327,7 @@
|
|||
"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",
|
||||
|
||||
"language": "Spr\u00e5k",
|
||||
"language": "Språk",
|
||||
"language.code": "Kode",
|
||||
"language.convert": "Gjør til standard",
|
||||
"language.convert.confirm": "<p>Vil du virkelig konvertere <strong>{name}</strong> til standardspråk? Dette kan ikke angres. </p><p>Dersom <strong>{name}</strong> har innhold som ikke er oversatt, vil nettstedet mangle innhold å falle tilbake på. Dette kan resultere i at deler av nettstedet fremstår som tomt.</p>",
|
||||
|
@ -454,7 +455,7 @@
|
|||
"pages.status.listed": "Publisert",
|
||||
"pages.status.unlisted": "Unotert",
|
||||
|
||||
"pagination.page": "Side",
|
||||
"pagination.page": "Page",
|
||||
|
||||
"password": "Passord",
|
||||
"paste": "Lim inn",
|
||||
|
@ -467,7 +468,7 @@
|
|||
"remove": "Fjern",
|
||||
"rename": "Endre navn",
|
||||
"replace": "Erstatt",
|
||||
"retry": "Pr\u00f8v p\u00e5 nytt",
|
||||
"retry": "Prøv på nytt",
|
||||
"revert": "Forkast",
|
||||
"revert.confirm": "Er du sikker på at vil <strong>slette alle ulagrede endringer</strong>?",
|
||||
|
||||
|
@ -546,7 +547,7 @@
|
|||
|
||||
"translation.author": "Kirby Team",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Norsk Bokm\u00e5l",
|
||||
"translation.name": "Norsk Bokmål",
|
||||
"translation.locale": "nb_NO",
|
||||
|
||||
"upload": "Last opp",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"upload.error.noFiles": "Ingen filer ble lastet opp",
|
||||
"upload.error.partial": "Den opplastede filen ble bare delvis lastet opp",
|
||||
"upload.error.tmpDir": "Mangler en midlertidig mappe",
|
||||
"upload.errors": "Feil",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Laster opp…",
|
||||
|
||||
"url": "Nettadresse",
|
||||
|
|
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Gelieve een geldig emailadres in te voeren",
|
||||
"error.user.language.invalid": "Gelieve een geldige taal in te voeren",
|
||||
"error.user.notFound": "De gebruiker \"{name}\" kan niet worden gevonden",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Gelieve een geldig wachtwoord in te voeren. Wachtwoorden moeten minstens 8 karakters lang zijn.",
|
||||
"error.user.password.notSame": "De wachtwoorden komen niet overeen",
|
||||
"error.user.password.undefined": "De gebruiker heeft geen wachtwoord",
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
|
||||
"add": "Dodaj",
|
||||
"author": "Autor",
|
||||
"avatar": "Zdj\u0119cie profilowe",
|
||||
"avatar": "Zdjęcie profilowe",
|
||||
"back": "Wróć",
|
||||
"cancel": "Anuluj",
|
||||
"change": "Zmie\u0144",
|
||||
"change": "Zmień",
|
||||
"close": "Zamknij",
|
||||
"confirm": "Ok",
|
||||
"collapse": "Zwiń",
|
||||
|
@ -22,16 +22,16 @@
|
|||
|
||||
"day": "Dzień",
|
||||
"days.fri": "Pt",
|
||||
"days.mon": "Pn",
|
||||
"days.mon": "Pon",
|
||||
"days.sat": "Sb",
|
||||
"days.sun": "Nd",
|
||||
"days.thu": "Czw",
|
||||
"days.tue": "Wt",
|
||||
"days.wed": "\u015ar",
|
||||
"days.wed": "Śr",
|
||||
|
||||
"debugging": "Debugowanie",
|
||||
|
||||
"delete": "Usu\u0144",
|
||||
"delete": "Usuń",
|
||||
"delete.all": "Usuń wszystkie",
|
||||
|
||||
"dialog.files.empty": "Brak plików do wyboru",
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
"dimensions": "Wymiary",
|
||||
"disabled": "Wyłączone",
|
||||
"discard": "Odrzu\u0107",
|
||||
"discard": "Odrzuć",
|
||||
"download": "Pobierz",
|
||||
"duplicate": "Zduplikuj",
|
||||
|
||||
|
@ -70,14 +70,14 @@
|
|||
"error.blocks.max.singular": "Możesz dodać tylko jeden blok",
|
||||
"error.blocks.min.plural": "Musisz dodać co najmniej {min} bloki/-ów",
|
||||
"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.blocks.validation": "Wystąpił błąd w polu „{field}” w bloku {index} o typie bloku „{fieldset}”",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
"error.cache.type.invalid": "Nieprawidłowy typ pamięci podręcznej „{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}\"",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Pole „{ name }”: Typ pola „{ type }” nie istnieje",
|
||||
|
||||
"error.file.changeName.empty": "Imię nie może być puste",
|
||||
"error.file.changeName.permission": "Nie masz uprawnień, by zmienić nazwę \"{filename}\"",
|
||||
|
@ -110,14 +110,14 @@
|
|||
"error.language.name": "Wprowadź poprawną nazwę języka.",
|
||||
"error.language.notFound": "Język nie został odnaleziony",
|
||||
|
||||
"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": "Wystąpił błąd w polu „{field}” w bloku {blockIndex} o typie bloku „{fieldset}” w układzie {layoutIndex}",
|
||||
"error.layout.validation.settings": "W ustawieniach układu {index} jest błąd",
|
||||
|
||||
"error.license.format": "Wprowadź poprawny klucz licencyjny",
|
||||
"error.license.email": "Wprowadź poprawny adres email",
|
||||
"error.license.verification": "Nie udało się zweryfikować licencji",
|
||||
|
||||
"error.object.validation": "There’s an error in the \"{label}\" field:\n{message}",
|
||||
"error.object.validation": "Wystąpił błąd w polu „{label}”:\n{message}",
|
||||
|
||||
"error.offline": "Panel jest obecnie offline",
|
||||
|
||||
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Wprowadź poprawny adres email",
|
||||
"error.user.language.invalid": "Proszę podać poprawny język",
|
||||
"error.user.notFound": "Nie można znaleźć użytkownika \"{name}\"",
|
||||
"error.user.password.excessive": "Wpisz prawidłowe hasło. Hasła nie mogą być dłuższe niż 1000 znaków.",
|
||||
"error.user.password.invalid": "Wprowadź prawidłowe hasło. Hasła muszą mieć co najmniej 8 znaków.",
|
||||
"error.user.password.notSame": "Hasła nie są takie same",
|
||||
"error.user.password.undefined": "Użytkownik nie ma hasła",
|
||||
|
@ -262,7 +263,7 @@
|
|||
"field.blocks.image.placeholder": "Wybierz obrazek",
|
||||
"field.blocks.image.ratio": "Proporcje",
|
||||
"field.blocks.image.url": "URL obrazka",
|
||||
"field.blocks.line.name": "Linijka",
|
||||
"field.blocks.line.name": "Linia",
|
||||
"field.blocks.list.name": "Lista",
|
||||
"field.blocks.markdown.name": "Markdown",
|
||||
"field.blocks.markdown.label": "Tekst",
|
||||
|
@ -287,13 +288,13 @@
|
|||
"field.layout.empty": "Nie ma jeszcze żadnych rzędów",
|
||||
"field.layout.select": "Wybierz układ",
|
||||
|
||||
"field.object.empty": "No information yet",
|
||||
"field.object.empty": "Brak informacji",
|
||||
|
||||
"field.pages.empty": "Nie wybrano jeszcze żadnych stron",
|
||||
|
||||
"field.structure.delete.confirm": "Czy na pewno chcesz usunąć ten wiersz?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.empty": "Nie ma jeszcze \u017cadnych wpis\u00f3w.",
|
||||
"field.structure.delete.confirm.all": "Czy na pewno chcesz usunąć wszystkie wpisy?",
|
||||
"field.structure.empty": "Nie ma jeszcze żadnych wpisów.",
|
||||
|
||||
"field.users.empty": "Nie wybrano jeszcze żadnych użytkowników",
|
||||
|
||||
|
@ -326,7 +327,7 @@
|
|||
"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",
|
||||
|
||||
"language": "J\u0119zyk",
|
||||
"language": "Język",
|
||||
"language.code": "Kod",
|
||||
"language.convert": "Ustaw jako domyślny",
|
||||
"language.convert.confirm": "<p>Czy na pewno chcesz zmienić domyślny język na <strong>{name}</strong>? Nie można tego cofnąć.</p><p>Jeżeli brakuje tłumaczenia jakichś treści na <strong>{name}</strong>, nie będzie ich czym zastąpić i części witryny mogą być puste.</p>",
|
||||
|
@ -353,8 +354,8 @@
|
|||
"license.manage": "Zarządzaj swoimi licencjami",
|
||||
"license.register.help": "Po zakupieniu licencji otrzymałaś/-eś mailem klucz. Skopiuj go i wklej tutaj, aby dokonać rejestracji.",
|
||||
"license.register.label": "Wprowadź swój kod licencji",
|
||||
"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": "Twoja licencja zostanie zarejestrowana na <strong>{host}</strong>.",
|
||||
"license.register.local": "Zamierzasz zarejestrować licencję dla swojej domeny lokalnej <strong>{host}</strong>. Jeśli ta witryna zostanie wdrożona w domenie ogólnodostępnej, zarejestruj ją tam. Jeżeli {host} jest faktycznie domeną, do której chcesz przypisać licencję, kontynuuj.",
|
||||
"license.register.success": "Dziękujemy za wspieranie Kirby",
|
||||
"license.unregistered": "To jest niezarejestrowana wersja demonstracyjna Kirby",
|
||||
"license.unregistered.label": "Niezarejestrowane",
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "Minuty",
|
||||
|
||||
"month": "Miesiąc",
|
||||
"months.april": "Kwiecie\u0144",
|
||||
"months.august": "Sierpie\u0144",
|
||||
"months.december": "Grudzie\u0144",
|
||||
"months.april": "Kwiecień",
|
||||
"months.august": "Sierpień",
|
||||
"months.december": "Grudzień",
|
||||
"months.february": "Luty",
|
||||
"months.january": "Stycze\u0144",
|
||||
"months.january": "Styczeń",
|
||||
"months.july": "Lipiec",
|
||||
"months.june": "Czerwiec",
|
||||
"months.march": "Marzec",
|
||||
"months.may": "Maj",
|
||||
"months.november": "Listopad",
|
||||
"months.october": "Pa\u017adziernik",
|
||||
"months.september": "Wrzesie\u0144",
|
||||
"months.october": "Październik",
|
||||
"months.september": "Wrzesień",
|
||||
|
||||
"more": "Więcej",
|
||||
"name": "Nazwa",
|
||||
|
@ -426,8 +427,8 @@
|
|||
"orientation.square": "Kwadrat",
|
||||
|
||||
"page.blueprint": "Ta strona nie ma jeszcze wzorca. Możesz go zdefiniować w <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Zmie\u0144 URL",
|
||||
"page.changeSlug.fromTitle": "Utw\u00f3rz na podstawie tytu\u0142u",
|
||||
"page.changeSlug": "Zmień URL",
|
||||
"page.changeSlug.fromTitle": "Utwórz na podstawie tytułu",
|
||||
"page.changeStatus": "Zmień status",
|
||||
"page.changeStatus.position": "Wybierz pozycję",
|
||||
"page.changeStatus.select": "Wybierz nowy status",
|
||||
|
@ -456,19 +457,19 @@
|
|||
|
||||
"pagination.page": "Strona",
|
||||
|
||||
"password": "Has\u0142o",
|
||||
"password": "Hasło",
|
||||
"paste": "Wklej",
|
||||
"paste.after": "Wklej po",
|
||||
"pixel": "Piksel",
|
||||
"plugin": "Plugin",
|
||||
"plugin": "Wtyczka",
|
||||
"plugins": "Wtyczki",
|
||||
"prev": "Poprzednie",
|
||||
"preview": "Podgląd",
|
||||
"remove": "Usuń",
|
||||
"rename": "Zmień nazwę",
|
||||
"replace": "Zamie\u0144",
|
||||
"retry": "Pon\u00f3w pr\u00f3b\u0119",
|
||||
"revert": "Odrzu\u0107",
|
||||
"replace": "Zastąp",
|
||||
"retry": "Ponów próbę",
|
||||
"revert": "Odrzuć",
|
||||
"revert.confirm": "Czy na pewno chcesz <strong>usunąć wszystkie niezapisane zmiany</strong>?",
|
||||
|
||||
"role": "Rola",
|
||||
|
@ -500,24 +501,24 @@
|
|||
|
||||
"stats.empty": "Brak raportów",
|
||||
"system.issues.content": "Zdaje się, że folder „content” jest wystawiony na publiczny dostęp",
|
||||
"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.eol.kirby": "Twoja zainstalowana wersja Kirby osiągnęła koniec okresu wsparcia i nie będzie otrzymywać dalszych aktualizacji zabezpieczeń",
|
||||
"system.issues.eol.plugin": "Twoja zainstalowana wersja wtyczki { plugin } osiągnęła koniec okresu wsparcia i nie będzie otrzymywać dalszych aktualizacji zabezpieczeń",
|
||||
"system.issues.debug": "Debugowanie musi być wyłączone w środowisku produkcyjnym",
|
||||
"system.issues.git": "Zdaje się, że folder „.git” jest wystawiony na publiczny dostęp",
|
||||
"system.issues.https": "Zalecamy HTTPS dla wszystkich Twoich witryn",
|
||||
"system.issues.kirby": "Zdaje się, że folder „kirby” jest wystawiony na publiczny dostęp",
|
||||
"system.issues.site": "Zdaje się, że folder „site” jest wystawiony na publiczny dostęp",
|
||||
"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",
|
||||
"system.issues.vulnerability.kirby": "Twojej instalacji może zagrażać następująca luka w zabezpieczeniach ({ severity } stopień): { description }",
|
||||
"system.issues.vulnerability.plugin": "Twojej instalacji może zagrażać następująca luka w zabezpieczeniach we wtyczce { plugin } ({ severity } poziom): { description }",
|
||||
"system.updateStatus": "Stan aktualizacji",
|
||||
"system.updateStatus.error": "Nie udało się sprawdzić dostępności aktualizacji",
|
||||
"system.updateStatus.not-vulnerable": "Brak znanych luk bezpieczeństwa",
|
||||
"system.updateStatus.security-update": "Dostępna darmowa aktualizacja { version } z poprawkami bezpieczeństwa",
|
||||
"system.updateStatus.security-upgrade": "Dostępna aktualizacja { version } z poprawkami bezpieczeństwa",
|
||||
"system.updateStatus.unreleased": "Niepublikowana wersja",
|
||||
"system.updateStatus.up-to-date": "Aktualna",
|
||||
"system.updateStatus.update": "Dostępna darmowa aktualizacja { version }",
|
||||
"system.updateStatus.upgrade": "Dostępna aktualizacja { version }",
|
||||
|
||||
"title": "Tytuł",
|
||||
"template": "Szablon",
|
||||
|
@ -584,9 +585,9 @@
|
|||
"users": "Użytkownicy",
|
||||
|
||||
"version": "Wersja",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
"version.current": "Obecna wersja",
|
||||
"version.latest": "Ostatnia wersja",
|
||||
"versionInformation": "Informacje o wersji",
|
||||
|
||||
"view.account": "Twoje konto",
|
||||
"view.installation": "Instalacja",
|
||||
|
@ -594,7 +595,7 @@
|
|||
"view.resetPassword": "Zresetuj hasło",
|
||||
"view.site": "Strona",
|
||||
"view.system": "System",
|
||||
"view.users": "U\u017cytkownicy",
|
||||
"view.users": "Użytkownicy",
|
||||
|
||||
"welcome": "Witaj",
|
||||
"year": "Rok",
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"account.delete": "Deletar sua conta",
|
||||
"account.delete.confirm": "Deseja realmente deletar sua conta? Você sairá do site imediatamente. Sua conta não poderá ser recuperada. ",
|
||||
|
||||
"add": "Adicionar",
|
||||
"add": "Add",
|
||||
"author": "Autor",
|
||||
"avatar": "Foto do perfil",
|
||||
"back": "Voltar",
|
||||
"cancel": "Cancelar",
|
||||
"back": "Back",
|
||||
"cancel": "Cancel",
|
||||
"change": "Alterar",
|
||||
"close": "Fechar",
|
||||
"close": "Close",
|
||||
"confirm": "Salvar",
|
||||
"collapse": "Colapsar",
|
||||
"collapse.all": "Colapsar todos",
|
||||
|
@ -22,11 +22,11 @@
|
|||
|
||||
"day": "Dia",
|
||||
"days.fri": "Sex",
|
||||
"days.mon": "Seg",
|
||||
"days.sat": "S\u00e1b",
|
||||
"days.mon": "Mon",
|
||||
"days.sat": "Sáb",
|
||||
"days.sun": "Dom",
|
||||
"days.thu": "Qui",
|
||||
"days.tue": "Ter",
|
||||
"days.tue": "Tue",
|
||||
"days.wed": "Qua",
|
||||
|
||||
"debugging": "Depuração ",
|
||||
|
@ -40,14 +40,14 @@
|
|||
|
||||
"dimensions": "Dimensões",
|
||||
"disabled": "Desativado",
|
||||
"discard": "Descartar",
|
||||
"discard": "Discard",
|
||||
"download": "Baixar",
|
||||
"duplicate": "Duplicar",
|
||||
|
||||
"edit": "Editar",
|
||||
"edit": "Edit",
|
||||
|
||||
"email": "Email",
|
||||
"email.placeholder": "mail@exemplo.com",
|
||||
"email.placeholder": "mail@exemplo.pt",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "A orientação da imagem deve ser “{orientation}”",
|
||||
"error.file.type.forbidden": "Você não tem permissão para enviar arquivos {type}",
|
||||
"error.file.type.invalid": "Tipo inválido de arquivo: {type}",
|
||||
"error.file.undefined": "Arquivo n\u00e3o encontrado",
|
||||
"error.file.undefined": "Arquivo não encontrado",
|
||||
|
||||
"error.form.incomplete": "Por favor, corrija os erros do formulário…",
|
||||
"error.form.notSaved": "O formulário não pôde ser salvo",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "O slug deve ter menos de “{length}” caracteres",
|
||||
"error.page.sort.permission": "A página \"{slug}\" não pode ser ordenada",
|
||||
"error.page.status.invalid": "Por favor, defina um estado de página válido",
|
||||
"error.page.undefined": "P\u00e1gina n\u00e3o encontrada",
|
||||
"error.page.undefined": "Página não encontrada",
|
||||
"error.page.update.permission": "Você não tem permissão para atualizar \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Você não pode adicionar mais do que {max} arquivos à seção \"{section}\"",
|
||||
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Digite um endereço de email válido",
|
||||
"error.user.language.invalid": "Digite um idioma válido",
|
||||
"error.user.notFound": "Usuário \"{name}\" não encontrado",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Digite uma senha válida. Sua senha deve ter pelo menos 8 caracteres.",
|
||||
"error.user.password.notSame": "As senhas não combinam",
|
||||
"error.user.password.undefined": "O usuário não possui uma senha",
|
||||
|
@ -347,7 +348,7 @@
|
|||
"languages.secondary": "Idiomas secundários",
|
||||
"languages.secondary.empty": "Nenhum idioma secundário",
|
||||
|
||||
"license": "Licen\u00e7a do Kirby ",
|
||||
"license": "Licença do Kirby ",
|
||||
"license.buy": "Comprar licença",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
|
@ -372,7 +373,7 @@
|
|||
"lock.unlock": "Destrancar",
|
||||
"lock.isUnlocked": "Suas mudanças não salvas foram alteradas por outro usuário, e serão perdidas. Você pode baixar um arquivo com suas mudanças, para depois fundi-las manualmente. ",
|
||||
|
||||
"login": "Entrar",
|
||||
"login": "Log in",
|
||||
"login.code.label.login": "Código de acesso",
|
||||
"login.code.label.password-reset": "Código de redefinição de senha",
|
||||
"login.code.placeholder.email": "000 0000",
|
||||
|
@ -388,7 +389,7 @@
|
|||
"login.toggleText.password-reset.email": "Esqueceu sua senha?",
|
||||
"login.toggleText.password-reset.email-password": "← Voltar à entrada",
|
||||
|
||||
"logout": "Sair",
|
||||
"logout": "Log out",
|
||||
|
||||
"menu": "Menu",
|
||||
"meridiem": "AM/PM",
|
||||
|
@ -396,14 +397,14 @@
|
|||
"minutes": "Minutos",
|
||||
|
||||
"month": "Mês",
|
||||
"months.april": "Abril",
|
||||
"months.april": "April",
|
||||
"months.august": "Agosto",
|
||||
"months.december": "Dezembro",
|
||||
"months.december": "December",
|
||||
"months.february": "Fevereiro",
|
||||
"months.january": "Janeiro",
|
||||
"months.july": "Julho",
|
||||
"months.june": "Junho",
|
||||
"months.march": "Mar\u00e7o",
|
||||
"months.june": "June",
|
||||
"months.march": "Março",
|
||||
"months.may": "Maio",
|
||||
"months.november": "Novembro",
|
||||
"months.october": "Outubro",
|
||||
|
@ -427,7 +428,7 @@
|
|||
|
||||
"page.blueprint": "Esta página não tem planta. Você pode definir sua planta em <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Alterar URL",
|
||||
"page.changeSlug.fromTitle": "Criar a partir do t\u00edtulo",
|
||||
"page.changeSlug.fromTitle": "Criar a partir do título",
|
||||
"page.changeStatus": "Alterar estado",
|
||||
"page.changeStatus.position": "Selecione uma posição",
|
||||
"page.changeStatus.select": "Selecione um novo estado",
|
||||
|
@ -448,7 +449,7 @@
|
|||
"page.status.unlisted": "Não listadas",
|
||||
"page.status.unlisted.description": "Esta página é acessível somente através da URL",
|
||||
|
||||
"pages": "Páginas",
|
||||
"pages": "Pages",
|
||||
"pages.empty": "Nenhuma página",
|
||||
"pages.status.draft": "Rascunhos",
|
||||
"pages.status.listed": "Publicadas",
|
||||
|
@ -466,12 +467,12 @@
|
|||
"preview": "Visualizar",
|
||||
"remove": "Remover",
|
||||
"rename": "Renomear",
|
||||
"replace": "Substituir",
|
||||
"replace": "Replace",
|
||||
"retry": "Tentar novamente",
|
||||
"revert": "Descartar",
|
||||
"revert.confirm": "Deseja realmente <strong>deletar todas as mudanças não salvas</strong>?",
|
||||
|
||||
"role": "Papel",
|
||||
"role": "Função",
|
||||
"role.admin.description": "O administrador tem todos os direitos",
|
||||
"role.admin.title": "Administrador",
|
||||
"role.all": "Todos",
|
||||
|
@ -534,7 +535,7 @@
|
|||
"toolbar.button.heading.5": "Título 5",
|
||||
"toolbar.button.heading.6": "Título 6",
|
||||
"toolbar.button.italic": "Itálico",
|
||||
"toolbar.button.file": "Arquivo",
|
||||
"toolbar.button.file": "File",
|
||||
"toolbar.button.file.select": "Selecionar arquivo",
|
||||
"toolbar.button.file.upload": "Carregar arquivo",
|
||||
"toolbar.button.link": "Link",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"upload.error.noFiles": "Nenhum arquivo foi carregado",
|
||||
"upload.error.partial": "O arquivo foi só parcialmente carregado",
|
||||
"upload.error.tmpDir": "Falta uma pasta temporária",
|
||||
"upload.errors": "Erro",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "Enviando…",
|
||||
|
||||
"url": "Url",
|
||||
|
@ -577,24 +578,24 @@
|
|||
"user.changePassword.new.confirm": "Confirme a nova senha…",
|
||||
"user.changeRole": "Alterar papel",
|
||||
"user.changeRole.select": "Selecione um novo papel",
|
||||
"user.create": "Adicionar novo usuário",
|
||||
"user.create": "Add a new user",
|
||||
"user.delete": "Deletar este usuário",
|
||||
"user.delete.confirm": "Deseja realmente deletar <br><strong>{email}</strong>?",
|
||||
|
||||
"users": "Usuários",
|
||||
|
||||
"version": "Vers\u00e3o do Kirby",
|
||||
"version": "Versão do Kirby",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
|
||||
"view.account": "Sua conta",
|
||||
"view.installation": "Instala\u00e7\u00e3o",
|
||||
"view.installation": "Instalação",
|
||||
"view.languages": "Idiomas",
|
||||
"view.resetPassword": "Redefinir senha",
|
||||
"view.site": "Site",
|
||||
"view.system": "Sistema",
|
||||
"view.users": "Usu\u00e1rios",
|
||||
"view.users": "Usuários",
|
||||
|
||||
"welcome": "Bem-vindo",
|
||||
"year": "Ano",
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
"account.delete": "Deletar sua conta",
|
||||
"account.delete.confirm": "Deseja realmente deletar sua conta? Você sairá do site imediatamente. Sua conta não poderá ser recuperada. ",
|
||||
|
||||
"add": "Adicionar",
|
||||
"add": "Add",
|
||||
"author": "Autor",
|
||||
"avatar": "Foto do perfil",
|
||||
"back": "Voltar",
|
||||
"cancel": "Cancelar",
|
||||
"back": "Back",
|
||||
"cancel": "Cancel",
|
||||
"change": "Alterar",
|
||||
"close": "Fechar",
|
||||
"close": "Close",
|
||||
"confirm": "Salvar",
|
||||
"collapse": "Colapsar",
|
||||
"collapse.all": "Colapsar todos",
|
||||
|
@ -22,11 +22,11 @@
|
|||
|
||||
"day": "Dia",
|
||||
"days.fri": "Sex",
|
||||
"days.mon": "Seg",
|
||||
"days.sat": "S\u00e1b",
|
||||
"days.mon": "Mon",
|
||||
"days.sat": "Sáb",
|
||||
"days.sun": "Dom",
|
||||
"days.thu": "Qui",
|
||||
"days.tue": "Ter",
|
||||
"days.tue": "Tue",
|
||||
"days.wed": "Qua",
|
||||
|
||||
"debugging": "Depuração ",
|
||||
|
@ -40,11 +40,11 @@
|
|||
|
||||
"dimensions": "Dimensões",
|
||||
"disabled": "Inativo",
|
||||
"discard": "Descartar",
|
||||
"discard": "Discard",
|
||||
"download": "Descarregar",
|
||||
"duplicate": "Duplicar",
|
||||
|
||||
"edit": "Editar",
|
||||
"edit": "Edit",
|
||||
|
||||
"email": "Email",
|
||||
"email.placeholder": "mail@exemplo.pt",
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "A orientação da imagem deve ser \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Não tem permissões para enviar arquivos {type}",
|
||||
"error.file.type.invalid": "Tipo inválido de arquivo: {type}",
|
||||
"error.file.undefined": "Arquivo n\u00e3o encontrado",
|
||||
"error.file.undefined": "Arquivo não encontrado",
|
||||
|
||||
"error.form.incomplete": "Por favor, corrija os erros do formulário…",
|
||||
"error.form.notSaved": "O formulário não foi guardado",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "O slug não pode conter mais do que \"{length}\" caracteres",
|
||||
"error.page.sort.permission": "A página \"{slug}\" não pode ser ordenada",
|
||||
"error.page.status.invalid": "Por favor, defina um estado de página válido",
|
||||
"error.page.undefined": "P\u00e1gina n\u00e3o encontrada",
|
||||
"error.page.undefined": "Página não encontrada",
|
||||
"error.page.update.permission": "Não tem permissões para atualizar \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Não pode adicionar mais do que {max} arquivos à seção \"{section}\"",
|
||||
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Digite um endereço de email válido",
|
||||
"error.user.language.invalid": "Digite um idioma válido",
|
||||
"error.user.notFound": "Utilizador \"{name}\" não encontrado",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Digite uma palavra-passe válida. A sua palavra-passe deve ter pelo menos 8 caracteres.",
|
||||
"error.user.password.notSame": "As palavras-passe não combinam",
|
||||
"error.user.password.undefined": "O utilizador não possui uma palavra-passe",
|
||||
|
@ -347,7 +348,7 @@
|
|||
"languages.secondary": "Idiomas secundários",
|
||||
"languages.secondary.empty": "Nenhum idioma secundário",
|
||||
|
||||
"license": "Licen\u00e7a do Kirby ",
|
||||
"license": "Licença do Kirby ",
|
||||
"license.buy": "Comprar uma licença",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
|
@ -372,14 +373,14 @@
|
|||
"lock.unlock": "Desbloquear",
|
||||
"lock.isUnlocked": "As suas alterações foram sobrepostas por outro utilizador. Pode descarregar as suas alterações e combiná-las manualmente.",
|
||||
|
||||
"login": "Entrar",
|
||||
"login": "Log in",
|
||||
"login.code.label.login": "Código de acesso",
|
||||
"login.code.label.password-reset": "Código de redefinição de senha",
|
||||
"login.code.placeholder.email": "000 0000",
|
||||
"login.code.text.email": "Se seu endereço de email está registrado, o código requisitado será mandado por 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.body": "Oi, {user.nameOrEmail},\n\nVocê recentemente pediu um código de acesso ao painel administrativo do site {site}.\nO seguinte código será válido por {timeout} minutos:\n\n{code}\n\nSe você não pediu este código de acesso, por favor ignore esta mensagem, ou contate seu Administrador de Sistemas se você tiver dúvidas.\nPor questões de segurança, por favor NÃO compartilhe esta mensagem.",
|
||||
"login.email.login.subject": "Seu código de acesso",
|
||||
"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.body": "Oi, {user.nameOrEmail},\n\nVocê recentemente pediu um código de redefinição de senha, para o painel administrativo do site {site}.\nO seguinte código de redefinição de senha será válido por {timeout} minutos:\n\n{code}\n\nSe você não pediu este código, por favor ignore esta mensagem, ou contate seu Administrador de Sistemas se você tiver dúvidas.\nPor questões de segurança, por favor NÃO compartilhe esta mensagem.",
|
||||
"login.email.password-reset.subject": "Seu código de redefinição de senha",
|
||||
"login.remember": "Manter-me conectado",
|
||||
"login.reset": "Redefinir senha",
|
||||
|
@ -388,7 +389,7 @@
|
|||
"login.toggleText.password-reset.email": "Esqueceu sua senha?",
|
||||
"login.toggleText.password-reset.email-password": "← Voltar à entrada",
|
||||
|
||||
"logout": "Sair",
|
||||
"logout": "Log out",
|
||||
|
||||
"menu": "Menu",
|
||||
"meridiem": "AM/PM",
|
||||
|
@ -396,14 +397,14 @@
|
|||
"minutes": "Minutos",
|
||||
|
||||
"month": "Mês",
|
||||
"months.april": "Abril",
|
||||
"months.april": "April",
|
||||
"months.august": "Agosto",
|
||||
"months.december": "Dezembro",
|
||||
"months.december": "December",
|
||||
"months.february": "Fevereiro",
|
||||
"months.january": "Janeiro",
|
||||
"months.july": "Julho",
|
||||
"months.june": "Junho",
|
||||
"months.march": "Mar\u00e7o",
|
||||
"months.june": "June",
|
||||
"months.march": "Março",
|
||||
"months.may": "Maio",
|
||||
"months.november": "Novembro",
|
||||
"months.october": "Outubro",
|
||||
|
@ -427,7 +428,7 @@
|
|||
|
||||
"page.blueprint": "Esta página não tem planta. Você pode definir sua planta em <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Alterar URL",
|
||||
"page.changeSlug.fromTitle": "Criar a partir do t\u00edtulo",
|
||||
"page.changeSlug.fromTitle": "Criar a partir do título",
|
||||
"page.changeStatus": "Alterar estado",
|
||||
"page.changeStatus.position": "Selecione uma posição",
|
||||
"page.changeStatus.select": "Selecione um novo estado",
|
||||
|
@ -448,7 +449,7 @@
|
|||
"page.status.unlisted": "Não listadas",
|
||||
"page.status.unlisted.description": "Esta página é acessível somente através da URL",
|
||||
|
||||
"pages": "Páginas",
|
||||
"pages": "Pages",
|
||||
"pages.empty": "Nenhuma página",
|
||||
"pages.status.draft": "Rascunhos",
|
||||
"pages.status.listed": "Publicadas",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "Página",
|
||||
|
||||
"password": "Palavra-passe",
|
||||
"password": "Senha",
|
||||
"paste": "Colar",
|
||||
"paste.after": "Colar após",
|
||||
"pixel": "Pixel",
|
||||
|
@ -466,7 +467,7 @@
|
|||
"preview": "Visualizar",
|
||||
"remove": "Remover",
|
||||
"rename": "Renomear",
|
||||
"replace": "Substituir",
|
||||
"replace": "Replace",
|
||||
"retry": "Tentar novamente",
|
||||
"revert": "Descartar",
|
||||
"revert.confirm": "Tem a certeza que pretende <strong>eliminar todas as alterações por guardar</strong>?",
|
||||
|
@ -534,7 +535,7 @@
|
|||
"toolbar.button.heading.5": "Título 5",
|
||||
"toolbar.button.heading.6": "Título 6",
|
||||
"toolbar.button.italic": "Itálico",
|
||||
"toolbar.button.file": "Ficheiro",
|
||||
"toolbar.button.file": "File",
|
||||
"toolbar.button.file.select": "Selecione o arquivo",
|
||||
"toolbar.button.file.upload": "Carregue o arquivo",
|
||||
"toolbar.button.link": "Link",
|
||||
|
@ -561,7 +562,7 @@
|
|||
"upload.error.noFiles": "Nenhuns arquivos carregados",
|
||||
"upload.error.partial": "O arquivo foi parcialmente carregado",
|
||||
"upload.error.tmpDir": "Pasta temporária em falta",
|
||||
"upload.errors": "Erro",
|
||||
"upload.errors": "Error",
|
||||
"upload.progress": "A enviar…",
|
||||
|
||||
"url": "Url",
|
||||
|
@ -577,24 +578,24 @@
|
|||
"user.changePassword.new.confirm": "Confirme a nova palavra-passe…",
|
||||
"user.changeRole": "Alterar Função",
|
||||
"user.changeRole.select": "Selecione uma nova função",
|
||||
"user.create": "Adicionar novo utilizador",
|
||||
"user.create": "Add a new user",
|
||||
"user.delete": "Excluir este utilizador",
|
||||
"user.delete.confirm": "Deseja realmente excluir <br><strong>{email}</strong>?",
|
||||
|
||||
"users": "Utilizadores",
|
||||
"users": "Usuários",
|
||||
|
||||
"version": "Vers\u00e3o do Kirby",
|
||||
"version": "Versão do Kirby",
|
||||
"version.current": "Current version",
|
||||
"version.latest": "Latest version",
|
||||
"versionInformation": "Version information",
|
||||
|
||||
"view.account": "A sua conta",
|
||||
"view.installation": "Instala\u00e7\u00e3o",
|
||||
"view.installation": "Instalação",
|
||||
"view.languages": "Idiomas",
|
||||
"view.resetPassword": "Redefinir senha",
|
||||
"view.site": "Site",
|
||||
"view.system": "Sistema",
|
||||
"view.users": "Utilizadores",
|
||||
"view.users": "Usuários",
|
||||
|
||||
"welcome": "Bem-vindo",
|
||||
"year": "Ano",
|
||||
|
|
603
kirby/i18n/translations/ro.json
Normal file
603
kirby/i18n/translations/ro.json
Normal file
|
@ -0,0 +1,603 @@
|
|||
{
|
||||
"account.changeName": "Schimbă-ți numele",
|
||||
"account.delete": "Șterge-ți contul",
|
||||
"account.delete.confirm": "Chiar vrei să îți ștergi contul? Vei fi deconectat imediat. Contul nu poate fi recuperat.",
|
||||
|
||||
"add": "Adaugă",
|
||||
"author": "Autor",
|
||||
"avatar": "Imagine de profil",
|
||||
"back": "Înapoi",
|
||||
"cancel": "Anulează",
|
||||
"change": "Schimbă",
|
||||
"close": "Închide",
|
||||
"confirm": "Ok",
|
||||
"collapse": "Pliază",
|
||||
"collapse.all": "Pliază toate",
|
||||
"copy": "Copiază",
|
||||
"copy.all": "Copiază toate",
|
||||
"create": "Creează",
|
||||
|
||||
"date": "Data",
|
||||
"date.select": "Alege o dată",
|
||||
|
||||
"day": "Ziua",
|
||||
"days.fri": "Vin",
|
||||
"days.mon": "Lun",
|
||||
"days.sat": "Sâm",
|
||||
"days.sun": "Dum",
|
||||
"days.thu": "Joi",
|
||||
"days.tue": "Mar",
|
||||
"days.wed": "Mie",
|
||||
|
||||
"debugging": "Depanare",
|
||||
|
||||
"delete": "Șterge",
|
||||
"delete.all": "Șterge toate",
|
||||
|
||||
"dialog.files.empty": "Nu există fișiere de selectat",
|
||||
"dialog.pages.empty": "Nu există pagini de selectat",
|
||||
"dialog.users.empty": "Nu există utilizatori de selectat",
|
||||
|
||||
"dimensions": "Dimensiuni",
|
||||
"disabled": "Dezactivat",
|
||||
"discard": "Renunță",
|
||||
"download": "Descarcă",
|
||||
"duplicate": "Duplică",
|
||||
|
||||
"edit": "Editează",
|
||||
|
||||
"email": "Adresă e-mail",
|
||||
"email.placeholder": "email@exemplu.ro",
|
||||
|
||||
"entries": "Întregistrări",
|
||||
"entry": "Înregistrare",
|
||||
|
||||
"environment": "Mediu",
|
||||
|
||||
"error.access.code": "Cod invalid",
|
||||
"error.access.login": "Conectare invalidă",
|
||||
"error.access.panel": "Nu ai voie să accesezi panoul",
|
||||
"error.access.view": "Nu ai voie să accesezi această parte a panoului",
|
||||
|
||||
"error.avatar.create.fail": "Imaginea de profil nu a putut fi încărcată",
|
||||
"error.avatar.delete.fail": "Imaginea de profil nu a putut fi ștearsă",
|
||||
"error.avatar.dimensions.invalid": "Păstrează te rog lățimea și înălțimea imaginii de profil sub 3000 de pixeli",
|
||||
"error.avatar.mime.forbidden": "Imaginea de profil trebuie să fie un fișier JPEG sau PNG",
|
||||
|
||||
"error.blueprint.notFound": "Blueprint-ul \"{name}\" nu a putut fi încărcat",
|
||||
|
||||
"error.blocks.max.plural": "Nu poți adăuga mai mult de {max} blocuri",
|
||||
"error.blocks.max.singular": "Nu poți adăuga mai mult de un bloc",
|
||||
"error.blocks.min.plural": "Trebuie să adaugi cel puțin {min} blocuri",
|
||||
"error.blocks.min.singular": "Trebuie să adaugi cel puțin un bloc",
|
||||
"error.blocks.validation": "Există o eroare la câmpul \"{field}\" în blocul {index} care folosește tipul de bloc \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Tipul de cache \"{type}\" este invalid",
|
||||
|
||||
"error.email.preset.notFound": "Preset-ul de e-mail \"{name}\" nu a fost găsit",
|
||||
|
||||
"error.field.converter.invalid": "Convertorul \"{converter}\" invalid",
|
||||
"error.field.type.missing": "Câmpul \"{ name }\": Tipul de câmp \"{ type }\" nu există",
|
||||
|
||||
"error.file.changeName.empty": "Numele nu trebuie să fie gol",
|
||||
"error.file.changeName.permission": "Nu ai voie să schimbi numele fișierului \"{filename}\"",
|
||||
"error.file.duplicate": "Există deja un fișier cu numele \"{filename}\"",
|
||||
"error.file.extension.forbidden": "Extensia de fișier \"{extension}\" nu este permisă",
|
||||
"error.file.extension.invalid": "Extensie de fișier invalidă: {extension}",
|
||||
"error.file.extension.missing": "Extensia de fișier pentru \"{filename}\" lipsește",
|
||||
"error.file.maxheight": "Înălțimea imaginii nu poate depăși {height} pixeli",
|
||||
"error.file.maxsize": "Fișierul este prea mare",
|
||||
"error.file.maxwidth": "Lățimea imaginii nu poate depăși {width} pixeli",
|
||||
"error.file.mime.differs": "Fișierul încărcat trebuie să aibă același tip mime \"{mime}\"",
|
||||
"error.file.mime.forbidden": "Tipul media \"{mime}\" nu este permis",
|
||||
"error.file.mime.invalid": "Tip mime invalid: {mime}",
|
||||
"error.file.mime.missing": "Tipul media pentru \"{filename}\" nu poate fi detectat",
|
||||
"error.file.minheight": "Imaginea trebuie să aibă înălțimea de minim {height} pixeli",
|
||||
"error.file.minsize": "Fișierul este prea mic",
|
||||
"error.file.minwidth": "Imaginea trebuie să aibă lățimea de minim {width} pixeli",
|
||||
"error.file.name.missing": "Numele fișierului nu poate fi gol",
|
||||
"error.file.notFound": "Fișierul \"{filename}\" nu a fost găsit",
|
||||
"error.file.orientation": "Orientarea imaginii trebuie să fie \"{orientation}\"",
|
||||
"error.file.type.forbidden": "Nu ai permisiunea să încarci fișiere {type}",
|
||||
"error.file.type.invalid": "Tip invalid de fișier: {type}",
|
||||
"error.file.undefined": "Fișierul nu a fost găsit",
|
||||
|
||||
"error.form.incomplete": "Te rog repară toate erorile din formular…",
|
||||
"error.form.notSaved": "Formularul nu a putut fi salvat",
|
||||
|
||||
"error.language.code": "Te rog introdu un cod valid pentru limbă",
|
||||
"error.language.duplicate": "Limba există deja",
|
||||
"error.language.name": "Te rog introdu un nume valid pentru limbă",
|
||||
"error.language.notFound": "Limba nu a fost găsită",
|
||||
|
||||
"error.layout.validation.block": "Există o eroare la câmpul \"{field}\" în blocul {blockIndex} care utilizează tipul de bloc \"{fieldset}\" în aranjamentul {layoutIndex}",
|
||||
"error.layout.validation.settings": "Există o eroare la setările aranjamentului {index}",
|
||||
|
||||
"error.license.format": "Te rog introdu o cheie de licență validă",
|
||||
"error.license.email": "Te rog introdu o adresă de e-mail validă",
|
||||
"error.license.verification": "Licența nu a putut fi verificată",
|
||||
|
||||
"error.object.validation": "Există o eroare la câmpul \"{label}\":\n{message}",
|
||||
|
||||
"error.offline": "Panoul este momentan offline",
|
||||
|
||||
"error.page.changeSlug.permission": "Nu ai voie să schimbi apendicele URL pentru \"{slug}\"",
|
||||
"error.page.changeStatus.incomplete": "Pagina are erori și nu poate fi publicată",
|
||||
"error.page.changeStatus.permission": "Statusul acestei pagini nu poate fi schimbat",
|
||||
"error.page.changeStatus.toDraft.invalid": "Pagina \"{slug}\" nu poate fi schimbată în ciornă",
|
||||
"error.page.changeTemplate.invalid": "Șablonul paginii \"{slug}\" nu poate fi schimbat",
|
||||
"error.page.changeTemplate.permission": "Nu ai voie să schimbi șablonul pentru \"{slug}\"",
|
||||
"error.page.changeTitle.empty": "Titlul nu poate să rămână gol",
|
||||
"error.page.changeTitle.permission": "Nu ai voie să schimbi titlul pentru \"{slug}\"",
|
||||
"error.page.create.permission": "Nu ai voie să creezi \"{slug}\"",
|
||||
"error.page.delete": "Pagina \"{slug}\" nu poate fi ștearsă",
|
||||
"error.page.delete.confirm": "Te rog introdu titlul paginii pentru a confirma",
|
||||
"error.page.delete.hasChildren": "Pagina are subpagini și nu poate fi ștearsă",
|
||||
"error.page.delete.permission": "Nu ai voie să ștergi \"{slug}\"",
|
||||
"error.page.draft.duplicate": "Există deja o ciornă cu apendicele URL \"{slug}\"",
|
||||
"error.page.duplicate": "Există deja o pagină cu apendicele URL \"{slug}\"",
|
||||
"error.page.duplicate.permission": "Nu ai voie să duplici \"{slug}\"",
|
||||
"error.page.notFound": "Pagina \"{slug}\" nu a fost găsită",
|
||||
"error.page.num.invalid": "Te rog introdu un număr de sortare valid. Numerele nu pot fi negative.",
|
||||
"error.page.slug.invalid": "Te rog introdu un apendice URL valid",
|
||||
"error.page.slug.maxlength": "Lungimea slug-ului nu poate depăși \"{length}\"",
|
||||
"error.page.sort.permission": "Pagina \"{slug}\" nu poate fi sortată",
|
||||
"error.page.status.invalid": "Te rog stabilește un status valid pentru pagină",
|
||||
"error.page.undefined": "Pagina nu a fost găsită",
|
||||
"error.page.update.permission": "Nu ai voie să actualizezi \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Nu poți avea mai mult de {max} fișiere în secțiunea \"{section}\"",
|
||||
"error.section.files.max.singular": "Nu poți avea mai mult de un fișier în secțiunea \"{section}\"",
|
||||
"error.section.files.min.plural": "Secțiunea \"{section}\" are nevoie de cel puțin {min} fișiere",
|
||||
"error.section.files.min.singular": "Secțiunea \"{section}\" are nevoie de cel puțin un fișier",
|
||||
|
||||
"error.section.pages.max.plural": "Nu poți avea mai mult de {max} pagini în secțiunea \"{section}\"",
|
||||
"error.section.pages.max.singular": "Nu poți avea mai mult de o pagină în secțiunea \"{section}\"",
|
||||
"error.section.pages.min.plural": "Secțiunea \"{section}\" are nevoie de cel puțin {min} pagini",
|
||||
"error.section.pages.min.singular": "Secțiunea \"{section}\" are nevoie de cel puțin o pagină",
|
||||
|
||||
"error.section.notLoaded": "Secțiunea \"{name}\" nu a putut fi încărcată",
|
||||
"error.section.type.invalid": "Tipul de secțiune \"{type}\" nu este valid",
|
||||
|
||||
"error.site.changeTitle.empty": "Titlul nu poate să rămână gol",
|
||||
"error.site.changeTitle.permission": "Nu ai voie să schimbi titlul site-ului",
|
||||
"error.site.update.permission": "Nu ai voie să actualizezi site-ul",
|
||||
|
||||
"error.template.default.notFound": "Șablonul implicit nu există",
|
||||
|
||||
"error.unexpected": "S-a produs o eroare neașteptată! Activează modul depanare pentru mai multe informații: https://getkirby.com/docs/reference/system/options/debug",
|
||||
|
||||
"error.user.changeEmail.permission": "Nu ai voie să schimbi adresa de e-mail a utilizatorului \"{name}\"",
|
||||
"error.user.changeLanguage.permission": "Nu ai voie să schimbi limba utilizatorului \"{name}\"",
|
||||
"error.user.changeName.permission": "Nu ai voie să schimbi numele utilizatorului \"{name}\"",
|
||||
"error.user.changePassword.permission": "Nu ai voie să schimbi parola utilizatorului \"{name}\"",
|
||||
"error.user.changeRole.lastAdmin": "Rolul ultimului administrator nu poate fi schimbat",
|
||||
"error.user.changeRole.permission": "Nu ai voie să schimbi rolul utilizatorului \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "Nu ai voie să promovezi un utilizator la rolul de administrator",
|
||||
"error.user.create.permission": "Nu ai voie să creezi acest utilizator",
|
||||
"error.user.delete": "Utilizatorul \"{name}\" nu poate fi șters",
|
||||
"error.user.delete.lastAdmin": "Ultimul administrator nu poate fi șters",
|
||||
"error.user.delete.lastUser": "Ultimul utilizator nu poate fi șters",
|
||||
"error.user.delete.permission": "Nu ai voie să ștergi utilizatorul \"{name}\"",
|
||||
"error.user.duplicate": "Există deja un utilizator cu adresa e-mail \"{email}\"",
|
||||
"error.user.email.invalid": "Te rog introdu o adresă de e-mail validă",
|
||||
"error.user.language.invalid": "Te rog introdu o limbă validă",
|
||||
"error.user.notFound": "Utilizatorul \"{name}\" nu a fost găsit",
|
||||
"error.user.password.excessive": "Te rog introdu o parolă validă. Parolele nu pot fi mai lungi de 1000 de caractere.",
|
||||
"error.user.password.invalid": "Te rog introdu o parolă validă. Parola trebuie să aibă cel puțin 8 caractere.",
|
||||
"error.user.password.notSame": "Parolele nu se potrivesc",
|
||||
"error.user.password.undefined": "Utilizatorul nu are parolă",
|
||||
"error.user.password.wrong": "Parolă greșită",
|
||||
"error.user.role.invalid": "Te rog introdu un rol valid",
|
||||
"error.user.undefined": "Utilizatorul nu a fost găsit",
|
||||
"error.user.update.permission": "Nu ai voie să actualizezi utilizatorul \"{name}\"",
|
||||
|
||||
"error.validation.accepted": "Te rog confirmă",
|
||||
"error.validation.alpha": "Te rog introdu doar caractere din intervalul a-z",
|
||||
"error.validation.alphanum": "Te rog introdu doar caractere din intervalul a-z sau cifre 0-9",
|
||||
"error.validation.between": "Te rog introdu o valoare între \"{min}\" și \"{max}\"",
|
||||
"error.validation.boolean": "Te rog confirmă sau refuză",
|
||||
"error.validation.contains": "Te rog introdu o valoare care conține \"{needle}\"",
|
||||
"error.validation.date": "Te rog introdu o dată validă",
|
||||
"error.validation.date.after": "Te rog introdu o dată după {date}",
|
||||
"error.validation.date.before": "Te rog introdu o dată dinainte de {date}",
|
||||
"error.validation.date.between": "Te rog introdu o dată între {min} și {max}",
|
||||
"error.validation.denied": "Te rog refuză",
|
||||
"error.validation.different": "Valoarea nu poate fi \"{other}\"",
|
||||
"error.validation.email": "Te rog introdu o adresă de e-mail validă",
|
||||
"error.validation.endswith": "Valoarea nu se poate termina cu \"{end}\"",
|
||||
"error.validation.filename": "Te rog introdu un nume valid de fișier",
|
||||
"error.validation.in": "Te rog introdu una dintre următoarele: ({in})",
|
||||
"error.validation.integer": "Te rog introdu un număr întreg valid",
|
||||
"error.validation.ip": "Te rog introdu o adresă IP validă",
|
||||
"error.validation.less": "Te rog introdu o valoare mai mică decât {max}",
|
||||
"error.validation.match": "Valoarea nu se potrivește cu forma așteptată",
|
||||
"error.validation.max": "Te rog introdu o valoare mai mică sau egală cu {max}",
|
||||
"error.validation.maxlength": "Te rog introdu o valoare mai scurtă. (max. {max} caractere)",
|
||||
"error.validation.maxwords": "Te rog nu introduce mai mult de {max} cuvinte.",
|
||||
"error.validation.min": "Te rog introdu o valoare mai mare sau egală cu {min}",
|
||||
"error.validation.minlength": "Te rog introdu o valoare mai lungă. (min. {min} caractere)",
|
||||
"error.validation.minwords": "Te rog introdu cel puțin {min} cuvinte",
|
||||
"error.validation.more": "Te rog introdu o valoare mai mare decât {min}",
|
||||
"error.validation.notcontains": "Te rog introdu o valoare care să nu conțină \"{needle}\"",
|
||||
"error.validation.notin": "Te rog nu introduce niciuna dintre următoarele: ({notIn})",
|
||||
"error.validation.option": "Te rog alege o opțiune validă",
|
||||
"error.validation.num": "Te rog introdu un număr valid",
|
||||
"error.validation.required": "Te rog introdu ceva",
|
||||
"error.validation.same": "Te rog introdu \"{other}\"",
|
||||
"error.validation.size": "Dimensiunea valorii trebuie să fie \"{size}\"",
|
||||
"error.validation.startswith": "Valoarea trebuie să înceapă cu \"{start}\"",
|
||||
"error.validation.time": "Te rog introdu un timp valid",
|
||||
"error.validation.time.after": "Te rog introdu un timp după {time}",
|
||||
"error.validation.time.before": "Te rog introdu un timp înainte de {time}",
|
||||
"error.validation.time.between": "Te rog introdu un timp între {min} și {max}",
|
||||
"error.validation.url": "Te rog introdu un URL valid",
|
||||
|
||||
"expand": "Extinde",
|
||||
"expand.all": "Extinde toate",
|
||||
|
||||
"field.required": "Acest câmp este necesar",
|
||||
"field.blocks.changeType": "Schimbă tipul",
|
||||
"field.blocks.code.name": "Cod",
|
||||
"field.blocks.code.language": "Limba",
|
||||
"field.blocks.code.placeholder": "Codul tău …",
|
||||
"field.blocks.delete.confirm": "Chiar vrei să ștergi acest bloc?",
|
||||
"field.blocks.delete.confirm.all": "Chiar vrei să ștergi toate blocurile?",
|
||||
"field.blocks.delete.confirm.selected": "Chiar vrei să ștergi blocurile selectate?",
|
||||
"field.blocks.empty": "Niciun bloc deocamdată",
|
||||
"field.blocks.fieldsets.label": "Te rog alege un tip de bloc …",
|
||||
"field.blocks.fieldsets.paste": "Apasă <kbd>{{ shortcut }}</kbd> pentru a insera/aduce blocuri din clipboard-ul tău",
|
||||
"field.blocks.gallery.name": "Galerie",
|
||||
"field.blocks.gallery.images.empty": "Nicio imagine deocamdată",
|
||||
"field.blocks.gallery.images.label": "Imagini",
|
||||
"field.blocks.heading.level": "Nivel",
|
||||
"field.blocks.heading.name": "Subtitlu",
|
||||
"field.blocks.heading.text": "Text",
|
||||
"field.blocks.heading.placeholder": "Subtitlu …",
|
||||
"field.blocks.image.alt": "Text alternativ",
|
||||
"field.blocks.image.caption": "Etichetă",
|
||||
"field.blocks.image.crop": "Decupaj",
|
||||
"field.blocks.image.link": "Legătură",
|
||||
"field.blocks.image.location": "Localizare",
|
||||
"field.blocks.image.name": "Imagine",
|
||||
"field.blocks.image.placeholder": "Alege o imagine",
|
||||
"field.blocks.image.ratio": "Raport",
|
||||
"field.blocks.image.url": "URL-ul imaginii",
|
||||
"field.blocks.line.name": "Linie",
|
||||
"field.blocks.list.name": "Listă",
|
||||
"field.blocks.markdown.name": "Markdown",
|
||||
"field.blocks.markdown.label": "Text",
|
||||
"field.blocks.markdown.placeholder": "Markdown …",
|
||||
"field.blocks.quote.name": "Citat",
|
||||
"field.blocks.quote.text.label": "Text",
|
||||
"field.blocks.quote.text.placeholder": "Citat …",
|
||||
"field.blocks.quote.citation.label": "Citare",
|
||||
"field.blocks.quote.citation.placeholder": "de …",
|
||||
"field.blocks.text.name": "Text",
|
||||
"field.blocks.text.placeholder": "Text …",
|
||||
"field.blocks.video.caption": "Etichetă",
|
||||
"field.blocks.video.name": "Video",
|
||||
"field.blocks.video.placeholder": "Introdu URL-ul video-ului",
|
||||
"field.blocks.video.url.label": "URL-ul video-ului",
|
||||
"field.blocks.video.url.placeholder": "https://youtube.com/?v=",
|
||||
|
||||
"field.files.empty": "Niciun fișier selectat deocamdată",
|
||||
|
||||
"field.layout.delete": "Șterge aranjamentul",
|
||||
"field.layout.delete.confirm": "Chiar vrei să ștergi acest aranjament?",
|
||||
"field.layout.empty": "Niciun rând deocamdată",
|
||||
"field.layout.select": "Alege un aranjament",
|
||||
|
||||
"field.object.empty": "Nicio informație deocamdată",
|
||||
|
||||
"field.pages.empty": "Nicio pagină aleasă deocamdată",
|
||||
|
||||
"field.structure.delete.confirm": "Chiar vrei să ștergi acest rând?",
|
||||
"field.structure.delete.confirm.all": "Chiar vrei să ștergi toate înregistrările?",
|
||||
"field.structure.empty": "Nicio înregistrare deocamdată",
|
||||
|
||||
"field.users.empty": "Niciun utilizator ales deocamdată",
|
||||
|
||||
"file.blueprint": "Acest fișier nu are încă un Blueprint. Poți să-l definești în <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.delete.confirm": "Chiar vrei să ștergi <br><strong>{filename}</strong>?",
|
||||
"file.sort": "Schimbă poziția",
|
||||
|
||||
"files": "Fișiere",
|
||||
"files.empty": "Niciun fișier deocamdată",
|
||||
|
||||
"hide": "Ascunde",
|
||||
"hour": "Ora",
|
||||
"import": "Importă",
|
||||
"info": "Informații",
|
||||
"insert": "Inserează",
|
||||
"insert.after": "Inserează după",
|
||||
"insert.before": "Inserează înainte",
|
||||
"install": "Instalează",
|
||||
|
||||
"installation": "Instalare",
|
||||
"installation.completed": "Panoul a fost instalat",
|
||||
"installation.disabled": "Instalarea panoului este dezactivată în mod implicit pe servere publice. Te rog rulează instalarea pe o mașină locală sau activează-l cu opțiunea <code>panel.install</code>.",
|
||||
"installation.issues.accounts": "Directorul <i>/site/accounts</i> nu există sau nu are permisiuni de scriere.",
|
||||
"installation.issues.content": "Directorul <code>/content</code> nu există sau nu are permisiuni de scriere.",
|
||||
"installation.issues.curl": "Extensia <code>CURL</code> este necesară",
|
||||
"installation.issues.headline": "Panoul nu poate fi instalat",
|
||||
"installation.issues.mbstring": "Extensia <code>MB String</code> este necesară",
|
||||
"installation.issues.media": "Directorul <code>/media</code> nu există sau nu are permisiuni de scriere",
|
||||
"installation.issues.php": "Asigură-te că folosești <code>PHP 8+</code>",
|
||||
"installation.issues.server": "Kirby are nevoie de <code>Apache</code>, <code>Nginx</code> sau <code>Caddy</code>",
|
||||
"installation.issues.sessions": "Directorul <code>/site/sessions</code> folder nu există sau nu are permisiuni de scriere",
|
||||
|
||||
"language": "Limba",
|
||||
"language.code": "Cod",
|
||||
"language.convert": "Stabilește ca implicit",
|
||||
"language.convert.confirm": "<p>Chiar vrei să transformi <strong>{name}</strong> în limba implicită? Această modificare este ireversibilă.</p><p>Dacă <strong>{name}</strong> are conținut netradus, unele părți din site s-ar putea să nu mai aibă conținut de rezervă, și vor apărea goale.</p>",
|
||||
"language.create": "Adaugă o limbă nouă",
|
||||
"language.delete.confirm": "Chiar vrei să ștergi limba <strong>{name}</strong>, inclusiv toate traducerile? Această operațiune este ireversibilă.",
|
||||
"language.deleted": "Limba a fost ștearsă",
|
||||
"language.direction": "Direcția de citire",
|
||||
"language.direction.ltr": "De la stânga la dreapta",
|
||||
"language.direction.rtl": "De la dreapta la stânga",
|
||||
"language.locale": "String-ul PHP locale",
|
||||
"language.locale.warning": "Folosești pentru localizare o formulă manuală. Modificările le poți face în fișierul de limbă în /site/languages",
|
||||
"language.name": "Nume",
|
||||
"language.updated": "Limba a fost actualizată",
|
||||
|
||||
"languages": "Limbi",
|
||||
"languages.default": "Limba implicită",
|
||||
"languages.empty": "Nu există limbi deocamdată",
|
||||
"languages.secondary": "Limbi secundare",
|
||||
"languages.secondary.empty": "Nu există limbi secundare deocamdată.",
|
||||
|
||||
"license": "Licența",
|
||||
"license.buy": "Cumpără o licență",
|
||||
"license.register": "Înregistrează-te",
|
||||
"license.manage": "Gestionează-ți licențele",
|
||||
"license.register.help": "Ai primit codul de licență pe adresa de e-mail după cumpărare. Te rog copiaz-o și insereaz-o pentru a te înregistra.",
|
||||
"license.register.label": "Te rog introdu codul tău de licență",
|
||||
"license.register.domain": "Licența îți va fi înregistrată pentru <strong>{host}</strong>.",
|
||||
"license.register.local": "Ești pe punctul de a-ți înregistra licența pentru domeniul tău local <strong>{host}</strong>. Dacă acest site va fi instalat pe un domeniu public, te rog înregistrează licența acolo, nu aici. Dacă {host} este domeniul pentru care vrei licența Kirby, te rog continuă.",
|
||||
"license.register.success": "Mulțumim că susții Kirby",
|
||||
"license.unregistered": "Acesta este un demo Kirby neînregistrat",
|
||||
"license.unregistered.label": "Neînregistrat",
|
||||
|
||||
"link": "Legătură",
|
||||
"link.text": "Textul legăturii",
|
||||
|
||||
"loading": "Se încarcă",
|
||||
|
||||
"lock.unsaved": "Schimbări nesalvate",
|
||||
"lock.unsaved.empty": "Nu mai există nicio schimbare nesalvată",
|
||||
"lock.isLocked": "Schimbări nesalvate de <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "Fișierul este editat momentan de {email} și nu poate fi schimbat.",
|
||||
"lock.page.isLocked": "Pagina este editată momentan de {email} și nu poate fi schimbată.",
|
||||
"lock.unlock": "Deblochează",
|
||||
"lock.isUnlocked": "Schimbările tale nesalvate au fost suprascrise de un alt utilizator. Poți să-ți descarci schimbările pentru a le încorpora manual.",
|
||||
|
||||
"login": "Conectează-te",
|
||||
"login.code.label.login": "Cod de conectare",
|
||||
"login.code.label.password-reset": "Cod de restabilire parolă",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
"login.code.text.email": "Dacă adresa de e-mail este înregistrată, codul cerut a fost trimis pe adresă.",
|
||||
"login.email.login.body": "Salut {user.nameOrEmail},\n\nAi cerut recent un cod de conectare pentru Panoul site-ului {site}.\nCodul de conectare de mai jos va fi valid pentru următoarele {timeout} minute:\n\n{code}\n\nDacă nu tu ai cerut un cod de conectare, te rog ignoră acest e-mail sau ia legătura cu administratorul site-ului dacă ai întrebări.\nDin motive de siguranță, te rog să NU trimiți acest email mai departe.",
|
||||
"login.email.login.subject": "Codul tău de conectare",
|
||||
"login.email.password-reset.body": "Salut {user.nameOrEmail},\n\nAi cerut recent un cod de restabilire a parolei pentru Panoul site-ului {site}.\nCodul de restabilire a parolei de mai jos este valabil pentru următoarele {timeout} minute:\n\n{code}\n\nDacă nu tu ai cerut codul de restabilire a parolei, te rog ignoră acest e-mail sau ia legătura cu administratorul site-ului dacă ai întrebări.\nDin motive de securitate, te rog să NU trimiți acest e-mail mai departe.",
|
||||
"login.email.password-reset.subject": "Codul tău de restabilire a parolei",
|
||||
"login.remember": "Ține-mă conectat",
|
||||
"login.reset": "Restabilește parola",
|
||||
"login.toggleText.code.email": "Conectare prin e-mail",
|
||||
"login.toggleText.code.email-password": "Conectare cu parola",
|
||||
"login.toggleText.password-reset.email": "Ți-ai uitat parola?",
|
||||
"login.toggleText.password-reset.email-password": "← Înapoi la conectare",
|
||||
|
||||
"logout": "Deconectează-te",
|
||||
|
||||
"menu": "Meniu",
|
||||
"meridiem": "AM/PM",
|
||||
"mime": "Tipul media",
|
||||
"minutes": "Minute",
|
||||
|
||||
"month": "Luna",
|
||||
"months.april": "Aprilie",
|
||||
"months.august": "August",
|
||||
"months.december": "Decembrie",
|
||||
"months.february": "Februarie",
|
||||
"months.january": "Ianuarie",
|
||||
"months.july": "Iulie",
|
||||
"months.june": "Iunie",
|
||||
"months.march": "Martie",
|
||||
"months.may": "Mai",
|
||||
"months.november": "Noiembrie",
|
||||
"months.october": "Octombrie",
|
||||
"months.september": "Septembrie",
|
||||
|
||||
"more": "Mai multe",
|
||||
"name": "Nume",
|
||||
"next": "Următoarea",
|
||||
"no": "nu",
|
||||
"off": "oprit",
|
||||
"on": "pornit",
|
||||
"open": "Deschide",
|
||||
"open.newWindow": "Deschide în fereastră nouă",
|
||||
"options": "Opțiuni",
|
||||
"options.none": "Nicio opțiune",
|
||||
|
||||
"orientation": "Orientare",
|
||||
"orientation.landscape": "Landscape",
|
||||
"orientation.portrait": "Portrait",
|
||||
"orientation.square": "Pătrată",
|
||||
|
||||
"page.blueprint": "Această pagină nu are încă un Blueprint. Poți să-l definești în <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Schimbă URL-ul",
|
||||
"page.changeSlug.fromTitle": "Creează din titlu",
|
||||
"page.changeStatus": "Schimbă statusul",
|
||||
"page.changeStatus.position": "Te rog alege o poziție",
|
||||
"page.changeStatus.select": "Alege un status nou",
|
||||
"page.changeTemplate": "Schimbă șablonul",
|
||||
"page.delete.confirm": "Chiar vrei să ștergi <strong>{title}</strong>?",
|
||||
"page.delete.confirm.subpages": "<strong>Această pagină are subpagini</strong>. <br>Subpaginile vor fi de asemenea toate șterse.",
|
||||
"page.delete.confirm.title": "Introdu titlul paginii pentru a confirma",
|
||||
"page.draft.create": "Creează ciornă",
|
||||
"page.duplicate.appendix": "Copiază",
|
||||
"page.duplicate.files": "Copiază fișierele",
|
||||
"page.duplicate.pages": "Copiază paginile",
|
||||
"page.sort": "Schimbă poziția",
|
||||
"page.status": "Status",
|
||||
"page.status.draft": "Ciornă",
|
||||
"page.status.draft.description": "Pagina este în modul ciornă și va fi vizibilă doar editorilor conectați sau printr-un link secret",
|
||||
"page.status.listed": "Publică",
|
||||
"page.status.listed.description": "Pagina este publică, accesibilă oricui",
|
||||
"page.status.unlisted": "Nelistate",
|
||||
"page.status.unlisted.description": "Pagina este accesibilă doar prin URL",
|
||||
|
||||
"pages": "Pagini",
|
||||
"pages.empty": "Nicio pagină deocamdată",
|
||||
"pages.status.draft": "Ciorne",
|
||||
"pages.status.listed": "Publicate",
|
||||
"pages.status.unlisted": "Nelistate",
|
||||
|
||||
"pagination.page": "Pagină",
|
||||
|
||||
"password": "Parola",
|
||||
"paste": "Inserează",
|
||||
"paste.after": "Inserează după",
|
||||
"pixel": "Pixel",
|
||||
"plugin": "Plugin",
|
||||
"plugins": "Plugin-uri",
|
||||
"prev": "Precedenta",
|
||||
"preview": "Previzualizează",
|
||||
"remove": "Înlătură",
|
||||
"rename": "Redenumește",
|
||||
"replace": "Înlocuiește",
|
||||
"retry": "Încearcă din nou",
|
||||
"revert": "Renunță",
|
||||
"revert.confirm": "Chiar vrei să ștergi <strong>toate schimbările nesalvate</strong>?",
|
||||
|
||||
"role": "Rol",
|
||||
"role.admin.description": "Administratorul are toate drepturile",
|
||||
"role.admin.title": "Administrator",
|
||||
"role.all": "Toate",
|
||||
"role.empty": "Nu există niciun utilizator cu acest rol",
|
||||
"role.description.placeholder": "Nicio descriere",
|
||||
"role.nobody.description": "Acesta este un rol de rezervă fără nicio permisiune.",
|
||||
"role.nobody.title": "Nimeni",
|
||||
|
||||
"save": "Salvează",
|
||||
"search": "Caută",
|
||||
"search.min": "Introdu {min} caractere pentru a căuta",
|
||||
"search.all": "Arată toate",
|
||||
"search.results.none": "Niciun rezultat",
|
||||
|
||||
"section.required": "Această secțiune este necesară",
|
||||
|
||||
"security": "Securitate",
|
||||
"select": "Alege",
|
||||
"server": "Server",
|
||||
"settings": "Reglaje",
|
||||
"show": "Arată",
|
||||
"site.blueprint": "Site-ul nu are încă un Blueprint. Poți să-l definești în <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Dimensiune",
|
||||
"slug": "Apendicele URL",
|
||||
"sort": "Sortare",
|
||||
|
||||
"stats.empty": "Niciun raport",
|
||||
"system.issues.content": "Directorul de conținut pare să fie expus",
|
||||
"system.issues.eol.kirby": "Versiunea instalată de Kirby a ajuns la sfârșitul vieții utile și nu va mai primi actualizări de securitate.",
|
||||
"system.issues.eol.plugin": "Versiunea instalată a plugin-ului { plugin } a ajuns la sfârșitul vieții utile și nu va mai primi actualizări de securitate.",
|
||||
"system.issues.debug": "Modul depanare trebuie să fie oprit în producție",
|
||||
"system.issues.git": "Directorul .git pare să fie expus",
|
||||
"system.issues.https": "Recomandăm HTTPS pentru toate site-urile.",
|
||||
"system.issues.kirby": "Directorul Kirby pare să fie expus",
|
||||
"system.issues.site": "Directorul site pare să fie expus",
|
||||
"system.issues.vulnerability.kirby": "Instalarea ta ar putea fi afectată de următoarea vulnerabilitate ({ severity } severity): { description }",
|
||||
"system.issues.vulnerability.plugin": "Instalarea ta ar putea fi afectată de următoarea vulnerabilitate în plugin-ul { plugin } ({ severity } severity): { description }",
|
||||
"system.updateStatus": "Status actualizare",
|
||||
"system.updateStatus.error": "Nu am putut căuta actualizări",
|
||||
"system.updateStatus.not-vulnerable": "Nicio vulnerabilitate cunoscută",
|
||||
"system.updateStatus.security-update": "Actualizare gratuită de securitate { version } disponibilă",
|
||||
"system.updateStatus.security-upgrade": "Actualizarea { version } cu reparații de securitate disponibilă",
|
||||
"system.updateStatus.unreleased": "Versiune nelansată",
|
||||
"system.updateStatus.up-to-date": "La zi",
|
||||
"system.updateStatus.update": "Actualizare gratuită { version } disponibilă",
|
||||
"system.updateStatus.upgrade": "Actualizare { version } disponibilă",
|
||||
|
||||
"title": "Titlu",
|
||||
"template": "Șablon",
|
||||
"today": "Astăzi",
|
||||
|
||||
"toolbar.button.code": "Cod",
|
||||
"toolbar.button.bold": "Bold",
|
||||
"toolbar.button.email": "Adresă e-mail",
|
||||
"toolbar.button.headings": "Subtitluri",
|
||||
"toolbar.button.heading.1": "Subtitlu 1",
|
||||
"toolbar.button.heading.2": "Subtitlu 2",
|
||||
"toolbar.button.heading.3": "Subtitlu 3",
|
||||
"toolbar.button.heading.4": "Subtitlu 4",
|
||||
"toolbar.button.heading.5": "Subtitlu 5",
|
||||
"toolbar.button.heading.6": "Subtitlu 6",
|
||||
"toolbar.button.italic": "Italic",
|
||||
"toolbar.button.file": "Fișier",
|
||||
"toolbar.button.file.select": "Alege un fișier",
|
||||
"toolbar.button.file.upload": "Încarcă un fișier",
|
||||
"toolbar.button.link": "Legătură",
|
||||
"toolbar.button.paragraph": "Paragraf",
|
||||
"toolbar.button.strike": "Tăiat",
|
||||
"toolbar.button.ol": "Listă ordonată",
|
||||
"toolbar.button.underline": "Subliniat",
|
||||
"toolbar.button.ul": "Listă cu puncte",
|
||||
|
||||
"translation.author": "Echipa Kirby",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "Română",
|
||||
"translation.locale": "ro_RO",
|
||||
|
||||
"upload": "Încarcă",
|
||||
"upload.error.cantMove": "Fișierul încărcat nu a putut fi mutat",
|
||||
"upload.error.cantWrite": "Nu s-a putut scrie fișierul pe disc",
|
||||
"upload.error.default": "Fișierul nu a putut fi încărcat",
|
||||
"upload.error.extension": "Încărcarea fișierelor oprită de extensie",
|
||||
"upload.error.formSize": "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formular",
|
||||
"upload.error.iniPostSize": "Fișierul încărcat depășește directiva post_max_size din php.ini",
|
||||
"upload.error.iniSize": "Fișierul încărcat depășește directiva upload_max_filesize din php.ini",
|
||||
"upload.error.noFile": "Nu a fost încărcat niciun fișier",
|
||||
"upload.error.noFiles": "Nu au fost încărcate fișiere",
|
||||
"upload.error.partial": "Fișierul a fost încărcat doar parțial",
|
||||
"upload.error.tmpDir": "Lipsește un director temporar",
|
||||
"upload.errors": "Eroare",
|
||||
"upload.progress": "Se încarcă...",
|
||||
|
||||
"url": "Url",
|
||||
"url.placeholder": "https://example.com",
|
||||
|
||||
"user": "Utilizator",
|
||||
"user.blueprint": "Poți defini secțiuni și câmpuri de formular suplimentare pentru acest rol de utilizator în <strong>/site/blueprints/users/{blueprint}.yml</strong>",
|
||||
"user.changeEmail": "Schimbă adresa de e-mail",
|
||||
"user.changeLanguage": "Schimbă limba",
|
||||
"user.changeName": "Redenumește acest utilizator",
|
||||
"user.changePassword": "Schimbă parola",
|
||||
"user.changePassword.new": "Parola nouă",
|
||||
"user.changePassword.new.confirm": "Confirmă parola nouă...",
|
||||
"user.changeRole": "Schimbă rolul",
|
||||
"user.changeRole.select": "Alege un rol nou",
|
||||
"user.create": "Adaugă un nou utilizator",
|
||||
"user.delete": "Șterge acest utilizator",
|
||||
"user.delete.confirm": "Chiar vrei să ștergi <br><strong>{email}</strong>?",
|
||||
|
||||
"users": "Utilizatori",
|
||||
|
||||
"version": "Versiune",
|
||||
"version.current": "Versiunea curentă",
|
||||
"version.latest": "Ultima versiune",
|
||||
"versionInformation": "Informații despre versiune",
|
||||
|
||||
"view.account": "Contul tău",
|
||||
"view.installation": "Instalare",
|
||||
"view.languages": "Limbi",
|
||||
"view.resetPassword": "Restabilește parola",
|
||||
"view.site": "Site",
|
||||
"view.system": "Sistem",
|
||||
"view.users": "Utilizatori",
|
||||
|
||||
"welcome": "Bun venit",
|
||||
"year": "Anul",
|
||||
"yes": "da"
|
||||
}
|
|
@ -1,19 +1,19 @@
|
|||
{
|
||||
"account.changeName": "Изменить имя",
|
||||
"account.delete": "Удалить аккаунт",
|
||||
"account.delete": "Удалить пользователя",
|
||||
"account.delete.confirm": "Вы действительно хотите удалить свой аккаунт? Вы сразу покинете панель управления, а аккаунт нельзя будет восстановить.",
|
||||
|
||||
"add": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c",
|
||||
"add": "Добавить",
|
||||
"author": "Автор",
|
||||
"avatar": "\u0410\u0432\u0430\u0442\u0430\u0440 (\u0444\u043e\u0442\u043e)",
|
||||
"avatar": "Аватар",
|
||||
"back": "Назад",
|
||||
"cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
|
||||
"change": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c",
|
||||
"close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
|
||||
"cancel": "Отменить",
|
||||
"change": "Изменить",
|
||||
"close": "Закрыть",
|
||||
"confirm": "Ок",
|
||||
"collapse": "Свернуть",
|
||||
"collapse.all": "Свернуть все",
|
||||
"copy": "Скопировать",
|
||||
"copy": "(копия)",
|
||||
"copy.all": "Копировать все",
|
||||
"create": "Создать",
|
||||
|
||||
|
@ -21,17 +21,17 @@
|
|||
"date.select": "Выберите дату",
|
||||
|
||||
"day": "День",
|
||||
"days.fri": "\u041f\u0442",
|
||||
"days.mon": "\u041f\u043d",
|
||||
"days.sat": "\u0421\u0431",
|
||||
"days.sun": "\u0412\u0441",
|
||||
"days.thu": "\u0427\u0442",
|
||||
"days.tue": "\u0412\u0442",
|
||||
"days.wed": "\u0421\u0440",
|
||||
"days.fri": "Пт",
|
||||
"days.mon": "Пн",
|
||||
"days.sat": "Сб",
|
||||
"days.sun": "Сб",
|
||||
"days.thu": "Чт",
|
||||
"days.tue": "Вт",
|
||||
"days.wed": "Ср",
|
||||
|
||||
"debugging": "Отладка",
|
||||
|
||||
"delete": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c",
|
||||
"delete": "Удалить",
|
||||
"delete.all": "Удалить все",
|
||||
|
||||
"dialog.files.empty": "Нет файлов для выбора",
|
||||
|
@ -40,11 +40,11 @@
|
|||
|
||||
"dimensions": "Размеры",
|
||||
"disabled": "Отключено",
|
||||
"discard": "\u0421\u0431\u0440\u043e\u0441",
|
||||
"discard": "Сброс",
|
||||
"download": "Скачать",
|
||||
"duplicate": "Дублировать",
|
||||
|
||||
"edit": "\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c",
|
||||
"edit": "Редактировать",
|
||||
|
||||
"email": "Email",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
@ -60,7 +60,7 @@
|
|||
"error.access.view": "У вас нет прав доступа к этой части панели",
|
||||
|
||||
"error.avatar.create.fail": "Не удалось загрузить фотографию профиля",
|
||||
"error.avatar.delete.fail": "\u0410\u0432\u0430\u0442\u0430\u0440 (\u0444\u043e\u0442\u043e) \u043a \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d",
|
||||
"error.avatar.delete.fail": "Аватар (фото) к аккаунту не может быть удален",
|
||||
"error.avatar.dimensions.invalid": "Пожалуйста, сделайте чтобы ширина или высота фотографии была меньше 3000 пикселей",
|
||||
"error.avatar.mime.forbidden": "Фотография профиля должна быть JPEG или PNG",
|
||||
|
||||
|
@ -72,12 +72,12 @@
|
|||
"error.blocks.min.singular": "Вы должны добавить хотя бы один блок",
|
||||
"error.blocks.validation": "Ошибка в поле \"{field}\" в блоке {index} типа \"{fieldset}\"",
|
||||
|
||||
"error.cache.type.invalid": "Invalid cache type \"{type}\"",
|
||||
"error.cache.type.invalid": "Неверный тип кэша: \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "Шаблон эл. почты \"{name}\" не найден",
|
||||
"error.email.preset.notFound": "Email-шаблон \"{name}\" не найден",
|
||||
|
||||
"error.field.converter.invalid": "Неверный конвертер \"{converter}\"",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Поле \"{ name }\": тип поля \"{ type }\" не существует",
|
||||
|
||||
"error.file.changeName.empty": "Название не может быть пустым",
|
||||
"error.file.changeName.permission": "У вас нет права изменить название \"{filename}\"",
|
||||
|
@ -96,11 +96,11 @@
|
|||
"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.notFound": "Файл не найден",
|
||||
"error.file.orientation": "Ориентация изображения должна быть \"{orientation}\"",
|
||||
"error.file.type.forbidden": "У вас нет права загружать файлы {type}",
|
||||
"error.file.type.invalid": "Неверный тип файла: {type}",
|
||||
"error.file.undefined": "\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
||||
"error.file.undefined": "Файл не найден",
|
||||
|
||||
"error.form.incomplete": "Пожалуйста, исправьте все ошибки в форме",
|
||||
"error.form.notSaved": "Форма не может быть сохранена",
|
||||
|
@ -121,7 +121,7 @@
|
|||
|
||||
"error.offline": "Панель управления не в сети",
|
||||
|
||||
"error.page.changeSlug.permission": "\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c URL \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b",
|
||||
"error.page.changeSlug.permission": "Вы не можете изменить URL этой страницы",
|
||||
"error.page.changeStatus.incomplete": "На странице есть ошибки и поэтому ее нельзя опубликовать",
|
||||
"error.page.changeStatus.permission": "Невозможно изменить статус для этой страницы",
|
||||
"error.page.changeStatus.toDraft.invalid": "Невозможно конвертировать в черновик страницу \"{slug}\"",
|
||||
|
@ -134,16 +134,16 @@
|
|||
"error.page.delete.confirm": "Впишите название страницы чтобы подтвердить",
|
||||
"error.page.delete.hasChildren": "У страницы есть внутренние страницы, поэтому ее невозможно удалить",
|
||||
"error.page.delete.permission": "У вас нет права удалить \"{slug}\"",
|
||||
"error.page.draft.duplicate": "Черновик страницы с аппендиксом URL \"{slug}\" уже есть",
|
||||
"error.page.duplicate": "Страница с аппендиксом URL \"{slug}\" уже есть",
|
||||
"error.page.draft.duplicate": "Черновик страницы с URL \"{slug}\" уже есть",
|
||||
"error.page.duplicate": "Страница с URL \"{slug}\" уже есть",
|
||||
"error.page.duplicate.permission": "У вас нет права дублировать \"{slug}\"",
|
||||
"error.page.notFound": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
|
||||
"error.page.notFound": "Страница не найдена",
|
||||
"error.page.num.invalid": "Пожалуйста, впишите правильное число сортировки. Число не может быть отрицательным.",
|
||||
"error.page.slug.invalid": "Пожалуйста, введите правильный URL",
|
||||
"error.page.slug.maxlength": "Длина ссылки должна быть короче \"{length}\" символов",
|
||||
"error.page.sort.permission": "Невозможно сортировать страницу \"{slug}\"",
|
||||
"error.page.status.invalid": "Пожалуйста, установите верный статус страницы",
|
||||
"error.page.undefined": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
|
||||
"error.page.undefined": "Страница не найдена",
|
||||
"error.page.update.permission": "У вас нет права обновить \"{slug}\"",
|
||||
|
||||
"error.section.files.max.plural": "Нельзя добавить больше чем {max} файлов в секции \"{section}\"",
|
||||
|
@ -175,16 +175,17 @@
|
|||
"error.user.changeRole.permission": "У вас нет права изменять роль пользователя \"{name}\"",
|
||||
"error.user.changeRole.toAdmin": "У вас нет прав предоставить роль администратора",
|
||||
"error.user.create.permission": "У вас нет права создать этого пользователя",
|
||||
"error.user.delete": "\u0410\u043a\u043a\u0430\u0443\u043d\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d",
|
||||
"error.user.delete.lastAdmin": "\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430",
|
||||
"error.user.delete": "Аккаунт не может быть удален",
|
||||
"error.user.delete.lastAdmin": "Вы не можете удалить единственного администратора",
|
||||
"error.user.delete.lastUser": "Нельзя удалить единственного пользователя",
|
||||
"error.user.delete.permission": "У вас нет права удалить пользователя \"{name}\"",
|
||||
"error.user.duplicate": "Пользователь с Email \"{email}\" уже есть",
|
||||
"error.user.email.invalid": "Пожалуйста, введите правильный адрес эл. почты",
|
||||
"error.user.email.invalid": "Пожалуйста, введите правильный Email",
|
||||
"error.user.language.invalid": "Введите правильный язык",
|
||||
"error.user.notFound": "Пользователь \"{name}\" не найден",
|
||||
"error.user.password.excessive": "Пожалуйста, введите верный пароль. Длина паролей не должна превышать 1000 символов.",
|
||||
"error.user.password.invalid": "Пожалуйста, введите правильный пароль. Он должен состоять минимум из 8 символов.",
|
||||
"error.user.password.notSame": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c",
|
||||
"error.user.password.notSame": "Пожалуйста, подтвердите пароль",
|
||||
"error.user.password.undefined": "У пользователя нет пароля",
|
||||
"error.user.password.wrong": "Неверный пароль",
|
||||
"error.user.role.invalid": "Введите правильную роль",
|
||||
|
@ -292,7 +293,7 @@
|
|||
"field.pages.empty": "Страницы не выбраны",
|
||||
|
||||
"field.structure.delete.confirm": "Вы точно хотите удалить эту запись?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "Вы действительно хотите удалить все значения?",
|
||||
"field.structure.empty": "Записей нет",
|
||||
|
||||
"field.users.empty": "Пользователей нет",
|
||||
|
@ -302,13 +303,13 @@
|
|||
"file.sort": "Изменить позицию",
|
||||
|
||||
"files": "Файлы",
|
||||
"files.empty": "Еще нет файлов",
|
||||
"files.empty": "Ещё нет файлов",
|
||||
|
||||
"hide": "Скрыть",
|
||||
"hour": "Час",
|
||||
"import": "Импортировать",
|
||||
"info": "Информация",
|
||||
"insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
|
||||
"insert": "Вставить",
|
||||
"insert.after": "Вставить ниже",
|
||||
"insert.before": "Вставить выше",
|
||||
"install": "Установить",
|
||||
|
@ -326,7 +327,7 @@
|
|||
"installation.issues.server": "Kirby требует <code>Apache</code>, <code>Nginx</code> или <code>Caddy</code> ",
|
||||
"installation.issues.sessions": "Каталог <code>/site/sessions</code> не существует или нет прав записи",
|
||||
|
||||
"language": "\u042f\u0437\u044b\u043a",
|
||||
"language": "Язык",
|
||||
"language.code": "Код",
|
||||
"language.convert": "Установить по умолчанию",
|
||||
"language.convert.confirm": "<p>Вы точно хотите конвертировать <strong>{name}</strong> в главный язык? Это нельзя будет отменить.</p><p>Если <strong>{name}</strong> имеет непереведенный контент, то больше не будет верного каскада и части вашего сайта могут быть пустыми.</p>",
|
||||
|
@ -351,21 +352,21 @@
|
|||
"license.buy": "Купить лицензию",
|
||||
"license.register": "Зарегистрировать",
|
||||
"license.manage": "Управление лицензиями",
|
||||
"license.register.help": "После покупки вы получили по эл. почте код лицензии. Пожалуйста скопируйте и вставьте сюда чтобы зарегистрировать.",
|
||||
"license.register.help": "После покупки вы получили на Email код лицензии. Вставьте его сюда, чтобы зарегистрировать копию.",
|
||||
"license.register.label": "Пожалуйста вставьте код лицензии",
|
||||
"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": "Ваша лицензия будет зарегистрирована на {host}.",
|
||||
"license.register.local": "Вы собираетесь зарегистрировать лицензию на локальный домен {host}. Если этот сайт будет размещен на общедоступном домене, то, пожалуйста, укажите его вместо {host}.",
|
||||
"license.register.success": "Спасибо за поддержку Kirby",
|
||||
"license.unregistered": "Это незарегистрированная версия Kirby",
|
||||
"license.unregistered.label": "Не зарегистрировано",
|
||||
|
||||
"link": "\u0421\u0441\u044b\u043b\u043a\u0430",
|
||||
"link.text": "\u0422\u0435\u043a\u0441\u0442 \u0441\u0441\u044b\u043b\u043a\u0438",
|
||||
"link": "Ссылка",
|
||||
"link.text": "Текст ссылки",
|
||||
|
||||
"loading": "Загрузка",
|
||||
|
||||
"lock.unsaved": "Несохраненные изменения",
|
||||
"lock.unsaved.empty": "Несохраненных изменений больше нет",
|
||||
"lock.unsaved.empty": "Несохраненных изменений нет",
|
||||
"lock.isLocked": "Несохраненные изменения пользователя <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "В данный момент этот файл редактирует {email}, поэтому его нельзя изменить.",
|
||||
"lock.page.isLocked": "В данный момент эту страницу редактирует {email}, поэтому его нельзя изменить.",
|
||||
|
@ -377,11 +378,11 @@
|
|||
"login.code.label.password-reset": "Код для сброса пароля",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
"login.code.text.email": "Если ваш Email уже зарегистрирован, запрашиваемый код был отправлен на него.",
|
||||
"login.email.login.body": "Привет, {user.nameOrEmail}!\n\nНедавно вы запросили код для входа на «{site}».\nСледующий код входа будет действителен в течение {timeout} минут:\n\n{code}\n\nЕсли вы не запрашивали код для входа, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.login.body": "{code} — код для входа на сайт {site}. Код действителен {timeout} минут.\n\nЗдравствуйте, {user.nameOrEmail}!\n\nЕсли вы не запрашивали код для входа, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.login.subject": "Ваш код для входа",
|
||||
"login.email.password-reset.body": "Привет, {user.nameOrEmail}!\n\nНедавно вы запросили сброс пароля для входа на «{site}».\nСледующий код входа будет действителен в течение {timeout} минут:\n\n{code}\n\nЕсли вы не запрашивали сброс пароля, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.password-reset.body": "{code} — код для сброса пароля на сайт «{site}». Код действителен {timeout} минут.\n\nЗдравствуйте, {user.nameOrEmail}!\n\nЕсли вы не запрашивали сброс пароля, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.password-reset.subject": "Ваш код для сброса пароля",
|
||||
"login.remember": "Сохранять вход активным",
|
||||
"login.remember": "Запомнить пароль",
|
||||
"login.reset": "Сбросить пароль",
|
||||
"login.toggleText.code.email": "Вход с помощью Email",
|
||||
"login.toggleText.code.email-password": "Вход с паролем",
|
||||
|
@ -396,20 +397,20 @@
|
|||
"minutes": "Минуты",
|
||||
|
||||
"month": "Месяц",
|
||||
"months.april": "\u0410\u043f\u0440\u0435\u043b\u044c",
|
||||
"months.august": "\u0410\u0432\u0433\u0443\u0441\u0442",
|
||||
"months.december": "\u0414\u0435\u043a\u0430\u0431\u0440\u044c",
|
||||
"months.april": "Апрель",
|
||||
"months.august": "Август",
|
||||
"months.december": "Декабрь",
|
||||
"months.february": "Февраль",
|
||||
"months.january": "\u042f\u043d\u0432\u0430\u0440\u044c",
|
||||
"months.july": "\u0418\u044e\u043b\u044c",
|
||||
"months.june": "\u0418\u044e\u043d\u044c",
|
||||
"months.march": "\u041c\u0430\u0440\u0442",
|
||||
"months.may": "\u041c\u0430\u0439",
|
||||
"months.november": "\u041d\u043e\u044f\u0431\u0440\u044c",
|
||||
"months.october": "\u041e\u043a\u0442\u044f\u0431\u0440\u044c",
|
||||
"months.september": "\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c",
|
||||
"months.january": "Январь",
|
||||
"months.july": "Июль",
|
||||
"months.june": "Июнь",
|
||||
"months.march": "Март",
|
||||
"months.may": "Май",
|
||||
"months.november": "Ноябрь",
|
||||
"months.october": "Октябрь",
|
||||
"months.september": "Сентябрь",
|
||||
|
||||
"more": "Подробнее",
|
||||
"more": "Еще",
|
||||
"name": "Название",
|
||||
"next": "Дальше",
|
||||
"no": "нет",
|
||||
|
@ -452,11 +453,11 @@
|
|||
"pages.empty": "Страниц нет",
|
||||
"pages.status.draft": "Черновики",
|
||||
"pages.status.listed": "Опубликовано",
|
||||
"pages.status.unlisted": "Скрытая",
|
||||
"pages.status.unlisted": "Скрыта",
|
||||
|
||||
"pagination.page": "Страница",
|
||||
|
||||
"password": "\u041f\u0430\u0440\u043e\u043b\u044c",
|
||||
"password": "Пароль",
|
||||
"paste": "Вставить",
|
||||
"paste.after": "Вставить после",
|
||||
"pixel": "Пиксель",
|
||||
|
@ -465,13 +466,13 @@
|
|||
"prev": "Предыдущий",
|
||||
"preview": "Предпросмотр",
|
||||
"remove": "Удалить",
|
||||
"rename": "Переназвать",
|
||||
"replace": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c",
|
||||
"retry": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c",
|
||||
"revert": "\u0421\u0431\u0440\u043e\u0441",
|
||||
"rename": "Переименовать",
|
||||
"replace": "Заменить",
|
||||
"retry": "Повторить",
|
||||
"revert": "Сброс",
|
||||
"revert.confirm": "Вы действительно хотите <strong>удалить все несохраненные изменения</strong>?",
|
||||
|
||||
"role": "\u0420\u043e\u043b\u044c",
|
||||
"role": "Роль",
|
||||
"role.admin.description": "Администратор имеет все права",
|
||||
"role.admin.title": "Администратор",
|
||||
"role.all": "Все",
|
||||
|
@ -480,7 +481,7 @@
|
|||
"role.nobody.description": "Эта роль применяется если у пользователя нет никаких прав",
|
||||
"role.nobody.title": "Никто",
|
||||
|
||||
"save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c",
|
||||
"save": "Сохранить",
|
||||
"search": "Поиск",
|
||||
"search.min": "Введите хотя бы {min} символов для поиска",
|
||||
"search.all": "Показать все",
|
||||
|
@ -495,36 +496,36 @@
|
|||
"show": "Показать",
|
||||
"site.blueprint": "У сайта пока нет разметки. Вы можете определить новые секции и поля разметки в <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Размер",
|
||||
"slug": "Понятная ссылка",
|
||||
"slug": "URL",
|
||||
"sort": "Сортировать",
|
||||
|
||||
"stats.empty": "Статистики нет",
|
||||
"system.issues.content": "Похоже, к папке content есть несанкционированный доступ",
|
||||
"system.issues.eol.kirby": "Срок службы установленной вами версии Kirby истек, и она больше не будет получать обновления для системы безопасности",
|
||||
"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.eol.plugin": "Срок службы установленной вами версии плагина { plugin } истек, и он не будет получать дальнейших обновлений для системы безопасности",
|
||||
"system.issues.debug": "Включен режим отладки (debugging). Используйте его только при разработке.",
|
||||
"system.issues.git": "Похоже, к папке .git есть несанкционированный доступ",
|
||||
"system.issues.https": "Рекомендуется использовать HTTPS на всех сайтах",
|
||||
"system.issues.kirby": "Похоже, к папке kirby есть несанкционированный доступ",
|
||||
"system.issues.site": "Похоже, к папке site есть несанкционированный доступ",
|
||||
"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.issues.vulnerability.kirby": "Обнаружена уязвимость уровня \"{ severity }\": { description }",
|
||||
"system.issues.vulnerability.plugin": "В плагине { plugin } обнаружена уязвимость уровня \"{ severity }\": { description }",
|
||||
"system.updateStatus": "Обновить статус",
|
||||
"system.updateStatus.error": "Не удалось проверить обновления",
|
||||
"system.updateStatus.not-vulnerable": "Известных уязвимостей не выявлено",
|
||||
"system.updateStatus.security-update": "Доступно бесплатное обновление для системы безопасности { version }",
|
||||
"system.updateStatus.security-upgrade": "Upgrade { version } with security fixes available",
|
||||
"system.updateStatus.unreleased": "Unreleased version",
|
||||
"system.updateStatus.security-upgrade": "Доступно обновление { version } с испарвлениями безопасности",
|
||||
"system.updateStatus.unreleased": "Неизданная версия",
|
||||
"system.updateStatus.up-to-date": "Последняя версия",
|
||||
"system.updateStatus.update": "Доступно бесплатное обновление { version }",
|
||||
"system.updateStatus.upgrade": "Upgrade { version } available",
|
||||
"system.updateStatus.upgrade": "Доступно обновление { version }",
|
||||
|
||||
"title": "Название",
|
||||
"template": "\u0428\u0430\u0431\u043b\u043e\u043d",
|
||||
"template": "Шаблон",
|
||||
"today": "Сегодня",
|
||||
|
||||
"toolbar.button.code": "Код",
|
||||
"toolbar.button.bold": "\u0416\u0438\u0440\u043d\u044b\u0439 \u0448\u0440\u0438\u0444\u0442",
|
||||
"toolbar.button.bold": "Жирный шрифт",
|
||||
"toolbar.button.email": "Email",
|
||||
"toolbar.button.headings": "Заголовки",
|
||||
"toolbar.button.heading.1": "Заголовок 1",
|
||||
|
@ -536,8 +537,8 @@
|
|||
"toolbar.button.italic": "Курсив",
|
||||
"toolbar.button.file": "Файл",
|
||||
"toolbar.button.file.select": "Выбрать файл",
|
||||
"toolbar.button.file.upload": "Закачать файл",
|
||||
"toolbar.button.link": "\u0421\u0441\u044b\u043b\u043a\u0430",
|
||||
"toolbar.button.file.upload": "Загрузить файл",
|
||||
"toolbar.button.link": "Ссылка",
|
||||
"toolbar.button.paragraph": "Параграф",
|
||||
"toolbar.button.strike": "Зачёркнутый",
|
||||
"toolbar.button.ol": "Нумерованный список",
|
||||
|
@ -549,20 +550,20 @@
|
|||
"translation.name": "Русский (Russian)",
|
||||
"translation.locale": "ru_RU",
|
||||
|
||||
"upload": "Закачать",
|
||||
"upload.error.cantMove": "Не удается переместить загруженный файл",
|
||||
"upload": "Загрузить",
|
||||
"upload.error.cantMove": "Не удалось переместить загруженный файл",
|
||||
"upload.error.cantWrite": "Не получилось записать файл на диск",
|
||||
"upload.error.default": "Не удалось загрузить файл",
|
||||
"upload.error.extension": "Загрузка файла не удалась из за расширения",
|
||||
"upload.error.formSize": "Загруженный файл больше чем MAX_FILE_SIZE настройка в форме",
|
||||
"upload.error.iniPostSize": "Загружаемый файл больше чем post_max_size настройка в php.ini",
|
||||
"upload.error.iniSize": "Загруженный файл больше чем настройка upload_max_filesize в php.ini",
|
||||
"upload.error.extension": "Загрузка файла остановлена из-за расширения",
|
||||
"upload.error.formSize": "Загружаемый файл больше указанного в параметре MAX_FILE_SIZE в форме",
|
||||
"upload.error.iniPostSize": "Загружаемый файл больше указанного в параметре \"post_max_size\" в php.ini",
|
||||
"upload.error.iniSize": "Загружаемый файл больше указанного в параметре \"upload_max_filesize\" в php.ini",
|
||||
"upload.error.noFile": "Файл не был загружен",
|
||||
"upload.error.noFiles": "Файлы не были загружены",
|
||||
"upload.error.partial": "Файл загружен только частично",
|
||||
"upload.error.tmpDir": "Не хватает временной папки",
|
||||
"upload.errors": "Ошибка",
|
||||
"upload.progress": "Закачивается...",
|
||||
"upload.progress": "Загрузка...",
|
||||
|
||||
"url": "URL",
|
||||
"url.placeholder": "https://example.com",
|
||||
|
@ -571,13 +572,13 @@
|
|||
"user.blueprint": "Вы можете определить новые секции и поля разметки для пользователя в <strong>/site/blueprints/users/{blueprint}.yml</strong>",
|
||||
"user.changeEmail": "Изменить Email",
|
||||
"user.changeLanguage": "Изменить язык",
|
||||
"user.changeName": "Переназвать этого пользователя",
|
||||
"user.changeName": "Переименовать пользователя",
|
||||
"user.changePassword": "Изменить пароль",
|
||||
"user.changePassword.new": "Новый пароль",
|
||||
"user.changePassword.new.confirm": "Подтвердить новый пароль…",
|
||||
"user.changeRole": "Изменить роль",
|
||||
"user.changeRole.select": "Выбрать новую роль",
|
||||
"user.create": "Добавить нового пользователя",
|
||||
"user.create": "Добавить пользователя",
|
||||
"user.delete": "Удалить этого пользователя",
|
||||
"user.delete.confirm": "Вы действительно хотите аккаунт <br><strong>{email}</strong>?",
|
||||
|
||||
|
@ -586,15 +587,15 @@
|
|||
"version": "Версия",
|
||||
"version.current": "Текущая версия",
|
||||
"version.latest": "Последняя версия",
|
||||
"versionInformation": "Version information",
|
||||
"versionInformation": "Информация о версии",
|
||||
|
||||
"view.account": "\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442",
|
||||
"view.installation": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430",
|
||||
"view.account": "Ваш аккаунт",
|
||||
"view.installation": "Установка",
|
||||
"view.languages": "Языки",
|
||||
"view.resetPassword": "Сбросить пароль",
|
||||
"view.site": "Сайт",
|
||||
"view.system": "Система",
|
||||
"view.users": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438",
|
||||
"view.users": "Пользователи",
|
||||
|
||||
"welcome": "Добро пожаловать",
|
||||
"year": "Год",
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"account.changeName": "Change your name",
|
||||
"account.delete": "Delete your account",
|
||||
"account.changeName": "Zmeniť vaše meno",
|
||||
"account.delete": "Zmazať váš účet",
|
||||
"account.delete.confirm": "Do you really want to delete your account? You will be logged out immediately. Your account cannot be recovered.",
|
||||
|
||||
"add": "Pridať",
|
||||
"author": "Author",
|
||||
"author": "Autor",
|
||||
"avatar": "Profilový obrázok",
|
||||
"back": "Späť",
|
||||
"cancel": "Zrušiť",
|
||||
"back": "Back",
|
||||
"cancel": "Cancel",
|
||||
"change": "Zmeniť",
|
||||
"close": "Zavrieť",
|
||||
"confirm": "Ok",
|
||||
|
@ -22,12 +22,12 @@
|
|||
|
||||
"day": "Deň",
|
||||
"days.fri": "Pia",
|
||||
"days.mon": "Pon",
|
||||
"days.mon": "Mon",
|
||||
"days.sat": "Sob",
|
||||
"days.sun": "Ned",
|
||||
"days.thu": "Štv",
|
||||
"days.tue": "Uto",
|
||||
"days.wed": "Str",
|
||||
"days.wed": "Wed",
|
||||
|
||||
"debugging": "Debugging",
|
||||
|
||||
|
@ -36,15 +36,15 @@
|
|||
|
||||
"dialog.files.empty": "No files to select",
|
||||
"dialog.pages.empty": "No pages to select",
|
||||
"dialog.users.empty": "No users to select",
|
||||
"dialog.users.empty": "Zvolení neboli žiadni uživátelia",
|
||||
|
||||
"dimensions": "Rozmery",
|
||||
"disabled": "Disabled",
|
||||
"discard": "Zahodiť",
|
||||
"discard": "Discard",
|
||||
"download": "Stiahnuť",
|
||||
"duplicate": "Duplikovať",
|
||||
|
||||
"edit": "Upraviť",
|
||||
"edit": "Edit",
|
||||
|
||||
"email": "E-mail",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Prosím, zadajte platnú e-mailovú adresu",
|
||||
"error.user.language.invalid": "Prosím, zadajte platný jazyk",
|
||||
"error.user.notFound": "Užívateľa \"{name}\" nie je možné nájsť",
|
||||
"error.user.password.excessive": "Please enter a valid password. Passwords must not be longer than 1000 characters.",
|
||||
"error.user.password.invalid": "Prosím, zadajte platné heslo. Dĺžka hesla musí byť aspoň 8 znakov.",
|
||||
"error.user.password.notSame": "Heslá nie sú rovnaké",
|
||||
"error.user.password.undefined": "Užívateľ nemá heslo",
|
||||
|
@ -301,7 +302,7 @@
|
|||
"file.delete.confirm": "Ste si istý, že chcete zmazať <br><strong>{filename}</strong>?",
|
||||
"file.sort": "Change position",
|
||||
|
||||
"files": "Súbory",
|
||||
"files": "Files",
|
||||
"files.empty": "Zatiaľ žiadne súbory",
|
||||
|
||||
"hide": "Hide",
|
||||
|
@ -372,7 +373,7 @@
|
|||
"lock.unlock": "Unlock",
|
||||
"lock.isUnlocked": "Your unsaved changes have been overwritten by another user. You can download your changes to merge them manually.",
|
||||
|
||||
"login": "Prihlásenie",
|
||||
"login": "Log in",
|
||||
"login.code.label.login": "Login code",
|
||||
"login.code.label.password-reset": "Password reset code",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -388,7 +389,7 @@
|
|||
"login.toggleText.password-reset.email": "Forgot your password?",
|
||||
"login.toggleText.password-reset.email-password": "← Back to login",
|
||||
|
||||
"logout": "Odhlásenie",
|
||||
"logout": "Log out",
|
||||
|
||||
"menu": "Menu",
|
||||
"meridiem": "AM/PM",
|
||||
|
@ -399,18 +400,18 @@
|
|||
"months.april": "Apríl",
|
||||
"months.august": "August",
|
||||
"months.december": "December",
|
||||
"months.february": "Február",
|
||||
"months.february": "February",
|
||||
"months.january": "Január",
|
||||
"months.july": "Júl",
|
||||
"months.june": "Jún",
|
||||
"months.march": "Marec",
|
||||
"months.may": "Máj",
|
||||
"months.july": "July",
|
||||
"months.june": "June",
|
||||
"months.march": "March",
|
||||
"months.may": "May",
|
||||
"months.november": "November",
|
||||
"months.october": "Október",
|
||||
"months.october": "October",
|
||||
"months.september": "September",
|
||||
|
||||
"more": "Viac",
|
||||
"name": "Meno",
|
||||
"name": "Názov",
|
||||
"next": "Ďalej",
|
||||
"no": "no",
|
||||
"off": "off",
|
||||
|
@ -448,7 +449,7 @@
|
|||
"page.status.unlisted": "Skryté",
|
||||
"page.status.unlisted.description": "Stránka je prístupná len prostredníctvom priamej URL",
|
||||
|
||||
"pages": "Stránky",
|
||||
"pages": "Pages",
|
||||
"pages.empty": "Zatiaľ žiadne stránky",
|
||||
"pages.status.draft": "Koncepty",
|
||||
"pages.status.listed": "Zverejnené",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "Stránka",
|
||||
|
||||
"password": "Heslo",
|
||||
"password": "Password",
|
||||
"paste": "Paste",
|
||||
"paste.after": "Paste after",
|
||||
"pixel": "Pixel",
|
||||
|
@ -466,7 +467,7 @@
|
|||
"preview": "Preview",
|
||||
"remove": "Odstrániť",
|
||||
"rename": "Premenovať",
|
||||
"replace": "Nahradiť",
|
||||
"replace": "Replace",
|
||||
"retry": "Skúsiť ešte raz",
|
||||
"revert": "Vrátiť späť",
|
||||
"revert.confirm": "Do you really want to <strong>delete all unsaved changes</strong>?",
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
"account.delete": "Radera ditt konto",
|
||||
"account.delete.confirm": "Vill du verkligen radera ditt konto? Du kommer att loggas ut omedelbart. Ditt konto kan inte återställas.",
|
||||
|
||||
"add": "L\u00e4gg till",
|
||||
"add": "Lägg till",
|
||||
"author": "Författare",
|
||||
"avatar": "Profilbild",
|
||||
"back": "Tillbaka",
|
||||
"cancel": "Avbryt",
|
||||
"change": "\u00c4ndra",
|
||||
"close": "St\u00e4ng",
|
||||
"confirm": "Spara",
|
||||
"change": "Ändra",
|
||||
"close": "Stäng",
|
||||
"confirm": "Ok",
|
||||
"collapse": "Kollapsa",
|
||||
"collapse.all": "Kollapsa alla",
|
||||
"copy": "Kopiera",
|
||||
|
@ -21,13 +21,13 @@
|
|||
"date.select": "Välj ett datum",
|
||||
|
||||
"day": "Dag",
|
||||
"days.fri": "Fre",
|
||||
"days.mon": "M\u00e5n",
|
||||
"days.sat": "L\u00f6r",
|
||||
"days.sun": "S\u00f6n",
|
||||
"days.thu": "Tor",
|
||||
"days.tue": "Tis",
|
||||
"days.wed": "Ons",
|
||||
"days.fri": "fre",
|
||||
"days.mon": "mån",
|
||||
"days.sat": "lör",
|
||||
"days.sun": "sön",
|
||||
"days.thu": "tors",
|
||||
"days.tue": "tis",
|
||||
"days.wed": "ons",
|
||||
|
||||
"debugging": "Felsökning",
|
||||
|
||||
|
@ -47,7 +47,7 @@
|
|||
"edit": "Redigera",
|
||||
|
||||
"email": "E-postadress",
|
||||
"email.placeholder": "namn@exempel.se",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Poster",
|
||||
"entry": "Post",
|
||||
|
@ -72,12 +72,12 @@
|
|||
"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.cache.type.invalid": "Ogiltig cachetyp \"{type}\"",
|
||||
|
||||
"error.email.preset.notFound": "E-postförinställningen \"{name}\" kan inte hittas",
|
||||
|
||||
"error.field.converter.invalid": "Ogiltig omvandlare \"{converter}\"",
|
||||
"error.field.type.missing": "Field \"{ name }\": The field type \"{ type }\" does not exist",
|
||||
"error.field.type.missing": "Fältet \"{ name }\": Fälttypen \"{ type }\" finns inte",
|
||||
|
||||
"error.file.changeName.empty": "Namnet får inte vara tomt",
|
||||
"error.file.changeName.permission": "Du har inte behörighet att ändra namnet på \"{filename}\"",
|
||||
|
@ -163,7 +163,7 @@
|
|||
"error.site.changeTitle.permission": "Du har inte behörighet att ändra titeln på webbplatsen",
|
||||
"error.site.update.permission": "Du har inte behörighet att uppdatera webbplatsen",
|
||||
|
||||
"error.template.default.notFound": "Standardmallen existerar inte",
|
||||
"error.template.default.notFound": "Standardmallen finns inte",
|
||||
|
||||
"error.unexpected": "Ett oväntat fel uppstod! Aktivera felsökningsläge för mer information: https://getkirby.com/docs/reference/system/options/debug",
|
||||
|
||||
|
@ -183,6 +183,7 @@
|
|||
"error.user.email.invalid": "Ange en giltig e-postadress",
|
||||
"error.user.language.invalid": "Ange ett giltigt språk",
|
||||
"error.user.notFound": "Användaren \"{name}\" kan ej hittas",
|
||||
"error.user.password.excessive": "Var vänlig skriv in ett giltigt lösenord. Lösenord får inte vara längre än 1000 tecken.",
|
||||
"error.user.password.invalid": "Ange ett giltigt lösenord. Lösenordet måste vara minst 8 tecken långt.",
|
||||
"error.user.password.notSame": "Lösenorden matchar inte",
|
||||
"error.user.password.undefined": "Användaren har inget lösenord",
|
||||
|
@ -292,7 +293,7 @@
|
|||
"field.pages.empty": "Inga sidor valda än",
|
||||
|
||||
"field.structure.delete.confirm": "Vill du verkligen radera denna rad?",
|
||||
"field.structure.delete.confirm.all": "Do you really want to delete all entries?",
|
||||
"field.structure.delete.confirm.all": "Vill du verkligen radera alla poster?",
|
||||
"field.structure.empty": "Inga poster än",
|
||||
|
||||
"field.users.empty": "Inga användare valda än",
|
||||
|
@ -326,7 +327,7 @@
|
|||
"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",
|
||||
|
||||
"language": "Spr\u00e5k",
|
||||
"language": "Språk",
|
||||
"language.code": "Kod",
|
||||
"language.convert": "Ange som standard",
|
||||
"language.convert.confirm": "<p>Vill du verkligen göra <strong>{name}</strong> till standardspråket? Detta kan inte ångras.</p><p>Om <strong>{name}</strong> har oöversatt innehåll, kommer det inte längre finnas en alternativ översättning och delar av sajten kommer kanske att vara tom.</p>",
|
||||
|
@ -353,14 +354,14 @@
|
|||
"license.manage": "Hantera dina licenser",
|
||||
"license.register.help": "Du fick din licenskod via e-post efter inköpet. Kopiera och klistra in den för att registrera licensen.",
|
||||
"license.register.label": "Ange din licenskod",
|
||||
"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": "Din licens kommer att bli registrerad för <strong>{host}</strong>.",
|
||||
"license.register.local": "Du är på väg att registrera din licens för din lokala domän {host}. Om den här webbplatsen kommer att distribueras till en offentlig domän, registrera den där istället. Om {host} är domänen du vill licensiera Kirby till, fortsätt.",
|
||||
"license.register.success": "Tack för att du stödjer Kirby",
|
||||
"license.unregistered": "Detta är en oregistrerad demo av Kirby",
|
||||
"license.unregistered.label": "Oregistrerad",
|
||||
|
||||
"link": "L\u00e4nk",
|
||||
"link.text": "L\u00e4nktext",
|
||||
"link": "Länk",
|
||||
"link.text": "Länktext",
|
||||
|
||||
"loading": "Laddar",
|
||||
|
||||
|
@ -396,18 +397,18 @@
|
|||
"minutes": "Minuter",
|
||||
|
||||
"month": "Månad",
|
||||
"months.april": "April",
|
||||
"months.august": "Augusti",
|
||||
"months.december": "December",
|
||||
"months.april": "april",
|
||||
"months.august": "augusti",
|
||||
"months.december": "december",
|
||||
"months.february": "Februari",
|
||||
"months.january": "Januari",
|
||||
"months.july": "Juli",
|
||||
"months.june": "Juni",
|
||||
"months.march": "Mars",
|
||||
"months.may": "Maj",
|
||||
"months.november": "November",
|
||||
"months.october": "Oktober",
|
||||
"months.september": "September",
|
||||
"months.january": "januari",
|
||||
"months.july": "juli",
|
||||
"months.june": "juni",
|
||||
"months.march": "mars",
|
||||
"months.may": "maj",
|
||||
"months.november": "november",
|
||||
"months.october": "october",
|
||||
"months.september": "september",
|
||||
|
||||
"more": "Mer",
|
||||
"name": "Namn",
|
||||
|
@ -427,7 +428,7 @@
|
|||
|
||||
"page.blueprint": "Denna sida har ingen blueprint än. Du kan skapa en i <strong>/site/blueprints/pages/{blueprint}.yml</strong>",
|
||||
"page.changeSlug": "Ändra URL",
|
||||
"page.changeSlug.fromTitle": "Skapa utifr\u00e5n titel",
|
||||
"page.changeSlug.fromTitle": "Skapa utfifrån titel",
|
||||
"page.changeStatus": "Ändra status",
|
||||
"page.changeStatus.position": "Välj en ny position",
|
||||
"page.changeStatus.select": "Välj en ny status",
|
||||
|
@ -452,11 +453,11 @@
|
|||
"pages.empty": "Inga sidor än",
|
||||
"pages.status.draft": "Utkast",
|
||||
"pages.status.listed": "Publicerade",
|
||||
"pages.status.unlisted": "Olistade",
|
||||
"pages.status.unlisted": "Olistad",
|
||||
|
||||
"pagination.page": "Sida",
|
||||
|
||||
"password": "L\u00f6senord",
|
||||
"password": "Lösenord",
|
||||
"paste": "Klistra in",
|
||||
"paste.after": "Klistra in efter",
|
||||
"pixel": "Pixel",
|
||||
|
@ -467,7 +468,7 @@
|
|||
"remove": "Ta bort",
|
||||
"rename": "Byt namn",
|
||||
"replace": "Ersätt",
|
||||
"retry": "F\u00f6rs\u00f6k igen",
|
||||
"retry": "Försök igen",
|
||||
"revert": "Återgå",
|
||||
"revert.confirm": "Vill du verkligen <strong>radera alla osparade ändringar</strong>?",
|
||||
|
||||
|
@ -525,7 +526,7 @@
|
|||
|
||||
"toolbar.button.code": "Kod",
|
||||
"toolbar.button.bold": "Fet",
|
||||
"toolbar.button.email": "E-post",
|
||||
"toolbar.button.email": "E-postadress",
|
||||
"toolbar.button.headings": "Rubriker",
|
||||
"toolbar.button.heading.1": "Rubrik 1",
|
||||
"toolbar.button.heading.2": "Rubrik 2",
|
||||
|
@ -537,7 +538,7 @@
|
|||
"toolbar.button.file": "Fil",
|
||||
"toolbar.button.file.select": "Välj en fil",
|
||||
"toolbar.button.file.upload": "Ladda upp en fil",
|
||||
"toolbar.button.link": "L\u00e4nk",
|
||||
"toolbar.button.link": "Länk",
|
||||
"toolbar.button.paragraph": "Stycke",
|
||||
"toolbar.button.strike": "Genomstruken",
|
||||
"toolbar.button.ol": "Sorterad lista",
|
||||
|
@ -594,7 +595,7 @@
|
|||
"view.resetPassword": "Återställ lösenord",
|
||||
"view.site": "Webbplats",
|
||||
"view.system": "System",
|
||||
"view.users": "Anv\u00e4ndare",
|
||||
"view.users": "Användare",
|
||||
|
||||
"welcome": "Välkommen",
|
||||
"year": "År",
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
"author": "Yazar",
|
||||
"avatar": "Profil resmi",
|
||||
"back": "Geri",
|
||||
"cancel": "\u0130ptal",
|
||||
"change": "De\u011fi\u015ftir",
|
||||
"cancel": "İptal",
|
||||
"change": "Değiştir",
|
||||
"close": "Kapat",
|
||||
"confirm": "Tamam",
|
||||
"collapse": "Daralt",
|
||||
"collapse.all": "Tümünü daralt",
|
||||
"copy": "Kopyala",
|
||||
"copy": "Kopya",
|
||||
"copy.all": "Tümünü kopyala",
|
||||
"create": "Oluştur",
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
|||
"days.sun": "Paz",
|
||||
"days.thu": "Per",
|
||||
"days.tue": "Sal",
|
||||
"days.wed": "\u00c7ar",
|
||||
"days.wed": "Çar",
|
||||
|
||||
"debugging": "Hata ayıklama",
|
||||
|
||||
|
@ -40,14 +40,14 @@
|
|||
|
||||
"dimensions": "Boyutlar",
|
||||
"disabled": "Devredışı",
|
||||
"discard": "Vazge\u00e7",
|
||||
"discard": "Vazgeç",
|
||||
"download": "İndir",
|
||||
"duplicate": "Kopyala",
|
||||
|
||||
"edit": "D\u00fczenle",
|
||||
"edit": "Düzenle",
|
||||
|
||||
"email": "E-Posta",
|
||||
"email.placeholder": "eposta@ornek.com",
|
||||
"email": "E-posta",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Girdiler",
|
||||
"entry": "Girdi",
|
||||
|
@ -100,7 +100,7 @@
|
|||
"error.file.orientation": "Resmin oryantasyonu \"{orientation}\" olmalıdır",
|
||||
"error.file.type.forbidden": "{type} dosya yükleme izni yok",
|
||||
"error.file.type.invalid": "Geçersiz dosya türü: {type}",
|
||||
"error.file.undefined": "Dosya bulunamad\u0131",
|
||||
"error.file.undefined": "Dosya bulunamadı",
|
||||
|
||||
"error.form.incomplete": "Lütfen tüm form hatalarını düzeltin...",
|
||||
"error.form.notSaved": "Form kaydedilemedi",
|
||||
|
@ -143,7 +143,7 @@
|
|||
"error.page.slug.maxlength": "Adres uzantısı \"{length}\" karakterden az olmalıdır",
|
||||
"error.page.sort.permission": "\"{slug}\" sayfası sıralanamıyor",
|
||||
"error.page.status.invalid": "Lütfen geçerli bir sayfa durumu ayarlayın",
|
||||
"error.page.undefined": "Sayfa bulunamad\u0131",
|
||||
"error.page.undefined": "Sayfa bulunamadı",
|
||||
"error.page.update.permission": "\"{slug}\" güncellemesine izin verilmiyor",
|
||||
|
||||
"error.section.files.max.plural": "\"{section}\" bölümüne {max} dosyadan daha fazlasını eklememelisiniz",
|
||||
|
@ -176,15 +176,16 @@
|
|||
"error.user.changeRole.toAdmin": "Birini yönetici rolüne tanıtmanıza izin verilmiyor",
|
||||
"error.user.create.permission": "Bu kullanıcıyı oluşturmanıza izin verilmiyor",
|
||||
"error.user.delete": "\"{name}\" kullanıcısı silinemedi",
|
||||
"error.user.delete.lastAdmin": "Son y\u00f6netici kullan\u0131c\u0131y\u0131 silemezsiniz",
|
||||
"error.user.delete.lastAdmin": "Son yönetici kullanıcıyı silemezsiniz",
|
||||
"error.user.delete.lastUser": "Son kullanıcı silinemez",
|
||||
"error.user.delete.permission": "\"{name}\" kullanıcısını silme yetkiniz yok",
|
||||
"error.user.duplicate": "\"{email}\" e-posta adresine sahip bir kullanıcı zaten var",
|
||||
"error.user.email.invalid": "Lütfen geçerli bir e-posta adresi girin",
|
||||
"error.user.language.invalid": "Lütfen geçerli bir dil girin",
|
||||
"error.user.notFound": "\"{name}\" kullanıcısı bulunamadı",
|
||||
"error.user.password.excessive": "Lütfen geçerli bir şifre girin. Şifreler 1000 karakterden uzun olmamalıdır.",
|
||||
"error.user.password.invalid": "Lütfen geçerli bir şifre giriniz. Şifreler en az 8 karakter uzunluğunda olmalıdır.",
|
||||
"error.user.password.notSame": "L\u00fctfen \u015fifreyi do\u011frulay\u0131n",
|
||||
"error.user.password.notSame": "Lütfen şifreyi doğrulayın",
|
||||
"error.user.password.undefined": "Bu kullanıcının şifresi yok",
|
||||
"error.user.password.wrong": "Yanlış şifre",
|
||||
"error.user.role.invalid": "Lütfen geçerli bir rol girin",
|
||||
|
@ -291,9 +292,9 @@
|
|||
|
||||
"field.pages.empty": "Henüz sayfa seçilmedi",
|
||||
|
||||
"field.structure.delete.confirm": "Bu girdiyi silmek istedi\u011finizden emin misiniz?",
|
||||
"field.structure.delete.confirm": "Bu girdiyi silmek istediğinizden emin misiniz?",
|
||||
"field.structure.delete.confirm.all": "Tüm girdileri gerçekten silmek istiyor musunuz?",
|
||||
"field.structure.empty": "Hen\u00fcz bir girdi yok",
|
||||
"field.structure.empty": "Henüz bir girdi yok",
|
||||
|
||||
"field.users.empty": "Henüz kullanıcı seçilmedi",
|
||||
|
||||
|
@ -359,8 +360,8 @@
|
|||
"license.unregistered": "Bu Kirby'nin kayıtsız bir demosu",
|
||||
"license.unregistered.label": "Kayıtsız",
|
||||
|
||||
"link": "Ba\u011flant\u0131",
|
||||
"link.text": "Ba\u011flant\u0131 yaz\u0131s\u0131",
|
||||
"link": "Bağlantı",
|
||||
"link.text": "Bağlantı metni",
|
||||
|
||||
"loading": "Yükleniyor",
|
||||
|
||||
|
@ -397,17 +398,17 @@
|
|||
|
||||
"month": "Ay",
|
||||
"months.april": "Nisan",
|
||||
"months.august": "A\u011fustos",
|
||||
"months.december": "Aral\u0131k",
|
||||
"months.august": "Ağustos",
|
||||
"months.december": "Aralık",
|
||||
"months.february": "Şubat",
|
||||
"months.january": "Ocak",
|
||||
"months.july": "Temmuz",
|
||||
"months.june": "Haziran",
|
||||
"months.march": "Mart",
|
||||
"months.may": "May\u0131s",
|
||||
"months.november": "Kas\u0131m",
|
||||
"months.may": "Mayıs",
|
||||
"months.november": "Kasım",
|
||||
"months.october": "Ekim",
|
||||
"months.september": "Eyl\u00fcl",
|
||||
"months.september": "Eylül",
|
||||
|
||||
"more": "Daha Fazla",
|
||||
"name": "İsim",
|
||||
|
@ -427,7 +428,7 @@
|
|||
|
||||
"page.blueprint": "Bu dosyanın henüz bir planı yok. Kurulumu <strong>/site/blueprints/pages/{blueprint}.yml</strong> dosyasında tanımlayabilirsiniz.",
|
||||
"page.changeSlug": "Web Adresini Değiştir",
|
||||
"page.changeSlug.fromTitle": "Ba\u015fl\u0131ktan olu\u015ftur",
|
||||
"page.changeSlug.fromTitle": "Başlıktan oluştur",
|
||||
"page.changeStatus": "Durumu değiştir",
|
||||
"page.changeStatus.position": "Lütfen bir pozisyon seçin",
|
||||
"page.changeStatus.select": "Yeni bir durum seçin",
|
||||
|
@ -456,7 +457,7 @@
|
|||
|
||||
"pagination.page": "Sayfa",
|
||||
|
||||
"password": "\u015eifre",
|
||||
"password": "Şifre",
|
||||
"paste": "Yapıştır",
|
||||
"paste.after": "Sonrasına yapıştır",
|
||||
"pixel": "Piksel",
|
||||
|
@ -466,9 +467,9 @@
|
|||
"preview": "Önizle",
|
||||
"remove": "Kaldır",
|
||||
"rename": "Yeniden Adlandır",
|
||||
"replace": "De\u011fi\u015ftir",
|
||||
"replace": "Değiştir",
|
||||
"retry": "Tekrar Dene",
|
||||
"revert": "Vazge\u00e7",
|
||||
"revert": "Vazgeç",
|
||||
"revert.confirm": "Gerçekten <strong>kaydedilmemiş tüm değişiklikleri silmek</strong> istiyor musunuz?",
|
||||
|
||||
"role": "Rol",
|
||||
|
@ -520,12 +521,12 @@
|
|||
"system.updateStatus.upgrade": "{ version } yükseltme mevcut",
|
||||
|
||||
"title": "Başlık",
|
||||
"template": "\u015eablon",
|
||||
"template": "Şablon",
|
||||
"today": "Bugün",
|
||||
|
||||
"toolbar.button.code": "Kod",
|
||||
"toolbar.button.bold": "Kalın Yazı",
|
||||
"toolbar.button.email": "E-Posta",
|
||||
"toolbar.button.email": "E-posta",
|
||||
"toolbar.button.headings": "Başlıklar",
|
||||
"toolbar.button.heading.1": "Başlık 1",
|
||||
"toolbar.button.heading.2": "Başlık 2",
|
||||
|
@ -537,7 +538,7 @@
|
|||
"toolbar.button.file": "Dosya",
|
||||
"toolbar.button.file.select": "Bir dosya seçin",
|
||||
"toolbar.button.file.upload": "Bir dosya yükleyin",
|
||||
"toolbar.button.link": "Ba\u011flant\u0131",
|
||||
"toolbar.button.link": "Bağlantı",
|
||||
"toolbar.button.paragraph": "Paragraf",
|
||||
"toolbar.button.strike": "Üstü çizili",
|
||||
"toolbar.button.ol": "Sıralı liste",
|
||||
|
@ -546,7 +547,7 @@
|
|||
|
||||
"translation.author": "Kirby Takımı",
|
||||
"translation.direction": "ltr",
|
||||
"translation.name": "T\u00fcrk\u00e7e",
|
||||
"translation.name": "Türkçe",
|
||||
"translation.locale": "tr_TR",
|
||||
|
||||
"upload": "Yükle",
|
||||
|
@ -588,13 +589,13 @@
|
|||
"version.latest": "En son sürüm",
|
||||
"versionInformation": "Sürüm bilgisi",
|
||||
|
||||
"view.account": "Hesap Bilgilerin",
|
||||
"view.account": "Hesabın",
|
||||
"view.installation": "Kurulum",
|
||||
"view.languages": "Diller",
|
||||
"view.resetPassword": "Şifreyi sıfırla",
|
||||
"view.site": "Site",
|
||||
"view.system": "Sistem",
|
||||
"view.users": "Kullan\u0131c\u0131lar",
|
||||
"view.users": "Kullanıcılar",
|
||||
|
||||
"welcome": "Hoşgeldiniz",
|
||||
"year": "Yıl",
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
const { defineConfig } = require("cypress");
|
||||
|
||||
module.exports = defineConfig({
|
||||
video: false,
|
||||
|
||||
e2e: {
|
||||
baseUrl: "http://sandbox.test",
|
||||
specPattern: "src/**/*.e2e.js",
|
||||
supportFile: false
|
||||
}
|
||||
});
|
2
kirby/panel/dist/css/style.css
vendored
2
kirby/panel/dist/css/style.css
vendored
File diff suppressed because one or more lines are too long
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
9
kirby/panel/dist/js/vendor.js
vendored
9
kirby/panel/dist/js/vendor.js
vendored
File diff suppressed because one or more lines are too long
11
kirby/panel/dist/js/vue.js
vendored
Normal file
11
kirby/panel/dist/js/vue.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
kirby/panel/dist/js/vuedraggable.js
vendored
2
kirby/panel/dist/js/vuedraggable.js
vendored
File diff suppressed because one or more lines are too long
|
@ -26,7 +26,7 @@ class NodeString extends NodeProperty
|
|||
public static function factory($value = null): static|null
|
||||
{
|
||||
if ($value === null) {
|
||||
return $value;
|
||||
return null;
|
||||
}
|
||||
|
||||
return new static($value);
|
||||
|
|
|
@ -67,10 +67,10 @@ class Api extends BaseApi
|
|||
* Returns the file object for the given
|
||||
* parent path and filename
|
||||
*
|
||||
* @param string|null $path Path to file's parent model
|
||||
* @param string $path Path to file's parent model
|
||||
* @throws \Kirby\Exception\NotFoundException if the file cannot be found
|
||||
*/
|
||||
public function file(string|null $path = null, string $filename): File|null
|
||||
public function file(string $path, string $filename): File|null
|
||||
{
|
||||
return Find::file($path, $filename);
|
||||
}
|
||||
|
|
|
@ -203,7 +203,6 @@ class App
|
|||
/**
|
||||
* Applies a hook to the given value
|
||||
*
|
||||
* @internal
|
||||
* @param string $name Full event name
|
||||
* @param array $args Associative array of named event arguments
|
||||
* @param string $modify Key in $args that is modified by the hooks
|
||||
|
@ -364,25 +363,23 @@ class App
|
|||
* by name. All relevant dependencies are
|
||||
* automatically injected
|
||||
*
|
||||
* @param string $name
|
||||
* @return \Kirby\Cms\Collection|null
|
||||
* @return \Kirby\Toolkit\Collection|null
|
||||
* @todo 5.0 Add return type declaration
|
||||
*/
|
||||
public function collection(string $name)
|
||||
public function collection(string $name, array $options = [])
|
||||
{
|
||||
return $this->collections()->get($name, [
|
||||
return $this->collections()->get($name, array_merge($options, [
|
||||
'kirby' => $this,
|
||||
'site' => $this->site(),
|
||||
'pages' => $this->site()->children(),
|
||||
'site' => $site = $this->site(),
|
||||
'pages' => $site->children(),
|
||||
'users' => $this->users()
|
||||
]);
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all user-defined collections
|
||||
*
|
||||
* @return \Kirby\Cms\Collections
|
||||
*/
|
||||
public function collections()
|
||||
public function collections(): Collections
|
||||
{
|
||||
return $this->collections ??= new Collections();
|
||||
}
|
||||
|
@ -582,7 +579,14 @@ class App
|
|||
$visitor = $this->visitor();
|
||||
|
||||
foreach ($visitor->acceptedLanguages() as $acceptedLang) {
|
||||
$closure = fn ($language) => $language->locale(LC_ALL) === $acceptedLang->locale();
|
||||
$closure = function ($language) use ($acceptedLang) {
|
||||
$languageLocale = $language->locale(LC_ALL);
|
||||
$acceptedLocale = $acceptedLang->locale();
|
||||
|
||||
return $languageLocale === $acceptedLocale ||
|
||||
$acceptedLocale === Str::substr($languageLocale, 0, 2);
|
||||
};
|
||||
|
||||
if ($language = $languages->filter($closure)?->first()) {
|
||||
return $language;
|
||||
}
|
||||
|
@ -1670,7 +1674,6 @@ class App
|
|||
/**
|
||||
* Trigger a hook by name
|
||||
*
|
||||
* @internal
|
||||
* @param string $name Full event name
|
||||
* @param array $args Associative array of named event arguments
|
||||
* @param \Kirby\Cms\Event|null $originalEvent Event object (internal use)
|
||||
|
|
|
@ -73,7 +73,7 @@ trait AppErrors
|
|||
$handler = null;
|
||||
|
||||
if ($this->option('debug') === true) {
|
||||
if ($this->option('whoops', true) === true) {
|
||||
if ($this->option('whoops', true) !== false) {
|
||||
$handler = new PrettyPageHandler();
|
||||
$handler->setPageTitle('Kirby CMS Debugger');
|
||||
$handler->setResourcesPath(dirname(__DIR__, 2) . '/assets');
|
||||
|
@ -82,6 +82,14 @@ trait AppErrors
|
|||
if ($editor = $this->option('editor')) {
|
||||
$handler->setEditor($editor);
|
||||
}
|
||||
|
||||
if ($blocklist = $this->option('whoops.blocklist')) {
|
||||
foreach ($blocklist as $superglobal => $vars) {
|
||||
foreach ($vars as $var) {
|
||||
$handler->blacklist($superglobal, $var);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$handler = new CallbackHandler(function ($exception, $inspector, $run) {
|
||||
|
|
|
@ -66,7 +66,7 @@ trait AppUsers
|
|||
} finally {
|
||||
// ensure that the impersonation is *always* reset
|
||||
// to the original value, even if an error occurred
|
||||
$auth->impersonate($userBefore !== null ? $userBefore->id() : null);
|
||||
$auth->impersonate($userBefore?->id());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -279,18 +279,39 @@ class Auth
|
|||
|
||||
$id = $session->data()->get('kirby.userId');
|
||||
|
||||
// if no user is logged in, return immediately
|
||||
if (is_string($id) !== true) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($user = $this->kirby->users()->find($id)) {
|
||||
// in case the session needs to be updated, do it now
|
||||
// for better performance
|
||||
$session->commit();
|
||||
return $user;
|
||||
// a user is logged in, ensure it exists
|
||||
$user = $this->kirby->users()->find($id);
|
||||
if ($user === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return null;
|
||||
if ($passwordTimestamp = $user->passwordTimestamp()) {
|
||||
$loginTimestamp = $session->data()->get('kirby.loginTimestamp');
|
||||
if (is_int($loginTimestamp) !== true) {
|
||||
// session that was created before Kirby
|
||||
// 3.5.8.3, 3.6.6.3, 3.7.5.2, 3.8.4.1 or 3.9.6
|
||||
// or when the user didn't have a password set
|
||||
$user->logout();
|
||||
return null;
|
||||
}
|
||||
|
||||
// invalidate the session if the password
|
||||
// changed since the login
|
||||
if ($loginTimestamp < $passwordTimestamp) {
|
||||
$user->logout();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// in case the session needs to be updated, do it now
|
||||
// for better performance
|
||||
$session->commit();
|
||||
return $user;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -66,9 +66,11 @@ class Collection extends BaseCollection
|
|||
}
|
||||
|
||||
/**
|
||||
* Internal setter for each object in the Collection.
|
||||
* This takes care of Component validation and of setting
|
||||
* the collection prop on each object correctly.
|
||||
* Internal setter for each object in the Collection;
|
||||
* override from the Toolkit Collection is needed to
|
||||
* make the CMS collections case-sensitive;
|
||||
* child classes can override it again to add validation
|
||||
* and custom behavior depending on the object type
|
||||
*
|
||||
* @param string $id
|
||||
* @param object $object
|
||||
|
@ -79,6 +81,16 @@ class Collection extends BaseCollection
|
|||
$this->data[$id] = $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal remover for each object in the Collection;
|
||||
* override from the Toolkit Collection is needed to
|
||||
* make the CMS collections case-sensitive
|
||||
*/
|
||||
public function __unset($id)
|
||||
{
|
||||
unset($this->data[$id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a single object or
|
||||
* an entire second collection to the
|
||||
|
@ -168,9 +180,7 @@ class Collection extends BaseCollection
|
|||
}
|
||||
|
||||
// ignore upper/lowercase for group names
|
||||
if ($i) {
|
||||
$value = Str::lower($value);
|
||||
}
|
||||
$value = $i === true ? Str::lower($value) : (string)$value;
|
||||
|
||||
if (isset($groups->data[$value]) === false) {
|
||||
// create a new entry for the group if it does not exist yet
|
||||
|
@ -209,9 +219,9 @@ class Collection extends BaseCollection
|
|||
* or ids and then search accordingly.
|
||||
*
|
||||
* @param string|object $needle
|
||||
* @return int
|
||||
* @return int|false
|
||||
*/
|
||||
public function indexOf($needle): int
|
||||
public function indexOf($needle): int|false
|
||||
{
|
||||
if (is_string($needle) === true) {
|
||||
return array_search($needle, $this->keys());
|
||||
|
|
|
@ -28,25 +28,20 @@ class Collections
|
|||
* has been called, to avoid further
|
||||
* processing on sequential calls to
|
||||
* the same collection.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $cache = [];
|
||||
protected array $cache = [];
|
||||
|
||||
/**
|
||||
* Store of all collections
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $collections = [];
|
||||
protected array $collections = [];
|
||||
|
||||
/**
|
||||
* Magic caller to enable something like
|
||||
* `$collections->myCollection()`
|
||||
*
|
||||
* @param string $name
|
||||
* @param array $arguments
|
||||
* @return \Kirby\Cms\Collection|null
|
||||
* @return \Kirby\Toolkit\Collection|null
|
||||
* @todo 5.0 Add return type declaration
|
||||
*/
|
||||
public function __call(string $name, array $arguments = [])
|
||||
{
|
||||
|
@ -56,9 +51,9 @@ class Collections
|
|||
/**
|
||||
* Loads a collection by name if registered
|
||||
*
|
||||
* @param string $name
|
||||
* @param array $data
|
||||
* @return \Kirby\Cms\Collection|null
|
||||
* @return \Kirby\Toolkit\Collection|null
|
||||
* @todo 4.0 Add deprecation warning when anything else than a Collection is returned
|
||||
* @todo 5.0 Add return type declaration
|
||||
*/
|
||||
public function get(string $name, array $data = [])
|
||||
{
|
||||
|
|
|
@ -207,7 +207,7 @@ class FileRules
|
|||
if (
|
||||
Str::contains($extension, 'php') !== false ||
|
||||
Str::contains($extension, 'phar') !== false ||
|
||||
Str::contains($extension, 'phtml') !== false
|
||||
Str::contains($extension, 'pht') !== false
|
||||
) {
|
||||
throw new InvalidArgumentException([
|
||||
'key' => 'file.type.forbidden',
|
||||
|
|
|
@ -23,12 +23,12 @@ class Find
|
|||
* Returns the file object for the given
|
||||
* parent path and filename
|
||||
*
|
||||
* @param string|null $path Path to file's parent model
|
||||
* @param string $path Path to file's parent model
|
||||
* @param string $filename Filename
|
||||
* @return \Kirby\Cms\File|null
|
||||
* @throws \Kirby\Exception\NotFoundException if the file cannot be found
|
||||
*/
|
||||
public static function file(string $path = null, string $filename)
|
||||
public static function file(string $path, string $filename)
|
||||
{
|
||||
$filename = urldecode($filename);
|
||||
$file = static::parent($path)->file($filename);
|
||||
|
@ -121,7 +121,10 @@ class Find
|
|||
'site' => $kirby->site(),
|
||||
'account' => static::user(),
|
||||
'page' => static::page(basename($path)),
|
||||
'file' => static::file(...explode('/files/', $path)),
|
||||
// regular expression to split the path at the last
|
||||
// occurrence of /files/ which separates parent path
|
||||
// and filename
|
||||
'file' => static::file(...preg_split('$.*\K(/files/)$', $path)),
|
||||
'user' => $kirby->user(basename($path)),
|
||||
default => throw new InvalidArgumentException('Invalid model type: ' . $modelType)
|
||||
};
|
||||
|
|
|
@ -95,7 +95,7 @@ trait HasFiles
|
|||
|
||||
// find by global UUID
|
||||
if (Uuid::is($filename, 'file') === true) {
|
||||
return Uuid::for($filename, $this->files())->model();
|
||||
return Uuid::for($filename, $this->$in())->model();
|
||||
}
|
||||
|
||||
if (strpos($filename, '/') !== false) {
|
||||
|
|
|
@ -19,9 +19,9 @@ trait HasSiblings
|
|||
*
|
||||
* @param \Kirby\Cms\Collection|null $collection
|
||||
*
|
||||
* @return int
|
||||
* @return int|false
|
||||
*/
|
||||
public function indexOf($collection = null): int
|
||||
public function indexOf($collection = null): int|false
|
||||
{
|
||||
$collection ??= $this->siblingsCollection();
|
||||
return $collection->indexOf($this);
|
||||
|
@ -29,10 +29,13 @@ trait HasSiblings
|
|||
|
||||
/**
|
||||
* Returns the next item in the collection if available
|
||||
* @todo `static` return type hint is not 100% accurate because of
|
||||
* quirks in the `Form` classes; would break if enforced
|
||||
* (https://github.com/getkirby/kirby/pull/5175)
|
||||
*
|
||||
* @param \Kirby\Cms\Collection|null $collection
|
||||
*
|
||||
* @return \Kirby\Cms\Model|null
|
||||
* @return static|null
|
||||
*/
|
||||
public function next($collection = null)
|
||||
{
|
||||
|
@ -55,10 +58,13 @@ trait HasSiblings
|
|||
|
||||
/**
|
||||
* Returns the previous item in the collection if available
|
||||
* @todo `static` return type hint is not 100% accurate because of
|
||||
* quirks in the `Form` classes; would break if enforced
|
||||
* (https://github.com/getkirby/kirby/pull/5175)
|
||||
*
|
||||
* @param \Kirby\Cms\Collection|null $collection
|
||||
*
|
||||
* @return \Kirby\Cms\Model|null
|
||||
* @return static|null
|
||||
*/
|
||||
public function prev($collection = null)
|
||||
{
|
||||
|
|
|
@ -201,8 +201,17 @@ class Language extends Model
|
|||
*/
|
||||
public static function create(array $props)
|
||||
{
|
||||
$kirby = App::instance();
|
||||
$user = $kirby->user();
|
||||
|
||||
if (
|
||||
$user === null ||
|
||||
$user->role()->permissions()->for('languages', 'create') === false
|
||||
) {
|
||||
throw new PermissionException(['key' => 'language.create.permission']);
|
||||
}
|
||||
|
||||
$props['code'] = Str::slug($props['code'] ?? null);
|
||||
$kirby = App::instance();
|
||||
$languages = $kirby->languages();
|
||||
|
||||
// make the first language the default language
|
||||
|
@ -256,10 +265,18 @@ class Language extends Model
|
|||
public function delete(): bool
|
||||
{
|
||||
$kirby = App::instance();
|
||||
$user = $kirby->user();
|
||||
$languages = $kirby->languages();
|
||||
$code = $this->code();
|
||||
$isLast = $languages->count() === 1;
|
||||
|
||||
if (
|
||||
$user === null ||
|
||||
$user->role()->permissions()->for('languages', 'delete') === false
|
||||
) {
|
||||
throw new PermissionException(['key' => 'language.delete.permission']);
|
||||
}
|
||||
|
||||
// trigger before hook
|
||||
$kirby->trigger('language.delete:before', [
|
||||
'language' => $this
|
||||
|
@ -672,13 +689,22 @@ class Language extends Model
|
|||
*/
|
||||
public function update(array $props = null)
|
||||
{
|
||||
$kirby = App::instance();
|
||||
$user = $kirby->user();
|
||||
|
||||
if (
|
||||
$user === null ||
|
||||
$user->role()->permissions()->for('languages', 'update') === false
|
||||
) {
|
||||
throw new PermissionException(['key' => 'language.update.permission']);
|
||||
}
|
||||
|
||||
// don't change the language code
|
||||
unset($props['code']);
|
||||
|
||||
// make sure the slug is nice and clean
|
||||
$props['slug'] = Str::slug($props['slug'] ?? null);
|
||||
|
||||
$kirby = App::instance();
|
||||
$updated = $this->clone($props);
|
||||
|
||||
// validate the updated language
|
||||
|
|
|
@ -733,7 +733,7 @@ class Page extends ModelWithContent
|
|||
*/
|
||||
public function isListed(): bool
|
||||
{
|
||||
return $this->num() !== null;
|
||||
return $this->isPublished() && $this->num() !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -797,7 +797,7 @@ class Page extends ModelWithContent
|
|||
*/
|
||||
public function isUnlisted(): bool
|
||||
{
|
||||
return $this->isListed() === false;
|
||||
return $this->isPublished() && $this->num() === null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -811,7 +811,7 @@ class Page extends ModelWithContent
|
|||
public function isVerified(string $token = null)
|
||||
{
|
||||
if (
|
||||
$this->isDraft() === false &&
|
||||
$this->isPublished() === true &&
|
||||
$this->parents()->findBy('status', 'draft') === null
|
||||
) {
|
||||
return true;
|
||||
|
|
|
@ -270,9 +270,9 @@ class Pages extends Collection
|
|||
$query = $startAt;
|
||||
|
||||
foreach ($path as $key) {
|
||||
$collection = $item ? $item->children() : $this;
|
||||
$query = ltrim($query . '/' . $key, '/');
|
||||
$item = $collection->get($query) ?? null;
|
||||
$collection = $item?->children() ?? $this;
|
||||
$query = ltrim($query . '/' . $key, '/');
|
||||
$item = $collection->get($query) ?? null;
|
||||
|
||||
if ($item === null && $multiLang === true && !App::instance()->language()->isDefault()) {
|
||||
if (count($path) > 1 || $collection->parent()) {
|
||||
|
|
|
@ -44,7 +44,8 @@ class Permissions
|
|||
],
|
||||
'languages' => [
|
||||
'create' => true,
|
||||
'delete' => true
|
||||
'delete' => true,
|
||||
'update' => true
|
||||
],
|
||||
'pages' => [
|
||||
'changeSlug' => true,
|
||||
|
|
|
@ -206,6 +206,20 @@ class UpdateStatus
|
|||
];
|
||||
}
|
||||
|
||||
// add special message for end-of-life PHP versions
|
||||
$phpMajor = PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION;
|
||||
$phpEol = $this->data['php'][$phpMajor] ?? null;
|
||||
if (is_string($phpEol) === true && $eolTime = strtotime($phpEol)) {
|
||||
// the timestamp is available and valid, now check if it is in the past
|
||||
if ($eolTime < time()) {
|
||||
$messages[] = [
|
||||
'text' => I18n::template('system.issues.eol.php', null, ['release' => $phpMajor]),
|
||||
'link' => 'https://getkirby.com/security/php-end-of-life',
|
||||
'icon' => 'bell'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $this->messages = $messages;
|
||||
}
|
||||
|
||||
|
|
|
@ -352,7 +352,7 @@ class User extends ModelWithContent
|
|||
*/
|
||||
public function isKirby(): bool
|
||||
{
|
||||
return $this->email() === 'kirby@getkirby.com';
|
||||
return $this->isAdmin() && $this->id() === 'kirby';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -396,7 +396,7 @@ class User extends ModelWithContent
|
|||
*/
|
||||
public function isNobody(): bool
|
||||
{
|
||||
return $this->email() === 'nobody@getkirby.com';
|
||||
return $this->role()->id() === 'nobody' && $this->id() === 'nobody';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -406,7 +406,9 @@ class User extends ModelWithContent
|
|||
*/
|
||||
public function language(): string
|
||||
{
|
||||
return $this->language ??= $this->credentials()['language'] ?? $this->kirby()->panelLanguage();
|
||||
return $this->language ??=
|
||||
$this->credentials()['language'] ??
|
||||
$this->kirby()->panelLanguage();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -441,6 +443,9 @@ class User extends ModelWithContent
|
|||
|
||||
$session->regenerateToken(); // privilege change
|
||||
$session->data()->set('kirby.userId', $this->id());
|
||||
if ($this->passwordTimestamp() !== null) {
|
||||
$session->data()->set('kirby.loginTimestamp', time());
|
||||
}
|
||||
$this->kirby()->auth()->setUser($this);
|
||||
|
||||
$kirby->trigger('user.login:after', ['user' => $this, 'session' => $session]);
|
||||
|
@ -461,6 +466,7 @@ class User extends ModelWithContent
|
|||
|
||||
// remove the user from the session for future requests
|
||||
$session->data()->remove('kirby.userId');
|
||||
$session->data()->remove('kirby.loginTimestamp');
|
||||
|
||||
// clear the cached user object from the app state of the current request
|
||||
$this->kirby()->auth()->flush();
|
||||
|
@ -607,6 +613,26 @@ class User extends ModelWithContent
|
|||
return $this->password = $this->readPassword();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the timestamp when the password
|
||||
* was last changed
|
||||
*/
|
||||
public function passwordTimestamp(): int|null
|
||||
{
|
||||
$file = $this->passwordFile();
|
||||
|
||||
// ensure we have the latest information
|
||||
// to prevent cache attacks
|
||||
clearstatcache();
|
||||
|
||||
// user does not have a password
|
||||
if (is_file($file) === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return filemtime($file);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Kirby\Cms\UserPermissions
|
||||
*/
|
||||
|
@ -864,14 +890,29 @@ class User extends ModelWithContent
|
|||
throw new NotFoundException(['key' => 'user.password.undefined']);
|
||||
}
|
||||
|
||||
// `UserRules` enforces a minimum length of 8 characters,
|
||||
// so everything below that is a typo
|
||||
if (Str::length($password) < 8) {
|
||||
throw new InvalidArgumentException(['key' => 'user.password.invalid']);
|
||||
}
|
||||
|
||||
// too long passwords can cause DoS attacks
|
||||
if (Str::length($password) > 1000) {
|
||||
throw new InvalidArgumentException(['key' => 'user.password.excessive']);
|
||||
}
|
||||
|
||||
if (password_verify($password, $this->password()) !== true) {
|
||||
throw new InvalidArgumentException(['key' => 'user.password.wrong', 'httpCode' => 401]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path to the password file
|
||||
*/
|
||||
protected function passwordFile(): string
|
||||
{
|
||||
return $this->root() . '/.htpasswd';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -118,6 +118,13 @@ trait UserActions
|
|||
// update the users collection
|
||||
$user->kirby()->users()->set($user->id(), $user);
|
||||
|
||||
// keep the user logged in to the current browser
|
||||
// if they changed their own password
|
||||
// (regenerate the session token, update the login timestamp)
|
||||
if ($user->isLoggedIn() === true) {
|
||||
$user->loginPasswordless();
|
||||
}
|
||||
|
||||
return $user;
|
||||
});
|
||||
}
|
||||
|
@ -323,7 +330,7 @@ trait UserActions
|
|||
*/
|
||||
protected function readPassword()
|
||||
{
|
||||
return F::read($this->root() . '/.htpasswd');
|
||||
return F::read($this->passwordFile());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -384,6 +391,6 @@ trait UserActions
|
|||
#[SensitiveParameter]
|
||||
string $password = null
|
||||
): bool {
|
||||
return F::write($this->root() . '/.htpasswd', $password);
|
||||
return F::write($this->passwordFile(), $password);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -301,8 +301,8 @@ class UserRules
|
|||
*/
|
||||
public static function validId(User $user, string $id): bool
|
||||
{
|
||||
if ($id === 'account') {
|
||||
throw new InvalidArgumentException('"account" is a reserved word and cannot be used as user id');
|
||||
if (in_array($id, ['account', 'kirby', 'nobody']) === true) {
|
||||
throw new InvalidArgumentException('"' . $id . '" is a reserved word and cannot be used as user id');
|
||||
}
|
||||
|
||||
if ($user->kirby()->users()->find($id)) {
|
||||
|
@ -341,12 +341,23 @@ class UserRules
|
|||
#[SensitiveParameter]
|
||||
string $password
|
||||
): bool {
|
||||
// too short passwords are ineffective
|
||||
if (Str::length($password ?? null) < 8) {
|
||||
throw new InvalidArgumentException([
|
||||
'key' => 'user.password.invalid',
|
||||
]);
|
||||
}
|
||||
|
||||
// too long passwords can cause DoS attacks
|
||||
// and are therefore blocked in the auth system
|
||||
// (blocked here as well to avoid passwords
|
||||
// that cannot be used to log in)
|
||||
if (Str::length($password ?? null) > 1000) {
|
||||
throw new InvalidArgumentException([
|
||||
'key' => 'user.password.excessive',
|
||||
]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -93,10 +93,14 @@ class Txt extends Handler
|
|||
throw new InvalidArgumentException('Invalid TXT data; please pass a string');
|
||||
}
|
||||
|
||||
// remove BOM
|
||||
$string = str_replace("\xEF\xBB\xBF", '', $string);
|
||||
// remove Unicode BOM at the beginning of the file
|
||||
if (Str::startsWith($string, "\xEF\xBB\xBF") === true) {
|
||||
$string = substr($string, 3);
|
||||
}
|
||||
|
||||
// explode all fields by the line separator
|
||||
$fields = preg_split('!\n----\s*\n*!', $string);
|
||||
|
||||
// start the data array
|
||||
$data = [];
|
||||
|
||||
|
|
43
kirby/src/Data/YamlSpyc.php
Normal file
43
kirby/src/Data/YamlSpyc.php
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
namespace Kirby\Data;
|
||||
|
||||
use Kirby\Exception\InvalidArgumentException;
|
||||
use Spyc;
|
||||
|
||||
/**
|
||||
* Simple Wrapper around the Spyc YAML class
|
||||
*
|
||||
* @package Kirby Data
|
||||
* @author Bastian Allgeier <bastian@getkirby.com>
|
||||
* @link https://getkirby.com
|
||||
* @copyright Bastian Allgeier
|
||||
* @license https://opensource.org/licenses/MIT
|
||||
*/
|
||||
class YamlSpyc
|
||||
{
|
||||
/**
|
||||
* Converts an array to an encoded YAML string
|
||||
*/
|
||||
public static function encode($data): string
|
||||
{
|
||||
// $data, $indent, $wordwrap, $no_opening_dashes
|
||||
return Spyc::YAMLDump($data, false, false, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses an encoded YAML string and returns a multi-dimensional array
|
||||
*/
|
||||
public static function decode($string): array
|
||||
{
|
||||
$result = Spyc::YAMLLoadString($string);
|
||||
|
||||
if (is_array($result) === true) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
// apparently Spyc always returns an array, even for invalid YAML syntax
|
||||
// so this Exception should currently never be thrown
|
||||
throw new InvalidArgumentException('The YAML data cannot be parsed'); // @codeCoverageIgnore
|
||||
}
|
||||
}
|
44
kirby/src/Data/YamlSymfony.php
Normal file
44
kirby/src/Data/YamlSymfony.php
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
namespace Kirby\Data;
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Toolkit\A;
|
||||
use Symfony\Component\Yaml\Yaml as Symfony;
|
||||
|
||||
/**
|
||||
* Simple Wrapper around the Symfony YAML class
|
||||
*
|
||||
* @package Kirby Data
|
||||
* @author Nico Hoffmann <nico@getkirby.com>
|
||||
* @link https://getkirby.com
|
||||
* @copyright Bastian Allgeier
|
||||
* @license https://opensource.org/licenses/MIT
|
||||
*/
|
||||
class YamlSymfony
|
||||
{
|
||||
/**
|
||||
* Converts an array to an encoded YAML string
|
||||
*/
|
||||
public static function encode($data): string
|
||||
{
|
||||
$kirby = App::instance(null, true);
|
||||
|
||||
return Symfony::dump(
|
||||
$data,
|
||||
$kirby?->option('yaml.params.inline') ?? 9999,
|
||||
$kirby?->option('yaml.params.indent') ?? 2,
|
||||
Symfony::DUMP_MULTI_LINE_LITERAL_BLOCK | Symfony::DUMP_EMPTY_ARRAY_AS_SEQUENCE
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses an encoded YAML string and returns a multi-dimensional array
|
||||
*/
|
||||
public static function decode($string): array
|
||||
{
|
||||
$result = Symfony::parse($string);
|
||||
$result = A::wrap($result);
|
||||
return $result;
|
||||
}
|
||||
}
|
|
@ -3,9 +3,10 @@
|
|||
namespace Kirby\Database;
|
||||
|
||||
use Closure;
|
||||
use Exception;
|
||||
use Kirby\Exception\InvalidArgumentException;
|
||||
use Kirby\Toolkit\A;
|
||||
use Kirby\Toolkit\Collection;
|
||||
use Kirby\Toolkit\Obj;
|
||||
use Kirby\Toolkit\Str;
|
||||
use PDO;
|
||||
use PDOStatement;
|
||||
|
@ -62,7 +63,7 @@ class Database
|
|||
/**
|
||||
* The last error
|
||||
*/
|
||||
protected Exception|null $lastError = null;
|
||||
protected Throwable|null $lastError = null;
|
||||
|
||||
/**
|
||||
* The last insert id
|
||||
|
@ -280,7 +281,7 @@ class Database
|
|||
/**
|
||||
* Returns the last db error
|
||||
*/
|
||||
public function lastError(): Throwable
|
||||
public function lastError(): Throwable|null
|
||||
{
|
||||
return $this->lastError;
|
||||
}
|
||||
|
@ -337,13 +338,16 @@ class Database
|
|||
/**
|
||||
* Executes a sql query, which is expected to return a set of results
|
||||
*/
|
||||
public function query(string $query, array $bindings = [], array $params = [])
|
||||
{
|
||||
public function query(
|
||||
string $query,
|
||||
array $bindings = [],
|
||||
array $params = []
|
||||
) {
|
||||
$defaults = [
|
||||
'flag' => null,
|
||||
'method' => 'fetchAll',
|
||||
'fetch' => 'Kirby\Toolkit\Obj',
|
||||
'iterator' => 'Kirby\Toolkit\Collection',
|
||||
'fetch' => Obj::class,
|
||||
'iterator' => Collection::class,
|
||||
];
|
||||
|
||||
$options = array_merge($defaults, $params);
|
||||
|
@ -359,7 +363,7 @@ class Database
|
|||
) {
|
||||
$flags = PDO::FETCH_ASSOC;
|
||||
} else {
|
||||
$flags = PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE;
|
||||
$flags = PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE;
|
||||
}
|
||||
|
||||
// add optional flags
|
||||
|
@ -368,7 +372,10 @@ class Database
|
|||
}
|
||||
|
||||
// set the fetch mode
|
||||
if ($options['fetch'] instanceof Closure || $options['fetch'] === 'array') {
|
||||
if (
|
||||
$options['fetch'] instanceof Closure ||
|
||||
$options['fetch'] === 'array'
|
||||
) {
|
||||
$this->statement->setFetchMode($flags);
|
||||
} else {
|
||||
$this->statement->setFetchMode($flags, $options['fetch']);
|
||||
|
@ -379,8 +386,14 @@ class Database
|
|||
|
||||
// apply the fetch closure to all results if given
|
||||
if ($options['fetch'] instanceof Closure) {
|
||||
foreach ($results as $key => $result) {
|
||||
$results[$key] = $options['fetch']($result, $key);
|
||||
if ($options['method'] === 'fetchAll') {
|
||||
// fetching multiple records
|
||||
foreach ($results as $key => $result) {
|
||||
$results[$key] = $options['fetch']($result, $key);
|
||||
}
|
||||
} elseif ($options['method'] === 'fetch' && $results !== false) {
|
||||
// fetching a single record
|
||||
$results = $options['fetch']($results, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -189,8 +189,12 @@ class Query
|
|||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function fetch(string|Closure $fetch): static
|
||||
public function fetch(string|callable|Closure $fetch): static
|
||||
{
|
||||
if (is_callable($fetch) === true) {
|
||||
$fetch = Closure::fromCallable($fetch);
|
||||
}
|
||||
|
||||
$this->fetch = $fetch;
|
||||
return $this;
|
||||
}
|
||||
|
@ -623,7 +627,7 @@ class Query
|
|||
/**
|
||||
* Selects only one row from a table
|
||||
*/
|
||||
public function first(): object|array|false
|
||||
public function first(): mixed
|
||||
{
|
||||
return $this->query($this->offset(0)->limit(1)->build('select'), [
|
||||
'fetch' => $this->fetch,
|
||||
|
@ -635,7 +639,7 @@ class Query
|
|||
/**
|
||||
* Selects only one row from a table
|
||||
*/
|
||||
public function row(): object|array|false
|
||||
public function row(): mixed
|
||||
{
|
||||
return $this->first();
|
||||
}
|
||||
|
@ -643,7 +647,7 @@ class Query
|
|||
/**
|
||||
* Selects only one row from a table
|
||||
*/
|
||||
public function one(): object|array|false
|
||||
public function one(): mixed
|
||||
{
|
||||
return $this->first();
|
||||
}
|
||||
|
|
|
@ -354,7 +354,7 @@ class File
|
|||
return F::modified(
|
||||
$this->root(),
|
||||
$format,
|
||||
$handler ?? ($kirby ? $kirby->option('date.handler', 'date') : 'date')
|
||||
$handler ?? $kirby?->option('date.handler', 'date') ?? 'date'
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -78,6 +78,7 @@ class Mime
|
|||
'php' => ['text/php', 'text/x-php', 'application/x-httpd-php', 'application/php', 'application/x-php', 'application/x-httpd-php-source'],
|
||||
'php3' => ['text/php', 'text/x-php', 'application/x-httpd-php', 'application/php', 'application/x-php', 'application/x-httpd-php-source'],
|
||||
'phps' => ['text/php', 'text/x-php', 'application/x-httpd-php', 'application/php', 'application/x-php', 'application/x-httpd-php-source'],
|
||||
'pht' => ['text/php', 'text/x-php', 'application/x-httpd-php', 'application/php', 'application/x-php', 'application/x-httpd-php-source'],
|
||||
'phtml' => ['text/php', 'text/x-php', 'application/x-httpd-php', 'application/php', 'application/x-php', 'application/x-httpd-php-source'],
|
||||
'png' => 'image/png',
|
||||
'ppt' => ['application/powerpoint', 'application/vnd.ms-powerpoint'],
|
||||
|
|
|
@ -402,7 +402,7 @@ class Field extends Component
|
|||
if ($formFields !== null) {
|
||||
foreach ($this->when as $field => $value) {
|
||||
$field = $formFields->get($field);
|
||||
$inputValue = $field !== null ? $field->value() : '';
|
||||
$inputValue = $field?->value() ?? '';
|
||||
|
||||
// if the input data doesn't match the requested `when` value,
|
||||
// that means that this field is not required and can be saved
|
||||
|
|
|
@ -49,7 +49,7 @@ class LayoutField extends BlocksField
|
|||
$settings = $this->settings();
|
||||
|
||||
return new Form([
|
||||
'fields' => $settings ? $settings->fields() : [],
|
||||
'fields' => $settings?->fields() ?? [],
|
||||
'model' => $this->model,
|
||||
'strict' => true,
|
||||
'values' => $input,
|
||||
|
@ -66,7 +66,7 @@ class LayoutField extends BlocksField
|
|||
$settings = $this->settings();
|
||||
|
||||
return array_merge(parent::props(), [
|
||||
'settings' => $settings !== null ? $settings->toArray() : null,
|
||||
'settings' => $settings?->toArray(),
|
||||
'layouts' => $this->layouts()
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -427,7 +427,7 @@ abstract class FieldClass
|
|||
if ($formFields !== null) {
|
||||
foreach ($this->when as $field => $value) {
|
||||
$field = $formFields->get($field);
|
||||
$inputValue = $field !== null ? $field->value() : '';
|
||||
$inputValue = $field?->value() ?? '';
|
||||
|
||||
// if the input data doesn't match the requested `when` value,
|
||||
// that means that this field is not required and can be saved
|
||||
|
|
|
@ -377,8 +377,8 @@ class Environment
|
|||
$data['https'] = $this->detectHttpsProtocol($fields['proto']);
|
||||
}
|
||||
|
||||
if ($data['port'] === null && $data['https'] === true) {
|
||||
$data['port'] = 443;
|
||||
if ($data['https'] === true) {
|
||||
$data['port'] ??= 443;
|
||||
}
|
||||
|
||||
$data['for'] = $parts['for'] ?? null;
|
||||
|
@ -772,18 +772,28 @@ class Environment
|
|||
|
||||
/**
|
||||
* Loads and returns options from environment-specific
|
||||
* PHP files (by host name and server IP address)
|
||||
* PHP files (by host name and server IP address or CLI)
|
||||
*
|
||||
* @param string $root Root directory to load configs from
|
||||
*/
|
||||
public function options(string $root): array
|
||||
{
|
||||
$configCli = [];
|
||||
$configHost = [];
|
||||
$configAddr = [];
|
||||
|
||||
$host = $this->host();
|
||||
$addr = $this->ip();
|
||||
|
||||
// load the config for the cli
|
||||
if ($this->cli() === true) {
|
||||
$configCli = F::load(
|
||||
file: $root . '/config.cli.php',
|
||||
fallback: [],
|
||||
allowOutput: false
|
||||
);
|
||||
}
|
||||
|
||||
// load the config for the host
|
||||
if (empty($host) === false) {
|
||||
$configHost = F::load(
|
||||
|
@ -802,7 +812,7 @@ class Environment
|
|||
);
|
||||
}
|
||||
|
||||
return array_replace_recursive($configHost, $configAddr);
|
||||
return array_replace_recursive($configCli, $configHost, $configAddr);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -60,6 +60,8 @@ class Remote
|
|||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @throws \Exception when the curl request failed
|
||||
*/
|
||||
public function __construct(string $url, array $options = [])
|
||||
{
|
||||
|
@ -120,6 +122,7 @@ class Remote
|
|||
* Sets up all curl options and sends the request
|
||||
*
|
||||
* @return $this
|
||||
* @throws \Exception when the curl request failed
|
||||
*/
|
||||
public function fetch(): static
|
||||
{
|
||||
|
@ -258,6 +261,8 @@ class Remote
|
|||
|
||||
/**
|
||||
* Static method to send a GET request
|
||||
*
|
||||
* @throws \Exception when the curl request failed
|
||||
*/
|
||||
public static function get(string $url, array $params = []): static
|
||||
{
|
||||
|
@ -339,6 +344,8 @@ class Remote
|
|||
|
||||
/**
|
||||
* Static method to init this class and send a request
|
||||
*
|
||||
* @throws \Exception when the curl request failed
|
||||
*/
|
||||
public static function request(string $url, array $params = []): static
|
||||
{
|
||||
|
|
|
@ -195,7 +195,7 @@ class Request
|
|||
*/
|
||||
public function data(): array
|
||||
{
|
||||
return array_merge($this->body()->toArray(), $this->query()->toArray());
|
||||
return array_replace($this->body()->toArray(), $this->query()->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -210,8 +210,8 @@ class Request
|
|||
// the request method can be overwritten with a header
|
||||
$methodOverride = strtoupper(Environment::getGlobally('HTTP_X_HTTP_METHOD_OVERRIDE', ''));
|
||||
|
||||
if ($method === null && in_array($methodOverride, $methods) === true) {
|
||||
$method = $methodOverride;
|
||||
if (in_array($methodOverride, $methods) === true) {
|
||||
$method ??= $methodOverride;
|
||||
}
|
||||
|
||||
// final chain of options to detect the method
|
||||
|
|
|
@ -176,6 +176,18 @@ class Response
|
|||
'type' => F::extensionToMime(F::extension($file))
|
||||
], $props);
|
||||
|
||||
// if we couldn't serve a correct MIME type, force
|
||||
// the browser to display the file as plain text to
|
||||
// harden against attacks from malicious file uploads
|
||||
if ($props['type'] === null) {
|
||||
if (isset($props['headers']) !== true) {
|
||||
$props['headers'] = [];
|
||||
}
|
||||
|
||||
$props['type'] = 'text/plain';
|
||||
$props['headers']['X-Content-Type-Options'] = 'nosniff';
|
||||
}
|
||||
|
||||
return new static($props);
|
||||
}
|
||||
|
||||
|
|
|
@ -69,10 +69,15 @@ class Document
|
|||
'custom' => static::customAsset('panel.css'),
|
||||
],
|
||||
'icons' => static::favicon($url),
|
||||
// loader for plugins' index.dev.mjs files – inlined, so we provide the code instead of the asset URL
|
||||
// loader for plugins' index.dev.mjs files –
|
||||
// inlined, so we provide the code instead of the asset URL
|
||||
'plugin-imports' => $plugins->read('mjs'),
|
||||
'js' => [
|
||||
'vendor' => [
|
||||
'vue' => [
|
||||
'nonce' => $nonce,
|
||||
'src' => $url . '/js/vue.js'
|
||||
],
|
||||
'vendor' => [
|
||||
'nonce' => $nonce,
|
||||
'src' => $url . '/js/vendor.js',
|
||||
'type' => 'module'
|
||||
|
@ -82,17 +87,17 @@ class Document
|
|||
'src' => $url . '/js/plugins.js',
|
||||
'type' => 'module'
|
||||
],
|
||||
'plugins' => [
|
||||
'plugins' => [
|
||||
'nonce' => $nonce,
|
||||
'src' => $plugins->url('js'),
|
||||
'defer' => true
|
||||
],
|
||||
'custom' => [
|
||||
'custom' => [
|
||||
'nonce' => $nonce,
|
||||
'src' => static::customAsset('panel.js'),
|
||||
'type' => 'module'
|
||||
],
|
||||
'index' => [
|
||||
'index' => [
|
||||
'nonce' => $nonce,
|
||||
'src' => $url . '/js/index.js',
|
||||
'type' => 'module'
|
||||
|
@ -115,6 +120,9 @@ class Document
|
|||
'type' => 'module'
|
||||
];
|
||||
|
||||
// load the development version of Vue
|
||||
$assets['js']['vue']['src'] = $url . '/node_modules/vue/dist/vue.js';
|
||||
|
||||
unset($assets['css']['index'], $assets['js']['vendor']);
|
||||
}
|
||||
|
||||
|
@ -270,6 +278,16 @@ class Document
|
|||
'panelUrl' => $uri->path()->toString(true) . '/',
|
||||
]);
|
||||
|
||||
return new Response($body, 'text/html', $code);
|
||||
$frameAncestors = $kirby->option('panel.frameAncestors');
|
||||
$frameAncestors = match (true) {
|
||||
$frameAncestors === true => "'self'",
|
||||
is_array($frameAncestors) => "'self' " . implode(' ', $frameAncestors),
|
||||
is_string($frameAncestors) => $frameAncestors,
|
||||
default => "'none'"
|
||||
};
|
||||
|
||||
return new Response($body, 'text/html', $code, [
|
||||
'Content-Security-Policy' => 'frame-ancestors ' . $frameAncestors
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ use Kirby\Exception\NotFoundException;
|
|||
use Kirby\Exception\PermissionException;
|
||||
use Kirby\Http\Response;
|
||||
use Kirby\Http\Router;
|
||||
use Kirby\Http\Uri;
|
||||
use Kirby\Http\Url;
|
||||
use Kirby\Toolkit\Str;
|
||||
use Kirby\Toolkit\Tpl;
|
||||
|
@ -538,15 +539,22 @@ class Panel
|
|||
*/
|
||||
public static function url(string|null $url = null): string
|
||||
{
|
||||
$slug = App::instance()->option('panel.slug', 'panel');
|
||||
|
||||
// only touch relative paths
|
||||
if (Url::isAbsolute($url) === false) {
|
||||
$path = trim($url, '/');
|
||||
$kirby = App::instance();
|
||||
$slug = $kirby->option('panel.slug', 'panel');
|
||||
$path = trim($url, '/');
|
||||
|
||||
$baseUri = new Uri($kirby->url());
|
||||
$basePath = trim($baseUri->path()->toString(), '/');
|
||||
|
||||
// removes base path if relative path contains it
|
||||
if (empty($basePath) === false && Str::startsWith($path, $basePath) === true) {
|
||||
$path = Str::after($path, $basePath);
|
||||
}
|
||||
// add the panel slug prefix if it it's not
|
||||
// included in the path yet
|
||||
if (Str::startsWith($path, $slug . '/') === false) {
|
||||
elseif (Str::startsWith($path, $slug . '/') === false) {
|
||||
$path = $slug . '/' . $path;
|
||||
}
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ class View
|
|||
$user = $kirby->user();
|
||||
|
||||
// user permissions
|
||||
$permissions = $user ? $user->role()->permissions()->toArray() : [];
|
||||
$permissions = $user?->role()->permissions()->toArray() ?? [];
|
||||
|
||||
// current content language
|
||||
$language = $kirby->language();
|
||||
|
|
|
@ -28,7 +28,15 @@ class Inline
|
|||
public function __construct(DOMNode $node, array $marks = [])
|
||||
{
|
||||
$this->createMarkRules($marks);
|
||||
$this->html = trim(static::parseNode($node, $this->marks) ?? '');
|
||||
|
||||
$html = static::parseNode($node, $this->marks) ?? '';
|
||||
|
||||
// only trim HTML if it doesn't consist of only spaces
|
||||
if (trim($html) !== '') {
|
||||
$html = trim($html);
|
||||
}
|
||||
|
||||
$this->html = $html;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -70,6 +70,10 @@ class Argument
|
|||
|
||||
// numeric
|
||||
if (is_numeric($argument) === true) {
|
||||
if (strpos($argument, '.') === false) {
|
||||
return new static((int)$argument);
|
||||
}
|
||||
|
||||
return new static((float)$argument);
|
||||
}
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ Query::$entries['file'] = function (string $id): File|null {
|
|||
};
|
||||
|
||||
Query::$entries['page'] = function (string $id): Page|null {
|
||||
return App::instance()->site()->find($id);
|
||||
return App::instance()->page($id);
|
||||
};
|
||||
|
||||
Query::$entries['site'] = function (): Site {
|
||||
|
|
|
@ -77,19 +77,17 @@ class Segment
|
|||
/**
|
||||
* Automatically resolves the segment depending on the
|
||||
* segment position and the type of the base
|
||||
*
|
||||
* @param mixed $base Current value of the query chain
|
||||
*/
|
||||
public function resolve(mixed $base = null, array|object $data = []): mixed
|
||||
{
|
||||
// resolve arguments to array
|
||||
$args = $this->arguments?->resolve($data) ?? [];
|
||||
|
||||
// 1st segment, start from $data array
|
||||
// 1st segment, use $data as base
|
||||
if ($this->position === 0) {
|
||||
if (is_array($data) == true) {
|
||||
return $this->resolveArray($data, $args);
|
||||
}
|
||||
|
||||
return $this->resolveObject($data, $args);
|
||||
$base = $data;
|
||||
}
|
||||
|
||||
if (is_array($base) === true) {
|
||||
|
@ -109,26 +107,55 @@ class Segment
|
|||
*/
|
||||
protected function resolveArray(array $array, array $args): mixed
|
||||
{
|
||||
if (array_key_exists($this->method, $array) === false) {
|
||||
static::error($array, $this->method, 'property');
|
||||
// the directly provided array takes precedence
|
||||
// to look up a matching entry
|
||||
if (array_key_exists($this->method, $array) === true) {
|
||||
$value = $array[$this->method];
|
||||
|
||||
// if this is a Closure we can directly use it, as
|
||||
// Closures from the $array should always have priority
|
||||
// over the Query::$entries Closures
|
||||
if ($value instanceof Closure) {
|
||||
return $value(...$args);
|
||||
}
|
||||
|
||||
// if we have no arguments to pass, we also can directly
|
||||
// use the value from the $array as it must not be different
|
||||
// to the one from Query::$entries with the same name
|
||||
if ($args === []) {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
$value = $array[$this->method];
|
||||
|
||||
if ($value instanceof Closure) {
|
||||
return $value(...$args);
|
||||
// fallback time: only if we are handling the first segment,
|
||||
// we can also try to resolve the segment with an entry from the
|
||||
// default Query::$entries
|
||||
if ($this->position === 0) {
|
||||
if (array_key_exists($this->method, Query::$entries) === true) {
|
||||
return Query::$entries[$this->method](...$args);
|
||||
}
|
||||
}
|
||||
|
||||
if ($args !== []) {
|
||||
// if we have not been able to return anything so far,
|
||||
// we just need to differntiate between two different error messages
|
||||
|
||||
// this one is in case the original array contained the key,
|
||||
// but was not a Closure while the segment had arguments
|
||||
if (
|
||||
array_key_exists($this->method, $array) &&
|
||||
$args !== []
|
||||
) {
|
||||
throw new InvalidArgumentException('Cannot access array element "' . $this->method . '" with arguments');
|
||||
}
|
||||
|
||||
return $value;
|
||||
// last, the standard error for trying to access something
|
||||
// that does not exist
|
||||
static::error($array, $this->method, 'property');
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves segment by calling the method/accessing the property
|
||||
* on the base object
|
||||
* Resolves segment by calling the method/
|
||||
* accessing the property on the base object
|
||||
*/
|
||||
protected function resolveObject(object $object, array $args): mixed
|
||||
{
|
||||
|
@ -140,7 +167,8 @@ class Segment
|
|||
}
|
||||
|
||||
if (
|
||||
$args === [] && (
|
||||
$args === [] &&
|
||||
(
|
||||
property_exists($object, $this->method) === true ||
|
||||
method_exists($object, '__get') === true
|
||||
)
|
||||
|
|
|
@ -10,6 +10,7 @@ use Kirby\Exception\NotFoundException;
|
|||
use Kirby\Http\Cookie;
|
||||
use Kirby\Http\Url;
|
||||
use Kirby\Toolkit\Str;
|
||||
use Kirby\Toolkit\SymmetricCrypto;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
|
@ -38,7 +39,7 @@ class Session
|
|||
protected $lastActivity;
|
||||
protected $renewable;
|
||||
protected $data;
|
||||
protected $newSession;
|
||||
protected array|null $newSession;
|
||||
|
||||
// temporary state flags
|
||||
protected $updatingLastActivity = false;
|
||||
|
@ -348,15 +349,27 @@ class Session
|
|||
}
|
||||
|
||||
// collect all data
|
||||
if ($this->newSession) {
|
||||
if (isset($this->newSession) === true) {
|
||||
// the token has changed
|
||||
// we are writing to the old session: it only gets the reference to the new session
|
||||
// and a shortened expiry time (30 second grace period)
|
||||
$data = [
|
||||
'startTime' => $this->startTime(),
|
||||
'expiryTime' => time() + 30,
|
||||
'newSession' => $this->newSession
|
||||
'newSession' => $this->newSession[0]
|
||||
];
|
||||
|
||||
// include the token key for the new session if we
|
||||
// have access to the PHP `sodium` extension;
|
||||
// otherwise (if no encryption is possible), the token key
|
||||
// is omitted, which makes the new session read-only
|
||||
// when accessed through the old session
|
||||
if ($crypto = $this->crypto()) {
|
||||
// encrypt the new token key with the old token key
|
||||
// so that attackers with read access to the session file
|
||||
// (e.g. via directory traversal) cannot impersonate the new session
|
||||
$data['newSessionKey'] = $crypto->encrypt($this->newSession[1]);
|
||||
}
|
||||
} else {
|
||||
$data = [
|
||||
'startTime' => $this->startTime(),
|
||||
|
@ -446,7 +459,7 @@ class Session
|
|||
|
||||
// mark the old session as moved if there is one
|
||||
if ($this->tokenExpiry !== null) {
|
||||
$this->newSession = $tokenExpiry . '.' . $tokenId;
|
||||
$this->newSession = [$tokenExpiry . '.' . $tokenId, $tokenKey];
|
||||
$this->commit();
|
||||
|
||||
// we are now in the context of the new session
|
||||
|
@ -536,7 +549,7 @@ class Session
|
|||
}
|
||||
|
||||
// don't allow writing for read-only sessions
|
||||
// (only the case for moved sessions)
|
||||
// (only the case for moved sessions when the PHP `sodium` extension is not available)
|
||||
/**
|
||||
* @todo This check gets flagged by Psalm for unknown reasons
|
||||
* @psalm-suppress ParadoxicalCondition
|
||||
|
@ -555,6 +568,22 @@ class Session
|
|||
$this->writeMode = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a symmetric crypto instance based on the
|
||||
* token key of the session
|
||||
*/
|
||||
protected function crypto(): SymmetricCrypto|null
|
||||
{
|
||||
if (
|
||||
$this->tokenKey === null ||
|
||||
SymmetricCrypto::isAvailable() === false
|
||||
) {
|
||||
return null; // @codeCoverageIgnore
|
||||
}
|
||||
|
||||
return new SymmetricCrypto(secretKey: hex2bin($this->tokenKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a token string into its parts and sets them as instance vars
|
||||
*
|
||||
|
@ -698,6 +727,20 @@ class Session
|
|||
|
||||
// follow to the new session if there is one
|
||||
if (isset($data['newSession'])) {
|
||||
// decrypt the token key if provided and we have access to
|
||||
// the PHP `sodium` extension for decryption
|
||||
if (
|
||||
isset($data['newSessionKey']) === true &&
|
||||
$crypto = $this->crypto()
|
||||
) {
|
||||
$tokenKey = $crypto->decrypt($data['newSessionKey']);
|
||||
|
||||
$this->parseToken($data['newSession'] . '.' . $tokenKey);
|
||||
$this->init();
|
||||
return;
|
||||
}
|
||||
|
||||
// otherwise initialize without the token key (read-only mode)
|
||||
$this->parseToken($data['newSession'], true);
|
||||
$this->init();
|
||||
return;
|
||||
|
|
|
@ -59,6 +59,77 @@ class A
|
|||
return count($array);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if every element in the array passes the test
|
||||
*
|
||||
* <code>
|
||||
* $array = [1, 30, 39, 29, 10, 13];
|
||||
*
|
||||
* $isBelowThreshold = fn($value) => $value < 40;
|
||||
* echo A::every($array, $isBelowThreshold) ? 'true' : 'false';
|
||||
* // output: 'true'
|
||||
*
|
||||
* $isIntegerKey = fn($value, $key) => is_int($key);
|
||||
* echo A::every($array, $isIntegerKey) ? 'true' : 'false';
|
||||
* // output: 'true'
|
||||
* </code>
|
||||
*
|
||||
* @since 3.9.8
|
||||
* @param array $array
|
||||
* @param callable(mixed $value, int|string $key, array $array):bool $test
|
||||
* @return bool
|
||||
*/
|
||||
public static function every(array $array, callable $test): bool
|
||||
{
|
||||
foreach ($array as $key => $value) {
|
||||
if (!$test($value, $key, $array)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the first element matching the given callback
|
||||
*
|
||||
* <code>
|
||||
* $array = [1, 30, 39, 29, 10, 13];
|
||||
*
|
||||
* $isAboveThreshold = fn($value) => $value > 30;
|
||||
* echo A::find($array, $isAboveThreshold);
|
||||
* // output: '39'
|
||||
*
|
||||
* $array = [
|
||||
* 'cat' => 'miao',
|
||||
* 'cow' => 'moo',
|
||||
* 'colibri' => 'humm',
|
||||
* 'dog' => 'wuff',
|
||||
* 'chicken' => 'cluck',
|
||||
* 'bird' => 'tweet'
|
||||
* ];
|
||||
*
|
||||
* $keyNotStartingWithC = fn($value, $key) => $key[0] !== 'c';
|
||||
* echo A::find($array, $keyNotStartingWithC);
|
||||
* // output: 'wuff'
|
||||
* </code>
|
||||
*
|
||||
* @since 3.9.8
|
||||
* @param array $array
|
||||
* @param callable(mixed $value, int|string $key, array $array):bool $callback
|
||||
* @return mixed
|
||||
*/
|
||||
public static function find(array $array, callable $callback): mixed
|
||||
{
|
||||
foreach ($array as $key => $value) {
|
||||
if ($callback($value, $key, $array)) {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an element of an array by key
|
||||
*
|
||||
|
@ -117,20 +188,23 @@ class A
|
|||
$keys = explode('.', $key);
|
||||
$firstKey = array_shift($keys);
|
||||
|
||||
// if the input array also uses dot notation, try to find a subset of the $keys
|
||||
// if the input array also uses dot notation,
|
||||
// try to find a subset of the $keys
|
||||
if (isset($array[$firstKey]) === false) {
|
||||
$currentKey = $firstKey;
|
||||
|
||||
while ($innerKey = array_shift($keys)) {
|
||||
$currentKey .= '.' . $innerKey;
|
||||
|
||||
// the element needs to exist and also needs to be an array; otherwise
|
||||
// we cannot find the remaining keys within it (invalid array structure)
|
||||
// the element needs to exist and also needs
|
||||
// to be an array; otherwise we cannot find the
|
||||
// remaining keys within it (invalid array structure)
|
||||
if (
|
||||
isset($array[$currentKey]) === true &&
|
||||
is_array($array[$currentKey]) === true
|
||||
) {
|
||||
// $keys only holds the remaining keys that have not been shifted off yet
|
||||
// $keys only holds the remaining keys
|
||||
// that have not been shifted off yet
|
||||
return static::get(
|
||||
$array[$currentKey],
|
||||
implode('.', $keys),
|
||||
|
@ -204,7 +278,10 @@ class A
|
|||
*/
|
||||
public static function keyBy(array $array, string|callable $keyBy): array
|
||||
{
|
||||
$keys = is_callable($keyBy) ? static::map($array, $keyBy) : static::pluck($array, $keyBy);
|
||||
$keys =
|
||||
is_callable($keyBy) ?
|
||||
static::map($array, $keyBy) :
|
||||
static::pluck($array, $keyBy);
|
||||
|
||||
if (count($keys) !== count($array)) {
|
||||
throw new InvalidArgumentException('The "key by" argument must be a valid key or a callable');
|
||||
|
@ -401,6 +478,37 @@ class A
|
|||
return array_slice($array, $offset, $length, $preserveKeys);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if at least one element in the array passes the test
|
||||
*
|
||||
* <code>
|
||||
* $array = [1, 30, 39, 29, 10, 'foo' => 12, 13];
|
||||
*
|
||||
* $isAboveThreshold = fn($value) => $value > 30;
|
||||
* echo A::some($array, $isAboveThreshold) ? 'true' : 'false';
|
||||
* // output: 'true'
|
||||
*
|
||||
* $isStringKey = fn($value, $key) => is_string($key);
|
||||
* echo A::some($array, $isStringKey) ? 'true' : 'false';
|
||||
* // output: 'true'
|
||||
* </code>
|
||||
*
|
||||
* @since 3.9.8
|
||||
* @param array $array
|
||||
* @param callable(mixed $value, int|string $key, array $array):bool $test
|
||||
* @return bool
|
||||
*/
|
||||
public static function some(array $array, callable $test): bool
|
||||
{
|
||||
foreach ($array as $key => $value) {
|
||||
if ($test($value, $key, $array)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sums an array
|
||||
*
|
||||
|
@ -600,7 +708,7 @@ class A
|
|||
$key = array_shift($subKeys);
|
||||
|
||||
// skip the magic for ignored keys
|
||||
if (isset($ignore[$key]) === true && $ignore[$key] === true) {
|
||||
if (($ignore[$key] ?? null) === true) {
|
||||
$result[$fullKey] = $value;
|
||||
continue;
|
||||
}
|
||||
|
@ -618,8 +726,7 @@ class A
|
|||
// merge arrays with previous results if necessary
|
||||
// (needed when the same keys are used both with and without dot notation)
|
||||
if (
|
||||
isset($result[$key]) === true &&
|
||||
is_array($result[$key]) === true &&
|
||||
is_array($result[$key] ?? null) === true &&
|
||||
is_array($value) === true
|
||||
) {
|
||||
$value = array_replace_recursive($result[$key], $value);
|
||||
|
@ -704,8 +811,12 @@ class A
|
|||
* PHP by sort flags
|
||||
* @return array The sorted array
|
||||
*/
|
||||
public static function sort(array $array, string $field, string $direction = 'desc', $method = SORT_REGULAR): array
|
||||
{
|
||||
public static function sort(
|
||||
array $array,
|
||||
string $field,
|
||||
string $direction = 'desc',
|
||||
$method = SORT_REGULAR
|
||||
): array {
|
||||
$direction = strtolower($direction) === 'desc' ? SORT_DESC : SORT_ASC;
|
||||
$helper = [];
|
||||
$result = [];
|
||||
|
@ -818,7 +929,7 @@ class A
|
|||
{
|
||||
foreach ($update as $key => $value) {
|
||||
if ($value instanceof Closure) {
|
||||
$value = call_user_func($value, static::get($array, $key));
|
||||
$value = $value(static::get($array, $key));
|
||||
}
|
||||
|
||||
$array[$key] = $value;
|
||||
|
|
|
@ -123,6 +123,10 @@ class Collection extends Iterator implements Countable
|
|||
*/
|
||||
public function __unset($key)
|
||||
{
|
||||
if ($this->caseSensitive !== true) {
|
||||
$key = strtolower($key);
|
||||
}
|
||||
|
||||
unset($this->data[$key]);
|
||||
}
|
||||
|
||||
|
@ -531,7 +535,7 @@ class Collection extends Iterator implements Countable
|
|||
$value = $this->getAttribute($item, $field);
|
||||
|
||||
// ignore upper/lowercase for group names
|
||||
return $i === true ? Str::lower($value) : $value;
|
||||
return $i === true ? Str::lower($value) : (string)$value;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -84,10 +84,6 @@ class Component
|
|||
|
||||
/**
|
||||
* Magic caller for defined methods and properties
|
||||
*
|
||||
* @param string $name
|
||||
* @param array $arguments
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call(string $name, array $arguments = [])
|
||||
{
|
||||
|
@ -108,9 +104,6 @@ class Component
|
|||
|
||||
/**
|
||||
* Creates a new component for the given type
|
||||
*
|
||||
* @param string $type
|
||||
* @param array $attrs
|
||||
*/
|
||||
public function __construct(string $type, array $attrs = [])
|
||||
{
|
||||
|
@ -142,8 +135,6 @@ class Component
|
|||
|
||||
/**
|
||||
* Improved `var_dump` output
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function __debugInfo(): array
|
||||
{
|
||||
|
@ -153,9 +144,6 @@ class Component
|
|||
/**
|
||||
* Fallback for missing properties to return
|
||||
* null instead of an error
|
||||
*
|
||||
* @param string $attr
|
||||
* @return null
|
||||
*/
|
||||
public function __get(string $attr)
|
||||
{
|
||||
|
@ -167,8 +155,6 @@ class Component
|
|||
* This can be overwritten by extended classes
|
||||
* to define basic options that should always
|
||||
* be applied.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function defaults(): array
|
||||
{
|
||||
|
@ -178,9 +164,6 @@ class Component
|
|||
/**
|
||||
* Register all defined props and apply the
|
||||
* passed values.
|
||||
*
|
||||
* @param array $props
|
||||
* @return void
|
||||
*/
|
||||
protected function applyProps(array $props): void
|
||||
{
|
||||
|
@ -208,9 +191,6 @@ class Component
|
|||
/**
|
||||
* Register all computed properties and calculate their values.
|
||||
* This must happen after all props are registered.
|
||||
*
|
||||
* @param array $computed
|
||||
* @return void
|
||||
*/
|
||||
protected function applyComputed(array $computed): void
|
||||
{
|
||||
|
@ -223,9 +203,6 @@ class Component
|
|||
|
||||
/**
|
||||
* Load a component definition by type
|
||||
*
|
||||
* @param string $type
|
||||
* @return array
|
||||
*/
|
||||
public static function load(string $type): array
|
||||
{
|
||||
|
@ -248,9 +225,6 @@ class Component
|
|||
* mixes in the defaults from the defaults method and
|
||||
* then injects all additional mixins, defined in the
|
||||
* component options.
|
||||
*
|
||||
* @param string $type
|
||||
* @return array
|
||||
*/
|
||||
public static function setup(string $type): array
|
||||
{
|
||||
|
@ -292,8 +266,6 @@ class Component
|
|||
|
||||
/**
|
||||
* Converts all props and computed props to an array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray(): array
|
||||
{
|
||||
|
|
|
@ -26,11 +26,25 @@ class Controller
|
|||
public function arguments(array $data = []): array
|
||||
{
|
||||
$info = new ReflectionFunction($this->function);
|
||||
$args = [];
|
||||
|
||||
return A::map(
|
||||
$info->getParameters(),
|
||||
fn ($parameter) => $data[$parameter->getName()] ?? null
|
||||
);
|
||||
foreach ($info->getParameters() as $param) {
|
||||
$name = $param->getName();
|
||||
|
||||
if ($param->isVariadic() === true) {
|
||||
// variadic ... argument collects all remaining values
|
||||
$args += $data;
|
||||
} elseif (isset($data[$name]) === true) {
|
||||
// use provided argument value if available
|
||||
$args[$name] = $data[$name];
|
||||
} elseif ($param->isDefaultValueAvailable() === false) {
|
||||
// use null for any other arguments that don't define
|
||||
// a default value for themselves
|
||||
$args[$name] = null;
|
||||
}
|
||||
}
|
||||
|
||||
return $args;
|
||||
}
|
||||
|
||||
public function call($bind = null, $data = [])
|
||||
|
@ -44,7 +58,7 @@ class Controller
|
|||
return $this->function->call($bind, ...$args);
|
||||
}
|
||||
|
||||
public static function load(string $file)
|
||||
public static function load(string $file): static|null
|
||||
{
|
||||
if (is_file($file) === false) {
|
||||
return null;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace Kirby\Toolkit;
|
||||
|
||||
use DateInterval;
|
||||
use DateTime;
|
||||
use DateTimeInterface;
|
||||
use DateTimeZone;
|
||||
|
@ -27,8 +28,10 @@ class Date extends DateTime
|
|||
* @param string|int|\DateTimeInterface $datetime Datetime string, UNIX timestamp or object
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
*/
|
||||
public function __construct($datetime = 'now', ?DateTimeZone $timezone = null)
|
||||
{
|
||||
public function __construct(
|
||||
string|int|DateTimeInterface $datetime = 'now',
|
||||
DateTimeZone|null $timezone = null
|
||||
) {
|
||||
if (is_int($datetime) === true) {
|
||||
$datetime = date('r', $datetime);
|
||||
}
|
||||
|
@ -42,8 +45,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Returns the datetime in `YYYY-MM-DD hh:mm:ss` format with timezone
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString(): string
|
||||
{
|
||||
|
@ -58,7 +59,7 @@ class Date extends DateTime
|
|||
*
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the unit name is invalid
|
||||
*/
|
||||
public function ceil(string $unit)
|
||||
public function ceil(string $unit): static
|
||||
{
|
||||
static::validateUnit($unit);
|
||||
|
||||
|
@ -70,20 +71,17 @@ class Date extends DateTime
|
|||
/**
|
||||
* Returns the interval between the provided and the object's datetime
|
||||
*
|
||||
* @param string|int|\DateTimeInterface $datetime
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
* @return \DateInterval
|
||||
*/
|
||||
public function compare($datetime = 'now', ?DateTimeZone $timezone = null)
|
||||
{
|
||||
public function compare(
|
||||
string|int|DateTimeInterface $datetime = 'now',
|
||||
DateTimeZone|null $timezone = null
|
||||
): DateInterval {
|
||||
return $this->diff(new static($datetime, $timezone));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets or sets the day value
|
||||
*
|
||||
* @param int|null $day
|
||||
* @return int
|
||||
*/
|
||||
public function day(int|null $day = null): int
|
||||
{
|
||||
|
@ -103,7 +101,7 @@ class Date extends DateTime
|
|||
*
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the unit name is invalid
|
||||
*/
|
||||
public function floor(string $unit)
|
||||
public function floor(string $unit): static
|
||||
{
|
||||
static::validateUnit($unit);
|
||||
|
||||
|
@ -123,9 +121,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Gets or sets the hour value
|
||||
*
|
||||
* @param int|null $hour
|
||||
* @return int
|
||||
*/
|
||||
public function hour(int|null $hour = null): int
|
||||
{
|
||||
|
@ -140,79 +135,75 @@ class Date extends DateTime
|
|||
/**
|
||||
* Checks if the object's datetime is the same as the given datetime
|
||||
*
|
||||
* @param string|int|\DateTimeInterface $datetime
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
* @return bool
|
||||
*/
|
||||
public function is($datetime = 'now', ?DateTimeZone $timezone = null): bool
|
||||
{
|
||||
public function is(
|
||||
string|int|DateTimeInterface $datetime = 'now',
|
||||
DateTimeZone|null $timezone = null
|
||||
): bool {
|
||||
return $this == new static($datetime, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the object's datetime is after the given datetime
|
||||
*
|
||||
* @param string|int|\DateTimeInterface $datetime
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
* @return bool
|
||||
*/
|
||||
public function isAfter($datetime = 'now', ?DateTimeZone $timezone = null): bool
|
||||
{
|
||||
public function isAfter(
|
||||
string|int|DateTimeInterface $datetime = 'now',
|
||||
DateTimeZone|null $timezone = null
|
||||
): bool {
|
||||
return $this > new static($datetime, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the object's datetime is before the given datetime
|
||||
*
|
||||
* @param string|int|\DateTimeInterface $datetime
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
* @return bool
|
||||
*/
|
||||
public function isBefore($datetime = 'now', ?DateTimeZone $timezone = null): bool
|
||||
{
|
||||
public function isBefore(
|
||||
string|int|DateTimeInterface $datetime = 'now',
|
||||
DateTimeZone|null $timezone = null
|
||||
): bool {
|
||||
return $this < new static($datetime, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the object's datetime is between the given datetimes
|
||||
*
|
||||
* @param string|int|\DateTimeInterface $min
|
||||
* @param string|int|\DateTimeInterface $max
|
||||
* @return bool
|
||||
*/
|
||||
public function isBetween($min, $max): bool
|
||||
{
|
||||
public function isBetween(
|
||||
string|int|DateTimeInterface $min,
|
||||
string|int|DateTimeInterface $max
|
||||
): bool {
|
||||
return $this->isMin($min) === true && $this->isMax($max) === true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the object's datetime is at or before the given datetime
|
||||
*
|
||||
* @param string|int|\DateTimeInterface $datetime
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
* @return bool
|
||||
*/
|
||||
public function isMax($datetime = 'now', ?DateTimeZone $timezone = null): bool
|
||||
{
|
||||
public function isMax(
|
||||
string|int|DateTimeInterface $datetime = 'now',
|
||||
DateTimeZone|null $timezone = null
|
||||
): bool {
|
||||
return $this <= new static($datetime, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the object's datetime is at or after the given datetime
|
||||
*
|
||||
* @param string|int|\DateTimeInterface $datetime
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
* @return bool
|
||||
*/
|
||||
public function isMin($datetime = 'now', ?DateTimeZone $timezone = null): bool
|
||||
{
|
||||
public function isMin(
|
||||
string|int|DateTimeInterface $datetime = 'now',
|
||||
DateTimeZone|null $timezone = null
|
||||
): bool {
|
||||
return $this >= new static($datetime, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the microsecond value
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function microsecond(): int
|
||||
{
|
||||
|
@ -221,8 +212,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Gets the millisecond value
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function millisecond(): int
|
||||
{
|
||||
|
@ -231,9 +220,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Gets or sets the minute value
|
||||
*
|
||||
* @param int|null $minute
|
||||
* @return int
|
||||
*/
|
||||
public function minute(int|null $minute = null): int
|
||||
{
|
||||
|
@ -247,9 +233,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Gets or sets the month value
|
||||
*
|
||||
* @param int|null $month
|
||||
* @return int
|
||||
*/
|
||||
public function month(int|null $month = null): int
|
||||
{
|
||||
|
@ -265,10 +248,10 @@ class Date extends DateTime
|
|||
* Returns the datetime which is nearest to the object's datetime
|
||||
*
|
||||
* @param string|int|\DateTimeInterface ...$datetime Datetime strings, UNIX timestamps or objects
|
||||
* @return string|int|\DateTimeInterface
|
||||
*/
|
||||
public function nearest(...$datetime)
|
||||
{
|
||||
public function nearest(
|
||||
string|int|DateTimeInterface ...$datetime
|
||||
): string|int|DateTimeInterface {
|
||||
$timestamp = $this->timestamp();
|
||||
$minDiff = PHP_INT_MAX;
|
||||
$nearest = null;
|
||||
|
@ -291,9 +274,8 @@ class Date extends DateTime
|
|||
* Returns an instance of the current datetime
|
||||
*
|
||||
* @param \DateTimeZone|null $timezone
|
||||
* @return static
|
||||
*/
|
||||
public static function now(?DateTimeZone $timezone = null)
|
||||
public static function now(DateTimeZone|null $timezone = null): static
|
||||
{
|
||||
return new static('now', $timezone);
|
||||
}
|
||||
|
@ -301,13 +283,11 @@ class Date extends DateTime
|
|||
/**
|
||||
* Tries to create an instance from the given string
|
||||
* or fails silently by returning `null` on error
|
||||
*
|
||||
* @param string|null $datetime
|
||||
* @param \DateTimeZone|null $timezone
|
||||
* @return static|null
|
||||
*/
|
||||
public static function optional(string|null $datetime = null, ?DateTimeZone $timezone = null)
|
||||
{
|
||||
public static function optional(
|
||||
string|null $datetime = null,
|
||||
DateTimeZone|null $timezone = null
|
||||
): static|null {
|
||||
if (empty($datetime) === true) {
|
||||
return null;
|
||||
}
|
||||
|
@ -328,7 +308,7 @@ class Date extends DateTime
|
|||
*
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the unit name or size is invalid
|
||||
*/
|
||||
public function round(string $unit, int $size = 1)
|
||||
public function round(string $unit, int $size = 1): static
|
||||
{
|
||||
static::validateUnit($unit);
|
||||
|
||||
|
@ -365,12 +345,12 @@ class Date extends DateTime
|
|||
* by the defined step
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @param string|null $date
|
||||
* @param int|array|null $step array of `unit` and `size` to round to nearest
|
||||
* @return int|null
|
||||
*/
|
||||
public static function roundedTimestamp(string|null $date = null, $step = null): int|null
|
||||
{
|
||||
public static function roundedTimestamp(
|
||||
string|null $date = null,
|
||||
int|array|null $step = null
|
||||
): int|null {
|
||||
if ($date = static::optional($date)) {
|
||||
if ($step !== null) {
|
||||
$step = static::stepConfig($step, [
|
||||
|
@ -388,9 +368,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Gets or sets the second value
|
||||
*
|
||||
* @param int|null $second
|
||||
* @return int
|
||||
*/
|
||||
public function second(int|null $second = null): int
|
||||
{
|
||||
|
@ -408,8 +385,10 @@ class Date extends DateTime
|
|||
* @param string|int|\DateTimeInterface $datetime Datetime string, UNIX timestamp or object
|
||||
* @param \DateTimeZone|null $timezone Optional default timezone if `$datetime` is string
|
||||
*/
|
||||
public function set($datetime, ?DateTimeZone $timezone = null)
|
||||
{
|
||||
public function set(
|
||||
string|int|DateTimeInterface $datetime,
|
||||
DateTimeZone|null $timezone = null
|
||||
): void {
|
||||
$datetime = new static($datetime, $timezone);
|
||||
$this->setTimestamp($datetime->timestamp());
|
||||
}
|
||||
|
@ -422,13 +401,11 @@ class Date extends DateTime
|
|||
* @param array|null $default Default values to use if one or both values are not provided
|
||||
* @return array
|
||||
*/
|
||||
public static function stepConfig($input = null, array|null $default = null): array
|
||||
{
|
||||
$default ??= [
|
||||
'size' => 1,
|
||||
'unit' => 'day'
|
||||
];
|
||||
|
||||
public static function stepConfig(
|
||||
// no type hint to use InvalidArgumentException at the end
|
||||
$input = null,
|
||||
array|null $default = ['size' => 1, 'unit' => 'day']
|
||||
): array {
|
||||
if ($input === null) {
|
||||
return $default;
|
||||
}
|
||||
|
@ -452,8 +429,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Returns the time in `hh:mm:ss` format
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function time(): string
|
||||
{
|
||||
|
@ -462,8 +437,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Returns the UNIX timestamp
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function timestamp(): int
|
||||
{
|
||||
|
@ -472,21 +445,16 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Returns the timezone object
|
||||
*
|
||||
* @return \DateTimeZone
|
||||
*/
|
||||
public function timezone()
|
||||
public function timezone(): DateTimeZone|false
|
||||
{
|
||||
return $this->getTimezone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an instance of the beginning of the current day
|
||||
*
|
||||
* @param \DateTimeZone|null $timezone
|
||||
* @return static
|
||||
*/
|
||||
public static function today(?DateTimeZone $timezone = null)
|
||||
public static function today(DateTimeZone|null $timezone = null): static
|
||||
{
|
||||
return new static('today', $timezone);
|
||||
}
|
||||
|
@ -497,12 +465,13 @@ class Date extends DateTime
|
|||
*
|
||||
* @param string $mode `date`, `time` or `datetime`
|
||||
* @param bool $timezone Whether the timezone is printed as well
|
||||
* @return string
|
||||
*
|
||||
* @throws \Kirby\Exception\InvalidArgumentException If the mode is invalid
|
||||
*/
|
||||
public function toString(string $mode = 'datetime', bool $timezone = true): string
|
||||
{
|
||||
public function toString(
|
||||
string $mode = 'datetime',
|
||||
bool $timezone = true
|
||||
): string {
|
||||
$format = match ($mode) {
|
||||
'date' => 'Y-m-d',
|
||||
'time' => 'H:i:s',
|
||||
|
@ -519,9 +488,6 @@ class Date extends DateTime
|
|||
|
||||
/**
|
||||
* Gets or sets the year value
|
||||
*
|
||||
* @param int|null $year
|
||||
* @return int
|
||||
*/
|
||||
public function year(int|null $year = null): int
|
||||
{
|
||||
|
@ -536,9 +502,6 @@ class Date extends DateTime
|
|||
/**
|
||||
* Ensures that the provided string is a valid unit name
|
||||
*
|
||||
* @param string $unit
|
||||
* @return void
|
||||
*
|
||||
* @throws \Kirby\Exception\InvalidArgumentException
|
||||
*/
|
||||
protected static function validateUnit(string $unit): void
|
||||
|
|
|
@ -17,17 +17,11 @@ abstract class Facade
|
|||
/**
|
||||
* Returns the instance that should be
|
||||
* available statically
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public static function instance();
|
||||
|
||||
/**
|
||||
* Proxy for all public instance calls
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return mixed
|
||||
*/
|
||||
public static function __callStatic(string $method, array $args = null)
|
||||
{
|
||||
|
|
|
@ -90,10 +90,11 @@ class Html extends Xml
|
|||
*
|
||||
* @param string $tag Tag name
|
||||
* @param array $arguments Further arguments for the Html::tag() method
|
||||
* @return string
|
||||
*/
|
||||
public static function __callStatic(string $tag, array $arguments = []): string
|
||||
{
|
||||
public static function __callStatic(
|
||||
string $tag,
|
||||
array $arguments = []
|
||||
): string {
|
||||
if (static::isVoid($tag) === true) {
|
||||
return static::tag($tag, null, ...$arguments);
|
||||
}
|
||||
|
@ -133,8 +134,12 @@ class Html extends Xml
|
|||
* @param string|null $after An optional string that will be appended if the result is not empty
|
||||
* @return string|null The generated HTML attributes string
|
||||
*/
|
||||
public static function attr($name, $value = null, string|null $before = null, string|null $after = null): string|null
|
||||
{
|
||||
public static function attr(
|
||||
string|array $name,
|
||||
$value = null,
|
||||
string|null $before = null,
|
||||
string|null $after = null
|
||||
): string|null {
|
||||
// HTML supports boolean attributes without values
|
||||
if (is_array($name) === false && is_bool($value) === true) {
|
||||
return $value === true ? strtolower($name) : null;
|
||||
|
@ -167,9 +172,6 @@ class Html extends Xml
|
|||
|
||||
/**
|
||||
* Converts lines in a string into HTML breaks
|
||||
*
|
||||
* @param string $string
|
||||
* @return string
|
||||
*/
|
||||
public static function breaks(string $string): string
|
||||
{
|
||||
|
@ -184,8 +186,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the tag
|
||||
* @return string The generated HTML
|
||||
*/
|
||||
public static function email(string $email, $text = null, array $attr = []): string
|
||||
{
|
||||
public static function email(
|
||||
string $email,
|
||||
string|array|null $text = null,
|
||||
array $attr = []
|
||||
): string {
|
||||
if (empty($email) === true) {
|
||||
return '';
|
||||
}
|
||||
|
@ -214,14 +219,15 @@ class Html extends Xml
|
|||
/**
|
||||
* Converts a string to an HTML-safe string
|
||||
*
|
||||
* @param string|null $string
|
||||
* @param bool $keepTags If true, existing tags won't be escaped
|
||||
* @return string The HTML string
|
||||
*
|
||||
* @psalm-suppress ParamNameMismatch
|
||||
*/
|
||||
public static function encode(string|null $string, bool $keepTags = false): string
|
||||
{
|
||||
public static function encode(
|
||||
string|null $string,
|
||||
bool $keepTags = false
|
||||
): string {
|
||||
if ($string === null) {
|
||||
return '';
|
||||
}
|
||||
|
@ -241,8 +247,6 @@ class Html extends Xml
|
|||
|
||||
/**
|
||||
* Returns the entity translation table
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function entities(): array
|
||||
{
|
||||
|
@ -257,8 +261,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the `<figure>` tag
|
||||
* @return string The generated HTML
|
||||
*/
|
||||
public static function figure($content, $caption = '', array $attr = []): string
|
||||
{
|
||||
public static function figure(
|
||||
string|array $content,
|
||||
string|array|null $caption = '',
|
||||
array $attr = []
|
||||
): string {
|
||||
if ($caption) {
|
||||
$figcaption = static::tag('figcaption', $caption);
|
||||
|
||||
|
@ -280,8 +287,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the `<script>` tag
|
||||
* @return string The generated HTML
|
||||
*/
|
||||
public static function gist(string $url, string|null $file = null, array $attr = []): string
|
||||
{
|
||||
public static function gist(
|
||||
string $url,
|
||||
string|null $file = null,
|
||||
array $attr = []
|
||||
): string {
|
||||
$src = $url . '.js';
|
||||
|
||||
if ($file !== null) {
|
||||
|
@ -294,7 +304,6 @@ class Html extends Xml
|
|||
/**
|
||||
* Creates an `<iframe>`
|
||||
*
|
||||
* @param string $src
|
||||
* @param array $attr Additional attributes for the `<iframe>` tag
|
||||
* @return string The generated HTML
|
||||
*/
|
||||
|
@ -322,9 +331,6 @@ class Html extends Xml
|
|||
|
||||
/**
|
||||
* Checks if a tag is self-closing
|
||||
*
|
||||
* @param string $tag
|
||||
* @return bool
|
||||
*/
|
||||
public static function isVoid(string $tag): bool
|
||||
{
|
||||
|
@ -339,8 +345,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the tag
|
||||
* @return string The generated HTML
|
||||
*/
|
||||
public static function link(string $href, $text = null, array $attr = []): string
|
||||
{
|
||||
public static function link(
|
||||
string $href,
|
||||
string|array|null $text = null,
|
||||
array $attr = []
|
||||
): string {
|
||||
$attr = array_merge(['href' => $href], $attr);
|
||||
|
||||
if (empty($text) === true) {
|
||||
|
@ -364,8 +373,10 @@ class Html extends Xml
|
|||
* @param string|null $target Current `target` value
|
||||
* @return string|null New `rel` value or `null` if not needed
|
||||
*/
|
||||
public static function rel(string|null $rel = null, string|null $target = null): string|null
|
||||
{
|
||||
public static function rel(
|
||||
string|null $rel = null,
|
||||
string|null $target = null
|
||||
): string|null {
|
||||
$rel = trim($rel ?? '');
|
||||
|
||||
if ($target === '_blank') {
|
||||
|
@ -390,8 +401,13 @@ class Html extends Xml
|
|||
* @param int $level Indentation level
|
||||
* @return string The generated HTML
|
||||
*/
|
||||
public static function tag(string $name, $content = '', array $attr = [], string $indent = null, int $level = 0): string
|
||||
{
|
||||
public static function tag(
|
||||
string $name,
|
||||
array|string|null $content = '',
|
||||
array $attr = [],
|
||||
string $indent = null,
|
||||
int $level = 0
|
||||
): string {
|
||||
// treat an explicit `null` value as an empty tag
|
||||
// as void tags are already covered below
|
||||
$content ??= '';
|
||||
|
@ -412,8 +428,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the tag
|
||||
* @return string The generated HTML
|
||||
*/
|
||||
public static function tel(string $tel, $text = null, array $attr = []): string
|
||||
{
|
||||
public static function tel(
|
||||
string $tel,
|
||||
string|array|null $text = null,
|
||||
array $attr = []
|
||||
): string {
|
||||
$number = preg_replace('![^0-9\+]+!', '', $tel);
|
||||
|
||||
if (empty($text) === true) {
|
||||
|
@ -425,9 +444,6 @@ class Html extends Xml
|
|||
|
||||
/**
|
||||
* Properly encodes tag contents
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return string|null
|
||||
*/
|
||||
public static function value($value): string|null
|
||||
{
|
||||
|
@ -461,8 +477,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the `<iframe>` tag
|
||||
* @return string|null The generated HTML
|
||||
*/
|
||||
public static function video(string $url, array $options = [], array $attr = []): string|null
|
||||
{
|
||||
public static function video(
|
||||
string $url,
|
||||
array $options = [],
|
||||
array $attr = []
|
||||
): string|null {
|
||||
// YouTube video
|
||||
if (Str::contains($url, 'youtu', true) === true) {
|
||||
return static::youtube($url, $options['youtube'] ?? [], $attr);
|
||||
|
@ -494,9 +513,6 @@ class Html extends Xml
|
|||
/**
|
||||
* Generates a list of attributes
|
||||
* for video iframes
|
||||
*
|
||||
* @param array $attr
|
||||
* @return array
|
||||
*/
|
||||
public static function videoAttr(array $attr = []): array
|
||||
{
|
||||
|
@ -521,8 +537,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the `<iframe>` tag
|
||||
* @return string|null The generated HTML
|
||||
*/
|
||||
public static function vimeo(string $url, array $options = [], array $attr = []): string|null
|
||||
{
|
||||
public static function vimeo(
|
||||
string $url,
|
||||
array $options = [],
|
||||
array $attr = []
|
||||
): string|null {
|
||||
$uri = new Uri($url);
|
||||
$path = $uri->path();
|
||||
$query = $uri->query();
|
||||
|
@ -556,8 +575,11 @@ class Html extends Xml
|
|||
* @param array $attr Additional attributes for the `<iframe>` tag
|
||||
* @return string|null The generated HTML
|
||||
*/
|
||||
public static function youtube(string $url, array $options = [], array $attr = []): string|null
|
||||
{
|
||||
public static function youtube(
|
||||
string $url,
|
||||
array $options = [],
|
||||
array $attr = []
|
||||
): string|null {
|
||||
if (preg_match('!youtu!i', $url) !== 1) {
|
||||
return null;
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue