Upgrade to 3.5.2

This commit is contained in:
Bastian Allgeier
2021-02-09 16:55:18 +01:00
parent 99c36fa137
commit b507926ad1
53 changed files with 350 additions and 355 deletions

View File

@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
## Certificate data from Mozilla as of: Tue Dec 8 04:12:05 2020 GMT
## Certificate data from Mozilla as of: Tue Jan 19 04:12:04 2021 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.28.
## SHA256: d820b8696d8ffe42064a1384a56a8981cdc7e7e198036bbb5fa04a6c282dd9a2
## SHA256: 3bdc63d1de27058fec943a999a2a8a01fcc6806a611b19221a7727d3d9bbbdfd
##
@@ -132,87 +132,6 @@ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
-----END CERTIFICATE-----
GeoTrust Global CA
==================
-----BEGIN CERTIFICATE-----
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
Mw==
-----END CERTIFICATE-----
GeoTrust Universal CA
=====================
-----BEGIN CERTIFICATE-----
MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
P/rmMuGNG2+k5o7Y+SlIis5z/iw=
-----END CERTIFICATE-----
GeoTrust Universal CA 2
=======================
-----BEGIN CERTIFICATE-----
MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
-----END CERTIFICATE-----
Comodo AAA Services root
========================
-----BEGIN CERTIFICATE-----
@@ -596,78 +515,6 @@ DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
-----END CERTIFICATE-----
GeoTrust Primary Certification Authority
========================================
-----BEGIN CERTIFICATE-----
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
-----END CERTIFICATE-----
thawte Primary Root CA
======================
-----BEGIN CERTIFICATE-----
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
-----END CERTIFICATE-----
VeriSign Class 3 Public Primary Certification Authority - G5
============================================================
-----BEGIN CERTIFICATE-----
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
-----END CERTIFICATE-----
SecureTrust CA
==============
-----BEGIN CERTIFICATE-----
@@ -871,70 +718,6 @@ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
-----END CERTIFICATE-----
GeoTrust Primary Certification Authority - G3
=============================================
-----BEGIN CERTIFICATE-----
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
-----END CERTIFICATE-----
thawte Primary Root CA - G2
===========================
-----BEGIN CERTIFICATE-----
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
-----END CERTIFICATE-----
thawte Primary Root CA - G3
===========================
-----BEGIN CERTIFICATE-----
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
-----END CERTIFICATE-----
GeoTrust Primary Certification Authority - G2
=============================================
-----BEGIN CERTIFICATE-----
@@ -980,27 +763,6 @@ wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
mJO37M2CYfE45k+XmCpajQ==
-----END CERTIFICATE-----
VeriSign Class 3 Public Primary Certification Authority - G4
============================================================
-----BEGIN CERTIFICATE-----
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
-----END CERTIFICATE-----
NetLock Arany (Class Gold) Főtanúsítvány
========================================
-----BEGIN CERTIFICATE-----
@@ -3433,3 +3195,34 @@ HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn
ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl
CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw==
-----END CERTIFICATE-----
NAVER Global Root Certification Authority
=========================================
-----BEGIN CERTIFICATE-----
MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG
A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD
DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4
NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT
UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb
UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW
+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7
XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2
aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4
Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z
VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B
A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai
cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy
YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV
HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK
21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB
jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx
hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg
E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH
D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ
A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY
qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG
I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg
kpzNNIaRkPpkUZ3+/uul9XXeifdy
-----END CERTIFICATE-----

View File

@@ -8,7 +8,7 @@
"core"
],
"homepage": "https://getkirby.com",
"version": "3.5.1",
"version": "3.5.2",
"license": "proprietary",
"authors": [
{
@@ -47,7 +47,7 @@
]
},
"scripts": {
"post-update-cmd": "curl -o cacert.pem https://curl.haxx.se/ca/cacert.pem",
"post-update-cmd": "curl -o cacert.pem https://curl.se/ca/cacert.pem",
"analyze": [
"@analyze:composer",
"@analyze:psalm",

2
kirby/composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "0960cd0d8666490230ea33ff2557c4ac",
"content-hash": "a2cc11786cdce4585a09648e43822c48",
"packages": [
{
"name": "claviska/simpleimage",

View File

@@ -21,7 +21,7 @@ fields:
when:
location: kirby
src:
label: Image URL
label: field.blocks.image.url
type: url
when:
location: web

View File

@@ -30,8 +30,8 @@ return [
/**
* Optional info text setup. Info text is shown on the right (lists) or below (cards) the filename.
*/
'info' => function (string $info = null) {
return $info;
'info' => function ($info = null) {
return I18n::translate($info, $info);
},
/**
* The size option controls the size of cards. By default cards are auto-sized and the cards grid will always fill the full width. With a size you can disable auto-sizing. Available sizes: `tiny`, `small`, `medium`, `large`, `huge`
@@ -60,8 +60,8 @@ return [
/**
* Setup for the main text in the list or cards. By default this will display the filename.
*/
'text' => function (string $text = '{{ file.filename }}') {
return $text;
'text' => function ($text = '{{ file.filename }}') {
return I18n::translate($text, $text);
}
],
'computed' => [
@@ -123,7 +123,7 @@ return [
'id' => $file->id(),
'icon' => $file->panelIcon($image),
'image' => $image,
'info' => $file->toString($this->info ?? false),
'info' => $file->toString($this->info),
'link' => $file->panelUrl(true),
'mime' => $file->mime(),
'parent' => $file->parent()->panelPath(),

View File

@@ -38,8 +38,8 @@ return [
/**
* Optional info text setup. Info text is shown on the right (lists) or below (cards) the page title.
*/
'info' => function (string $info = null) {
return $info;
'info' => function ($info = null) {
return I18n::translate($info, $info);
},
/**
* The size option controls the size of cards. By default cards are auto-sized and the cards grid will always fill the full width. With a size you can disable auto-sizing. Available sizes: `tiny`, `small`, `medium`, `large`, `huge`
@@ -82,8 +82,8 @@ return [
/**
* Setup for the main text in the list or cards. By default this will display the page title.
*/
'text' => function (string $text = '{{ page.title }}') {
return $text;
'text' => function ($text = '{{ page.title }}') {
return I18n::translate($text, $text);
}
],
'computed' => [
@@ -157,7 +157,7 @@ return [
'id' => $item->id(),
'dragText' => $item->dragText(),
'text' => $item->toString($this->text),
'info' => $item->toString($this->info ?? false),
'info' => $item->toString($this->info),
'parent' => $item->parentId(),
'icon' => $item->panelIcon($image),
'image' => $image,

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Изображение",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Imatge",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -67,7 +67,7 @@
"error.file.changeName.permission": "Nemáte povoleno změnit jméno souboru \"{filename}\"",
"error.file.duplicate": "Soubor s názvem \"{filename}\" již existuje",
"error.file.extension.forbidden": "Přípona souboru \"{extension}\" není povolena",
"error.file.extension.invalid": "Invalid extension: {extension}",
"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.maxheight": "Výška obrázku nesmí přesáhnout {height} pixelů",
"error.file.maxsize": "Soubor je příliš velký",
@@ -83,7 +83,7 @@
"error.file.notFound": "Soubor se nepoda\u0159ilo nal\u00e9zt",
"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": "Invalid file type: {type}",
"error.file.type.invalid": "Neplatný typ souboru: {type}",
"error.file.undefined": "Soubor se nepoda\u0159ilo nal\u00e9zt",
"error.form.incomplete": "Prosím opravte všechny chyby ve formuláři",
@@ -93,8 +93,8 @@
"error.language.duplicate": "Jazyk již existuje",
"error.language.name": "Zadejte prosím platné jméno jazyka",
"error.layout.validation.block": "There's an error in block {blockIndex} in layout {layoutIndex}",
"error.layout.validation.settings": "There's an error in layout {index} settings",
"error.layout.validation.block": "Chyba v bloku {blockIndex} v rozvržení {layoutIndex}",
"error.layout.validation.settings": "Chyba v nastavení rozvržení {index}",
"error.license.format": "Zadejte prosím platné licenční číslo",
"error.license.email": "Zadejte prosím platnou emailovou adresu",
@@ -232,6 +232,7 @@
"field.blocks.image.name": "Obrázek",
"field.blocks.image.placeholder": "Vyberte obrázek",
"field.blocks.image.ratio": "Poměr stran",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Seznam",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",
@@ -464,7 +465,7 @@
"toolbar.button.file.select": "Vyberte soubor",
"toolbar.button.file.upload": "Nahrajte soubor",
"toolbar.button.link": "Odkaz",
"toolbar.button.ol": "Řazený seznam",
"toolbar.button.ol": "Číslovaný seznam",
"toolbar.button.ul": "Odrážkový seznam",
"translation.author": "Kirby tým",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Billede",
"field.blocks.image.placeholder": "Vælg et billede",
"field.blocks.image.ratio": "Størrelsesforhold",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Liste",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Tekst",

View File

@@ -93,7 +93,7 @@
"error.language.duplicate": "Die Sprache besteht bereits",
"error.language.name": "Bitte gib einen gültigen Namen für die Sprache an",
"error.layout.validation.block": "Fehler in Block {blockindex} in Layout {layoutIndex}",
"error.layout.validation.block": "Fehler in Block {blockIndex} in Layout {layoutIndex}",
"error.layout.validation.settings": "Fehler in den Einstellungen von Layout {index}",
"error.license.format": "Bitte gib einen gültigen Lizenzschlüssel ein",
@@ -232,6 +232,7 @@
"field.blocks.image.name": "Bild",
"field.blocks.image.placeholder": "Bild auswählen",
"field.blocks.image.ratio": "Seitenverhältnis",
"field.blocks.image.url": "Bild URL",
"field.blocks.list.name": "Liste",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Εικόνα",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Image",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Imágen",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Imágen",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "تصویر",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Kuva",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Image",
"field.blocks.image.placeholder": "Sélectionnez une image",
"field.blocks.image.ratio": "Proportions",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Liste",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Texte",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Kép",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -67,7 +67,7 @@
"error.file.changeName.permission": "Anda tidak diizinkan mengubah nama berkas \"{filename}\"",
"error.file.duplicate": "Berkas dengan nama \"{filename}\" sudah ada",
"error.file.extension.forbidden": "Ekstensi \"{extension}\" tidak diizinkan",
"error.file.extension.invalid": "Invalid extension: {extension}",
"error.file.extension.invalid": "Ekstensi tidak valid: {extension}",
"error.file.extension.missing": "Berkas \"{filename}\" harus memiliki ekstensi",
"error.file.maxheight": "Tinggi gambar tidak boleh melebihi {height} piksel",
"error.file.maxsize": "Berkas terlalu besar",
@@ -83,7 +83,7 @@
"error.file.notFound": "Berkas \"{filename}\" tidak dapat ditemukan",
"error.file.orientation": "Orientasi gambar harus \"{orientation}\"",
"error.file.type.forbidden": "Anda tidak diizinkan mengunggah berkas dengan tipe {type}",
"error.file.type.invalid": "Invalid file type: {type}",
"error.file.type.invalid": "Tipe berkas tidak valid: {type}",
"error.file.undefined": "Berkas tidak dapat ditemukan",
"error.form.incomplete": "Pastikan semua bidang telah diisi dengan benar…",
@@ -93,8 +93,8 @@
"error.language.duplicate": "Bahasa sudah ada",
"error.language.name": "Masukkan nama bahasa yang valid",
"error.layout.validation.block": "There's an error in block {blockIndex} in layout {layoutIndex}",
"error.layout.validation.settings": "There's an error in layout {index} settings",
"error.layout.validation.block": "Ada kesalahan di blok {blockIndex} di tata letak {layoutIndex}",
"error.layout.validation.settings": "Ada kesalahan di pengaturan tata letak {index}",
"error.license.format": "Masukkan kode lisensi yang valid",
"error.license.email": "Masukkan surel yang valid",
@@ -232,6 +232,7 @@
"field.blocks.image.name": "Gambar",
"field.blocks.image.placeholder": "Pilih gambar",
"field.blocks.image.ratio": "Rasio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Daftar",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Teks",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Immagine",
"field.blocks.image.placeholder": "Seleziona un'immagine",
"field.blocks.image.ratio": "Rapporto",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Lista",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Testo",

View File

@@ -63,7 +63,7 @@
"error.field.converter.invalid": "컨버터({converter})가 올바르지 않습니다.",
"error.file.changeName.empty": "파일명을 입력하세요.",
"error.file.changeName.empty": "이름을 입력하세요.",
"error.file.changeName.permission": "파일명({filename})을 변경할 권한이 없습니다.",
"error.file.duplicate": "파일명이 같은 파일({filename})이 있습니다.",
"error.file.extension.forbidden": "이 확장자({extension})는 업로드할 수 없습니다.",
@@ -232,6 +232,7 @@
"field.blocks.image.name": "이미지",
"field.blocks.image.placeholder": "이미지 선택",
"field.blocks.image.ratio": "비율",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "목록",
"field.blocks.markdown.name": "마크다운",
"field.blocks.markdown.label": "마크다운",
@@ -300,7 +301,7 @@
"language.direction.rtl": "오른쪽에서 왼쪽",
"language.locale": "PHP 로캘 문자열",
"language.locale.warning": "사용자 지정 로캘을 사용 중입니다. 폴더(<code>/site/languages</code>)의 언어 파일을 수정하세요.",
"language.name": "언어명",
"language.name": "이름",
"language.updated": "언어를 변경했습니다.",
"languages": "언어",
@@ -368,7 +369,7 @@
"months.september": "9\uc6d4",
"more": "더 보기",
"name": "파일명",
"name": "이름",
"next": "다음",
"off": "끔",
"on": "켬",
@@ -417,7 +418,7 @@
"prev": "이전",
"preview": "미리 보기",
"remove": "삭제",
"rename": "파일명 변경",
"rename": "이름 변경",
"replace": "\uad50\uccb4",
"retry": "\ub2e4\uc2dc \uc2dc\ub3c4",
"revert": "복원",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Nuotrauka",
"field.blocks.image.placeholder": "Pasirinkite nuotrauką",
"field.blocks.image.ratio": "Proporcijos",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Sąrašas",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Tekstas",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Bilde",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -41,7 +41,7 @@
"email": "E-mailadres",
"email.placeholder": "mail@voorbeeld.nl",
"error.access.code": "Invalid code",
"error.access.code": "Ongeldige code",
"error.access.login": "Ongeldige login",
"error.access.panel": "Je hebt geen toegang tot het Panel",
"error.access.view": "Je hebt geen toegangsrechten voor deze zone van het Panel",
@@ -67,7 +67,7 @@
"error.file.changeName.permission": "Je hebt geen rechten om de naam te wijzigen van \"{filename}\"",
"error.file.duplicate": "Er bestaat al een bestand met de naam \"{filename}\"",
"error.file.extension.forbidden": "Bestandsextensie \"{extension}\" is niet toegestaan",
"error.file.extension.invalid": "Invalid extension: {extension}",
"error.file.extension.invalid": "Ongeldige extensie: {extension}",
"error.file.extension.missing": "Je kunt geen bestanden uploaden zonder bestandsextensie",
"error.file.maxheight": "De hoogte van de afbeelding mag niet groter zijn dan {height} pixels",
"error.file.maxsize": "Het bestand is te groot",
@@ -83,7 +83,7 @@
"error.file.notFound": "Het bestand kan niet worden gevonden",
"error.file.orientation": "De oriëntatie van de afbeelding moet \"{orientation}\" zijn",
"error.file.type.forbidden": "Je hebt geen rechten om {type} bestanden up te loaden",
"error.file.type.invalid": "Invalid file type: {type}",
"error.file.type.invalid": "Ongeldig bestands type: {type}",
"error.file.undefined": "Het bestand kan niet worden gevonden",
"error.form.incomplete": "Verbeter alle fouten in het formulier",
@@ -93,8 +93,8 @@
"error.language.duplicate": "De taal bestaat al",
"error.language.name": "Vul een geldige naam voor deze taal in",
"error.layout.validation.block": "There's an error in block {blockIndex} in layout {layoutIndex}",
"error.layout.validation.settings": "There's an error in layout {index} settings",
"error.layout.validation.block": "Er is een fout gevonden in blok {blockIndex} in ontwerp {layoutIndex}",
"error.layout.validation.settings": "Er is een fout gevonden in de instellingen van ontwerp {index} ",
"error.license.format": "Vul een gelidge licentie-key in",
"error.license.email": "Gelieve een geldig emailadres in te voeren",
@@ -228,10 +228,11 @@
"field.blocks.image.caption": "Beschrijving",
"field.blocks.image.crop": "Uitsnede",
"field.blocks.image.link": "Link",
"field.blocks.image.location": "Location",
"field.blocks.image.location": "Locatie",
"field.blocks.image.name": "Afbeelding",
"field.blocks.image.placeholder": "Selecteer een afbeelding",
"field.blocks.image.ratio": "Verhouding",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Lijst",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Tekst",
@@ -332,19 +333,19 @@
"login": "Inloggen",
"login.code.label.login": "Log in code",
"login.code.label.password-reset": "Password reset code",
"login.code.label.password-reset": "Wachtwoord herstel code",
"login.code.placeholder.email": "000 000",
"login.code.text.email": "If your email address is registered, the requested code was sent via email.",
"login.email.login.body": "Hi {user.nameOrEmail},\n\nYou recently requested a login code for the Kirby Panel.\nThe following login code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a login code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
"login.email.login.subject": "Your login code",
"login.email.login.subject": "Jouw log in code",
"login.email.password-reset.body": "Hi {user.nameOrEmail},\n\nYou recently requested a password reset code for the Kirby Panel.\nThe following password reset code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a password reset code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
"login.email.password-reset.subject": "Your password reset code",
"login.email.password-reset.subject": "Jouw wachtwoord herstel code",
"login.remember": "Houd mij ingelogd",
"login.reset": "Wachtwoord herstellen",
"login.toggleText.code.email": "Log in via email",
"login.toggleText.code.email-password": "Login with password",
"login.toggleText.password-reset.email": "Forgot your password?",
"login.toggleText.password-reset.email-password": "← Back to login",
"login.toggleText.code.email-password": "Log in met je wachtwoord",
"login.toggleText.password-reset.email": "Wachtwoord vergeten?",
"login.toggleText.password-reset.email-password": "← Terug naar log in",
"logout": "Uitloggen",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Obrazek",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Imagem",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Imagem",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Картинка",
"field.blocks.image.placeholder": "Выберите изображение",
"field.blocks.image.ratio": "Соотношение",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Список",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Текст",

View File

@@ -6,8 +6,8 @@
"change": "Zmeniť",
"close": "Zavrieť",
"confirm": "Ok",
"collapse": "Collapse",
"collapse.all": "Collapse All",
"collapse": "Zabaliť",
"collapse.all": "Zabaliť všetky",
"copy": "Kopírovať",
"create": "Vytvoriť",
@@ -24,15 +24,15 @@
"days.wed": "Str",
"delete": "Zmazať",
"delete.all": "Delete all",
"delete.all": "Zmazať všetky",
"dimensions": "Rozmery",
"disabled": "Disabled",
"discard": "Zahodiť",
"download": "Download",
"duplicate": "Duplicate",
"download": "Stiahnuť",
"duplicate": "Duplikovať",
"edit": "Upraviť",
"expand": "Expand",
"expand.all": "Expand All",
"expand": "Rozbaliť",
"expand.all": "Rozbaliť všetky",
"dialog.files.empty": "No files to select",
"dialog.pages.empty": "No pages to select",
@@ -41,7 +41,7 @@
"email": "E-mail",
"email.placeholder": "mail@example.com",
"error.access.code": "Invalid code",
"error.access.code": "Neplatný kód",
"error.access.login": "Neplatné prihlásenie",
"error.access.panel": "Nemáte povolenie na prístup do Panel-u",
"error.access.view": "You are not allowed to access this part of the panel",
@@ -63,27 +63,27 @@
"error.field.converter.invalid": "Neplatný converter \"{converter}\"",
"error.file.changeName.empty": "The name must not be empty",
"error.file.changeName.empty": "Meno nesmie byť prázdne",
"error.file.changeName.permission": "Nemáte povolenie na zmenu názvu pre \"{filename}\"",
"error.file.duplicate": "Súbor s názvom \"{filename}\" už existuje",
"error.file.extension.forbidden": "Prípona \"{extension}\" nie je povolená",
"error.file.extension.invalid": "Invalid extension: {extension}",
"error.file.extension.invalid": "Neplatná prípona: \"{extension}\"",
"error.file.extension.missing": "Prípona pre \"{filename}\" chýba",
"error.file.maxheight": "The height of the image must not exceed {height} pixels",
"error.file.maxsize": "The file is too large",
"error.file.maxwidth": "The width of the image must not exceed {width} pixels",
"error.file.mime.differs": "MIME typ nahratého súboru msa musí zhodovať s \"{mime}\"",
"error.file.maxheight": "Výška obrázku nesmie prekročiť \"{height}\" pixelov",
"error.file.maxsize": "Súbor je príliš velký",
"error.file.maxwidth": "Šírka obrázku nesmie prekročiť \"{width}\" pixelov",
"error.file.mime.differs": "Mime typ nahratého súboru msa musí zhodovať s \"{mime}\"",
"error.file.mime.forbidden": "Typ média \"{mime}\" nie je povolený",
"error.file.mime.invalid": "Invalid mime type: {mime}",
"error.file.mime.invalid": "Neplatný mime typ: \"{mime}\"",
"error.file.mime.missing": "Typ média pre \"{filename}\" sa nepodarilo zistiť",
"error.file.minheight": "The height of the image must be at least {height} pixels",
"error.file.minsize": "The file is too small",
"error.file.minwidth": "The width of the image must be at least {width} pixels",
"error.file.minheight": "Výška obrázku musí byť aspoň \"{height}\" pixelov",
"error.file.minsize": "Súbor je príliš malý",
"error.file.minwidth": "Šírka obrázku musí byť aspoň \"{width}\" pixelov",
"error.file.name.missing": "Názov súboru nemôže byť prázdny",
"error.file.notFound": "Súbor \"{filename}\" sa nepodarilo nájsť",
"error.file.orientation": "The orientation of the image must be \"{orientation}\"",
"error.file.type.forbidden": "Nemáte povolenie na nahrávanie súborov s typom {type}",
"error.file.type.invalid": "Invalid file type: {type}",
"error.file.type.invalid": "Neplatný typ súboru: \"{type}\"",
"error.file.undefined": "Súbor nie je možné nájsť",
"error.form.incomplete": "Prosím, opravte všetky chyby v rámci formuláru...",
@@ -211,27 +211,28 @@
"field.blocks.changeType": "Change type",
"field.blocks.code.name": "Kód",
"field.blocks.code.language": "Jazyk",
"field.blocks.code.placeholder": "Your code …",
"field.blocks.delete.confirm": "Do you really want to delete this block?",
"field.blocks.delete.confirm.all": "Do you really want to delete all blocks?",
"field.blocks.delete.confirm.selected": "Do you really want to delete the selected blocks?",
"field.blocks.code.placeholder": "Váš kód ...",
"field.blocks.delete.confirm": "Naozaj chcete zmazať tento blok?",
"field.blocks.delete.confirm.all": "Naozaj chcete zmazať všetky bloky?",
"field.blocks.delete.confirm.selected": "Naozaj chcete zmazať vybrané bloky?",
"field.blocks.empty": "No blocks yet",
"field.blocks.fieldsets.label": "Please select a block type …",
"field.blocks.gallery.name": "Gallery",
"field.blocks.gallery.name": "Galéria",
"field.blocks.gallery.images.empty": "No images yet",
"field.blocks.gallery.images.label": "Images",
"field.blocks.gallery.images.label": "Obrázky",
"field.blocks.heading.level": "Level",
"field.blocks.heading.name": "Heading",
"field.blocks.heading.name": "Nadpis",
"field.blocks.heading.text": "Text",
"field.blocks.heading.placeholder": "Heading …",
"field.blocks.heading.placeholder": "Nadpis ...",
"field.blocks.image.alt": "Alternative text",
"field.blocks.image.caption": "Caption",
"field.blocks.image.crop": "Crop",
"field.blocks.image.caption": "Popis",
"field.blocks.image.crop": "Orezanie",
"field.blocks.image.link": "Odkaz",
"field.blocks.image.location": "Location",
"field.blocks.image.location": "Poloha",
"field.blocks.image.name": "Obrázok",
"field.blocks.image.placeholder": "Select an image",
"field.blocks.image.ratio": "Ratio",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "List",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",
@@ -243,7 +244,7 @@
"field.blocks.quote.citation.placeholder": "by …",
"field.blocks.text.name": "Text",
"field.blocks.text.placeholder": "Text …",
"field.blocks.video.caption": "Caption",
"field.blocks.video.caption": "Popis",
"field.blocks.video.name": "Video",
"field.blocks.video.placeholder": "Enter a video URL",
"field.blocks.video.url.label": "Video-URL",

View File

@@ -67,7 +67,7 @@
"error.file.changeName.permission": "Du har inte behörighet att ändra namnet på \"{filename}\"",
"error.file.duplicate": "En fil med namnet \"{filename}\" existerar redan",
"error.file.extension.forbidden": "Filändelsen \"{extension}\" är inte tillåten",
"error.file.extension.invalid": "Invalid extension: {extension}",
"error.file.extension.invalid": "Ogiltig filändelse: {extension}",
"error.file.extension.missing": "Filen \"{filename}\" saknar filändelse",
"error.file.maxheight": "Bildens höjd får inte överstiga {height} pixlar",
"error.file.maxsize": "Filen är för stor",
@@ -83,7 +83,7 @@
"error.file.notFound": "Filen \"{filename}\" kan ej hittas",
"error.file.orientation": "Bildens orientering måste vara \"{orientation}\"",
"error.file.type.forbidden": "Du har inte behörighet att ladda upp filer av typen {type}",
"error.file.type.invalid": "Invalid file type: {type}",
"error.file.type.invalid": "Ogiltig filtyp: {type}",
"error.file.undefined": "Filen kan inte hittas",
"error.form.incomplete": "Vänligen åtgärda alla formulärfel...",
@@ -93,8 +93,8 @@
"error.language.duplicate": "Språket finns redan",
"error.language.name": "Ange ett giltigt namn för språket",
"error.layout.validation.block": "There's an error in block {blockIndex} in layout {layoutIndex}",
"error.layout.validation.settings": "There's an error in layout {index} settings",
"error.layout.validation.block": "Det finns ett fel i block {blockIndex} i layout {layoutIndex}",
"error.layout.validation.settings": "Det finns ett fel i inställningarna för layout {index}",
"error.license.format": "Ange en giltig licensnyckel",
"error.license.email": "Ange en giltig e-postadress",
@@ -232,6 +232,7 @@
"field.blocks.image.name": "Bild",
"field.blocks.image.placeholder": "Välj en bild",
"field.blocks.image.ratio": "Bildförhållande",
"field.blocks.image.url": "Image URL",
"field.blocks.list.name": "Punktlista",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Text",

View File

@@ -232,6 +232,7 @@
"field.blocks.image.name": "Görsel",
"field.blocks.image.placeholder": "Bir görsel seçin",
"field.blocks.image.ratio": "Oran",
"field.blocks.image.url": "Görsel URL",
"field.blocks.list.name": "Liste",
"field.blocks.markdown.name": "Markdown",
"field.blocks.markdown.label": "Metin",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -68,7 +68,7 @@ class FileCache extends Cache
*/
protected function file(string $key): string
{
$file = $this->root . '/' . $key;
$file = $this->root . '/' . basename($key);
if (isset($this->options['extension'])) {
return $file . '.' . $this->options['extension'];

View File

@@ -188,6 +188,11 @@ trait AppTranslations
// get injected translation data from plugins etc.
$inject = $this->extensions['translations'][$locale] ?? [];
// inject current language translations
if ($language = $this->language($locale)) {
$inject = array_merge($inject, $language->translations());
}
// load from disk instead
return Translation::load($locale, $this->root('i18n:translations') . '/' . $locale . '.json', $inject);
}
@@ -203,6 +208,23 @@ trait AppTranslations
return $this->translations;
}
return Translations::load($this->root('i18n:translations'), $this->extensions['translations'] ?? []);
$translations = $this->extensions['translations'] ?? [];
// injects languages translations
if ($languages = $this->languages()) {
foreach ($languages as $language) {
// merges language translations with extension translations
if ($language->translations()) {
$translations[$language->code()] = array_merge(
$translations[$language->code()],
$language->translations()
);
}
}
}
$this->translations = Translations::load($this->root('i18n:translations'), $translations);
return $this->translations;
}
}

View File

@@ -375,7 +375,9 @@ class Blueprint
protected function normalizeColumns(string $tabName, array $columns): array
{
foreach ($columns as $columnKey => $columnProps) {
// unset/remove column if its property is not array
if (is_array($columnProps) === false) {
unset($columns[$columnKey]);
continue;
}

View File

@@ -105,6 +105,12 @@ class Fieldset extends Item
// normalize tabs props
foreach ($tabs as $name => $tab) {
// unset/remove tab if its property is false
if ($tab === false) {
unset($tabs[$name]);
continue;
}
$tab = Blueprint::extend($tab);
$tab['fields'] = $this->createFields($tab['fields'] ?? []);

View File

@@ -75,6 +75,31 @@ class Layout extends Item
return $this->columns;
}
/**
* Checks if the layout is empty
*
* @return bool
*/
public function isEmpty(): bool
{
return $this
->columns()
->filter(function ($column) {
return $column->isNotEmpty();
})
->count() === 0;
}
/**
* Checks if the layout is not empty
*
* @return bool
*/
public function isNotEmpty(): bool
{
return $this->isEmpty() === false;
}
/**
* The result is being sent to the editor
* via the API in the panel

View File

@@ -54,6 +54,29 @@ class LayoutColumn extends Item
return $this->blocks;
}
/**
* Checks if the column is empty
*
* @return bool
*/
public function isEmpty(): bool
{
return $this
->blocks()
->filter('isHidden', false)
->count() === 0;
}
/**
* Checks if the column is not empty
*
* @return bool
*/
public function isNotEmpty(): bool
{
return $this->isEmpty() === false;
}
/**
* Returns the number of columns this column spans
*

View File

@@ -139,7 +139,7 @@ class Page extends ModelWithContent
/**
* The intended page template
*
* @var string
* @var \Kirby\Cms\Template
*/
protected $template;

View File

@@ -533,7 +533,9 @@ trait PageActions
$lang = $this->kirby()->defaultLanguage() ?? null;
$field = $this->content($lang)->get('date');
$date = $field->isEmpty() ? 'now' : $field;
return date($format, strtotime($date));
// TODO: in 3.6.0 throw an error if date() doesn't
// return a number, see https://github.com/getkirby/kirby/pull/3061#discussion_r552783943
return (int)date($format, strtotime($date));
break;
case 'default':

View File

@@ -23,12 +23,19 @@ use Kirby\Exception\InvalidArgumentException;
class Pages extends Collection
{
/**
* Cache for the index
* Cache for the index only listed and unlisted pages
*
* @var \Kirby\Cms\Pages|null
*/
protected $index = null;
/**
* Cache for the index all statuses also including drafts
*
* @var \Kirby\Cms\Pages|null
*/
protected $indexWithDrafts = null;
/**
* All registered pages methods
*
@@ -331,24 +338,31 @@ class Pages extends Collection
*/
public function index(bool $drafts = false)
{
if (is_a($this->index, 'Kirby\Cms\Pages') === true) {
return $this->index;
// get object property by cache mode
$index = $drafts === true ? $this->indexWithDrafts : $this->index;
if (is_a($index, 'Kirby\Cms\Pages') === true) {
return $index;
}
$this->index = new Pages([], $this->parent);
$index = new Pages([], $this->parent);
foreach ($this->data as $pageKey => $page) {
$this->index->data[$pageKey] = $page;
$index = $page->index($drafts);
$index->data[$pageKey] = $page;
$pageIndex = $page->index($drafts);
if ($index) {
foreach ($index as $childKey => $child) {
$this->index->data[$childKey] = $child;
if ($pageIndex) {
foreach ($pageIndex as $childKey => $child) {
$index->data[$childKey] = $child;
}
}
}
return $this->index;
if ($drafts === true) {
return $this->indexWithDrafts = $index;
}
return $this->index = $index;
}
/**

View File

@@ -19,12 +19,12 @@ class Response extends \Kirby\Http\Response
* parses locations with the Url::to method
* first.
*
* @param string|null $location
* @param int|null $code
* @param string $location
* @param int $code
* @return self
*/
public static function redirect(?string $location = null, ?int $code = null)
public static function redirect(string $location = '/', int $code = 302)
{
return parent::redirect(Url::to($location ?? '/'), $code);
return parent::redirect(Url::to($location), $code);
}
}

View File

@@ -95,7 +95,7 @@ class Location
$parts = explode('/', $part);
if (count($parts) === 1) {
return $parts[0];
return (float)$parts[0];
}
return (float)($parts[0]) / (float)($parts[1]);

View File

@@ -597,7 +597,7 @@ class A
*/
public static function isAssociative(array $array): bool
{
return ctype_digit(implode(null, array_keys($array))) === false;
return ctype_digit(implode('', array_keys($array))) === false;
}
/**

View File

@@ -252,7 +252,7 @@ class Collection extends Iterator implements Countable
$split = $args[1] ?? false;
// filter by custom filter function
if (is_callable($field) === true) {
if (is_string($field) === false && is_callable($field) === true) {
$collection = clone $this;
$collection->data = array_filter($this->data, $field);

View File

@@ -525,9 +525,12 @@ class F
* Converts an integer size into a human readable format
*
* @param mixed $size The file size or a file path
* @return string|int
* @param string|null|false $locale Locale for number formatting,
* `null` for the current locale,
* `false` to disable number formatting
* @return string
*/
public static function niceSize($size): string
public static function niceSize($size, $locale = null): string
{
// file mode
if (is_string($size) === true && file_exists($size) === true) {
@@ -539,11 +542,18 @@ class F
// avoid errors for invalid sizes
if ($size <= 0) {
return '0 KB';
return '0 KB';
}
// the math magic
return round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . static::$units[$i];
$size = round($size / pow(1024, ($unit = floor(log($size, 1024)))), 2);
// format the number if requested
if ($locale !== false) {
$size = I18n::formatNumber($size, $locale);
}
return $size . ' ' . static::$units[$unit];
}
/**

View File

@@ -129,7 +129,7 @@ class Iterator implements IteratorAggregate
* Tries to find the index number for the given element
*
* @param mixed $needle the element to search for
* @return string|false the name of the key or false
* @return int|false the index (int) of the element or false
*/
public function indexOf($needle)
{

View File

@@ -196,7 +196,7 @@ class Pagination
return 0;
}
return ceil($this->total() / $this->limit());
return (int)ceil($this->total() / $this->limit());
}
/**

View File

@@ -410,7 +410,7 @@ class Str
*/
public static function isURL(string $string = null): bool
{
return filter_var($string, FILTER_VALIDATE_URL);
return filter_var($string, FILTER_VALIDATE_URL) !== false;
}
/**
@@ -803,6 +803,78 @@ class Str
return static::short($string, $maxlength, false);
}
/**
* Calculates the similarity between two strings with multibyte support
*
* @author Based on the work of Antal Áron
* @copyright Original Copyright (c) 2017, Antal Áron
* @license https://github.com/antalaron/mb-similar-text/blob/master/LICENSE MIT License
* @param string $first
* @param string $second
* @param bool $caseInsensitive If `true`, strings are compared case-insensitively
* @return array matches: Number of matching chars in both strings
* percent: Similarity in percent
*/
public static function similarity(string $first, string $second, bool $caseInsensitive = false): array
{
$matches = 0;
$percent = 0.0;
if ($caseInsensitive === true) {
$first = static::lower($first);
$second = static::lower($second);
}
if (static::length($first) + static::length($second) > 0) {
$pos1 = $pos2 = $max = 0;
$len1 = static::length($first);
$len2 = static::length($second);
for ($p = 0; $p < $len1; ++$p) {
for ($q = 0; $q < $len2; ++$q) {
for (
$l = 0;
($p + $l < $len1) && ($q + $l < $len2) &&
static::substr($first, $p + $l, 1) === static::substr($second, $q + $l, 1);
++$l
) {
// nothing to do
}
if ($l > $max) {
$max = $l;
$pos1 = $p;
$pos2 = $q;
}
}
}
$matches = $max;
if ($matches) {
if ($pos1 && $pos2) {
$similarity = static::similarity(
static::substr($first, 0, $pos1),
static::substr($second, 0, $pos2)
);
$matches += $similarity['matches'];
}
if (($pos1 + $max < $len1) && ($pos2 + $max < $len2)) {
$similarity = static::similarity(
static::substr($first, $pos1 + $max, $len1 - $pos1 - $max),
static::substr($second, $pos2 + $max, $len2 - $pos2 - $max)
);
$matches += $similarity['matches'];
}
}
$percent = ($matches * 200.0) / ($len1 + $len2);
}
return compact('matches', 'percent');
}
/**
* Convert a string to snake case.
*

View File

@@ -14,8 +14,8 @@ class InstalledVersions
private static $installed = array (
'root' =>
array (
'pretty_version' => '3.5.1',
'version' => '3.5.1.0',
'pretty_version' => '3.5.2',
'version' => '3.5.2.0',
'aliases' =>
array (
),
@@ -44,8 +44,8 @@ private static $installed = array (
),
'getkirby/cms' =>
array (
'pretty_version' => '3.5.1',
'version' => '3.5.1.0',
'pretty_version' => '3.5.2',
'version' => '3.5.2.0',
'aliases' =>
array (
),

View File

@@ -1,8 +1,8 @@
<?php return array (
'root' =>
array (
'pretty_version' => '3.5.1',
'version' => '3.5.1.0',
'pretty_version' => '3.5.2',
'version' => '3.5.2.0',
'aliases' =>
array (
),
@@ -31,8 +31,8 @@
),
'getkirby/cms' =>
array (
'pretty_version' => '3.5.1',
'version' => '3.5.1.0',
'pretty_version' => '3.5.2',
'version' => '3.5.2.0',
'aliases' =>
array (
),