From b7b2f4748be71eb01c2f99afefaff002f5061a3e Mon Sep 17 00:00:00 2001 From: Tomasz Jakut Date: Mon, 26 Jun 2023 09:24:05 +0200 Subject: [PATCH] Added version check --- core/ckeditor_version-check.js | 162 ++++++++++++++++++ core/loader.js | 7 +- lang/af.js | 9 + lang/ar.js | 9 + lang/az.js | 9 + lang/bg.js | 9 + lang/bn.js | 9 + lang/bs.js | 9 + lang/ca.js | 9 + lang/cs.js | 9 + lang/cy.js | 9 + lang/da.js | 9 + lang/de-ch.js | 9 + lang/de.js | 9 + lang/el.js | 9 + lang/en-au.js | 9 + lang/en-ca.js | 9 + lang/en-gb.js | 9 + lang/en.js | 9 + lang/eo.js | 9 + lang/es-mx.js | 9 + lang/es.js | 9 + lang/et.js | 9 + lang/eu.js | 9 + lang/fa.js | 9 + lang/fi.js | 9 + lang/fo.js | 9 + lang/fr-ca.js | 9 + lang/fr.js | 9 + lang/gl.js | 9 + lang/gu.js | 9 + lang/he.js | 9 + lang/hi.js | 9 + lang/hr.js | 9 + lang/hu.js | 9 + lang/id.js | 9 + lang/is.js | 9 + lang/it.js | 9 + lang/ja.js | 9 + lang/ka.js | 9 + lang/km.js | 9 + lang/ko.js | 9 + lang/ku.js | 9 + lang/lt.js | 9 + lang/lv.js | 9 + lang/mk.js | 9 + lang/mn.js | 9 + lang/ms.js | 9 + lang/nb.js | 9 + lang/nl.js | 9 + lang/no.js | 9 + lang/oc.js | 9 + lang/pl.js | 9 + lang/pt-br.js | 9 + lang/pt.js | 9 + lang/ro.js | 9 + lang/ru.js | 9 + lang/si.js | 9 + lang/sk.js | 9 + lang/sl.js | 9 + lang/sq.js | 9 + lang/sr-latn.js | 9 + lang/sr.js | 9 + lang/sv.js | 9 + lang/th.js | 9 + lang/tr.js | 9 + lang/tt.js | 9 + lang/ug.js | 9 + lang/uk.js | 9 + lang/vi.js | 9 + lang/zh-cn.js | 9 + lang/zh.js | 9 + plugins/about/dialogs/about.js | 5 + tests/core/manual/versioncheck.html | 86 ++++++++++ tests/core/manual/versioncheck.md | 34 ++++ .../manual/versionchecknonotification.html | 45 +++++ .../core/manual/versionchecknonotification.md | 10 ++ 77 files changed, 976 insertions(+), 3 deletions(-) create mode 100644 core/ckeditor_version-check.js create mode 100644 tests/core/manual/versioncheck.html create mode 100644 tests/core/manual/versioncheck.md create mode 100644 tests/core/manual/versionchecknonotification.html create mode 100644 tests/core/manual/versionchecknonotification.md diff --git a/core/ckeditor_version-check.js b/core/ckeditor_version-check.js new file mode 100644 index 00000000000..fabd1cda7c3 --- /dev/null +++ b/core/ckeditor_version-check.js @@ -0,0 +1,162 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license + */ + +( function() { + var apiUrl = 'https://cke4.ckeditor.com/ckeditor4-secure-version/versions.json', + upgradeLink = 'https://ckeditor.com/ckeditor-4-support', + versionRegex = /^4\.(\d+)\.(\d+)(-lts)?(?: \(?.+?\)?)?$/, + isDrupal = 'Drupal' in window, + versionInfo = { + current: parseVersion( CKEDITOR.version ) + }; + + if ( isDrupal || !versionInfo.current ) { + return; + } + + CKEDITOR.config.versionCheck = versionInfo.current.isLts ? false : true; + + CKEDITOR.on( 'instanceReady', function( evt ) { + var editor = evt.editor; + + if ( !editor.config.versionCheck ) { + return; + } + + editor.on( 'dialogShow', function( evt ) { + var dialog = evt.data; + + if ( dialog._.name !== 'about' ) { + return; + } + + performVersionCheck( function() { + addInfoToAboutDialog( editor, dialog ); + } ); + } ); + + performVersionCheck( function() { + notifyAboutInsecureVersion( editor ); + } ); + } ); + + function performVersionCheck( callback ) { + if ( versionInfo.secure && versionInfo.latest ) { + return callback(); + } + + try { + var request = new XMLHttpRequest(), + requestUrl = apiUrl + '?version=' + encodeURIComponent( versionInfo.current.original ); + + request.onreadystatechange = function() { + if ( request.readyState === 4 && request.status === 200 ) { + var response = JSON.parse( request.responseText ); + + versionInfo.latest = parseVersion( response.latestVersion ); + versionInfo.secure = parseVersion( response.secureVersion ); + versionInfo.isLatest = isLatestVersion(); + versionInfo.isSecure = isSecureVersion(); + + callback(); + } + }; + + request.responseType = 'text'; + request.open( 'GET', requestUrl ); + request.send(); + } catch ( e ) { + } + } + + function notifyAboutInsecureVersion( editor ) { + if ( versionInfo.isSecure ) { + return; + } + + var notificationMessage = editor.lang.versionCheck.notificationMessage.replace( '%current', versionInfo.current.original ). + replace( '%latest', versionInfo.latest.original ). + replace( /%link/g, upgradeLink ), + /* jshint ignore:start */ + // Apparently ignore for console.error() makes JSHint skip the whole code and it does not + // note that this variable is actually used anywhere. + consoleMessage = editor.lang.versionCheck.consoleMessage.replace( '%current', versionInfo.current.original ). + replace( '%latest', versionInfo.latest.original ). + replace( /%link/g, upgradeLink ), + /* jshint ignore:end */ + isNotificationAvailable = 'notification' in editor.plugins; + + /* jshint ignore:start */ + console.error( consoleMessage ); + /* jshint ignore:end */ + + if ( isNotificationAvailable ) { + editor.showNotification( notificationMessage, 'warning' ); + } + } + + function addInfoToAboutDialog( editor, dialog ) { + var container = dialog.getElement().findOne( '.cke_about_version-check' ), + message = getAboutMessage( editor ); + + container.setHtml( '' ); + + if ( editor.config.versionCheck ) { + container.setStyle( 'color', versionInfo.isSecure ? '' : '#C83939' ); + container.setHtml( message ); + } + } + + function getAboutMessage( editor ) { + var lang = editor.lang.versionCheck.about, + msg = ''; + + if ( !versionInfo.isLatest ) { + msg = lang.upgradeInfo; + } + + if ( !versionInfo.isSecure ) { + msg = lang.insecure; + } + + return msg.replace( '%current', versionInfo.current.original ). + replace( '%latest', versionInfo.latest.original ). + replace( /%link/g, upgradeLink ); + } + + function isLatestVersion() { + return versionInfo.current.minor === versionInfo.latest.minor && + versionInfo.current.patch === versionInfo.latest.patch; + } + + function isSecureVersion() { + if ( versionInfo.current.minor > versionInfo.secure.minor ) { + return true; + } + + if ( versionInfo.current.minor === versionInfo.secure.minor && + versionInfo.current.patch >= versionInfo.secure.patch ) { + return true; + } + + return false; + } + + function parseVersion( version ) { + var parts = version.match( versionRegex ); + + if ( !parts ) { + return null; + } + + return { + original: version, + major: 4, + minor: Number( parts[ 1 ] ), + patch: Number( parts[ 2 ] ), + isLts: !!parts[ 3 ] + }; + } +}() ); diff --git a/core/loader.js b/core/loader.js index 1c55d58da4f..f17bb52613b 100644 --- a/core/loader.js +++ b/core/loader.js @@ -29,12 +29,13 @@ if ( !CKEDITOR.loader ) { 'dom/comment', 'dom/elementpath', 'dom/text', 'dom/rangelist', 'skin' ], 'ckeditor': [ - 'ckeditor_basic', 'log', 'dom', 'dtd', 'dom/document', 'dom/element', 'dom/iterator', 'editor', 'event', - 'htmldataprocessor', 'htmlparser', 'htmlparser/element', 'htmlparser/fragment', 'htmlparser/filter', - 'htmlparser/basicwriter', 'template', 'tools' + 'ckeditor_basic', 'ckeditor_version-check', 'log', 'dom', 'dtd', 'dom/document', 'dom/element', + 'dom/iterator', 'editor', 'event', 'htmldataprocessor', 'htmlparser', 'htmlparser/element', + 'htmlparser/fragment', 'htmlparser/filter', 'htmlparser/basicwriter', 'template', 'tools' ], 'ckeditor_base': [], 'ckeditor_basic': [ 'editor_basic', 'env', 'event' ], + 'ckeditor_version-check': [ 'ckeditor_basic', 'config', 'tools' ], 'command': [], 'config': [ 'ckeditor_base' ], 'dom': [], diff --git a/lang/af.js b/lang/af.js index d0b2aced704..5352cd76f96 100644 --- a/lang/af.js +++ b/lang/af.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'af' ] = { keyboardShortcut: 'Sleutel kombenasie', optionDefault: 'Verstek' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ar.js b/lang/ar.js index 888d05aed6f..5f29f19a0c6 100644 --- a/lang/ar.js +++ b/lang/ar.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ar' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/az.js b/lang/az.js index 8fd775db62b..d609ef957ac 100644 --- a/lang/az.js +++ b/lang/az.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'az' ] = { keyboardShortcut: 'Qısayol düymələri', optionDefault: 'Standart' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/bg.js b/lang/bg.js index 29c869443a4..035326d2622 100644 --- a/lang/bg.js +++ b/lang/bg.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'bg' ] = { keyboardShortcut: 'Клавишна комбинация', optionDefault: 'По подразбиране' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/bn.js b/lang/bn.js index e1aa45a4d4c..f6ef545bd79 100644 --- a/lang/bn.js +++ b/lang/bn.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'bn' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/bs.js b/lang/bs.js index f3bb0d60bda..2b48071538f 100644 --- a/lang/bs.js +++ b/lang/bs.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'bs' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Zadano' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ca.js b/lang/ca.js index c7e963fbf73..d7082dace80 100644 --- a/lang/ca.js +++ b/lang/ca.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ca' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/cs.js b/lang/cs.js index 0bc1268d7ef..c9830cc7f34 100644 --- a/lang/cs.js +++ b/lang/cs.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'cs' ] = { keyboardShortcut: 'Klávesová zkratka', optionDefault: 'Výchozí' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/cy.js b/lang/cy.js index 719313cdb3f..5a63a0bdfc2 100644 --- a/lang/cy.js +++ b/lang/cy.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'cy' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/da.js b/lang/da.js index 54ec915f053..8d3c3b2f496 100644 --- a/lang/da.js +++ b/lang/da.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'da' ] = { keyboardShortcut: 'Tastatur genvej', optionDefault: 'Standard' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/de-ch.js b/lang/de-ch.js index 785815430d3..f5fd37d19cf 100644 --- a/lang/de-ch.js +++ b/lang/de-ch.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'de-ch' ] = { keyboardShortcut: 'Tastaturkürzel', optionDefault: 'Standard' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/de.js b/lang/de.js index a74835c676a..0d19a9e5b32 100644 --- a/lang/de.js +++ b/lang/de.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'de' ] = { keyboardShortcut: 'Tastaturkürzel', optionDefault: 'Standard' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/el.js b/lang/el.js index 909e6f29116..196df83f6ef 100644 --- a/lang/el.js +++ b/lang/el.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'el' ] = { keyboardShortcut: 'Συντόμευση πληκτρολογίου', optionDefault: 'Προεπιλογή' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/en-au.js b/lang/en-au.js index 46c6f3a2ca9..2bf169154ac 100644 --- a/lang/en-au.js +++ b/lang/en-au.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'en-au' ] = { keyboardShortcut: 'Keyboard shortcut', optionDefault: 'Default' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/en-ca.js b/lang/en-ca.js index 44901bb2501..66d51748cd3 100644 --- a/lang/en-ca.js +++ b/lang/en-ca.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'en-ca' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/en-gb.js b/lang/en-gb.js index 4b544b744c3..6a6e6b085a3 100644 --- a/lang/en-gb.js +++ b/lang/en-gb.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'en-gb' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/en.js b/lang/en.js index be96ab6df23..132154d0e4f 100644 --- a/lang/en.js +++ b/lang/en.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'en' ] = { keyboardShortcut: 'Keyboard shortcut', optionDefault: 'Default' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', + } } }; diff --git a/lang/eo.js b/lang/eo.js index ec30193f36f..69e26ff0c5f 100644 --- a/lang/eo.js +++ b/lang/eo.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'eo' ] = { keyboardShortcut: 'Fulmoklavo', optionDefault: 'Defaŭlta' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/es-mx.js b/lang/es-mx.js index 1a2e6e1a386..0816fb89f29 100644 --- a/lang/es-mx.js +++ b/lang/es-mx.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'es-mx' ] = { keyboardShortcut: 'Atajo de teclado', optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/es.js b/lang/es.js index 2948d302bcd..b0768d31650 100644 --- a/lang/es.js +++ b/lang/es.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'es' ] = { keyboardShortcut: 'Atajos de teclado', optionDefault: 'Default' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/et.js b/lang/et.js index 82900c7dd37..8dfcbd07085 100644 --- a/lang/et.js +++ b/lang/et.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'et' ] = { keyboardShortcut: 'Kiirklahv', optionDefault: 'Vaikeväärtus' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/eu.js b/lang/eu.js index e9f592bbbca..96fda04d312 100644 --- a/lang/eu.js +++ b/lang/eu.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'eu' ] = { keyboardShortcut: 'Laster-tekla', optionDefault: 'Lehenetsia' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/fa.js b/lang/fa.js index 7f9f6097996..29a18f2e1ab 100644 --- a/lang/fa.js +++ b/lang/fa.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'fa' ] = { keyboardShortcut: 'میانبر صفحه کلید', optionDefault: 'پیش فرض' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/fi.js b/lang/fi.js index b471e9add47..fa1de4a2a12 100644 --- a/lang/fi.js +++ b/lang/fi.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'fi' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/fo.js b/lang/fo.js index b8764288a0b..b6df0d83387 100644 --- a/lang/fo.js +++ b/lang/fo.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'fo' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/fr-ca.js b/lang/fr-ca.js index 084f8bb6aea..e1fe6e7dc8e 100644 --- a/lang/fr-ca.js +++ b/lang/fr-ca.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'fr-ca' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/fr.js b/lang/fr.js index 9bf6ab77548..f9f6b462fa2 100644 --- a/lang/fr.js +++ b/lang/fr.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'fr' ] = { keyboardShortcut: 'Raccourci clavier', optionDefault: 'Par défaut' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/gl.js b/lang/gl.js index a34727efe13..a8887b443ad 100644 --- a/lang/gl.js +++ b/lang/gl.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'gl' ] = { keyboardShortcut: 'Atallo de teclado', optionDefault: 'Predeterminado' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/gu.js b/lang/gu.js index f8cfd317984..e24a13f47ec 100644 --- a/lang/gu.js +++ b/lang/gu.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'gu' ] = { keyboardShortcut: 'કીબોર્ડ શૉર્ટકટ', optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/he.js b/lang/he.js index abff3bd62fa..0cb19771325 100644 --- a/lang/he.js +++ b/lang/he.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'he' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/hi.js b/lang/hi.js index 8c4c197b404..6797c7bd395 100644 --- a/lang/hi.js +++ b/lang/hi.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'hi' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/hr.js b/lang/hr.js index ea8cbaa4dc5..dbfb905d502 100644 --- a/lang/hr.js +++ b/lang/hr.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'hr' ] = { keyboardShortcut: 'Prečica na tipkovnici', optionDefault: 'Zadano' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/hu.js b/lang/hu.js index 0572706b302..8e2249a4233 100644 --- a/lang/hu.js +++ b/lang/hu.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'hu' ] = { keyboardShortcut: 'Gyorsbillentyű', optionDefault: 'Alapértelmezett' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/id.js b/lang/id.js index 165d38df665..7c8a0d6fc6d 100644 --- a/lang/id.js +++ b/lang/id.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'id' ] = { keyboardShortcut: 'Pintasan Keyboard', optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/is.js b/lang/is.js index 822598e54b4..7c527ea4747 100644 --- a/lang/is.js +++ b/lang/is.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'is' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/it.js b/lang/it.js index b4d5deecdfe..29f356e1711 100644 --- a/lang/it.js +++ b/lang/it.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'it' ] = { keyboardShortcut: 'Scorciatoia da tastiera', optionDefault: 'Predefinito' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ja.js b/lang/ja.js index 94ca09bf260..dc850e7ef6c 100644 --- a/lang/ja.js +++ b/lang/ja.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ja' ] = { keyboardShortcut: 'キーボードショートカット', optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ka.js b/lang/ka.js index dbe700cf520..2eb5c6cadc5 100644 --- a/lang/ka.js +++ b/lang/ka.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ka' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/km.js b/lang/km.js index 6be2b76321a..d98a5ace71e 100644 --- a/lang/km.js +++ b/lang/km.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'km' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ko.js b/lang/ko.js index 8d1d5a9e664..234cd86bc8d 100644 --- a/lang/ko.js +++ b/lang/ko.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ko' ] = { keyboardShortcut: '키보드 단축키', optionDefault: '기본값' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ku.js b/lang/ku.js index fee70208de5..fefe7683f59 100644 --- a/lang/ku.js +++ b/lang/ku.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'ku' ] = { keyboardShortcut: 'کورتبڕی تەختەکلیل', optionDefault: 'هەمیشەیی' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/lt.js b/lang/lt.js index cf0e922a8bb..d7da7bd32c0 100644 --- a/lang/lt.js +++ b/lang/lt.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'lt' ] = { keyboardShortcut: 'Spartusis klavišas', optionDefault: 'Numatytasis' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/lv.js b/lang/lv.js index 53acb324759..4da313fa926 100644 --- a/lang/lv.js +++ b/lang/lv.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'lv' ] = { keyboardShortcut: 'Klaviatūras saīsne', optionDefault: 'Noklusēts' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/mk.js b/lang/mk.js index 5a7d3f6cf9a..d48cb4a46e9 100644 --- a/lang/mk.js +++ b/lang/mk.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'mk' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/mn.js b/lang/mn.js index c53ea591cc5..c6fc6c5bd20 100644 --- a/lang/mn.js +++ b/lang/mn.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'mn' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ms.js b/lang/ms.js index ffa494f7e4f..e868c58975f 100644 --- a/lang/ms.js +++ b/lang/ms.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ms' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/nb.js b/lang/nb.js index 107def29131..96ad1d5a149 100644 --- a/lang/nb.js +++ b/lang/nb.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'nb' ] = { keyboardShortcut: 'Tastatursnarvei', optionDefault: 'Standard' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/nl.js b/lang/nl.js index 69e800c0cb1..0a09f589c7c 100644 --- a/lang/nl.js +++ b/lang/nl.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'nl' ] = { keyboardShortcut: 'Sneltoets', optionDefault: 'Standaard' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/no.js b/lang/no.js index 44b2c2e91bc..2e54390f343 100644 --- a/lang/no.js +++ b/lang/no.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'no' ] = { keyboardShortcut: 'Hurtigtast', optionDefault: 'Standard' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/oc.js b/lang/oc.js index c67078fa985..a3dd1a5076b 100644 --- a/lang/oc.js +++ b/lang/oc.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'oc' ] = { keyboardShortcut: 'Acorchi de clavièr', optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/pl.js b/lang/pl.js index 32a4b567075..ad271df53b8 100644 --- a/lang/pl.js +++ b/lang/pl.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'pl' ] = { keyboardShortcut: 'Skrót klawiszowy', optionDefault: 'Domyślny' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/pt-br.js b/lang/pt-br.js index 50ea671d1da..63d273fbd1c 100644 --- a/lang/pt-br.js +++ b/lang/pt-br.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'pt-br' ] = { keyboardShortcut: 'Atalho do teclado', optionDefault: 'Padrão' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/pt.js b/lang/pt.js index 1af33758b35..af522e1f110 100644 --- a/lang/pt.js +++ b/lang/pt.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'pt' ] = { keyboardShortcut: 'Atalho de teclado', optionDefault: 'Padrão' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ro.js b/lang/ro.js index 658d7c7482c..fc956c33199 100644 --- a/lang/ro.js +++ b/lang/ro.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ro' ] = { keyboardShortcut: 'Scurtături tastatură', optionDefault: 'Implicit' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ru.js b/lang/ru.js index 6679a3a721e..fbc206bcf28 100644 --- a/lang/ru.js +++ b/lang/ru.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'ru' ] = { keyboardShortcut: 'Комбинация клавиш', optionDefault: 'По умолчанию' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/si.js b/lang/si.js index 7ebfbe8d83d..317251e3b09 100644 --- a/lang/si.js +++ b/lang/si.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'si' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/sk.js b/lang/sk.js index e53f04ce2e1..e8f687fd981 100644 --- a/lang/sk.js +++ b/lang/sk.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'sk' ] = { keyboardShortcut: 'Klávesová skratka', optionDefault: 'Predvolený' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/sl.js b/lang/sl.js index ed64c2b6684..6167f6ea1aa 100644 --- a/lang/sl.js +++ b/lang/sl.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'sl' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/sq.js b/lang/sq.js index 31a0c398b80..61d5f8cdc48 100644 --- a/lang/sq.js +++ b/lang/sq.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'sq' ] = { keyboardShortcut: 'Shkurtesat e tastierës', optionDefault: 'Parazgjedhur' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/sr-latn.js b/lang/sr-latn.js index 7b57a9cf9a0..bccda4cf54a 100644 --- a/lang/sr-latn.js +++ b/lang/sr-latn.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'sr-latn' ] = { keyboardShortcut: 'Taster za prečicu', optionDefault: 'Оsnovni' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/sr.js b/lang/sr.js index 9848064d035..b5525da6fd3 100644 --- a/lang/sr.js +++ b/lang/sr.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'sr' ] = { keyboardShortcut: 'Tастер за пречицу', optionDefault: 'Основни' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/sv.js b/lang/sv.js index 15bcc248ea8..2936560626d 100644 --- a/lang/sv.js +++ b/lang/sv.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'sv' ] = { keyboardShortcut: 'Kortkommando', optionDefault: 'Standard' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/th.js b/lang/th.js index 890d90aaa32..57d3595927b 100644 --- a/lang/th.js +++ b/lang/th.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'th' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/tr.js b/lang/tr.js index fbd53ad33d8..0f125e05d4b 100644 --- a/lang/tr.js +++ b/lang/tr.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'tr' ] = { keyboardShortcut: 'Klavye Kısayolu', optionDefault: 'Varsayılan' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/tt.js b/lang/tt.js index 4fa2f648a0a..fae0ba856c7 100644 --- a/lang/tt.js +++ b/lang/tt.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'tt' ] = { keyboardShortcut: 'Keyboard shortcut', // MISSING optionDefault: 'Default' // MISSING + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/ug.js b/lang/ug.js index 90538c008f7..7cf283bb978 100644 --- a/lang/ug.js +++ b/lang/ug.js @@ -142,5 +142,14 @@ CKEDITOR.lang[ 'ug' ] = { keyboardShortcut: 'تېزلەتمە كونۇپكا', optionDefault: 'سۈكۈتتىكى' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/uk.js b/lang/uk.js index 646a788f53a..1119e9602c9 100644 --- a/lang/uk.js +++ b/lang/uk.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'uk' ] = { keyboardShortcut: 'Сполучення клавіш', optionDefault: 'Типово' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/vi.js b/lang/vi.js index b4287f604e5..805737a052e 100644 --- a/lang/vi.js +++ b/lang/vi.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'vi' ] = { keyboardShortcut: 'Phím tắt', optionDefault: 'Mặc định' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/zh-cn.js b/lang/zh-cn.js index 7ed226702e0..794d0f600a8 100644 --- a/lang/zh-cn.js +++ b/lang/zh-cn.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'zh-cn' ] = { keyboardShortcut: '快捷键', optionDefault: '默认' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/lang/zh.js b/lang/zh.js index fa65dd69f21..3db14fa89fa 100644 --- a/lang/zh.js +++ b/lang/zh.js @@ -143,5 +143,14 @@ CKEDITOR.lang[ 'zh' ] = { keyboardShortcut: '鍵盤快捷鍵', optionDefault: '預設' + }, + + versionCheck: { + notificationMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest.', // MISSING + consoleMessage: 'This CKEditor %current version is not secure. Consider upgrading to the latest secure one, %latest: %link', // MISSING + about: { + insecure: 'This CKEditor %current version is not secure.
Consider upgrading to the latest secure one, %latest:
%link', // MISSING + upgradeInfo: 'Consider upgrading to the latest editor version, %latest:
%link', // MISSING + } } }; diff --git a/plugins/about/dialogs/about.js b/plugins/about/dialogs/about.js index 69c4f1926ea..4b50a9c7a52 100644 --- a/plugins/about/dialogs/about.js +++ b/plugins/about/dialogs/about.js @@ -52,6 +52,10 @@ CKEDITOR.dialog.add( 'about', function( editor ) { '{' + 'text-align:center;' + '}' + + '.cke_about_version-check > strong' + + '{' + + 'color: inherit;' + + '}' + '' + '
' + '' + @@ -59,6 +63,7 @@ CKEDITOR.dialog.add( 'about', function( editor ) { 'CKEditor ' + CKEDITOR.version + ' (revision ' + CKEDITOR.revision + ')
' + 'https://ckeditor.com' + '

' + + '

' + '

' + lang.moreInfo + '
' + 'https://ckeditor.com/legal/ckeditor-oss-license/' + diff --git a/tests/core/manual/versioncheck.html b/tests/core/manual/versioncheck.html new file mode 100644 index 00000000000..30edaf50dc5 --- /dev/null +++ b/tests/core/manual/versioncheck.html @@ -0,0 +1,86 @@ + + + +

+ + +

+

+ + +

+

+ +

+

+ +

+ + + + + + diff --git a/tests/core/manual/versioncheck.md b/tests/core/manual/versioncheck.md new file mode 100644 index 00000000000..c2d7b3078b0 --- /dev/null +++ b/tests/core/manual/versioncheck.md @@ -0,0 +1,34 @@ +@bender-ui: collapsed +@bender-tags: feature, 4.21.1 +@bender-ckeditor-plugins: wysiwygarea,toolbar,about + +## Scenarios + +* any version with "Drupal" switch on: + * no notification & console log, + * no ino in the "About" dialog +* any version with the config set explicitly to true: + * notification & console log if the version is insecure, + * info in the "About" dialog +* any version with the config set explicitly to false: + * no notification & console log, + * no info in the "About" dialog +* secure non-LTS version with not set config: + * no notification & console log, + * info in the "About" dialog about the latest version +* insecure non-LTS version with not set config: + * notification & console log + * info in the "About" dialog about the vulnerabilities and the latest version +* LTS versions with not set config: + * no notification & console log, + * no info in the "About" dialog + +## Sample versions + +* `4.21.0`, +* `4.3.126` +* `4.13.3 (Standard)`, +* `4.35.799 DEV`, +* `4.4.13-lts`, +* `4.22.0-lts DEV`, +* `4.12.9-lts (Full)`. diff --git a/tests/core/manual/versionchecknonotification.html b/tests/core/manual/versionchecknonotification.html new file mode 100644 index 00000000000..4c880af85b0 --- /dev/null +++ b/tests/core/manual/versionchecknonotification.html @@ -0,0 +1,45 @@ + + + +

+ +

+ + + + + + diff --git a/tests/core/manual/versionchecknonotification.md b/tests/core/manual/versionchecknonotification.md new file mode 100644 index 00000000000..53b932783a0 --- /dev/null +++ b/tests/core/manual/versionchecknonotification.md @@ -0,0 +1,10 @@ +@bender-ui: collapsed +@bender-tags: feature, 4.21.1 +@bender-ckeditor-plugins: wysiwygarea,toolbar,about + +1. Open browser console. +1. Click the "Create editor" button. + +**Expected** There is only a console log in the console. + +**Unexpected** There is an `alert()` alongside the console log.