diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/dialogs/codesnippet.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/dialogs/codesnippet.js new file mode 100644 index 0000000000..7d662dd483 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/dialogs/codesnippet.js @@ -0,0 +1,83 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +'use strict'; + +( function() { + CKEDITOR.dialog.add( 'codeSnippet', function( editor ) { + var snippetLangs = editor._.codesnippet.langs, + lang = editor.lang.codesnippet, + clientHeight = document.documentElement.clientHeight, + langSelectItems = [], + snippetLangId; + + langSelectItems.push( [ editor.lang.common.notSet, '' ] ); + + for ( snippetLangId in snippetLangs ) + langSelectItems.push( [ snippetLangs[ snippetLangId ], snippetLangId ] ); + + // Size adjustments. + var size = CKEDITOR.document.getWindow().getViewPaneSize(), + // Make it maximum 800px wide, but still fully visible in the viewport. + width = Math.min( size.width - 70, 800 ), + // Make it use 2/3 of the viewport height. + height = size.height / 1.5; + + // Low resolution settings. + if ( clientHeight < 650 ) { + height = clientHeight - 220; + } + + return { + title: lang.title, + minHeight: 200, + resizable: CKEDITOR.DIALOG_RESIZE_NONE, + contents: [ + { + id: 'info', + elements: [ + { + id: 'lang', + type: 'select', + label: lang.language, + items: langSelectItems, + setup: function( widget ) { + if ( widget.ready && widget.data.lang ) + this.setValue( widget.data.lang ); + + // The only way to have an empty select value in Firefox is + // to set a negative selectedIndex. + if ( CKEDITOR.env.gecko && ( !widget.data.lang || !widget.ready ) ) + this.getInputElement().$.selectedIndex = -1; + }, + commit: function( widget ) { + widget.setData( 'lang', this.getValue() ); + } + }, + { + id: 'code', + type: 'textarea', + label: lang.codeContents, + setup: function( widget ) { + this.setValue( widget.data.code ); + }, + commit: function( widget ) { + widget.setData( 'code', this.getValue() ); + }, + required: true, + validate: CKEDITOR.dialog.validate.notEmpty( lang.emptySnippetError ), + inputStyle: 'cursor:auto;' + + 'width:' + width + 'px;' + + 'height:' + height + 'px;' + + 'tab-size:4;' + + 'text-align:left;', + 'class': 'cke_source' + } + ] + } + ] + }; + } ); +}() ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/icons/codesnippet.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/icons/codesnippet.png new file mode 100644 index 0000000000..c718510671 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/icons/codesnippet.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/icons/hidpi/codesnippet.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/icons/hidpi/codesnippet.png new file mode 100644 index 0000000000..2de477f6b1 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/icons/hidpi/codesnippet.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ar.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ar.js new file mode 100644 index 0000000000..af817dbb9f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ar.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ar', { + button: 'أدمج قصاصة الشيفرة', + codeContents: 'محتوى الشيفرة', + emptySnippetError: 'قصاصة الشيفرة لايمكن أن تكون فارغة.', + language: 'لغة', + title: 'قصاصة الشيفرة', + pathName: 'قصاصة الشيفرة' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/az.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/az.js new file mode 100644 index 0000000000..967c5fda55 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/az.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'az', { + button: 'Kodun parçasını əlavə et', + codeContents: 'Kod', + emptySnippetError: 'Kodun parçasını boş ola bilməz', + language: 'Programlaşdırma dili', + title: 'Kodun parçasını', + pathName: 'kodun parçasını' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/bg.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/bg.js new file mode 100644 index 0000000000..5ff3c7d702 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/bg.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'bg', { + button: 'Въвеждане на блок с код', + codeContents: 'Съдържание на кода', + emptySnippetError: 'Блока с код не може да бъде празен.', + language: 'Език', + title: 'Блок с код', + pathName: 'блок с код' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ca.js new file mode 100644 index 0000000000..5ea8256b7a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ca.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ca', { + button: 'Insereix el fragment de codi', + codeContents: 'Contingut del codi', + emptySnippetError: 'El fragment de codi no pot estar buit.', + language: 'Idioma', + title: 'Fragment de codi', + pathName: 'fragment de codi' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/cs.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/cs.js new file mode 100644 index 0000000000..ad554003dc --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/cs.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'cs', { + button: 'Vložit úryvek kódu', + codeContents: 'Obsah kódu', + emptySnippetError: 'Úryvek kódu nemůže být prázdný.', + language: 'Jazyk', + title: 'Úryvek kódu', + pathName: 'úryvek kódu' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/da.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/da.js new file mode 100644 index 0000000000..603035274b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/da.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'da', { + button: 'Indsæt kodestykket her', + codeContents: 'Koden', + emptySnippetError: 'Kodestykket kan ikke være tomt.', + language: 'Sprog', + title: 'Kodestykke', + pathName: 'kodestykke' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/de-ch.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/de-ch.js new file mode 100644 index 0000000000..fc9d6a3e91 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/de-ch.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'de-ch', { + button: 'Codeschnipsel einfügen', + codeContents: 'Codeinhalt', + emptySnippetError: 'Ein Codeschnipsel darf nicht leer sein.', + language: 'Sprache', + title: 'Codeschnipsel', + pathName: 'Codeschnipsel' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/de.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/de.js new file mode 100644 index 0000000000..b4f9f0713e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/de.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'de', { + button: 'Codeschnipsel einfügen', + codeContents: 'Codeinhalt', + emptySnippetError: 'Ein Codeschnipsel darf nicht leer sein.', + language: 'Sprache', + title: 'Codeschnipsel', + pathName: 'Codeschnipsel' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/el.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/el.js new file mode 100644 index 0000000000..f630f1cfae --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/el.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'el', { + button: 'Εισαγωγή Αποσπάσματος Κώδικα', + codeContents: 'Περιεχόμενο κώδικα', + emptySnippetError: 'Δεν γίνεται να είναι κενά τα αποσπάσματα κώδικα.', + language: 'Γλώσσα', + title: 'Απόσπασμα κώδικα', + pathName: 'απόσπασμα κώδικα' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en-au.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en-au.js new file mode 100644 index 0000000000..aad38b698d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en-au.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'en-au', { + button: 'Insert Code Snippet', + codeContents: 'Code content', + emptySnippetError: 'A code snippet cannot be empty.', + language: 'Language', + title: 'Code snippet', + pathName: 'code snippet' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en-gb.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en-gb.js new file mode 100644 index 0000000000..43a499a936 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en-gb.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'en-gb', { + button: 'Insert Code Snippet', + codeContents: 'Code content', + emptySnippetError: 'A code snippet cannot be empty.', + language: 'Language', + title: 'Code snippet', + pathName: 'code snippet' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en.js new file mode 100644 index 0000000000..6f2ee2b995 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/en.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'en', { + button: 'Insert Code Snippet', + codeContents: 'Code content', + emptySnippetError: 'A code snippet cannot be empty.', + language: 'Language', + title: 'Code snippet', + pathName: 'code snippet' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/eo.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/eo.js new file mode 100644 index 0000000000..0799b4ceee --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/eo.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'eo', { + button: 'Enmeti kodaĵeron', + codeContents: 'Kodenhavo', + emptySnippetError: 'Kodaĵero ne povas esti malplena.', + language: 'Lingvo', + title: 'Kodaĵero', + pathName: 'kodaĵero' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/es-mx.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/es-mx.js new file mode 100644 index 0000000000..4f83b5a940 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/es-mx.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'es-mx', { + button: 'Insertar fragmento de código', + codeContents: 'Contenido del código', + emptySnippetError: 'Un fragmento de código no puede estar vacio.', + language: 'Idioma', + title: 'Fragmento de código', + pathName: 'fragmento de código' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/es.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/es.js new file mode 100644 index 0000000000..cff0959363 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/es.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'es', { + button: 'Insertar fragmento de código', + codeContents: 'Contenido del código', + emptySnippetError: 'Un fragmento de código no puede estar vacío.', + language: 'Lenguaje', + title: 'Fragmento de código', + pathName: 'fragmento de código' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/et.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/et.js new file mode 100644 index 0000000000..e5cf2375b3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/et.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'et', { + button: 'Koodijupi sisestamine', + codeContents: 'Koodi sisu', + emptySnippetError: 'Koodijupp ei saa olla tühi.', + language: 'Keel', + title: 'Koodijupp', + pathName: 'koodijupp' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/eu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/eu.js new file mode 100644 index 0000000000..bf7fdf0ba8 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/eu.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'eu', { + button: 'Txertatu kode zatia', + codeContents: 'Kode edukia', + emptySnippetError: 'Kode zatiak ezin du hutsik egon.', + language: 'Lengoaia', + title: 'Kode zatia', + pathName: 'kode zatia' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fa.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fa.js new file mode 100644 index 0000000000..4b93ff50e7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fa.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'fa', { + button: 'قرار دادن کد قطعه', + codeContents: 'محتوای کد', + emptySnippetError: 'کد نمی تواند خالی باشد.', + language: 'زبان', + title: 'کد قطعه', + pathName: 'کد قطعه' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fi.js new file mode 100644 index 0000000000..638c6d53c8 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fi.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'fi', { + button: 'Lisää koodileike', + codeContents: 'Koodisisältö', + emptySnippetError: 'Koodileike ei voi olla tyhjä.', + language: 'Kieli', + title: 'Koodileike', + pathName: 'koodileike' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fr-ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fr-ca.js new file mode 100644 index 0000000000..036d3d4e85 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fr-ca.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'fr-ca', { + button: 'Insérer du code', + codeContents: 'Code content', // MISSING + emptySnippetError: 'A code snippet cannot be empty.', // MISSING + language: 'Language', // MISSING + title: 'Code snippet', // MISSING + pathName: 'code snippet' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fr.js new file mode 100644 index 0000000000..47ed2ada90 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/fr.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'fr', { + button: 'Insérer un extrait de code', + codeContents: 'Code', + emptySnippetError: 'Un extrait de code ne peut pas être vide.', + language: 'Langue', + title: 'Extrait de code', + pathName: 'extrait de code' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/gl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/gl.js new file mode 100644 index 0000000000..993aa9ef56 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/gl.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'gl', { + button: 'Inserir fragmento de código', + codeContents: 'Contido do código', + emptySnippetError: 'Un fragmento de código non pode estar baleiro.', + language: 'Linguaxe', + title: 'Fragmento de código', + pathName: 'fragmento de código' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/he.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/he.js new file mode 100644 index 0000000000..2f4f26a9e8 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/he.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'he', { + button: 'הכנס קטע קוד', + codeContents: 'תוכן קוד', + emptySnippetError: 'קטע קוד לא יכול להיות ריק.', + language: 'שפה', + title: 'קטע קוד', + pathName: 'code snippet' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/hr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/hr.js new file mode 100644 index 0000000000..a193883fe9 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/hr.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'hr', { + button: 'Ubaci isječak kôda', + codeContents: 'Sadržaj kôda', + emptySnippetError: 'Isječak kôda ne može biti prazan.', + language: 'Jezik', + title: 'Isječak kôda', + pathName: 'isječak kôda' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/hu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/hu.js new file mode 100644 index 0000000000..8e1c1fd294 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/hu.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'hu', { + button: 'Illeszd be a kódtöredéket', + codeContents: 'Kód tartalom', + emptySnippetError: 'A kódtöredék nem lehet üres.', + language: 'Nyelv', + title: 'Kódtöredék', + pathName: 'kódtöredék' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/id.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/id.js new file mode 100644 index 0000000000..3a0a4f2790 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/id.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'id', { + button: 'Masukkan potongan kode', + codeContents: 'Konten kode', + emptySnippetError: 'Potongan kode tidak boleh kosong', + language: 'Bahasa', + title: 'Potongan kode', + pathName: 'potongan kode' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/it.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/it.js new file mode 100644 index 0000000000..7c216dd24f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/it.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'it', { + button: 'Inserisci frammento di codice', + codeContents: 'Contenuto del codice', + emptySnippetError: 'Un frammento di codice non può essere vuoto.', + language: 'Lingua', + title: 'Frammento di codice', + pathName: 'frammento di codice' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ja.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ja.js new file mode 100644 index 0000000000..24501a830f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ja.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ja', { + button: 'コードスニペットを挿入', + codeContents: 'コード内容', + emptySnippetError: 'コードスニペットを入力してください。', + language: '言語', + title: 'コードスニペット', + pathName: 'コードスニペット' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/km.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/km.js new file mode 100644 index 0000000000..63fcb11fee --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/km.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'km', { + button: 'Insert Code Snippet', // MISSING + codeContents: 'មាតិកាកូដ', + emptySnippetError: 'A code snippet cannot be empty.', // MISSING + language: 'ភាសា', + title: 'Code snippet', // MISSING + pathName: 'code snippet' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ko.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ko.js new file mode 100644 index 0000000000..e68ea7a623 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ko.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ko', { + button: '코드 스니펫 삽입', + codeContents: '코드 본문', + emptySnippetError: '코드 스니펫은 빈칸일 수 없습니다.', + language: '언어', + title: '코드 스니펫', + pathName: '코드 스니펫' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ku.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ku.js new file mode 100644 index 0000000000..b20307a1d6 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ku.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ku', { + button: 'تێخستنی تیتکی کۆد', + codeContents: 'ناوەڕۆکی کۆد', + emptySnippetError: 'تیتکی کۆد نابێت بەتاڵ بێت.', + language: 'زمان', + title: 'تیتکی کۆد', + pathName: 'تیتکی کۆد' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/lt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/lt.js new file mode 100644 index 0000000000..00964efffa --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/lt.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'lt', { + button: 'Įterpkite kodo gabaliuką', + codeContents: 'Kodo turinys', + emptySnippetError: 'Kodo fragmentas negali būti tusčias.', + language: 'Kalba', + title: 'Kodo fragmentas', + pathName: 'kodo fragmentas' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/lv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/lv.js new file mode 100644 index 0000000000..1f0e8d097b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/lv.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'lv', { + button: 'Ievietot koda fragmentu', + codeContents: 'Koda saturs', + emptySnippetError: 'Koda fragments nevar būt tukšs.', + language: 'Valoda', + title: 'Koda fragments', + pathName: 'koda fragments' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/nb.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/nb.js new file mode 100644 index 0000000000..aa4353a0d2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/nb.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'nb', { + button: 'Sett inn kodesnutt', + codeContents: 'Kodeinnhold', + emptySnippetError: 'En kodesnutt kan ikke være tom.', + language: 'Språk', + title: 'Kodesnutt', + pathName: 'kodesnutt' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/nl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/nl.js new file mode 100644 index 0000000000..736150ecd5 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/nl.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'nl', { + button: 'Stuk code invoegen', + codeContents: 'Code', + emptySnippetError: 'Een stuk code kan niet leeg zijn.', + language: 'Taal', + title: 'Stuk code', + pathName: 'stuk code' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/no.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/no.js new file mode 100644 index 0000000000..c4388c011f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/no.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'no', { + button: 'Sett inn kodesnutt', + codeContents: 'Kode', + emptySnippetError: 'En kodesnutt kan ikke være tom.', + language: 'Språk', + title: 'Kodesnutt', + pathName: 'kodesnutt' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/oc.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/oc.js new file mode 100644 index 0000000000..0f48ea52d2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/oc.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'oc', { + button: 'Inserir un extrait de còdi', + codeContents: 'Còdi', + emptySnippetError: 'Un extrait de còdi pòt pas èsser void.', + language: 'Lenga', + title: 'Extrait de còdi', + pathName: 'extrait de còdi' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pl.js new file mode 100644 index 0000000000..c33ed8b180 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pl.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'pl', { + button: 'Wstaw fragment kodu', + codeContents: 'Treść kodu', + emptySnippetError: 'Kod nie może być pusty.', + language: 'Język', + title: 'Fragment kodu', + pathName: 'fragment kodu' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pt-br.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pt-br.js new file mode 100644 index 0000000000..2f5092f53b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pt-br.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'pt-br', { + button: 'Inserir fragmento de código', + codeContents: 'Conteúdo do código', + emptySnippetError: 'Um fragmento de código não pode ser vazio', + language: 'Idioma', + title: 'Fragmento de código', + pathName: 'fragmento de código' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pt.js new file mode 100644 index 0000000000..8c20022964 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/pt.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'pt', { + button: 'Inserir fragmento de código', + codeContents: 'Conteúdo do código', + emptySnippetError: 'A code snippet cannot be empty.', // MISSING + language: 'Idioma', + title: 'Segmento de código', + pathName: 'Fragmento de código' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ro.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ro.js new file mode 100644 index 0000000000..bbe06b37f0 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ro.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ro', { + button: 'Adaugă segment de cod', + codeContents: 'Conținutul codului', + emptySnippetError: 'Un segment de cod nu poate fi gol.', + language: 'Limba', + title: 'Segment de cod', + pathName: 'segment de cod' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ru.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ru.js new file mode 100644 index 0000000000..fc5c323a0d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ru.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ru', { + button: 'Вставить сниппет', + codeContents: 'Содержимое кода', + emptySnippetError: 'Сниппет не может быть пустым', + language: 'Язык', + title: 'Сниппет', + pathName: 'сниппет' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sk.js new file mode 100644 index 0000000000..a59fe864a2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sk.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'sk', { + button: 'Vložte ukážku programového kódu', + codeContents: 'Obsah kódu', + emptySnippetError: 'Ukážka kódu nesmie byť prázdna.', + language: 'Jazyk', + title: 'Ukážka programového kódu', + pathName: 'ukážka programového kódu' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sl.js new file mode 100644 index 0000000000..d06a08ef95 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sl.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'sl', { + button: 'Vstavi odsek kode', + codeContents: 'Vsebina kode', + emptySnippetError: 'Odsek kode ne more biti prazen.', + language: 'Jezik', + title: 'Odsek kode', + pathName: 'odsek kode' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sq.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sq.js new file mode 100644 index 0000000000..a523fdad62 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sq.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'sq', { + button: 'Shto kod copëze', + codeContents: 'Përmbajtja e kodit', + emptySnippetError: 'Copëza e kodit nuk mund të jetë e zbrazët.', + language: 'Gjuha', + title: 'Copëza e kodit', + pathName: 'copëza e kodit' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sr-latn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sr-latn.js new file mode 100644 index 0000000000..27c9164c00 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sr-latn.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'sr-latn', { + button: 'Nalepi delić koda', + codeContents: 'Sadržaj koda', + emptySnippetError: 'Delić koda ne može biti prazan', + language: 'Jezik', + title: 'Delić koda', + pathName: 'Delić koda' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sr.js new file mode 100644 index 0000000000..aa74cdaa8b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sr.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'sr', { + button: 'Налепи делић кода', + codeContents: 'Садржај кода', + emptySnippetError: 'Делић кода не може бити празан', + language: 'Језик', + title: 'Делић кода', + pathName: 'Делић кода' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sv.js new file mode 100644 index 0000000000..a7f132b64e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/sv.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'sv', { + button: 'Infoga kodsnutt', + codeContents: 'Kodinnehålll', + emptySnippetError: 'Innehåll krävs för kodsnutt', + language: 'Språk', + title: 'Kodsnutt', + pathName: 'kodsnutt' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/th.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/th.js new file mode 100644 index 0000000000..39fa03d768 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/th.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'th', { + button: 'แทรกชิ้นส่วนของรหัสหรือโค้ด', + codeContents: 'Code content', // MISSING + emptySnippetError: 'A code snippet cannot be empty.', // MISSING + language: 'Language', // MISSING + title: 'Code snippet', // MISSING + pathName: 'code snippet' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/tr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/tr.js new file mode 100644 index 0000000000..2f5ed06c7b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/tr.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'tr', { + button: 'Kod parçacığı ekle', + codeContents: 'Kod', + emptySnippetError: 'Kod parçacığı boş bırakılamaz', + language: 'Dil', + title: 'Kod parçacığı', + pathName: 'kod parçacığı' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/tt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/tt.js new file mode 100644 index 0000000000..5da4cfc7b8 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/tt.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'tt', { + button: 'Код өзеген өстәү', + codeContents: 'Код эчтәлеге', + emptySnippetError: 'Код өзеге буш булмаска тиеш.', + language: 'Тел', + title: 'Код өзеге', + pathName: 'код өзеге' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ug.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ug.js new file mode 100644 index 0000000000..67a3428bc4 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/ug.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'ug', { + button: 'كود پارچىسى قىستۇرۇش', + codeContents: 'كود مەزمۇنى', + emptySnippetError: 'كود پارچىسى بوش قالمايدۇ', + language: 'تىل', + title: 'كود پارچىسى', + pathName: 'كود پارچىسى' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/uk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/uk.js new file mode 100644 index 0000000000..9e28094d99 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/uk.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'uk', { + button: 'Вставити фрагмент коду', + codeContents: 'Код', + emptySnippetError: 'Фрагмент коду не може бути порожнім.', + language: 'Мова', + title: 'Фрагмент коду', + pathName: 'фрагмент коду' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/vi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/vi.js new file mode 100644 index 0000000000..19d299c44e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/vi.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'vi', { + button: 'Chèn đoạn mã', + codeContents: 'Nội dung mã', + emptySnippetError: 'Một đoạn mã không thể để trống.', + language: 'Ngôn ngữ', + title: 'Đoạn mã', + pathName: 'mã dính' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/zh-cn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/zh-cn.js new file mode 100644 index 0000000000..3ebed40d22 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/zh-cn.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'zh-cn', { + button: '插入代码段', + codeContents: '代码内容', + emptySnippetError: '插入的代码不能为空。', + language: '代码语言', + title: '代码段', + pathName: '代码段' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/zh.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/zh.js new file mode 100644 index 0000000000..5624b927df --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lang/zh.js @@ -0,0 +1,13 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.setLang( 'codesnippet', 'zh', { + button: '插入程式碼片段', + codeContents: '程式碼內容', + emptySnippetError: '程式碼片段不可為空白。', + language: '語言', + title: '程式碼片段', + pathName: '程式碼片段' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/CHANGES.md b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/CHANGES.md new file mode 100644 index 0000000000..f878062bb4 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/CHANGES.md @@ -0,0 +1,827 @@ +## Version 8.0 beta + +This new major release is quite a big overhaul bringing both new features and +some backwards incompatible changes. However, chances are that the majority of +users won't be affected by the latter: the basic scenario described in the +README is left intact. + +Here's what did change in an incompatible way: + +- We're now prefixing all classes located in [CSS classes reference][cr] with + `hljs-`, by default, because some class names would collide with other + people's stylesheets. If you were using an older version, you might still want + the previous behavior, but still want to upgrade. To suppress this new + behavior, you would initialize like so: + + ```html + + ``` + +- `tabReplace` and `useBR` that were used in different places are also unified + into the global options object and are to be set using `configure(options)`. + This function is documented in our [API docs][]. Also note that these + parameters are gone from `highlightBlock` and `fixMarkup` which are now also + rely on `configure`. + +- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which + was used to register languages with the library in favor of two new methods: + `registerLanguage` and `getLanguage`. Both are documented in our [API docs][]. + +- Result returned from `highlight` and `highlightAuto` no longer contains two + separate attributes contributing to relevance score, `relevance` and + `keyword_count`. They are now unified in `relevance`. + +Another technically compatible change that nonetheless might need attention: + +- The structure of the NPM package was refactored, so if you had installed it + locally, you'll have to update your paths. The usual `require('highlight.js')` + works as before. This is contributed by [Dmitry Smolin][]. + +New features: + +- Languages now can be recognized by multiple names like "js" for JavaScript or + "html" for, well, HTML (which earlier insisted on calling it "xml"). These + aliases can be specified in the class attribute of the code container in your + HTML as well as in various API calls. For now there are only a few very common + aliases but we'll expand it in the future. All of them are listed in the + [class reference][]. + +- Language detection can now be restricted to a subset of languages relevant in + a given context — a web page or even a single highlighting call. This is + especially useful for node.js build that includes all the known languages. + Another example is a StackOverflow-style site where users specify languages + as tags rather than in the markdown-formatted code snippets. This is + documented in the [API reference][] (see methods `highlightAuto` and + `configure`). + +- Language definition syntax streamlined with [variants][] and + [beginKeywords][]. + +New languages and styles: + +- *Oxygene* by [Carlo Kok][] +- *Mathematica* by [Daniel Kvasnička][] +- *Autohotkey* by [Seongwon Lee][] +- *Atelier* family of styles in 10 variants by [Bram de Haan][] +- *Paraíso* styles by [Jan T. Sott][] + +Miscelleanous improvements: + +- Highlighting `=>` prompts in Clojure. +- [Jeremy Hull][] fixed a lot of styles for consistency. +- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html]. +- Objective C and C# now properly highlight titles in method definition. +- Big overhaul of relevance counting for a number of languages. Please do report + bugs about mis-detection of non-trivial code snippets! + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html +[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html +[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion +[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d +[php-html]: https://twitter.com/highlightjs/status/408890903017689088 + +[Carlo Kok]: https://github.com/carlokok +[Bram de Haan]: https://github.com/atelierbram +[Daniel Kvasnička]: https://github.com/dkvasnicka +[Dmitry Smolin]: https://github.com/dimsmol +[Jeremy Hull]: https://github.com/sourrust +[Seongwon Lee]: https://github.com/dlimpid +[Jan T. Sott]: https://github.com/idleberg + + +## Version 7.5 + +A catch-up release dealing with some of the accumulated contributions. This one +is probably will be the last before the 8.0 which will be slightly backwards +incompatible regarding some advanced use-cases. + +One outstanding change in this version is the addition of 6 languages to the +[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and +Makefile. It now weighs about 6K more but we're going to keep it under 30K. + +New languages: + +- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud] +- [LiveCode Server][lcs] by [Ralf Bitter][revig] +- Scilab by [Sylvestre Ledru][sylvestre] +- basic support for Makefile by [Ivan Sagalaev][isagalaev] + +Improvements: + +- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}` + regexps. +- Clojure now allows a function call in the beginning of s-expressions + `(($filter "myCount") (arr 1 2 3 4 5))`. +- Haskell's got new keywords and now recognizes more things like pragmas, + preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep] + for the implementation and to [Jeremy Hull][sourrust] for guiding it. +- Miscelleanous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#. + +[mehdid]: https://github.com/mehdid +[nbraud]: https://github.com/nbraud +[revig]: https://github.com/revig +[lcs]: http://livecode.com/developers/guides/server/ +[sylvestre]: https://github.com/sylvestre +[isagalaev]: https://github.com/isagalaev +[treep]: https://github.com/treep +[sourrust]: https://github.com/sourrust +[d]: http://highlightjs.org/download/ + + +## New core developers + +The latest long period of almost complete inactivity in the project coincided +with growing interest to it led to a decision that now seems completely obvious: +we need more core developers. + +So without further ado let me welcome to the core team two long-time +contributors: [Jeremy Hull][] and [Oleg +Efimov][]. + +Hope now we'll be able to work through stuff faster! + +P.S. The historical commit is [here][1] for the record. + +[Jeremy Hull]: https://github.com/sourrust +[Oleg Efimov]: https://github.com/sannis +[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f + + +## Version 7.4 + +This long overdue version is a snapshot of the current source tree with all the +changes that happened during the past year. Sorry for taking so long! + +Along with the changes in code highlight.js has finally got its new home at +, moving from its craddle on Software Maniacs which it +outgrew a long time ago. Be sure to report any bugs about the site to +. + +On to what's new… + +New languages: + +- Handlebars templates by [Robin Ward][] +- Oracle Rules Language by [Jason Jacobson][] +- F# by [Joans Follesø][] +- AsciiDoc and Haml by [Dan Allen][] +- Lasso by [Eric Knibbe][] +- SCSS by [Kurt Emch][] +- VB.NET by [Poren Chiang][] +- Mizar by [Kelley van Evert][] + +[Robin Ward]: https://github.com/eviltrout +[Jason Jacobson]: https://github.com/jayce7 +[Joans Follesø]: https://github.com/follesoe +[Dan Allen]: https://github.com/mojavelinux +[Eric Knibbe]: https://github.com/EricFromCanada +[Kurt Emch]: https://github.com/kemch +[Poren Chiang]: https://github.com/rschiang +[Kelley van Evert]: https://github.com/kelleyvanevert + +New style themes: + +- Monokai Sublime by [noformnocontent][] +- Railscasts by [Damien White][] +- Obsidian by [Alexander Marenin][] +- Docco by [Simon Madine][] +- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything) +- Foundation by [Dan Allen][] + +[noformnocontent]: http://nn.mit-license.org/ +[Damien White]: https://github.com/visoft +[Alexander Marenin]: https://github.com/ioncreature +[Simon Madine]: https://github.com/thingsinjars +[Ivan Sagalaev]: https://github.com/isagalaev + +Other notable changes: + +- Corrected many corner cases in CSS. +- Dropped Python 2 version of the build tool. +- Implemented building for the AMD format. +- Updated Rust keywords (thanks to [Dmitry Medvinsky][]). +- Literal regexes can now be used in language definitions. +- CoffeeScript highlighting is now significantly more robust and rich due to + input from [Cédric Néhémie][]. + +[Dmitry Medvinsky]: https://github.com/dmedvinsky +[Cédric Néhémie]: https://github.com/abe33 + + +## Version 7.3 + +- Since this version highlight.js no longer works in IE version 8 and older. + It's made it possible to reduce the library size and dramatically improve code + readability and made it easier to maintain. Time to go forward! + +- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and + Brainfuck (by [Evgeny Stepanischev][bolk]). + +- Improvements to existing languages: + + - interpreter prompt in Python (`>>>` and `...`) + - @-properties and classes in CoffeeScript + - E4X in JavaScript (by [Oleg Efimov][oe]) + - new keywords in Perl (by [Kirk Kimmel][kk]) + - big Ruby syntax update (by [Vasily Polovnyov][vast]) + - small fixes in Bash + +- Also Oleg Efimov did a great job of moving all the docs for language and style + developers and contributors from the old wiki under the source code in the + "docs" directory. Now these docs are nicely presented at + . + +[ng]: https://github.com/nathan11g +[dd]: https://github.com/drdrang +[bolk]: https://github.com/bolknote +[oe]: https://github.com/Sannis +[kk]: https://github.com/kimmel +[vast]: https://github.com/vast + + +## Version 7.2 + +A regular bug-fix release without any significant new features. Enjoy! + + +## Version 7.1 + +A Summer crop: + +- [Marc Fornos][mf] made the definition for Clojure along with the matching + style Rainbow (which, of course, works for other languages too). +- CoffeeScript support continues to improve getting support for regular + expressions. +- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the + [project by Chris Kempson][tm0]. +- Thanks to [Casey Duncun][cd] the library can now be built in the popular + [AMD format][amd]. +- And last but not least, we've got a fair number of correctness and consistency + fixes, including a pretty significant refactoring of Ruby. + +[mf]: https://github.com/mfornos +[tm]: http://jmblog.github.com/color-themes-for-highlightjs/ +[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme +[cd]: https://github.com/caseman +[amd]: http://requirejs.org/docs/whyamd.html + + +## Version 7.0 + +The reason for the new major version update is a global change of keyword syntax +which resulted in the library getting smaller once again. For example, the +hosted build is 2K less than at the previous version while supporting two new +languages. + +Notable changes: + +- The library now works not only in a browser but also with [node.js][]. It is + installable with `npm install highlight.js`. [API][] docs are available on our + wiki. + +- The new unique feature (apparently) among syntax highlighters is highlighting + *HTTP* headers and an arbitrary language in the request body. The most useful + languages here are *XML* and *JSON* both of which highlight.js does support. + Here's [the detailed post][p] about the feature. + +- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an + emulation of*XCode* IDE by [Angel Olloqui][ao]. + +- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc] + and *GLSL* by [Sergey Tikhomirov][st]. + +- *Nginx* syntax has become a million times smaller and more universal thanks to + remaking it in a more generic manner that doesn't require listing all the + directives in the known universe. + +- Function titles are now highlighted in *PHP*. + +- *Haskell* and *VHDL* were significantly reworked to be more rich and correct + by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik]. + +And last but not least, many bugs have been fixed around correctness and +language detection. + +Overall highlight.js currently supports 51 languages and 20 style themes. + +[node.js]: http://nodejs.org/ +[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api +[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/ +[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +[ao]: https://github.com/angelolloqui +[ar]: https://github.com/raleksandar +[jc]: https://github.com/jcheng5 +[st]: https://github.com/tikhomirov +[sr]: https://github.com/sourrust +[ik]: https://github.com/ikalnitsky + + +## Version 6.2 + +A lot of things happened in highlight.js since the last version! We've got nine +new contributors, the discussion group came alive, and the main branch on GitHub +now counts more than 350 followers. Here are most significant results coming +from all this activity: + +- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and + experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av], + [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis + Bardadym][db] and [John Crepezzi][jc]. + +- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of + another well-known highlighter Google Code Prettify by [Aahan Krish][ak]. + +- A vast number of [correctness fixes and code refactorings][log], mostly made + by [Oleg Efimov][oe] and [Evgeny Stepanischev][es]. + +[av]: https://github.com/vlasovskikh +[am]: https://github.com/myadzel +[dn]: https://github.com/dnagir +[oe]: https://github.com/Sannis +[db]: https://github.com/btd +[jc]: https://github.com/seejohnrun +[lm]: http://grigio.org/ +[ak]: https://github.com/geekpanth3r +[es]: https://github.com/bolknote +[log]: https://github.com/isagalaev/highlight.js/commits/ + + +## Version 6.1 — Solarized + +[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][] +style theme famous for being based on the intricate color theory to achieve +correct contrast and color perception. It is now available for highlight.js in +both variants — light and dark. + +This version also adds a new original style Arta. Its author pumbur maintains a +[heavily modified fork of highlight.js][pb] on GitHub. + +[jh]: https://github.com/sourrust +[solarized]: http://ethanschoonover.com/solarized +[pb]: https://github.com/pumbur/highlight.js + + +## Version 6.0 + +New major version of the highlighter has been built on a significantly +refactored syntax. Due to this it's even smaller than the previous one while +supporting more languages! + +New languages are: + +- Haskell by [Jeremy Hull][sourrust] +- Erlang in two varieties — module and REPL — made collectively by [Nikolay + Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov] +- Objective C by [Valerii Hiora][vhbit] +- Vala by [Antono Vasiljev][antono] +- Go by [Stephan Kountso][steplg] + +[sourrust]: https://github.com/sourrust +[desh]: http://desh.su/ +[arhibot]: https://github.com/arhibot +[ignatov]: https://github.com/ignatov +[vhbit]: https://github.com/vhbit +[antono]: https://github.com/antono +[steplg]: https://github.com/steplg + +Also this version is marginally faster and fixes a number of small long-standing +bugs. + +Developer overview of the new language syntax is available in a [blog post about +recent beta release][beta]. + +[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/ + +P.S. New version is not yet available on a Yandex' CDN, so for now you have to +download [your own copy][d]. + +[d]: /soft/highlight/en/download/ + + +## Version 5.14 + +Fixed bugs in HTML/XML detection and relevance introduced in previous +refactoring. + +Also test.html now shows the second best result of language detection by +relevance. + + +## Version 5.13 + +Past weekend began with a couple of simple additions for existing languages but +ended up in a big code refactoring bringing along nice improvements for language +developers. + +### For users + +- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard. +- Description of HTML has got new tags from [HTML 5][]. +- CSS-styles have been unified to use consistent padding and also have lost + pop-outs with names of detected languages. +- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake и VHDL. + +This makes total number of languages supported by highlight.js to reach 35. + +Bug fixes: + +- Custom classes on `
` tags are not being overridden anymore
+- More correct highlighting of code blocks inside non-`
` containers:
+  highlighter now doesn't insist on replacing them with its own container and
+  just replaces the contents.
+- Small fixes in browser compatibility and heuristics.
+
+[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
+[html 5]: http://en.wikipedia.org/wiki/HTML5
+[ik]: http://kalnitsky.org.ua/
+
+### For developers
+
+The most significant change is the ability to include language submodes right
+under `contains` instead of defining explicit named submodes in the main array:
+
+    contains: [
+      'string',
+      'number',
+      {begin: '\\n', end: hljs.IMMEDIATE_RE}
+    ]
+
+This is useful for auxiliary modes needed only in one place to define parsing.
+Note that such modes often don't have `className` and hence won't generate a
+separate `` in the resulting markup. This is similar in effect to
+`noMarkup: true`. All existing languages have been refactored accordingly.
+
+Test file test.html has at last become a real test. Now it not only puts the
+detected language name under the code snippet but also tests if it matches the
+expected one. Test summary is displayed right above all language snippets.
+
+
+## CDN
+
+Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
+[Link up][l]!
+
+[yandex]: http://yandex.com/
+[l]: http://softwaremaniacs.org/soft/highlight/en/download/
+
+
+## Version 5.10 — "Paris".
+
+Though I'm on a vacation in Paris, I decided to release a new version with a
+couple of small fixes:
+
+- Tomas Vitvar discovered that TAB replacement doesn't always work when used
+  with custom markup in code
+- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
+
+
+## Version 5.9
+
+A long-awaited version is finally released.
+
+New languages:
+
+- Andrew Fedorov made a definition for Lua
+- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
+  Nginx config
+- [Vladimir Moskva][vm] made a definition for TeX
+
+[pl]: http://kung-fu-tzu.ru/
+[vm]: http://fulc.ru/
+
+Fixes for existing languages:
+
+- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
+  [YARD][] inline documentation
+- the definition of SQL has become more solid and now it shouldn't be overly
+  greedy when it comes to language detection
+
+[ls]: http://gnuu.org/
+[yard]: http://yardoc.org/
+
+The highlighter has become more usable as a library allowing to do highlighting
+from initialization code of JS frameworks and in ajax methods (see.
+readme.eng.txt).
+
+Also this version drops support for the [WordPress][wp] plugin. Everyone is
+welcome to [pick up its maintenance][p] if needed.
+
+[wp]: http://wordpress.org/
+[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
+
+
+## Version 5.8
+
+- Jan Berkel has contributed a definition for Scala. +1 to hotness!
+- All CSS-styles are rewritten to work only inside `
` tags to avoid
+  conflicts with host site styles.
+
+
+## Version 5.7.
+
+Fixed escaping of quotes in VBScript strings.
+
+
+## Version 5.5
+
+This version brings a small change: now .ini-files allow digits, underscores and
+square brackets in key names.
+
+
+## Version 5.4
+
+Fixed small but upsetting bug in the packer which caused incorrect highlighting
+of explicitly specified languages. Thanks to Andrew Fedorov for precise
+diagnostics!
+
+
+## Version 5.3
+
+The version to fulfil old promises.
+
+The most significant change is that highlight.js now preserves custom user
+markup in code along with its own highlighting markup. This means that now it's
+possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
+[initial proposal][1] and for making a proof-of-concept patch.
+
+Also in this version:
+
+- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
+  support for CSS @-rules and Ruby symbols.
+- Yura Zaripov has sent two styles: Brown Paper and School Book.
+- Oleg Volchkov has sent a definition for [Parser 3][p3].
+
+[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
+[p3]: http://www.parser.ru/
+[vp]: http://vasily.polovnyov.ru/
+[vd]: http://dolzhenko.blogspot.com/
+
+
+## Version 5.2
+
+- at last it's possible to replace indentation TABs with something sensible (e.g. 2 or 4 spaces)
+- new keywords and built-ins for 1C by Sergey Baranov
+- a couple of small fixes to Apache highlighting
+
+
+## Version 5.1
+
+This is one of those nice version consisting entirely of new and shiny
+contributions!
+
+- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
+- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
+  original visual style for it is now available for all highlight.js languages
+  under the name "Magula".
+- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
+  languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
+  the matter.
+
+[vooon]: http://vehq.ru/about/
+[rukeba]: http://rukeba.com/
+[drake]: http://drakeguan.org/
+[ke]: http://k-evdokimenko.moikrug.ru/
+
+
+## Version 5.0
+
+The main change in the new major version of highlight.js is a mechanism for
+packing several languages along with the library itself into a single compressed
+file. Now sites using several languages will load considerably faster because
+the library won't dynamically include additional files while loading.
+
+Also this version fixes a long-standing bug with Javascript highlighting that
+couldn't distinguish between regular expressions and division operations.
+
+And as usually there were a couple of minor correctness fixes.
+
+Great thanks to all contributors! Keep using highlight.js.
+
+
+## Version 4.3
+
+This version comes with two contributions from [Jason Diamond][jd]:
+
+- language definition for C# (yes! it was a long-missed thing!)
+- Visual Studio-like highlighting style
+
+Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
+
+[jd]: http://jason.diamond.name/weblog/
+
+
+## Version 4.2
+
+The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
+somewhat experimental meaning that for highlighting "keywords" it doesn't use
+any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
+in parentheses wherever it makes sense. I'd like to ask people programming in
+Lisp to confirm if it's a good idea and send feedback to [the forum][f].
+
+Other changes:
+
+- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
+- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
+  test.html
+- comments now allowed inside Ruby function definition
+- [MEL][] language from [Shuen-Huei Guan][drake]
+- whitespace now allowed between `
` and ``
+- better auto-detection of C++ and PHP
+- HTML allows embedded VBScript (`<% .. %>`)
+
+[f]: http://softwaremaniacs.org/forum/highlightjs/
+[voldmar]: http://voldmar.ya.ru/
+[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
+[drake]: http://drakeguan.org/
+
+
+## Version 4.1
+
+Languages:
+
+- Bash from Vah
+- DOS bat-files from Alexander Makarov (Sam)
+- Diff files from Vasily Polovnyov
+- Ini files from myself though initial idea was from Sam
+
+Styles:
+
+- Zenburn from Vladimir Epifanov, this is an imitation of a
+  [well-known theme for Vim][zenburn].
+- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
+  just one color in only three gradations :-)
+
+In other news. [One small bug][bug] was fixed, built-in keywords were added for
+Python and C++ which improved auto-detection for the latter (it was shame that
+[my wife's blog][alenacpp] had issues with it from time to time). And lastly
+thanks go to Sam for getting rid of my stylistic comments in code that were
+getting in the way of [JSMin][].
+
+[zenburn]: http://en.wikipedia.org/wiki/Zenburn
+[alenacpp]: http://alenacpp.blogspot.com/
+[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
+[jsmin]: http://code.google.com/p/jsmin-php/
+
+
+## Version 4.0
+
+New major version is a result of vast refactoring and of many contributions.
+
+Visible new features:
+
+- Highlighting of embedded languages. Currently is implemented highlighting of
+  Javascript and CSS inside HTML.
+- Bundled 5 ready-made style themes!
+
+Invisible new features:
+
+- Highlight.js no longer pollutes global namespace. Only one object and one
+  function for backward compatibility.
+- Performance is further increased by about 15%.
+
+Changing of a major version number caused by a new format of language definition
+files. If you use some third-party language files they should be updated.
+
+
+## Version 3.5
+
+A very nice version in my opinion fixing a number of small bugs and slightly
+increased speed in a couple of corner cases. Thanks to everybody who reports
+bugs in he [forum][f] and by email!
+
+There is also a new language — XML. A custom XML formerly was detected as HTML
+and didn't highlight custom tags. In this version I tried to make custom XML to
+be detected and highlighted by its own rules. Which by the way include such
+things as CDATA sections and processing instructions (``).
+
+[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
+
+
+## Version 3.3
+
+[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
+File export.html contains a little program that shows and allows to copy and
+paste an HTML code generated by the highlighter for any code snippet. This can
+be useful in situations when one can't use the script itself on a site.
+
+
+[xonix]: http://xonixx.blogspot.com/
+
+
+## Version 3.2 consists completely of contributions:
+
+- Vladimir Gubarkov has described SmallTalk
+- Yuri Ivanov has described 1C
+- Peter Leonov has packaged the highlighter as a Firefox extension
+- Vladimir Ermakov has compiled a mod for phpBB
+
+Many thanks to you all!
+
+
+## Version 3.1
+
+Three new languages are available: Django templates, SQL and Axapta. The latter
+two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
+SQL definition but I'd never started it be it from the ground up :-)
+
+The engine itself has got a long awaited feature of grouping keywords
+("keyword", "built-in function", "literal"). No more hacks!
+
+[1]: http://roudakov.ru/
+
+
+## Version 3.0
+
+It is major mainly because now highlight.js has grown large and has become
+modular. Now when you pass it a list of languages to highlight it will
+dynamically load into a browser only those languages.
+
+Also:
+
+- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
+  RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
+  languages!
+- Heuristics for C++ and HTML got better.
+- I've implemented (at last) a correct handling of backslash escapes in C-like
+  languages.
+
+There is also a small backwards incompatible change in the new version. The
+function initHighlighting that was used to initialize highlighting instead of
+initHighlightingOnLoad a long time ago no longer works. If you by chance still
+use it — replace it with the new one.
+
+[RibKit]: http://ribkit.sourceforge.net/
+
+
+## Version 2.9
+
+Highlight.js is a parser, not just a couple of regular expressions. That said
+I'm glad to announce that in the new version 2.9 has support for:
+
+- in-string substitutions for Ruby -- `#{...}`
+- strings from from numeric symbol codes (like #XX) for Delphi
+
+
+## Version 2.8
+
+A maintenance release with more tuned heuristics. Fully backwards compatible.
+
+
+## Version 2.7
+
+- Nikita Ledyaev presents highlighting for VBScript, yay!
+- A couple of bugs with escaping in strings were fixed thanks to Mickle
+- Ongoing tuning of heuristics
+
+Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
+
+
+## Version 2.4
+
+- Peter Leonov provides another improved highlighting for Perl
+- Javascript gets a new kind of keywords — "literals". These are the words
+  "true", "false" and "null"
+
+Also highlight.js homepage now lists sites that use the library. Feel free to
+add your site by [dropping me a message][mail] until I find the time to build a
+submit form.
+
+[mail]: mailto:Maniac@SoftwareManiacs.Org
+
+
+## Version 2.3
+
+This version fixes IE breakage in previous version. My apologies to all who have
+already downloaded that one!
+
+
+## Version 2.2
+
+- added highlighting for Javascript
+- at last fixed parsing of Delphi's escaped apostrophes in strings
+- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
+  Perl
+
+
+## Version 2.0
+
+- Ruby support by [Anton Kovalyov][ak]
+- speed increased by orders of magnitude due to new way of parsing
+- this same way allows now correct highlighting of keywords in some tricky
+  places (like keyword "End" at the end of Delphi classes)
+
+[ak]: http://anton.kovalyov.net/
+
+
+## Version 1.0
+
+Version 1.0 of javascript syntax highlighter is released!
+
+It's the first version available with English description. Feel free to post
+your comments and question to [highlight.js forum][forum]. And don't be afraid
+if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
+
+[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/LICENSE b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
new file mode 100644
index 0000000000..422deb7350
--- /dev/null
+++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2006, Ivan Sagalaev
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of highlight.js nor the names of its contributors 
+      may be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/README.md b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/README.md
new file mode 100644
index 0000000000..0ee96377ff
--- /dev/null
+++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/README.md
@@ -0,0 +1,167 @@
+# Highlight.js
+
+Highlight.js highlights syntax in code examples on blogs, forums and,
+in fact, on any web page. It's very easy to use because it works
+automatically: finds blocks of code, detects a language, highlights it.
+
+Autodetection can be fine tuned when it fails by itself (see "Heuristics").
+
+
+## Basic usage
+
+Link the library and a stylesheet from your page and hook highlighting to
+the page load event:
+
+```html
+
+
+
+```
+
+This will highlight all code on the page marked up as `
 .. 
`. +If you use different markup or need to apply highlighting dynamically, read +"Custom initialization" below. + +- You can download your own customized version of "highlight.pack.js" or + use the hosted one as described on the download page: + + +- Style themes are available in the download package or as hosted files. + To create a custom style for your site see the class reference in the file + [CSS classes reference][cr] from the downloaded package. + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html + + +## node.js + +Highlight.js can be used under node.js. The package with all supported languages is +installable from NPM: + + npm install highlight.js + +Alternatively, you can build it from the source with only languages you need: + + python3 tools/build.py -tnode lang1 lang2 .. + +Using the library: + +```javascript +var hljs = require('highlight.js'); + +// If you know the language +hljs.highlight(lang, code).value; + +// Automatic language detection +hljs.highlightAuto(code).value; +``` + + +## AMD + +Highlight.js can be used with an AMD loader. You will need to build it from +source in order to do so: + +```bash +$ python3 tools/build.py -tamd lang1 lang2 .. +``` + +Which will generate a `build/highlight.pack.js` which will load as an AMD +module with support for the built languages and can be used like so: + +```javascript +require(["highlight.js/build/highlight.pack"], function(hljs){ + + // If you know the language + hljs.highlight(lang, code).value; + + // Automatic language detection + hljs.highlightAuto(code).value; +}); +``` + + +## Tab replacement + +You can replace TAB ('\x09') characters used for indentation in your code +with some fixed number of spaces or with a `` to give them special +styling: + +```html + +``` + +## Custom initialization + +If you use different markup for code blocks you can initialize them manually +with `highlightBlock(code)` function. It takes a DOM element containing the +code to highlight and optionally a string with which to replace TAB +characters. + +Initialization using, for example, jQuery might look like this: + +```javascript +$(document).ready(function() { + $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); +}); +``` + +You can use `highlightBlock` to highlight blocks dynamically inserted into +the page. Just make sure you don't do it twice for already highlighted +blocks. + +If your code container relies on `
` tags instead of line breaks (i.e. if +it's not `
`) set the `useBR` option to `true`:
+
+```javascript
+hljs.configure({useBR: true});
+$('div.code').each(function(i, e) {hljs.highlightBlock(e)});
+```
+
+
+## Heuristics
+
+Autodetection of a code's language is done using a simple heuristic:
+the program tries to highlight a fragment with all available languages and
+counts all syntactic structures that it finds along the way. The language
+with greatest count wins.
+
+This means that in short fragments the probability of an error is high
+(and it really happens sometimes). In this cases you can set the fragment's
+language explicitly by assigning a class to the `` element:
+
+```html
+
...
+``` + +You can use class names recommended in HTML5: "language-html", +"language-php". Classes also can be assigned to the `
` element.
+
+To disable highlighting of a fragment altogether use "no-highlight" class:
+
+```html
+
...
+``` + + +## Export + +File export.html contains a little program that allows you to paste in a code +snippet and then copy and paste the resulting HTML code generated by the +highlighter. This is useful in situations when you can't use the script itself +on a site. + + +## Meta + +- Version: 8.0 +- URL: http://highlightjs.org/ + +For the license terms see LICENSE files. +For authors and contributors see AUTHORS.en.txt file. diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md new file mode 100644 index 0000000000..0d0e0fea8a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/README.ru.md @@ -0,0 +1,171 @@ +# Highlight.js + +Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах, +форумах и вообще на любых веб-страницах. Пользоваться им очень просто, +потому что работает он автоматически: сам находит блоки кода, сам +определяет язык, сам подсвечивает. + +Автоопределением языка можно управлять, когда оно не справляется само (см. +дальше "Эвристика"). + + +## Простое использование + +Подключите библиотеку и стиль на страницу и повесть вызов подсветки на +загрузку страницы: + +```html + + + +``` + +Весь код на странице, обрамлённый в теги `
 .. 
` +будет автоматически подсвечен. Если вы используете другие теги или хотите +подсвечивать блоки кода динамически, читайте "Инициализацию вручную" ниже. + +- Вы можете скачать собственную версию "highlight.pack.js" или сослаться + на захостенный файл, как описано на странице загрузки: + + +- Стилевые темы можно найти в загруженном архиве или также использовать + захостенные. Чтобы сделать собственный стиль для своего сайта, вам + будет полезен [CSS classes reference][cr], который тоже есть в архиве. + +[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html + + +## node.js + +Highlight.js можно использовать в node.js. Библиотеку со всеми возможными языками можно +установить с NPM: + + npm install highlight.js + +Также её можно собрать из исходников с только теми языками, которые нужны: + + python3 tools/build.py -tnode lang1 lang2 .. + +Использование библиотеки: + +```javascript +var hljs = require('highlight.js'); + +// Если вы знаете язык +hljs.highlight(lang, code).value; + +// Автоопределение языка +hljs.highlightAuto(code).value; +``` + + +## AMD + +Highlight.js можно использовать с загрузчиком AMD-модулей. Для этого его +нужно собрать из исходников следующей командой: + +```bash +$ python3 tools/build.py -tamd lang1 lang2 .. +``` + +Она создаст файл `build/highlight.pack.js`, который является загружаемым +AMD-модулем и содержит все выбранные при сборке языки. Используется он так: + +```javascript +require(["highlight.js/build/highlight.pack"], function(hljs){ + + // Если вы знаете язык + hljs.highlight(lang, code).value; + + // Автоопределение языка + hljs.highlightAuto(code).value; +}); +``` + + +## Замена TABов + +Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на +фиксированное количество пробелов или на отдельный ``, чтобы задать ему +какой-нибудь специальный стиль: + +```html + +``` + + +## Инициализация вручную + +Если вы используете другие теги для блоков кода, вы можете инициализировать их +явно с помощью функции `highlightBlock(code)`. Она принимает DOM-элемент с +текстом расцвечиваемого кода и опционально - строчку для замены символов TAB. + +Например с использованием jQuery код инициализации может выглядеть так: + +```javascript +$(document).ready(function() { + $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); +}); +``` + +`highlightBlock` можно также использовать, чтобы подсветить блоки кода, +добавленные на страницу динамически. Только убедитесь, что вы не делаете этого +повторно для уже раскрашенных блоков. + +Если ваш блок кода использует `
` вместо переводов строки (т.е. если это не +`
`), включите опцию `useBR`:
+
+```javascript
+hljs.configure({useBR: true});
+$('div.code').each(function(i, e) {hljs.highlightBlock(e)});
+```
+
+
+## Эвристика
+
+Определение языка, на котором написан фрагмент, делается с помощью
+довольно простой эвристики: программа пытается расцветить фрагмент всеми
+языками подряд, и для каждого языка считает количество подошедших
+синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
+тот и выбирается.
+
+Это означает, что в коротких фрагментах высока вероятность ошибки, что
+периодически и случается. Чтобы указать язык фрагмента явно, надо написать
+его название в виде класса к элементу ``:
+
+```html
+
...
+``` + +Можно использовать рекомендованные в HTML5 названия классов: +"language-html", "language-php". Также можно назначать классы на элемент +`
`.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+```html
+
...
+``` + + +## Экспорт + +В файле export.html находится небольшая программка, которая показывает и дает +скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода. +Это может понадобится например на сайте, на котором нельзя подключить сам скрипт +highlight.js. + + +## Координаты + +- Версия: 8.0 +- URL: http://highlightjs.org/ + +Лицензионное соглашение читайте в файле LICENSE. +Список авторов и соавторов читайте в файле AUTHORS.ru.txt diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js new file mode 100644 index 0000000000..2f0a664de5 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js @@ -0,0 +1,2 @@ +// %LEAVE_UNMINIFIED% %REMOVE_LINE% +var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("java",function(b){var a="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBLCLM,b.ASM,b.QSM,{bK:"protected public private",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,i:/[:"<>]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(b){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("sql",function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("perl",function(c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"subst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("objectivec",function(a){var d={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign self synchronized id nonatomic super unichar IBOutlet IBAction strong weak @private @protected @public @try @property @end @throw @catch @finally @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";return{k:d,l:c,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}); \ No newline at end of file diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css new file mode 100644 index 0000000000..02db86a279 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/arta.css @@ -0,0 +1,160 @@ +/* +Date: 17.V.2011 +Author: pumbur +*/ + +.hljs +{ + display: block; padding: 0.5em; + background: #222; +} + +.profile .hljs-header *, +.ini .hljs-title, +.nginx .hljs-title +{ + color: #fff; +} + +.hljs-comment, +.hljs-javadoc, +.hljs-preprocessor, +.hljs-preprocessor .hljs-title, +.hljs-pragma, +.hljs-shebang, +.profile .hljs-summary, +.diff, +.hljs-pi, +.hljs-doctype, +.hljs-tag, +.hljs-template_comment, +.css .hljs-rules, +.tex .hljs-special +{ + color: #444; +} + +.hljs-string, +.hljs-symbol, +.diff .hljs-change, +.hljs-regexp, +.xml .hljs-attribute, +.smalltalk .hljs-char, +.xml .hljs-value, +.ini .hljs-value, +.clojure .hljs-attribute, +.coffeescript .hljs-attribute +{ + color: #ffcc33; +} + +.hljs-number, +.hljs-addition +{ + color: #00cc66; +} + +.hljs-built_in, +.hljs-literal, +.vhdl .hljs-typename, +.go .hljs-constant, +.go .hljs-typename, +.ini .hljs-keyword, +.lua .hljs-title, +.perl .hljs-variable, +.php .hljs-variable, +.mel .hljs-variable, +.django .hljs-variable, +.css .funtion, +.smalltalk .method, +.hljs-hexcolor, +.hljs-important, +.hljs-flow, +.hljs-inheritance, +.parser3 .hljs-variable +{ + color: #32AAEE; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.css .hljs-tag, +.css .hljs-class, +.css .hljs-id, +.css .hljs-pseudo, +.css .hljs-attr_selector, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-winutils, +.tex .hljs-command, +.hljs-request, +.hljs-status +{ + color: #6644aa; +} + +.hljs-title, +.ruby .hljs-constant, +.vala .hljs-constant, +.hljs-parent, +.hljs-deletion, +.hljs-template_tag, +.css .hljs-keyword, +.objectivec .hljs-class .hljs-id, +.smalltalk .hljs-class, +.lisp .hljs-keyword, +.apache .hljs-tag, +.nginx .hljs-variable, +.hljs-envvar, +.bash .hljs-variable, +.go .hljs-built_in, +.vbscript .hljs-built_in, +.lua .hljs-built_in, +.rsl .hljs-built_in, +.tail, +.avrasm .hljs-label, +.tex .hljs-formula, +.tex .hljs-formula * +{ + color: #bb1166; +} + +.hljs-yardoctag, +.hljs-phpdoc, +.profile .hljs-header, +.ini .hljs-title, +.apache .hljs-tag, +.parser3 .hljs-title +{ + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata +{ + opacity: 0.6; +} + +.hljs, +.javascript, +.css, +.xml, +.hljs-subst, +.diff .hljs-chunk, +.css .hljs-value, +.css .hljs-attribute, +.lisp .hljs-string, +.lisp .hljs-number, +.tail .hljs-params, +.hljs-container, +.haskell *, +.erlang *, +.erlang_repl * +{ + color: #aaa; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css new file mode 100644 index 0000000000..031c88a0e1 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/ascetic.css @@ -0,0 +1,50 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-filter .hljs-argument, +.hljs-addition, +.hljs-change, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #888; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-shebang, +.hljs-doctype, +.hljs-pi, +.hljs-javadoc, +.hljs-deletion, +.apache .hljs-sqbracket { + color: #CCC; +} + +.hljs-keyword, +.hljs-tag .hljs-title, +.ini .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.http .hljs-title, +.nginx .hljs-title, +.css .hljs-tag, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css new file mode 100644 index 0000000000..277960152e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Dark Comment */ +.hljs-comment, +.hljs-title { + color: #999580; +} + +/* Atelier Dune Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Dark Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Dark Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #292824; + color: #a6a28c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css new file mode 100644 index 0000000000..11c74232cd --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Dune Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Dune Light Comment */ +.hljs-comment, +.hljs-title { + color: #7d7a68; +} + +/* Atelier Dune Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d73737; +} + +/* Atelier Dune Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #b65611; +} + +/* Atelier Dune Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #cfb017; +} + +/* Atelier Dune Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #60ac39; +} + +/* Atelier Dune Light Aqua */ +.css .hljs-hexcolor { + color: #1fad83; +} + +/* Atelier Dune Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6684e1; +} + +/* Atelier Dune Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b854d4; +} + +.hljs { + display: block; + background: #fefbec; + color: #6e6b5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css new file mode 100644 index 0000000000..c1f7211fcf --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9c9491; +} + +/* Atelier Forest Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Dark Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #2c2421; + color: #a8a19f; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css new file mode 100644 index 0000000000..806ba73943 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Forest Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Forest Light Comment */ +.hljs-comment, +.hljs-title { + color: #766e6b; +} + +/* Atelier Forest Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f22c40; +} + +/* Atelier Forest Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #df5320; +} + +/* Atelier Forest Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #d5911a; +} + +/* Atelier Forest Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #5ab738; +} + +/* Atelier Forest Light Aqua */ +.css .hljs-hexcolor { + color: #00ad9c; +} + +/* Atelier Forest Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #407ee7; +} + +/* Atelier Forest Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #6666ea; +} + +.hljs { + display: block; + background: #f1efee; + color: #68615e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css new file mode 100644 index 0000000000..3670669831 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Dark Comment */ +.hljs-comment, +.hljs-title { + color: #9e8f9e; +} + +/* Atelier Heath Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Dark Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #292329; + color: #ab9bab; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css new file mode 100644 index 0000000000..e73a0b8bbc --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Heath Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Heath Light Comment */ +.hljs-comment, +.hljs-title { + color: #776977; +} + +/* Atelier Heath Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ca402b; +} + +/* Atelier Heath Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #a65926; +} + +/* Atelier Heath Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #bb8a35; +} + +/* Atelier Heath Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #379a37; +} + +/* Atelier Heath Light Aqua */ +.css .hljs-hexcolor { + color: #159393; +} + +/* Atelier Heath Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #516aec; +} + +/* Atelier Heath Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #7b59c0; +} + +.hljs { + display: block; + background: #f7f3f7; + color: #695d69; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css new file mode 100644 index 0000000000..8506246db3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #7195a8; +} + +/* Atelier Lakeside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Dark Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #1f292e; + color: #7ea2b4; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css new file mode 100644 index 0000000000..006ae6d91e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Lakeside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Lakeside Light Comment */ +.hljs-comment, +.hljs-title { + color: #5a7b8c; +} + +/* Atelier Lakeside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d22d72; +} + +/* Atelier Lakeside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #935c25; +} + +/* Atelier Lakeside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #8a8a0f; +} + +/* Atelier Lakeside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #568c3b; +} + +/* Atelier Lakeside Light Aqua */ +.css .hljs-hexcolor { + color: #2d8f6f; +} + +/* Atelier Lakeside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #257fad; +} + +/* Atelier Lakeside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #5d5db1; +} + +.hljs { + display: block; + background: #ebf8ff; + color: #516d7b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css new file mode 100644 index 0000000000..cbea6ed4ca --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Dark Comment */ +.hljs-comment, +.hljs-title { + color: #809980; +} + +/* Atelier Seaside Dark Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Dark Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Dark Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Dark Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Dark Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Dark Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Dark Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #242924; + color: #8ca68c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css new file mode 100644 index 0000000000..159121e702 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css @@ -0,0 +1,93 @@ +/* Base16 Atelier Seaside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ +/* https://github.com/jmblog/color-themes-for-highlightjs */ + +/* Atelier Seaside Light Comment */ +.hljs-comment, +.hljs-title { + color: #687d68; +} + +/* Atelier Seaside Light Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #e6193c; +} + +/* Atelier Seaside Light Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #87711d; +} + +/* Atelier Seaside Light Yellow */ +.hljs-ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #c3c322; +} + +/* Atelier Seaside Light Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #29a329; +} + +/* Atelier Seaside Light Aqua */ +.css .hljs-hexcolor { + color: #1999b3; +} + +/* Atelier Seaside Light Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #3d62f5; +} + +/* Atelier Seaside Light Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ad2bee; +} + +.hljs { + display: block; + background: #f0fff0; + color: #5e6e5e; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css new file mode 100644 index 0000000000..f9541c3a4f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_paper.css @@ -0,0 +1,105 @@ +/* + +Brown Paper style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 0.5em; + background:#b7a68e url(./brown_papersq.png); +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-request, +.hljs-status { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #363C69; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-number { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula { + color: #802022; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.8; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png new file mode 100644 index 0000000000..3813903dbf Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/brown_papersq.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css new file mode 100644 index 0000000000..e479d0a6bc --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/dark.css @@ -0,0 +1,105 @@ +/* + +Dark style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #444; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: white; +} + +.hljs, +.hljs-subst { + color: #DDD; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.ini .hljs-title, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.coffeescript .hljs-attribute { + color: #D88; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #777; +} + +.hljs-keyword, +.hljs-literal, +.hljs-title, +.css .hljs-id, +.hljs-phpdoc, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css new file mode 100644 index 0000000000..3d8485b48c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/default.css @@ -0,0 +1,153 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #F0F0F0; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-title, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-constant, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.haml .hljs-symbol, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.tex .hljs-special, +.erlang_repl .hljs-function_or_atom, +.asciidoc .hljs-header, +.markdown .hljs-header, +.coffeescript .hljs-attribute { + color: #800; +} + +.smartquote, +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.asciidoc .hljs-blockquote, +.markdown .hljs-blockquote { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.hljs-hexcolor, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.go .hljs-constant, +.hljs-change, +.lasso .hljs-variable, +.makefile .hljs-variable, +.asciidoc .hljs-bullet, +.markdown .hljs-bullet, +.asciidoc .hljs-link_url, +.markdown .hljs-link_url { + color: #080; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-important, +.hljs-pseudo, +.hljs-pi, +.haml .hljs-bullet, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.erlang_repl .hljs-reserved, +.hljs-prompt, +.asciidoc .hljs-link_label, +.markdown .hljs-link_label, +.vhdl .hljs-attribute, +.clojure .hljs-attribute, +.asciidoc .hljs-attribute, +.lasso .hljs-attribute, +.coffeescript .hljs-property, +.hljs-phony { + color: #88F +} + +.hljs-keyword, +.hljs-id, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.css .hljs-tag, +.hljs-javadoctag, +.hljs-phpdoc, +.hljs-yardoctag, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.go .hljs-typename, +.tex .hljs-command, +.asciidoc .hljs-strong, +.markdown .hljs-strong, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.asciidoc .hljs-emphasis, +.markdown .hljs-emphasis { + font-style: italic; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.lasso .markup, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css new file mode 100644 index 0000000000..993fd268d1 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/docco.css @@ -0,0 +1,132 @@ +/* +Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #f8f8ff +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #408080; + font-style: italic +} + +.hljs-keyword, +.assignment, +.hljs-literal, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + color: #954121; +} + +.hljs-number, +.hljs-hexcolor { + color: #40a070 +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #219161; +} + +.hljs-title, +.hljs-id { + color: #19469D; +} +.hljs-params { + color: #00F; +} + +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-label, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.instancevar, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #B68 +} + +.hljs-class { + color: #458; + font-weight: bold +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-keyword, +.ruby .hljs-symbol .keymethods, +.lisp .hljs-keyword, +.tex .hljs-special, +.input_number { + color: #990073 +} + +.builtin, +.constructor, +.hljs-built_in, +.lisp .hljs-title { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} + +.tex .hljs-formula { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css new file mode 100644 index 0000000000..ecac3c9a09 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/far.css @@ -0,0 +1,113 @@ +/* + +FAR Style (c) MajestiC + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000080; +} + +.hljs, +.hljs-subst { + color: #0FF; +} + +.hljs-string, +.ruby .hljs-string, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.css .hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.clojure .hljs-title, +.coffeescript .hljs-attribute { + color: #FF0; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.hljs-winutils, +.hljs-flow, +.hljs-change, +.hljs-envvar, +.bash .hljs-variable, +.tex .hljs-special, +.clojure .hljs-built_in { + color: #FFF; +} + +.hljs-comment, +.hljs-phpdoc, +.hljs-javadoc, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-deletion, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #888; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.clojure .hljs-attribute { + color: #0F0; +} + +.python .hljs-decorator, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.xml .hljs-pi, +.diff .hljs-header, +.hljs-chunk, +.hljs-shebang, +.nginx .hljs-built_in, +.hljs-prompt { + color: #008080; +} + +.hljs-keyword, +.css .hljs-id, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.hljs-flow, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css new file mode 100644 index 0000000000..bc8d4df426 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/foundation.css @@ -0,0 +1,133 @@ +/* +Description: Foundation 4 docs style for highlight.js +Author: Dan Allen +Website: http://foundation.zurb.com/docs/ +Version: 1.0 +Date: 2013-04-02 +*/ + +.hljs { + display: block; padding: 0.5em; + background: #eee; +} + +.hljs-header, +.hljs-decorator, +.hljs-annotation { + color: #000077; +} + +.hljs-horizontal_rule, +.hljs-link_url, +.hljs-emphasis, +.hljs-attribute { + color: #070; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-link_label, +.hljs-strong, +.hljs-value, +.hljs-string, +.scss .hljs-value .hljs-string { + color: #d14; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-blockquote, +.hljs-comment { + color: #998; + font-style: italic; +} + +.asciidoc .hljs-title, +.hljs-function .hljs-title { + color: #900; +} + +.hljs-class { + color: #458; +} + +.hljs-id, +.hljs-pseudo, +.hljs-constant, +.hljs-hexcolor { + color: teal; +} + +.hljs-variable { + color: #336699; +} + +.hljs-bullet, +.hljs-javadoc { + color: #997700; +} + +.hljs-pi, +.hljs-doctype { + color: #3344bb; +} + +.hljs-code, +.hljs-number { + color: #099; +} + +.hljs-important { + color: #f00; +} + +.smartquote, +.hljs-label { + color: #970; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #579; +} + +.hljs-reserved, +.hljs-keyword, +.scss .hljs-value { + color: #000; +} + +.hljs-regexp { + background-color: #fff0ff; + color: #880088; +} + +.hljs-symbol { + color: #990073; +} + +.hljs-symbol .hljs-string { + color: #a60; +} + +.hljs-tag { + color: #007700; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #088; +} + +.hljs-at_rule .hljs-preprocessor { + color: #808; +} + +.scss .hljs-tag, +.scss .hljs-attribute { + color: #339; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css new file mode 100644 index 0000000000..71967a3739 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/github.css @@ -0,0 +1,125 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #333; + background: #f8f8f8 +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #998; + font-style: italic +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.nginx .hljs-title, +.hljs-subst, +.hljs-request, +.hljs-status { + color: #333; + font-weight: bold +} + +.hljs-number, +.hljs-hexcolor, +.ruby .hljs-constant { + color: #099; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #d14 +} + +.hljs-title, +.hljs-id, +.coffeescript .hljs-params, +.scss .hljs-preprocessor { + color: #900; + font-weight: bold +} + +.javascript .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.vhdl .hljs-literal, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #009926 +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.lisp .hljs-keyword, +.tex .hljs-special, +.hljs-prompt { + color: #990073 +} + +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css new file mode 100644 index 0000000000..45b8b3bf67 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/googlecode.css @@ -0,0 +1,147 @@ +/* + +Google Code style (c) Aahan Krish + +*/ + +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #800; +} + +.hljs-keyword, +.method, +.hljs-list .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp, +.coffeescript .hljs-attribute { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-literal, +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-attribute { + color: #066; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.hljs-variable, +.clojure .hljs-title { + color: #606; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #444; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css new file mode 100644 index 0000000000..77352f4bb3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/idea.css @@ -0,0 +1,122 @@ +/* + +Intellij Idea-like styling (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.diff .hljs-header { + color: #808080; + font-style: italic; +} + +.hljs-annotation, +.hljs-decorator, +.hljs-preprocessor, +.hljs-pragma, +.hljs-doctype, +.hljs-pi, +.hljs-chunk, +.hljs-shebang, +.apache .hljs-cbracket, +.hljs-prompt, +.http .hljs-title { + color: #808000; +} + +.hljs-tag, +.hljs-pi { + background: #efefef; +} + +.hljs-tag .hljs-title, +.hljs-id, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-literal, +.hljs-keyword, +.hljs-hexcolor, +.css .hljs-function, +.ini .hljs-title, +.css .hljs-class, +.hljs-list .hljs-title, +.clojure .hljs-title, +.nginx .hljs-title, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-rules .hljs-keyword, +.hljs-number, +.hljs-date, +.hljs-regexp, +.tex .hljs-special { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp { + font-weight: normal; +} + +.hljs-string, +.hljs-value, +.hljs-filter .hljs-argument, +.css .hljs-function .hljs-params, +.apache .hljs-tag { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-char, +.tex .hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-phpdoc, +.hljs-yardoctag, +.hljs-javadoctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-envvar, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.diff .hljs-change { + background: #bccff9; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css new file mode 100644 index 0000000000..cc64ef5c5b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/ir_black.css @@ -0,0 +1,105 @@ +/* + IR_Black style (c) Vasily Mikhailitchenko +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-shebang, +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #7c7c7c; +} + +.hljs-keyword, +.hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #96CBFE; +} + +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title, +.nginx .hljs-title { + color: #FFFFB6; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.coffeescript .hljs-attribute { + color: #A8FF60; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-decorator, +.tex .hljs-special, +.haskell .hljs-type, +.hljs-constant, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.nginx .hljs-built_in { + color: #FFFFB6; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number, +.hljs-variable, +.vbscript, +.hljs-literal { + color: #C6C5FE; +} + +.css .hljs-tag { + color: #96CBFE; +} + +.css .hljs-rules .hljs-property, +.css .hljs-id { + color: #FFFFB6; +} + +.css .hljs-class { + color: #FFF; +} + +.hljs-hexcolor { + color: #C6C5FE; +} + +.hljs-number { + color:#FF73FD; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css new file mode 100644 index 0000000000..cafe3d3ee2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/magula.css @@ -0,0 +1,123 @@ +/* +Description: Magula style for highligh.js +Author: Ruslan Keba +Website: http://rukeba.com/ +Version: 1.0 +Date: 2009-01-03 +Music: Aphex Twin / Xtal +*/ + +.hljs { + display: block; padding: 0.5em; + background-color: #f4f4f4; +} + +.hljs, +.hljs-subst, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.bash .hljs-variable, +.apache .hljs-cbracket, +.coffeescript .hljs-attribute { + color: #050; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk { + color: #777; +} + +.hljs-number, +.hljs-date, +.hljs-regexp, +.hljs-literal, +.smalltalk .hljs-symbol, +.smalltalk .hljs-char, +.hljs-change, +.tex .hljs-special { + color: #800; +} + +.hljs-label, +.hljs-javadoc, +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-formula, +.hljs-prompt, +.clojure .hljs-attribute { + color: #00e; +} + +.hljs-keyword, +.hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-built_in, +.hljs-aggregate, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.xml .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; + color: navy; +} + +.nginx .hljs-built_in { + font-weight: normal; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +/* --- */ +.apache .hljs-tag { + font-weight: bold; + color: blue; +} + diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css new file mode 100644 index 0000000000..4152d82d6d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/mono-blue.css @@ -0,0 +1,62 @@ +/* + Five-color theme from a single blue hue. +*/ +.hljs { + display: block; padding: 0.5em; + background: #EAEEF3; color: #00193A; +} + +.hljs-keyword, +.hljs-title, +.hljs-important, +.hljs-request, +.hljs-header, +.hljs-javadoctag { + font-weight: bold; +} + +.hljs-comment, +.hljs-chunk, +.hljs-template_comment { + color: #738191; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-built_in, +.hljs-literal, +.hljs-filename, +.hljs-value, +.hljs-addition, +.hljs-tag, +.hljs-argument, +.hljs-link_label, +.hljs-blockquote, +.hljs-header { + color: #0048AB; +} + +.hljs-decorator, +.hljs-prompt, +.hljs-yardoctag, +.hljs-subst, +.hljs-symbol, +.hljs-doctype, +.hljs-regexp, +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-attribute, +.hljs-attr_selector, +.hljs-javadoc, +.hljs-xmlDocTag, +.hljs-deletion, +.hljs-shebang, +.hljs-string .hljs-variable, +.hljs-link_url, +.hljs-bullet, +.hljs-sqbracket, +.hljs-phony { + color: #4C81C9; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css new file mode 100644 index 0000000000..4e49befdd3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai.css @@ -0,0 +1,127 @@ +/* +Monokai style - ported by Luigi Maselli - http://grigio.org +*/ + +.hljs { + display: block; padding: 0.5em; + background: #272822; +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-keyword, +.hljs-literal, +.hljs-strong, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color: #F92672; +} + +.hljs { + color: #DDD; +} + +.hljs .hljs-constant, +.asciidoc .hljs-code { + color: #66D9EF; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-link_label, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-value, +.hljs-regexp { + color: #BF79DB; +} + +.hljs-link_url, +.hljs-tag .hljs-value, +.hljs-string, +.hljs-bullet, +.hljs-subst, +.hljs-title, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #A6E22E; +} + +.hljs-comment, +.java .hljs-annotation, +.smartquote, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715E; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css new file mode 100644 index 0000000000..7b0eb2e377 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css @@ -0,0 +1,149 @@ +/* + +Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #23241f; +} + +.hljs, +.hljs-tag, +.css .hljs-rules, +.css .hljs-value, +.css .hljs-function +.hljs-preprocessor, +.hljs-pragma { + color: #f8f8f2; +} + +.hljs-strongemphasis, +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-blockquote, +.hljs-horizontal_rule, +.hljs-number, +.hljs-regexp, +.alias .hljs-keyword, +.hljs-literal, +.hljs-hexcolor { + color: #ae81ff; +} + +.hljs-tag .hljs-value, +.hljs-code, +.hljs-title, +.css .hljs-class, +.hljs-class .hljs-title:last-child { + color: #a6e22e; +} + +.hljs-link_url { + font-size: 80%; +} + +.hljs-strong, +.hljs-strongemphasis { + font-weight: bold; +} + +.hljs-emphasis, +.hljs-strongemphasis, +.hljs-class .hljs-title:last-child { + font-style: italic; +} + +.hljs-keyword, +.hljs-function, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special, +.hljs-header, +.hljs-attribute, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-tag .hljs-title, +.hljs-value, +.alias .hljs-keyword:first-child, +.css .hljs-tag, +.css .unit, +.css .hljs-important { + color: #F92672; +} + +.hljs-function .hljs-keyword, +.hljs-class .hljs-keyword:first-child, +.hljs-constant, +.css .hljs-attribute { + color: #66d9ef; +} + +.hljs-variable, +.hljs-params, +.hljs-class .hljs-title { + color: #f8f8f2; +} + +.hljs-string, +.css .hljs-id, +.hljs-subst, +.haskell .hljs-type, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt, +.hljs-link_label, +.hljs-link_url { + color: #e6db74; +} + +.hljs-comment, +.hljs-javadoc, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #75715e; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata, +.xml .php, +.php .xml { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css new file mode 100644 index 0000000000..1174e4c1c2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/obsidian.css @@ -0,0 +1,154 @@ +/** + * Obsidian style + * ported by Alexander Marenin (http://github.com/ioncreature) + */ + +.hljs { + display: block; padding: 0.5em; + background: #282B2E; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.css .hljs-id, +.tex .hljs-special { + color: #93C763; +} + +.hljs-number { + color: #FFCD22; +} + +.hljs { + color: #E0E2E4; +} + +.css .hljs-tag, +.css .hljs-pseudo { + color: #D0D2B5; +} + +.hljs-attribute, +.hljs .hljs-constant { + color: #668BB0; +} + +.xml .hljs-attribute { + color: #B3B689; +} + +.xml .hljs-tag .hljs-value { + color: #E8E2B7; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-class, +.hljs-hexcolor { + color: #93C763; +} + +.hljs-regexp { + color: #D39745; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #A082BD; +} + +.hljs-doctype { + color: #557182; +} + +.hljs-link_url, +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-bullet, +.hljs-subst, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #8CBBAD; +} + +.hljs-string { + color: #EC7600; +} + +.hljs-comment, +.java .hljs-annotation, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #818E96; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-at_rule .hljs-keyword, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css new file mode 100644 index 0000000000..bbbccdd549 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css @@ -0,0 +1,93 @@ +/* + Paraíso (dark) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #8d8687; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #2f1e2e; + color: #a39e9b; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css new file mode 100644 index 0000000000..494fcb4cb1 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/paraiso.light.css @@ -0,0 +1,93 @@ +/* + Paraíso (light) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-title { + color: #776e71; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99b15; +} + +/* Paraíso Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #48b685; +} + +/* Paraíso Aqua */ +.css .hljs-hexcolor { + color: #5bc4bf; +} + +/* Paraíso Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #06b6ef; +} + +/* Paraíso Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #815ba4; +} + +.hljs { + display: block; + background: #e7e9db; + color: #4f424c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css new file mode 100644 index 0000000000..6ee925defd --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.css @@ -0,0 +1,106 @@ +/* + +Pojoaque Style by Jason Tate +http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html +Based on Solarized Style from http://ethanschoonover.com/solarized + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #DCCF8F; + background: url(./pojoaque.jpg) repeat scroll left top #181914; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; + font-style: italic; +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.method, +.hljs-addition, +.css .hljs-tag, +.clojure .hljs-title, +.nginx .hljs-title { + color: #B64926; +} + +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #468966; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in, +.hljs-identifier, +.hljs-id { + color: #FFB03B; +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type { + color: #b58900; +} + +.css .hljs-attribute { + color: #b89859; +} + +.css .hljs-number, +.css .hljs-hexcolor { + color: #DCCF8F; +} + +.css .hljs-class { + color: #d3a60c; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #cb4b16; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg new file mode 100644 index 0000000000..9c07d4ab40 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css new file mode 100644 index 0000000000..6a38064446 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/railscasts.css @@ -0,0 +1,182 @@ +/* + +Railscasts-like style (c) Visoft, Inc. (Damien White) + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #232323; + color: #E6E1DC; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-shebang { + color: #BC9458; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.method, +.hljs-list .hljs-title { + color: #C26230; +} + +.hljs-string, +.hljs-number, +.hljs-regexp, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.markdown .hljs-link_label { + color: #A5C261; +} + +.hljs-subst { + color: #519F50; +} + +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-tag .hljs-title, +.hljs-doctype, +.hljs-sub .hljs-identifier, +.hljs-pi, +.input_number { + color: #E8BF6A; +} + +.hljs-identifier { + color: #D0D0FF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: none; +} + +.hljs-constant { + color: #DA4939; +} + + +.hljs-symbol, +.hljs-built_in, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-identifier, +.markdown .hljs-link_url, +.hljs-attribute { + color: #6D9CBE; +} + +.markdown .hljs-link_url { + text-decoration: underline; +} + + + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #D0D0FF; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #8996A8 !important; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #A5C261; +} + +.hljs-title, +.hljs-decorator, +.css .hljs-function { + color: #FFC66D; +} + +.diff .hljs-header, +.hljs-chunk { + background-color: #2F33AB; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; + display: inline-block; + width: 100%; +} + +.hljs-addition { + background-color: #144212; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #600; + color: #E6E1DC; + display: inline-block; + width: 100%; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.7; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css new file mode 100644 index 0000000000..d9ffef6d1d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/rainbow.css @@ -0,0 +1,112 @@ +/* + +Style with support for rainbow parens + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #474949; color: #D1D9E1; +} + + +.hljs-body, +.hljs-collection { + color: #D1D9E1; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.lisp .hljs-string, +.hljs-javadoc { + color: #969896; + font-style: italic; +} + +.hljs-keyword, +.clojure .hljs-attribute, +.hljs-winutils, +.javascript .hljs-title, +.hljs-addition, +.css .hljs-tag { + color: #cc99cc; +} + +.hljs-number { color: #f99157; } + +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor { + color: #8abeb7; +} + +.hljs-title, +.hljs-localvars, +.hljs-function .hljs-title, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.lisp .hljs-title, +.hljs-identifier +{ + color: #b5bd68; +} + +.hljs-class .hljs-keyword +{ + color: #f2777a; +} + +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-label, +.hljs-id, +.lisp .hljs-title, +.clojure .hljs-title .hljs-built_in { + color: #ffcc66; +} + +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword, +.clojure .hljs-title .hljs-built_in { + font-weight: bold; +} + +.hljs-attribute, +.clojure .hljs-title { + color: #81a2be; +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-important, +.hljs-subst, +.hljs-cdata { + color: #f99157; +} + +.hljs-deletion { + color: #dc322f; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css new file mode 100644 index 0000000000..98a3bd27d5 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.css @@ -0,0 +1,113 @@ +/* + +School Book style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; padding: 15px 0.5em 0.5em 30px; + font-size: 11px !important; + line-height:16px !important; +} + +pre{ + background:#f6f6ae url(./school_book.png); + border-top: solid 2px #d2e8b9; + border-bottom: solid 1px #d2e8b9; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.tex .hljs-special { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst, +.hljs-tag .hljs-keyword { + color: #3E5915; +} + +.hljs-string, +.hljs-title, +.haskell .hljs-type, +.hljs-tag .hljs-value, +.css .hljs-rules .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.sql .hljs-aggregate, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.ruby .hljs-string, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.nginx .hljs-built_in, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #2C009F; +} + +.hljs-comment, +.java .hljs-annotation, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket { + color: #E60415; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.sql .hljs-aggregate, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.xml .hljs-tag .hljs-title, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-command, +.hljs-request, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png new file mode 100644 index 0000000000..956e9790a0 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/school_book.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css new file mode 100644 index 0000000000..f520533f26 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_dark.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #002b36; + color: #839496; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #586e75; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #073642; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css new file mode 100644 index 0000000000..ad7047414d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/solarized_light.css @@ -0,0 +1,107 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + padding: 0.5em; + background: #fdf6e3; + color: #657b83; +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-doctype, +.hljs-pi, +.lisp .hljs-string, +.hljs-javadoc { + color: #93a1a1; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-winutils, +.method, +.hljs-addition, +.css .hljs-tag, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-command, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula, +.hljs-regexp, +.hljs-hexcolor, +.hljs-link_url { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-localvars, +.hljs-chunk, +.hljs-decorator, +.hljs-built_in, +.hljs-identifier, +.vhdl .hljs-literal, +.hljs-id, +.css .hljs-function { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body, +.smalltalk .hljs-number, +.hljs-constant, +.hljs-class .hljs-title, +.hljs-parent, +.haskell .hljs-type, +.hljs-link_reference { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-preprocessor, +.hljs-preprocessor .hljs-keyword, +.hljs-pragma, +.hljs-shebang, +.hljs-symbol, +.hljs-symbol .hljs-string, +.diff .hljs-change, +.hljs-special, +.hljs-attr_selector, +.hljs-subst, +.hljs-cdata, +.clojure .hljs-title, +.css .hljs-pseudo, +.hljs-header { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-deletion, +.hljs-important { + color: #dc322f; +} + +/* Solarized Violet */ +.hljs-link_label { + color: #6c71c4; +} + +.tex .hljs-formula { + background: #eee8d5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css new file mode 100644 index 0000000000..07b30c2435 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/sunburst.css @@ -0,0 +1,160 @@ +/* + +Sunburst-like style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #000; color: #f8f8f8; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.ruby .hljs-function .hljs-keyword, +.hljs-request, +.hljs-status, +.nginx .hljs-title { + color: #E28964; +} + +.hljs-function .hljs-keyword, +.hljs-sub .hljs-keyword, +.method, +.hljs-list .hljs-title { + color: #99CF50; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.tex .hljs-command, +.coffeescript .hljs-attribute { + color: #65B042; +} + +.hljs-subst { + color: #DAEFA3; +} + +.hljs-regexp { + color: #E9C062; +} + +.hljs-title, +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.hljs-shebang, +.hljs-prompt { + color: #89BDFF; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc { + text-decoration: underline; +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-number { + color: #3387CC; +} + +.hljs-params, +.hljs-variable, +.clojure .hljs-attribute { + color: #3E87E3; +} + +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.tex .hljs-special { + color: #CDA869; +} + +.css .hljs-class { + color: #9B703F; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-rules .hljs-value { + color: #CF6A4C; +} + +.css .hljs-id { + color: #8B98AB; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-pragma { + color: #8996A8; +} + +.hljs-hexcolor, +.css .hljs-value .hljs-number { + color: #DD7B3B; +} + +.css .hljs-function { + color: #DAD085; +} + +.diff .hljs-header, +.hljs-chunk, +.tex .hljs-formula { + background-color: #0E2231; + color: #F8F8F8; + font-style: italic; +} + +.diff .hljs-change { + background-color: #4A410D; + color: #F8F8F8; +} + +.hljs-addition { + background-color: #253B22; + color: #F8F8F8; +} + +.hljs-deletion { + background-color: #420E09; + color: #F8F8F8; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css new file mode 100644 index 0000000000..dfe2675241 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Blue Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #7285b7; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #ff9da4; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #ffc58f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffeead; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #d1f1a9; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #99ffff; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #bbdaff; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #ebbbff; +} + +.hljs { + display: block; + background: #002451; + color: white; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css new file mode 100644 index 0000000000..4ad5d25f41 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Bright Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #d54e53; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #e78c45; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #e7c547; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b9ca4a; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #70c0b1; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #7aa6da; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #c397d8; +} + +.hljs { + display: block; + background: black; + color: #eaeaea; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css new file mode 100644 index 0000000000..08b49c623c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css @@ -0,0 +1,92 @@ +/* Tomorrow Night Eighties Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #999999; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #f2777a; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f99157; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #ffcc66; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #99cc99; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #66cccc; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #6699cc; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #cc99cc; +} + +.hljs { + display: block; + background: #2d2d2d; + color: #cccccc; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css new file mode 100644 index 0000000000..c269b17e75 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css @@ -0,0 +1,93 @@ +/* Tomorrow Night Theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #de935f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #b5bd68; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #8abeb7; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #b294bb; +} + +.hljs { + display: block; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css new file mode 100644 index 0000000000..3bdead6036 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/tomorrow.css @@ -0,0 +1,90 @@ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-title { + color: #8e908c; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-attribute, +.hljs-tag, +.hljs-regexp, +.ruby .hljs-constant, +.xml .hljs-tag .hljs-title, +.xml .hljs-pi, +.xml .hljs-doctype, +.html .hljs-doctype, +.css .hljs-id, +.css .hljs-class, +.css .hljs-pseudo { + color: #c82829; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.hljs-literal, +.hljs-params, +.hljs-constant { + color: #f5871f; +} + +/* Tomorrow Yellow */ +.ruby .hljs-class .hljs-title, +.css .hljs-rules .hljs-attribute { + color: #eab700; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-value, +.hljs-inheritance, +.hljs-header, +.ruby .hljs-symbol, +.xml .hljs-cdata { + color: #718c00; +} + +/* Tomorrow Aqua */ +.css .hljs-hexcolor { + color: #3e999f; +} + +/* Tomorrow Blue */ +.hljs-function, +.python .hljs-decorator, +.python .hljs-title, +.ruby .hljs-function .hljs-title, +.ruby .hljs-title .hljs-keyword, +.perl .hljs-sub, +.javascript .hljs-title, +.coffeescript .hljs-title { + color: #4271ae; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.javascript .hljs-function { + color: #8959a8; +} + +.hljs { + display: block; + background: white; + color: #4d4d4c; + padding: 0.5em; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css new file mode 100644 index 0000000000..bf33f0fb67 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/vs.css @@ -0,0 +1,89 @@ +/* + +Visual Studio-like style based on original C# coloring by Jason Diamond + +*/ +.hljs { + display: block; padding: 0.5em; + background: white; color: black; +} + +.hljs-comment, +.hljs-annotation, +.hljs-template_comment, +.diff .hljs-header, +.hljs-chunk, +.apache .hljs-cbracket { + color: #008000; +} + +.hljs-keyword, +.hljs-id, +.hljs-built_in, +.smalltalk .hljs-class, +.hljs-winutils, +.bash .hljs-variable, +.tex .hljs-command, +.hljs-request, +.hljs-status, +.nginx .hljs-title, +.xml .hljs-tag, +.xml .hljs-tag .hljs-value { + color: #00f; +} + +.hljs-string, +.hljs-title, +.hljs-parent, +.hljs-tag .hljs-value, +.hljs-rules .hljs-value, +.hljs-rules .hljs-value .hljs-number, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.hljs-aggregate, +.hljs-template_tag, +.django .hljs-variable, +.hljs-addition, +.hljs-flow, +.hljs-stream, +.apache .hljs-tag, +.hljs-date, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #a31515; +} + +.ruby .hljs-string, +.hljs-decorator, +.hljs-filter .hljs-argument, +.hljs-localvars, +.hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-pi, +.hljs-doctype, +.hljs-deletion, +.hljs-envvar, +.hljs-shebang, +.hljs-preprocessor, +.hljs-pragma, +.userType, +.apache .hljs-sqbracket, +.nginx .hljs-built_in, +.tex .hljs-special, +.hljs-prompt { + color: #2b91af; +} + +.hljs-phpdoc, +.hljs-javadoc, +.hljs-xmlDocTag { + color: #808080; +} + +.vhdl .hljs-typename { font-weight: bold; } +.vhdl .hljs-string { color: #666666; } +.vhdl .hljs-literal { color: #a31515; } +.vhdl .hljs-attribute { color: #00B0E8; } + +.xml .hljs-attribute { color: #f00; } diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css new file mode 100644 index 0000000000..57bd748e0a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/xcode.css @@ -0,0 +1,158 @@ +/* + +XCode style (c) Angel Garcia + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #fff; color: black; +} + +.hljs-comment, +.hljs-template_comment, +.hljs-javadoc, +.hljs-comment * { + color: #006a00; +} + +.hljs-keyword, +.hljs-literal, +.nginx .hljs-title { + color: #aa0d91; +} +.method, +.hljs-list .hljs-title, +.hljs-tag .hljs-title, +.setting .hljs-value, +.hljs-winutils, +.tex .hljs-command, +.http .hljs-title, +.hljs-request, +.hljs-status { + color: #008; +} + +.hljs-envvar, +.tex .hljs-special { + color: #660; +} + +.hljs-string { + color: #c41a16; +} +.hljs-tag .hljs-value, +.hljs-cdata, +.hljs-filter .hljs-argument, +.hljs-attr_selector, +.apache .hljs-cbracket, +.hljs-date, +.hljs-regexp { + color: #080; +} + +.hljs-sub .hljs-identifier, +.hljs-pi, +.hljs-tag, +.hljs-tag .hljs-keyword, +.hljs-decorator, +.ini .hljs-title, +.hljs-shebang, +.hljs-prompt, +.hljs-hexcolor, +.hljs-rules .hljs-value, +.css .hljs-value .hljs-number, +.hljs-symbol, +.hljs-symbol .hljs-string, +.hljs-number, +.css .hljs-function, +.clojure .hljs-title, +.clojure .hljs-built_in, +.hljs-function .hljs-title, +.coffeescript .hljs-attribute { + color: #1c00cf; +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.smalltalk .hljs-class, +.hljs-javadoctag, +.hljs-yardoctag, +.hljs-phpdoc, +.hljs-typename, +.hljs-tag .hljs-attribute, +.hljs-doctype, +.hljs-class .hljs-id, +.hljs-built_in, +.setting, +.hljs-params, +.clojure .hljs-attribute { + color: #5c2699; +} + +.hljs-variable { + color: #3f6e74; +} +.css .hljs-tag, +.hljs-rules .hljs-property, +.hljs-pseudo, +.hljs-subst { + color: #000; +} + +.css .hljs-class, +.css .hljs-id { + color: #9B703F; +} + +.hljs-value .hljs-important { + color: #ff7700; + font-weight: bold; +} + +.hljs-rules .hljs-keyword { + color: #C5AF75; +} + +.hljs-annotation, +.apache .hljs-sqbracket, +.nginx .hljs-built_in { + color: #9B859D; +} + +.hljs-preprocessor, +.hljs-preprocessor *, +.hljs-pragma { + color: #643820; +} + +.tex .hljs-formula { + background-color: #EEE; + font-style: italic; +} + +.diff .hljs-header, +.hljs-chunk { + color: #808080; + font-weight: bold; +} + +.diff .hljs-change { + background-color: #BCCFF9; +} + +.hljs-addition { + background-color: #BAEEBA; +} + +.hljs-deletion { + background-color: #FFC8BD; +} + +.hljs-comment .hljs-yardoctag { + font-weight: bold; +} + +.method .hljs-id { + color: #000; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css new file mode 100644 index 0000000000..f6cb0983a7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/lib/highlight/styles/zenburn.css @@ -0,0 +1,117 @@ +/* + +Zenburn style from voldmar.ru (c) Vladimir Epifanov +based on dark.css by Ivan Sagalaev + +*/ + +.hljs { + display: block; padding: 0.5em; + background: #3F3F3F; + color: #DCDCDC; +} + +.hljs-keyword, +.hljs-tag, +.css .hljs-class, +.css .hljs-id, +.lisp .hljs-title, +.nginx .hljs-title, +.hljs-request, +.hljs-status, +.clojure .hljs-attribute { + color: #E3CEAB; +} + +.django .hljs-template_tag, +.django .hljs-variable, +.django .hljs-filter .hljs-argument { + color: #DCDCDC; +} + +.hljs-number, +.hljs-date { + color: #8CD0D3; +} + +.dos .hljs-envvar, +.dos .hljs-stream, +.hljs-variable, +.apache .hljs-sqbracket { + color: #EFDCBC; +} + +.dos .hljs-flow, +.diff .hljs-change, +.python .exception, +.python .hljs-built_in, +.hljs-literal, +.tex .hljs-special { + color: #EFEFAF; +} + +.diff .hljs-chunk, +.hljs-subst { + color: #8F8F8F; +} + +.dos .hljs-keyword, +.python .hljs-decorator, +.hljs-title, +.haskell .hljs-type, +.diff .hljs-header, +.ruby .hljs-class .hljs-parent, +.apache .hljs-tag, +.nginx .hljs-built_in, +.tex .hljs-command, +.hljs-prompt { + color: #efef8f; +} + +.dos .hljs-winutils, +.ruby .hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-string { + color: #DCA3A3; +} + +.diff .hljs-deletion, +.hljs-string, +.hljs-tag .hljs-value, +.hljs-preprocessor, +.hljs-pragma, +.hljs-built_in, +.sql .hljs-aggregate, +.hljs-javadoc, +.smalltalk .hljs-class, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.css .hljs-rules .hljs-value, +.hljs-attr_selector, +.hljs-pseudo, +.apache .hljs-cbracket, +.tex .hljs-formula, +.coffeescript .hljs-attribute { + color: #CC9393; +} + +.hljs-shebang, +.diff .hljs-addition, +.hljs-comment, +.java .hljs-annotation, +.hljs-template_comment, +.hljs-pi, +.hljs-doctype { + color: #7F9F7F; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/plugin.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/plugin.js new file mode 100644 index 0000000000..532ecc3cc3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/plugin.js @@ -0,0 +1,488 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +/** + * @fileOverview Rich code snippets for CKEditor. + */ + +'use strict'; + +( function() { + CKEDITOR.plugins.add( 'codesnippet', { + requires: 'widget,dialog', + // jscs:disable maximumLineLength + lang: 'ar,az,bg,ca,cs,da,de,de-ch,el,en,en-au,en-gb,eo,es,es-mx,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lt,lv,nb,nl,no,oc,pl,pt,pt-br,ro,ru,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + // jscs:enable maximumLineLength + icons: 'codesnippet', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + + isSupportedEnvironment: function() { + return !CKEDITOR.env.ie || CKEDITOR.env.version > 8; + }, + + beforeInit: function( editor ) { + editor._.codesnippet = {}; + + /** + * Sets the custom syntax highlighter. See {@link CKEDITOR.plugins.codesnippet.highlighter} + * to learn how to register a custom highlighter. + * + * **Note**: + * + * * This method can only be called while initialising plugins (in one of + * the three callbacks). + * * This method is accessible through the `editor.plugins.codesnippet` namespace only. + * + * @since 4.4.0 + * @member CKEDITOR.plugins.codesnippet + * @param {CKEDITOR.plugins.codesnippet.highlighter} highlighter + */ + this.setHighlighter = function( highlighter ) { + editor._.codesnippet.highlighter = highlighter; + + var langs = editor._.codesnippet.langs = + editor.config.codeSnippet_languages || highlighter.languages; + + // We might escape special regex chars below, but we expect that there + // should be no crazy values used as lang keys. + editor._.codesnippet.langsRegex = new RegExp( '(?:^|\\s)language-(' + + CKEDITOR.tools.object.keys( langs ).join( '|' ) + ')(?:\\s|$)' ); + }; + + editor.once( 'pluginsLoaded', function() { + // Remove the method once it cannot be used, because it leaks the editor reference (#589). + this.setHighlighter = null; + }, this ); + }, + + onLoad: function() { + CKEDITOR.dialog.add( 'codeSnippet', this.path + 'dialogs/codesnippet.js' ); + }, + + init: function( editor ) { + editor.ui.addButton && editor.ui.addButton( 'CodeSnippet', { + label: editor.lang.codesnippet.button, + command: 'codeSnippet', + toolbar: 'insert,10' + } ); + }, + + afterInit: function( editor ) { + var path = this.path; + + registerWidget( editor ); + + // At the very end, if no custom highlighter was set so far (by plugin#setHighlighter) + // we will set default one. + if ( !editor._.codesnippet.highlighter ) { + var hljsHighlighter = new CKEDITOR.plugins.codesnippet.highlighter( { + languages: { + apache: 'Apache', + bash: 'Bash', + coffeescript: 'CoffeeScript', + cpp: 'C++', + cs: 'C#', + css: 'CSS', + diff: 'Diff', + html: 'HTML', + http: 'HTTP', + ini: 'INI', + java: 'Java', + javascript: 'JavaScript', + json: 'JSON', + makefile: 'Makefile', + markdown: 'Markdown', + nginx: 'Nginx', + objectivec: 'Objective-C', + perl: 'Perl', + php: 'PHP', + python: 'Python', + ruby: 'Ruby', + sql: 'SQL', + vbscript: 'VBScript', + xhtml: 'XHTML', + xml: 'XML' + }, + + init: function( callback ) { + var that = this; + + if ( editor.plugins.codesnippet.isSupportedEnvironment() ) { + CKEDITOR.scriptLoader.load( path + 'lib/highlight/highlight.pack.js', function() { + that.hljs = window.hljs; + callback(); + } ); + } + + // Method is available only if wysiwygarea exists. + if ( editor.addContentsCss ) { + editor.addContentsCss( path + 'lib/highlight/styles/' + editor.config.codeSnippet_theme + '.css' ); + } + }, + + highlighter: function( code, language, callback ) { + var highlighted = this.hljs.highlightAuto( code, + this.hljs.getLanguage( language ) ? [ language ] : undefined ); + + if ( highlighted ) + callback( highlighted.value ); + } + } ); + + this.setHighlighter( hljsHighlighter ); + } + } + } ); + + /** + * Global helpers and classes of the Code Snippet plugin. + * + * For more information see the {@glink features/codesnippet Code Snippet Guide}. + * + * @class + * @singleton + */ + CKEDITOR.plugins.codesnippet = { + highlighter: Highlighter + }; + + /** + * A Code Snippet highlighter. It can be set as a default highlighter + * using {@link CKEDITOR.plugins.codesnippet#setHighlighter}, for example: + * + * // Create a new plugin which registers a custom code highlighter + * // based on customEngine in order to replace the one that comes + * // with the Code Snippet plugin. + * CKEDITOR.plugins.add( 'myCustomHighlighter', { + * afterInit: function( editor ) { + * // Create a new instance of the highlighter. + * var myHighlighter = new CKEDITOR.plugins.codesnippet.highlighter( { + * init: function( ready ) { + * // Asynchronous code to load resources and libraries for customEngine. + * customEngine.loadResources( function() { + * // Let the editor know that everything is ready. + * ready(); + * } ); + * }, + * highlighter: function( code, language, callback ) { + * // Let the customEngine highlight the code. + * customEngine.highlight( code, language, function() { + * callback( highlightedCode ); + * } ); + * } + * } ); + * + * // Check how it performs. + * myHighlighter.highlight( 'foo()', 'javascript', function( highlightedCode ) { + * console.log( highlightedCode ); // -> foo() + * } ); + * + * // From now on, myHighlighter will be used as a Code Snippet + * // highlighter, overwriting the default engine. + * editor.plugins.codesnippet.setHighlighter( myHighlighter ); + * } + * } ); + * + * @since 4.4.0 + * @class CKEDITOR.plugins.codesnippet.highlighter + * @extends CKEDITOR.plugins.codesnippet + * @param {Object} def Highlighter definition. See {@link #highlighter}, {@link #init} and {@link #languages}. + */ + function Highlighter( def ) { + CKEDITOR.tools.extend( this, def ); + + /** + * A queue of {@link #highlight} jobs to be + * done once the highlighter is {@link #ready}. + * + * @readonly + * @property {Array} [=[]] + */ + this.queue = []; + + // Async init – execute jobs when ready. + if ( this.init ) { + this.init( CKEDITOR.tools.bind( function() { + // Execute pending jobs. + var job; + + while ( ( job = this.queue.pop() ) ) + job.call( this ); + + this.ready = true; + }, this ) ); + } else { + this.ready = true; + } + + /** + * If specified, this function should asynchronously load highlighter-specific + * resources and execute `ready` when the highlighter is ready. + * + * @property {Function} [init] + * @param {Function} ready The function to be called once + * the highlighter is {@link #ready}. + */ + + /** + * A function which highlights given plain text `code` in a given `language` and, once done, + * calls the `callback` function with highlighted markup as an argument. + * + * @property {Function} [highlighter] + * @param {String} code Code to be formatted. + * @param {String} lang Language to be used ({@link CKEDITOR.config#codeSnippet_languages}). + * @param {Function} callback Function which accepts highlighted String as an argument. + */ + + /** + * Defines languages supported by the highlighter. + * They can be restricted with the {@link CKEDITOR.config#codeSnippet_languages} configuration option. + * + * **Note**: If {@link CKEDITOR.config#codeSnippet_languages} is set, **it will + * overwrite** the languages listed in `languages`. + * + * languages: { + * coffeescript: 'CoffeeScript', + * cpp: 'C++', + * cs: 'C#', + * css: 'CSS' + * } + * + * More information on how to change the list of languages is available + * in the {@glink features/codesnippet#changing-supported-languages Code Snippet documentation}. + * + * @property {Object} languages + */ + + /** + * A flag which indicates whether the highlighter is ready to do jobs + * from the {@link #queue}. + * + * @readonly + * @property {Boolean} ready + */ + } + + /** + * Executes the {@link #highlighter}. If the highlighter is not ready, it defers the job ({@link #queue}) + * and executes it when the highlighter is {@link #ready}. + * + * @param {String} code Code to be formatted. + * @param {String} lang Language to be used ({@link CKEDITOR.config#codeSnippet_languages}). + * @param {Function} callback Function which accepts highlighted String as an argument. + */ + Highlighter.prototype.highlight = function() { + var arg = arguments; + + // Highlighter is ready – do it now. + if ( this.ready ) + this.highlighter.apply( this, arg ); + // Queue the job. It will be done once ready. + else { + this.queue.push( function() { + this.highlighter.apply( this, arg ); + } ); + } + }; + + // Encapsulates snippet widget registration code. + // @param {CKEDITOR.editor} editor + function registerWidget( editor ) { + var codeClass = editor.config.codeSnippet_codeClass, + newLineRegex = /\r?\n/g, + textarea = new CKEDITOR.dom.element( 'textarea' ), + lang = editor.lang.codesnippet; + + editor.widgets.add( 'codeSnippet', { + allowedContent: 'pre; code(language-*)', + // Actually we need both - pre and code, but ACF does not make it possible + // to defire required content with "and" operator. + requiredContent: 'pre', + styleableElements: 'pre', + template: '
', + dialog: 'codeSnippet', + pathName: lang.pathName, + mask: true, + + parts: { + pre: 'pre', + code: 'code' + }, + + highlight: function() { + var that = this, + widgetData = this.data, + callback = function( formatted ) { + // IE8 (not supported browser) have issue with new line chars, when using innerHTML. + // It will simply strip it. + that.parts.code.setHtml( editor.plugins.codesnippet.isSupportedEnvironment() ? + formatted : formatted.replace( newLineRegex, '
' ) ); + }; + + // Set plain code first, so even if custom handler will not call it the code will be there. + callback( CKEDITOR.tools.htmlEncode( widgetData.code ) ); + + // Call higlighter to apply its custom highlighting. + editor._.codesnippet.highlighter.highlight( widgetData.code, widgetData.lang, function( formatted ) { + editor.fire( 'lockSnapshot' ); + callback( formatted ); + editor.fire( 'unlockSnapshot' ); + } ); + }, + + data: function() { + var newData = this.data, + oldData = this.oldData; + + if ( newData.code ) + this.parts.code.setHtml( CKEDITOR.tools.htmlEncode( newData.code ) ); + + // Remove old .language-* class. + if ( oldData && newData.lang != oldData.lang ) + this.parts.code.removeClass( 'language-' + oldData.lang ); + + // Lang needs to be specified in order to apply formatting. + if ( newData.lang ) { + // Apply new .language-* class. + this.parts.code.addClass( 'language-' + newData.lang ); + + this.highlight(); + } + + // Save oldData. + this.oldData = CKEDITOR.tools.copy( newData ); + }, + + // Upcasts
...
+ upcast: function( el, data ) { + if ( el.name != 'pre' ) + return; + + var childrenArray = getNonEmptyChildren( el ), + code; + + if ( childrenArray.length != 1 || ( code = childrenArray[ 0 ] ).name != 'code' ) + return; + + // Upcast with text only: https://dev.ckeditor.com/ticket/11926#comment:4 + if ( code.children.length != 1 || code.children[ 0 ].type != CKEDITOR.NODE_TEXT ) + return; + + // Read language-* from class attribute. + var matchResult = editor._.codesnippet.langsRegex.exec( code.attributes[ 'class' ] ); + + if ( matchResult ) + data.lang = matchResult[ 1 ]; + + // Use textarea to decode HTML entities (https://dev.ckeditor.com/ticket/11926). + textarea.setHtml( code.getHtml() ); + data.code = textarea.getValue(); + + code.addClass( codeClass ); + + return el; + }, + + // Downcasts to
...
+ downcast: function( el ) { + var code = el.getFirst( 'code' ); + + // Remove pretty formatting from .... + code.children.length = 0; + + // Remove config#codeSnippet_codeClass. + code.removeClass( codeClass ); + + // Set raw text inside .... + code.add( new CKEDITOR.htmlParser.text( CKEDITOR.tools.htmlEncode( this.data.code ) ) ); + + return el; + } + } ); + + // Returns an **array** of child elements, with whitespace-only text nodes + // filtered out. + // @param {CKEDITOR.htmlParser.element} parentElement + // @return Array - array of CKEDITOR.htmlParser.node + var whitespaceOnlyRegex = /^[\s\n\r]*$/; + + function getNonEmptyChildren( parentElement ) { + var ret = [], + preChildrenList = parentElement.children, + curNode; + + // Filter out empty text nodes. + for ( var i = preChildrenList.length - 1; i >= 0; i-- ) { + curNode = preChildrenList[ i ]; + + if ( curNode.type != CKEDITOR.NODE_TEXT || !curNode.value.match( whitespaceOnlyRegex ) ) + ret.push( curNode ); + } + + return ret; + } + } +} )(); + +/** + * A CSS class of the `` element used internally for styling + * (by default [highlight.js](https://highlightjs.org) themes, see + * {@link CKEDITOR.config#codeSnippet_theme config.codeSnippet_theme}), + * which means that it is **not present** in the editor output data. + * + * // Changes the class to "myCustomClass". + * config.codeSnippet_codeClass = 'myCustomClass'; + * + * **Note**: The class might need to be changed when you are using a custom + * highlighter (the default is [highlight.js](https://highlightjs.org)). + * See {@link CKEDITOR.plugins.codesnippet.highlighter} to read more. + * + * Read more in the {@glink features/codesnippet documentation} + * and see the {@glink examples/codesnippet example}. + * + * @since 4.4.0 + * @cfg {String} [codeSnippet_codeClass='hljs'] + * @member CKEDITOR.config + */ +CKEDITOR.config.codeSnippet_codeClass = 'hljs'; + +/** + * Restricts languages available in the "Code Snippet" dialog window. + * An empty value is always added to the list. + * + * **Note**: If using a custom highlighter library (the default is [highlight.js](https://highlightjs.org)), + * you may need to refer to external documentation to set `config.codeSnippet_languages` properly. + * + * Read more in the {@glink features/codesnippet#changing-supported-languages documentation} + * and see the {@glink examples/codesnippet example}. + * + * // Restricts languages to JavaScript and PHP. + * config.codeSnippet_languages = { + * javascript: 'JavaScript', + * php: 'PHP' + * }; + * + * @since 4.4.0 + * @cfg {Object} [codeSnippet_languages=null] + * @member CKEDITOR.config + */ + +/** + * A theme used to render code snippets. See [available themes](https://highlightjs.org/static/demo/). + * + * **Note**: This will only work with the default highlighter + * ([highlight.js](https://highlightjs.org/static/demo/)). + * + * Read more in the {@glink features/codesnippet#changing-highlighter-theme documentation} + * and see the {@glink examples/codesnippet example}. + * + * // Changes the theme to "pojoaque". + * config.codeSnippet_theme = 'pojoaque'; + * + * @since 4.4.0 + * @cfg {String} [codeSnippet_theme='default'] + * @member CKEDITOR.config + */ +CKEDITOR.config.codeSnippet_theme = 'default'; diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/samples/codesnippet.html b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/samples/codesnippet.html new file mode 100644 index 0000000000..7d8f656093 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/codesnippet/samples/codesnippet.html @@ -0,0 +1,239 @@ + + + + + + Code Snippet — CKEditor Sample + + + + + + + + + + + + +

+ CKEditor Samples » Code Snippet Plugin +

+
+ This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. +
+ +
+

+ This editor is using the Code Snippet plugin which introduces beautiful code snippets. + By default the codesnippet plugin depends on the built-in client-side syntax highlighting + library highlight.js. +

+

+ You can adjust the appearance of code snippets using the codeSnippet_theme configuration variable + (see available themes). +

+

+ Select theme: +

+

+ The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.replace( 'editor1', {
+	extraPlugins: 'codesnippet',
+	codeSnippet_theme: 'monokai_sublime'
+} );
+
+ +

+ Please note that this plugin is not compatible with Internet Explorer 8. +

+
+ + + +

Inline editor

+ +
+

+ The following sample shows the Code Snippet plugin running inside + an inline CKEditor instance. The CKEditor instance below was created by using the following configuration settings: +

+ +
+CKEDITOR.inline( 'editable', {
+	extraPlugins: 'codesnippet'
+} );
+
+ +

+ Note: The highlight.js themes + must be loaded manually to be applied inside an inline editor instance, as the + codeSnippet_theme setting will not work in that case. + You need to include the stylesheet in the <head> section of the page, for example: +

+ +
+<head>
+	...
+	<link href="path/to/highlight.js/styles/monokai_sublime.css" rel="stylesheet">
+</head>
+
+ +
+ +
+ +

JavaScript code:

+ +
function isEmpty( object ) {
+	for ( var i in object ) {
+		if ( object.hasOwnProperty( i ) )
+			return false;
+	}
+	return true;
+}
+ +

SQL query:

+ +
SELECT cust.id, cust.name, loc.city FROM cust LEFT JOIN loc ON ( cust.loc_id = loc.id ) WHERE cust.type IN ( 1, 2 );
+ +

Unknown markup:

+ +
 ________________
+/                \
+| How about moo? |  ^__^
+\________________/  (oo)\_______
+                  \ (__)\       )\/\
+                        ||----w |
+                        ||     ||
+
+
+ +

Server-side Highlighting and Custom Highlighting Engines

+ +

+ The Code Snippet GeSHi plugin is an + extension of the Code Snippet plugin which uses a server-side highligter. +

+ +

+ It also is possible to replace the default highlighter with any library using + the Highlighter API + and the editor.plugins.codesnippet.setHighlighter() method. +

+ + + + + + diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/icons/copyformatting.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/icons/copyformatting.png new file mode 100644 index 0000000000..11284089f6 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/icons/copyformatting.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/icons/hidpi/copyformatting.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/icons/hidpi/copyformatting.png new file mode 100644 index 0000000000..c46e5140ae Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/icons/hidpi/copyformatting.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ar.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ar.js new file mode 100644 index 0000000000..9085999638 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ar.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'ar', { + label: 'نسخ التنسيق', + notification: { + copied: 'تم نسخ التنسيق', + applied: 'تم تطبيق التنسيق', + canceled: 'تم الغاء التنسيق', + failed: 'Formatting failed. You cannot apply styles without copying them first.' // MISSING + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/az.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/az.js new file mode 100644 index 0000000000..7c47935a74 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/az.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'az', { + label: 'Formatı köçür', + notification: { + copied: 'Format köçürülüb', + applied: 'Format tədbiq edilib', + canceled: 'Format imtina edilib', + failed: 'Format etmək mümkün deyil. Siz üslubları köçürmədən onları tədbiq edə bilməzsiniz.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/bg.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/bg.js new file mode 100644 index 0000000000..a0c2db1993 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/bg.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'bg', { + label: 'Копирай форматиране', + notification: { + copied: 'Форматирането е копирано', + applied: 'Форматирането е приложено', + canceled: 'Форматирането е анулирано', + failed: 'Форматирането не е успешно. Не можете да прилагате стилове без първо да ги копирате.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/cs.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/cs.js new file mode 100644 index 0000000000..94e10ebc4c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/cs.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'cs', { + label: 'Kopírovat formátování', + notification: { + copied: 'Formátování zkopírováno', + applied: 'Formátování použito', + canceled: 'Formátování zrušeno', + failed: 'Formátování selhalo. Nejdříve musíte styly zkopírovat, až pak je můžete použít.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/da.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/da.js new file mode 100644 index 0000000000..1f1d54a36a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/da.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'da', { + label: 'Kopiér formatering', + notification: { + copied: 'Formatering kopieret', + applied: 'Formatering anvendt', + canceled: 'Formatering annulleret', + failed: 'Formatering fejlede. Du kan ikke anvende stile uden at kopiere dem først.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/de-ch.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/de-ch.js new file mode 100644 index 0000000000..b4b2374221 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/de-ch.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'de-ch', { + label: 'Formatierung kopieren', + notification: { + copied: 'Formatierung kopiert', + applied: 'Formatierung angewendet', + canceled: 'Formatierung abgebrochen', + failed: 'Formatierung fehlgeschlagen. Sie können Stile nicht anwenden, ohne sie zuerst zu kopieren.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/de.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/de.js new file mode 100644 index 0000000000..a0c62368c8 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/de.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'de', { + label: 'Formatierung kopieren', + notification: { + copied: 'Formatierung kopiert', + applied: 'Formatierung angewendet', + canceled: 'Formatierung abgebrochen', + failed: 'Formatierung fehlgeschlagen. Sie können Stile nicht anwenden, ohne sie zuerst zu kopieren.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/el.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/el.js new file mode 100644 index 0000000000..e3989bc129 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/el.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'el', { + label: 'Αντιγραφή Μορφοποίησης', + notification: { + copied: 'Αντιγραφή μορφοποίησης', + applied: 'Εφαρμογή μορφοποίησης', + canceled: 'Ακύρωση μορφοποίησης', + failed: 'Η μορφοποίηση απέτυχε. Δεν μπορείτε να εφαρμόσετε στυλ πριν τα αντιγράψετε.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/en-au.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/en-au.js new file mode 100644 index 0000000000..d0c2fae741 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/en-au.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'en-au', { + label: 'Copy Formatting', + notification: { + copied: 'Formatting copied', + applied: 'Formatting applied', + canceled: 'Formatting canceled', + failed: 'Formatting failed. You cannot apply styles without copying them first.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/en.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/en.js new file mode 100644 index 0000000000..a1efce1b85 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/en.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'en', { + label: 'Copy Formatting', + notification: { + copied: 'Formatting copied', + applied: 'Formatting applied', + canceled: 'Formatting canceled', + failed: 'Formatting failed. You cannot apply styles without copying them first.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/eo.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/eo.js new file mode 100644 index 0000000000..303796bf64 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/eo.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'eo', { + label: 'Kopii la formaton', + notification: { + copied: 'Formato kopiita', + applied: 'Formato aplikita', + canceled: 'Formato nuligita', + failed: 'Malsukceso de la formato. Vi ne povas apliki stilojn se vi ne kopiis ilin antaŭe.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/es-mx.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/es-mx.js new file mode 100644 index 0000000000..ad9fbc3081 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/es-mx.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'es-mx', { + label: 'Copiando formato', + notification: { + copied: 'Formato copiado', + applied: 'Aplicando formato', + canceled: 'Cancelando formato', + failed: 'Formato falló. No puede aplicar estilos sin copiarlos primero.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/et.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/et.js new file mode 100644 index 0000000000..8747df48fe --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/et.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'et', { + label: 'Kopeeri vorming', + notification: { + copied: 'Vorming on kopeeritud', + applied: 'Vorming on rakendatud', + canceled: 'Vormindamisest loobuti', + failed: 'Vormindamine nurjus. Stiile ei saa rakendada ilma neid enne kopeerimata.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/eu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/eu.js new file mode 100644 index 0000000000..f1a6746165 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/eu.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'eu', { + label: 'Kopiatu formatua', + notification: { + copied: 'Formatua kopiatuta', + applied: 'Formatua aplikatuta', + canceled: 'Formatua bertan behera utzita', + failed: 'Formatuak huts egin du. Ezin dituzu estiloak kopiatu gabe aplikatu.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/fa.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/fa.js new file mode 100644 index 0000000000..b60c6ec875 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/fa.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'fa', { + label: 'کپی کردن قالب بندی', + notification: { + copied: 'قالب بندی کپی شد', + applied: 'قالب بندی اعمال شد', + canceled: 'قالب بندی لغو شد', + failed: 'قالب بندی ناموفق بود. شما نمیتوانید بدون اینکه ابتدا سبک ها را کپی کنید ، آنها را اعمال نمایید' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/fr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/fr.js new file mode 100644 index 0000000000..0b6df4a151 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/fr.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'fr', { + label: 'Copier le formatage', + notification: { + copied: 'Formatage copié', + applied: 'Formatage appliqué', + canceled: 'Formatage supprimé', + failed: 'Échec du formatage. Vous devez d\'abord copier des styles pour pouvoir les appliquer.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/gl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/gl.js new file mode 100644 index 0000000000..5e801d2a9a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/gl.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'gl', { + label: 'Copiar o formato', + notification: { + copied: 'Copiouse o formato', + applied: 'Aplicouse o formato', + canceled: 'Cancelouse o formatado', + failed: 'Produciuse un erro ao formatar. Non é posíbel aplicar estilos sen copialos antes.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/hr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/hr.js new file mode 100644 index 0000000000..e1633bd3db --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/hr.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'hr', { + label: 'Kopiraj formatiranje', + notification: { + copied: 'Formatiranje kopirano', + applied: 'Formatiranje primjenjeno', + canceled: 'Formatiranje poništeno', + failed: 'Formatiranje nije uspjelo. Nije moguće primjeniti stilove bez da ih prvo kopirate.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/hu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/hu.js new file mode 100644 index 0000000000..102bbe91ec --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/hu.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'hu', { + label: 'Formázás másolása', + notification: { + copied: 'Formázás másolva', + applied: 'Formázás alkalmazva', + canceled: 'Formázás megszakítva', + failed: 'A formázás meghiúsult. Nem alkalmazhatsz stílusokat mielőtt másolnád őket.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/it.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/it.js new file mode 100644 index 0000000000..349a240987 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/it.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'it', { + label: 'Copia formattazione', + notification: { + copied: 'Formattazione copiata', + applied: 'Formattazione applicata', + canceled: 'Formattazione annullata', + failed: 'Formattazione fallita. Non è possibile applicare stili senza averli prima copiati.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ja.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ja.js new file mode 100644 index 0000000000..1fd5f40574 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ja.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'ja', { + label: 'フォーマットをコピー', + notification: { + copied: 'コピーされたフォーマット', + applied: 'フォーマットを適用しました', + canceled: 'フォーマットを取り消しました', + failed: 'フォーマットのコピーに失敗しました。最初にフォーマットをコピーしてから適用してください。' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ko.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ko.js new file mode 100644 index 0000000000..bdce84161e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ko.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'ko', { + label: '양식 복사', + notification: { + copied: '양식이 복사 되었습니다', + applied: '양식을 적용 했습니다', + canceled: '양식이 취소 되었습니다', + failed: '양식 적용에 실패했습니다. 양식을 복사해야 적용할 수 있습니다.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ku.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ku.js new file mode 100644 index 0000000000..19ff95a70b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ku.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'ku', { + label: 'لەبەرگرتنەوەی شێواز', + notification: { + copied: 'شێواز لەبەرگیرایەوە', + applied: 'شێواز بەکارهێنرا', + canceled: 'شێواز لابرا', + failed: 'شێوازکردن سەرکەوتوو نەبوو. تۆ ناتوانیت ستایلەکان بەکاربێنی بەبێ لەبەرگرتنەوەیان لە سەرەتا.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/lv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/lv.js new file mode 100644 index 0000000000..45c222d05b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/lv.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'lv', { + label: 'Kopēt formatējumu', + notification: { + copied: 'Formatējums nokopēts', + applied: 'Formatējums uzstādīts', + canceled: 'Formatējums atcelts', + failed: 'Formatēšana neizdevās. Nevar uzstādīt stilus bez to nokopēšanas.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/nb.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/nb.js new file mode 100644 index 0000000000..c12cd4d131 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/nb.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'nb', { + label: 'Kopier formatering', + notification: { + copied: 'Formatering kopiert', + applied: 'Formatering tatt i bruk', + canceled: 'Formatering avbrutt', + failed: 'Formatering mislyktes. Du kan ikke ta i bruk stiler uten å kopiere dem først.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/nl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/nl.js new file mode 100644 index 0000000000..a3a03fcec7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/nl.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'nl', { + label: 'Opmaakstijl kopiëren', + notification: { + copied: 'Opmaakstijl gekopieerd', + applied: 'Opmaakstijl toegepast', + canceled: 'Opmaakstijl toepassen geannuleerd', + failed: 'Opmaakstijl toepassen mislukt. U kunt geen opmaakstijl toepassen zonder deze eerst te kopiëren.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/oc.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/oc.js new file mode 100644 index 0000000000..b34092d1ca --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/oc.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'oc', { + label: 'Copiar lo formatatge', + notification: { + copied: 'Formatatge copiat', + applied: 'Formatatge aplicat', + canceled: 'Formatatge anullat', + failed: 'Formatting failed. You cannot apply styles without copying them first.' // MISSING + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pl.js new file mode 100644 index 0000000000..59c1e6ecd6 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pl.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'pl', { + label: 'Kopiuj formatowanie', + notification: { + copied: 'Formatowanie skopiowane', + applied: 'Formatowanie zastosowane', + canceled: 'Formatowanie przerwane', + failed: 'Formatowanie nie powiodło się. Nie możesz zastosować stylów bez uprzedniego ich skopiowania.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pt-br.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pt-br.js new file mode 100644 index 0000000000..61a0662d7a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pt-br.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'pt-br', { + label: 'Copiar Formatação', + notification: { + copied: 'Formatação copiada', + applied: 'Formatação aplicada', + canceled: 'Formatação cancelada', + failed: 'A formatação falhou. Você não pode aplicar estilos sem copiá-los antes.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pt.js new file mode 100644 index 0000000000..1dd6226a13 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/pt.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'pt', { + label: 'Copiar formatação', + notification: { + copied: 'Formatação copiada', + applied: 'Formatação aplicada', + canceled: 'Formatação cancelada', + failed: 'Formatting failed. You cannot apply styles without copying them first.' // MISSING + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ro.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ro.js new file mode 100644 index 0000000000..1a512a32c7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ro.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'ro', { + label: 'Copiere formatare', + notification: { + copied: 'Formatare copiată', + applied: 'Formatare aplicată', + canceled: 'Formatare anulată', + failed: 'Formatare greșită. Nu poți aplica stiluri fără a le copia întâi.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ru.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ru.js new file mode 100644 index 0000000000..5d470c9ef5 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/ru.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'ru', { + label: 'Копировать форматирование', + notification: { + copied: 'Форматирование скопировано', + applied: 'Форматирование применено', + canceled: 'Форматирование отменен', + failed: 'Форматирование не выполнено. Стили необходимо скопировать перед применением.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sk.js new file mode 100644 index 0000000000..a971467249 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sk.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'sk', { + label: 'Kopírovať formátovanie', + notification: { + copied: 'Formátovanie skopírované', + applied: 'Formátovanie aplikované', + canceled: 'Formátovanie zrušené', + failed: 'Formátovanie zlyhalo. Nemôžete aplikovať štýly bez toho, aby ste ich najprv skopírovali.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sq.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sq.js new file mode 100644 index 0000000000..d6fd75f700 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sq.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'sq', { + label: 'Kopjo Formatimin', + notification: { + copied: 'Formatimi u kopjua', + applied: 'Formatimi u aplikua', + canceled: 'Formatimi u ndërpre', + failed: 'Formatimi dështoi. Nuk mund të aplikosh stile pa i kopjuar fillimisht ato.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sr-latn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sr-latn.js new file mode 100644 index 0000000000..d3f6dd8267 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sr-latn.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'sr-latn', { + label: 'Kopiranje formatiranja', + notification: { + copied: 'Kopirano formatiranje', + applied: 'Formatiranje primenjeno', + canceled: 'Formatiranje prekinuto', + failed: 'Formatiranje nije uspelo. Ne možete primenjivati stilove pre nego što ih kopirate.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sr.js new file mode 100644 index 0000000000..95e5eba38c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sr.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'sr', { + label: 'Копирање форматирања', + notification: { + copied: 'Копирано форматирање', + applied: 'Форматирање примењено', + canceled: 'Форматирање примењено', + failed: 'Форматирање није успело. Не можете примењивати стилове пре него што их копирате.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sv.js new file mode 100644 index 0000000000..0ce5bf27b7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/sv.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'sv', { + label: 'Kopiera formatering', + notification: { + copied: 'Formatering kopierad', + applied: 'Formatering applicerad', + canceled: 'Formatering avbruten', + failed: 'Formatering misslyckades. Du kan inte applicera stilar utan att kopiera dem först.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/tr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/tr.js new file mode 100644 index 0000000000..9137ee9386 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/tr.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'tr', { + label: 'Formatı Kopyala', + notification: { + copied: 'Formatlama Kopyalandı', + applied: 'Formatlama Uygulandı', + canceled: 'Formatlama İptal Edildi', + failed: 'Formatlama hatası. İlk önce onları kopyalamadan stilleri uygulayamazsınız.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/uk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/uk.js new file mode 100644 index 0000000000..2d96ee95bf --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/uk.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'uk', { + label: 'Копіювати форматування', + notification: { + copied: 'Форматування скопійовано', + applied: 'Форматування застосовано', + canceled: 'Форматування скасовано', + failed: 'Помилка форматування. Ви не можете застосовувати стилі без попереднього їх копіювання.' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/vi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/vi.js new file mode 100644 index 0000000000..c2e6a8a6c5 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/vi.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'vi', { + label: 'Sao chép định dạng', + notification: { + copied: 'Formatting copied', // MISSING + applied: 'Formatting applied', // MISSING + canceled: 'Formatting canceled', // MISSING + failed: 'Formatting failed. You cannot apply styles without copying them first.' // MISSING + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/zh-cn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/zh-cn.js new file mode 100644 index 0000000000..f3da286bc6 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/zh-cn.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'zh-cn', { + label: '格式刷', + notification: { + copied: '格式已复制', + applied: '格式已应用', + canceled: '格式已取消', + failed: '格式化失败,您不能还没复制就应用格式' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/zh.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/zh.js new file mode 100644 index 0000000000..4395d992ce --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/lang/zh.js @@ -0,0 +1,13 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'copyformatting', 'zh', { + label: '格式化複製', + notification: { + copied: '已複製格式化', + applied: '格式化已套用', + canceled: '格式化已取消', + failed: '格式化失敗。您無法在沒有複製它們前就套用樣式。' + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/plugin.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/plugin.js new file mode 100644 index 0000000000..e4d33e8844 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/plugin.js @@ -0,0 +1,1269 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +( function() { + 'use strict'; + + var indexOf = CKEDITOR.tools.indexOf, + getMouseButton = CKEDITOR.tools.getMouseButton, + // This flag prevents appending stylesheet more than once. + stylesLoaded = false; + + // Searches for given node in given query. It also checks ancestors of elements in the range. + function getNodeAndApplyCmd( range, query, cmd, stopOnFirst ) { + var walker = new CKEDITOR.dom.walker( range ), + currentNode; + + // Walker sometimes does not include all nodes (e.g. if the range is in the middle of text node). + if ( ( currentNode = range.startContainer.getAscendant( query, true ) || + range.endContainer.getAscendant( query, true ) ) ) { + cmd( currentNode ); + + if ( stopOnFirst ) { + return; + } + } + + while ( currentNode = walker.next() ) { + currentNode = currentNode.getAscendant( query, true ); + + if ( currentNode ) { + cmd( currentNode ); + + if ( stopOnFirst ) { + return; + } + } + } + } + + // Checks if there is style for specified element in the given array. + function checkForStyle( element, styles ) { + // Some elements are treated interchangeably, e.g. lists. + var stylesAlternatives = { + ul: 'ol', + ol: 'ul' + }; + + return indexOf( styles, function( style ) { + return style.element === element || style.element === stylesAlternatives[ element ]; + } ) !== -1; + } + + CKEDITOR.plugins.add( 'copyformatting', { + lang: 'ar,az,bg,cs,da,de,de-ch,el,en,en-au,eo,es-mx,et,eu,fa,fr,gl,hr,hu,it,ja,ko,ku,lv,nb,nl,oc,pl,pt,pt-br,ro,ru,sk,sq,sr,sr-latn,sv,tr,uk,vi,zh,zh-cn', + icons: 'copyformatting', + hidpi: true, + + init: function( editor ) { + var plugin = CKEDITOR.plugins.copyformatting; + + plugin._addScreenReaderContainer(); + + if ( !stylesLoaded ) { + CKEDITOR.document.appendStyleSheet( this.path + 'styles/copyformatting.css' ); + stylesLoaded = true; + } + + // Add copyformatting stylesheet. + if ( editor.addContentsCss ) { + editor.addContentsCss( this.path + 'styles/copyformatting.css' ); + } + + /** + * Current state of the Copy Formatting plugin in this editor instance. + * + * @since 4.6.0 + * @property {CKEDITOR.plugins.copyformatting.state} copyFormatting + * @member CKEDITOR.editor + */ + editor.copyFormatting = new plugin.state( editor ); + + editor.addCommand( 'copyFormatting', plugin.commands.copyFormatting ); + editor.addCommand( 'applyFormatting', plugin.commands.applyFormatting ); + + editor.ui.addButton( 'CopyFormatting', { + isToggle: true, + label: editor.lang.copyformatting.label, + command: 'copyFormatting', + toolbar: 'cleanup,0' + } ); + + editor.on( 'contentDom', function() { + var cmd = editor.getCommand( 'copyFormatting' ), + editable = editor.editable(), + // Host element for apply formatting click. In case of classic element it needs to be entire + // document, otherwise clicking in body margins would not trigger the event. + // Editors with divarea plugin enabled should be treated like inline one – otherwise + // clicking the whole document messes the focus. + mouseupHost = editable.isInline() ? editable : editor.document, + copyFormattingButton = editor.ui.get( 'CopyFormatting' ), + copyFormattingButtonEl; + + editable.attachListener( mouseupHost, 'mouseup', function( evt ) { + // Apply formatting only if any styles are copied (#2780, #2655, #2470). + if ( getMouseButton( evt ) === CKEDITOR.MOUSE_BUTTON_LEFT && cmd.state === CKEDITOR.TRISTATE_ON ) { + editor.execCommand( 'applyFormatting' ); + } + } ); + + editable.attachListener( CKEDITOR.document, 'mouseup', function( evt ) { + if ( getMouseButton( evt ) === CKEDITOR.MOUSE_BUTTON_LEFT && cmd.state === CKEDITOR.TRISTATE_ON && + !editable.contains( evt.data.getTarget() ) ) { + editor.execCommand( 'copyFormatting' ); + } + } ); + + if ( copyFormattingButton ) { + copyFormattingButtonEl = CKEDITOR.document.getById( copyFormattingButton._.id ); + + editable.attachListener( copyFormattingButtonEl, 'dblclick', function() { + editor.execCommand( 'copyFormatting', { sticky: true } ); + } ); + + editable.attachListener( copyFormattingButtonEl, 'mouseup', function( evt ) { + evt.data.stopPropagation(); + } ); + } + } ); + + // Set customizable keystrokes. + if ( editor.config.copyFormatting_keystrokeCopy ) { + editor.setKeystroke( editor.config.copyFormatting_keystrokeCopy, 'copyFormatting' ); + } + + editor.on( 'key', function( evt ) { + var cmd = editor.getCommand( 'copyFormatting' ), + domEvent = evt.data.domEvent; + + // Esc should simply disable Copy Formatting. Make sure that getKeystroke is there, as some event stubs are missing it. + if ( domEvent.getKeystroke && domEvent.getKeystroke() === 27 ) { // ESC + if ( cmd.state === CKEDITOR.TRISTATE_ON ) { + editor.execCommand( 'copyFormatting' ); + } + } + } ); + + // Fetch the styles from element. + editor.copyFormatting.on( 'extractFormatting', function( evt ) { + var element = evt.data.element, + style; + + // Stop at body and html in classic editors or at .cke_editable element in inline ones. + if ( element.contains( editor.editable() ) || element.equals( editor.editable() ) ) { + return evt.cancel(); + } + + style = plugin._convertElementToStyleDef( element ); + + if ( !editor.copyFormatting.filter.check( new CKEDITOR.style( style ), true, true ) ) { + return evt.cancel(); + } + + evt.data.styleDef = style; + } ); + + // Remove old styles from element. + editor.copyFormatting.on( 'applyFormatting', function( evt ) { + if ( evt.data.preventFormatStripping ) { + return; + } + + var range = evt.data.range, + oldStyles = plugin._extractStylesFromRange( editor, range ), + context = plugin._determineContext( range ), + oldStyle, + bkm, + i; + + if ( !editor.copyFormatting._isContextAllowed( context ) ) { + return; + } + + for ( i = 0; i < oldStyles.length; i++ ) { + oldStyle = oldStyles[ i ]; + + // The bookmark is used to prevent the weird behavior of lists (e.g. not converting list type + // while applying styles from bullet list to the numbered one). Restoring the selection to its + // initial state after every change seems to do the trick. + bkm = range.createBookmark(); + + if ( indexOf( plugin.preservedElements, oldStyle.element ) === -1 ) { + // In Safari we must remove styles exactly from the initial range. + // Otherwise Safari is removing too much. + if ( CKEDITOR.env.webkit && !CKEDITOR.env.chrome ) { + oldStyles[ i ].removeFromRange( evt.data.range, evt.editor ); + } else { + oldStyles[ i ].remove( evt.editor ); + } + } else if ( checkForStyle( oldStyle.element, evt.data.styles ) ) { + plugin._removeStylesFromElementInRange( range, oldStyle.element ); + } + + range.moveToBookmark( bkm ); + } + } ); + + // Apply new styles. + editor.copyFormatting.on( 'applyFormatting', function( evt ) { + var plugin = CKEDITOR.plugins.copyformatting, + context = plugin._determineContext( evt.data.range ); + + if ( context === 'list' && editor.copyFormatting._isContextAllowed( 'list' ) ) { + plugin._applyStylesToListContext( evt.editor, evt.data.range, evt.data.styles ); + } else if ( context === 'table' && editor.copyFormatting._isContextAllowed( 'table' ) ) { + plugin._applyStylesToTableContext( evt.editor, evt.data.range, evt.data.styles ); + } else if ( editor.copyFormatting._isContextAllowed( 'text' ) ) { + plugin._applyStylesToTextContext( evt.editor, evt.data.range, evt.data.styles ); + } + }, null, null, 999 ); + } + } ); + + /** + * Copy Formatting state object created for each CKEditor instance. + * + * @class CKEDITOR.plugins.copyformatting.state + * @mixins CKEDITOR.event + * @constructor Creates a new state object. + * @param {CKEDITOR.editor} editor + */ + function State( editor ) { + /** + * Currently copied styles. + * + * @member CKEDITOR.plugins.copyformatting.state + * @property {CKEDITOR.style[]/null} + */ + this.styles = null; + + /** + * Indicates if the Copy Formatting plugin is in sticky mode. + * + * @member CKEDITOR.plugins.copyformatting.state + * @property {Boolean} + */ + this.sticky = false; + + /** + * Editor reference. + * + * @member CKEDITOR.plugins.copyformatting.state + * @property {CKEDITOR.editor} + */ + this.editor = editor; + + /** + * Filter used by the current Copy Formatting instance. + * + * @member CKEDITOR.plugins.copyformatting.state + * @property {CKEDITOR.filter} + */ + this.filter = new CKEDITOR.filter( editor, editor.config.copyFormatting_allowRules ); + + if ( editor.config.copyFormatting_allowRules === true ) { + this.filter.disabled = true; + } + + if ( editor.config.copyFormatting_disallowRules ) { + this.filter.disallow( editor.config.copyFormatting_disallowRules ); + } + } + + /** + * Checks if copying and applying styles in the current context is possible. + * See {@link CKEDITOR.config#copyFormatting_allowedContexts} for the list of possible context values. + * + * @member CKEDITOR.plugins.copyformatting.state + * @param {String} testedContext Context name. + * @returns {Boolean} `true` if a given context is allowed in the current Copy Formatting instance. + * @private + */ + State.prototype._isContextAllowed = function( testedContext ) { + var configValue = this.editor.config.copyFormatting_allowedContexts; + + return configValue === true || indexOf( configValue, testedContext ) !== -1; + }; + + CKEDITOR.event.implementOn( State.prototype ); + + /** + * @since 4.6.0 + * @singleton + * @class CKEDITOR.plugins.copyformatting + */ + CKEDITOR.plugins.copyformatting = { + state: State, + + /** + * An array of block boundaries that should be always transformed into inline elements with styles, e.g. + * `
` becomes ``. + * + * @property {Array} + */ + inlineBoundary: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'div' ], + + /** + * An array of attributes that should be excluded from extracted styles. + * + * @property {Array} + */ + excludedAttributes: [ 'id', 'style', 'href', 'data-cke-saved-href', 'dir' ], + + /** + * An array of elements that will be transformed into inline styles while + * applying formatting to the plain text context, e.g. trying to apply styles from the `
  • ` element + * (`
  • `) to a regular paragraph will cause changing the `
  • ` element + * into a corresponding `` element (``). + * + * @property {Array} + */ + elementsForInlineTransform: [ 'li' ], + + /** + * An array of elements that will be excluded from the transformation while + * applying formatting to the plain text context. + * + * @property {Array} + */ + excludedElementsFromInlineTransform: [ 'table', 'thead', 'tbody', 'ul', 'ol' ], + + /** + * An array of attributes to be excluded while transforming styles from elements inside + * {@link CKEDITOR.plugins.copyformatting#elementsForInlineTransform} into `` elements with styles + * (e.g. when applying these styles to text context). + * + * @property {Array} + */ + excludedAttributesFromInlineTransform: [ 'value', 'type' ], + + /** + * An array of elements which should not be deleted when removing old styles + * from the current selection. Instead the styles are stripped from the elements, + * preserving the elements themselves, e.g. `
      ` + * becomes `
        `. + * + * @property {Array} + */ + preservedElements: [ 'ul', 'ol', 'li', 'td', 'th', 'tr', 'thead', 'tbody', 'table' ], + + /** + * An array of elements on which extracting formatting should be stopped. + * If Copy Formatting reaches an element from the array, it ends going up the document tree + * and fetching the element parents' styles. + * + * @property {Array} + */ + breakOnElements: [ 'ul', 'ol', 'table' ], + + /** + * Stores the name of the command (if any) initially bound to the keystroke used for format applying + * ({@link CKEDITOR.config#copyFormatting_keystrokePaste}), to restore it after copy formatting + * is deactivated. + * + * @private + * @property {String} + */ + _initialKeystrokePasteCommand: null, + + commands: { + copyFormatting: { + exec: function( editor, data ) { + var cmd = this, + plugin = CKEDITOR.plugins.copyformatting, + copyFormatting = editor.copyFormatting, + isFromKeystroke = data ? data.from == 'keystrokeHandler' : false, + isSticky = data ? ( data.sticky || isFromKeystroke ) : false, + cursorContainer = plugin._getCursorContainer( editor ), + documentElement = CKEDITOR.document.getDocumentElement(); + + if ( cmd.state === CKEDITOR.TRISTATE_ON ) { + copyFormatting.styles = null; + copyFormatting.sticky = false; + + cursorContainer.removeClass( 'cke_copyformatting_active' ); + documentElement.removeClass( 'cke_copyformatting_disabled' ); + documentElement.removeClass( 'cke_copyformatting_tableresize_cursor' ); + + plugin._putScreenReaderMessage( editor, 'canceled' ); + plugin._detachPasteKeystrokeHandler( editor ); + + return cmd.setState( CKEDITOR.TRISTATE_OFF ); + } + + copyFormatting.styles = plugin._extractStylesFromElement( editor, + editor.elementPath().lastElement ); + + cmd.setState( CKEDITOR.TRISTATE_ON ); + + if ( !isFromKeystroke ) { + cursorContainer.addClass( 'cke_copyformatting_active' ); + documentElement.addClass( 'cke_copyformatting_tableresize_cursor' ); + + if ( editor.config.copyFormatting_outerCursor ) { + documentElement.addClass( 'cke_copyformatting_disabled' ); + } + } + + copyFormatting.sticky = isSticky; + + plugin._putScreenReaderMessage( editor, 'copied' ); + plugin._attachPasteKeystrokeHandler( editor ); + } + }, + + applyFormatting: { + editorFocus: CKEDITOR.env.ie && !CKEDITOR.env.edge ? false : true, + exec: function( editor, data ) { + var cmd = editor.getCommand( 'copyFormatting' ), + isFromKeystroke = data ? data.from == 'keystrokeHandler' : false, + plugin = CKEDITOR.plugins.copyformatting, + copyFormatting = editor.copyFormatting, + cursorContainer = plugin._getCursorContainer( editor ), + documentElement = CKEDITOR.document.getDocumentElement(), + isApplied; + + if ( isFromKeystroke && !copyFormatting.styles ) { + plugin._putScreenReaderMessage( editor, 'failed' ); + plugin._detachPasteKeystrokeHandler( editor ); + return false; + } + + isApplied = plugin._applyFormat( editor, copyFormatting.styles ); + + if ( !copyFormatting.sticky ) { + copyFormatting.styles = null; + + cursorContainer.removeClass( 'cke_copyformatting_active' ); + documentElement.removeClass( 'cke_copyformatting_disabled' ); + documentElement.removeClass( 'cke_copyformatting_tableresize_cursor' ); + + cmd.setState( CKEDITOR.TRISTATE_OFF ); + + plugin._detachPasteKeystrokeHandler( editor ); + } + + plugin._putScreenReaderMessage( editor, isApplied ? 'applied' : 'canceled' ); + } + } + }, + + /** + * Returns a container element where the mouse cursor should be overridden. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @return {CKEDITOR.dom.element} For inline editor, it is the editable itself and for classic editor + * it is the document element of the editor iframe. + * @private + */ + _getCursorContainer: function( editor ) { + if ( editor.elementMode === CKEDITOR.ELEMENT_MODE_INLINE ) { + return editor.editable(); + } + + return editor.editable().getParent(); + }, + + /** + * Converts a given element into a style definition that could be used to create an instance of {@link CKEDITOR.style}. + * + * Note that all definitions have a `type` property set to {@link CKEDITOR#STYLE_INLINE}. + * + * @param {CKEDITOR.dom.element} element The element to be converted. + * @returns {Object} The style definition created from the element. + * @private + */ + _convertElementToStyleDef: function( element ) { + var tools = CKEDITOR.tools, + attributes = element.getAttributes( CKEDITOR.plugins.copyformatting.excludedAttributes ), + styles = tools.parseCssText( element.getAttribute( 'style' ), true, true ); + + return { + element: element.getName(), + type: CKEDITOR.STYLE_INLINE, + attributes: attributes, + styles: styles + }; + }, + + /** + * Extracts styles from the given element and its ancestors. This function walks up the document tree, starting from + * the given element, and ends on the editor's editable or when the element from + * {@link CKEDITOR.plugins.copyformatting#breakOnElements} is reached. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @param {CKEDITOR.dom.element} element The element whose styles should be extracted. + * @returns {CKEDITOR.style[]} An array containing all extracted styles. + * @private + */ + _extractStylesFromElement: function( editor, element ) { + var eventData = {}, + styles = []; + + do { + // Skip all non-elements and bookmarks. + if ( element.type !== CKEDITOR.NODE_ELEMENT || element.hasAttribute( 'data-cke-bookmark' ) ) { + continue; + } + + eventData.element = element; + + if ( editor.copyFormatting.fire( 'extractFormatting', eventData, editor ) && eventData.styleDef ) { + styles.push( new CKEDITOR.style( eventData.styleDef ) ); + } + + // Break on list root. + if ( element.getName && indexOf( CKEDITOR.plugins.copyformatting.breakOnElements, element.getName() ) !== -1 ) { + break; + } + } while ( ( element = element.getParent() ) && element.type === CKEDITOR.NODE_ELEMENT ); + + return styles; + }, + + /** + * Extracts styles from the given range. This function finds all elements in the given range and then applies + * {@link CKEDITOR.plugins.copyformatting#_extractStylesFromElement} on them. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @param {CKEDITOR.dom.range} range The range that styles should be extracted from. + * @returns {CKEDITOR.style[]} An array containing all extracted styles. + * @private + * @todo Styles in the array returned by this method might be duplicated; it should be cleaned later on. + */ + _extractStylesFromRange: function( editor, range ) { + var styles = [], + walker = new CKEDITOR.dom.walker( range ), + currentNode; + + while ( ( currentNode = walker.next() ) ) { + styles = styles.concat( + CKEDITOR.plugins.copyformatting._extractStylesFromElement( editor, currentNode ) ); + } + + return styles; + }, + + /** + * Removes all styles from the element in a given range without + * removing the element itself. + * + * @param {CKEDITOR.dom.range} range The range where the element + * should be found. + * @param {String} element The tag name of the element. + * @private + */ + _removeStylesFromElementInRange: function( range, element ) { + // In case of lists, we want to remove styling only from the outer list. + var stopOnFirst = indexOf( [ 'ol', 'ul', 'table' ], element ) !== -1, + walker = new CKEDITOR.dom.walker( range ), + currentNode; + + while ( ( currentNode = walker.next() ) ) { + currentNode = currentNode.getAscendant( element, true ); + + if ( currentNode ) { + currentNode.removeAttributes( currentNode.getAttributes() ); + + if ( stopOnFirst ) { + return; + } + } + } + }, + + /** + * Gets offsets as well as start and end containers for the selected word. + * It also handles cases like `lunar`. + * + * @param {CKEDITOR.dom.range} range Selected range. + * @returns {Object} return An object with the following properties: + * @returns {CKEDITOR.dom.element} return.startNode The node where the word's beginning is located. + * @returns {Number} return.startOffset The offset inside the `startNode` indicating the word's beginning. + * @returns {CKEDITOR.dom.element} return.endNode The node where the word's ending is located. + * @returns {Number} return.endOffset The offset inside the `endNode` indicating the word's ending. + * @private + */ + _getSelectedWordOffset: function( range ) { + var regex = /\b\w+\b/ig, + contents, match, + node, startNode, endNode, + startOffset, endOffset; + + node = startNode = endNode = range.startContainer; + + // Get sibling node, skipping the comments. + function getSibling( node, isPrev ) { + return node[ isPrev ? 'getPrevious' : 'getNext' ]( function( sibling ) { + // We must skip all comments. + return sibling.type !== CKEDITOR.NODE_COMMENT; + } ); + } + + // Get node contents without tags. + function getNodeContents( node ) { + var html; + + // If the node is element, get its HTML and strip all tags and bookmarks + // and then search for word boundaries. In node.getText tags are + // replaced by spaces, which breaks getting the right offset. + if ( node.type == CKEDITOR.NODE_ELEMENT ) { + html = node.getHtml().replace( / <\/span>/g, '' ); + return html.replace( /<.*?>/g, '' ); + } + + return node.getText(); + } + + // Get the word beggining/ending from previous/next node with content (skipping empty nodes and bookmarks) + function getSiblingNodeOffset( startNode, isPrev ) { + var currentNode = startNode, + regex = /\s/g, + boundaryElements = [ 'p', 'br', 'ol', 'ul', 'li', 'td', 'th', 'div', 'caption', 'body' ], + isBoundary = false, + isParent = false, + sibling, contents, match, offset; + + do { + sibling = getSibling( currentNode, isPrev ); + + // If there is no sibling, text is probably inside element, so get it + // and then fetch its sibling. + while ( !sibling && currentNode.getParent() ) { + currentNode = currentNode.getParent(); + + // Check if the parent is a boundary. + if ( indexOf( boundaryElements, currentNode.getName() ) !== -1 ) { + isBoundary = true; + isParent = true; + break; + } + + sibling = getSibling( currentNode, isPrev ); + } + + // Check if the fetched element is not a boundary. + if ( sibling && sibling.getName && indexOf( boundaryElements, sibling.getName() ) !== -1 ) { + isBoundary = true; + break; + } + + currentNode = sibling; + } while ( currentNode && currentNode.getStyle && + ( currentNode.getStyle( 'display' ) == 'none' || !currentNode.getText() ) ); + + if ( !currentNode ) { + currentNode = startNode; + } + + // If the node is an element, get its text child. + // In case of searching for the next node and reaching boundary (which is not parent), + // we must get the *last* text child. + while ( currentNode.type !== CKEDITOR.NODE_TEXT ) { + if ( isBoundary && !isPrev && !isParent ) { + currentNode = currentNode.getChild( currentNode.getChildCount() - 1 ); + } else { + currentNode = currentNode.getChild( 0 ); + } + } + + contents = getNodeContents( currentNode ); + + while ( ( match = regex.exec( contents ) ) != null ) { + offset = match.index; + + if ( !isPrev ) { + break; + } + } + + // There is no space in fetched node and it's not a boundary node, + // so we must fetch one more node. + if ( typeof offset !== 'number' && !isBoundary ) { + return getSiblingNodeOffset( currentNode, isPrev ); + } + + // A little bit of math: + // * if we are searching for the beginning of the word and the word + // is located on the boundary of block element, set offset to 0. + // * if we are searching for the ending of the word and the word + // is located on the boundary of block element, set offset to + // the last occurrence of non-word character or node's length. + // * if we are searching for the beginning of the word, we must move the offset + // one character to the right (the space is located just before the word). + // * we must also ensure that the space is not located at the boundary of the node, + // otherwise we must return next node with appropriate offset. + if ( isBoundary ) { + if ( isPrev ) { + offset = 0; + } else { + regex = /([\.\b]*$)/; + match = regex.exec( contents ); + + offset = match ? match.index : contents.length; + } + } else if ( isPrev ) { + offset += 1; + + if ( offset > contents.length ) { + return getSiblingNodeOffset( currentNode ); + } + } + + return { + node: currentNode, + offset: offset + }; + } + + contents = getNodeContents( node ); + + while ( ( match = regex.exec( contents ) ) != null ) { + if ( match.index + match[ 0 ].length >= range.startOffset ) { + startOffset = match.index; + endOffset = match.index + match[ 0 ].length; + + // The word probably begins in previous node. + if ( match.index === 0 ) { + var startInfo = getSiblingNodeOffset( node, true ); + + startNode = startInfo.node; + startOffset = startInfo.offset; + } + + // The word probably ends in next node. + if ( endOffset >= contents.length ) { + var endInfo = getSiblingNodeOffset( node ); + + endNode = endInfo.node; + endOffset = endInfo.offset; + } + + return { + startNode: startNode, + startOffset: startOffset, + endNode: endNode, + endOffset: endOffset + }; + } + } + + return null; + }, + + /** + * Filters styles before applying them by using {@link CKEDITOR.filter}. + * + * @param {CKEDITOR.style[]} styles An array of styles to be filtered. + * @return {CKEDITOR.style[]} Filtered styles. + * @private + */ + _filterStyles: function( styles ) { + var isEmpty = CKEDITOR.tools.isEmpty, + filteredStyles = [], + styleDef, + i; + + for ( i = 0; i < styles.length; i++ ) { + styleDef = styles[ i ]._.definition; + + // Change element's name to span in case of inline boundary elements. + if ( CKEDITOR.tools.indexOf( CKEDITOR.plugins.copyformatting.inlineBoundary, + styleDef.element ) !== -1 ) { + styleDef.element = styles[ i ].element = 'span'; + } + + // We don't want to pick empty spans. + if ( styleDef.element === 'span' && isEmpty( styleDef.attributes ) && isEmpty( styleDef.styles ) ) { + continue; + } + + filteredStyles.push( styles[ i ] ); + } + + return filteredStyles; + }, + + /** + * Determines the context of the given selection. See {@link CKEDITOR.config#copyFormatting_allowedContexts} + * for a list of possible context values. + * + * @param {CKEDITOR.dom.range} range The range that the context should be determined from. + * @returns {String} + * @private + */ + _determineContext: function( range ) { + function detect( query ) { + var walker = new CKEDITOR.dom.walker( range ), + currentNode; + + // Walker sometimes does not include all nodes (e.g. if the range is in the middle of text node). + if ( range.startContainer.getAscendant( query, true ) || range.endContainer.getAscendant( query, true ) ) { + return true; + } + + while ( ( currentNode = walker.next() ) ) { + if ( currentNode.getAscendant( query, true ) ) { + return true; + } + } + } + + if ( detect( { ul: 1, ol: 1 } ) ) { + return 'list'; + } else if ( detect( 'table' ) ) { + return 'table'; + } else { + return 'text'; + } + }, + + /** + * Applies styles inside the plain text context. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @param {CKEDITOR.dom.range} range The range that the context can be determined from. + * @param {CKEDITOR.style[]} styles The styles to be applied. + * @private + */ + _applyStylesToTextContext: function( editor, range, styles ) { + var plugin = CKEDITOR.plugins.copyformatting, + attrsToExclude = plugin.excludedAttributesFromInlineTransform, + style, + i, + j; + + // We must select initial range in WebKit. Otherwise WebKit has problems with applying styles: + // it collapses selection. + if ( CKEDITOR.env.webkit && !CKEDITOR.env.chrome ) { + editor.getSelection().selectRanges( [ range ] ); + } + + for ( i = 0; i < styles.length; i++ ) { + style = styles[ i ]; + + if ( indexOf( plugin.excludedElementsFromInlineTransform, style.element ) !== -1 ) { + continue; + } + + if ( indexOf( plugin.elementsForInlineTransform, style.element ) !== -1 ) { + style.element = style._.definition.element = 'span'; + + for ( j = 0; j < attrsToExclude.length; j++ ) { + if ( style._.definition.attributes[ attrsToExclude[ j ] ] ) { + delete style._.definition.attributes[ attrsToExclude[ j ] ]; + } + } + } + + style.apply( editor ); + } + }, + + /** + * Applies the list style inside the list context. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @param {CKEDITOR.dom.range} range The range where the styles should be applied. + * @param {CKEDITOR.style[]} styles The style to be applied. + * @private + */ + _applyStylesToListContext: function( editor, range, styles ) { + var style, + bkm, + i; + + function applyToList( list, style ) { + if ( list.getName() !== style.element ) { + list.renameNode( style.element ); + } + + style.applyToObject( list ); + } + + for ( i = 0; i < styles.length; i++ ) { + style = styles[ i ]; + + // The bookmark is used to prevent the weird behavior of lists (e.g. not converting list type + // while applying styles from bullet list to the numbered one). Restoring the selection to its + // initial state after every change seems to do the trick. + bkm = range.createBookmark(); + + if ( style.element === 'ol' || style.element === 'ul' ) { + getNodeAndApplyCmd( range, { ul: 1, ol: 1 }, function( currentNode ) { + applyToList( currentNode, style ); + }, true ); + } else if ( style.element === 'li' ) { + getNodeAndApplyCmd( range, 'li', function( currentNode ) { + style.applyToObject( currentNode ); + } ); + } else { + CKEDITOR.plugins.copyformatting._applyStylesToTextContext( editor, range, [ style ] ); + } + + range.moveToBookmark( bkm ); + } + }, + + /** + * Applies the table style inside the table context. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @param {CKEDITOR.dom.range} range The range where the styles should be applied. + * @param {CKEDITOR.style[]} styles The style to be applied. + * @private + */ + _applyStylesToTableContext: function( editor, range, styles ) { + var style, + bkm, + i; + + function applyToTableCell( cell, style ) { + if ( cell.getName() !== style.element ) { + style = style.getDefinition(); + style.element = cell.getName(); + style = new CKEDITOR.style( style ); + } + + style.applyToObject( cell ); + } + + for ( i = 0; i < styles.length; i++ ) { + style = styles[ i ]; + + // The bookmark is used to prevent the weird behavior of tables (e.g. applying style to all cells + // instead of just selected cell). Restoring the selection to its initial state after every change + // seems to do the trick. + bkm = range.createBookmark(); + + if ( indexOf( [ 'table', 'tr' ], style.element ) !== -1 ) { + getNodeAndApplyCmd( range, style.element, function( currentNode ) { + style.applyToObject( currentNode ); + } ); + } else if ( indexOf( [ 'td', 'th' ], style.element ) !== -1 ) { + getNodeAndApplyCmd( range, { td: 1, th: 1 }, function( currentNode ) { + applyToTableCell( currentNode, style ); + } ); + } else if ( indexOf( [ 'thead', 'tbody' ], style.element ) !== -1 ) { + getNodeAndApplyCmd( range, { thead: 1, tbody: 1 }, function( currentNode ) { + applyToTableCell( currentNode, style ); + } ); + } else { + CKEDITOR.plugins.copyformatting._applyStylesToTextContext( editor, range, [ style ] ); + } + + range.moveToBookmark( bkm ); + } + }, + + + /** + * Initializes applying given styles to the currently selected content in the editor. + * + * The actual applying is performed inside event listeners for the + * {@link CKEDITOR.plugins.copyformatting.state#applyFormatting} event. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @param {CKEDITOR.style[]} newStyles An array of styles to be applied. + * @returns {Boolean} `false` if styles could not be applied, `true` otherwise. + * @private + */ + _applyFormat: function( editor, newStyles ) { + var range = editor.getSelection().getRanges()[ 0 ], + plugin = CKEDITOR.plugins.copyformatting, + word, + bkms, + applyEvtData; + + if ( !range ) { + return false; + } + + if ( range.collapsed ) { + // Create bookmarks only if range is collapsed – otherwise + // it will break walker used in _extractStylesFromRange. + bkms = editor.getSelection().createBookmarks(); + + if ( !( word = plugin._getSelectedWordOffset( range ) ) ) { + return; + } + + range = editor.createRange(); + range.setStart( word.startNode, word.startOffset ); + range.setEnd( word.endNode, word.endOffset ); + range.select(); + } + newStyles = plugin._filterStyles( newStyles ); + + applyEvtData = { styles: newStyles, range: range, preventFormatStripping: false }; + + // Now apply new styles. + if ( !editor.copyFormatting.fire( 'applyFormatting', applyEvtData, editor ) ) { + return false; + } + + if ( bkms ) { + editor.getSelection().selectBookmarks( bkms ); + } + + return true; + }, + + /** + * Puts a message solely for screen readers, meant to provide status updates for the Copy Formatting plugin. + * + * @param {CKEDITOR.editor} editor The editor instance. + * @param {string} msg The name of the message in the language file. + * @private + */ + _putScreenReaderMessage: function( editor, msg ) { + var container = this._getScreenReaderContainer(); + + if ( container ) { + container.setText( editor.lang.copyformatting.notification[ msg ] ); + } + }, + + /** + * Adds the screen reader messages wrapper. Multiple calls will create only one message container. + * + * @private + * @returns {CKEDITOR.dom.element} Inserted `aria-live` container. + */ + _addScreenReaderContainer: function() { + if ( this._getScreenReaderContainer() ) { + return this._getScreenReaderContainer(); + } + + if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) { + // Screen reader notifications are not supported on IE Quirks mode. + return; + } + + // We can't use aria-live together with .cke_screen_reader_only class. Based on JAWS it won't read + // `aria-live` which has directly `position: absolute` assigned. + // The trick was simply to put position absolute, and all the hiding CSS into a wrapper, + // while content with `aria-live` attribute inside. + var notificationTpl = '
        ' + + '
        ' + + '
        '; + + return CKEDITOR.document.getBody().append( CKEDITOR.dom.element.createFromHtml( notificationTpl ) ).getChild( 0 ); + }, + + + /** + * Returns a screen reader messages wrapper. + * + * @private + * @returns + */ + _getScreenReaderContainer: function() { + if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) { + // findOne is not supported on Quirks. + return; + } + + return CKEDITOR.document.getBody().findOne( '.cke_copyformatting_notification div[aria-live]' ); + }, + + /** + * Attaches the paste keystroke handler to the given editor instance. + * + * @private + * @param {CKEDITOR.editor} editor + */ + _attachPasteKeystrokeHandler: function( editor ) { + var keystrokePaste = editor.config.copyFormatting_keystrokePaste; + + if ( keystrokePaste ) { + this._initialKeystrokePasteCommand = editor.keystrokeHandler.keystrokes[ keystrokePaste ]; + editor.setKeystroke( keystrokePaste, 'applyFormatting' ); + } + }, + + /** + * Detaches the paste keystroke handler from the given editor instance. + * + * @private + * @param {CKEDITOR.editor} editor + */ + _detachPasteKeystrokeHandler: function( editor ) { + var keystrokePaste = editor.config.copyFormatting_keystrokePaste; + + if ( keystrokePaste ) { + editor.setKeystroke( keystrokePaste, this._initialKeystrokePasteCommand || false ); + } + } + }; + + /** + * Defines if the "disabled" cursor should be attached to the whole page + * when the Copy Formatting plugin is active. + * + * "Disabled" cursor indicates that Copy Formatting will not work in the place where the mouse cursor is placed. + * + * config.copyFormatting_outerCursor = false; + * + * Read more in the {@glink features/copyformatting documentation} + * and see the {@glink examples/copyformatting example}. + * + * @since 4.6.0 + * @cfg [copyFormatting_outerCursor=true] + * @member CKEDITOR.config + */ + CKEDITOR.config.copyFormatting_outerCursor = true; + + /** + * Defines rules for the elements from which the styles should be fetched. If set to `true`, it will disable + * filtering. + * + * This property is using Advanced Content Filter syntax. You can learn more about it in the + * [Content Filtering (ACF)](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) documentation. + * + * config.copyFormatting_allowRules = 'span(*)[*]{*}'; // Allows only spans. + * config.copyFormatting_allowRules = true; // Disables filtering. + * + * + * Read more in the {@glink features/copyformatting documentation} + * and see the {@glink examples/copyformatting example}. + * + * @since 4.6.0 + * @cfg [copyFormatting_allowRules='b; s; u; strong; span; p; div; table; thead; tbody; ' + + * 'tr; td; th; ol; ul; li; (*)[*]{*}'] + * @member CKEDITOR.config + */ + CKEDITOR.config.copyFormatting_allowRules = 'b s u i em strong span p div td th ol ul li(*)[*]{*}'; + + /** + * Defines rules for the elements from which fetching styles is explicitly forbidden (eg. widgets). + * + * This property is using Advanced Content Filter syntax. You can learn more about it in the + * [Content Filtering (ACF)](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html) documentation. + * + * config.copyFormatting_disallowRules = 'span(important)'; // Disallows spans with "important" class. + * + * + * Read more in the {@glink features/copyformatting documentation} + * and see the {@glink examples/copyformatting example}. + * + * @since 4.6.0 + * @cfg [copyFormatting_disallowRules='*[data-cke-widget*,data-widget*,data-cke-realelement](cke_widget*)'] + * @member CKEDITOR.config + */ + CKEDITOR.config.copyFormatting_disallowRules = '*[data-cke-widget*,data-widget*,data-cke-realelement](cke_widget*)'; + + /** + * Defines which contexts should be enabled in the Copy Formatting plugin. Available contexts are: + * + * * `'text'` – Plain text context. + * * `'list'` – List context. + * * `'table'` – Table context. + * + * Examples: + * + * // Enables only plain text context. + * config.copyFormatting_allowedContexts = [ 'text' ]; + * + * // If set to "true", enables all contexts. + * config.copyFormatting_allowedContexts = true; + * + * Read more in the {@glink features/copyformatting documentation} + * and see the {@glink examples/copyformatting example}. + * + * @since 4.6.0 + * @cfg {Boolean/String[]} [copyFormatting_allowedContexts=true] + * @member CKEDITOR.config + */ + CKEDITOR.config.copyFormatting_allowedContexts = true; + + /** + * Defines the keyboard shortcut for copying styles. + * + * config.copyFormatting_keystrokeCopy = CKEDITOR.CTRL + CKEDITOR.SHIFT + 66; // Ctrl+Shift+B + * + * The keyboard shortcut can also be switched off: + * + * config.copyFormatting_keystrokeCopy = false; + * + * Read more in the {@glink features/copyformatting documentation} + * and see the {@glink examples/copyformatting example}. + * + * @since 4.6.0 + * @cfg {Number} [copyFormatting_keystrokeCopy=CKEDITOR.CTRL + CKEDITOR.SHIFT + 67] + * @member CKEDITOR.config + */ + CKEDITOR.config.copyFormatting_keystrokeCopy = CKEDITOR.CTRL + CKEDITOR.SHIFT + 67; + + /** + * Defines the keyboard shortcut for applying styles. + * + * config.copyFormatting_keystrokePaste = CKEDITOR.CTRL + CKEDITOR.SHIFT + 77; // Ctrl+Shift+M + * + * The keyboard shortcut can also be switched off: + * + * config.copyFormatting_keystrokePaste = false; + * + * Read more in the {@glink features/copyformatting documentation} + * and see the {@glink examples/copyformatting example}. + * + * @since 4.6.0 + * @cfg {Number} [copyFormatting_keystrokePaste=CKEDITOR.CTRL + CKEDITOR.SHIFT + 86] + * @member CKEDITOR.config + */ + CKEDITOR.config.copyFormatting_keystrokePaste = CKEDITOR.CTRL + CKEDITOR.SHIFT + 86; + + /** + * Fired when the styles are being extracted from the element. This event is fired for each element separately. + * This event listener job is to extract inline styles from the element and modify them if needed. + * + * editor.copyFormatting.on( 'extractFormatting', function( evt ) { + * evt.data.styleDef.attributes.class = 'important'; + * } ); + * + * This event can also be canceled to indicate that styles from the current element should not + * be extracted. + * + * editor.copyFormatting.on( 'extractFormatting', function( evt ) { + * if ( evt.data.element === 'div' ) { + * evt.cancel(); + * } + * } ); + * + * This event has a default listener with a default priority of `10`. + * It extracts all styles from the element (from some of the attributes and from + * the element name) and puts them as an object into `evt.data.styleDef`. + * + * @event extractFormatting + * @member CKEDITOR.plugins.copyformatting.state + * @param {Object} data + * @param {CKEDITOR.dom.element} data.element The element whose styles should be fetched. + * @param {Object} data.styleDef Style definition extracted from the element. + */ + + /** + * Fired when the copied styles are applied to the current selection position. + * This event listener job is to apply new styles. + * + * editor.copyFormatting.on( 'applyFormatting', function( evt ) { + * for ( var i = 0; i < evt.data.styles.length; i++ ) { + * evt.data.styles[ i ].apply( evt.editor ); + * } + * }, null, null, 999 ); + * + * By default this event has two listeners: the first one with a default priority of `10` + * and the second with a priority of `999`. + * The first one removes all preexisting styles from the Copy Formatting destination. + * The second one applies all new styles to the current selection. + * + * @event applyFormatting + * @member CKEDITOR.plugins.copyformatting.state + * @param {Object} data + * @param {CKEDITOR.dom.range} data.range The range from the current selection where styling should be applied. + * @param {CKEDITOR.style[]} data.styles The styles to be applied. + * @param {Boolean} [data.preventFormatStripping=false] If set to `true`, it will prevent stripping styles from + * the Copy Formatting destination range. + */ +} )(); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/styles/copyformatting.css b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/styles/copyformatting.css index 4f87834e4d..ca108f48cc 100644 --- a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/styles/copyformatting.css +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/copyformatting/styles/copyformatting.css @@ -1,45 +1,45 @@ -/* -Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ - -html.cke_copyformatting_active { - min-height: 100%; -} - -/* There is no cursor in CUR format for IE/Edge as that browser - does not support custom cursor in [contenteditable] area. - Ticket for this issue: - https://connect.microsoft.com/IE/feedback/details/1070215/cant-change-cursor-in-contenteditable-using-css */ -.cke_copyformatting_disabled, -.cke_copyformatting_disabled a, -.cke_copyformatting_disabled .cke_editable { - cursor: url(../cursors/cursor-disabled.svg) 12 1, auto; -} - -.cke_copyformatting_disabled .cke_top a, -.cke_copyformatting_disabled .cke_bottom a { - cursor: default; -} - -/* Added `!important` rule as a fix for overriding the cursor by the Table Resize plugin. - The `!important` rule is used because the Table Resize plugin creates a `
        ` which changes the cursor using inlined styles. */ -.cke_copyformatting_active, -.cke_copyformatting_active.cke_editable, -.cke_copyformatting_active .cke_editable, -.cke_copyformatting_active a, -.cke_copyformatting_active table, -.cke_copyformatting_active div[data-cke-temp], -.cke_copyformatting_tableresize_cursor div[data-cke-temp] { - cursor: url(../cursors/cursor.svg) 12 1, auto !important; -} - -.cke_screen_reader_only { - position: absolute; - clip: rect(1px, 1px, 1px, 1px); - padding: 0; - border: 0; - height: 1px; - width: 1px; - overflow: hidden; -} +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ + +html.cke_copyformatting_active { + min-height: 100%; +} + +/* There is no cursor in CUR format for IE/Edge as that browser + does not support custom cursor in [contenteditable] area. + Ticket for this issue: + https://connect.microsoft.com/IE/feedback/details/1070215/cant-change-cursor-in-contenteditable-using-css */ +.cke_copyformatting_disabled, +.cke_copyformatting_disabled a, +.cke_copyformatting_disabled .cke_editable { + cursor: url(../cursors/cursor-disabled.svg) 12 1, auto; +} + +.cke_copyformatting_disabled .cke_top a, +.cke_copyformatting_disabled .cke_bottom a { + cursor: default; +} + +/* Added `!important` rule as a fix for overriding the cursor by the Table Resize plugin. + The `!important` rule is used because the Table Resize plugin creates a `
        ` which changes the cursor using inlined styles. */ +.cke_copyformatting_active, +.cke_copyformatting_active.cke_editable, +.cke_copyformatting_active .cke_editable, +.cke_copyformatting_active a, +.cke_copyformatting_active table, +.cke_copyformatting_active div[data-cke-temp], +.cke_copyformatting_tableresize_cursor div[data-cke-temp] { + cursor: url(../cursors/cursor.svg) 12 1, auto !important; +} + +.cke_screen_reader_only { + position: absolute; + clip: rect(1px, 1px, 1px, 1px); + padding: 0; + border: 0; + height: 1px; + width: 1px; + overflow: hidden; +} diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/anchor.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/anchor.js index 2359431005..e6aac74e82 100644 --- a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/anchor.js +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/anchor.js @@ -1,8 +1,161 @@ -/* - Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -CKEDITOR.dialog.add("anchor",function(c){function d(b,a){return b.createFakeElement(b.document.createElement("a",{attributes:a}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,getModel:function(b){var a=b.getSelection();b=a.getRanges()[0];a=a.getSelectedElement();b.shrink(CKEDITOR.SHRINK_ELEMENT);(a=b.getEnclosedNode())&&a.type===CKEDITOR.NODE_TEXT&&(a=a.getParent());b=a&&a.type===CKEDITOR.NODE_ELEMENT&&("anchor"===a.data("cke-real-element-type")||a.is("a"))? -a:void 0;return b||null},onOk:function(){var b=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),b={id:b,name:b,"data-cke-saved-name":b},a=this.getModel(c);a?a.data("cke-realelement")?(b=d(c,b),b.replace(a),CKEDITOR.env.ie&&c.getSelection().selectElement(b)):a.setAttributes(b):(a=(a=c.getSelection())&&a.getRanges()[0],a.collapsed?(b=d(c,b),a.insertNode(b)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(b["class"]="cke_anchor"),b=new CKEDITOR.style({element:"a",attributes:b}),b.type=CKEDITOR.STYLE_INLINE, -b.applyToRange(a)))},onShow:function(){var b=c.getSelection(),a=this.getModel(c),d=a&&a.data("cke-realelement");if(a=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a):CKEDITOR.plugins.link.getSelectedLink(c)){var e=a.data("cke-saved-name");this.setValueOf("info","txtName",e||"");!d&&b.selectElement(a)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()? -!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}}); \ No newline at end of file +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.dialog.add( 'anchor', function( editor ) { + // Function called in onShow to load selected element. + var loadElements = function( element ) { + var attributeValue = element.data( 'cke-saved-name' ); + this.setValueOf( 'info', 'txtName', attributeValue || '' ); + }; + + function createFakeAnchor( editor, attributes ) { + return editor.createFakeElement( editor.document.createElement( 'a', { + attributes: attributes + } ), 'cke_anchor', 'anchor' ); + } + + + function getSelectedAnchor( selection ) { + var range = selection.getRanges()[ 0 ], + element = selection.getSelectedElement(); + + // In case of table cell selection, we want to shrink selection from td to a element. + range.shrink( CKEDITOR.SHRINK_ELEMENT ); + element = range.getEnclosedNode(); + + // If selection is inside text, get its parent element (#3437). + if ( element && element.type === CKEDITOR.NODE_TEXT ) { + element = element.getParent(); + } + + // If anchor exists and has any styles find the closest parent tag. (#3863) + if ( element && !element.is( 'a' ) ) { + element = element.getAscendant( 'a' ) || element; + } + + if ( element && element.type === CKEDITOR.NODE_ELEMENT && + ( element.data( 'cke-real-element-type' ) === 'anchor' || element.is( 'a' ) ) ) { + return element; + } + } + + function removeAnchorsWithinRange( range ) { + var newRange = range.clone(); + newRange.enlarge( CKEDITOR.ENLARGE_ELEMENT ); + + var walker = new CKEDITOR.dom.walker( newRange ), + element = newRange.collapsed ? newRange.startContainer : walker.next(), + bookmark = range.createBookmark(); + + while ( element ) { + if ( element.type === CKEDITOR.NODE_ELEMENT && element.getAttribute( 'data-cke-saved-name' ) ) { + element.remove( true ); + // Reset the walker and start from beginning, to check if element has more nested anchors. + // Without it, next element is null, so there might be space to more nested elements. + walker.reset(); + } + element = walker.next(); + } + range.moveToBookmark( bookmark ); + } + + return { + title: editor.lang.link.anchor.title, + minWidth: 300, + minHeight: 60, + getModel: function( editor ) { + return getSelectedAnchor( editor.getSelection() ) || null; + }, + onOk: function() { + var name = CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtName' ) ), + attributes = { + id: name, + name: name, + 'data-cke-saved-name': name + }, + selectedElement = this.getModel( editor ); + + if ( selectedElement ) { + if ( selectedElement.data( 'cke-realelement' ) ) { + var newFake = createFakeAnchor( editor, attributes ); + newFake.replace( selectedElement ); + + // Selecting fake element for IE. (https://dev.ckeditor.com/ticket/11377) + if ( CKEDITOR.env.ie ) { + editor.getSelection().selectElement( newFake ); + } + } else { + selectedElement.setAttributes( attributes ); + } + } else { + var sel = editor.getSelection(), + range = sel && sel.getRanges()[ 0 ]; + + // Empty anchor + if ( range.collapsed ) { + var anchor = createFakeAnchor( editor, attributes ); + range.insertNode( anchor ); + } else { + if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) + attributes[ 'class' ] = 'cke_anchor'; + + // (#4728) + removeAnchorsWithinRange( range ); + // Apply style. + var style = new CKEDITOR.style( { element: 'a', attributes: attributes } ); + style.type = CKEDITOR.STYLE_INLINE; + style.applyToRange( range ); + } + } + }, + + onShow: function() { + var sel = editor.getSelection(), + fullySelected = this.getModel( editor ), + fakeSelected = fullySelected && fullySelected.data( 'cke-realelement' ), + linkElement = fakeSelected ? + CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, fullySelected ) : + CKEDITOR.plugins.link.getSelectedLink( editor ); + + if ( linkElement ) { + loadElements.call( this, linkElement ); + !fakeSelected && sel.selectElement( linkElement ); + } + + this.getContentElement( 'info', 'txtName' ).focus(); + }, + contents: [ { + id: 'info', + label: editor.lang.link.anchor.title, + accessKey: 'I', + elements: [ { + type: 'text', + id: 'txtName', + label: editor.lang.link.anchor.name, + required: true, + validate: function() { + // https://html.spec.whatwg.org/multipage/dom.html#global-attributes + // The id attribute value must not contain any space characters (#5305). + // [ space, tabulation, line feed, new line, form feed, carriage return ] + var disallowedWhitespacesRegex = /[\u0020\u0009\u000a\u000c\u000d]/g, + content = this.getValue(); + + if ( !content ) { + alert( editor.lang.link.anchor.errorName ); // jshint ignore:line + return false; + } + + // Disallow creating anchors with space characters (#5305). + if ( disallowedWhitespacesRegex.test( content ) ) { + alert( editor.lang.link.anchor.errorWhitespace ); // jshint ignore:line + return false; + } + + return true; + } + } ] + } ] + }; +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/link.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/link.js index 5d3517b319..8ed45057ef 100644 --- a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/link.js +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/dialogs/link.js @@ -1,30 +1,1098 @@ -/* - Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -(function(){function u(){var c=this.getDialog(),p=c._.editor,n=p.config.linkPhoneRegExp,q=p.config.linkPhoneMsg,p=CKEDITOR.dialog.validate.notEmpty(p.lang.link.noTel).apply(this);if(!c.getContentElement("info","linkType")||"tel"!=c.getValueOf("info","linkType"))return!0;if(!0!==p)return p;if(n)return CKEDITOR.dialog.validate.regex(n,q).call(this)}CKEDITOR.dialog.add("link",function(c){function p(a,b){var c=a.createRange();c.setStartBefore(b);c.setEndAfter(b);return c}var n=CKEDITOR.plugins.link,q, -t=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),r=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),r){case "frame":a.setLabel(c.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(c.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(r),a.getElement().hide()}},d=function(a){a.target&&this.setValue(a.target[this.id]||"")},g=function(a){a.advanced&& -this.setValue(a.advanced[this.id]||"")},e=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},k=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},h=c.lang.common,b=c.lang.link,l;return{title:b.title,minWidth:"moono-lisa"==(CKEDITOR.skinName||c.config.skin)?450:350,minHeight:240,getModel:function(a){return n.getSelectedLink(a,!0)[0]||null},contents:[{id:"info",label:b.info,title:b.info,elements:[{type:"text",id:"linkDisplayText",label:b.displayText, -setup:function(){this.enable();this.setValue(c.getSelection().getSelectedText());q=this.getValue()},commit:function(a){a.linkText=this.isEnabled()?this.getValue():""}},{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"],[b.toPhone,"tel"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions","telOptions"],r=this.getValue(),f=a.definition.getContents("upload"),f=f&&f.hidden;"url"==r?(c.config.linkShowTargetTab&& -a.showPage("target"),f||a.showPage("upload")):(a.hidePage("target"),f||a.hidePage("upload"));for(f=0;f=f.length&&n.showDisplayTextForElement(m,a)?c.show():c.hide();this._.selectedElements=f;this.setupContent(b)},onOk:function(){var a={};this.commitContent(a);if(this._.selectedElements.length){var b=this._.selectedElements,h=n.getLinkAttributes(c,a),f=[],m,l,d,g,e,k;for(k=0;k' + CKEDITOR.tools.htmlEncode( linkLang.noAnchors ) + '
        ', + // Focus the first element defined in above html. + focus: true, + setup: function() { + this.getElement()[ anchors && anchors.length ? 'hide' : 'show' ](); + } + } ], + setup: function() { + if ( !this.getDialog().getContentElement( 'info', 'linkType' ) ) { + this.getElement().hide(); + } + } + }, + { + type: 'vbox', + id: 'emailOptions', + padding: 1, + children: [ { + type: 'text', + id: 'emailAddress', + label: linkLang.emailAddress, + required: true, + validate: function() { + var dialog = this.getDialog(); + + if ( !dialog.getContentElement( 'info', 'linkType' ) || dialog.getValueOf( 'info', 'linkType' ) != 'email' ) { + return true; + } + + var func = CKEDITOR.dialog.validate.notEmpty( linkLang.noEmail ); + return func.apply( this ); + }, + setup: function( data ) { + if ( data.email ) { + this.setValue( data.email.address ); + } + + var linkType = this.getDialog().getContentElement( 'info', 'linkType' ); + if ( linkType && linkType.getValue() == 'email' ) { + this.select(); + } + }, + commit: function( data ) { + if ( !data.email ) { + data.email = {}; + } + + data.email.address = this.getValue(); + } + }, + { + type: 'text', + id: 'emailSubject', + label: linkLang.emailSubject, + setup: function( data ) { + if ( data.email ) { + this.setValue( data.email.subject ); + } + }, + commit: function( data ) { + if ( !data.email ) { + data.email = {}; + } + + data.email.subject = this.getValue(); + } + }, + { + type: 'textarea', + id: 'emailBody', + label: linkLang.emailBody, + rows: 3, + 'default': '', + setup: function( data ) { + if ( data.email ) { + this.setValue( data.email.body ); + } + }, + commit: function( data ) { + if ( !data.email ) { + data.email = {}; + } + + data.email.body = this.getValue(); + } + } ], + setup: function() { + if ( !this.getDialog().getContentElement( 'info', 'linkType' ) ) { + this.getElement().hide(); + } + } + }, + { + type: 'vbox', + id: 'telOptions', + padding: 1, + children: [ { + type: 'tel', + id: 'telNumber', + label: linkLang.phoneNumber, + required: true, + validate: validateTelNumber, + setup: function( data ) { + if ( data.tel ) { + this.setValue( data.tel ); + } + + var linkType = this.getDialog().getContentElement( 'info', 'linkType' ); + if ( linkType && linkType.getValue() == 'tel' ) { + this.select(); + } + }, + commit: function( data ) { + data.tel = this.getValue(); + } + } ], + setup: function() { + if ( !this.getDialog().getContentElement( 'info', 'linkType' ) ) { + this.getElement().hide(); + } + } + } ] + }, + { + id: 'target', + requiredContent: 'a[target]', // This is not fully correct, because some target option requires JS. + label: linkLang.target, + title: linkLang.target, + elements: [ { + type: 'hbox', + widths: [ '50%', '50%' ], + children: [ { + type: 'select', + id: 'linkTargetType', + label: commonLang.target, + 'default': 'notSet', + style: 'width : 100%;', + 'items': [ + [ commonLang.notSet, 'notSet' ], + [ linkLang.targetFrame, 'frame' ], + [ linkLang.targetPopup, 'popup' ], + [ commonLang.targetNew, '_blank' ], + [ commonLang.targetTop, '_top' ], + [ commonLang.targetSelf, '_self' ], + [ commonLang.targetParent, '_parent' ] + ], + onChange: targetChanged, + setup: function( data ) { + if ( data.target ) { + this.setValue( data.target.type || 'notSet' ); + } + targetChanged.call( this ); + }, + commit: function( data ) { + if ( !data.target ) { + data.target = {}; + } + + data.target.type = this.getValue(); + } + }, + { + type: 'text', + id: 'linkTargetName', + label: linkLang.targetFrameName, + 'default': '', + setup: function( data ) { + if ( data.target ) { + this.setValue( data.target.name ); + } + }, + commit: function( data ) { + if ( !data.target ) { + data.target = {}; + } + + data.target.name = this.getValue().replace( /([^\x00-\x7F]|\s)/gi, '' ); + } + } ] + }, + { + type: 'vbox', + width: '100%', + align: 'center', + padding: 2, + id: 'popupFeatures', + children: [ { + type: 'fieldset', + label: linkLang.popupFeatures, + children: [ { + type: 'hbox', + children: [ { + type: 'checkbox', + id: 'resizable', + label: linkLang.popupResizable, + setup: setupPopupParams, + commit: commitPopupParams + }, + { + type: 'checkbox', + id: 'status', + label: linkLang.popupStatusBar, + setup: setupPopupParams, + commit: commitPopupParams + } ] + }, + { + type: 'hbox', + children: [ { + type: 'checkbox', + id: 'location', + label: linkLang.popupLocationBar, + setup: setupPopupParams, + commit: commitPopupParams + }, + { + type: 'checkbox', + id: 'toolbar', + label: linkLang.popupToolbar, + setup: setupPopupParams, + commit: commitPopupParams + } ] + }, + { + type: 'hbox', + children: [ { + type: 'checkbox', + id: 'menubar', + label: linkLang.popupMenuBar, + setup: setupPopupParams, + commit: commitPopupParams + }, + { + type: 'checkbox', + id: 'fullscreen', + label: linkLang.popupFullScreen, + setup: setupPopupParams, + commit: commitPopupParams + } ] + }, + { + type: 'hbox', + children: [ { + type: 'checkbox', + id: 'scrollbars', + label: linkLang.popupScrollBars, + setup: setupPopupParams, + commit: commitPopupParams + }, + { + type: 'checkbox', + id: 'dependent', + label: linkLang.popupDependent, + setup: setupPopupParams, + commit: commitPopupParams + } ] + }, + { + type: 'hbox', + children: [ { + type: 'text', + widths: [ '50%', '50%' ], + labelLayout: 'horizontal', + label: commonLang.width, + id: 'width', + setup: setupPopupParams, + commit: commitPopupParams + }, + { + type: 'text', + labelLayout: 'horizontal', + widths: [ '50%', '50%' ], + label: linkLang.popupLeft, + id: 'left', + setup: setupPopupParams, + commit: commitPopupParams + } ] + }, + { + type: 'hbox', + children: [ { + type: 'text', + labelLayout: 'horizontal', + widths: [ '50%', '50%' ], + label: commonLang.height, + id: 'height', + setup: setupPopupParams, + commit: commitPopupParams + }, + { + type: 'text', + labelLayout: 'horizontal', + label: linkLang.popupTop, + widths: [ '50%', '50%' ], + id: 'top', + setup: setupPopupParams, + commit: commitPopupParams + } ] + } ] + } ] + } ] + }, + { + id: 'upload', + label: linkLang.upload, + title: linkLang.upload, + hidden: true, + filebrowser: 'uploadButton', + elements: [ { + type: 'file', + id: 'upload', + label: commonLang.upload, + style: 'height:40px', + size: 29 + }, + { + type: 'fileButton', + id: 'uploadButton', + label: commonLang.uploadSubmit, + filebrowser: 'info:url', + 'for': [ 'upload', 'upload' ] + } ] + }, + { + id: 'advanced', + label: linkLang.advanced, + title: linkLang.advanced, + elements: [ { + type: 'vbox', + padding: 1, + children: [ { + type: 'hbox', + widths: [ '45%', '35%', '20%' ], + children: [ { + type: 'text', + id: 'advId', + requiredContent: 'a[id]', + label: linkLang.id, + setup: setupAdvParams, + commit: commitAdvParams + }, + { + type: 'select', + id: 'advLangDir', + requiredContent: 'a[dir]', + label: linkLang.langDir, + 'default': '', + style: 'width:110px', + items: [ + [ commonLang.notSet, '' ], + [ linkLang.langDirLTR, 'ltr' ], + [ linkLang.langDirRTL, 'rtl' ] + ], + setup: setupAdvParams, + commit: commitAdvParams + }, + { + type: 'text', + id: 'advAccessKey', + requiredContent: 'a[accesskey]', + width: '80px', + label: linkLang.acccessKey, + maxLength: 1, + setup: setupAdvParams, + commit: commitAdvParams + } ] + }, + { + type: 'hbox', + widths: [ '45%', '35%', '20%' ], + children: [ { + type: 'text', + label: linkLang.name, + id: 'advName', + requiredContent: 'a[name]', + setup: setupAdvParams, + commit: commitAdvParams + }, + { + type: 'text', + label: linkLang.langCode, + id: 'advLangCode', + requiredContent: 'a[lang]', + width: '110px', + 'default': '', + setup: setupAdvParams, + commit: commitAdvParams + }, + { + type: 'text', + label: linkLang.tabIndex, + id: 'advTabIndex', + requiredContent: 'a[tabindex]', + width: '80px', + maxLength: 5, + setup: setupAdvParams, + commit: commitAdvParams + } ] + } ] + }, + { + type: 'vbox', + padding: 1, + children: [ { + type: 'hbox', + widths: [ '45%', '55%' ], + children: [ { + type: 'text', + label: linkLang.advisoryTitle, + requiredContent: 'a[title]', + 'default': '', + id: 'advTitle', + setup: setupAdvParams, + commit: commitAdvParams + }, + { + type: 'text', + label: linkLang.advisoryContentType, + requiredContent: 'a[type]', + 'default': '', + id: 'advContentType', + setup: setupAdvParams, + commit: commitAdvParams + } ] + }, + { + type: 'hbox', + widths: [ '45%', '55%' ], + children: [ { + type: 'text', + label: linkLang.cssClasses, + requiredContent: 'a(cke-xyz)', // Random text like 'xyz' will check if all are allowed. + 'default': '', + id: 'advCSSClasses', + setup: setupAdvParams, + commit: commitAdvParams + }, + { + type: 'text', + label: linkLang.charset, + requiredContent: 'a[charset]', + 'default': '', + id: 'advCharset', + setup: setupAdvParams, + commit: commitAdvParams + } ] + }, + { + type: 'hbox', + widths: [ '45%', '55%' ], + children: [ { + type: 'text', + label: linkLang.rel, + requiredContent: 'a[rel]', + 'default': '', + id: 'advRel', + setup: setupAdvParams, + commit: commitAdvParams + }, + { + type: 'text', + label: linkLang.styles, + requiredContent: 'a{cke-xyz}', // Random text like 'xyz' will check if all are allowed. + 'default': '', + id: 'advStyles', + validate: CKEDITOR.dialog.validate.inlineStyle( editor.lang.common.invalidInlineStyle ), + setup: setupAdvParams, + commit: commitAdvParams + } ] + }, + { + type: 'hbox', + widths: [ '45%', '55%' ], + children: [ { + type: 'checkbox', + id: 'download', + requiredContent: 'a[download]', + label: linkLang.download, + setup: function( data ) { + if ( data.download !== undefined ) { + this.setValue( 'checked', 'checked' ); + } + }, + commit: function( data ) { + if ( this.getValue() ) { + data.download = this.getValue(); + } + } + } ] + } ] + } ] + } ], + onShow: function() { + var editor = this.getParentEditor(), + selection = editor.getSelection(), + displayTextField = this.getContentElement( 'info', 'linkDisplayText' ).getElement().getParent().getParent(), + elements = plugin.getSelectedLink( editor, true ), + firstLink = elements[ 0 ] || null; + + // Fill in all the relevant fields if there's already one link selected. + if ( firstLink && firstLink.hasAttribute( 'href' ) ) { + // Don't change selection if some element is already selected. + // For example - don't destroy fake selection. + if ( !selection.getSelectedElement() && !selection.isInTable() ) { + selection.selectElement( firstLink ); + } + } + + var data = plugin.parseLinkAttributes( editor, firstLink ); + + // Here we'll decide whether or not we want to show Display Text field. + if ( elements.length <= 1 && plugin.showDisplayTextForElement( firstLink, editor ) ) { + displayTextField.show(); + } else { + displayTextField.hide(); + } + + // Record down the selected element in the dialog. + this._.selectedElements = elements; + + this.setupContent( data ); + }, + onOk: function() { + var data = {}; + + // Collect data from fields. + this.commitContent( data ); + + if ( !this._.selectedElements.length ) { + insertLinksIntoSelection( editor, data ); + } else { + editLinksInSelection( editor, this._.selectedElements, data ); + + delete this._.selectedElements; + } + }, + onLoad: function() { + if ( !editor.config.linkShowAdvancedTab ) { + this.hidePage( 'advanced' ); //Hide Advanded tab. + } + + if ( !editor.config.linkShowTargetTab ) { + this.hidePage( 'target' ); //Hide Target tab. + } + }, + // Inital focus on 'url' field if link is of type URL. + onFocus: function() { + var linkType = this.getContentElement( 'info', 'linkType' ), + urlField; + + if ( linkType && linkType.getValue() == 'url' ) { + urlField = this.getContentElement( 'info', 'url' ); + urlField.select(); + } + } + }; + } ); + + function validateTelNumber() { + var dialog = this.getDialog(), + editor = dialog._.editor, + regExp = editor.config.linkPhoneRegExp, + msg = editor.config.linkPhoneMsg, + linkLang = editor.lang.link, + messageWhenEmpty = CKEDITOR.dialog.validate.notEmpty( linkLang.noTel ).apply( this ); + + if ( !dialog.getContentElement( 'info', 'linkType' ) || dialog.getValueOf( 'info', 'linkType' ) != 'tel' ) { + return true; + } + + if ( messageWhenEmpty !== true ) { + return messageWhenEmpty; + } + + if ( regExp ) { + return CKEDITOR.dialog.validate.regex( regExp, msg ).call( this ); + } + } +} )(); +// jscs:disable maximumLineLength +/** + * The e-mail address anti-spam protection option. The protection will be + * applied when creating or modifying e-mail links through the editor interface. + * + * Two methods of protection can be chosen: + * + * 1. The e-mail parts (name, domain, and any other query string) are + * assembled into a function call pattern. Such function must be + * provided by the developer in the pages that will use the contents. + * 2. Only the e-mail address is obfuscated into a special string that + * has no meaning for humans or spam bots, but which is properly + * rendered and accepted by the browser. + * + * Both approaches require JavaScript to be enabled. + * + * // href="mailto:tester@ckeditor.com?subject=subject&body=body" + * config.emailProtection = ''; + * + * // href="e-mail" + * config.emailProtection = 'encode'; + * + * // href="javascript:mt('tester','ckeditor.com','subject','body')" + * config.emailProtection = 'mt(NAME,DOMAIN,SUBJECT,BODY)'; + * + * @since 3.1.0 + * @cfg {String} [emailProtection='' (empty string = disabled)] + * @member CKEDITOR.config + */ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/anchor-rtl.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/anchor-rtl.png new file mode 100644 index 0000000000..b06885589c Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/anchor-rtl.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/anchor.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/anchor.png new file mode 100644 index 0000000000..e50d6cd83e Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/anchor.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/anchor-rtl.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/anchor-rtl.png new file mode 100644 index 0000000000..3533c38876 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/anchor-rtl.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/anchor.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/anchor.png new file mode 100644 index 0000000000..99eeaddcbc Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/anchor.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/link.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/link.png new file mode 100644 index 0000000000..43ce99ed22 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/link.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/unlink.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/unlink.png new file mode 100644 index 0000000000..8ace29df16 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/hidpi/unlink.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/link.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/link.png new file mode 100644 index 0000000000..c2c450f7f4 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/link.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/unlink.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/unlink.png new file mode 100644 index 0000000000..c2f3f648e2 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/icons/unlink.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/af.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/af.js new file mode 100644 index 0000000000..41aa217580 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/af.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'af', { + acccessKey: 'Toegangsleutel', + advanced: 'Gevorderd', + advisoryContentType: 'Aanbevole inhoudstipe', + advisoryTitle: 'Aanbevole titel', + anchor: { + toolbar: 'Anker byvoeg/verander', + menu: 'Anker-eienskappe', + title: 'Anker-eienskappe', + name: 'Ankernaam', + errorName: 'Voltooi die ankernaam asseblief', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'Op element Id', + anchorName: 'Op ankernaam', + charset: 'Karakterstel van geskakelde bron', + cssClasses: 'CSS klasse', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-posadres', + emailBody: 'Berig-inhoud', + emailSubject: 'Berig-onderwerp', + id: 'Id', + info: 'Skakel informasie', + langCode: 'Taalkode', + langDir: 'Skryfrigting', + langDirLTR: 'Links na regs (LTR)', + langDirRTL: 'Regs na links (RTL)', + menu: 'Wysig skakel', + name: 'Naam', + noAnchors: '(Geen ankers beskikbaar in dokument)', + noEmail: 'Gee die e-posadres', + noUrl: 'Gee die skakel se URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Afhanklik (Netscape)', + popupFeatures: 'Eienskappe van opspringvenster', + popupFullScreen: 'Volskerm (IE)', + popupLeft: 'Posisie links', + popupLocationBar: 'Adresbalk', + popupMenuBar: 'Spyskaartbalk', + popupResizable: 'Herskaalbaar', + popupScrollBars: 'Skuifbalke', + popupStatusBar: 'Statusbalk', + popupToolbar: 'Werkbalk', + popupTop: 'Posisie bo', + rel: 'Relationship', // MISSING + selectAnchor: 'Kies \'n anker', + styles: 'Styl', + tabIndex: 'Tab indeks', + target: 'Doel', + targetFrame: '', + targetFrameName: 'Naam van doelraam', + targetPopup: '', + targetPopupName: 'Naam van opspringvenster', + title: 'Skakel', + toAnchor: 'Anker in bladsy', + toEmail: 'E-pos', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Skakel invoeg/wysig', + type: 'Skakelsoort', + unlink: 'Verwyder skakel', + upload: 'Oplaai' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ar.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ar.js new file mode 100644 index 0000000000..9d71eb9c5c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ar.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ar', { + acccessKey: 'مفاتيح الإختصار', + advanced: 'متقدم', + advisoryContentType: 'نوع التقرير', + advisoryTitle: 'عنوان التقرير', + anchor: { + toolbar: 'إشارة مرجعية', + menu: 'تحرير الإشارة المرجعية', + title: 'خصائص الإشارة المرجعية', + name: 'اسم الإشارة المرجعية', + errorName: 'الرجاء كتابة اسم الإشارة المرجعية', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'إزالة الإشارة المرجعية' + }, + anchorId: 'حسب رقم العنصر', + anchorName: 'حسب إسم الإشارة المرجعية', + charset: 'ترميز المادة المطلوبة', + cssClasses: 'فئات التنسيق', + download: 'فرض التحميل', + displayText: 'نص العرض', + emailAddress: 'البريد الإلكتروني', + emailBody: 'محتوى الرسالة', + emailSubject: 'موضوع الرسالة', + id: 'هوية', + info: 'معلومات الرابط', + langCode: 'رمز اللغة', + langDir: 'إتجاه نص اللغة', + langDirLTR: 'اليسار لليمين (LTR)', + langDirRTL: 'اليمين لليسار (RTL)', + menu: 'تحرير الرابط', + name: 'إسم', + noAnchors: '(لا توجد علامات مرجعية في هذا المستند)', + noEmail: 'الرجاء كتابة الريد الإلكتروني', + noUrl: 'الرجاء كتابة رابط الموقع', + noTel: 'Please type the phone number', // MISSING + other: '<أخرى>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'تابع (Netscape)', + popupFeatures: 'خصائص النافذة المنبثقة', + popupFullScreen: 'ملئ الشاشة (IE)', + popupLeft: 'التمركز لليسار', + popupLocationBar: 'شريط العنوان', + popupMenuBar: 'القوائم الرئيسية', + popupResizable: 'قابلة التشكيل', + popupScrollBars: 'أشرطة التمرير', + popupStatusBar: 'شريط الحالة', + popupToolbar: 'شريط الأدوات', + popupTop: 'التمركز للأعلى', + rel: 'العلاقة', + selectAnchor: 'اختر علامة مرجعية', + styles: 'نمط', + tabIndex: 'الترتيب', + target: 'هدف الرابط', + targetFrame: '<إطار>', + targetFrameName: 'اسم الإطار المستهدف', + targetPopup: '<نافذة منبثقة>', + targetPopupName: 'اسم النافذة المنبثقة', + title: 'رابط', + toAnchor: 'مكان في هذا المستند', + toEmail: 'بريد إلكتروني', + toUrl: 'الرابط', + toPhone: 'Phone', // MISSING + toolbar: 'رابط', + type: 'نوع الربط', + unlink: 'إزالة رابط', + upload: 'رفع' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/az.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/az.js new file mode 100644 index 0000000000..0f8019e131 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/az.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'az', { + acccessKey: 'Qısayol düyməsi', + advanced: 'Geniş seçimləri', + advisoryContentType: 'Məsləhətli məzmunun növü', + advisoryTitle: 'Məsləhətli başlıq', + anchor: { + toolbar: 'Xeş', + menu: 'Xeşi redaktə et', + title: 'Xeşin seçimləri', + name: 'Xeşin adı', + errorName: 'Xeşin adı yanlışdır', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Xeşin adı sil' + }, + anchorId: 'ID görə', + anchorName: 'Xeşin adına görə', + charset: 'Hədəfin kodlaşdırması', + cssClasses: 'Üslub klası', + download: 'Məcburi yükləmə', + displayText: 'Göstərilən mətn', + emailAddress: 'E-poçt ünvanı', + emailBody: 'Mesajın məzmunu', + emailSubject: 'Mesajın başlığı', + id: 'ID', + info: 'Linkin xüsusiyyətləri', + langCode: 'Dilin kodu', + langDir: 'Yaziların istiqaməti', + langDirLTR: 'Soldan sağa (LTR)', + langDirRTL: 'Sağdan sola (RTL)', + menu: 'Linki redaktə et', + name: 'Ad', + noAnchors: '(heç bir xeş tapılmayıb)', + noEmail: 'E-poçt ünvanı daxil edin', + noUrl: 'Linkin URL-ı daxil edin', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Asılı (Netscape)', + popupFeatures: 'Pəncərənin xüsusiyyətləri', + popupFullScreen: 'Tam ekran rejimi (IE)', + popupLeft: 'Solda', + popupLocationBar: 'Ünvan paneli', + popupMenuBar: 'Menyu paneli', + popupResizable: 'Olçülər dəyişilir', + popupScrollBars: 'Sürüşdürmələr göstər', + popupStatusBar: 'Bildirişlərin paneli', + popupToolbar: 'Alətlərin paneli', + popupTop: 'Yuxarıda', + rel: 'Münasibət', + selectAnchor: 'Xeşi seçin', + styles: 'Üslub', + tabIndex: 'Tabın nömrəsi', + target: 'Hədəf çərçivə', + targetFrame: '', + targetFrameName: 'Freymin adı', + targetPopup: '', + targetPopupName: 'Pəncərənin adı', + title: 'Link', + toAnchor: 'Xeş', + toEmail: 'E-poçt', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Link', + type: 'Linkin növü', + unlink: 'Linki sil', + upload: 'Serverə yüklə' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bg.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bg.js new file mode 100644 index 0000000000..775b4fe392 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bg.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'bg', { + acccessKey: 'Клавиш за достъп', + advanced: 'Разширено', + advisoryContentType: 'Тип на съдържанието', + advisoryTitle: 'Заглавие', + anchor: { + toolbar: 'Котва', + menu: 'Промяна на котва', + title: 'Настройки на котва', + name: 'Име на котва', + errorName: 'Моля въведете име на котвата', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Премахване на котва' + }, + anchorId: 'По ID на елемент', + anchorName: 'По име на котва', + charset: 'Езиков код на свързания ресурс', + cssClasses: 'CSS класове', + download: 'Укажи изтегляне', + displayText: 'Текст за показване', + emailAddress: 'Имейл aдрес', + emailBody: 'Съдържание', + emailSubject: 'Тема', + id: 'Id', + info: 'Връзка', + langCode: 'Езиков код', + langDir: 'Посока на езика', + langDirLTR: 'От ляво надясно (LTR)', + langDirRTL: 'От дясно наляво (RTL)', + menu: 'Промяна на връзка', + name: 'Име', + noAnchors: '(Няма котви в текущия документ)', + noEmail: 'Моля въведете имейл адрес', + noUrl: 'Моля въведете URL адрес', + noTel: 'Please type the phone number', // MISSING + other: '<друго>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Зависимост (Netscape)', + popupFeatures: 'Функции на изкачащ прозорец', + popupFullScreen: 'Цял екран (IE)', + popupLeft: 'Лява позиция', + popupLocationBar: 'Лента с локацията', + popupMenuBar: 'Лента за меню', + popupResizable: 'Оразмеряем', + popupScrollBars: 'Ленти за прелистване', + popupStatusBar: 'Статусна лента', + popupToolbar: 'Лента с инструменти', + popupTop: 'Горна позиция', + rel: 'Свързаност (rel атрибут)', + selectAnchor: 'Изберете котва', + styles: 'Стил', + tabIndex: 'Ред на достъп', + target: 'Цел', + targetFrame: '', + targetFrameName: 'Име на целевия прозорец', + targetPopup: '<изкачащ прозорец>', + targetPopupName: 'Име на изкачащ прозорец', + title: 'Връзка', + toAnchor: 'Връзка към котва в текста', + toEmail: 'Имейл', + toUrl: 'Уеб адрес', + toPhone: 'Phone', // MISSING + toolbar: 'Връзка', + type: 'Тип на връзката', + unlink: 'Премахни връзката', + upload: 'Качване' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bn.js new file mode 100644 index 0000000000..e99d6f3f12 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bn.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'bn', { + acccessKey: 'প্রবেশ কী', + advanced: 'এডভান্সড', + advisoryContentType: 'পরামর্শ কন্টেন্টের প্রকার', + advisoryTitle: 'পরামর্শ শীর্ষক', + anchor: { + toolbar: 'নোঙ্গর', + menu: 'নোঙর প্রোপার্টি', + title: 'নোঙর প্রোপার্টি', + name: 'নোঙরের নাম', + errorName: 'নোঙরের নাম টাইপ করুন', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'নোঙরের আইডি দিয়ে', + anchorName: 'নোঙরের নাম দিয়ে', + charset: 'লিংক রিসোর্স ক্যারেক্টর সেট', + cssClasses: 'স্টাইল-শীট ক্লাস', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'ইমেইল ঠিকানা', + emailBody: 'মেসেজের দেহ', + emailSubject: 'মেসেজের বিষয়', + id: 'আইডি', + info: 'লিংক তথ্য', + langCode: 'ভাষা লেখার দিক', + langDir: 'ভাষা লেখার দিক', + langDirLTR: 'বাম থেকে ডান (LTR)', + langDirRTL: 'ডান থেকে বাম (RTL)', + menu: 'লিংক সম্পাদন', + name: 'নাম', + noAnchors: '(No anchors available in the document)', // MISSING + noEmail: 'অনুগ্রহ করে ইমেইল এড্রেস টাইপ করুন', + noUrl: 'অনুগ্রহ করে URL লিংক টাইপ করুন', + noTel: 'Please type the phone number', // MISSING + other: '', // MISSING + phoneNumber: 'Phone number', // MISSING + popupDependent: 'ডিপেন্ডেন্ট (Netscape)', + popupFeatures: 'পপআপ উইন্ডো ফীচার সমূহ', + popupFullScreen: 'পূর্ণ পর্দা জুড়ে (IE)', + popupLeft: 'বামের পজিশন', + popupLocationBar: 'লোকেশন বার', + popupMenuBar: 'মেন্যু বার', + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'স্ক্রল বার', + popupStatusBar: 'স্ট্যাটাস বার', + popupToolbar: 'টুল বার', + popupTop: 'ডানের পজিশন', + rel: 'Relationship', // MISSING + selectAnchor: 'নোঙর বাছাই', + styles: 'স্টাইল', + tabIndex: 'ট্যাব ইন্ডেক্স', + target: 'টার্গেট', + targetFrame: '<ফ্রেম>', + targetFrameName: 'টার্গেট ফ্রেমের নাম', + targetPopup: '<পপআপ উইন্ডো>', + targetPopupName: 'পপআপ উইন্ডোর নাম', + title: 'লিংক', + toAnchor: 'এই পেজে নোঙর কর', + toEmail: 'ইমেইল', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'লিংক যুক্ত কর', + type: 'লিংক প্রকার', + unlink: 'লিংক সরাও', + upload: 'আপলোড' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bs.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bs.js new file mode 100644 index 0000000000..0b820cd2db --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/bs.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'bs', { + acccessKey: 'Pristupna tipka', + advanced: 'Naprednije', + advisoryContentType: 'Advisory vrsta sadržaja', + advisoryTitle: 'Advisory title', + anchor: { + toolbar: 'Anchor', + menu: 'Edit Anchor', + title: 'Anchor Properties', + name: 'Anchor Name', + errorName: 'Please type the anchor name', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'Po Id-u elementa', + anchorName: 'Po nazivu sidra', + charset: 'Linked Resource Charset', + cssClasses: 'Klase CSS stilova', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-Mail Adresa', + emailBody: 'Poruka', + emailSubject: 'Subjekt poruke', + id: 'Id', + info: 'Link info', + langCode: 'Smjer pisanja', + langDir: 'Smjer pisanja', + langDirLTR: 'S lijeva na desno (LTR)', + langDirRTL: 'S desna na lijevo (RTL)', + menu: 'Izmjeni link', + name: 'Naziv', + noAnchors: '(Nema dostupnih sidra na stranici)', + noEmail: 'Molimo ukucajte e-mail adresu', + noUrl: 'Molimo ukucajte URL link', + noTel: 'Please type the phone number', // MISSING + other: '', // MISSING + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Ovisno (Netscape)', + popupFeatures: 'Moguænosti popup prozora', + popupFullScreen: 'Cijeli ekran (IE)', + popupLeft: 'Lijeva pozicija', + popupLocationBar: 'Traka za lokaciju', + popupMenuBar: 'Izborna traka', + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Scroll traka', + popupStatusBar: 'Statusna traka', + popupToolbar: 'Traka sa alatima', + popupTop: 'Gornja pozicija', + rel: 'Relationship', // MISSING + selectAnchor: 'Izaberi sidro', + styles: 'Stil', + tabIndex: 'Tab indeks', + target: 'Prozor', + targetFrame: '', + targetFrameName: 'Target Frame Name', // MISSING + targetPopup: '', + targetPopupName: 'Naziv popup prozora', + title: 'Link', + toAnchor: 'Sidro na ovoj stranici', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Ubaci/Izmjeni link', + type: 'Tip linka', + unlink: 'Izbriši link', + upload: 'Šalji' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ca.js new file mode 100644 index 0000000000..cbb887d8ea --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ca.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ca', { + acccessKey: 'Clau d\'accés', + advanced: 'Avançat', + advisoryContentType: 'Tipus de contingut consultiu', + advisoryTitle: 'Títol consultiu', + anchor: { + toolbar: 'Insereix/Edita àncora', + menu: 'Propietats de l\'àncora', + title: 'Propietats de l\'àncora', + name: 'Nom de l\'àncora', + errorName: 'Si us plau, escriviu el nom de l\'ancora', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'Per Id d\'element', + anchorName: 'Per nom d\'àncora', + charset: 'Conjunt de caràcters font enllaçat', + cssClasses: 'Classes del full d\'estil', + download: 'Force Download', // MISSING + displayText: 'Text a mostrar', + emailAddress: 'Adreça de correu electrònic', + emailBody: 'Cos del missatge', + emailSubject: 'Assumpte del missatge', + id: 'Id', + info: 'Informació de l\'enllaç', + langCode: 'Direcció de l\'idioma', + langDir: 'Direcció de l\'idioma', + langDirLTR: 'D\'esquerra a dreta (LTR)', + langDirRTL: 'De dreta a esquerra (RTL)', + menu: 'Edita l\'enllaç', + name: 'Nom', + noAnchors: '(No hi ha àncores disponibles en aquest document)', + noEmail: 'Si us plau, escrigui l\'adreça correu electrònic', + noUrl: 'Si us plau, escrigui l\'enllaç URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Depenent (Netscape)', + popupFeatures: 'Característiques finestra popup', + popupFullScreen: 'Pantalla completa (IE)', + popupLeft: 'Posició esquerra', + popupLocationBar: 'Barra d\'adreça', + popupMenuBar: 'Barra de menú', + popupResizable: 'Redimensionable', + popupScrollBars: 'Barres d\'scroll', + popupStatusBar: 'Barra d\'estat', + popupToolbar: 'Barra d\'eines', + popupTop: 'Posició dalt', + rel: 'Relació', + selectAnchor: 'Selecciona una àncora', + styles: 'Estil', + tabIndex: 'Index de Tab', + target: 'Destí', + targetFrame: '', + targetFrameName: 'Nom del marc de destí', + targetPopup: '', + targetPopupName: 'Nom finestra popup', + title: 'Enllaç', + toAnchor: 'Àncora en aquesta pàgina', + toEmail: 'Correu electrònic', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Insereix/Edita enllaç', + type: 'Tipus d\'enllaç', + unlink: 'Elimina l\'enllaç', + upload: 'Puja' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/cs.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/cs.js new file mode 100644 index 0000000000..7cb643bbc2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/cs.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'cs', { + acccessKey: 'Přístupový klíč', + advanced: 'Rozšířené', + advisoryContentType: 'Pomocný typ obsahu', + advisoryTitle: 'Pomocný titulek', + anchor: { + toolbar: 'Záložka', + menu: 'Vlastnosti záložky', + title: 'Vlastnosti záložky', + name: 'Název záložky', + errorName: 'Zadejte prosím název záložky', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Odstranit záložku' + }, + anchorId: 'Podle Id objektu', + anchorName: 'Podle jména kotvy', + charset: 'Přiřazená znaková sada', + cssClasses: 'Třída stylu', + download: 'Vynutit stažení', + displayText: 'Zobrazit text', + emailAddress: 'E-mailová adresa', + emailBody: 'Tělo zprávy', + emailSubject: 'Předmět zprávy', + id: 'Id', + info: 'Informace o odkazu', + langCode: 'Kód jazyka', + langDir: 'Směr jazyka', + langDirLTR: 'Zleva doprava (LTR)', + langDirRTL: 'Zprava doleva (RTL)', + menu: 'Změnit odkaz', + name: 'Jméno', + noAnchors: '(Ve stránce není definována žádná kotva!)', + noEmail: 'Zadejte prosím e-mailovou adresu', + noUrl: 'Zadejte prosím URL odkazu', + noTel: 'Vyplňte prosím telefonní číslo', + other: '', + phoneNumber: 'Telefonní číslo', + popupDependent: 'Závislost (Netscape)', + popupFeatures: 'Vlastnosti vyskakovacího okna', + popupFullScreen: 'Celá obrazovka (IE)', + popupLeft: 'Levý okraj', + popupLocationBar: 'Panel umístění', + popupMenuBar: 'Panel nabídky', + popupResizable: 'Umožňující měnit velikost', + popupScrollBars: 'Posuvníky', + popupStatusBar: 'Stavový řádek', + popupToolbar: 'Panel nástrojů', + popupTop: 'Horní okraj', + rel: 'Vztah', + selectAnchor: 'Vybrat kotvu', + styles: 'Styl', + tabIndex: 'Pořadí prvku', + target: 'Cíl', + targetFrame: '', + targetFrameName: 'Název cílového rámu', + targetPopup: '', + targetPopupName: 'Název vyskakovacího okna', + title: 'Odkaz', + toAnchor: 'Kotva v této stránce', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Odkaz', + type: 'Typ odkazu', + unlink: 'Odstranit odkaz', + upload: 'Odeslat' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/cy.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/cy.js new file mode 100644 index 0000000000..ff75897b04 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/cy.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'cy', { + acccessKey: 'Allwedd Mynediad', + advanced: 'Uwch', + advisoryContentType: 'Math y Cynnwys Cynghorol', + advisoryTitle: 'Teitl Cynghorol', + anchor: { + toolbar: 'Angor', + menu: 'Golygu\'r Angor', + title: 'Priodweddau\'r Angor', + name: 'Enw\'r Angor', + errorName: 'Teipiwch enw\'r angor', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Tynnwch yr Angor' + }, + anchorId: 'Gan Id yr Elfen', + anchorName: 'Gan Enw\'r Angor', + charset: 'Set Nodau\'r Adnodd Cysylltiedig', + cssClasses: 'Dosbarthiadau Dalen Arddull', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Cyfeiriad E-Bost', + emailBody: 'Corff y Neges', + emailSubject: 'Testun y Neges', + id: 'Id', + info: 'Gwyb y Ddolen', + langCode: 'Cod Iaith', + langDir: 'Cyfeiriad Iaith', + langDirLTR: 'Chwith i\'r Dde (LTR)', + langDirRTL: 'Dde i\'r Chwith (RTL)', + menu: 'Golygu Dolen', + name: 'Enw', + noAnchors: '(Dim angorau ar gael yn y ddogfen)', + noEmail: 'Teipiwch gyfeiriad yr e-bost', + noUrl: 'Teipiwch URL y ddolen', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dibynnol (Netscape)', + popupFeatures: 'Nodweddion Ffenestr Bop', + popupFullScreen: 'Sgrin Llawn (IE)', + popupLeft: 'Safle Chwith', + popupLocationBar: 'Bar Safle', + popupMenuBar: 'Dewislen', + popupResizable: 'Ailfeintiol', + popupScrollBars: 'Barrau Sgrolio', + popupStatusBar: 'Bar Statws', + popupToolbar: 'Bar Offer', + popupTop: 'Safle Top', + rel: 'Perthynas', + selectAnchor: 'Dewiswch Angor', + styles: 'Arddull', + tabIndex: 'Indecs Tab', + target: 'Targed', + targetFrame: '', + targetFrameName: 'Enw Ffrâm y Targed', + targetPopup: '', + targetPopupName: 'Enw Ffenestr Bop', + title: 'Dolen', + toAnchor: 'Dolen at angor yn y testun', + toEmail: 'E-bost', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Dolen', + type: 'Math y Ddolen', + unlink: 'Datgysylltu', + upload: 'Lanlwytho' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/da.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/da.js new file mode 100644 index 0000000000..327cd8ac5e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/da.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'da', { + acccessKey: 'Genvejstast', + advanced: 'Avanceret', + advisoryContentType: 'Indholdstype', + advisoryTitle: 'Titel', + anchor: { + toolbar: 'Indsæt/redigér bogmærke', + menu: 'Egenskaber for bogmærke', + title: 'Egenskaber for bogmærke', + name: 'Bogmærkenavn', + errorName: 'Indtast bogmærkenavn', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Fjern bogmærke' + }, + anchorId: 'Efter element-Id', + anchorName: 'Efter ankernavn', + charset: 'Tegnsæt', + cssClasses: 'Typografiark', + download: 'Tving Download', + displayText: 'Vis tekst', + emailAddress: 'E-mailadresse', + emailBody: 'Besked', + emailSubject: 'Emne', + id: 'Id', + info: 'Generelt', + langCode: 'Tekstretning', + langDir: 'Tekstretning', + langDirLTR: 'Fra venstre mod højre (LTR)', + langDirRTL: 'Fra højre mod venstre (RTL)', + menu: 'Redigér hyperlink', + name: 'Navn', + noAnchors: '(Ingen bogmærker i dokumentet)', + noEmail: 'Indtast e-mailadresse!', + noUrl: 'Indtast hyperlink-URL!', + noTel: 'Indtast venligst et telefonnummer', + other: '', + phoneNumber: 'Telefonnummer', + popupDependent: 'Koblet/dependent (Netscape)', + popupFeatures: 'Egenskaber for popup', + popupFullScreen: 'Fuld skærm (IE)', + popupLeft: 'Position fra venstre', + popupLocationBar: 'Adresselinje', + popupMenuBar: 'Menulinje', + popupResizable: 'Justérbar', + popupScrollBars: 'Scrollbar', + popupStatusBar: 'Statuslinje', + popupToolbar: 'Værktøjslinje', + popupTop: 'Position fra toppen', + rel: 'Relation', + selectAnchor: 'Vælg et anker', + styles: 'Typografi', + tabIndex: 'Tabulatorindeks', + target: 'Mål', + targetFrame: '', + targetFrameName: 'Destinationsvinduets navn', + targetPopup: '', + targetPopupName: 'Popupvinduets navn', + title: 'Egenskaber for hyperlink', + toAnchor: 'Bogmærke på denne side', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Indsæt/redigér hyperlink', + type: 'Type', + unlink: 'Fjern hyperlink', + upload: 'Upload' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/de-ch.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/de-ch.js new file mode 100644 index 0000000000..81f9574572 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/de-ch.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'de-ch', { + acccessKey: 'Zugriffstaste', + advanced: 'Erweitert', + advisoryContentType: 'Inhaltstyp', + advisoryTitle: 'Titel Beschreibung', + anchor: { + toolbar: 'Anker', + menu: 'Anker bearbeiten', + title: 'Ankereigenschaften', + name: 'Ankername', + errorName: 'Bitte geben Sie den Namen des Ankers ein', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Anker entfernen' + }, + anchorId: 'Nach Elementkennung', + anchorName: 'Nach Ankername', + charset: 'Verknüpfter Ressourcenzeichensatz', + cssClasses: 'Formatvorlagenklasse', + download: 'Herunterladen erzwingen', + displayText: 'Anzeigetext', + emailAddress: 'E-Mail-Adresse', + emailBody: 'Nachrichtentext', + emailSubject: 'Betreffzeile', + id: 'Kennung', + info: 'Linkinfo', + langCode: 'Sprachcode', + langDir: 'Schreibrichtung', + langDirLTR: 'Links nach Rechts (LTR)', + langDirRTL: 'Rechts nach Links (RTL)', + menu: 'Link bearbeiten', + name: 'Name', + noAnchors: '(Keine Anker im Dokument vorhanden)', + noEmail: 'Bitte geben Sie E-Mail-Adresse an', + noUrl: 'Bitte geben Sie die Link-URL an', + noTel: 'Bitte geben Sie die Telefonnummer ein', + other: '', + phoneNumber: 'Telefonnummer', + popupDependent: 'Abhängig (Netscape)', + popupFeatures: 'Pop-up Fenstereigenschaften', + popupFullScreen: 'Vollbild (IE)', + popupLeft: 'Linke Position', + popupLocationBar: 'Adressleiste', + popupMenuBar: 'Menüleiste', + popupResizable: 'Grösse änderbar', + popupScrollBars: 'Rollbalken', + popupStatusBar: 'Statusleiste', + popupToolbar: 'Werkzeugleiste', + popupTop: 'Obere Position', + rel: 'Beziehung', + selectAnchor: 'Anker auswählen', + styles: 'Style', + tabIndex: 'Tab-Index', + target: 'Zielseite', + targetFrame: '', + targetFrameName: 'Ziel-Fenster-Name', + targetPopup: '', + targetPopupName: 'Pop-up Fenster-Name', + title: 'Link', + toAnchor: 'Anker in dieser Seite', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Link einfügen/editieren', + type: 'Link-Typ', + unlink: 'Link entfernen', + upload: 'Hochladen' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/de.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/de.js new file mode 100644 index 0000000000..16d6451c90 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/de.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'de', { + acccessKey: 'Zugriffstaste', + advanced: 'Erweitert', + advisoryContentType: 'Inhaltstyp', + advisoryTitle: 'Titel Beschreibung', + anchor: { + toolbar: 'Anker', + menu: 'Anker bearbeiten', + title: 'Ankereigenschaften', + name: 'Ankername', + errorName: 'Bitte geben Sie den Namen des Ankers ein', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Anker entfernen' + }, + anchorId: 'Nach Elementkennung', + anchorName: 'Nach Ankername', + charset: 'Verknüpfter Ressourcenzeichensatz', + cssClasses: 'Formatvorlagenklasse', + download: 'Herunterladen erzwingen', + displayText: 'Anzeigetext', + emailAddress: 'E-Mail-Adresse', + emailBody: 'Nachrichtentext', + emailSubject: 'Betreffzeile', + id: 'Kennung', + info: 'Linkinfo', + langCode: 'Sprachcode', + langDir: 'Schreibrichtung', + langDirLTR: 'Links nach Rechts (LTR)', + langDirRTL: 'Rechts nach Links (RTL)', + menu: 'Link bearbeiten', + name: 'Name', + noAnchors: '(Keine Anker im Dokument vorhanden)', + noEmail: 'Bitte geben Sie E-Mail-Adresse an', + noUrl: 'Bitte geben Sie die Link-URL an', + noTel: 'Bitte geben Sie die Telefonnummer ein', + other: '', + phoneNumber: 'Telefonnummer', + popupDependent: 'Abhängig (Netscape)', + popupFeatures: 'Pop-up Fenstereigenschaften', + popupFullScreen: 'Vollbild (IE)', + popupLeft: 'Linke Position', + popupLocationBar: 'Adressleiste', + popupMenuBar: 'Menüleiste', + popupResizable: 'Größe änderbar', + popupScrollBars: 'Rollbalken', + popupStatusBar: 'Statusleiste', + popupToolbar: 'Werkzeugleiste', + popupTop: 'Obere Position', + rel: 'Beziehung', + selectAnchor: 'Anker auswählen', + styles: 'Style', + tabIndex: 'Tab-Index', + target: 'Zielseite', + targetFrame: '', + targetFrameName: 'Ziel-Fenster-Name', + targetPopup: '', + targetPopupName: 'Pop-up Fenster-Name', + title: 'Link', + toAnchor: 'Anker in dieser Seite', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Link einfügen/editieren', + type: 'Link-Typ', + unlink: 'Link entfernen', + upload: 'Hochladen' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/el.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/el.js new file mode 100644 index 0000000000..1079f47dde --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/el.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'el', { + acccessKey: 'Συντόμευση', + advanced: 'Για Προχωρημένους', + advisoryContentType: 'Ενδεικτικός Τύπος Περιεχομένου', + advisoryTitle: 'Ενδεικτικός Τίτλος', + anchor: { + toolbar: 'Εισαγωγή/επεξεργασία Άγκυρας', + menu: 'Ιδιότητες άγκυρας', + title: 'Ιδιότητες άγκυρας', + name: 'Όνομα άγκυρας', + errorName: 'Παρακαλούμε εισάγετε όνομα άγκυρας', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Αφαίρεση Άγκυρας' + }, + anchorId: 'Βάσει του Element Id', + anchorName: 'Βάσει του Ονόματος Άγκυρας', + charset: 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής', + cssClasses: 'Κλάσεις Φύλλων Στυλ', + download: 'Εξαγκασμένη Λήψη', + displayText: 'Κείμενο Εμφάνισης', + emailAddress: 'Διεύθυνση E-mail', + emailBody: 'Κείμενο Μηνύματος', + emailSubject: 'Θέμα Μηνύματος', + id: 'Id', + info: 'Πληροφορίες Συνδέσμου', + langCode: 'Κατεύθυνση Κειμένου', + langDir: 'Κατεύθυνση Κειμένου', + langDirLTR: 'Αριστερά προς Δεξιά (LTR)', + langDirRTL: 'Δεξιά προς Αριστερά (RTL)', + menu: 'Επεξεργασία Συνδέσμου', + name: 'Όνομα', + noAnchors: '(Δεν υπάρχουν άγκυρες στο κείμενο)', + noEmail: 'Εισάγετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου', + noUrl: 'Εισάγετε την τοποθεσία (URL) του συνδέσμου', + noTel: 'Γράψτε τον αριθμό τηλεφώνου', + other: '<άλλο>', + phoneNumber: 'Αριθμός τηλεφώνου', + popupDependent: 'Εξαρτημένο (Netscape)', + popupFeatures: 'Επιλογές Αναδυόμενου Παραθύρου', + popupFullScreen: 'Πλήρης Οθόνη (IE)', + popupLeft: 'Θέση Αριστερά', + popupLocationBar: 'Γραμμή Τοποθεσίας', + popupMenuBar: 'Γραμμή Επιλογών', + popupResizable: 'Προσαρμοζόμενο Μέγεθος', + popupScrollBars: 'Μπάρες Κύλισης', + popupStatusBar: 'Γραμμή Κατάστασης', + popupToolbar: 'Εργαλειοθήκη', + popupTop: 'Θέση Πάνω', + rel: 'Σχέση', + selectAnchor: 'Επιλέξτε μια Άγκυρα', + styles: 'Μορφή', + tabIndex: 'Σειρά Μεταπήδησης', + target: 'Παράθυρο Προορισμού', + targetFrame: '<πλαίσιο>', + targetFrameName: 'Όνομα Πλαισίου Προορισμού', + targetPopup: '<αναδυόμενο παράθυρο>', + targetPopupName: 'Όνομα Αναδυόμενου Παραθύρου', + title: 'Σύνδεσμος', + toAnchor: 'Άγκυρα σε αυτήν τη σελίδα', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Τηλέφωνο', + toolbar: 'Σύνδεσμος', + type: 'Τύπος Συνδέσμου', + unlink: 'Αφαίρεση Συνδέσμου', + upload: 'Αποστολή' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-au.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-au.js new file mode 100644 index 0000000000..b4e2a50bda --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-au.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'en-au', { + acccessKey: 'Access Key', + advanced: 'Advanced', + advisoryContentType: 'Advisory Content Type', + advisoryTitle: 'Advisory Title', + anchor: { + toolbar: 'Anchor', + menu: 'Edit Anchor', + title: 'Anchor Properties', + name: 'Anchor Name', + errorName: 'Please type the anchor name', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'By Element Id', + anchorName: 'By Anchor Name', + charset: 'Linked Resource Charset', + cssClasses: 'Stylesheet Classes', + download: 'Force Download', + displayText: 'Display Text', + emailAddress: 'E-Mail Address', + emailBody: 'Message Body', + emailSubject: 'Message Subject', + id: 'Id', + info: 'Link Info', + langCode: 'Language Code', + langDir: 'Language Direction', + langDirLTR: 'Left to Right (LTR)', + langDirRTL: 'Right to Left (RTL)', + menu: 'Edit Link', + name: 'Name', + noAnchors: '(No anchors available in the document)', + noEmail: 'Please type the e-mail address', + noUrl: 'Please type the link URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', + popupFeatures: 'Popup Window Features', + popupFullScreen: 'Full Screen (IE)', + popupLeft: 'Left Position', + popupLocationBar: 'Location Bar', + popupMenuBar: 'Menu Bar', + popupResizable: 'Resizable', + popupScrollBars: 'Scroll Bars', + popupStatusBar: 'Status Bar', + popupToolbar: 'Toolbar', + popupTop: 'Top Position', + rel: 'Relationship', + selectAnchor: 'Select an Anchor', + styles: 'Style', + tabIndex: 'Tab Index', + target: 'Target', + targetFrame: '', + targetFrameName: 'Target Frame Name', + targetPopup: '', + targetPopupName: 'Popup Window Name', + title: 'Link', + toAnchor: 'Link to anchor in the text', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Link', + type: 'Link Type', + unlink: 'Unlink', + upload: 'Upload' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-ca.js new file mode 100644 index 0000000000..874dfd5d87 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-ca.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'en-ca', { + acccessKey: 'Access Key', + advanced: 'Advanced', + advisoryContentType: 'Advisory Content Type', + advisoryTitle: 'Advisory Title', + anchor: { + toolbar: 'Anchor', + menu: 'Edit Anchor', + title: 'Anchor Properties', + name: 'Anchor Name', + errorName: 'Please type the anchor name', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'By Element Id', + anchorName: 'By Anchor Name', + charset: 'Linked Resource Charset', + cssClasses: 'Stylesheet Classes', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-Mail Address', + emailBody: 'Message Body', + emailSubject: 'Message Subject', + id: 'Id', + info: 'Link Info', + langCode: 'Language Code', + langDir: 'Language Direction', + langDirLTR: 'Left to Right (LTR)', + langDirRTL: 'Right to Left (RTL)', + menu: 'Edit Link', + name: 'Name', + noAnchors: '(No anchors available in the document)', + noEmail: 'Please type the e-mail address', + noUrl: 'Please type the link URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', + popupFeatures: 'Popup Window Features', + popupFullScreen: 'Full Screen (IE)', + popupLeft: 'Left Position', + popupLocationBar: 'Location Bar', + popupMenuBar: 'Menu Bar', + popupResizable: 'Resizable', + popupScrollBars: 'Scroll Bars', + popupStatusBar: 'Status Bar', + popupToolbar: 'Toolbar', + popupTop: 'Top Position', + rel: 'Relationship', // MISSING + selectAnchor: 'Select an Anchor', + styles: 'Style', + tabIndex: 'Tab Index', + target: 'Target', + targetFrame: '', + targetFrameName: 'Target Frame Name', + targetPopup: '', + targetPopupName: 'Popup Window Name', + title: 'Link', + toAnchor: 'Link to anchor in the text', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Link', + type: 'Link Type', + unlink: 'Unlink', + upload: 'Upload' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-gb.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-gb.js new file mode 100644 index 0000000000..77693fe940 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en-gb.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'en-gb', { + acccessKey: 'Access Key', + advanced: 'Advanced', + advisoryContentType: 'Advisory Content Type', + advisoryTitle: 'Advisory Title', + anchor: { + toolbar: 'Anchor', + menu: 'Edit Anchor', + title: 'Anchor Properties', + name: 'Anchor Name', + errorName: 'Please type the anchor name', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'By Element Id', + anchorName: 'By Anchor Name', + charset: 'Linked Resource Charset', + cssClasses: 'Stylesheet Classes', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-Mail Address', + emailBody: 'Message Body', + emailSubject: 'Message Subject', + id: 'Id', + info: 'Link Info', + langCode: 'Language Code', + langDir: 'Language Direction', + langDirLTR: 'Left to Right (LTR)', + langDirRTL: 'Right to Left (RTL)', + menu: 'Edit Link', + name: 'Name', + noAnchors: '(No anchors available in the document)', + noEmail: 'Please type the e-mail address', + noUrl: 'Please type the link URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', + popupFeatures: 'Popup Window Features', + popupFullScreen: 'Full Screen (IE)', + popupLeft: 'Left Position', + popupLocationBar: 'Location Bar', + popupMenuBar: 'Menu Bar', + popupResizable: 'Resizable', + popupScrollBars: 'Scroll Bars', + popupStatusBar: 'Status Bar', + popupToolbar: 'Toolbar', + popupTop: 'Top Position', + rel: 'Relationship', + selectAnchor: 'Select an Anchor', + styles: 'Style', + tabIndex: 'Tab Index', + target: 'Target', + targetFrame: '', + targetFrameName: 'Target Frame Name', + targetPopup: '', + targetPopupName: 'Popup Window Name', + title: 'Link', + toAnchor: 'Link to anchor in the text', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Link', + type: 'Link Type', + unlink: 'Unlink', + upload: 'Upload' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en.js new file mode 100644 index 0000000000..3475d84343 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/en.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'en', { + acccessKey: 'Access Key', + advanced: 'Advanced', + advisoryContentType: 'Advisory Content Type', + advisoryTitle: 'Advisory Title', + anchor: { + toolbar: 'Anchor', + menu: 'Edit Anchor', + title: 'Anchor Properties', + name: 'Anchor Name', + errorName: 'Please type the anchor name', + errorWhitespace: 'Anchor name cannot contain space characters', + remove: 'Remove Anchor' + }, + anchorId: 'By Element Id', + anchorName: 'By Anchor Name', + charset: 'Linked Resource Charset', + cssClasses: 'Stylesheet Classes', + download: 'Force Download', + displayText: 'Display Text', + emailAddress: 'E-Mail Address', + emailBody: 'Message Body', + emailSubject: 'Message Subject', + id: 'Id', + info: 'Link Info', + langCode: 'Language Code', + langDir: 'Language Direction', + langDirLTR: 'Left to Right (LTR)', + langDirRTL: 'Right to Left (RTL)', + menu: 'Edit Link', + name: 'Name', + noAnchors: '(No anchors available in the document)', + noEmail: 'Please type the e-mail address', + noUrl: 'Please type the link URL', + noTel: 'Please type the phone number', + other: '', + phoneNumber: 'Phone number', + popupDependent: 'Dependent (Netscape)', + popupFeatures: 'Popup Window Features', + popupFullScreen: 'Full Screen (IE)', + popupLeft: 'Left Position', + popupLocationBar: 'Location Bar', + popupMenuBar: 'Menu Bar', + popupResizable: 'Resizable', + popupScrollBars: 'Scroll Bars', + popupStatusBar: 'Status Bar', + popupToolbar: 'Toolbar', + popupTop: 'Top Position', + rel: 'Relationship', + selectAnchor: 'Select an Anchor', + styles: 'Style', + tabIndex: 'Tab Index', + target: 'Target', + targetFrame: '', + targetFrameName: 'Target Frame Name', + targetPopup: '', + targetPopupName: 'Popup Window Name', + title: 'Link', + toAnchor: 'Link to anchor in the text', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Phone', + toolbar: 'Link', + type: 'Link Type', + unlink: 'Unlink', + upload: 'Upload' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/eo.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/eo.js new file mode 100644 index 0000000000..27371e4234 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/eo.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'eo', { + acccessKey: 'Fulmoklavo', + advanced: 'Speciala', + advisoryContentType: 'Enhavotipo', + advisoryTitle: 'Priskriba Titolo', + anchor: { + toolbar: 'Ankro', + menu: 'Enmeti/Ŝanĝi Ankron', + title: 'Ankraj Atributoj', + name: 'Ankra Nomo', + errorName: 'Bv entajpi la ankran nomon', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Forigi Ankron' + }, + anchorId: 'Per Elementidentigilo', + anchorName: 'Per Ankronomo', + charset: 'Signaro de la Ligita Rimedo', + cssClasses: 'Klasoj de Stilfolioj', + download: 'Altrudi Elŝuton', + displayText: 'Vidigi Tekston', + emailAddress: 'Retpoŝto', + emailBody: 'Mesaĝa korpo', + emailSubject: 'Mesaĝa Temo', + id: 'Id', + info: 'Informoj pri la Ligilo', + langCode: 'Lingva Kodo', + langDir: 'Skribdirekto', + langDirLTR: 'De maldekstro dekstren (LTR)', + langDirRTL: 'De dekstro maldekstren (RTL)', + menu: 'Ŝanĝi Ligilon', + name: 'Nomo', + noAnchors: '', + noEmail: 'Bonvolu entajpi la retpoŝtadreson', + noUrl: 'Bonvolu entajpi la URL-on', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependa (Netscape)', + popupFeatures: 'Atributoj de la Ŝprucfenestro', + popupFullScreen: 'Tutekrane (IE)', + popupLeft: 'Maldekstra Pozicio', + popupLocationBar: 'Adresobreto', + popupMenuBar: 'Menubreto', + popupResizable: 'Dimensiŝanĝebla', + popupScrollBars: 'Rulumskaloj', + popupStatusBar: 'Statobreto', + popupToolbar: 'Ilobreto', + popupTop: 'Supra Pozicio', + rel: 'Rilato', + selectAnchor: 'Elekti Ankron', + styles: 'Stilo', + tabIndex: 'Taba Indekso', + target: 'Celo', + targetFrame: '', + targetFrameName: 'Nomo de CelKadro', + targetPopup: '<ŝprucfenestro>', + targetPopupName: 'Nomo de Ŝprucfenestro', + title: 'Ligilo', + toAnchor: 'Ankri en tiu ĉi paĝo', + toEmail: 'Retpoŝto', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Enmeti/Ŝanĝi Ligilon', + type: 'Tipo de Ligilo', + unlink: 'Forigi Ligilon', + upload: 'Alŝuti' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/es-mx.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/es-mx.js new file mode 100644 index 0000000000..48d28a2864 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/es-mx.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'es-mx', { + acccessKey: 'Llave de acceso', + advanced: 'Avanzada', + advisoryContentType: 'Tipo de contenido consultivo', + advisoryTitle: 'Título asesor', + anchor: { + toolbar: 'Ancla', + menu: 'Editar ancla', + title: 'Propiedades del ancla', + name: 'Nombre del ancla', + errorName: 'Escriba el nombre del ancla', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remover ancla' + }, + anchorId: 'Por Id del elemento', + anchorName: 'Por nombre del ancla', + charset: 'Recurso relacionado Charset', + cssClasses: 'Clases de estilo de hoja', + download: 'Forzar la descarga', + displayText: 'Mostrar texto', + emailAddress: 'Dirección de correo electrónico', + emailBody: 'Cuerpo del mensaje', + emailSubject: 'Asunto del mensaje', + id: 'Id', + info: 'Información del enlace', + langCode: 'Código del idioma', + langDir: 'Dirección del idioma', + langDirLTR: 'Izquierda a Derecha (LTR)', + langDirRTL: 'Derecha a Izquierda (RTL)', + menu: 'Editar enlace', + name: 'Nombre', + noAnchors: '(No hay anclas disponibles en el documento)', + noEmail: 'Escriba la dirección de correo electrónico', + noUrl: 'Escriba la URL del enlace', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependiente (Netscape)', + popupFeatures: 'Ventana emergente', + popupFullScreen: 'Pantalla completa (IE)', + popupLeft: 'Posición Izquierda', + popupLocationBar: 'Ubicación de la barra', + popupMenuBar: 'Barra de menú', + popupResizable: 'Redimensionable', + popupScrollBars: 'Barras de desplazamiento', + popupStatusBar: 'Barra de estado', + popupToolbar: 'Barra de herramienta', + popupTop: 'Posición superior', + rel: 'Relación', + selectAnchor: 'Selecciona un ancla', + styles: 'Estilo', + tabIndex: 'Indice de tabulación', + target: 'Objetivo', + targetFrame: '', + targetFrameName: 'Nombre del marco de destino', + targetPopup: '', + targetPopupName: 'Nombre de ventana emergente', + title: 'Enlace', + toAnchor: 'Enlace al ancla en el texto', + toEmail: 'Correo electrónico', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Enlace', + type: 'Tipo de enlace', + unlink: 'Desconectar', + upload: 'Subir' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/es.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/es.js new file mode 100644 index 0000000000..90b638ffb9 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/es.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'es', { + acccessKey: 'Tecla de Acceso', + advanced: 'Avanzado', + advisoryContentType: 'Tipo de Contenido', + advisoryTitle: 'Título', + anchor: { + toolbar: 'Referencia', + menu: 'Propiedades de Referencia', + title: 'Propiedades de Referencia', + name: 'Nombre de la Referencia', + errorName: 'Por favor, complete el nombre de la Referencia', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Quitar Referencia' + }, + anchorId: 'Por ID de elemento', + anchorName: 'Por Nombre de Referencia', + charset: 'Fuente de caracteres vinculado', + cssClasses: 'Clases de hojas de estilo', + download: 'Forzar la descarga', + displayText: 'Mostrar texto', + emailAddress: 'Dirección de E-Mail', + emailBody: 'Cuerpo del Mensaje', + emailSubject: 'Título del Mensaje', + id: 'Id', + info: 'Información de Vínculo', + langCode: 'Código idioma', + langDir: 'Orientación', + langDirLTR: 'Izquierda a Derecha (LTR)', + langDirRTL: 'Derecha a Izquierda (RTL)', + menu: 'Editar Vínculo', + name: 'Nombre', + noAnchors: '(No hay referencias disponibles en el documento)', + noEmail: 'Por favor escriba la dirección de e-mail', + noUrl: 'Por favor escriba el vínculo URL', + noTel: 'Por favor ingrese el numero de telefono', + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependiente (Netscape)', + popupFeatures: 'Características de Ventana Emergente', + popupFullScreen: 'Pantalla Completa (IE)', + popupLeft: 'Posición Izquierda', + popupLocationBar: 'Barra de ubicación', + popupMenuBar: 'Barra de Menú', + popupResizable: 'Redimensionable', + popupScrollBars: 'Barras de desplazamiento', + popupStatusBar: 'Barra de Estado', + popupToolbar: 'Barra de Herramientas', + popupTop: 'Posición Derecha', + rel: 'Relación', + selectAnchor: 'Seleccionar una referencia', + styles: 'Estilo', + tabIndex: 'Indice de tabulación', + target: 'Destino', + targetFrame: '', + targetFrameName: 'Nombre del Marco Destino', + targetPopup: '', + targetPopupName: 'Nombre de Ventana Emergente', + title: 'Vínculo', + toAnchor: 'Referencia en esta página', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Teléfono', + toolbar: 'Insertar/Editar Vínculo', + type: 'Tipo de vínculo', + unlink: 'Eliminar Vínculo', + upload: 'Cargar' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/et.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/et.js new file mode 100644 index 0000000000..a3321e4b1b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/et.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'et', { + acccessKey: 'Juurdepääsu võti', + advanced: 'Täpsemalt', + advisoryContentType: 'Juhendava sisu tüüp', + advisoryTitle: 'Juhendav tiitel', + anchor: { + toolbar: 'Ankru sisestamine/muutmine', + menu: 'Ankru omadused', + title: 'Ankru omadused', + name: 'Ankru nimi', + errorName: 'Palun sisesta ankru nimi', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Eemalda ankur' + }, + anchorId: 'Elemendi id järgi', + anchorName: 'Ankru nime järgi', + charset: 'Lingitud ressursi märgistik', + cssClasses: 'Stiilistiku klassid', + download: 'Sunni allalaadimine', + displayText: 'Näidatav tekst', + emailAddress: 'E-posti aadress', + emailBody: 'Sõnumi tekst', + emailSubject: 'Sõnumi teema', + id: 'ID', + info: 'Lingi info', + langCode: 'Keele suund', + langDir: 'Keele suund', + langDirLTR: 'Vasakult paremale (LTR)', + langDirRTL: 'Paremalt vasakule (RTL)', + menu: 'Muuda linki', + name: 'Nimi', + noAnchors: '(Selles dokumendis pole ankruid)', + noEmail: 'Palun kirjuta e-posti aadress', + noUrl: 'Palun kirjuta lingi URL', + noTel: 'Palun sisesta telefoninumber', + other: '', + phoneNumber: 'Telefoninumber', + popupDependent: 'Sõltuv (Netscape)', + popupFeatures: 'Hüpikakna omadused', + popupFullScreen: 'Täisekraan (IE)', + popupLeft: 'Vasak asukoht', + popupLocationBar: 'Aadressiriba', + popupMenuBar: 'Menüüriba', + popupResizable: 'Suurust saab muuta', + popupScrollBars: 'Kerimisribad', + popupStatusBar: 'Olekuriba', + popupToolbar: 'Tööriistariba', + popupTop: 'Ülemine asukoht', + rel: 'Suhe', + selectAnchor: 'Vali ankur', + styles: 'Laad', + tabIndex: 'Tab indeks', + target: 'Sihtkoht', + targetFrame: '', + targetFrameName: 'Sihtmärk raami nimi', + targetPopup: '', + targetPopupName: 'Hüpikakna nimi', + title: 'Link', + toAnchor: 'Ankur sellel lehel', + toEmail: 'E-post', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Lingi lisamine/muutmine', + type: 'Lingi liik', + unlink: 'Lingi eemaldamine', + upload: 'Lae üles' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/eu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/eu.js new file mode 100644 index 0000000000..2650aa278c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/eu.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'eu', { + acccessKey: 'Sarbide-tekla', + advanced: 'Aurreratua', + advisoryContentType: 'Aholkatutako eduki-mota', + advisoryTitle: 'Aholkatutako izenburua', + anchor: { + toolbar: 'Aingura', + menu: 'Editatu aingura', + title: 'Ainguraren propietateak', + name: 'Ainguraren izena', + errorName: 'Idatzi ainguraren izena', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Kendu aingura' + }, + anchorId: 'Elementuaren Id-aren arabera', + anchorName: 'Aingura-izenaren arabera', + charset: 'Estekatutako baliabide karaktere-jokoa', + cssClasses: 'Estilo-orriko klaseak', + download: 'Behartu deskarga', + displayText: 'Bistaratu testua', + emailAddress: 'E-posta helbidea', + emailBody: 'Mezuaren gorputza', + emailSubject: 'Mezuaren gaia', + id: 'Id', + info: 'Estekaren informazioa', + langCode: 'Hizkuntzaren kodea', + langDir: 'Hizkuntzaren norabidea', + langDirLTR: 'Ezkerretik eskuinera (LTR)', + langDirRTL: 'Eskuinetik ezkerrera (RTL)', + menu: 'Editatu esteka', + name: 'Izena', + noAnchors: '(Ez dago aingurarik erabilgarri dokumentuan)', + noEmail: 'Mesedez idatzi e-posta helbidea', + noUrl: 'Mesedez idatzi estekaren URLa', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Menpekoa (Netscape)', + popupFeatures: 'Laster-leihoaren ezaugarriak', + popupFullScreen: 'Pantaila osoa (IE)', + popupLeft: 'Ezkerreko posizioa', + popupLocationBar: 'Kokaleku-barra', + popupMenuBar: 'Menu-barra', + popupResizable: 'Tamaina aldakorra', + popupScrollBars: 'Korritze-barrak', + popupStatusBar: 'Egoera-barra', + popupToolbar: 'Tresna-barra', + popupTop: 'Goiko posizioa', + rel: 'Erlazioa', + selectAnchor: 'Hautatu aingura', + styles: 'Estiloa', + tabIndex: 'Tabulazio indizea', + target: 'Helburua', + targetFrame: '', + targetFrameName: 'Helburuko markoaren izena', + targetPopup: '', + targetPopupName: 'Laster-leihoaren izena', + title: 'Esteka', + toAnchor: 'Estekatu testuko aingurara', + toEmail: 'E-posta', + toUrl: 'URLa', + toPhone: 'Phone', // MISSING + toolbar: 'Esteka', + type: 'Esteka-mota', + unlink: 'Kendu esteka', + upload: 'Kargatu' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fa.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fa.js new file mode 100644 index 0000000000..cefdcb6f0b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fa.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'fa', { + acccessKey: 'کلید دستیابی', + advanced: 'پیشرفته', + advisoryContentType: 'نوع محتوای کمکی', + advisoryTitle: 'عنوان کمکی', + anchor: { + toolbar: 'گنجاندن/ویرایش لینک', + menu: 'ویرایش لینک', + title: 'ویژگی​های لینک', + name: 'نام لینک', + errorName: 'لطفا نام لنگر را بنویسید', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'حذف لینک' + }, + anchorId: 'با شناسهٴ المان', + anchorName: 'با نام لینک ', + charset: 'نویسه​گان منبع پیوند شده', + cssClasses: 'کلاس​های شیوه​نامه (Style sheet)', + download: 'بارگیری اجباری', + displayText: 'نمایش متن', + emailAddress: 'نشانی پست الکترونیکی', + emailBody: 'متن پیام', + emailSubject: 'موضوع پیام', + id: 'شناسه', + info: 'اطلاعات پیوند', + langCode: 'کد زبان', + langDir: 'جهت​نمای زبان', + langDirLTR: 'چپ به راست (LTR)', + langDirRTL: 'راست به چپ (RTL)', + menu: 'ویرایش پیوند', + name: 'نام', + noAnchors: '(در این سند لینکی دردسترس نیست)', + noEmail: 'لطفا نشانی پست الکترونیکی را بنویسید', + noUrl: 'لطفا آدرس پیوند را بنویسید', + noTel: 'لطفا شماره تلفن را وارد کنید', + other: '<سایر>', + phoneNumber: 'شماره تلفن', + popupDependent: 'وابسته (Netscape)', + popupFeatures: 'ویژگی​های پنجره ی پاپاپ', + popupFullScreen: 'تمام صفحه (IE)', + popupLeft: 'موقعیت چپ', + popupLocationBar: 'نوار موقعیت', + popupMenuBar: 'نوار منو', + popupResizable: 'قابل تغییر اندازه', + popupScrollBars: 'میله​های پیمایش', + popupStatusBar: 'نوار وضعیت', + popupToolbar: 'نوار ابزار', + popupTop: 'موقعیت بالا', + rel: 'وابستگی', + selectAnchor: 'یک لینک برگزینید', + styles: 'شیوه (style)', + tabIndex: 'نمایهٴ دسترسی با برگه', + target: 'مقصد', + targetFrame: '<قاب>', + targetFrameName: 'نام قاب مقصد', + targetPopup: '<پنجرهٴ پاپاپ>', + targetPopupName: 'نام پنجره ی پاپاپ', + title: 'پیوند', + toAnchor: 'لنگر در همین صفحه', + toEmail: 'پست الکترونیکی', + toUrl: 'آدرس', + toPhone: 'تلفن', + toolbar: 'گنجاندن/ویرایش پیوند', + type: 'نوع پیوند', + unlink: 'برداشتن پیوند', + upload: 'انتقال به سرور' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fi.js new file mode 100644 index 0000000000..e9e24ef7bf --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fi.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'fi', { + acccessKey: 'Pikanäppäin', + advanced: 'Lisäominaisuudet', + advisoryContentType: 'Avustava sisällön tyyppi', + advisoryTitle: 'Avustava otsikko', + anchor: { + toolbar: 'Lisää ankkuri/muokkaa ankkuria', + menu: 'Ankkurin ominaisuudet', + title: 'Ankkurin ominaisuudet', + name: 'Nimi', + errorName: 'Ankkurille on kirjoitettava nimi', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Poista ankkuri' + }, + anchorId: 'Ankkurin ID:n mukaan', + anchorName: 'Ankkurin nimen mukaan', + charset: 'Linkitetty kirjaimisto', + cssClasses: 'Tyyliluokat', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Sähköpostiosoite', + emailBody: 'Viesti', + emailSubject: 'Aihe', + id: 'Tunniste', + info: 'Linkin tiedot', + langCode: 'Kielen suunta', + langDir: 'Kielen suunta', + langDirLTR: 'Vasemmalta oikealle (LTR)', + langDirRTL: 'Oikealta vasemmalle (RTL)', + menu: 'Muokkaa linkkiä', + name: 'Nimi', + noAnchors: '(Ei ankkureita tässä dokumentissa)', + noEmail: 'Kirjoita sähköpostiosoite', + noUrl: 'Linkille on kirjoitettava URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Riippuva (Netscape)', + popupFeatures: 'Popup ikkunan ominaisuudet', + popupFullScreen: 'Täysi ikkuna (IE)', + popupLeft: 'Vasemmalta (px)', + popupLocationBar: 'Osoiterivi', + popupMenuBar: 'Valikkorivi', + popupResizable: 'Venytettävä', + popupScrollBars: 'Vierityspalkit', + popupStatusBar: 'Tilarivi', + popupToolbar: 'Vakiopainikkeet', + popupTop: 'Ylhäältä (px)', + rel: 'Suhde', + selectAnchor: 'Valitse ankkuri', + styles: 'Tyyli', + tabIndex: 'Tabulaattori indeksi', + target: 'Kohde', + targetFrame: '', + targetFrameName: 'Kohdekehyksen nimi', + targetPopup: '', + targetPopupName: 'Popup ikkunan nimi', + title: 'Linkki', + toAnchor: 'Ankkuri tässä sivussa', + toEmail: 'Sähköposti', + toUrl: 'Osoite', + toPhone: 'Phone', // MISSING + toolbar: 'Lisää linkki/muokkaa linkkiä', + type: 'Linkkityyppi', + unlink: 'Poista linkki', + upload: 'Lisää tiedosto' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fo.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fo.js new file mode 100644 index 0000000000..b0a4e52e20 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fo.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'fo', { + acccessKey: 'Snarvegisknöttur', + advanced: 'Fjølbroytt', + advisoryContentType: 'Vegleiðandi innihaldsslag', + advisoryTitle: 'Vegleiðandi heiti', + anchor: { + toolbar: 'Ger/broyt marknastein', + menu: 'Eginleikar fyri marknastein', + title: 'Eginleikar fyri marknastein', + name: 'Heiti marknasteinsins', + errorName: 'Vinarliga rita marknasteinsins heiti', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Strika marknastein' + }, + anchorId: 'Eftir element Id', + anchorName: 'Eftir navni á marknasteini', + charset: 'Atknýtt teknsett', + cssClasses: 'Typografi klassar', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Teldupost-adressa', + emailBody: 'Breyðtekstur', + emailSubject: 'Evni', + id: 'Id', + info: 'Tilknýtis upplýsingar', + langCode: 'Tekstkós', + langDir: 'Tekstkós', + langDirLTR: 'Frá vinstru til høgru (LTR)', + langDirRTL: 'Frá høgru til vinstru (RTL)', + menu: 'Broyt tilknýti', + name: 'Navn', + noAnchors: '(Eingir marknasteinar eru í hesum dokumentið)', + noEmail: 'Vinarliga skriva teldupost-adressu', + noUrl: 'Vinarliga skriva tilknýti (URL)', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Bundið (Netscape)', + popupFeatures: 'Popup vindeygans víðkaðu eginleikar', + popupFullScreen: 'Fullur skermur (IE)', + popupLeft: 'Frástøða frá vinstru', + popupLocationBar: 'Adressulinja', + popupMenuBar: 'Skrábjálki', + popupResizable: 'Stødd kann broytast', + popupScrollBars: 'Rullibjálki', + popupStatusBar: 'Støðufrágreiðingarbjálki', + popupToolbar: 'Amboðsbjálki', + popupTop: 'Frástøða frá íerva', + rel: 'Relatión', + selectAnchor: 'Vel ein marknastein', + styles: 'Typografi', + tabIndex: 'Tabulator indeks', + target: 'Target', + targetFrame: '', + targetFrameName: 'Vís navn vindeygans', + targetPopup: '', + targetPopupName: 'Popup vindeygans navn', + title: 'Tilknýti', + toAnchor: 'Tilknýti til marknastein í tekstinum', + toEmail: 'Teldupostur', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Ger/broyt tilknýti', + type: 'Tilknýtisslag', + unlink: 'Strika tilknýti', + upload: 'Send til ambætaran' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fr-ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fr-ca.js new file mode 100644 index 0000000000..dc5d5ca4e1 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fr-ca.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'fr-ca', { + acccessKey: 'Touche d\'accessibilité', + advanced: 'Avancé', + advisoryContentType: 'Type de contenu', + advisoryTitle: 'Description', + anchor: { + toolbar: 'Ancre', + menu: 'Modifier l\'ancre', + title: 'Propriétés de l\'ancre', + name: 'Nom de l\'ancre', + errorName: 'Veuillez saisir le nom de l\'ancre', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Supprimer l\'ancre' + }, + anchorId: 'Par ID', + anchorName: 'Par nom', + charset: 'Encodage de la cible', + cssClasses: 'Classes CSS', + download: 'Force Download', // MISSING + displayText: 'Afficher le texte', + emailAddress: 'Courriel', + emailBody: 'Corps du message', + emailSubject: 'Objet du message', + id: 'ID', + info: 'Informations sur le lien', + langCode: 'Code de langue', + langDir: 'Sens d\'écriture', + langDirLTR: 'De gauche à droite (LTR)', + langDirRTL: 'De droite à gauche (RTL)', + menu: 'Modifier le lien', + name: 'Nom', + noAnchors: '(Pas d\'ancre disponible dans le document)', + noEmail: 'Veuillez saisir le courriel', + noUrl: 'Veuillez saisir l\'URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dépendante (Netscape)', + popupFeatures: 'Caractéristiques de la fenêtre popup', + popupFullScreen: 'Plein écran (IE)', + popupLeft: 'Position de la gauche', + popupLocationBar: 'Barre d\'adresse', + popupMenuBar: 'Barre de menu', + popupResizable: 'Redimensionnable', + popupScrollBars: 'Barres de défilement', + popupStatusBar: 'Barre d\'état', + popupToolbar: 'Barre d\'outils', + popupTop: 'Position à partir du haut', + rel: 'Relation', + selectAnchor: 'Sélectionner une ancre', + styles: 'Style', + tabIndex: 'Ordre de tabulation', + target: 'Destination', + targetFrame: '', + targetFrameName: 'Nom du cadre de destination', + targetPopup: '', + targetPopupName: 'Nom de la fenêtre popup', + title: 'Lien', + toAnchor: 'Ancre dans cette page', + toEmail: 'Courriel', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Lien', + type: 'Type de lien', + unlink: 'Supprimer le lien', + upload: 'Téléverser' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fr.js new file mode 100644 index 0000000000..82618b5aa5 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/fr.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'fr', { + acccessKey: 'Touche d\'accessibilité', + advanced: 'Avancé', + advisoryContentType: 'Type de contenu (indicatif)', + advisoryTitle: 'Infobulle', + anchor: { + toolbar: 'Ancre', + menu: 'Modifier l\'ancre', + title: 'Propriétés de l\'ancre', + name: 'Nom de l\'ancre', + errorName: 'Veuillez entrer le nom de l\'ancre.', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Supprimer l\'ancre' + }, + anchorId: 'Par ID d\'élément', + anchorName: 'Par nom d\'ancre', + charset: 'Encodage de la ressource liée', + cssClasses: 'Classes de style', + download: 'Forcer le téléchargement', + displayText: 'Afficher le texte', + emailAddress: 'Adresse électronique', + emailBody: 'Corps du message', + emailSubject: 'Sujet du message', + id: 'ID', + info: 'Informations sur le lien', + langCode: 'Code de langue', + langDir: 'Sens d\'écriture', + langDirLTR: 'Gauche à droite', + langDirRTL: 'Droite à gauche (RTL)', + menu: 'Modifier le lien', + name: 'Nom', + noAnchors: '(Aucune ancre disponible dans ce document)', + noEmail: 'Veuillez entrer l\'adresse électronique', + noUrl: 'Veuillez entrer l\'URL du lien', + noTel: 'Veuillez entrer le numéro de téléphone', + other: '', + phoneNumber: 'Numéro de téléphone', + popupDependent: 'Dépendante (Netscape)', + popupFeatures: 'Caractéristiques de la fenêtre surgissante', + popupFullScreen: 'Plein écran (IE)', + popupLeft: 'À gauche', + popupLocationBar: 'Barre d\'adresse', + popupMenuBar: 'Barre de menu', + popupResizable: 'Redimensionnable', + popupScrollBars: 'Barres de défilement', + popupStatusBar: 'Barre d\'état', + popupToolbar: 'Barre d\'outils', + popupTop: 'En haut', + rel: 'Relation', + selectAnchor: 'Sélectionner une ancre', + styles: 'Style', + tabIndex: 'Indice de tabulation', + target: 'Cible', + targetFrame: '', + targetFrameName: 'Nom du cadre affecté', + targetPopup: '', + targetPopupName: 'Nom de la fenêtre surgissante', + title: 'Lien', + toAnchor: 'Ancre', + toEmail: 'Courriel', + toUrl: 'URL', + toPhone: 'Téléphone', + toolbar: 'Lien', + type: 'Type de lien', + unlink: 'Supprimer le lien', + upload: 'Téléverser' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/gl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/gl.js new file mode 100644 index 0000000000..8ad558883a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/gl.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'gl', { + acccessKey: 'Chave de acceso', + advanced: 'Avanzado', + advisoryContentType: 'Tipo de contido informativo', + advisoryTitle: 'Título', + anchor: { + toolbar: 'Ancoraxe', + menu: 'Editar a ancoraxe', + title: 'Propiedades da ancoraxe', + name: 'Nome da ancoraxe', + errorName: 'Escriba o nome da ancoraxe', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Retirar a ancoraxe' + }, + anchorId: 'Polo ID do elemento', + anchorName: 'Polo nome da ancoraxe', + charset: 'Codificación do recurso ligado', + cssClasses: 'Clases da folla de estilos', + download: 'Forzar a descarga', + displayText: 'Amosar o texto', + emailAddress: 'Enderezo de correo', + emailBody: 'Corpo da mensaxe', + emailSubject: 'Asunto da mensaxe', + id: 'ID', + info: 'Información da ligazón', + langCode: 'Código do idioma', + langDir: 'Dirección de escritura do idioma', + langDirLTR: 'Esquerda a dereita (LTR)', + langDirRTL: 'Dereita a esquerda (RTL)', + menu: 'Editar a ligazón', + name: 'Nome', + noAnchors: '(Non hai ancoraxes dispoñíbeis no documento)', + noEmail: 'Escriba o enderezo de correo', + noUrl: 'Escriba a ligazón URL', + noTel: 'Escriba o número de teléfono', + other: '', + phoneNumber: 'Número de teléfono', + popupDependent: 'Dependente (Netscape)', + popupFeatures: 'Características da xanela emerxente', + popupFullScreen: 'Pantalla completa (IE)', + popupLeft: 'Posición esquerda', + popupLocationBar: 'Barra de localización', + popupMenuBar: 'Barra do menú', + popupResizable: 'Redimensionábel', + popupScrollBars: 'Barras de desprazamento', + popupStatusBar: 'Barra de estado', + popupToolbar: 'Barra de ferramentas', + popupTop: 'Posición superior', + rel: 'Relación', + selectAnchor: 'Seleccionar unha ancoraxe', + styles: 'Estilo', + tabIndex: 'Índice de tabulación', + target: 'Destino', + targetFrame: '', + targetFrameName: 'Nome do marco de destino', + targetPopup: '', + targetPopupName: 'Nome da xanela emerxente', + title: 'Ligazón', + toAnchor: 'Ligar coa ancoraxe no testo', + toEmail: 'Correo', + toUrl: 'URL', + toPhone: 'Teléfono', + toolbar: 'Ligazón', + type: 'Tipo de ligazón', + unlink: 'Eliminar a ligazón', + upload: 'Enviar' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/gu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/gu.js new file mode 100644 index 0000000000..3905d49964 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/gu.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'gu', { + acccessKey: 'ઍક્સેસ કી', + advanced: 'અડ્વાન્સડ', + advisoryContentType: 'મુખ્ય કન્ટેન્ટ પ્રકાર', + advisoryTitle: 'મુખ્ય મથાળું', + anchor: { + toolbar: 'ઍંકર ઇન્સર્ટ/દાખલ કરવી', + menu: 'ઍંકરના ગુણ', + title: 'ઍંકરના ગુણ', + name: 'ઍંકરનું નામ', + errorName: 'ઍંકરનું નામ ટાઈપ કરો', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'સ્થિર નકરવું' + }, + anchorId: 'ઍંકર એલિમન્ટ Id થી પસંદ કરો', + anchorName: 'ઍંકર નામથી પસંદ કરો', + charset: 'લિંક રિસૉર્સ કૅરિક્ટર સેટ', + cssClasses: 'સ્ટાઇલ-શીટ ક્લાસ', + download: 'ડાઉનલોડ કરો', + displayText: 'લખાણ દેખાડો', + emailAddress: 'ઈ-મેલ સરનામું', + emailBody: 'સંદેશ', + emailSubject: 'ઈ-મેલ વિષય', + id: 'Id', + info: 'લિંક ઇન્ફૉ ટૅબ', + langCode: 'ભાષા લેખવાની પદ્ધતિ', + langDir: 'ભાષા લેખવાની પદ્ધતિ', + langDirLTR: 'ડાબે થી જમણે (LTR)', + langDirRTL: 'જમણે થી ડાબે (RTL)', + menu: ' લિંક એડિટ/માં ફેરફાર કરવો', + name: 'નામ', + noAnchors: '(ડૉક્યુમન્ટમાં ઍંકરની સંખ્યા)', + noEmail: 'ઈ-મેલ સરનામું ટાઇપ કરો', + noUrl: 'લિંક URL ટાઇપ કરો', + noTel: 'Please type the phone number', // MISSING + other: ' <અન્ય>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'ડિપેન્ડન્ટ (Netscape)', + popupFeatures: 'પૉપ-અપ વિન્ડો ફીચરસૅ', + popupFullScreen: 'ફુલ સ્ક્રીન (IE)', + popupLeft: 'ડાબી બાજુ', + popupLocationBar: 'લોકેશન બાર', + popupMenuBar: 'મેન્યૂ બાર', + popupResizable: 'રીસાઈઝએબલ', + popupScrollBars: 'સ્ક્રોલ બાર', + popupStatusBar: 'સ્ટૅટસ બાર', + popupToolbar: 'ટૂલ બાર', + popupTop: 'જમણી બાજુ', + rel: 'સંબંધની સ્થિતિ', + selectAnchor: 'ઍંકર પસંદ કરો', + styles: 'સ્ટાઇલ', + tabIndex: 'ટૅબ ઇન્ડેક્સ', + target: 'ટાર્ગેટ/લક્ષ્ય', + targetFrame: '<ફ્રેમ>', + targetFrameName: 'ટાર્ગેટ ફ્રેમ નું નામ', + targetPopup: '<પૉપ-અપ વિન્ડો>', + targetPopupName: 'પૉપ-અપ વિન્ડો નું નામ', + title: 'લિંક', + toAnchor: 'આ પેજનો ઍંકર', + toEmail: 'ઈ-મેલ', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'લિંક ઇન્સર્ટ/દાખલ કરવી', + type: 'લિંક પ્રકાર', + unlink: 'લિંક કાઢવી', + upload: 'અપલોડ' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/he.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/he.js new file mode 100644 index 0000000000..f85fa23607 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/he.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'he', { + acccessKey: 'מקש גישה', + advanced: 'אפשרויות מתקדמות', + advisoryContentType: 'Content Type מוצע', + advisoryTitle: 'כותרת מוצעת', + anchor: { + toolbar: 'הוספת/עריכת נקודת עיגון', + menu: 'מאפייני נקודת עיגון', + title: 'מאפייני נקודת עיגון', + name: 'שם לנקודת עיגון', + errorName: 'יש להקליד שם לנקודת עיגון', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'מחיקת נקודת עיגון' + }, + anchorId: 'עפ"י זיהוי (ID) האלמנט', + anchorName: 'עפ"י שם העוגן', + charset: 'קידוד המשאב המקושר', + cssClasses: 'גיליונות עיצוב קבוצות', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'כתובת הדוא"ל', + emailBody: 'גוף ההודעה', + emailSubject: 'נושא ההודעה', + id: 'זיהוי (ID)', + info: 'מידע על הקישור', + langCode: 'קוד שפה', + langDir: 'כיוון שפה', + langDirLTR: 'שמאל לימין (LTR)', + langDirRTL: 'ימין לשמאל (RTL)', + menu: 'מאפייני קישור', + name: 'שם', + noAnchors: '(אין עוגנים זמינים בדף)', + noEmail: 'יש להקליד את כתובת הדוא"ל', + noUrl: 'יש להקליד את כתובת הקישור (URL)', + noTel: 'Please type the phone number', // MISSING + other: '<אחר>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'תלוי (Netscape)', + popupFeatures: 'תכונות החלון הקופץ', + popupFullScreen: 'מסך מלא (IE)', + popupLeft: 'מיקום צד שמאל', + popupLocationBar: 'סרגל כתובת', + popupMenuBar: 'סרגל תפריט', + popupResizable: 'שינוי גודל', + popupScrollBars: 'ניתן לגלילה', + popupStatusBar: 'סרגל חיווי', + popupToolbar: 'סרגל הכלים', + popupTop: 'מיקום צד עליון', + rel: 'קשר גומלין', + selectAnchor: 'בחירת עוגן', + styles: 'סגנון', + tabIndex: 'מספר טאב', + target: 'מטרה', + targetFrame: '<מסגרת>', + targetFrameName: 'שם מסגרת היעד', + targetPopup: '<חלון קופץ>', + targetPopupName: 'שם החלון הקופץ', + title: 'קישור', + toAnchor: 'עוגן בעמוד זה', + toEmail: 'דוא"ל', + toUrl: 'כתובת (URL)', + toPhone: 'Phone', // MISSING + toolbar: 'הוספת/עריכת קישור', + type: 'סוג קישור', + unlink: 'הסרת הקישור', + upload: 'העלאה' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hi.js new file mode 100644 index 0000000000..fa99bb4ca7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hi.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'hi', { + acccessKey: 'ऍक्सॅस की', + advanced: 'ऍड्वान्स्ड', + advisoryContentType: 'परामर्श कन्टॅन्ट प्रकार', + advisoryTitle: 'परामर्श शीर्शक', + anchor: { + toolbar: 'ऐंकर इन्सर्ट/संपादन', + menu: 'ऐंकर प्रॉपर्टीज़', + title: 'ऐंकर प्रॉपर्टीज़', + name: 'ऐंकर का नाम', + errorName: 'ऐंकर का नाम टाइप करें', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'ऍलीमॅन्ट Id से', + anchorName: 'ऐंकर नाम से', + charset: 'लिंक रिसोर्स करॅक्टर सॅट', + cssClasses: 'स्टाइल-शीट क्लास', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'ई-मेल पता', + emailBody: 'संदेश', + emailSubject: 'संदेश विषय', + id: 'Id', + info: 'लिंक ', + langCode: 'भाषा लिखने की दिशा', + langDir: 'भाषा लिखने की दिशा', + langDirLTR: 'बायें से दायें (LTR)', + langDirRTL: 'दायें से बायें (RTL)', + menu: 'लिंक संपादन', + name: 'नाम', + noAnchors: '(डॉक्यूमॅन्ट में ऐंकर्स की संख्या)', + noEmail: 'ई-मेल पता टाइप करें', + noUrl: 'लिंक URL टाइप करें', + noTel: 'Please type the phone number', // MISSING + other: '<अन्य>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'डिपेन्डॅन्ट (Netscape)', + popupFeatures: 'पॉप-अप विन्डो फ़ीचर्स', + popupFullScreen: 'फ़ुल स्क्रीन (IE)', + popupLeft: 'बायीं तरफ', + popupLocationBar: 'लोकेशन बार', + popupMenuBar: 'मॅन्यू बार', + popupResizable: 'आकार बदलने लायक', + popupScrollBars: 'स्क्रॉल बार', + popupStatusBar: 'स्टेटस बार', + popupToolbar: 'टूल बार', + popupTop: 'दायीं तरफ', + rel: 'संबंध', + selectAnchor: 'ऐंकर चुनें', + styles: 'स्टाइल', + tabIndex: 'टैब इन्डॅक्स', + target: 'टार्गेट', + targetFrame: '<फ़्रेम>', + targetFrameName: 'टार्गेट फ़्रेम का नाम', + targetPopup: '<पॉप-अप विन्डो>', + targetPopupName: 'पॉप-अप विन्डो का नाम', + title: 'लिंक', + toAnchor: 'इस पेज का ऐंकर', + toEmail: 'ई-मेल', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'लिंक इन्सर्ट/संपादन', + type: 'लिंक प्रकार', + unlink: 'लिंक हटायें', + upload: 'अपलोड' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hr.js new file mode 100644 index 0000000000..4974c9c280 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hr.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'hr', { + acccessKey: 'Pristupna tipka', + advanced: 'Napredno', + advisoryContentType: 'Savjetodavna vrsta sadržaja', + advisoryTitle: 'Savjetodavni naslov', + anchor: { + toolbar: 'Ubaci/promijeni sidro', + menu: 'Svojstva sidra', + title: 'Svojstva sidra', + name: 'Ime sidra', + errorName: 'Molimo unesite ime sidra', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Ukloni sidro' + }, + anchorId: 'Po Id elementa', + anchorName: 'Po nazivu sidra', + charset: 'Kodna stranica povezanih resursa', + cssClasses: 'Stylesheet klase', + download: 'Preuzmi na silu', + displayText: 'Prikaži tekst', + emailAddress: 'E-Mail adresa', + emailBody: 'Sadržaj poruke', + emailSubject: 'Naslov', + id: 'Id', + info: 'Link Info', + langCode: 'Smjer jezika', + langDir: 'Smjer jezika', + langDirLTR: 'S lijeva na desno (LTR)', + langDirRTL: 'S desna na lijevo (RTL)', + menu: 'Promijeni link', + name: 'Naziv', + noAnchors: '(Nema dostupnih sidra)', + noEmail: 'Molimo upišite e-mail adresu', + noUrl: 'Molimo upišite URL link', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Ovisno (Netscape)', + popupFeatures: 'Mogućnosti popup prozora', + popupFullScreen: 'Cijeli ekran (IE)', + popupLeft: 'Lijeva pozicija', + popupLocationBar: 'Traka za lokaciju', + popupMenuBar: 'Izborna traka', + popupResizable: 'Promjenjiva veličina', + popupScrollBars: 'Scroll traka', + popupStatusBar: 'Statusna traka', + popupToolbar: 'Traka s alatima', + popupTop: 'Gornja pozicija', + rel: 'Veza', + selectAnchor: 'Odaberi sidro', + styles: 'Stil', + tabIndex: 'Tab Indeks', + target: 'Meta', + targetFrame: '', + targetFrameName: 'Ime ciljnog okvira', + targetPopup: '', + targetPopupName: 'Naziv popup prozora', + title: 'Veza', + toAnchor: 'Sidro na ovoj stranici', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Ubaci/promijeni vezu', + type: 'Vrsta veze', + unlink: 'Ukloni vezu', + upload: 'Pošalji' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hu.js new file mode 100644 index 0000000000..d7ac296be0 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/hu.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'hu', { + acccessKey: 'Billentyűkombináció', + advanced: 'További opciók', + advisoryContentType: 'Súgó tartalomtípusa', + advisoryTitle: 'Súgócimke', + anchor: { + toolbar: 'Horgony beillesztése/szerkesztése', + menu: 'Horgony tulajdonságai', + title: 'Horgony tulajdonságai', + name: 'Horgony neve', + errorName: 'Kérem adja meg a horgony nevét', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Horgony eltávolítása' + }, + anchorId: 'Azonosító szerint', + anchorName: 'Horgony név szerint', + charset: 'Hivatkozott tartalom kódlapja', + cssClasses: 'Stíluskészlet', + download: 'Kötelező letöltés', + displayText: 'Megjelenített szöveg', + emailAddress: 'E-Mail cím', + emailBody: 'Üzenet', + emailSubject: 'Üzenet tárgya', + id: 'Id', + info: 'Alaptulajdonságok', + langCode: 'Írás iránya', + langDir: 'Írás iránya', + langDirLTR: 'Balról jobbra', + langDirRTL: 'Jobbról balra', + menu: 'Hivatkozás módosítása', + name: 'Név', + noAnchors: '(Nincs horgony a dokumentumban)', + noEmail: 'Adja meg az E-Mail címet', + noUrl: 'Adja meg a hivatkozás webcímét', + noTel: 'Adja meg a telefonszámot', + other: '', + phoneNumber: 'Telefonszám', + popupDependent: 'Szülőhöz kapcsolt (csak Netscape)', + popupFeatures: 'Felugró ablak jellemzői', + popupFullScreen: 'Teljes képernyő (csak IE)', + popupLeft: 'Bal pozíció', + popupLocationBar: 'Címsor', + popupMenuBar: 'Menü sor', + popupResizable: 'Átméretezés', + popupScrollBars: 'Gördítősáv', + popupStatusBar: 'Állapotsor', + popupToolbar: 'Eszköztár', + popupTop: 'Felső pozíció', + rel: 'Kapcsolat típusa', + selectAnchor: 'Horgony választása', + styles: 'Stílus', + tabIndex: 'Tabulátor index', + target: 'Tartalom megjelenítése', + targetFrame: '', + targetFrameName: 'Keret neve', + targetPopup: '', + targetPopupName: 'Felugró ablak neve', + title: 'Hivatkozás tulajdonságai', + toAnchor: 'Horgony az oldalon', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Hivatkozás beillesztése/módosítása', + type: 'Hivatkozás típusa', + unlink: 'Hivatkozás törlése', + upload: 'Feltöltés' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/id.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/id.js new file mode 100644 index 0000000000..ffd83349e9 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/id.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'id', { + acccessKey: 'Access Key', // MISSING + advanced: 'Advanced', // MISSING + advisoryContentType: 'Advisory Content Type', // MISSING + advisoryTitle: 'Penasehat Judul', + anchor: { + toolbar: 'Anchor', // MISSING + menu: 'Edit Anchor', // MISSING + title: 'Anchor Properties', // MISSING + name: 'Anchor Name', // MISSING + errorName: 'Please type the anchor name', // MISSING + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' // MISSING + }, + anchorId: 'By Element Id', // MISSING + anchorName: 'By Anchor Name', // MISSING + charset: 'Linked Resource Charset', // MISSING + cssClasses: 'Kelas Stylesheet', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Alamat E-mail', + emailBody: 'Message Body', // MISSING + emailSubject: 'Judul Pesan', + id: 'Id', + info: 'Link Info', // MISSING + langCode: 'Kode Bahasa', + langDir: 'Arah Bahasa', + langDirLTR: 'Kiri ke Kanan (LTR)', + langDirRTL: 'Kanan ke Kiri (RTL)', + menu: 'Sunting Tautan', + name: 'Nama', + noAnchors: '(No anchors available in the document)', // MISSING + noEmail: 'Silahkan ketikkan alamat e-mail', + noUrl: 'Silahkan ketik URL tautan', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', // MISSING + popupFeatures: 'Popup Window Features', // MISSING + popupFullScreen: 'Full Screen (IE)', // MISSING + popupLeft: 'Left Position', // MISSING + popupLocationBar: 'Location Bar', // MISSING + popupMenuBar: 'Menu Bar', // MISSING + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Scroll Bars', // MISSING + popupStatusBar: 'Status Bar', // MISSING + popupToolbar: 'Toolbar', // MISSING + popupTop: 'Top Position', // MISSING + rel: 'Hubungan', + selectAnchor: 'Select an Anchor', // MISSING + styles: 'Gaya', + tabIndex: 'Tab Index', // MISSING + target: 'Sasaran', + targetFrame: '', // MISSING + targetFrameName: 'Target Frame Name', // MISSING + targetPopup: '', // MISSING + targetPopupName: 'Popup Window Name', // MISSING + title: 'Tautan', + toAnchor: 'Link to anchor in the text', // MISSING + toEmail: 'E-mail', // MISSING + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Tautan', + type: 'Link Type', // MISSING + unlink: 'Unlink', // MISSING + upload: 'Unggah' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/is.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/is.js new file mode 100644 index 0000000000..2ed684b1bd --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/is.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'is', { + acccessKey: 'Skammvalshnappur', + advanced: 'Tæknilegt', + advisoryContentType: 'Tegund innihalds', + advisoryTitle: 'Titill', + anchor: { + toolbar: 'Stofna/breyta kaflamerki', + menu: 'Eigindi kaflamerkis', + title: 'Eigindi kaflamerkis', + name: 'Nafn bókamerkis', + errorName: 'Sláðu inn nafn bókamerkis!', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'Eftir auðkenni einingar', + anchorName: 'Eftir akkerisnafni', + charset: 'Táknróf', + cssClasses: 'Stílsniðsflokkur', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Netfang', + emailBody: 'Meginmál', + emailSubject: 'Efni', + id: 'Auðkenni', + info: 'Almennt', + langCode: 'Lesstefna', + langDir: 'Lesstefna', + langDirLTR: 'Frá vinstri til hægri (LTR)', + langDirRTL: 'Frá hægri til vinstri (RTL)', + menu: 'Breyta stiklu', + name: 'Nafn', + noAnchors: '', + noEmail: 'Sláðu inn netfang!', + noUrl: 'Sláðu inn veffang stiklunnar!', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Háð venslum (Netscape)', + popupFeatures: 'Eigindi sprettiglugga', + popupFullScreen: 'Heilskjár (IE)', + popupLeft: 'Fjarlægð frá vinstri', + popupLocationBar: 'Fanglína', + popupMenuBar: 'Vallína', + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Skrunstikur', + popupStatusBar: 'Stöðustika', + popupToolbar: 'Verkfærastika', + popupTop: 'Fjarlægð frá efri brún', + rel: 'Relationship', // MISSING + selectAnchor: 'Veldu akkeri', + styles: 'Stíll', + tabIndex: 'Raðnúmer innsláttarreits', + target: 'Mark', + targetFrame: '', + targetFrameName: 'Nafn markglugga', + targetPopup: '', + targetPopupName: 'Nafn sprettiglugga', + title: 'Stikla', + toAnchor: 'Bókamerki á þessari síðu', + toEmail: 'Netfang', + toUrl: 'Vefslóð', + toPhone: 'Phone', // MISSING + toolbar: 'Stofna/breyta stiklu', + type: 'Stikluflokkur', + unlink: 'Fjarlægja stiklu', + upload: 'Senda upp' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/it.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/it.js new file mode 100644 index 0000000000..5bf98fed3c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/it.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'it', { + acccessKey: 'Scorciatoia da tastiera', + advanced: 'Avanzate', + advisoryContentType: 'Tipo della risorsa collegata', + advisoryTitle: 'Titolo', + anchor: { + toolbar: 'Inserisci/Modifica Ancora', + menu: 'Proprietà ancora', + title: 'Proprietà ancora', + name: 'Nome ancora', + errorName: 'Inserici il nome dell\'ancora', + errorWhitespace: 'Il nome delle ancore non può contenere caratteri di spaziatura', + remove: 'Rimuovi l\'ancora' + }, + anchorId: 'Per id elemento', + anchorName: 'Per Nome', + charset: 'Set di caretteri della risorsa collegata', + cssClasses: 'Nome classe CSS', + download: 'Forza scaricamento', + displayText: 'Mostra testo', + emailAddress: 'Indirizzo E-Mail', + emailBody: 'Corpo del messaggio', + emailSubject: 'Oggetto del messaggio', + id: 'Id', + info: 'Informazioni collegamento', + langCode: 'Direzione scrittura', + langDir: 'Direzione scrittura', + langDirLTR: 'Da Sinistra a Destra (LTR)', + langDirRTL: 'Da Destra a Sinistra (RTL)', + menu: 'Modifica collegamento', + name: 'Nome', + noAnchors: '(Nessuna ancora disponibile nel documento)', + noEmail: 'Devi inserire un\'indirizzo e-mail', + noUrl: 'Devi inserire l\'URL del collegamento', + noTel: 'Inserire il numero di telefono', + other: '', + phoneNumber: 'Numero di telefono', + popupDependent: 'Dipendente (Netscape)', + popupFeatures: 'Caratteristiche finestra popup', + popupFullScreen: 'A tutto schermo (IE)', + popupLeft: 'Posizione da sinistra', + popupLocationBar: 'Barra degli indirizzi', + popupMenuBar: 'Barra del menu', + popupResizable: 'Ridimensionabile', + popupScrollBars: 'Barre di scorrimento', + popupStatusBar: 'Barra di stato', + popupToolbar: 'Barra degli strumenti', + popupTop: 'Posizione dall\'alto', + rel: 'Relazioni', + selectAnchor: 'Scegli Ancora', + styles: 'Stile', + tabIndex: 'Ordine di tabulazione', + target: 'Destinazione', + targetFrame: '', + targetFrameName: 'Nome del riquadro di destinazione', + targetPopup: '', + targetPopupName: 'Nome finestra popup', + title: 'Collegamento', + toAnchor: 'Ancora nel testo', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Telefono', + toolbar: 'Collegamento', + type: 'Tipo di Collegamento', + unlink: 'Elimina collegamento', + upload: 'Carica' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ja.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ja.js new file mode 100644 index 0000000000..c2cee16fa6 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ja.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ja', { + acccessKey: 'アクセスキー', + advanced: '高度な設定', + advisoryContentType: 'Content Type属性', + advisoryTitle: 'Title属性', + anchor: { + toolbar: 'アンカー挿入/編集', + menu: 'アンカーの編集', + title: 'アンカーのプロパティ', + name: 'アンカー名', + errorName: 'アンカー名を入力してください。', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'アンカーを削除' + }, + anchorId: 'エレメントID', + anchorName: 'アンカー名', + charset: 'リンク先のcharset', + cssClasses: 'スタイルシートクラス', + download: '強制的にダウンロード', + displayText: '表示文字', + emailAddress: 'E-Mail アドレス', + emailBody: '本文', + emailSubject: '件名', + id: 'Id', + info: 'ハイパーリンク情報', + langCode: '言語コード', + langDir: '文字表記の方向', + langDirLTR: '左から右 (LTR)', + langDirRTL: '右から左 (RTL)', + menu: 'リンクを編集', + name: 'Name属性', + noAnchors: '(このドキュメント内にアンカーはありません)', + noEmail: 'メールアドレスを入力してください。', + noUrl: 'リンクURLを入力してください。', + noTel: 'Please type the phone number', // MISSING + other: '<その他の>', + phoneNumber: 'Phone number', // MISSING + popupDependent: '開いたウィンドウに連動して閉じる (Netscape)', + popupFeatures: 'ポップアップウィンドウ特徴', + popupFullScreen: '全画面モード(IE)', + popupLeft: '左端からの座標で指定', + popupLocationBar: 'ロケーションバー', + popupMenuBar: 'メニューバー', + popupResizable: 'サイズ可変', + popupScrollBars: 'スクロールバー', + popupStatusBar: 'ステータスバー', + popupToolbar: 'ツールバー', + popupTop: '上端からの座標で指定', + rel: '関連リンク', + selectAnchor: 'アンカーを選択', + styles: 'スタイルシート', + tabIndex: 'タブインデックス', + target: 'ターゲット', + targetFrame: '<フレーム>', + targetFrameName: 'ターゲットのフレーム名', + targetPopup: '<ポップアップウィンドウ>', + targetPopupName: 'ポップアップウィンドウ名', + title: 'ハイパーリンク', + toAnchor: 'ページ内のアンカー', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'リンク挿入/編集', + type: 'リンクタイプ', + unlink: 'リンクを削除', + upload: 'アップロード' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ka.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ka.js new file mode 100644 index 0000000000..1fcf5dc0a7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ka.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ka', { + acccessKey: 'წვდომის ღილაკი', + advanced: 'დაწვრილებით', + advisoryContentType: 'შიგთავსის ტიპი', + advisoryTitle: 'სათაური', + anchor: { + toolbar: 'ღუზა', + menu: 'ღუზის რედაქტირება', + title: 'ღუზის პარამეტრები', + name: 'ღუზუს სახელი', + errorName: 'აკრიფეთ ღუზის სახელი', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'ელემენტის Id-თ', + anchorName: 'ღუზის სახელით', + charset: 'კოდირება', + cssClasses: 'CSS კლასი', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'ელფოსტის მისამართები', + emailBody: 'წერილის ტექსტი', + emailSubject: 'წერილის სათაური', + id: 'Id', + info: 'ბმულის ინფორმაცია', + langCode: 'ენის კოდი', + langDir: 'ენის მიმართულება', + langDirLTR: 'მარცხნიდან მარჯვნივ (LTR)', + langDirRTL: 'მარჯვნიდან მარცხნივ (RTL)', + menu: 'ბმულის რედაქტირება', + name: 'სახელი', + noAnchors: '(ამ დოკუმენტში ღუზა არაა)', + noEmail: 'აკრიფეთ ელფოსტის მისამართი', + noUrl: 'აკრიფეთ ბმულის URL', + noTel: 'Please type the phone number', // MISSING + other: '<სხვა>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'დამოკიდებული (Netscape)', + popupFeatures: 'Popup ფანჯრის პარამეტრები', + popupFullScreen: 'მთელი ეკრანი (IE)', + popupLeft: 'მარცხენა პოზიცია', + popupLocationBar: 'ნავიგაციის ზოლი', + popupMenuBar: 'მენიუს ზოლი', + popupResizable: 'ცვალებადი ზომით', + popupScrollBars: 'გადახვევის ზოლები', + popupStatusBar: 'სტატუსის ზოლი', + popupToolbar: 'ხელსაწყოთა ზოლი', + popupTop: 'ზედა პოზიცია', + rel: 'კავშირი', + selectAnchor: 'აირჩიეთ ღუზა', + styles: 'CSS სტილი', + tabIndex: 'Tab-ის ინდექსი', + target: 'გახსნის ადგილი', + targetFrame: '', + targetFrameName: 'Frame-ის სახელი', + targetPopup: '', + targetPopupName: 'Popup ფანჯრის სახელი', + title: 'ბმული', + toAnchor: 'ბმული ტექსტში ღუზაზე', + toEmail: 'ელფოსტა', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'ბმული', + type: 'ბმულის ტიპი', + unlink: 'ბმულის მოხსნა', + upload: 'აქაჩვა' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/km.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/km.js new file mode 100644 index 0000000000..7cd35e3fa5 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/km.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'km', { + acccessKey: 'សោរ​ចូល', + advanced: 'កម្រិត​ខ្ពស់', + advisoryContentType: 'ប្រភេទអត្ថបទ​ប្រឹក្សា', + advisoryTitle: 'ចំណងជើង​ប្រឹក្សា', + anchor: { + toolbar: 'យុថ្កា', + menu: 'កែ​យុថ្កា', + title: 'លក្ខណៈ​យុថ្កា', + name: 'ឈ្មោះ​យុថ្កា', + errorName: 'សូម​បញ្ចូល​ឈ្មោះ​យុថ្កា', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'ដក​យុថ្កា​ចេញ' + }, + anchorId: 'តាម ID ធាតុ', + anchorName: 'តាម​ឈ្មោះ​យុថ្កា', + charset: 'លេខកូតអក្សររបស់ឈ្នាប់', + cssClasses: 'Stylesheet Classes', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'អាសយដ្ឋាន​អ៊ីមែល', + emailBody: 'តួ​អត្ថបទ', + emailSubject: 'ប្រធានបទ​សារ', + id: 'Id', + info: 'ព័ត៌មាន​ពី​តំណ', + langCode: 'កូដ​ភាសា', + langDir: 'ទិសដៅភាសា', + langDirLTR: 'ពីឆ្វេងទៅស្តាំ(LTR)', + langDirRTL: 'ពីស្តាំទៅឆ្វេង(RTL)', + menu: 'កែ​តំណ', + name: 'ឈ្មោះ', + noAnchors: '(មិន​មាន​យុថ្កា​នៅ​ក្នុង​ឯកសារ​អត្ថថបទ​ទេ)', + noEmail: 'សូម​បញ្ចូល​អាសយដ្ឋាន​អ៊ីមែល', + noUrl: 'សូម​បញ្ចូល​តំណ URL', + noTel: 'Please type the phone number', // MISSING + other: '<ផ្សេង​ទៀត>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', + popupFeatures: 'មុខ​ងារ​ផុស​ផ្ទាំង​វីនដូ​ឡើង', + popupFullScreen: 'ពេញ​អេក្រង់ (IE)', + popupLeft: 'ទីតាំងខាងឆ្វេង', + popupLocationBar: 'របារ​ទីតាំង', + popupMenuBar: 'របារ​ម៉ឺនុយ', + popupResizable: 'អាច​ប្ដូរ​ទំហំ', + popupScrollBars: 'របារ​រំកិល', + popupStatusBar: 'របារ​ស្ថានភាព', + popupToolbar: 'របារ​ឧបករណ៍', + popupTop: 'ទីតាំង​កំពូល', + rel: 'សម្ពន្ធ​ភាព', + selectAnchor: 'រើស​យក​យុថ្កា​មួយ', + styles: 'ស្ទីល', + tabIndex: 'លេខ Tab', + target: 'គោលដៅ', + targetFrame: '<ស៊ុម>', + targetFrameName: 'ឈ្មោះ​ស៊ុម​ជា​គោល​ដៅ', + targetPopup: '<វីនដូ​ផុស​ឡើង>', + targetPopupName: 'ឈ្មោះ​វីនដូត​ផុស​ឡើង', + title: 'តំណ', + toAnchor: 'ត​ភ្ជាប់​ទៅ​យុថ្កា​ក្នុង​អត្ថបទ', + toEmail: 'អ៊ីមែល', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'តំណ', + type: 'ប្រភេទ​តំណ', + unlink: 'ផ្ដាច់​តំណ', + upload: 'ផ្ទុក​ឡើង' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ko.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ko.js new file mode 100644 index 0000000000..d4b52d5184 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ko.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ko', { + acccessKey: '액세스 키', + advanced: '고급', + advisoryContentType: '보조 콘텐츠 유형', + advisoryTitle: '보조 제목', + anchor: { + toolbar: '책갈피', + menu: '책갈피 편집', + title: '책갈피 속성', + name: '책갈피 이름', + errorName: '책갈피 이름을 입력하십시오', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: '책갈피 제거' + }, + anchorId: '책갈피 ID', + anchorName: '책갈피 이름', + charset: '링크된 자료 문자열 인코딩', + cssClasses: '스타일시트 클래스', + download: '강제 다운로드', + displayText: '보이는 글자', + emailAddress: '이메일 주소', + emailBody: '메시지 내용', + emailSubject: '메시지 제목', + id: 'ID', + info: '링크 정보', + langCode: '언어 코드', + langDir: '언어 방향', + langDirLTR: '왼쪽에서 오른쪽 (LTR)', + langDirRTL: '오른쪽에서 왼쪽 (RTL)', + menu: '링크 수정', + name: '이름', + noAnchors: '(문서에 책갈피가 없습니다.)', + noEmail: '이메일 주소를 입력하십시오', + noUrl: '링크 주소(URL)를 입력하십시오', + noTel: 'Please type the phone number', // MISSING + other: '<기타>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', + popupFeatures: '팝업창 속성', + popupFullScreen: '전체화면 (IE)', + popupLeft: '왼쪽 위치', + popupLocationBar: '주소 표시줄', + popupMenuBar: '메뉴 바', + popupResizable: '크기 조절 가능', + popupScrollBars: '스크롤 바', + popupStatusBar: '상태 바', + popupToolbar: '툴바', + popupTop: '위쪽 위치', + rel: '관계', + selectAnchor: '책갈피 선택', + styles: '스타일', + tabIndex: '탭 순서', + target: '타겟', + targetFrame: '<프레임>', + targetFrameName: '타겟 프레임 이름', + targetPopup: '<팝업 창>', + targetPopupName: '팝업 창 이름', + title: '링크', + toAnchor: '책갈피', + toEmail: '이메일', + toUrl: '주소(URL)', + toPhone: 'Phone', // MISSING + toolbar: '링크 삽입/변경', + type: '링크 종류', + unlink: '링크 지우기', + upload: '업로드' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ku.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ku.js new file mode 100644 index 0000000000..0b0f8784a2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ku.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ku', { + acccessKey: 'کلیلی دەستپێگەیشتن', + advanced: 'پێشکەوتوو', + advisoryContentType: 'جۆری ناوەڕۆکی ڕاویژکار', + advisoryTitle: 'ڕاوێژکاری سەردێڕ', + anchor: { + toolbar: 'دانان/چاکسازی لەنگەر', + menu: 'چاکسازی لەنگەر', + title: 'خاسیەتی لەنگەر', + name: 'ناوی لەنگەر', + errorName: 'تکایه ناوی لەنگەر بنووسه', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'لابردنی لەنگەر' + }, + anchorId: 'بەپێی ناسنامەی توخم', + anchorName: 'بەپێی ناوی لەنگەر', + charset: 'بەستەری سەرچاوەی نووسە', + cssClasses: 'شێوازی چینی پەڕه', + download: 'داگرتنی بەهێز', + displayText: 'پیشاندانی دەق', + emailAddress: 'ناونیشانی ئیمەیل', + emailBody: 'ناوەڕۆکی نامە', + emailSubject: 'بابەتی نامە', + id: 'ناسنامە', + info: 'زانیاری بەستەر', + langCode: 'هێمای زمان', + langDir: 'ئاراستەی زمان', + langDirLTR: 'چەپ بۆ ڕاست (LTR)', + langDirRTL: 'ڕاست بۆ چەپ (RTL)', + menu: 'چاکسازی بەستەر', + name: 'ناو', + noAnchors: '(هیچ جۆرێکی لەنگەر ئامادە نیە لەم پەڕەیه)', + noEmail: 'تکایە ناونیشانی ئیمەیل بنووسە', + noUrl: 'تکایە ناونیشانی بەستەر بنووسە', + noTel: 'تکایە ژمارەی تەلەفۆن دابنێ', + other: '<هیتر>', + phoneNumber: 'ژمارەی تەلەفۆن', + popupDependent: 'پێوەبەستراو (Netscape)', + popupFeatures: 'خاسیەتی پەنجەرەی سەرهەڵدەر', + popupFullScreen: 'پڕ بەپڕی شاشە (IE)', + popupLeft: 'جێگای چەپ', + popupLocationBar: 'هێڵی ناونیشانی بەستەر', + popupMenuBar: 'هێڵی لیسته', + popupResizable: 'توانای گۆڕینی قەباره', + popupScrollBars: 'هێڵی هاتووچۆپێکردن', + popupStatusBar: 'هێڵی دۆخ', + popupToolbar: 'هێڵی تووڵامراز', + popupTop: 'جێگای سەرەوە', + rel: 'پەیوەندی', + selectAnchor: 'هەڵبژاردنی لەنگەرێك', + styles: 'شێواز', + tabIndex: 'بازدەری تابی ئیندێکس', + target: 'ئامانج', + targetFrame: '<چووارچێوە>', + targetFrameName: 'ناوی ئامانجی چووارچێوە', + targetPopup: '<پەنجەرەی سەرهەڵدەر>', + targetPopupName: 'ناوی پەنجەرەی سەرهەڵدەر', + title: 'بەستەر', + toAnchor: 'بەستەر بۆ لەنگەر له دەق', + toEmail: 'ئیمەیل', + toUrl: 'ناونیشانی بەستەر', + toPhone: 'تەلەفۆن', + toolbar: 'دانان/ڕێکخستنی بەستەر', + type: 'جۆری بەستەر', + unlink: 'لابردنی بەستەر', + upload: 'بارکردن' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/lt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/lt.js new file mode 100644 index 0000000000..a968663a0f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/lt.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'lt', { + acccessKey: 'Prieigos raktas', + advanced: 'Papildomas', + advisoryContentType: 'Konsultacinio turinio tipas', + advisoryTitle: 'Konsultacinė antraštė', + anchor: { + toolbar: 'Įterpti/modifikuoti žymę', + menu: 'Žymės savybės', + title: 'Žymės savybės', + name: 'Žymės vardas', + errorName: 'Prašome įvesti žymės vardą', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Pašalinti žymę' + }, + anchorId: 'Pagal žymės Id', + anchorName: 'Pagal žymės vardą', + charset: 'Susietų išteklių simbolių lentelė', + cssClasses: 'Stilių lentelės klasės', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'El.pašto adresas', + emailBody: 'Žinutės turinys', + emailSubject: 'Žinutės tema', + id: 'Id', + info: 'Nuorodos informacija', + langCode: 'Teksto kryptis', + langDir: 'Teksto kryptis', + langDirLTR: 'Iš kairės į dešinę (LTR)', + langDirRTL: 'Iš dešinės į kairę (RTL)', + menu: 'Taisyti nuorodą', + name: 'Vardas', + noAnchors: '(Šiame dokumente žymių nėra)', + noEmail: 'Prašome įvesti el.pašto adresą', + noUrl: 'Prašome įvesti nuorodos URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Priklausomas (Netscape)', + popupFeatures: 'Išskleidžiamo lango savybės', + popupFullScreen: 'Visas ekranas (IE)', + popupLeft: 'Kairė pozicija', + popupLocationBar: 'Adreso juosta', + popupMenuBar: 'Meniu juosta', + popupResizable: 'Kintamas dydis', + popupScrollBars: 'Slinkties juostos', + popupStatusBar: 'Būsenos juosta', + popupToolbar: 'Mygtukų juosta', + popupTop: 'Viršutinė pozicija', + rel: 'Sąsajos', + selectAnchor: 'Pasirinkite žymę', + styles: 'Stilius', + tabIndex: 'Tabuliavimo indeksas', + target: 'Paskirties vieta', + targetFrame: '', + targetFrameName: 'Paskirties kadro vardas', + targetPopup: '', + targetPopupName: 'Paskirties lango vardas', + title: 'Nuoroda', + toAnchor: 'Žymė šiame puslapyje', + toEmail: 'El.paštas', + toUrl: 'Nuoroda', + toPhone: 'Phone', // MISSING + toolbar: 'Įterpti/taisyti nuorodą', + type: 'Nuorodos tipas', + unlink: 'Panaikinti nuorodą', + upload: 'Siųsti' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/lv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/lv.js new file mode 100644 index 0000000000..713046562d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/lv.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'lv', { + acccessKey: 'Pieejas taustiņš', + advanced: 'Izvērstais', + advisoryContentType: 'Konsultatīvs satura tips', + advisoryTitle: 'Konsultatīvs virsraksts', + anchor: { + toolbar: 'Ievietot/Labot iezīmi', + menu: 'Labot iezīmi', + title: 'Iezīmes uzstādījumi', + name: 'Iezīmes nosaukums', + errorName: 'Lūdzu norādiet iezīmes nosaukumu', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Noņemt iezīmi' + }, + anchorId: 'Pēc elementa ID', + anchorName: 'Pēc iezīmes nosaukuma', + charset: 'Pievienotā resursa kodējums', + cssClasses: 'Stilu saraksta klases', + download: 'Piespiedu ielāde', + displayText: 'Attēlot tekstu', + emailAddress: 'E-pasta adrese', + emailBody: 'Ziņojuma pamatteksts', + emailSubject: 'Ziņojuma tēma', + id: 'ID', + info: 'Saites informācija', + langCode: 'Valodas kods', + langDir: 'Valodas lasīšanas virziens', + langDirLTR: 'No kreisās uz labo (LTR)', + langDirRTL: 'No labās uz kreiso (RTL)', + menu: 'Rediģēt saiti', + name: 'Nosaukums', + noAnchors: '(Šajā dokumentā nav iezīmju)', + noEmail: 'Lūdzu, ievadiet e-pasta adresi', + noUrl: 'Lūdzu, ievadiet saites URL', + noTel: 'Lūdzu, ievadiet tālruņa numuru', + other: '', + phoneNumber: 'Tālruņa numurs', + popupDependent: 'Atkarīgs (Netscape)', + popupFeatures: 'Uznirstošā loga nosaukums īpašības', + popupFullScreen: 'Pilnā ekrānā (IE)', + popupLeft: 'Kreisā koordināte', + popupLocationBar: 'Atrašanās vietas josla', + popupMenuBar: 'Izvēlnes josla', + popupResizable: 'Mērogojams', + popupScrollBars: 'Ritjoslas', + popupStatusBar: 'Statusa josla', + popupToolbar: 'Rīku josla', + popupTop: 'Augšējā koordināte', + rel: 'Relācija', + selectAnchor: 'Izvēlēties iezīmi', + styles: 'Stils', + tabIndex: 'Ciļņu indekss', + target: 'Mērķis', + targetFrame: '', + targetFrameName: 'Mērķa ietvara nosaukums', + targetPopup: '', + targetPopupName: 'Uznirstošā loga nosaukums', + title: 'Saite', + toAnchor: 'Iezīme šajā lapā', + toEmail: 'E-pasts', + toUrl: 'Adrese', + toPhone: 'Tālrunis', + toolbar: 'Saite', + type: 'Saites tips', + unlink: 'Atsaistīt', + upload: 'Augšupielādēt' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/mk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/mk.js new file mode 100644 index 0000000000..fbc7f0cee0 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/mk.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'mk', { + acccessKey: 'Access Key', // MISSING + advanced: 'Advanced', // MISSING + advisoryContentType: 'Advisory Content Type', // MISSING + advisoryTitle: 'Advisory Title', // MISSING + anchor: { + toolbar: 'Anchor', + menu: 'Edit Anchor', + title: 'Anchor Properties', + name: 'Anchor Name', + errorName: 'Please type the anchor name', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'By Element Id', // MISSING + anchorName: 'By Anchor Name', // MISSING + charset: 'Linked Resource Charset', // MISSING + cssClasses: 'Stylesheet Classes', // MISSING + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-Mail Address', // MISSING + emailBody: 'Message Body', // MISSING + emailSubject: 'Message Subject', // MISSING + id: 'Id', + info: 'Link Info', // MISSING + langCode: 'Код на јазик', + langDir: 'Насока на јазик', + langDirLTR: 'Лево кон десно', + langDirRTL: 'Десно кон лево', + menu: 'Edit Link', // MISSING + name: 'Name', + noAnchors: '(No anchors available in the document)', // MISSING + noEmail: 'Please type the e-mail address', // MISSING + noUrl: 'Please type the link URL', // MISSING + noTel: 'Please type the phone number', // MISSING + other: '', // MISSING + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', // MISSING + popupFeatures: 'Popup Window Features', // MISSING + popupFullScreen: 'Full Screen (IE)', // MISSING + popupLeft: 'Left Position', // MISSING + popupLocationBar: 'Location Bar', // MISSING + popupMenuBar: 'Menu Bar', // MISSING + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Scroll Bars', // MISSING + popupStatusBar: 'Status Bar', // MISSING + popupToolbar: 'Toolbar', // MISSING + popupTop: 'Top Position', // MISSING + rel: 'Relationship', // MISSING + selectAnchor: 'Select an Anchor', // MISSING + styles: 'Стил', + tabIndex: 'Tab Index', // MISSING + target: 'Target', // MISSING + targetFrame: '', // MISSING + targetFrameName: 'Target Frame Name', // MISSING + targetPopup: '', // MISSING + targetPopupName: 'Popup Window Name', // MISSING + title: 'Врска', + toAnchor: 'Link to anchor in the text', // MISSING + toEmail: 'E-mail', // MISSING + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Врска', + type: 'Link Type', // MISSING + unlink: 'Unlink', // MISSING + upload: 'Прикачи' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/mn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/mn.js new file mode 100644 index 0000000000..c24ef49c67 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/mn.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'mn', { + acccessKey: 'Холбох түлхүүр', + advanced: 'Нэмэлт', + advisoryContentType: 'Зөвлөлдөх төрлийн агуулга', + advisoryTitle: 'Зөвлөлдөх гарчиг', + anchor: { + toolbar: 'Зангуу', + menu: 'Зангууг болосруулах', + title: 'Зангуугийн шинж чанар', + name: 'Зангуугийн нэр', + errorName: 'Зангуугийн нэрийг оруулна уу', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Зангууг устгах' + }, + anchorId: 'Элемэнтйн Id нэрээр', + anchorName: 'Зангуугийн нэрээр', + charset: 'Тэмдэгт оноох нөөцөд холбогдсон', + cssClasses: 'Stylesheet классууд', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Э-шуудангийн хаяг', + emailBody: 'Зурвасны их бие', + emailSubject: 'Зурвасны гарчиг', + id: 'Id', + info: 'Холбоосын тухай мэдээлэл', + langCode: 'Хэлний код', + langDir: 'Хэлний чиглэл', + langDirLTR: 'Зүүнээс баруун (LTR)', + langDirRTL: 'Баруунаас зүүн (RTL)', + menu: 'Холбоос засварлах', + name: 'Нэр', + noAnchors: '(Баримт бичиг зангуугүй байна)', + noEmail: 'Э-шуудангий хаягаа шивнэ үү', + noUrl: 'Холбоосны URL хаягийг шивнэ үү', + noTel: 'Please type the phone number', // MISSING + other: '', // MISSING + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Хамаатай (Netscape)', + popupFeatures: 'Popup цонхны онцлог', + popupFullScreen: 'Цонх дүүргэх (Internet Explorer)', + popupLeft: 'Зүүн байрлал', + popupLocationBar: 'Location хэсэг', + popupMenuBar: 'Цэсний самбар', + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Скрол хэсэгүүд', + popupStatusBar: 'Статус хэсэг', + popupToolbar: 'Багажны самбар', + popupTop: 'Дээд байрлал', + rel: 'Relationship', // MISSING + selectAnchor: 'Нэг зангууг сонгоно уу', + styles: 'Загвар', + tabIndex: 'Tab индекс', + target: 'Байрлал', + targetFrame: '<Агуулах хүрээ>', + targetFrameName: 'Очих фремын нэр', + targetPopup: '', + targetPopupName: 'Popup цонхны нэр', + title: 'Холбоос', + toAnchor: 'Энэ бичвэр дэх зангуу руу очих холбоос', + toEmail: 'Э-захиа', + toUrl: 'цахим хуудасны хаяг (URL)', + toPhone: 'Phone', // MISSING + toolbar: 'Холбоос', + type: 'Линкийн төрөл', + unlink: 'Холбоос авч хаях', + upload: 'Хуулах' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ms.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ms.js new file mode 100644 index 0000000000..d34134de23 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ms.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ms', { + acccessKey: 'Kunci Akses', + advanced: 'Advanced', + advisoryContentType: 'Jenis Kandungan Makluman', + advisoryTitle: 'Tajuk Makluman', + anchor: { + toolbar: 'Masukkan/Sunting Pautan', + menu: 'Ciri-ciri Pautan', + title: 'Ciri-ciri Pautan', + name: 'Nama Pautan', + errorName: 'Sila taip nama pautan', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'dengan menggunakan ID elemen', + anchorName: 'dengan menggunakan nama pautan', + charset: 'Linked Resource Charset', + cssClasses: 'Kelas-kelas Stylesheet', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Alamat E-Mail', + emailBody: 'Isi Kandungan Mesej', + emailSubject: 'Subjek Mesej', + id: 'Id', + info: 'Butiran Sambungan', + langCode: 'Arah Tulisan', + langDir: 'Arah Tulisan', + langDirLTR: 'Kiri ke Kanan (LTR)', + langDirRTL: 'Kanan ke Kiri (RTL)', + menu: 'Sunting Sambungan', + name: 'Nama', + noAnchors: '(Tiada pautan terdapat dalam dokumen ini)', + noEmail: 'Sila taip alamat e-mail', + noUrl: 'Sila taip sambungan URL', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Bergantungan (Netscape)', + popupFeatures: 'Ciri Tetingkap Popup', + popupFullScreen: 'Skrin Penuh (IE)', + popupLeft: 'Posisi Kiri', + popupLocationBar: 'Bar Lokasi', + popupMenuBar: 'Bar Menu', + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Bar-bar skrol', + popupStatusBar: 'Bar Status', + popupToolbar: 'Toolbar', + popupTop: 'Posisi Atas', + rel: 'Relationship', // MISSING + selectAnchor: 'Sila pilih pautan', + styles: 'Stail', + tabIndex: 'Indeks Tab ', + target: 'Sasaran', + targetFrame: '', + targetFrameName: 'Nama Bingkai Sasaran', + targetPopup: '', + targetPopupName: 'Nama Tetingkap Popup', + title: 'Sambungan', + toAnchor: 'Pautan dalam muka surat ini', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Masukkan/Sunting Sambungan', + type: 'Jenis Sambungan', + unlink: 'Buang Sambungan', + upload: 'Muat Naik' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/nb.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/nb.js new file mode 100644 index 0000000000..3c8d9c77ba --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/nb.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'nb', { + acccessKey: 'Aksessknapp', + advanced: 'Avansert', + advisoryContentType: 'Type', + advisoryTitle: 'Tittel', + anchor: { + toolbar: 'Anker', + menu: 'Rediger anker', + title: 'Egenskaper for anker', + name: 'Ankernavn', + errorName: 'Vennligst skriv inn ankernavnet', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Fjern anker' + }, + anchorId: 'Element etter ID', + anchorName: 'Anker etter navn', + charset: 'Lenket tegnsett', + cssClasses: 'Stilarkklasser', + download: 'Tving nedlasting', + displayText: 'Tekst som skal vises', + emailAddress: 'E-postadresse', + emailBody: 'Melding', + emailSubject: 'Meldingsemne', + id: 'Id', + info: 'Lenkeinfo', + langCode: 'Språkkode', + langDir: 'Språkretning', + langDirLTR: 'Venstre til høyre (LTR)', + langDirRTL: 'Høyre til venstre (RTL)', + menu: 'Rediger lenke', + name: 'Navn', + noAnchors: '(Ingen anker i dokumentet)', + noEmail: 'Vennligst skriv inn e-postadressen', + noUrl: 'Vennligst skriv inn lenkens URL', + noTel: 'Vennligst skriv inn telefonnummeret', + other: '', + phoneNumber: 'Telefonnummer', + popupDependent: 'Avhenging (Netscape)', + popupFeatures: 'Egenskaper for popup-vindu', + popupFullScreen: 'Fullskjerm (IE)', + popupLeft: 'Venstre posisjon', + popupLocationBar: 'Adresselinje', + popupMenuBar: 'Menylinje', + popupResizable: 'Skalerbar', + popupScrollBars: 'Scrollbar', + popupStatusBar: 'Statuslinje', + popupToolbar: 'Verktøylinje', + popupTop: 'Topp-posisjon', + rel: 'Relasjon (rel)', + selectAnchor: 'Velg et anker', + styles: 'Stil', + tabIndex: 'Tabindeks', + target: 'Mål', + targetFrame: '', + targetFrameName: 'Målramme', + targetPopup: '', + targetPopupName: 'Navn på popup-vindu', + title: 'Lenke', + toAnchor: 'Lenke til anker i teksten', + toEmail: 'E-post', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Lenke', + type: 'Lenketype', + unlink: 'Fjern lenke', + upload: 'Last opp' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/nl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/nl.js new file mode 100644 index 0000000000..5c478bb1e0 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/nl.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'nl', { + acccessKey: 'Toegangstoets', + advanced: 'Geavanceerd', + advisoryContentType: 'Aanbevolen content-type', + advisoryTitle: 'Adviserende titel', + anchor: { + toolbar: 'Interne link', + menu: 'Eigenschappen interne link', + title: 'Eigenschappen interne link', + name: 'Naam interne link', + errorName: 'Geef de naam van de interne link op', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Interne link verwijderen' + }, + anchorId: 'Op kenmerk interne link', + anchorName: 'Op naam interne link', + charset: 'Karakterset van gelinkte bron', + cssClasses: 'Stylesheet-klassen', + download: 'Download forceren', + displayText: 'Weergavetekst', + emailAddress: 'E-mailadres', + emailBody: 'Inhoud bericht', + emailSubject: 'Onderwerp bericht', + id: 'Id', + info: 'Linkomschrijving', + langCode: 'Taalcode', + langDir: 'Schrijfrichting', + langDirLTR: 'Links naar rechts (LTR)', + langDirRTL: 'Rechts naar links (RTL)', + menu: 'Link wijzigen', + name: 'Naam', + noAnchors: '(Geen interne links in document gevonden)', + noEmail: 'Geef een e-mailadres', + noUrl: 'Geef de link van de URL', + noTel: 'Geef een telefoonnummer', + other: '', + phoneNumber: 'Telefoonnummer', + popupDependent: 'Afhankelijk (Netscape)', + popupFeatures: 'Instellingen popupvenster', + popupFullScreen: 'Volledig scherm (IE)', + popupLeft: 'Positie links', + popupLocationBar: 'Locatiemenu', + popupMenuBar: 'Menubalk', + popupResizable: 'Herschaalbaar', + popupScrollBars: 'Schuifbalken', + popupStatusBar: 'Statusbalk', + popupToolbar: 'Werkbalk', + popupTop: 'Positie boven', + rel: 'Relatie', + selectAnchor: 'Kies een interne link', + styles: 'Stijl', + tabIndex: 'Tabvolgorde', + target: 'Doelvenster', + targetFrame: '', + targetFrameName: 'Naam doelframe', + targetPopup: '', + targetPopupName: 'Naam popupvenster', + title: 'Link', + toAnchor: 'Interne link in pagina', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Telefoon', + toolbar: 'Link invoegen/wijzigen', + type: 'Linktype', + unlink: 'Link verwijderen', + upload: 'Upload' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/no.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/no.js new file mode 100644 index 0000000000..0ec0575948 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/no.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'no', { + acccessKey: 'Aksessknapp', + advanced: 'Avansert', + advisoryContentType: 'Type', + advisoryTitle: 'Tittel', + anchor: { + toolbar: 'Sett inn/Rediger anker', + menu: 'Egenskaper for anker', + title: 'Egenskaper for anker', + name: 'Ankernavn', + errorName: 'Vennligst skriv inn ankernavnet', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Fjern anker' + }, + anchorId: 'Element etter ID', + anchorName: 'Anker etter navn', + charset: 'Lenket tegnsett', + cssClasses: 'Stilarkklasser', + download: 'Force Download', // MISSING + displayText: 'Tekst som skal vises', + emailAddress: 'E-postadresse', + emailBody: 'Melding', + emailSubject: 'Meldingsemne', + id: 'Id', + info: 'Lenkeinfo', + langCode: 'Språkkode', + langDir: 'Språkretning', + langDirLTR: 'Venstre til høyre (VTH)', + langDirRTL: 'Høyre til venstre (HTV)', + menu: 'Rediger lenke', + name: 'Navn', + noAnchors: '(Ingen anker i dokumentet)', + noEmail: 'Vennligst skriv inn e-postadressen', + noUrl: 'Vennligst skriv inn lenkens URL', + noTel: 'Skriv inn telefonnummer', + other: '', + phoneNumber: 'Telefonnummer', + popupDependent: 'Avhenging (Netscape)', + popupFeatures: 'Egenskaper for popup-vindu', + popupFullScreen: 'Fullskjerm (IE)', + popupLeft: 'Venstre posisjon', + popupLocationBar: 'Adresselinje', + popupMenuBar: 'Menylinje', + popupResizable: 'Skalerbar', + popupScrollBars: 'Scrollbar', + popupStatusBar: 'Statuslinje', + popupToolbar: 'Verktøylinje', + popupTop: 'Topp-posisjon', + rel: 'Relasjon (rel)', + selectAnchor: 'Velg et anker', + styles: 'Stil', + tabIndex: 'Tabindeks', + target: 'Mål', + targetFrame: '', + targetFrameName: 'Målramme', + targetPopup: '', + targetPopupName: 'Navn på popup-vindu', + title: 'Lenke', + toAnchor: 'Lenke til anker i teksten', + toEmail: 'E-post', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Sett inn/Rediger lenke', + type: 'Lenketype', + unlink: 'Fjern lenke', + upload: 'Last opp' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/oc.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/oc.js new file mode 100644 index 0000000000..872eba8906 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/oc.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'oc', { + acccessKey: 'Tòca d\'accessibilitat', + advanced: 'Avançat', + advisoryContentType: 'Tipe de contengut (indicatiu)', + advisoryTitle: 'Infobulla', + anchor: { + toolbar: 'Ancòra', + menu: 'Modificar l\'ancòra', + title: 'Proprietats de l\'ancòra', + name: 'Nom de l\'ancòra', + errorName: 'Entratz lo nom de l\'ancòra', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Suprimir l\'ancòra' + }, + anchorId: 'Per ID d\'element', + anchorName: 'Per nom d\'ancòra', + charset: 'Encodatge de la ressorsa ligada', + cssClasses: 'Classas d\'estil', + download: 'Forçar lo telecargament', + displayText: 'Afichar lo tèxte', + emailAddress: 'Adreça electronica', + emailBody: 'Còs del messatge', + emailSubject: 'Subjècte del messatge', + id: 'Id', + info: 'Informacions sul ligam', + langCode: 'Còdi de lenga', + langDir: 'Sens d\'escritura', + langDirLTR: 'Esquèrra a dreita (LTR)', + langDirRTL: 'Dreita a esquèrra (RTL)', + menu: 'Modificar lo ligam', + name: 'Nom', + noAnchors: '(Cap d\'ancòra pas disponibla dins aqueste document)', + noEmail: 'Entratz l\'adreça electronica', + noUrl: 'Entratz l\'URL del ligam', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependenta (Netscape)', + popupFeatures: 'Caracteristicas de la fenèstra sorgissenta', + popupFullScreen: 'Ecran complet (IE)', + popupLeft: 'A esquèrra', + popupLocationBar: 'Barra d\'adreça', + popupMenuBar: 'Barra de menú', + popupResizable: 'Redimensionable', + popupScrollBars: 'Barras de desfilament', + popupStatusBar: 'Barra d\'estat', + popupToolbar: 'Barra d\'aisinas', + popupTop: 'Amont', + rel: 'Relacion', + selectAnchor: 'Seleccionar una ancòra', + styles: 'Estil', + tabIndex: 'Indici de tabulacion', + target: 'Cibla', + targetFrame: '', + targetFrameName: 'Nom del quadre afectat', + targetPopup: '', + targetPopupName: 'Nom de la fenèstra sorgissenta', + title: 'Ligam', + toAnchor: 'Ancòra', + toEmail: 'Corrièl', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Ligam', + type: 'Tipe de ligam', + unlink: 'Suprimir lo ligam', + upload: 'Mandar' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pl.js new file mode 100644 index 0000000000..7c50ba1a81 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pl.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'pl', { + acccessKey: 'Klawisz dostępu', + advanced: 'Zaawansowane', + advisoryContentType: 'Typ MIME obiektu docelowego', + advisoryTitle: 'Opis obiektu docelowego', + anchor: { + toolbar: 'Wstaw/edytuj kotwicę', + menu: 'Właściwości kotwicy', + title: 'Właściwości kotwicy', + name: 'Nazwa kotwicy', + errorName: 'Podaj nazwę kotwicy.', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Usuń kotwicę' + }, + anchorId: 'Wg identyfikatora', + anchorName: 'Wg nazwy', + charset: 'Kodowanie znaków obiektu docelowego', + cssClasses: 'Nazwa klasy CSS', + download: 'Wymuś pobieranie', + displayText: 'Wyświetlany tekst', + emailAddress: 'Adres e-mail', + emailBody: 'Treść', + emailSubject: 'Temat', + id: 'Id', + info: 'Informacje ', + langCode: 'Kod języka', + langDir: 'Kierunek tekstu', + langDirLTR: 'Od lewej do prawej (LTR)', + langDirRTL: 'Od prawej do lewej (RTL)', + menu: 'Edytuj odnośnik', + name: 'Nazwa', + noAnchors: '(W dokumencie nie zdefiniowano żadnych kotwic)', + noEmail: 'Podaj adres e-mail.', + noUrl: 'Podaj adres URL.', + noTel: 'Podaj numer telefonu.', + other: '', + phoneNumber: 'Numer telefonu', + popupDependent: 'Okno zależne (Netscape)', + popupFeatures: 'Właściwości wyskakującego okna', + popupFullScreen: 'Pełny ekran (IE)', + popupLeft: 'Pozycja w poziomie', + popupLocationBar: 'Pasek adresu', + popupMenuBar: 'Pasek menu', + popupResizable: 'Skalowalny', + popupScrollBars: 'Paski przewijania', + popupStatusBar: 'Pasek statusu', + popupToolbar: 'Pasek narzędzi', + popupTop: 'Pozycja w pionie', + rel: 'Relacja', + selectAnchor: 'Wybierz kotwicę', + styles: 'Styl', + tabIndex: 'Indeks kolejności', + target: 'Obiekt docelowy', + targetFrame: '', + targetFrameName: 'Nazwa ramki docelowej', + targetPopup: '', + targetPopupName: 'Nazwa wyskakującego okna', + title: 'Odnośnik', + toAnchor: 'Odnośnik wewnątrz strony (kotwica)', + toEmail: 'Adres e-mail', + toUrl: 'Adres URL', + toPhone: 'Telefon', + toolbar: 'Wstaw/edytuj odnośnik', + type: 'Typ odnośnika', + unlink: 'Usuń odnośnik', + upload: 'Wyślij' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pt-br.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pt-br.js new file mode 100644 index 0000000000..3be97d5f13 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pt-br.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'pt-br', { + acccessKey: 'Chave de Acesso', + advanced: 'Avançado', + advisoryContentType: 'Tipo de Conteúdo', + advisoryTitle: 'Título', + anchor: { + toolbar: 'Inserir/Editar Âncora', + menu: 'Formatar Âncora', + title: 'Formatar Âncora', + name: 'Nome da Âncora', + errorName: 'Por favor, digite o nome da âncora', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remover Âncora' + }, + anchorId: 'Id da âncora', + anchorName: 'Nome da âncora', + charset: 'Charset do Link', + cssClasses: 'Classe de CSS', + download: 'Forçar Download', + displayText: 'Exibir Texto', + emailAddress: 'Endereço E-Mail', + emailBody: 'Corpo da Mensagem', + emailSubject: 'Assunto da Mensagem', + id: 'Id', + info: 'Informações', + langCode: 'Direção do idioma', + langDir: 'Direção do idioma', + langDirLTR: 'Esquerda para Direita (LTR)', + langDirRTL: 'Direita para Esquerda (RTL)', + menu: 'Editar Link', + name: 'Nome', + noAnchors: '(Não há âncoras no documento)', + noEmail: 'Por favor, digite o endereço de e-mail', + noUrl: 'Por favor, digite o endereço do Link', + noTel: 'Por favor, informe o número do telefone', + other: '', + phoneNumber: 'Número de telefone', + popupDependent: 'Dependente (Netscape)', + popupFeatures: 'Propriedades da Janela Pop-up', + popupFullScreen: 'Modo Tela Cheia (IE)', + popupLeft: 'Esquerda', + popupLocationBar: 'Barra de Endereços', + popupMenuBar: 'Barra de Menus', + popupResizable: 'Redimensionável', + popupScrollBars: 'Barras de Rolagem', + popupStatusBar: 'Barra de Status', + popupToolbar: 'Barra de Ferramentas', + popupTop: 'Topo', + rel: 'Tipo de Relação', + selectAnchor: 'Selecione uma âncora', + styles: 'Estilos', + tabIndex: 'Índice de Tabulação', + target: 'Destino', + targetFrame: '', + targetFrameName: 'Nome do Frame de Destino', + targetPopup: '', + targetPopupName: 'Nome da Janela Pop-up', + title: 'Editar Link', + toAnchor: 'Âncora nesta página', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Telefone', + toolbar: 'Inserir/Editar Link', + type: 'Tipo de hiperlink', + unlink: 'Remover Link', + upload: 'Enviar ao Servidor' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pt.js new file mode 100644 index 0000000000..8367d4758a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/pt.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'pt', { + acccessKey: 'Chave de acesso', + advanced: 'Avançado', + advisoryContentType: 'Tipo de conteúdo', + advisoryTitle: 'Título', + anchor: { + toolbar: ' Inserir/Editar âncora', + menu: 'Propriedades da âncora', + title: 'Propriedades da âncora', + name: 'Nome da âncora', + errorName: 'Por favor, introduza o nome da âncora', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remover âncora' + }, + anchorId: 'Por ID do elemento', + anchorName: 'Por Nome de Referência', + charset: 'Fonte de caracteres vinculado', + cssClasses: 'Classes de Estilo', + download: 'Force Download', // MISSING + displayText: 'Mostrar texto', + emailAddress: 'Endereço de email', + emailBody: 'Corpo da mensagem', + emailSubject: 'Título de mensagem', + id: 'ID', + info: 'Informação da hiperligação', + langCode: 'Código de idioma', + langDir: 'Orientação de idioma', + langDirLTR: 'Esquerda para a Direita (EPD)', + langDirRTL: 'Direita para a Esquerda (DPE)', + menu: 'Editar hiperligação', + name: 'Nome', + noAnchors: '(Não existem âncoras no documento)', + noEmail: 'Por favor, escreva o endereço de email', + noUrl: 'Por favor, introduza o endereço URL', + noTel: 'Por favor, escreva o número de telefone', + other: '', + phoneNumber: 'Número de telefone', + popupDependent: 'Dependente (Netscape)', + popupFeatures: 'Características de janela flutuante', + popupFullScreen: 'Janela completa (IE)', + popupLeft: 'Posição esquerda', + popupLocationBar: 'Barra de localização', + popupMenuBar: 'Barra de menu', + popupResizable: 'Redimensionável', + popupScrollBars: 'Barras de deslocamento', + popupStatusBar: 'Barra de estado', + popupToolbar: 'Barra de ferramentas', + popupTop: 'Posição topo', + rel: 'Relação', + selectAnchor: 'Selecionar âncora', + styles: 'Estilo', + tabIndex: 'Índice de tabulação', + target: 'Alvo', + targetFrame: '', + targetFrameName: 'Nome da janela de destino', + targetPopup: '', + targetPopupName: 'Nome da janela flutuante', + title: 'Hiperligação', + toAnchor: 'Ligar a âncora no texto', + toEmail: 'Email', + toUrl: 'URL', + toPhone: 'Telefone', + toolbar: 'Hiperligação', + type: 'Tipo de hiperligação', + unlink: 'Eliminar hiperligação', + upload: 'Carregar' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ro.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ro.js new file mode 100644 index 0000000000..cd35ab2121 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ro.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ro', { + acccessKey: 'Tasta de acces', + advanced: 'Avansat', + advisoryContentType: 'Tipul consultativ al titlului', + advisoryTitle: 'Titlul consultativ', + anchor: { + toolbar: 'Inserează/Editează ancoră', + menu: 'Proprietăţi ancoră', + title: 'Proprietăţi ancoră', + name: 'Numele ancorei', + errorName: 'Vă rugăm scrieţi numele ancorei', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Elimină ancora' + }, + anchorId: 'după Id-ul elementului', + anchorName: 'după numele ancorei', + charset: 'Setul de caractere al resursei legate', + cssClasses: 'Clasele cu stilul paginii (CSS)', + download: 'descarcă', + displayText: 'afișează textul', + emailAddress: 'Adresă de e-mail', + emailBody: 'conținut email', + emailSubject: 'Subiectul mesajului', + id: 'identitate', + info: 'Informaţii despre link (Legătură web)', + langCode: 'Direcţia cuvintelor', + langDir: 'Direcţia cuvintelor', + langDirLTR: 'de la stânga la dreapta (LTR)', + langDirRTL: 'de la dreapta la stânga (RTL)', + menu: 'Editează Link', + name: 'Nume', + noAnchors: 'Nu există nici o ancoră', + noEmail: 'Vă rugăm să scrieţi adresa de e-mail', + noUrl: 'Vă rugăm să scrieţi URL-ul', + noTel: 'Please type the phone number', // MISSING + other: 'altceva', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', + popupFeatures: 'Proprietăţile ferestrei popup', + popupFullScreen: 'Tot ecranul (Full Screen)(IE)', + popupLeft: 'Poziţia la stânga', + popupLocationBar: 'Bara de locaţie', + popupMenuBar: 'Bara de meniu', + popupResizable: 'Redimensionabil', + popupScrollBars: 'Bare de derulare', + popupStatusBar: 'Bara de stare', + popupToolbar: 'Bara de opţiuni', + popupTop: 'Poziţia la dreapta', + rel: 'Relaționare', + selectAnchor: 'Selectaţi o ancoră', + styles: 'Stil', + tabIndex: 'Indexul tabului', + target: 'Ţintă (Target)', + targetFrame: 'frame țintă', + targetFrameName: 'Numele frameului ţintă', + targetPopup: 'popup țintă', + targetPopupName: 'Numele ferestrei popup', + title: 'titlu', + toAnchor: 'Ancoră în această pagină', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Inserează/Editează link (legătură web)', + type: 'Tipul link-ului (al legăturii web)', + unlink: 'Înlătură link (legătură web)', + upload: 'Încarcă' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ru.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ru.js new file mode 100644 index 0000000000..f51b6b5a8a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ru.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ru', { + acccessKey: 'Клавиша доступа', + advanced: 'Дополнительно', + advisoryContentType: 'Тип содержимого', + advisoryTitle: 'Заголовок', + anchor: { + toolbar: 'Вставить / редактировать якорь', + menu: 'Изменить якорь', + title: 'Свойства якоря', + name: 'Имя якоря', + errorName: 'Пожалуйста, введите имя якоря', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Удалить якорь' + }, + anchorId: 'По идентификатору', + anchorName: 'По имени', + charset: 'Кодировка ресурса', + cssClasses: 'Классы CSS', + download: 'Скачать как файл', + displayText: 'Отображаемый текст', + emailAddress: 'Email адрес', + emailBody: 'Текст сообщения', + emailSubject: 'Тема сообщения', + id: 'Идентификатор', + info: 'Информация о ссылке', + langCode: 'Код языка', + langDir: 'Направление текста', + langDirLTR: 'Слева направо (LTR)', + langDirRTL: 'Справа налево (RTL)', + menu: 'Редактировать ссылку', + name: 'Имя', + noAnchors: '(В документе нет ни одного якоря)', + noEmail: 'Пожалуйста, введите email адрес', + noUrl: 'Пожалуйста, введите ссылку', + noTel: 'Please type the phone number', // MISSING + other: '<другой>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Зависимое (Netscape)', + popupFeatures: 'Параметры всплывающего окна', + popupFullScreen: 'Полноэкранное (IE)', + popupLeft: 'Отступ слева', + popupLocationBar: 'Панель адреса', + popupMenuBar: 'Панель меню', + popupResizable: 'Изменяемый размер', + popupScrollBars: 'Полосы прокрутки', + popupStatusBar: 'Строка состояния', + popupToolbar: 'Панель инструментов', + popupTop: 'Отступ сверху', + rel: 'Отношение', + selectAnchor: 'Выберите якорь', + styles: 'Стиль', + tabIndex: 'Последовательность перехода', + target: 'Цель', + targetFrame: '<фрейм>', + targetFrameName: 'Имя целевого фрейма', + targetPopup: '<всплывающее окно>', + targetPopupName: 'Имя всплывающего окна', + title: 'Ссылка', + toAnchor: 'Ссылка на якорь в тексте', + toEmail: 'Email', + toUrl: 'Ссылка', + toPhone: 'Phone', // MISSING + toolbar: 'Вставить/Редактировать ссылку', + type: 'Тип ссылки', + unlink: 'Убрать ссылку', + upload: 'Загрузка' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/si.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/si.js new file mode 100644 index 0000000000..e97afc0d45 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/si.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'si', { + acccessKey: 'ප්‍රවේශ යතුර', + advanced: 'දීය', + advisoryContentType: 'උපදේශාත්මක අන්තර්ගත ආකාරය', + advisoryTitle: 'උපදේශාත්මක නාමය', + anchor: { + toolbar: 'ආධාරය', + menu: 'ආධාරය වෙනස් කිරීම', + title: 'ආධාරක ', + name: 'ආධාරකයේ නාමය', + errorName: 'කරුණාකර ආධාරකයේ නාමය ඇතුල් කරන්න', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'ආධාරකය ඉවත් කිරීම' + }, + anchorId: 'By Element Id', // MISSING + anchorName: 'By Anchor Name', // MISSING + charset: 'Linked Resource Charset', // MISSING + cssClasses: 'විලාසපත්‍ර පන්තිය', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-Mail Address', // MISSING + emailBody: 'Message Body', // MISSING + emailSubject: 'Message Subject', // MISSING + id: 'අංකය', + info: 'Link Info', // MISSING + langCode: 'භාෂා කේතය', + langDir: 'භාෂා දිශාව', + langDirLTR: 'වමේසිට දකුණුට', + langDirRTL: 'දකුණේ සිට වමට', + menu: 'Edit Link', // MISSING + name: 'නම', + noAnchors: '(No anchors available in the document)', // MISSING + noEmail: 'Please type the e-mail address', // MISSING + noUrl: 'Please type the link URL', // MISSING + noTel: 'Please type the phone number', // MISSING + other: '', // MISSING + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Dependent (Netscape)', // MISSING + popupFeatures: 'Popup Window Features', // MISSING + popupFullScreen: 'Full Screen (IE)', // MISSING + popupLeft: 'Left Position', // MISSING + popupLocationBar: 'Location Bar', // MISSING + popupMenuBar: 'Menu Bar', // MISSING + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Scroll Bars', // MISSING + popupStatusBar: 'Status Bar', // MISSING + popupToolbar: 'Toolbar', // MISSING + popupTop: 'Top Position', // MISSING + rel: 'Relationship', // MISSING + selectAnchor: 'Select an Anchor', // MISSING + styles: 'විලාසය', + tabIndex: 'Tab Index', // MISSING + target: 'අරමුණ', + targetFrame: '', // MISSING + targetFrameName: 'Target Frame Name', // MISSING + targetPopup: '', // MISSING + targetPopupName: 'Popup Window Name', // MISSING + title: 'සබැඳිය', + toAnchor: 'Link to anchor in the text', // MISSING + toEmail: 'E-mail', // MISSING + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'සබැඳිය', + type: 'Link Type', // MISSING + unlink: 'Unlink', // MISSING + upload: 'උඩුගතකිරීම' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sk.js new file mode 100644 index 0000000000..d49d6e0f04 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sk.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'sk', { + acccessKey: 'Prístupový kľúč', + advanced: 'Rozšírené', + advisoryContentType: 'Pomocný typ obsahu', + advisoryTitle: 'Pomocný titulok', + anchor: { + toolbar: 'Kotva', + menu: 'Upraviť kotvu', + title: 'Vlastnosti kotvy', + name: 'Názov kotvy', + errorName: 'Zadajte prosím názov kotvy', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Odstrániť kotvu' + }, + anchorId: 'Podľa Id objektu', + anchorName: 'Podľa mena kotvy', + charset: 'Priradená znaková sada', + cssClasses: 'Triedy štýlu', + download: 'Vynútené sťahovanie.', + displayText: 'Zobraziť text', + emailAddress: 'E-Mailová adresa', + emailBody: 'Telo správy', + emailSubject: 'Predmet správy', + id: 'Id', + info: 'Informácie o odkaze', + langCode: 'Orientácia jazyka', + langDir: 'Orientácia jazyka', + langDirLTR: 'Zľava doprava (LTR)', + langDirRTL: 'Sprava doľava (RTL)', + menu: 'Upraviť odkaz', + name: 'Názov', + noAnchors: '(V dokumente nie sú dostupné žiadne kotvy)', + noEmail: 'Zadajte prosím e-mailovú adresu', + noUrl: 'Zadajte prosím URL odkazu', + noTel: 'Zadajte prosím telefónne číslo', + other: '', + phoneNumber: 'Telefónne číslo', + popupDependent: 'Závislosť (Netscape)', + popupFeatures: 'Vlastnosti vyskakovacieho okna', + popupFullScreen: 'Celá obrazovka (IE)', + popupLeft: 'Ľavý okraj', + popupLocationBar: 'Panel umiestnenia (location bar)', + popupMenuBar: 'Panel ponuky (menu bar)', + popupResizable: 'Meniteľná veľkosť (resizable)', + popupScrollBars: 'Posuvníky (scroll bars)', + popupStatusBar: 'Stavový riadok (status bar)', + popupToolbar: 'Panel nástrojov (toolbar)', + popupTop: 'Horný okraj', + rel: 'Vzťah (rel)', + selectAnchor: 'Vybrať kotvu', + styles: 'Štýl', + tabIndex: 'Poradie prvku (tab index)', + target: 'Cieľ', + targetFrame: '', + targetFrameName: 'Názov rámu cieľa', + targetPopup: '', + targetPopupName: 'Názov vyskakovacieho okna', + title: 'Odkaz', + toAnchor: 'Odkaz na kotvu v texte', + toEmail: 'E-mail', + toUrl: 'URL', + toPhone: 'Telefón', + toolbar: 'Odkaz', + type: 'Typ odkazu', + unlink: 'Odstrániť odkaz', + upload: 'Nahrať' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sl.js new file mode 100644 index 0000000000..5872355b92 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sl.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'sl', { + acccessKey: 'Tipka za dostop', + advanced: 'Napredno', + advisoryContentType: 'Predlagana vrsta vsebine', + advisoryTitle: 'Predlagani naslov', + anchor: { + toolbar: 'Sidro', + menu: 'Uredi sidro', + title: 'Lastnosti sidra', + name: 'Ime sidra', + errorName: 'Prosimo, vnesite ime sidra', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Odstrani sidro' + }, + anchorId: 'Po ID-ju elementa', + anchorName: 'Po imenu sidra', + charset: 'Nabor znakov povezanega vira', + cssClasses: 'Razredi slogovne predloge', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'E-poštni naslov', + emailBody: 'Telo sporočila', + emailSubject: 'Zadeva sporočila', + id: 'Id', + info: 'Podatki o povezavi', + langCode: 'Koda jezika', + langDir: 'Smer jezika', + langDirLTR: 'Od leve proti desni (LTR)', + langDirRTL: 'Od desne proti levi (RTL)', + menu: 'Uredi povezavo', + name: 'Ime', + noAnchors: '(V tem dokumentu ni sider)', + noEmail: 'Vnesite e-poštni naslov', + noUrl: 'Vnesite URL povezave', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Podokno (Netscape)', + popupFeatures: 'Značilnosti pojavnega okna', + popupFullScreen: 'Celozaslonsko (IE)', + popupLeft: 'Lega levo', + popupLocationBar: 'Naslovna vrstica', + popupMenuBar: 'Menijska vrstica', + popupResizable: 'Spremenljive velikosti', + popupScrollBars: 'Drsniki', + popupStatusBar: 'Vrstica stanja', + popupToolbar: 'Orodna vrstica', + popupTop: 'Lega na vrhu', + rel: 'Odnos', + selectAnchor: 'Izberite sidro', + styles: 'Slog', + tabIndex: 'Številka tabulatorja', + target: 'Cilj', + targetFrame: '', + targetFrameName: 'Ime ciljnega okvirja', + targetPopup: '', + targetPopupName: 'Ime pojavnega okna', + title: 'Povezava', + toAnchor: 'Sidro na tej strani', + toEmail: 'E-pošta', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Vstavi/uredi povezavo', + type: 'Vrsta povezave', + unlink: 'Odstrani povezavo', + upload: 'Naloži' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sq.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sq.js new file mode 100644 index 0000000000..a500ceb8ef --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sq.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'sq', { + acccessKey: 'Elementi i qasjes', + advanced: 'Të përparuara', + advisoryContentType: 'Lloji i Përmbajtjes Këshillimorit', + advisoryTitle: 'Titulli Këshillimorit', + anchor: { + toolbar: 'Spirancë', + menu: 'Redakto Spirancën', + title: 'Karakteristikat e Spirancës', + name: 'Emri i Spirancës', + errorName: 'Ju lutemi shkruani emrin e spirancës', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Largo Spirancën' + }, + anchorId: 'Sipas ID-së së Elementit', + anchorName: 'Sipas Emrit të Spirancës', + charset: 'Seti i Karaktereve të Burimeve të lidhura', + cssClasses: 'CSS Klasat', + download: 'Nxit Shkarkimin', + displayText: 'Shfaq Tekstin', + emailAddress: 'Posta Elektronike', + emailBody: 'Hapësira e Porosisë', + emailSubject: 'Titulli i Porosisë', + id: 'Id', + info: 'Informacione të Nyjës', + langCode: 'Kodi Gjuhës', + langDir: 'Drejtimi Gjuhës', + langDirLTR: 'Nga e majta në të djathë (LTR)', + langDirRTL: 'Nga e djathta në të majtë (RTL)', + menu: 'Redakto Nyjen', + name: 'Emri', + noAnchors: '(Nuk ka asnjë spirancë në dokument)', + noEmail: 'Ju lutemi shkruani postën elektronike', + noUrl: 'Ju lutemi shkruani URL-në e nyjës', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'E Varur (Netscape)', + popupFeatures: 'Karakteristikat e Dritares së Dialogut', + popupFullScreen: 'Ekrani Plotë (IE)', + popupLeft: 'Pozita Majtas', + popupLocationBar: 'Shiriti Vendit', + popupMenuBar: 'Shiriti Menysë', + popupResizable: 'I ndryshueshëm', + popupScrollBars: 'Shiritat zvarritës', + popupStatusBar: 'Shiriti Statutit', + popupToolbar: 'Shiriti Mjeteve', + popupTop: 'Top Pozita', + rel: 'Marrëdhëniet', + selectAnchor: 'Përzgjidh Spirancë', + styles: 'Stil', + tabIndex: 'Indeksi Fletës', + target: 'Objektivi', + targetFrame: '', + targetFrameName: 'Emri i Kornizës së Synuar', + targetPopup: '', + targetPopupName: 'Emri i Dritares së Dialogut', + title: 'Nyja', + toAnchor: 'Lidhu me spirancën në tekst', + toEmail: 'Posta Elektronike', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Nyja', + type: 'Lloji i Nyjës', + unlink: 'Largo Nyjën', + upload: 'Ngarko' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sr-latn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sr-latn.js new file mode 100644 index 0000000000..67ccb6bc9c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sr-latn.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'sr-latn', { + acccessKey: 'Kombinacija tastera', + advanced: 'Dalje mogućnosti', + advisoryContentType: 'Tip sadržaja pomoći', + advisoryTitle: 'Oznaka za pomoć', + anchor: { + toolbar: 'Unesi/izmeni sidro', + menu: 'Karakteristike sidra', + title: 'Karakteristike sidra', + name: 'Naziv sidra', + errorName: 'Unesite naziv sidra', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Ukloni sidro' + }, + anchorId: 'Po Id-u elementa', + anchorName: 'Po nazivu sidra', + charset: 'Kod stranica navedenog sadržaja', + cssClasses: 'Stilske oznake', + download: 'Obavezno preuzimanje', + displayText: 'Prikazani tekst', + emailAddress: 'E-Mail adresa', + emailBody: 'Sadržaj poruke', + emailSubject: 'Naslov poruke', + id: 'Id', + info: 'Osnovne karakteristike', + langCode: 'Smer pisanja', + langDir: 'Smer pisanja', + langDirLTR: 'S leva na desno (LTR)', + langDirRTL: 'S desna na levo (RTL)', + menu: 'Izmeni link', + name: 'Naziv', + noAnchors: '(Nema sidra u dokumentu)', + noEmail: 'Odredite e-mail adresu', + noUrl: 'Unesite URL linka', + noTel: 'Unesite broj telefona', + other: '<оstalo>', + phoneNumber: 'Broj telefona', + popupDependent: 'Zavisno (Netscape)', + popupFeatures: 'Karakteristike iskačućeg prozora', + popupFullScreen: 'Prikaz preko celog ekrana (IE)', + popupLeft: 'Leva pozicija ', + popupLocationBar: 'Lokacija', + popupMenuBar: 'Kontekstni meni', + popupResizable: 'Promenljive veličine', + popupScrollBars: 'Klizač', + popupStatusBar: 'Statusna linija', + popupToolbar: 'Traka sa altakama', + popupTop: 'Gornja pozicija', + rel: 'Vrsta odnosа', + selectAnchor: 'Odaberi sidro', + styles: 'Stil', + tabIndex: 'Tab indeks', + target: 'Prikaži sadržaj', + targetFrame: '', + targetFrameName: 'Naziv okvira', + targetPopup: ' ', + targetPopupName: 'Naziv iskačućeg prozora', + title: 'Karaktersitike linka', + toAnchor: 'Sidro na ovoj stranici', + toEmail: 'E-Mail', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Unesi/izmeni link', + type: 'Vrsta linka', + unlink: 'Ukloni link', + upload: 'Postavi' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sr.js new file mode 100644 index 0000000000..6732ca154c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sr.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'sr', { + acccessKey: 'Комбинација тастера', + advanced: 'Даље поције', + advisoryContentType: 'Тип садржаја помоћи', + advisoryTitle: 'Ознака за помоћ', + anchor: { + toolbar: 'Унеси/измени сидро', + menu: 'Карактеристике сидра', + title: 'Карактеристике сидра', + name: 'Назив сидра', + errorName: 'Унесите назив сидра', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Уклони сидро' + }, + anchorId: 'Пo Ид-у елемента', + anchorName: 'По називу сидра', + charset: 'Код страницанаведеног садржаја', + cssClasses: 'Стилске ознаке', + download: 'Обавезно преузимање', + displayText: 'Приказани текст', + emailAddress: 'Е-маил адреса', + emailBody: 'Садржај поруке', + emailSubject: 'Наслов пруке', + id: 'Ид', + info: 'Основне карактеристике', + langCode: 'Смер писања', + langDir: 'Смер писања', + langDirLTR: 'С лева на десно (LTR)', + langDirRTL: 'С десна на лево (RTL)', + menu: 'Промени линк', + name: 'Назив', + noAnchors: '(Нема сидра у документу)', + noEmail: 'Одредите е-маил адресу', + noUrl: 'Унесите УРЛ линка', + noTel: 'Унесите број телефона', + other: '<друго>', + phoneNumber: 'Број телефона', + popupDependent: 'Зависно (Netscape)', + popupFeatures: 'Карактеристике искачућег прозора', + popupFullScreen: 'Приказ преко целог екрана (ИE)', + popupLeft: 'Лева позиција', + popupLocationBar: 'Локација', + popupMenuBar: 'Контекстни мени', + popupResizable: 'Промењиве величине', + popupScrollBars: 'Клизач', + popupStatusBar: 'Статусна линија', + popupToolbar: 'Трака са алаткама', + popupTop: 'Горња позиција', + rel: 'Врста односа', + selectAnchor: 'Одабери сидро', + styles: 'Стил', + tabIndex: 'Таб индекс', + target: 'Прикажи садржај', + targetFrame: '<оквир>', + targetFrameName: 'Назив оквира', + targetPopup: '<искачући прозор>', + targetPopupName: 'Назив искачућег прозора', + title: 'Карактеристике линка', + toAnchor: 'Сидро на овој страници', + toEmail: 'E-маил', + toUrl: 'УРЛ', + toPhone: 'Телефон', + toolbar: 'Унеси/измени линк', + type: 'Врста линка', + unlink: 'Уклони линк', + upload: 'Постави' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sv.js new file mode 100644 index 0000000000..73d12cb147 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/sv.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'sv', { + acccessKey: 'Behörighetsnyckel', + advanced: 'Avancerad', + advisoryContentType: 'Innehållstyp', + advisoryTitle: 'Titel', + anchor: { + toolbar: 'Infoga/Redigera ankarlänk', + menu: 'Egenskaper för ankarlänk', + title: 'Egenskaper för ankarlänk', + name: 'Ankarnamn', + errorName: 'Var god ange ett ankarnamn', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Radera ankare' + }, + anchorId: 'Efter element-id', + anchorName: 'Efter ankarnamn', + charset: 'Teckenuppställning', + cssClasses: 'Stilmall', + download: 'Tvinga nerladdning', + displayText: 'Visningstext', + emailAddress: 'E-postadress', + emailBody: 'Innehåll', + emailSubject: 'Ämne', + id: 'Id', + info: 'Länkinformation', + langCode: 'Språkkod', + langDir: 'Språkriktning', + langDirLTR: 'Vänster till höger (VTH)', + langDirRTL: 'Höger till vänster (HTV)', + menu: 'Redigera länk', + name: 'Namn', + noAnchors: '(Inga ankare kunde hittas)', + noEmail: 'Var god ange e-postadress', + noUrl: 'Var god ange länkens URL', + noTel: 'Var god ange telefonnummer', + other: '', + phoneNumber: 'Telefonnummer', + popupDependent: 'Beroende (endast Netscape)', + popupFeatures: 'Popup-fönstrets egenskaper', + popupFullScreen: 'Helskärm (endast IE)', + popupLeft: 'Position från vänster', + popupLocationBar: 'Adressfält', + popupMenuBar: 'Menyfält', + popupResizable: 'Skalbart', + popupScrollBars: 'Scrolllista', + popupStatusBar: 'Statusfält', + popupToolbar: 'Verktygsfält', + popupTop: 'Position från sidans topp', + rel: 'Förhållande', + selectAnchor: 'Välj ett ankare', + styles: 'Stilmall', + tabIndex: 'Tabindex', + target: 'Mål', + targetFrame: '', + targetFrameName: 'Målets ramnamn', + targetPopup: '', + targetPopupName: 'Popup-fönstrets namn', + title: 'Länk', + toAnchor: 'Länk till ankare i texten', + toEmail: 'E-post', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Infoga/Redigera länk', + type: 'Länktyp', + unlink: 'Radera länk', + upload: 'Ladda upp' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/th.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/th.js new file mode 100644 index 0000000000..01e457ecfb --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/th.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'th', { + acccessKey: 'แอคเซส คีย์', + advanced: 'ขั้นสูง', + advisoryContentType: 'ชนิดของคำเกริ่นนำ', + advisoryTitle: 'คำเกริ่นนำ', + anchor: { + toolbar: 'แทรก/แก้ไข Anchor', + menu: 'รายละเอียด Anchor', + title: 'รายละเอียด Anchor', + name: 'ชื่อ Anchor', + errorName: 'กรุณาระบุชื่อของ Anchor', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Remove Anchor' + }, + anchorId: 'ไอดี', + anchorName: 'ชื่อ', + charset: 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร', + cssClasses: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'อีเมล์ (E-Mail)', + emailBody: 'ข้อความ', + emailSubject: 'หัวเรื่อง', + id: 'ไอดี', + info: 'รายละเอียด', + langCode: 'การเขียน-อ่านภาษา', + langDir: 'การเขียน-อ่านภาษา', + langDirLTR: 'จากซ้ายไปขวา (LTR)', + langDirRTL: 'จากขวามาซ้าย (RTL)', + menu: 'แก้ไข ลิงค์', + name: 'ชื่อ', + noAnchors: '(ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้)', + noEmail: 'กรุณาระบุอีเมล์ (E-mail)', + noUrl: 'กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)', + noTel: 'Please type the phone number', // MISSING + other: '<อื่น ๆ>', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'แสดงเต็มหน้าจอ (Netscape)', + popupFeatures: 'คุณสมบัติของหน้าจอเล็ก (Pop-up)', + popupFullScreen: 'แสดงเต็มหน้าจอ (IE5.5++ เท่านั้น)', + popupLeft: 'พิกัดซ้าย (Left Position)', + popupLocationBar: 'แสดงที่อยู่ของไฟล์', + popupMenuBar: 'แสดงแถบเมนู', + popupResizable: 'สามารถปรับขนาดได้', + popupScrollBars: 'แสดงแถบเลื่อน', + popupStatusBar: 'แสดงแถบสถานะ', + popupToolbar: 'แสดงแถบเครื่องมือ', + popupTop: 'พิกัดบน (Top Position)', + rel: 'ความสัมพันธ์', + selectAnchor: 'ระบุข้อมูลของจุดเชื่อมโยง (Anchor)', + styles: 'ลักษณะการแสดงผล', + tabIndex: 'ลำดับของ แท็บ', + target: 'การเปิดหน้าลิงค์', + targetFrame: '<เปิดในเฟรม>', + targetFrameName: 'ชื่อทาร์เก็ตเฟรม', + targetPopup: '<เปิดหน้าจอเล็ก (Pop-up)>', + targetPopupName: 'ระบุชื่อหน้าจอเล็ก (Pop-up)', + title: 'ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ', + toAnchor: 'จุดเชื่อมโยง (Anchor)', + toEmail: 'ส่งอีเมล์ (E-Mail)', + toUrl: 'ที่อยู่อ้างอิง URL', + toPhone: 'Phone', // MISSING + toolbar: 'แทรก/แก้ไข ลิงค์', + type: 'ประเภทของลิงค์', + unlink: 'ลบ ลิงค์', + upload: 'อัพโหลดไฟล์' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/tr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/tr.js new file mode 100644 index 0000000000..397e7703d0 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/tr.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'tr', { + acccessKey: 'Erişim Tuşu', + advanced: 'Gelişmiş', + advisoryContentType: 'Danışma İçerik Türü', + advisoryTitle: 'Danışma Başlığı', + anchor: { + toolbar: 'Bağlantı Ekle/Düzenle', + menu: 'Bağlantı Özellikleri', + title: 'Bağlantı Özellikleri', + name: 'Bağlantı Adı', + errorName: 'Lütfen bağlantı için ad giriniz', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Bağlantıyı Kaldır' + }, + anchorId: 'Eleman Kimlik Numarası ile', + anchorName: 'Bağlantı Adı ile', + charset: 'Bağlı Kaynak Karakter Gurubu', + cssClasses: 'Biçem Sayfası Sınıfları', + download: 'İndirmeye Zorla', + displayText: 'Gösterim Metni', + emailAddress: 'E-Posta Adresi', + emailBody: 'İleti Gövdesi', + emailSubject: 'İleti Konusu', + id: 'Id', + info: 'Link Bilgisi', + langCode: 'Dil Yönü', + langDir: 'Dil Yönü', + langDirLTR: 'Soldan Sağa (LTR)', + langDirRTL: 'Sağdan Sola (RTL)', + menu: 'Link Düzenle', + name: 'Ad', + noAnchors: '(Bu belgede hiç çapa yok)', + noEmail: 'Lütfen E-posta adresini yazın', + noUrl: 'Lütfen Link URL\'sini yazın', + noTel: 'Lütfen telefon numaranızı yazınız', + other: '', + phoneNumber: 'Telefon numarası', + popupDependent: 'Bağımlı (Netscape)', + popupFeatures: 'Yeni Açılan Pencere Özellikleri', + popupFullScreen: 'Tam Ekran (IE)', + popupLeft: 'Sola Göre Konum', + popupLocationBar: 'Yer Çubuğu', + popupMenuBar: 'Menü Çubuğu', + popupResizable: 'Resizable', + popupScrollBars: 'Kaydırma Çubukları', + popupStatusBar: 'Durum Çubuğu', + popupToolbar: 'Araç Çubuğu', + popupTop: 'Yukarıya Göre Konum', + rel: 'İlişki', + selectAnchor: 'Bağlantı Seç', + styles: 'Biçem', + tabIndex: 'Sekme İndeksi', + target: 'Hedef', + targetFrame: '<çerçeve>', + targetFrameName: 'Hedef Çerçeve Adı', + targetPopup: '', + targetPopupName: 'Yeni Açılan Pencere Adı', + title: 'Link', + toAnchor: 'Bu sayfada çapa', + toEmail: 'E-Posta', + toUrl: 'URL', + toPhone: 'Telefon', + toolbar: 'Link Ekle/Düzenle', + type: 'Link Türü', + unlink: 'Köprü Kaldır', + upload: 'Karşıya Yükle' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/tt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/tt.js new file mode 100644 index 0000000000..0a8632ba05 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/tt.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'tt', { + acccessKey: 'Access Key', // MISSING + advanced: 'Киңәйтелгән көйләүләр', + advisoryContentType: 'Advisory Content Type', // MISSING + advisoryTitle: 'Киңәш исем', + anchor: { + toolbar: 'Якорь', + menu: 'Якорьне үзгәртү', + title: 'Якорь үзлекләре', + name: 'Якорь исеме', + errorName: 'Якорьнең исемен языгыз', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Якорьне бетерү' + }, + anchorId: 'Элемент идентификаторы буенча', + anchorName: 'Якорь исеме буенча', + charset: 'Linked Resource Charset', // MISSING + cssClasses: 'Стильләр класслары', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Электрон почта адресы', + emailBody: 'Хат эчтәлеге', + emailSubject: 'Хат темасы', + id: 'Идентификатор', + info: 'Сылталама тасвирламасы', + langCode: 'Тел коды', + langDir: 'Язылыш юнəлеше', + langDirLTR: 'Сулдан уңга язылыш (LTR)', + langDirRTL: 'Уңнан сулга язылыш (RTL)', + menu: 'Сылталамаyны үзгәртү', + name: 'Исем', + noAnchors: '(Әлеге документта якорьләр табылмады)', + noEmail: 'Электрон почта адресын языгыз', + noUrl: 'Сылталаманы языгыз', + noTel: 'Телефон номерыгызны языгыз', + other: '<бүтән>', + phoneNumber: 'Телефон номеры', + popupDependent: 'Бәйле (Netscape)', + popupFeatures: 'Popup Window Features', // MISSING + popupFullScreen: 'Тулы экран (IE)', + popupLeft: 'Left Position', // MISSING + popupLocationBar: 'Location Bar', // MISSING + popupMenuBar: 'Menu Bar', // MISSING + popupResizable: 'Resizable', // MISSING + popupScrollBars: 'Scroll Bars', // MISSING + popupStatusBar: 'Status Bar', // MISSING + popupToolbar: 'Toolbar', // MISSING + popupTop: 'Top Position', // MISSING + rel: 'Бәйләнеш', + selectAnchor: 'Якорьне сайлау', + styles: 'Стиль', + tabIndex: 'Tab Index', // MISSING + target: 'Максат', + targetFrame: '', + targetFrameName: 'Target Frame Name', // MISSING + targetPopup: '', + targetPopupName: 'Попап тәрәзәсе исеме', + title: 'Сылталама', + toAnchor: 'Якорьне текст белән бәйләү', + toEmail: 'Электрон почта', + toUrl: 'Сылталама', + toPhone: 'Телефон', + toolbar: 'Сылталама', + type: 'Сылталама төре', + unlink: 'Сылталаманы бетерү', + upload: 'Йөкләү' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ug.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ug.js new file mode 100644 index 0000000000..fcf02aaf75 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/ug.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'ug', { + acccessKey: 'زىيارەت كۇنۇپكا', + advanced: 'ئالىي', + advisoryContentType: 'مەزمۇن تىپى', + advisoryTitle: 'ماۋزۇ', + anchor: { + toolbar: 'لەڭگەرلىك نۇقتا ئۇلانمىسى قىستۇر/تەھرىرلە', + menu: 'لەڭگەرلىك نۇقتا ئۇلانما خاسلىقى', + title: 'لەڭگەرلىك نۇقتا ئۇلانما خاسلىقى', + name: 'لەڭگەرلىك نۇقتا ئاتى', + errorName: 'لەڭگەرلىك نۇقتا ئاتىنى كىرگۈزۈڭ', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'لەڭگەرلىك نۇقتا ئۆچۈر' + }, + anchorId: 'لەڭگەرلىك نۇقتا ID سى بويىچە', + anchorName: 'لەڭگەرلىك نۇقتا ئاتى بويىچە', + charset: 'ھەرپ كودلىنىشى', + cssClasses: 'ئۇسلۇب خىلى ئاتى', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'ئادرېس', + emailBody: 'مەزمۇن', + emailSubject: 'ماۋزۇ', + id: 'ID', + info: 'ئۇلانما ئۇچۇرى', + langCode: 'تىل كودى', + langDir: 'تىل يۆنىلىشى', + langDirLTR: 'سولدىن ئوڭغا (LTR)', + langDirRTL: 'ئوڭدىن سولغا (RTL)', + menu: 'ئۇلانما تەھرىر', + name: 'ئات', + noAnchors: '(بۇ پۈتۈكتە ئىشلەتكىلى بولىدىغان لەڭگەرلىك نۇقتا يوق)', + noEmail: 'ئېلخەت ئادرېسىنى كىرگۈزۈڭ', + noUrl: 'ئۇلانما ئادرېسىنى كىرگۈزۈڭ', + noTel: 'Please type the phone number', // MISSING + other: '‹باشقا›', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'تەۋە (NS)', + popupFeatures: 'قاڭقىش كۆزنەك خاسلىقى', + popupFullScreen: 'پۈتۈن ئېكران (IE)', + popupLeft: 'سول', + popupLocationBar: 'ئادرېس بالداق', + popupMenuBar: 'تىزىملىك بالداق', + popupResizable: 'چوڭلۇقى ئۆزگەرتىشچان', + popupScrollBars: 'دومىلىما سۈرگۈچ', + popupStatusBar: 'ھالەت بالداق', + popupToolbar: 'قورال بالداق', + popupTop: 'ئوڭ', + rel: 'باغلىنىش', + selectAnchor: 'بىر لەڭگەرلىك نۇقتا تاللاڭ', + styles: 'قۇر ئىچىدىكى ئۇسلۇبى', + tabIndex: 'Tab تەرتىپى', + target: 'نىشان', + targetFrame: '‹كاندۇك›', + targetFrameName: 'نىشان كاندۇك ئاتى', + targetPopup: '‹قاڭقىش كۆزنەك›', + targetPopupName: 'قاڭقىش كۆزنەك ئاتى', + title: 'ئۇلانما', + toAnchor: 'بەت ئىچىدىكى لەڭگەرلىك نۇقتا ئۇلانمىسى', + toEmail: 'ئېلخەت', + toUrl: 'ئادرېس', + toPhone: 'Phone', // MISSING + toolbar: 'ئۇلانما قىستۇر/تەھرىرلە', + type: 'ئۇلانما تىپى', + unlink: 'ئۇلانما بىكار قىل', + upload: 'يۈكلە' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/uk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/uk.js new file mode 100644 index 0000000000..9f02ea9cdf --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/uk.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'uk', { + acccessKey: 'Гаряча клавіша', + advanced: 'Додаткове', + advisoryContentType: 'Тип вмісту', + advisoryTitle: 'Заголовок', + anchor: { + toolbar: 'Вставити/Редагувати якір', + menu: 'Властивості якоря', + title: 'Властивості якоря', + name: 'Ім\'я якоря', + errorName: 'Будь ласка, вкажіть ім\'я якоря', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Прибрати якір' + }, + anchorId: 'За ідентифікатором елементу', + anchorName: 'За ім\'ям елементу', + charset: 'Кодування', + cssClasses: 'Клас CSS', + download: 'Завантажити як файл', + displayText: 'Відображуваний текст', + emailAddress: 'Адреса ел. пошти', + emailBody: 'Тіло повідомлення', + emailSubject: 'Тема листа', + id: 'Ідентифікатор', + info: 'Інформація посилання', + langCode: 'Код мови', + langDir: 'Напрямок мови', + langDirLTR: 'Зліва направо (LTR)', + langDirRTL: 'Справа наліво (RTL)', + menu: 'Вставити посилання', + name: 'Ім\'я', + noAnchors: '(В цьому документі немає якорів)', + noEmail: 'Будь ласка, вкажіть адрес ел. пошти', + noUrl: 'Будь ласка, вкажіть URL посилання', + noTel: 'Будь ласка, введіть номер телефону', + other: '<інший>', + phoneNumber: 'Номер телефону', + popupDependent: 'Залежний (Netscape)', + popupFeatures: 'Властивості випливаючого вікна', + popupFullScreen: 'Повний екран (IE)', + popupLeft: 'Позиція зліва', + popupLocationBar: 'Панель локації', + popupMenuBar: 'Панель меню', + popupResizable: 'Масштабоване', + popupScrollBars: 'Стрічки прокрутки', + popupStatusBar: 'Рядок статусу', + popupToolbar: 'Панель інструментів', + popupTop: 'Позиція зверху', + rel: 'Зв\'язок', + selectAnchor: 'Оберіть якір', + styles: 'Стиль CSS', + tabIndex: 'Послідовність переходу', + target: 'Ціль', + targetFrame: '<фрейм>', + targetFrameName: 'Ім\'я цільового фрейму', + targetPopup: '<випливаюче вікно>', + targetPopupName: 'Ім\'я випливаючого вікна', + title: 'Посилання', + toAnchor: 'Якір на цю сторінку', + toEmail: 'Ел. пошта', + toUrl: 'URL', + toPhone: 'Телефон', + toolbar: 'Вставити/Редагувати посилання', + type: 'Тип посилання', + unlink: 'Видалити посилання', + upload: 'Надіслати' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/vi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/vi.js new file mode 100644 index 0000000000..f7473ce65b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/vi.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'vi', { + acccessKey: 'Phím hỗ trợ truy cập', + advanced: 'Mở rộng', + advisoryContentType: 'Nội dung hướng dẫn', + advisoryTitle: 'Nhan đề hướng dẫn', + anchor: { + toolbar: 'Chèn/Sửa điểm neo', + menu: 'Thuộc tính điểm neo', + title: 'Thuộc tính điểm neo', + name: 'Tên của điểm neo', + errorName: 'Hãy nhập vào tên của điểm neo', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: 'Xóa neo' + }, + anchorId: 'Theo định danh thành phần', + anchorName: 'Theo tên điểm neo', + charset: 'Bảng mã của tài nguyên được liên kết đến', + cssClasses: 'Lớp Stylesheet', + download: 'Force Download', // MISSING + displayText: 'Display Text', // MISSING + emailAddress: 'Thư điện tử', + emailBody: 'Nội dung thông điệp', + emailSubject: 'Tiêu đề thông điệp', + id: 'Định danh', + info: 'Thông tin liên kết', + langCode: 'Mã ngôn ngữ', + langDir: 'Hướng ngôn ngữ', + langDirLTR: 'Trái sang phải (LTR)', + langDirRTL: 'Phải sang trái (RTL)', + menu: 'Sửa liên kết', + name: 'Tên', + noAnchors: '(Không có điểm neo nào trong tài liệu)', + noEmail: 'Hãy đưa vào địa chỉ thư điện tử', + noUrl: 'Hãy đưa vào đường dẫn liên kết (URL)', + noTel: 'Please type the phone number', // MISSING + other: '', + phoneNumber: 'Phone number', // MISSING + popupDependent: 'Phụ thuộc (Netscape)', + popupFeatures: 'Đặc điểm của cửa sổ Popup', + popupFullScreen: 'Toàn màn hình (IE)', + popupLeft: 'Vị trí bên trái', + popupLocationBar: 'Thanh vị trí', + popupMenuBar: 'Thanh Menu', + popupResizable: 'Có thể thay đổi kích cỡ', + popupScrollBars: 'Thanh cuộn', + popupStatusBar: 'Thanh trạng thái', + popupToolbar: 'Thanh công cụ', + popupTop: 'Vị trí phía trên', + rel: 'Quan hệ', + selectAnchor: 'Chọn một điểm neo', + styles: 'Kiểu (style)', + tabIndex: 'Chỉ số của Tab', + target: 'Đích', + targetFrame: '', + targetFrameName: 'Tên khung đích', + targetPopup: '', + targetPopupName: 'Tên cửa sổ Popup', + title: 'Liên kết', + toAnchor: 'Neo trong trang này', + toEmail: 'Thư điện tử', + toUrl: 'URL', + toPhone: 'Phone', // MISSING + toolbar: 'Chèn/Sửa liên kết', + type: 'Kiểu liên kết', + unlink: 'Xoá liên kết', + upload: 'Tải lên' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/zh-cn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/zh-cn.js new file mode 100644 index 0000000000..4e3ef3faba --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/zh-cn.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'zh-cn', { + acccessKey: '访问键', + advanced: '高级', + advisoryContentType: '内容类型', + advisoryTitle: '标题', + anchor: { + toolbar: '插入/编辑锚点链接', + menu: '锚点链接属性', + title: '锚点链接属性', + name: '锚点名称', + errorName: '请输入锚点名称', + errorWhitespace: 'Anchor name cannot contain space characters', // MISSING + remove: '删除锚点' + }, + anchorId: '按锚点 ID', + anchorName: '按锚点名称', + charset: '字符编码', + cssClasses: '样式类名称', + download: '强制下载', + displayText: '显示文本', + emailAddress: '地址', + emailBody: '内容', + emailSubject: '主题', + id: 'ID', + info: '超链接信息', + langCode: '语言代码', + langDir: '语言方向', + langDirLTR: '从左到右 (LTR)', + langDirRTL: '从右到左 (RTL)', + menu: '编辑超链接', + name: '名称', + noAnchors: '(此文档没有可用的锚点)', + noEmail: '请输入电子邮件地址', + noUrl: '请输入超链接地址', + noTel: '请输入电话号码', + other: '<其他>', + phoneNumber: '电话号码', + popupDependent: '依附 (NS)', + popupFeatures: '弹出窗口属性', + popupFullScreen: '全屏 (IE)', + popupLeft: '左', + popupLocationBar: '地址栏', + popupMenuBar: '菜单栏', + popupResizable: '可缩放', + popupScrollBars: '滚动条', + popupStatusBar: '状态栏', + popupToolbar: '工具栏', + popupTop: '右', + rel: '关联', + selectAnchor: '选择一个锚点', + styles: '行内样式', + tabIndex: 'Tab 键次序', + target: '目标', + targetFrame: '<框架>', + targetFrameName: '目标框架名称', + targetPopup: '<弹出窗口>', + targetPopupName: '弹出窗口名称', + title: '超链接', + toAnchor: '页内锚点链接', + toEmail: '电子邮件', + toUrl: '地址', + toPhone: '电话', + toolbar: '插入/编辑超链接', + type: '超链接类型', + unlink: '取消超链接', + upload: '上传' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/zh.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/zh.js new file mode 100644 index 0000000000..af3f2f815e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/lang/zh.js @@ -0,0 +1,71 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'link', 'zh', { + acccessKey: '便捷鍵', + advanced: '進階', + advisoryContentType: '建議內容類型', + advisoryTitle: '標題', + anchor: { + toolbar: '錨點', + menu: '編輯錨點', + title: '錨點內容', + name: '錨點名稱', + errorName: '請輸入錨點名稱', + errorWhitespace: '錨定名稱不能包含空格字元', + remove: '移除錨點' + }, + anchorId: '依元件編號', + anchorName: '依錨點名稱', + charset: '連結資源的字元集', + cssClasses: '樣式表類別', + download: '強制下載', + displayText: '顯示文字', + emailAddress: '電子郵件地址', + emailBody: '郵件本文', + emailSubject: '郵件主旨', + id: 'ID', + info: '連結資訊', + langCode: '語言碼', + langDir: '語言方向', + langDirLTR: '由左至右 (LTR)', + langDirRTL: '由右至左 (RTL)', + menu: '編輯連結', + name: '名稱', + noAnchors: '(本文件中無可用之錨點)', + noEmail: '請輸入電子郵件', + noUrl: '請輸入連結 URL', + noTel: '請輸入電話號碼', + other: '<其他>', + phoneNumber: '電話號碼', + popupDependent: '獨立 (Netscape)', + popupFeatures: '快顯視窗功能', + popupFullScreen: '全螢幕 (IE)', + popupLeft: '左側位置', + popupLocationBar: '位置列', + popupMenuBar: '功能表列', + popupResizable: '可調大小', + popupScrollBars: '捲軸', + popupStatusBar: '狀態列', + popupToolbar: '工具列', + popupTop: '頂端位置', + rel: '關係', + selectAnchor: '選取一個錨點', + styles: '樣式', + tabIndex: '定位順序', + target: '目標', + targetFrame: '<框架>', + targetFrameName: '目標框架名稱', + targetPopup: '<快顯視窗>', + targetPopupName: '快顯視窗名稱', + title: '連結', + toAnchor: '文字中的錨點連結', + toEmail: '電子郵件', + toUrl: '網址', + toPhone: '電話', + toolbar: '連結', + type: '連結類型', + unlink: '取消連結', + upload: '上傳' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/plugin.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/plugin.js new file mode 100644 index 0000000000..03820d94f3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/link/plugin.js @@ -0,0 +1,961 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +'use strict'; + +( function() { + CKEDITOR.plugins.add( 'link', { + requires: 'dialog,fakeobjects', + // jscs:disable maximumLineLength + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + // jscs:enable maximumLineLength + icons: 'anchor,anchor-rtl,link,unlink', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + onLoad: function() { + // Add the CSS styles for anchor placeholders. + var iconPath = CKEDITOR.getUrl( this.path + 'images' + ( CKEDITOR.env.hidpi ? '/hidpi' : '' ) + '/anchor.png' ), + baseStyle = 'background:url(' + iconPath + ') no-repeat %1 center;border:1px dotted #00f;background-size:16px;'; + + var template = '.%2 a.cke_anchor,' + + '.%2 a.cke_anchor_empty' + + ',.cke_editable.%2 a[name]' + + ',.cke_editable.%2 a[data-cke-saved-name]' + + '{' + + baseStyle + + 'padding-%1:18px;' + + // Show the arrow cursor for the anchor image (FF at least). + 'cursor:auto;' + + '}' + + '.%2 img.cke_anchor' + + '{' + + baseStyle + + 'width:16px;' + + 'min-height:15px;' + + // The default line-height on IE. + 'height:1.15em;' + + // Opera works better with "middle" (even if not perfect) + 'vertical-align:text-bottom;' + + '}'; + + // Styles with contents direction awareness. + function cssWithDir( dir ) { + return template.replace( /%1/g, dir == 'rtl' ? 'right' : 'left' ).replace( /%2/g, 'cke_contents_' + dir ); + } + + CKEDITOR.addCss( cssWithDir( 'ltr' ) + cssWithDir( 'rtl' ) ); + }, + + init: function( editor ) { + var allowed = 'a[!href]', + required = 'a[href]'; + + if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'advanced' ) ) { + allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)' ); + } + if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'target' ) ) { + allowed = allowed.replace( ']', ',target,onclick]' ); + } + + // Add the link and unlink buttons. + editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link', { + allowedContent: allowed, + requiredContent: required + } ) ); + editor.addCommand( 'anchor', new CKEDITOR.dialogCommand( 'anchor', { + allowedContent: 'a[!name,id]', + requiredContent: 'a[name]' + } ) ); + editor.addCommand( 'unlink', new CKEDITOR.unlinkCommand() ); + editor.addCommand( 'removeAnchor', new CKEDITOR.removeAnchorCommand() ); + + editor.setKeystroke( CKEDITOR.CTRL + 76 /*L*/, 'link' ); + + // (#2478) + editor.setKeystroke( CKEDITOR.CTRL + 75 /*K*/, 'link' ); + + if ( editor.ui.addButton ) { + editor.ui.addButton( 'Link', { + label: editor.lang.link.toolbar, + command: 'link', + toolbar: 'links,10' + } ); + editor.ui.addButton( 'Unlink', { + label: editor.lang.link.unlink, + command: 'unlink', + toolbar: 'links,20' + } ); + editor.ui.addButton( 'Anchor', { + label: editor.lang.link.anchor.toolbar, + command: 'anchor', + toolbar: 'links,30' + } ); + } + + CKEDITOR.dialog.add( 'link', this.path + 'dialogs/link.js' ); + CKEDITOR.dialog.add( 'anchor', this.path + 'dialogs/anchor.js' ); + + editor.on( 'doubleclick', function( evt ) { + // If the link has descendants and the last part of it is also a part of a word partially + // unlinked, clicked element may be a descendant of the link, not the link itself (https://dev.ckeditor.com/ticket/11956). + // The evt.data.element.getAscendant( 'img', 1 ) condition allows opening anchor dialog if the anchor is empty (#501). + var element = evt.data.element.getAscendant( { a: 1, img: 1 }, true ); + + if ( element && !element.isReadOnly() ) { + if ( element.is( 'a' ) ) { + evt.data.dialog = ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) ? 'anchor' : 'link'; + + // Pass the link to be selected along with event data. + evt.data.link = element; + } else if ( CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element ) ) { + evt.data.dialog = 'anchor'; + } + } + }, null, null, 0 ); + + // If event was cancelled, link passed in event data will not be selected. + editor.on( 'doubleclick', function( evt ) { + // Make sure both links and anchors are selected (https://dev.ckeditor.com/ticket/11822). + if ( evt.data.dialog in { link: 1, anchor: 1 } && evt.data.link ) { + editor.getSelection().selectElement( evt.data.link ); + } + }, null, null, 20 ); + + // If the "menu" plugin is loaded, register the menu items. + if ( editor.addMenuItems ) { + editor.addMenuItems( { + anchor: { + label: editor.lang.link.anchor.menu, + command: 'anchor', + group: 'anchor', + order: 1 + }, + + removeAnchor: { + label: editor.lang.link.anchor.remove, + command: 'removeAnchor', + group: 'anchor', + order: 5 + }, + + link: { + label: editor.lang.link.menu, + command: 'link', + group: 'link', + order: 1 + }, + + unlink: { + label: editor.lang.link.unlink, + command: 'unlink', + group: 'link', + order: 5 + } + } ); + } + + // If the "contextmenu" plugin is loaded, register the listeners. + if ( editor.contextMenu ) { + editor.contextMenu.addListener( function( element ) { + if ( !element || element.isReadOnly() ) { + return null; + } + + var anchor = CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element ); + + if ( !anchor && !( anchor = CKEDITOR.plugins.link.getSelectedLink( editor ) ) ) { + return null; + } + + var menu = {}; + + if ( anchor.getAttribute( 'href' ) && anchor.getChildCount() ) { + menu = { link: CKEDITOR.TRISTATE_OFF, unlink: CKEDITOR.TRISTATE_OFF }; + } + + if ( anchor && anchor.hasAttribute( 'name' ) ) { + menu.anchor = menu.removeAnchor = CKEDITOR.TRISTATE_OFF; + } + + return menu; + } ); + } + + this.compiledProtectionFunction = getCompiledProtectionFunction( editor ); + }, + + afterInit: function( editor ) { + // Empty anchors upcasting to fake objects. + editor.dataProcessor.dataFilter.addRules( { + elements: { + a: function( element ) { + if ( !element.attributes.name ) { + return null; + } + + if ( !element.children.length ) { + return editor.createFakeParserElement( element, 'cke_anchor', 'anchor' ); + } + + return null; + } + } + } ); + + var pathFilters = editor._.elementsPath && editor._.elementsPath.filters; + if ( pathFilters ) { + pathFilters.push( function( element, name ) { + if ( name == 'a' ) { + if ( CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element ) || ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) ) { + return 'anchor'; + } + } + } ); + } + } + } ); + + // Loads the parameters in a selected link to the link dialog fields. + var javascriptProtocolRegex = /^javascript:/, + emailRegex = /^(?:mailto)(?:(?!\?(subject|body)=).)+/i, + emailSubjectRegex = /subject=([^;?:@&=$,\/]*)/i, + emailBodyRegex = /body=([^;?:@&=$,\/]*)/i, + anchorRegex = /^#(.*)$/, + urlRegex = /^((?:http|https|ftp|news):\/\/)?(.*)$/, + selectableTargets = /^(_(?:self|top|parent|blank))$/, + encodedEmailLinkRegex = /^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/, + functionCallProtectedEmailLinkRegex = /^javascript:([^(]+)\(([^)]+)\)$/, + popupRegex = /\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/, + popupFeaturesRegex = /(?:^|,)([^=]+)=(\d+|yes|no)/gi, + telRegex = /^tel:(.*)$/; + + var advAttrNames = { + id: 'advId', + dir: 'advLangDir', + accessKey: 'advAccessKey', + // 'data-cke-saved-name': 'advName', + name: 'advName', + lang: 'advLangCode', + tabindex: 'advTabIndex', + title: 'advTitle', + type: 'advContentType', + 'class': 'advCSSClasses', + charset: 'advCharset', + style: 'advStyles', + rel: 'advRel' + }; + + function unescapeSingleQuote( str ) { + return str.replace( /\\'/g, '\'' ); + } + + function escapeSingleQuote( str ) { + return str.replace( /'/g, '\\$&' ); + } + + function protectEmailAddressAsEncodedString( address ) { + var length = address.length, + encodedChars = [], + charCode; + + for ( var i = 0; i < length; i++ ) { + charCode = address.charCodeAt( i ); + encodedChars.push( charCode ); + } + + return 'String.fromCharCode(' + encodedChars.join( ',' ) + ')'; + } + + function protectEmailLinkAsFunction( editor, email ) { + var plugin = editor.plugins.link, + name = plugin.compiledProtectionFunction.name, + params = plugin.compiledProtectionFunction.params, + retval = [ name, '(' ], + paramName, + paramValue; + + for ( var i = 0; i < params.length; i++ ) { + paramName = params[ i ].toLowerCase(); + paramValue = email[ paramName ]; + + i > 0 && retval.push( ',' ); + retval.push( '\'', paramValue ? escapeSingleQuote( encodeURIComponent( email[ paramName ] ) ) : '', '\'' ); + } + retval.push( ')' ); + return retval.join( '' ); + } + + function getCompiledProtectionFunction( editor ) { + var emailProtection = editor.config.emailProtection || '', + compiledProtectionFunction; + + // Compile the protection function pattern. + if ( emailProtection && emailProtection != 'encode' ) { + compiledProtectionFunction = {}; + + emailProtection.replace( /^([^(]+)\(([^)]+)\)$/, function( match, funcName, params ) { + compiledProtectionFunction.name = funcName; + compiledProtectionFunction.params = []; + params.replace( /[^,\s]+/g, function( param ) { + compiledProtectionFunction.params.push( param ); + } ); + } ); + } + + return compiledProtectionFunction; + } + + /** + * Set of Link plugin helpers. + * + * @class + * @singleton + */ + CKEDITOR.plugins.link = { + /** + * Get the surrounding link element of the current selection. + * + * CKEDITOR.plugins.link.getSelectedLink( editor ); + * + * // The following selections will all return the link element. + * + * li^nk + * [link] + * text[link] + * li[nk] + * [li]nk] + * [li]nk + * + * @since 3.2.1 + * @param {CKEDITOR.editor} editor + * @param {Boolean} [returnMultiple=false] Indicates whether the function should return only the first selected link or all of them. + * @returns {CKEDITOR.dom.element/CKEDITOR.dom.element[]/null} A single link element or an array of link + * elements relevant to the current selection. + */ + getSelectedLink: function( editor, returnMultiple ) { + var selection = editor.getSelection(), + selectedElement = selection.getSelectedElement(), + ranges = selection.getRanges(), + links = [], + link, + range; + + if ( !returnMultiple && selectedElement && selectedElement.is( 'a' ) ) { + return selectedElement; + } + + for ( var i = 0; i < ranges.length; i++ ) { + range = selection.getRanges()[ i ]; + + // Skip bogus to cover cases of multiple selection inside tables (#tp2245). + // Shrink to element to prevent losing anchor (#859). + range.shrink( CKEDITOR.SHRINK_ELEMENT, true, { skipBogus: true } ); + link = editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 ); + + if ( link && returnMultiple ) { + links.push( link ); + } else if ( link ) { + return link; + } + } + + return returnMultiple ? links : null; + }, + + /** + * Collects anchors available in the editor (i.e. used by the Link plugin). + * Note that the scope of search is different for inline (the "global" document) and + * classic (`iframe`-based) editors (the "inner" document). + * + * @since 4.3.3 + * @param {CKEDITOR.editor} editor + * @returns {CKEDITOR.dom.element[]} An array of anchor elements. + */ + getEditorAnchors: function( editor ) { + var editable = editor.editable(), + + // The scope of search for anchors is the entire document for inline editors + // and editor's editable for classic editor/divarea (https://dev.ckeditor.com/ticket/11359). + scope = ( editable.isInline() && !editor.plugins.divarea ) ? editor.document : editable, + + links = scope.getElementsByTag( 'a' ), + imgs = scope.getElementsByTag( 'img' ), + anchors = [], + iterator = 0, + item; + + // Retrieve all anchors within the scope. + while ( ( item = links.getItem( iterator++ ) ) ) { + if ( item.data( 'cke-saved-name' ) || item.hasAttribute( 'name' ) ) { + anchors.push( { + name: item.data( 'cke-saved-name' ) || item.getAttribute( 'name' ), + id: item.getAttribute( 'id' ) + } ); + } + } + // Retrieve all "fake anchors" within the scope. + iterator = 0; + + while ( ( item = imgs.getItem( iterator++ ) ) ) { + if ( ( item = this.tryRestoreFakeAnchor( editor, item ) ) ) { + anchors.push( { + name: item.getAttribute( 'name' ), + id: item.getAttribute( 'id' ) + } ); + } + } + + return anchors; + }, + + /** + * Opera and WebKit do not make it possible to select empty anchors. Fake + * elements must be used for them. + * + * @readonly + * @deprecated 4.3.3 It is set to `true` in every browser. + * @property {Boolean} + */ + fakeAnchor: true, + + /** + * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of https://dev.ckeditor.com/ticket/7783. + * + * @readonly + * @deprecated 4.3.3 It is set to `false` in every browser. + * @property {Boolean} synAnchorSelector + */ + + /** + * For browsers that have editing issues with an empty anchor. + * + * @readonly + * @deprecated 4.3.3 It is set to `false` in every browser. + * @property {Boolean} emptyAnchorFix + */ + + /** + * Returns an element representing a real anchor restored from a fake anchor. + * + * @param {CKEDITOR.editor} editor + * @param {CKEDITOR.dom.element} element + * @returns {CKEDITOR.dom.element} Restored anchor element or nothing if the + * passed element was not a fake anchor. + */ + tryRestoreFakeAnchor: function( editor, element ) { + if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'anchor' ) { + var link = editor.restoreRealElement( element ); + if ( link.data( 'cke-saved-name' ) ) { + return link; + } + } + }, + + /** + * Parses attributes of the link element and returns an object representing + * the current state (data) of the link. This data format is a plain object accepted + * e.g. by the Link dialog window and {@link #getLinkAttributes}. + * + * **Note:** Data model format produced by the parser must be compatible with the Link + * plugin dialog because it is passed directly to {@link CKEDITOR.dialog#setupContent}. + * + * @since 4.4.0 + * @param {CKEDITOR.editor} editor + * @param {CKEDITOR.dom.element} element + * @returns {Object} An object of link data. + */ + parseLinkAttributes: function( editor, element ) { + var href = ( element && ( element.data( 'cke-saved-href' ) || element.getAttribute( 'href' ) ) ) || '', + compiledProtectionFunction = editor.plugins.link.compiledProtectionFunction, + emailProtection = editor.config.emailProtection, + retval = {}, + javascriptMatch = href.match( javascriptProtocolRegex ), + emailMatch, + anchorMatch, + urlMatch, + telMatch; + + if ( javascriptMatch ) { + if ( emailProtection == 'encode' ) { + href = href.replace( encodedEmailLinkRegex, function( match, protectedAddress, rest ) { + // Without it 'undefined' is appended to e-mails without subject and body (https://dev.ckeditor.com/ticket/9192). + rest = rest || ''; + + return 'mailto:' + + String.fromCharCode.apply( String, protectedAddress.split( ',' ) ) + + unescapeSingleQuote( rest ); + } ); + } + // Protected email link as function call. + else if ( emailProtection ) { + href.replace( functionCallProtectedEmailLinkRegex, function( match, funcName, funcArgs ) { + if ( funcName == compiledProtectionFunction.name ) { + retval.type = 'email'; + + var email = retval.email = {}, + paramRegex = /[^,\s]+/g, + paramQuoteRegex = /(^')|('$)/g, + paramsMatch = funcArgs.match( paramRegex ), + paramsMatchLength = paramsMatch.length, + paramName, + paramVal; + + for ( var i = 0; i < paramsMatchLength; i++ ) { + paramVal = decodeURIComponent( unescapeSingleQuote( paramsMatch[ i ].replace( paramQuoteRegex, '' ) ) ); + paramName = compiledProtectionFunction.params[ i ].toLowerCase(); + email[ paramName ] = paramVal; + } + email.address = [ email.name, email.domain ].join( '@' ); + } + } ); + } + } + + if ( !retval.type ) { + if ( ( anchorMatch = href.match( anchorRegex ) ) ) { + retval.type = 'anchor'; + retval.anchor = {}; + retval.anchor.name = retval.anchor.id = anchorMatch[ 1 ]; + } else if ( ( telMatch = href.match( telRegex ) ) ) { + retval.type = 'tel'; + retval.tel = telMatch[ 1 ]; + } + // Protected email link as encoded string. + else if ( ( emailMatch = href.match( emailRegex ) ) ) { + var subjectMatch = href.match( emailSubjectRegex ), + bodyMatch = href.match( emailBodyRegex ), + email = ( retval.email = {} ); + + retval.type = 'email'; + email.address = emailMatch[ 0 ].replace( 'mailto:', '' ); + subjectMatch && ( email.subject = decodeURIComponent( subjectMatch[ 1 ] ) ); + bodyMatch && ( email.body = decodeURIComponent( bodyMatch[ 1 ] ) ); + } + // urlRegex matches empty strings, so need to check for href as well. + else if ( href && ( urlMatch = href.match( urlRegex ) ) ) { + retval.type = 'url'; + retval.url = {}; + retval.url.protocol = urlMatch[ 1 ]; + retval.url.url = urlMatch[ 2 ]; + } + } + + // Load target and popup settings. + if ( element ) { + var target = element.getAttribute( 'target' ); + + // IE BUG: target attribute is an empty string instead of null in IE if it's not set. + if ( !target ) { + var onclick = element.data( 'cke-pa-onclick' ) || element.getAttribute( 'onclick' ), + onclickMatch = onclick && onclick.match( popupRegex ); + + if ( onclickMatch ) { + retval.target = { + type: 'popup', + name: onclickMatch[ 1 ] + }; + + var featureMatch; + while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[ 2 ] ) ) ) { + // Some values should remain numbers (https://dev.ckeditor.com/ticket/7300) + if ( ( featureMatch[ 2 ] == 'yes' || featureMatch[ 2 ] == '1' ) && !( featureMatch[ 1 ] in { height: 1, width: 1, top: 1, left: 1 } ) ) { + retval.target[ featureMatch[ 1 ] ] = true; + } else if ( isFinite( featureMatch[ 2 ] ) ) { + retval.target[ featureMatch[ 1 ] ] = featureMatch[ 2 ]; + } + } + } + } else { + retval.target = { + type: target.match( selectableTargets ) ? target : 'frame', + name: target + }; + } + + var download = element.getAttribute( 'download' ); + if ( download !== null ) { + retval.download = true; + } + + var advanced = {}; + for ( var a in advAttrNames ) { + var val = element.getAttribute( a ); + + if ( val ) { + advanced[ advAttrNames[ a ] ] = val; + } + } + + var advName = element.data( 'cke-saved-name' ) || advanced.advName; + if ( advName ) { + advanced.advName = advName; + } + + if ( !CKEDITOR.tools.isEmpty( advanced ) ) { + retval.advanced = advanced; + } + } + + return retval; + }, + + /** + * Converts link data produced by {@link #parseLinkAttributes} into an object which consists + * of attributes to be set (with their values) and an array of attributes to be removed. + * This method can be used to compose or to update any link element with the given data. + * + * @since 4.4.0 + * @param {CKEDITOR.editor} editor + * @param {Object} data Data in {@link #parseLinkAttributes} format. + * @returns {Object} An object consisting of two keys, i.e.: + * + * { + * // Attributes to be set. + * set: { + * href: 'http://foo.bar', + * target: 'bang' + * }, + * // Attributes to be removed. + * removed: [ + * 'id', 'style' + * ] + * } + * + */ + getLinkAttributes: function( editor, data ) { + var emailProtection = editor.config.emailProtection || '', + set = {}; + + // Compose the URL. + switch ( data.type ) { + case 'url': + var protocol = ( data.url && data.url.protocol !== undefined ) ? data.url.protocol : 'http://', + url = ( data.url && CKEDITOR.tools.trim( data.url.url ) ) || ''; + + set[ 'data-cke-saved-href' ] = ( url.indexOf( '/' ) === 0 ) ? url : protocol + url; + break; + + case 'anchor': + var name = ( data.anchor && data.anchor.name ), + id = ( data.anchor && data.anchor.id ); + + set[ 'data-cke-saved-href' ] = '#' + ( name || id || '' ); + break; + + case 'email': + var email = data.email, + address = email.address, + linkHref; + + switch ( emailProtection ) { + case '': + case 'encode': + var subject = encodeURIComponent( email.subject || '' ), + body = encodeURIComponent( email.body || '' ), + argList = []; + + // Build the e-mail parameters first. + subject && argList.push( 'subject=' + subject ); + body && argList.push( 'body=' + body ); + argList = argList.length ? '?' + argList.join( '&' ) : ''; + + if ( emailProtection == 'encode' ) { + linkHref = [ + 'javascript:void(location.href=\'mailto:\'+', // jshint ignore:line + protectEmailAddressAsEncodedString( address ) + ]; + // parameters are optional. + argList && linkHref.push( '+\'', escapeSingleQuote( argList ), '\'' ); + + linkHref.push( ')' ); + } else { + linkHref = [ 'mailto:', address, argList ]; + } + break; + + default: + // Separating name and domain. + var nameAndDomain = address.split( '@', 2 ); + email.name = nameAndDomain[ 0 ]; + email.domain = nameAndDomain[ 1 ]; + + linkHref = [ 'javascript:', protectEmailLinkAsFunction( editor, email ) ]; // jshint ignore:line + } + set[ 'data-cke-saved-href' ] = linkHref.join( '' ); + break; + + case 'tel': + set[ 'data-cke-saved-href' ] = 'tel:' + data.tel; + break; + } + + // Popups and target. + if ( data.target ) { + if ( data.target.type == 'popup' ) { + var onclickList = [ + 'window.open(this.href, \'', data.target.name || '', '\', \'' + ], + featureList = [ + 'resizable', 'status', 'location', 'toolbar', 'menubar', 'fullscreen', 'scrollbars', 'dependent' + ], + featureLength = featureList.length, + addFeature = function( featureName ) { + if ( data.target[ featureName ] ) { + featureList.push( featureName + '=' + data.target[ featureName ] ); + } + }; + + for ( var i = 0; i < featureLength; i++ ) { + featureList[ i ] = featureList[ i ] + ( data.target[ featureList[ i ] ] ? '=yes' : '=no' ); + } + + addFeature( 'width' ); + addFeature( 'left' ); + addFeature( 'height' ); + addFeature( 'top' ); + + onclickList.push( featureList.join( ',' ), '\'); return false;' ); + set[ 'data-cke-pa-onclick' ] = onclickList.join( '' ); + } + else if ( data.target.type != 'notSet' && data.target.name ) { + set.target = data.target.name; + } + } + + // Force download attribute. + if ( data.download ) { + set.download = ''; + } + + // Advanced attributes. + if ( data.advanced ) { + for ( var a in advAttrNames ) { + var val = data.advanced[ advAttrNames[ a ] ]; + + if ( val ) { + set[ a ] = val; + } + } + + if ( set.name ) { + set[ 'data-cke-saved-name' ] = set.name; + } + } + + // Browser need the "href" fro copy/paste link to work. (https://dev.ckeditor.com/ticket/6641) + if ( set[ 'data-cke-saved-href' ] ) { + set.href = set[ 'data-cke-saved-href' ]; + } + + var removed = { + target: 1, + onclick: 1, + 'data-cke-pa-onclick': 1, + 'data-cke-saved-name': 1, + 'download': 1 + }; + + if ( data.advanced ) { + CKEDITOR.tools.extend( removed, advAttrNames ); + } + + // Remove all attributes which are not currently set. + for ( var s in set ) { + delete removed[ s ]; + } + + return { + set: set, + removed: CKEDITOR.tools.object.keys( removed ) + }; + }, + + + /** + * Determines whether an element should have a "Display Text" field in the Link dialog. + * + * @since 4.5.11 + * @param {CKEDITOR.dom.element/null} element Selected element, `null` if none selected or if a ranged selection + * is made. + * @param {CKEDITOR.editor} editor The editor instance for which the check is performed. + * @returns {Boolean} + */ + showDisplayTextForElement: function( element, editor ) { + var undesiredElements = { + img: 1, + table: 1, + tbody: 1, + thead: 1, + tfoot: 1, + input: 1, + select: 1, + textarea: 1 + }, + selection = editor.getSelection(); + + // Widget duck typing, we don't want to show display text for widgets. + if ( editor.widgets && editor.widgets.focused ) { + return false; + } + + if ( selection && selection.getRanges().length > 1 ) { + return false; + } + + return !element || !element.getName || !element.is( undesiredElements ); + } + }; + + // TODO Much probably there's no need to expose these as public objects. + + CKEDITOR.unlinkCommand = function() {}; + CKEDITOR.unlinkCommand.prototype = { + exec: function( editor ) { + // IE/Edge removes link from selection while executing "unlink" command when cursor + // is right before/after link's text. Therefore whole link must be selected and the + // position of cursor must be restored to its initial state after unlinking. (https://dev.ckeditor.com/ticket/13062) + if ( CKEDITOR.env.ie ) { + var range = editor.getSelection().getRanges()[ 0 ], + link = ( range.getPreviousEditableNode() && range.getPreviousEditableNode().getAscendant( 'a', true ) ) || + ( range.getNextEditableNode() && range.getNextEditableNode().getAscendant( 'a', true ) ), + bookmark; + + if ( range.collapsed && link ) { + bookmark = range.createBookmark(); + range.selectNodeContents( link ); + range.select(); + } + } + + var style = new CKEDITOR.style( { element: 'a', type: CKEDITOR.STYLE_INLINE, alwaysRemoveElement: 1 } ); + editor.removeStyle( style ); + + if ( bookmark ) { + range.moveToBookmark( bookmark ); + range.select(); + } + }, + + refresh: function( editor, path ) { + // Despite our initial hope, document.queryCommandEnabled() does not work + // for this in Firefox. So we must detect the state by element paths. + + var element = path.lastElement && path.lastElement.getAscendant( 'a', true ); + + if ( element && element.getName() == 'a' && element.getAttribute( 'href' ) && element.getChildCount() ) { + this.setState( CKEDITOR.TRISTATE_OFF ); + } else { + this.setState( CKEDITOR.TRISTATE_DISABLED ); + } + }, + + contextSensitive: 1, + startDisabled: 1, + requiredContent: 'a[href]', + editorFocus: 1 + }; + + CKEDITOR.removeAnchorCommand = function() {}; + CKEDITOR.removeAnchorCommand.prototype = { + exec: function( editor ) { + var sel = editor.getSelection(), + bms = sel.createBookmarks(), + anchor; + + if ( sel && ( anchor = sel.getSelectedElement() ) && ( !anchor.getChildCount() ? CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, anchor ) : anchor.is( 'a' ) ) ) { + anchor.remove( 1 ); + } else { + if ( ( anchor = CKEDITOR.plugins.link.getSelectedLink( editor ) ) ) { + if ( anchor.hasAttribute( 'href' ) ) { + anchor.removeAttributes( { name: 1, 'data-cke-saved-name': 1 } ); + anchor.removeClass( 'cke_anchor' ); + } else { + anchor.remove( 1 ); + } + } + } + sel.selectBookmarks( bms ); + }, + requiredContent: 'a[name]' + }; + + CKEDITOR.tools.extend( CKEDITOR.config, { + /** + * Whether to show the Advanced tab in the Link dialog window. + * + * @cfg {Boolean} [linkShowAdvancedTab=true] + * @member CKEDITOR.config + */ + linkShowAdvancedTab: true, + + /** + * Whether to show the Target tab in the Link dialog window. + * + * @cfg {Boolean} [linkShowTargetTab=true] + * @member CKEDITOR.config + */ + linkShowTargetTab: true, + + /** + * Default URL protocol used for the Link dialog. + * + * Available values are: + * + * * `'http://'` + * * `'https://'` + * * `'ftp://'` + * * `'news://'` + * * `''` — An empty string for the `` option. + * + * ```js + * config.linkDefaultProtocol = 'https://'; + * ``` + * + * @cfg {String} + * @member CKEDITOR.config + * @since 4.13.0 + */ + linkDefaultProtocol: 'http://' + + /** + * Whether JavaScript code is allowed as a `href` attribute in an anchor tag. + * With this option enabled it is possible to create links like: + * + * ```html + * hello world + * ``` + * + * By default JavaScript links are not allowed and will not pass + * the Link dialog window validation. + * + * @since 4.4.1 + * @cfg {Boolean} [linkJavaScriptLinksAllowed=false] + * @member CKEDITOR.config + */ + + /** + * Optional JavaScript regular expression used whenever phone numbers in the Link dialog should be validated. + * + * ```js + * config.linkPhoneRegExp = /^[0-9]{9}$/; + * ``` + * + * @since 4.11.0 + * @cfg {RegExp} [linkPhoneRegExp] + * @member CKEDITOR.config + */ + + /** + * Optional message for the alert popup used when the phone number in the Link dialog does not pass the validation. + * + * ```js + * config.linkPhoneMsg = "Invalid number"; + * ``` + * + * @since 4.11.0 + * @cfg {String} [linkPhoneMsg] + * @member CKEDITOR.config + */ + } ); +} )(); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/dialogs/table.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/dialogs/table.js index 5d627c1219..7106417dde 100644 --- a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/dialogs/table.js +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/dialogs/table.js @@ -1,22 +1,570 @@ -/* - Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -(function(){function w(a){for(var f=0,p=0,n=0,q,d=a.$.rows.length;np&&(p=f)}return p}function t(a){return function(){var f=this.getValue(),f=!!(CKEDITOR.dialog.validate.integer().call(this,f)&&0r.getSize("width")?"100%":500:0,getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("width",this.getValue())},setup:function(a){a=a.getStyle("width");this.setValue(a)},commit:n}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em", -label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:v,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:n}]},{type:"html",html:"\x26nbsp;"},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]", -controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,e){this.getValue()?e.setAttribute("cellSpacing",this.getValue()):e.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")? -1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,e){this.getValue()?e.setAttribute("cellPadding",this.getValue()):e.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right",html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0 maxCols && ( maxCols = cols ); + } + + return maxCols; + } + + + // Whole-positive-integer validator. + function validatorNum( msg ) { + return function() { + var value = this.getValue(), + pass = !!( CKEDITOR.dialog.validate.integer().call( this, value ) && value > 0 ); + + if ( !pass ) { + alert( msg ); // jshint ignore:line + this.select(); + } + + return pass; + }; + } + + function tableDialog( editor, command ) { + var makeElement = function( name ) { + return new CKEDITOR.dom.element( name, editor.document ); + }; + + var editable = editor.editable(); + + var dialogadvtab = editor.plugins.dialogadvtab; + + + function shouldReplaceThByTd( cell, headers, index ) { + return cell.type == CKEDITOR.NODE_ELEMENT && ( !headers || index !== 0 ); + } + + return { + title: editor.lang.table.title, + minWidth: 310, + minHeight: CKEDITOR.env.ie ? 310 : 280, + + getModel: function( editor ) { + if ( this.dialog.getName() !== 'tableProperties' ) { + return null; + } + + var selection = editor.getSelection(), + range = selection && selection.getRanges()[ 0 ]; + + return range ? range._getTableElement( { table: 1 } ) : null; + }, + + onLoad: function() { + var dialog = this; + + var styles = dialog.getContentElement( 'advanced', 'advStyles' ); + + if ( styles ) { + styles.on( 'change', function() { + // Synchronize width value. + var width = this.getStyle( 'width', '' ), + txtWidth = dialog.getContentElement( 'info', 'txtWidth' ); + + txtWidth && txtWidth.setValue( width, true ); + + // Synchronize height value. + var height = this.getStyle( 'height', '' ), + txtHeight = dialog.getContentElement( 'info', 'txtHeight' ); + + txtHeight && txtHeight.setValue( height, true ); + } ); + } + }, + + onShow: function() { + // Detect if there's a selected table. + var selection = editor.getSelection(), + ranges = selection.getRanges(), + table; + + var rowsInput = this.getContentElement( 'info', 'txtRows' ), + colsInput = this.getContentElement( 'info', 'txtCols' ), + widthInput = this.getContentElement( 'info', 'txtWidth' ), + heightInput = this.getContentElement( 'info', 'txtHeight' ); + + if ( command == 'tableProperties' ) { + var selected = selection.getSelectedElement(); + if ( selected && selected.is( 'table' ) ) + table = selected; + else if ( ranges.length > 0 ) { + // Webkit could report the following range on cell selection (https://dev.ckeditor.com/ticket/4948): + //
        ] + if ( CKEDITOR.env.webkit ) + ranges[ 0 ].shrink( CKEDITOR.NODE_ELEMENT ); + + table = editor.elementPath( ranges[ 0 ].getCommonAncestor( true ) ).contains( 'table', 1 ); + } + + // Save a reference to the selected table, and push a new set of default values. + this._.selectedElement = table; + } + + // Enable or disable the row, cols, width fields. + if ( table ) { + this.setupContent( table ); + rowsInput && rowsInput.disable(); + colsInput && colsInput.disable(); + } else { + rowsInput && rowsInput.enable(); + colsInput && colsInput.enable(); + } + + // Call the onChange method for the widht and height fields so + // they get reflected into the Advanced tab. + widthInput && widthInput.onChange(); + heightInput && heightInput.onChange(); + }, + onOk: function() { + var selection = editor.getSelection(), + bms = this._.selectedElement && selection.createBookmarks(); + + var table = this._.selectedElement || makeElement( 'table' ), + data = {}; + + this.commitContent( data, table ); + + if ( data.info ) { + var info = data.info; + + // Generate the rows and cols. + if ( !this._.selectedElement ) { + var tbody = table.append( makeElement( 'tbody' ) ), + rows = parseInt( info.txtRows, 10 ) || 0, + cols = parseInt( info.txtCols, 10 ) || 0; + + for ( var i = 0; i < rows; i++ ) { + var row = tbody.append( makeElement( 'tr' ) ); + for ( var j = 0; j < cols; j++ ) { + var cell = row.append( makeElement( 'td' ) ); + cell.appendBogus(); + } + } + } + + // Modify the table headers. Depends on having rows and cols generated + // correctly so it can't be done in commit functions. + + // Should we make a ? + var headers = info.selHeaders; + if ( !table.$.tHead && ( headers == 'row' || headers == 'both' ) ) { + var thead = table.getElementsByTag( 'thead' ).getItem( 0 ); + tbody = table.getElementsByTag( 'tbody' ).getItem( 0 ); + var theRow = tbody.getElementsByTag( 'tr' ).getItem( 0 ); + + if ( !thead ) { + thead = new CKEDITOR.dom.element( 'thead' ); + thead.insertBefore( tbody ); + } + + // Change TD to TH: + for ( i = 0; i < theRow.getChildCount(); i++ ) { + var th = theRow.getChild( i ); + // Skip bookmark nodes. (https://dev.ckeditor.com/ticket/6155) + if ( th.type == CKEDITOR.NODE_ELEMENT && !th.data( 'cke-bookmark' ) ) { + th.renameNode( 'th' ); + th.setAttribute( 'scope', 'col' ); + } + } + thead.append( theRow.remove() ); + } + + if ( table.$.tHead !== null && !( headers == 'row' || headers == 'both' ) ) { + // Move the row out of the THead and put it in the TBody: + thead = new CKEDITOR.dom.element( table.$.tHead ); + tbody = table.getElementsByTag( 'tbody' ).getItem( 0 ); + + while ( thead.getChildCount() > 0 ) { + theRow = thead.getFirst(); + for ( i = 0; i < theRow.getChildCount(); i++ ) { + var newCell = theRow.getChild( i ); + // In case when header is replaced to td element, + // check if the replaced cell should contain a 'row' scope (#2881). + if ( shouldReplaceThByTd( newCell, headers, i ) ) { + newCell.renameNode( 'td' ); + newCell.removeAttribute( 'scope' ); + } else { + newCell.setAttribute( 'scope', 'row' ); + } + } + + // Append the row to the start (#1397). + tbody.append( theRow, true ); + } + thead.remove(); + } + + // Should we make all first cells in a row TH? + if ( !this.hasColumnHeaders && ( headers == 'col' || headers == 'both' ) ) { + for ( row = 0; row < table.$.rows.length; row++ ) { + newCell = new CKEDITOR.dom.element( table.$.rows[ row ].cells[ 0 ] ); + newCell.renameNode( 'th' ); + + // If "both" is set, the first cell in table head should have scope "col"(#2996). + if ( headers === 'both' && row === 0 ) { + newCell.setAttribute( 'scope', 'col' ); + } else { + newCell.setAttribute( 'scope', 'row' ); + } + } + } + + // Should we make all first TH-cells in a row make TD? If 'yes' we do it the other way round :-) + if ( ( this.hasColumnHeaders ) && !( headers == 'col' || headers == 'both' ) ) { + for ( i = 0; i < table.$.rows.length; i++ ) { + row = new CKEDITOR.dom.element( table.$.rows[ i ] ); + if ( row.getParent().getName() == 'tbody' ) { + newCell = new CKEDITOR.dom.element( row.$.cells[ 0 ] ); + newCell.renameNode( 'td' ); + newCell.removeAttribute( 'scope' ); + } + } + } + + // Set the width and height. + info.txtHeight ? table.setStyle( 'height', info.txtHeight ) : table.removeStyle( 'height' ); + info.txtWidth ? table.setStyle( 'width', info.txtWidth ) : table.removeStyle( 'width' ); + + if ( !table.getAttribute( 'style' ) ) + table.removeAttribute( 'style' ); + } + + // Insert the table element if we're creating one. + if ( !this._.selectedElement ) { + editor.insertElement( table ); + // Override the default cursor position after insertElement to place + // cursor inside the first cell (https://dev.ckeditor.com/ticket/7959), IE needs a while. + setTimeout( function() { + var firstCell = new CKEDITOR.dom.element( table.$.rows[ 0 ].cells[ 0 ] ); + var range = editor.createRange(); + range.moveToPosition( firstCell, CKEDITOR.POSITION_AFTER_START ); + range.select(); + }, 0 ); + } + // Properly restore the selection, (https://dev.ckeditor.com/ticket/4822) but don't break + // because of this, e.g. updated table caption. + else { + try { + selection.selectBookmarks( bms ); + } catch ( er ) { + } + } + }, + contents: [ { + id: 'info', + label: editor.lang.table.title, + elements: [ { + type: 'hbox', + widths: [ null, null ], + styles: [ 'vertical-align:top' ], + children: [ { + type: 'vbox', + padding: 0, + children: [ { + type: 'text', + id: 'txtRows', + 'default': 3, + label: editor.lang.table.rows, + required: true, + controlStyle: 'width:5em', + validate: validatorNum( editor.lang.table.invalidRows ), + setup: function( selectedElement ) { + this.setValue( selectedElement.$.rows.length ); + }, + commit: commitValue + }, + { + type: 'text', + id: 'txtCols', + 'default': 2, + label: editor.lang.table.columns, + required: true, + controlStyle: 'width:5em', + validate: validatorNum( editor.lang.table.invalidCols ), + setup: function( selectedTable ) { + this.setValue( tableColumns( selectedTable ) ); + }, + commit: commitValue + }, + { + type: 'html', + html: ' ' + }, + { + type: 'select', + id: 'selHeaders', + requiredContent: 'th', + 'default': '', + label: editor.lang.table.headers, + items: [ + [ editor.lang.table.headersNone, '' ], + [ editor.lang.table.headersRow, 'row' ], + [ editor.lang.table.headersColumn, 'col' ], + [ editor.lang.table.headersBoth, 'both' ] + ], + setup: function( selectedTable ) { + // Fill in the headers field. + var dialog = this.getDialog(); + dialog.hasColumnHeaders = true; + + // Check if all the first cells in every row are TH + for ( var row = 0; row < selectedTable.$.rows.length; row++ ) { + // If just one cell isn't a TH then it isn't a header column + var headCell = selectedTable.$.rows[ row ].cells[ 0 ]; + if ( headCell && headCell.nodeName.toLowerCase() != 'th' ) { + dialog.hasColumnHeaders = false; + break; + } + } + + // Check if the table contains . + if ( ( selectedTable.$.tHead !== null ) ) + this.setValue( dialog.hasColumnHeaders ? 'both' : 'row' ); + else + this.setValue( dialog.hasColumnHeaders ? 'col' : '' ); + }, + commit: commitValue + }, + { + type: 'text', + id: 'txtBorder', + requiredContent: 'table[border]', + // Avoid setting border which will then disappear. + 'default': editor.filter.check( 'table[border]' ) ? 1 : 0, + label: editor.lang.table.border, + controlStyle: 'width:3em', + validate: CKEDITOR.dialog.validate.number( editor.lang.table.invalidBorder ), + setup: function( selectedTable ) { + this.setValue( selectedTable.getAttribute( 'border' ) || '' ); + }, + commit: function( data, selectedTable ) { + if ( this.getValue() ) + selectedTable.setAttribute( 'border', this.getValue() ); + else + selectedTable.removeAttribute( 'border' ); + } + }, + { + id: 'cmbAlign', + type: 'select', + requiredContent: 'table[align]', + 'default': '', + label: editor.lang.common.align, + items: [ + [ editor.lang.common.notSet, '' ], + [ editor.lang.common.left, 'left' ], + [ editor.lang.common.center, 'center' ], + [ editor.lang.common.right, 'right' ] + ], + setup: function( selectedTable ) { + this.setValue( selectedTable.getAttribute( 'align' ) || '' ); + }, + commit: function( data, selectedTable ) { + if ( this.getValue() ) + selectedTable.setAttribute( 'align', this.getValue() ); + else + selectedTable.removeAttribute( 'align' ); + } + } ] + }, + { + type: 'vbox', + padding: 0, + children: [ { + type: 'hbox', + widths: [ '5em' ], + children: [ { + type: 'text', + id: 'txtWidth', + requiredContent: 'table{width}', + controlStyle: 'width:5em', + label: editor.lang.common.width, + title: editor.lang.common.cssLengthTooltip, + // Smarter default table width. (https://dev.ckeditor.com/ticket/9600) + 'default': editor.filter.check( 'table{width}' ) ? ( editable.getSize( 'width' ) < 500 ? '100%' : 500 ) : 0, + getValue: defaultToPixel, + validate: CKEDITOR.dialog.validate.cssLength( editor.lang.common.invalidCssLength.replace( '%1', editor.lang.common.width ) ), + onChange: function() { + var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' ); + styles && styles.updateStyle( 'width', this.getValue() ); + }, + setup: function( selectedTable ) { + var val = selectedTable.getStyle( 'width' ); + this.setValue( val ); + }, + commit: commitValue + } ] + }, + { + type: 'hbox', + widths: [ '5em' ], + children: [ { + type: 'text', + id: 'txtHeight', + requiredContent: 'table{height}', + controlStyle: 'width:5em', + label: editor.lang.common.height, + title: editor.lang.common.cssLengthTooltip, + 'default': '', + getValue: defaultToPixel, + validate: CKEDITOR.dialog.validate.cssLength( editor.lang.common.invalidCssLength.replace( '%1', editor.lang.common.height ) ), + onChange: function() { + var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' ); + styles && styles.updateStyle( 'height', this.getValue() ); + }, + + setup: function( selectedTable ) { + var val = selectedTable.getStyle( 'height' ); + val && this.setValue( val ); + }, + commit: commitValue + } ] + }, + { + type: 'html', + html: ' ' + }, + { + type: 'text', + id: 'txtCellSpace', + requiredContent: 'table[cellspacing]', + controlStyle: 'width:3em', + label: editor.lang.table.cellSpace, + 'default': editor.filter.check( 'table[cellspacing]' ) ? 1 : 0, + validate: CKEDITOR.dialog.validate.number( editor.lang.table.invalidCellSpacing ), + setup: function( selectedTable ) { + this.setValue( selectedTable.getAttribute( 'cellSpacing' ) || '' ); + }, + commit: function( data, selectedTable ) { + if ( this.getValue() ) + selectedTable.setAttribute( 'cellSpacing', this.getValue() ); + else + selectedTable.removeAttribute( 'cellSpacing' ); + } + }, + { + type: 'text', + id: 'txtCellPad', + requiredContent: 'table[cellpadding]', + controlStyle: 'width:3em', + label: editor.lang.table.cellPad, + 'default': editor.filter.check( 'table[cellpadding]' ) ? 1 : 0, + validate: CKEDITOR.dialog.validate.number( editor.lang.table.invalidCellPadding ), + setup: function( selectedTable ) { + this.setValue( selectedTable.getAttribute( 'cellPadding' ) || '' ); + }, + commit: function( data, selectedTable ) { + if ( this.getValue() ) + selectedTable.setAttribute( 'cellPadding', this.getValue() ); + else + selectedTable.removeAttribute( 'cellPadding' ); + } + } ] + } ] + }, + { + type: 'html', + align: 'right', + html: '' + }, + { + type: 'vbox', + padding: 0, + children: [ { + type: 'text', + id: 'txtCaption', + requiredContent: 'caption', + label: editor.lang.table.caption, + setup: function( selectedTable ) { + this.enable(); + + var nodeList = selectedTable.getElementsByTag( 'caption' ); + if ( nodeList.count() > 0 ) { + var caption = nodeList.getItem( 0 ); + var firstElementChild = caption.getFirst( CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT ) ); + + if ( firstElementChild && !firstElementChild.equals( caption.getBogus() ) ) { + this.disable(); + this.setValue( caption.getText() ); + return; + } + + caption = CKEDITOR.tools.trim( caption.getText() ); + this.setValue( caption ); + } + }, + commit: function( data, table ) { + if ( !this.isEnabled() ) + return; + + var caption = this.getValue(), + captionElement = table.getElementsByTag( 'caption' ); + if ( caption ) { + if ( captionElement.count() > 0 ) { + captionElement = captionElement.getItem( 0 ); + captionElement.setHtml( '' ); + } else { + captionElement = new CKEDITOR.dom.element( 'caption', editor.document ); + table.append( captionElement, true ); + } + captionElement.append( new CKEDITOR.dom.text( caption, editor.document ) ); + } else if ( captionElement.count() > 0 ) { + for ( var i = captionElement.count() - 1; i >= 0; i-- ) + captionElement.getItem( i ).remove(); + } + } + }, + { + type: 'text', + id: 'txtSummary', + bidi: true, + requiredContent: 'table[summary]', + label: editor.lang.table.summary, + setup: function( selectedTable ) { + this.setValue( selectedTable.getAttribute( 'summary' ) || '' ); + }, + commit: function( data, selectedTable ) { + if ( this.getValue() ) + selectedTable.setAttribute( 'summary', this.getValue() ); + else + selectedTable.removeAttribute( 'summary' ); + } + } ] + } ] + }, + dialogadvtab && dialogadvtab.createAdvancedTab( editor, null, 'table' ) + ] }; + } + + CKEDITOR.dialog.add( 'table', function( editor ) { + return tableDialog( editor, 'table' ); + } ); + CKEDITOR.dialog.add( 'tableProperties', function( editor ) { + return tableDialog( editor, 'tableProperties' ); + } ); +} )(); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/icons/hidpi/table.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/icons/hidpi/table.png new file mode 100644 index 0000000000..3c9aec7b70 Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/icons/hidpi/table.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/icons/table.png b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/icons/table.png new file mode 100644 index 0000000000..364b01072b Binary files /dev/null and b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/icons/table.png differ diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/af.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/af.js new file mode 100644 index 0000000000..a090c3e703 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/af.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'af', { + border: 'Randbreedte', + caption: 'Naam', + cell: { + menu: 'Sel', + insertBefore: 'Voeg sel in voor', + insertAfter: 'Voeg sel in na', + deleteCell: 'Verwyder sel', + merge: 'Voeg selle saam', + mergeRight: 'Voeg saam na regs', + mergeDown: 'Voeg saam ondertoe', + splitHorizontal: 'Splits sel horisontaal', + splitVertical: 'Splits sel vertikaal', + title: 'Sel eienskappe', + cellType: 'Sel tipe', + rowSpan: 'Omspan rye', + colSpan: 'Omspan kolomme', + wordWrap: 'Woord terugloop', + hAlign: 'Horisontale oplyning', + vAlign: 'Vertikale oplyning', + alignBaseline: 'Basislyn', + bgColor: 'Agtergrondkleur', + borderColor: 'Randkleur', + data: 'Inhoud', + header: 'Opskrif', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nee', + invalidWidth: 'Selbreedte moet \'n getal wees.', + invalidHeight: 'Selhoogte moet \'n getal wees.', + invalidRowSpan: 'Omspan rye moet \'n heelgetal wees.', + invalidColSpan: 'Omspan kolomme moet \'n heelgetal wees.', + chooseColor: 'Kies' + }, + cellPad: 'Sel-spasie', + cellSpace: 'Sel-afstand', + column: { + menu: 'Kolom', + insertBefore: 'Voeg kolom in voor', + insertAfter: 'Voeg kolom in na', + deleteColumn: 'Verwyder kolom' + }, + columns: 'Kolomme', + deleteTable: 'Verwyder tabel', + headers: 'Opskrifte', + headersBoth: 'Beide ', + headersColumn: 'Eerste kolom', + headersNone: 'Geen', + headersRow: 'Eerste ry', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Randbreedte moet \'n getal wees.', + invalidCellPadding: 'Sel-spasie moet \'n getal wees.', + invalidCellSpacing: 'Sel-afstand moet \'n getal wees.', + invalidCols: 'Aantal kolomme moet \'n getal groter as 0 wees.', + invalidHeight: 'Tabelhoogte moet \'n getal wees.', + invalidRows: 'Aantal rye moet \'n getal groter as 0 wees.', + invalidWidth: 'Tabelbreedte moet \'n getal wees.', + menu: 'Tabel eienskappe', + row: { + menu: 'Ry', + insertBefore: 'Voeg ry in voor', + insertAfter: 'Voeg ry in na', + deleteRow: 'Verwyder ry' + }, + rows: 'Rye', + summary: 'Opsomming', + title: 'Tabel eienskappe', + toolbar: 'Tabel', + widthPc: 'persent', + widthPx: 'piksels', + widthUnit: 'breedte-eenheid' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ar.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ar.js new file mode 100644 index 0000000000..6005f0dbb1 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ar.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ar', { + border: 'الحدود', + caption: 'الوصف', + cell: { + menu: 'خلية', + insertBefore: 'إدراج خلية قبل', + insertAfter: 'إدراج خلية بعد', + deleteCell: 'حذف خلية', + merge: 'دمج خلايا', + mergeRight: 'دمج لليمين', + mergeDown: 'دمج للأسفل', + splitHorizontal: 'تقسيم الخلية أفقياً', + splitVertical: 'تقسيم الخلية عمودياً', + title: 'خصائص الخلية', + cellType: 'نوع الخلية', + rowSpan: 'امتداد الصفوف', + colSpan: 'امتداد الأعمدة', + wordWrap: 'التفاف النص', + hAlign: 'محاذاة أفقية', + vAlign: 'محاذاة رأسية', + alignBaseline: 'خط القاعدة', + bgColor: 'لون الخلفية', + borderColor: 'لون الحدود', + data: 'بيانات', + header: 'عنوان', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'نعم', + no: 'لا', + invalidWidth: 'عرض الخلية يجب أن يكون عدداً.', + invalidHeight: 'ارتفاع الخلية يجب أن يكون عدداً.', + invalidRowSpan: 'امتداد الصفوف يجب أن يكون عدداً صحيحاً.', + invalidColSpan: 'امتداد الأعمدة يجب أن يكون عدداً صحيحاً.', + chooseColor: 'اختر' + }, + cellPad: 'المسافة البادئة', + cellSpace: 'تباعد الخلايا', + column: { + menu: 'عمود', + insertBefore: 'إدراج عمود قبل', + insertAfter: 'إدراج عمود بعد', + deleteColumn: 'حذف أعمدة' + }, + columns: 'أعمدة', + deleteTable: 'حذف الجدول', + headers: 'العناوين', + headersBoth: 'كلاهما', + headersColumn: 'العمود الأول', + headersNone: 'بدون', + headersRow: 'الصف الأول', + heightUnit: 'height unit', // MISSING + invalidBorder: 'حجم الحد يجب أن يكون عدداً.', + invalidCellPadding: 'المسافة البادئة يجب أن تكون عدداً', + invalidCellSpacing: 'المسافة بين الخلايا يجب أن تكون عدداً.', + invalidCols: 'عدد الأعمدة يجب أن يكون عدداً أكبر من صفر.', + invalidHeight: 'ارتفاع الجدول يجب أن يكون عدداً.', + invalidRows: 'عدد الصفوف يجب أن يكون عدداً أكبر من صفر.', + invalidWidth: 'عرض الجدول يجب أن يكون عدداً.', + menu: 'خصائص الجدول', + row: { + menu: 'صف', + insertBefore: 'إدراج صف قبل', + insertAfter: 'إدراج صف بعد', + deleteRow: 'حذف صفوف' + }, + rows: 'صفوف', + summary: 'الخلاصة', + title: 'خصائص الجدول', + toolbar: 'جدول', + widthPc: 'بالمئة', + widthPx: 'بكسل', + widthUnit: 'وحدة العرض' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/az.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/az.js new file mode 100644 index 0000000000..b656fae843 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/az.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'az', { + border: 'Sərhədlərin eni', + caption: 'Cədvəlin başlığı', + cell: { + menu: 'Xana', + insertBefore: 'Burdan əvvələ xanası çək', + insertAfter: 'Burdan sonra xanası çək', + deleteCell: 'Xanaları sil', + merge: 'Xanaları birləşdir', + mergeRight: 'Sağdan birləşdir', + mergeDown: 'Soldan birləşdir', + splitHorizontal: 'Üfüqi böl', + splitVertical: 'Şaquli böl', + title: 'Xanaların seçimləri', + cellType: 'Xana növü', + rowSpan: 'Sətirləri birləşdir', + colSpan: 'Sütunları birləşdir', + wordWrap: 'Sətirlərin sınması', + hAlign: 'Üfüqi düzləndirmə', + vAlign: 'Şaquli düzləndirmə', + alignBaseline: 'Mətn xətti', + bgColor: 'Doldurma rəngi', + borderColor: 'Sərhədin rəngi', + data: 'Məlumatlar', + header: 'Başlıq', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Bəli', + no: 'Xeyr', + invalidWidth: 'Xanasın eni rəqəm olmalıdır.', + invalidHeight: 'Xanasın hündürlüyü rəqəm olmalıdır.', + invalidRowSpan: 'Birləşdirdiyiniz sütun xanaların sayı tam və müsbət rəqəm olmalıdır.', + invalidColSpan: 'Birləşdirdiyiniz sətir xanaların sayı tam və müsbət rəqəm olmalıdır.', + chooseColor: 'Seç' + }, + cellPad: 'Xanalardakı kənar boşluqlar', + cellSpace: 'Xanalararası interval', + column: { + menu: 'Sütun', + insertBefore: 'Sola sütun əlavə et', + insertAfter: 'Sağa sütun əlavə et', + deleteColumn: 'Sütunları sil' + }, + columns: 'Sütunlar', + deleteTable: 'Cədvəli sil', + headers: 'Başlıqlar', + headersBoth: 'Hər ikisi', + headersColumn: 'Birinci sütun', + headersNone: 'yox', + headersRow: 'Birinci sətir', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Sərhədlərin eni müsbət rəqəm olmalıdır.', + invalidCellPadding: 'Xanalardakı kənar boşluqlar müsbət rəqəm olmalıdır.', + invalidCellSpacing: 'Xanalararası interval müsbət rəqəm olmalıdır.', + invalidCols: 'Sütunlarin sayı tam və müsbət olmalıdır.', + invalidHeight: 'Cədvəlin hündürlüyü rəqəm olmalıdır.', + invalidRows: 'Sətirlətin sayı tam və müsbət olmalıdır.', + invalidWidth: 'Cədvəlin eni rəqəm olmalıdır.', + menu: 'Cədvəl alətləri', + row: { + menu: 'Sətir', + insertBefore: 'Yuxarıya sətir əlavə et', + insertAfter: 'Aşağıya sətir əlavə et', + deleteRow: 'Sətirləri sil' + }, + rows: 'Sətirlər', + summary: 'Xülasə', + title: 'Cədvəl alətləri', + toolbar: 'Cədvəl', + widthPc: 'faiz', + widthPx: 'piksel', + widthUnit: 'en vahidi' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bg.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bg.js new file mode 100644 index 0000000000..b241519a44 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bg.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'bg', { + border: 'Размер на рамката', + caption: 'Заглавие', + cell: { + menu: 'Клетка', + insertBefore: 'Вмъкване на клетка преди', + insertAfter: 'Вмъкване на клетка след', + deleteCell: 'Изтриване на клетки', + merge: 'Сливане на клетки', + mergeRight: 'Сливане надясно', + mergeDown: 'Сливане надолу', + splitHorizontal: 'Разделяне клетката хоризонтално', + splitVertical: 'Разделяне клетката вертикално', + title: 'Настройки на клетката', + cellType: 'Тип на клетката', + rowSpan: 'Редове обединени', + colSpan: 'Колони обединени', + wordWrap: 'Авто. пренос', + hAlign: 'Хоризонтално подравняване', + vAlign: 'Вертикално подравняване', + alignBaseline: 'Базова линия', + bgColor: 'Фон', + borderColor: 'Цвят на рамката', + data: 'Данни', + header: 'Заглавие', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Да', + no: 'Не', + invalidWidth: 'Ширината на клетката трябва да е число.', + invalidHeight: 'Височината на клетката трябва да е число.', + invalidRowSpan: 'Редове обединени трябва да е цяло число.', + invalidColSpan: 'Колони обединени трябва да е цяло число.', + chooseColor: 'Изберете' + }, + cellPad: 'Отделяне на клетките', + cellSpace: 'Разстояние между клетките', + column: { + menu: 'Колона', + insertBefore: 'Вмъкване на колона преди', + insertAfter: 'Вмъкване на колона след', + deleteColumn: 'Изтриване на колони' + }, + columns: 'Колони', + deleteTable: 'Изтриване на таблица', + headers: 'Заглавия', + headersBoth: 'И двете', + headersColumn: 'Първа колона', + headersNone: 'Няма', + headersRow: 'Първи ред', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Размерът на рамката трябва да е число.', + invalidCellPadding: 'Отстоянието на клетките трябва да е положително число.', + invalidCellSpacing: 'Интервалът в клетките трябва да е положително число.', + invalidCols: 'Броят колони трябва да е по-голям от 0.', + invalidHeight: 'Височината на таблицата трябва да е число.', + invalidRows: 'Броят редове трябва да е по-голям от 0.', + invalidWidth: 'Ширината на таблицата трябва да е число.', + menu: 'Настройки на таблицата', + row: { + menu: 'Ред', + insertBefore: 'Вмъкване на ред преди', + insertAfter: 'Вмъкване на ред след', + deleteRow: 'Изтриване на редове' + }, + rows: 'Редове', + summary: 'Обща информация', + title: 'Настройки на таблицата', + toolbar: 'Таблица', + widthPc: 'процент', + widthPx: 'пиксела', + widthUnit: 'единица за ширина' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bn.js new file mode 100644 index 0000000000..25d24a7742 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bn.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'bn', { + border: 'বর্ডারের সাইজ', + caption: 'শীর্ষক', + cell: { + menu: 'সেল', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'সেল মুছে দাও', + merge: 'সেল জোড়া দাও', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'পৃষ্ঠতলের রং', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'সেল প্যাডিং', + cellSpace: 'সেল স্পেস', + column: { + menu: 'কলাম', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'কলাম মুছে দাও' + }, + columns: 'কলাম', + deleteTable: 'টেবিল ডিলীট কর', + headers: 'Headers', // MISSING + headersBoth: 'Both', // MISSING + headersColumn: 'First column', // MISSING + headersNone: 'None', + headersRow: 'First Row', // MISSING + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Table width must be a number.', // MISSING + menu: 'টেবিল প্রোপার্টি', + row: { + menu: 'রো', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'রো মুছে দাও' + }, + rows: 'রো', + summary: 'সারাংশ', + title: 'টেবিল প্রোপার্টি', + toolbar: 'টেবিলের লেবেল যুক্ত কর', + widthPc: 'শতকরা', + widthPx: 'পিক্সেল', + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bs.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bs.js new file mode 100644 index 0000000000..35d06f43a3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/bs.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'bs', { + border: 'Okvir', + caption: 'Naslov', + cell: { + menu: 'Cell', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'Briši æelije', + merge: 'Spoji æelije', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Uvod æelija', + cellSpace: 'Razmak æelija', + column: { + menu: 'Column', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'Briši kolone' + }, + columns: 'Kolona', + deleteTable: 'Delete Table', // MISSING + headers: 'Headers', // MISSING + headersBoth: 'Both', // MISSING + headersColumn: 'First column', // MISSING + headersNone: 'None', + headersRow: 'First Row', // MISSING + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Table width must be a number.', // MISSING + menu: 'Svojstva tabele', + row: { + menu: 'Row', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'Briši redove' + }, + rows: 'Redova', + summary: 'Summary', // MISSING + title: 'Svojstva tabele', + toolbar: 'Tabela', + widthPc: 'posto', + widthPx: 'piksela', + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ca.js new file mode 100644 index 0000000000..edba10dd0c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ca.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ca', { + border: 'Mida vora', + caption: 'Títol', + cell: { + menu: 'Cel·la', + insertBefore: 'Insereix abans', + insertAfter: 'Insereix després', + deleteCell: 'Suprimeix', + merge: 'Fusiona', + mergeRight: 'Fusiona a la dreta', + mergeDown: 'Fusiona avall', + splitHorizontal: 'Divideix horitzontalment', + splitVertical: 'Divideix verticalment', + title: 'Propietats de la cel·la', + cellType: 'Tipus de cel·la', + rowSpan: 'Expansió de files', + colSpan: 'Expansió de columnes', + wordWrap: 'Ajustar al contingut', + hAlign: 'Alineació Horizontal', + vAlign: 'Alineació Vertical', + alignBaseline: 'A la línia base', + bgColor: 'Color de fons', + borderColor: 'Color de la vora', + data: 'Dades', + header: 'Capçalera', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Sí', + no: 'No', + invalidWidth: 'L\'amplada de cel·la ha de ser un nombre.', + invalidHeight: 'L\'alçada de cel·la ha de ser un nombre.', + invalidRowSpan: 'L\'expansió de files ha de ser un nombre enter.', + invalidColSpan: 'L\'expansió de columnes ha de ser un nombre enter.', + chooseColor: 'Trieu' + }, + cellPad: 'Encoixinament de cel·les', + cellSpace: 'Espaiat de cel·les', + column: { + menu: 'Columna', + insertBefore: 'Insereix columna abans de', + insertAfter: 'Insereix columna darrera', + deleteColumn: 'Suprimeix una columna' + }, + columns: 'Columnes', + deleteTable: 'Suprimeix la taula', + headers: 'Capçaleres', + headersBoth: 'Ambdues', + headersColumn: 'Primera columna', + headersNone: 'Cap', + headersRow: 'Primera fila', + heightUnit: 'height unit', // MISSING + invalidBorder: 'El gruix de la vora ha de ser un nombre.', + invalidCellPadding: 'L\'encoixinament de cel·la ha de ser un nombre.', + invalidCellSpacing: 'L\'espaiat de cel·la ha de ser un nombre.', + invalidCols: 'El nombre de columnes ha de ser un nombre major que 0.', + invalidHeight: 'L\'alçada de la taula ha de ser un nombre.', + invalidRows: 'El nombre de files ha de ser un nombre major que 0.', + invalidWidth: 'L\'amplada de la taula ha de ser un nombre.', + menu: 'Propietats de la taula', + row: { + menu: 'Fila', + insertBefore: 'Insereix fila abans de', + insertAfter: 'Insereix fila darrera', + deleteRow: 'Suprimeix una fila' + }, + rows: 'Files', + summary: 'Resum', + title: 'Propietats de la taula', + toolbar: 'Taula', + widthPc: 'percentatge', + widthPx: 'píxels', + widthUnit: 'unitat d\'amplada' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/cs.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/cs.js new file mode 100644 index 0000000000..914b17aa76 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/cs.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'cs', { + border: 'Ohraničení', + caption: 'Popis', + cell: { + menu: 'Buňka', + insertBefore: 'Vložit buňku před', + insertAfter: 'Vložit buňku za', + deleteCell: 'Smazat buňky', + merge: 'Sloučit buňky', + mergeRight: 'Sloučit doprava', + mergeDown: 'Sloučit dolů', + splitHorizontal: 'Rozdělit buňky vodorovně', + splitVertical: 'Rozdělit buňky svisle', + title: 'Vlastnosti buňky', + cellType: 'Typ buňky', + rowSpan: 'Spojit řádky', + colSpan: 'Spojit sloupce', + wordWrap: 'Zalamování', + hAlign: 'Vodorovné zarovnání', + vAlign: 'Svislé zarovnání', + alignBaseline: 'Na účaří', + bgColor: 'Barva pozadí', + borderColor: 'Barva okraje', + data: 'Data', + header: 'Hlavička', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ano', + no: 'Ne', + invalidWidth: 'Šířka buňky musí být číslo.', + invalidHeight: 'Zadaná výška buňky musí být číslená.', + invalidRowSpan: 'Zadaný počet sloučených řádků musí být celé číslo.', + invalidColSpan: 'Zadaný počet sloučených sloupců musí být celé číslo.', + chooseColor: 'Výběr' + }, + cellPad: 'Odsazení obsahu v buňce', + cellSpace: 'Vzdálenost buněk', + column: { + menu: 'Sloupec', + insertBefore: 'Vložit sloupec před', + insertAfter: 'Vložit sloupec za', + deleteColumn: 'Smazat sloupec' + }, + columns: 'Sloupce', + deleteTable: 'Smazat tabulku', + headers: 'Záhlaví', + headersBoth: 'Obojí', + headersColumn: 'První sloupec', + headersNone: 'Žádné', + headersRow: 'První řádek', + heightUnit: 'jednotka výšky', + invalidBorder: 'Zdaná velikost okraje musí být číselná.', + invalidCellPadding: 'Zadané odsazení obsahu v buňce musí být číselné.', + invalidCellSpacing: 'Zadaná vzdálenost buněk musí být číselná.', + invalidCols: 'Počet sloupců musí být číslo větší než 0.', + invalidHeight: 'Zadaná výška tabulky musí být číselná.', + invalidRows: 'Počet řádků musí být číslo větší než 0.', + invalidWidth: 'Šířka tabulky musí být číslo.', + menu: 'Vlastnosti tabulky', + row: { + menu: 'Řádek', + insertBefore: 'Vložit řádek před', + insertAfter: 'Vložit řádek za', + deleteRow: 'Smazat řádky' + }, + rows: 'Řádky', + summary: 'Souhrn', + title: 'Vlastnosti tabulky', + toolbar: 'Tabulka', + widthPc: 'procent', + widthPx: 'bodů', + widthUnit: 'jednotka šířky' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/cy.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/cy.js new file mode 100644 index 0000000000..0c8e2b14df --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/cy.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'cy', { + border: 'Maint yr Ymyl', + caption: 'Pennawd', + cell: { + menu: 'Cell', + insertBefore: 'Mewnosod Cell Cyn', + insertAfter: 'Mewnosod Cell Ar Ôl', + deleteCell: 'Dileu Celloedd', + merge: 'Cyfuno Celloedd', + mergeRight: 'Cyfuno i\'r Dde', + mergeDown: 'Cyfuno i Lawr', + splitHorizontal: 'Hollti\'r Gell yn Lorweddol', + splitVertical: 'Hollti\'r Gell yn Fertigol', + title: 'Priodweddau\'r Gell', + cellType: 'Math y Gell', + rowSpan: 'Rhychwant Rhesi', + colSpan: 'Rhychwant Colofnau', + wordWrap: 'Lapio Geiriau', + hAlign: 'Aliniad Llorweddol', + vAlign: 'Aliniad Fertigol', + alignBaseline: 'Baslinell', + bgColor: 'Lliw Cefndir', + borderColor: 'Lliw Ymyl', + data: 'Data', + header: 'Pennyn', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ie', + no: 'Na', + invalidWidth: 'Mae\'n rhaid i led y gell fod yn rhif.', + invalidHeight: 'Mae\'n rhaid i uchder y gell fod yn rhif.', + invalidRowSpan: 'Mae\'n rhaid i rychwant y rhesi fod yn gyfanrif.', + invalidColSpan: 'Mae\'n rhaid i rychwant y colofnau fod yn gyfanrif.', + chooseColor: 'Dewis' + }, + cellPad: 'Padio\'r gell', + cellSpace: 'Bylchiad y gell', + column: { + menu: 'Colofn', + insertBefore: 'Mewnosod Colofn Cyn', + insertAfter: 'Mewnosod Colofn Ar Ôl', + deleteColumn: 'Dileu Colofnau' + }, + columns: 'Colofnau', + deleteTable: 'Dileu Tabl', + headers: 'Penynnau', + headersBoth: 'Y Ddau', + headersColumn: 'Colofn gyntaf', + headersNone: 'Dim', + headersRow: 'Rhes gyntaf', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Mae\'n rhaid i faint yr ymyl fod yn rhif.', + invalidCellPadding: 'Mae\'n rhaid i badiad y gell fod yn rhif positif.', + invalidCellSpacing: 'Mae\'n rhaid i fylchiad y gell fod yn rhif positif.', + invalidCols: 'Mae\'n rhaid cael o leiaf un golofn.', + invalidHeight: 'Mae\'n rhaid i uchder y tabl fod yn rhif.', + invalidRows: 'Mae\'n rhaid cael o leiaf un rhes.', + invalidWidth: 'Mae\'n rhaid i led y tabl fod yn rhif.', + menu: 'Priodweddau\'r Tabl', + row: { + menu: 'Rhes', + insertBefore: 'Mewnosod Rhes Cyn', + insertAfter: 'Mewnosod Rhes Ar Ôl', + deleteRow: 'Dileu Rhesi' + }, + rows: 'Rhesi', + summary: 'Crynodeb', + title: 'Priodweddau\'r Tabl', + toolbar: 'Tabl', + widthPc: 'y cant', + widthPx: 'picsel', + widthUnit: 'uned lled' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/da.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/da.js new file mode 100644 index 0000000000..fbdadd39d7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/da.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'da', { + border: 'Rammebredde', + caption: 'Titel', + cell: { + menu: 'Celle', + insertBefore: 'Indsæt celle før', + insertAfter: 'Indsæt celle efter', + deleteCell: 'Slet celle', + merge: 'Flet celler', + mergeRight: 'Flet til højre', + mergeDown: 'Flet nedad', + splitHorizontal: 'Del celle vandret', + splitVertical: 'Del celle lodret', + title: 'Celleegenskaber', + cellType: 'Celletype', + rowSpan: 'Række span (rows span)', + colSpan: 'Kolonne span (columns span)', + wordWrap: 'Tekstombrydning', + hAlign: 'Vandret justering', + vAlign: 'Lodret justering', + alignBaseline: 'Grundlinje', + bgColor: 'Baggrundsfarve', + borderColor: 'Rammefarve', + data: 'Data', + header: 'Hoved', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nej', + invalidWidth: 'Cellebredde skal være et tal.', + invalidHeight: 'Cellehøjde skal være et tal.', + invalidRowSpan: 'Række span skal være et heltal.', + invalidColSpan: 'Kolonne span skal være et heltal.', + chooseColor: 'Vælg' + }, + cellPad: 'Cellemargen', + cellSpace: 'Celleafstand', + column: { + menu: 'Kolonne', + insertBefore: 'Indsæt kolonne før', + insertAfter: 'Indsæt kolonne efter', + deleteColumn: 'Slet kolonne' + }, + columns: 'Kolonner', + deleteTable: 'Slet tabel', + headers: 'Hoved', + headersBoth: 'Begge', + headersColumn: 'Første kolonne', + headersNone: 'Ingen', + headersRow: 'Første række', + heightUnit: 'højde enhed', + invalidBorder: 'Rammetykkelse skal være et tal.', + invalidCellPadding: 'Cellemargen skal være et tal.', + invalidCellSpacing: 'Celleafstand skal være et tal.', + invalidCols: 'Antallet af kolonner skal være større end 0.', + invalidHeight: 'Tabelhøjde skal være et tal.', + invalidRows: 'Antallet af rækker skal være større end 0.', + invalidWidth: 'Tabelbredde skal være et tal.', + menu: 'Egenskaber for tabel', + row: { + menu: 'Række', + insertBefore: 'Indsæt række før', + insertAfter: 'Indsæt række efter', + deleteRow: 'Slet række' + }, + rows: 'Rækker', + summary: 'Resumé', + title: 'Egenskaber for tabel', + toolbar: 'Tabel', + widthPc: 'procent', + widthPx: 'pixels', + widthUnit: 'Bredde på enhed' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/de-ch.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/de-ch.js new file mode 100644 index 0000000000..2164fb8c7d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/de-ch.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'de-ch', { + border: 'Rahmengrösse', + caption: 'Überschrift', + cell: { + menu: 'Zelle', + insertBefore: 'Zelle davor einfügen', + insertAfter: 'Zelle danach einfügen', + deleteCell: 'Zelle löschen', + merge: 'Zellen verbinden', + mergeRight: 'Nach rechts verbinden', + mergeDown: 'Nach unten verbinden', + splitHorizontal: 'Zelle horizontal teilen', + splitVertical: 'Zelle vertikal teilen', + title: 'Zelleneigenschaften', + cellType: 'Zellart', + rowSpan: 'Anzahl Zeilen verbinden', + colSpan: 'Anzahl Spalten verbinden', + wordWrap: 'Zeilenumbruch', + hAlign: 'Horizontale Ausrichtung', + vAlign: 'Vertikale Ausrichtung', + alignBaseline: 'Grundlinie', + bgColor: 'Hintergrundfarbe', + borderColor: 'Rahmenfarbe', + data: 'Daten', + header: 'Überschrift', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nein', + invalidWidth: 'Zellenbreite muss eine Zahl sein.', + invalidHeight: 'Zellenhöhe muss eine Zahl sein.', + invalidRowSpan: '"Anzahl Zeilen verbinden" muss eine Ganzzahl sein.', + invalidColSpan: '"Anzahl Spalten verbinden" muss eine Ganzzahl sein.', + chooseColor: 'Wählen' + }, + cellPad: 'Zellenabstand innen', + cellSpace: 'Zellenabstand aussen', + column: { + menu: 'Spalte', + insertBefore: 'Spalte links davor einfügen', + insertAfter: 'Spalte rechts danach einfügen', + deleteColumn: 'Spalte löschen' + }, + columns: 'Spalte', + deleteTable: 'Tabelle löschen', + headers: 'Kopfzeile', + headersBoth: 'Beide', + headersColumn: 'Erste Spalte', + headersNone: 'Keine', + headersRow: 'Erste Zeile', + heightUnit: 'Höheneinheit', + invalidBorder: 'Die Rahmenbreite muss eine Zahl sein.', + invalidCellPadding: 'Der Zellenabstand innen muss eine positive Zahl sein.', + invalidCellSpacing: 'Der Zellenabstand aussen muss eine positive Zahl sein.', + invalidCols: 'Die Anzahl der Spalten muss grösser als 0 sein..', + invalidHeight: 'Die Tabellenbreite muss eine Zahl sein.', + invalidRows: 'Die Anzahl der Zeilen muss grösser als 0 sein.', + invalidWidth: 'Die Tabellenbreite muss eine Zahl sein.', + menu: 'Tabellen-Eigenschaften', + row: { + menu: 'Zeile', + insertBefore: 'Zeile oberhalb einfügen', + insertAfter: 'Zeile unterhalb einfügen', + deleteRow: 'Zeile entfernen' + }, + rows: 'Zeile', + summary: 'Inhaltsübersicht', + title: 'Tabellen-Eigenschaften', + toolbar: 'Tabelle', + widthPc: '%', + widthPx: 'Pixel', + widthUnit: 'Breiteneinheit' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/de.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/de.js new file mode 100644 index 0000000000..cfbb135b6c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/de.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'de', { + border: 'Rahmengröße', + caption: 'Überschrift', + cell: { + menu: 'Zelle', + insertBefore: 'Zelle davor einfügen', + insertAfter: 'Zelle danach einfügen', + deleteCell: 'Zelle löschen', + merge: 'Zellen verbinden', + mergeRight: 'Nach rechts verbinden', + mergeDown: 'Nach unten verbinden', + splitHorizontal: 'Zelle horizontal teilen', + splitVertical: 'Zelle vertikal teilen', + title: 'Zelleneigenschaften', + cellType: 'Zellart', + rowSpan: 'Anzahl Zeilen verbinden', + colSpan: 'Anzahl Spalten verbinden', + wordWrap: 'Zeilenumbruch', + hAlign: 'Horizontale Ausrichtung', + vAlign: 'Vertikale Ausrichtung', + alignBaseline: 'Grundlinie', + bgColor: 'Hintergrundfarbe', + borderColor: 'Rahmenfarbe', + data: 'Daten', + header: 'Überschrift', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nein', + invalidWidth: 'Zellenbreite muss eine Zahl sein.', + invalidHeight: 'Zellenhöhe muss eine Zahl sein.', + invalidRowSpan: '"Anzahl Zeilen verbinden" muss eine Ganzzahl sein.', + invalidColSpan: '"Anzahl Spalten verbinden" muss eine Ganzzahl sein.', + chooseColor: 'Wählen' + }, + cellPad: 'Zellenabstand innen', + cellSpace: 'Zellenabstand außen', + column: { + menu: 'Spalte', + insertBefore: 'Spalte links davor einfügen', + insertAfter: 'Spalte rechts danach einfügen', + deleteColumn: 'Spalte löschen' + }, + columns: 'Spalte', + deleteTable: 'Tabelle löschen', + headers: 'Kopfzeile', + headersBoth: 'Beide', + headersColumn: 'Erste Spalte', + headersNone: 'Keine', + headersRow: 'Erste Zeile', + heightUnit: 'Höheneinheit', + invalidBorder: 'Die Rahmenbreite muß eine Zahl sein.', + invalidCellPadding: 'Der Zellenabstand innen muß eine positive Zahl sein.', + invalidCellSpacing: 'Der Zellenabstand außen muß eine positive Zahl sein.', + invalidCols: 'Die Anzahl der Spalten muß größer als 0 sein..', + invalidHeight: 'Die Tabellenbreite muß eine Zahl sein.', + invalidRows: 'Die Anzahl der Zeilen muß größer als 0 sein.', + invalidWidth: 'Die Tabellenbreite muss eine Zahl sein.', + menu: 'Tabellen-Eigenschaften', + row: { + menu: 'Zeile', + insertBefore: 'Zeile oberhalb einfügen', + insertAfter: 'Zeile unterhalb einfügen', + deleteRow: 'Zeile entfernen' + }, + rows: 'Zeile', + summary: 'Inhaltsübersicht', + title: 'Tabellen-Eigenschaften', + toolbar: 'Tabelle', + widthPc: '%', + widthPx: 'Pixel', + widthUnit: 'Breite Einheit' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/el.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/el.js new file mode 100644 index 0000000000..ce192ea434 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/el.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'el', { + border: 'Πάχος Περιγράμματος', + caption: 'Λεζάντα', + cell: { + menu: 'Κελί', + insertBefore: 'Εισαγωγή Κελιού Πριν', + insertAfter: 'Εισαγωγή Κελιού Μετά', + deleteCell: 'Διαγραφή Κελιών', + merge: 'Ενοποίηση Κελιών', + mergeRight: 'Συγχώνευση Με Δεξιά', + mergeDown: 'Συγχώνευση Με Κάτω', + splitHorizontal: 'Οριζόντια Διαίρεση Κελιού', + splitVertical: 'Κατακόρυφη Διαίρεση Κελιού', + title: 'Ιδιότητες Κελιού', + cellType: 'Τύπος Κελιού', + rowSpan: 'Εύρος Γραμμών', + colSpan: 'Εύρος Στηλών', + wordWrap: 'Αναδίπλωση Λέξεων', + hAlign: 'Οριζόντια Στοίχιση', + vAlign: 'Κάθετη Στοίχιση', + alignBaseline: 'Γραμμή Βάσης', + bgColor: 'Χρώμα Φόντου', + borderColor: 'Χρώμα Περιγράμματος', + data: 'Δεδομένα', + header: 'Κεφαλίδα', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ναι', + no: 'Όχι', + invalidWidth: 'Το πλάτος του κελιού πρέπει να είναι αριθμός.', + invalidHeight: 'Το ύψος του κελιού πρέπει να είναι αριθμός.', + invalidRowSpan: 'Το εύρος των γραμμών πρέπει να είναι ακέραιος αριθμός.', + invalidColSpan: 'Το εύρος των στηλών πρέπει να είναι ακέραιος αριθμός.', + chooseColor: 'Επιλέξτε' + }, + cellPad: 'Αναπλήρωση κελιών', + cellSpace: 'Απόσταση κελιών', + column: { + menu: 'Στήλη', + insertBefore: 'Εισαγωγή Στήλης Πριν', + insertAfter: 'Εισαγωγή Στήλης Μετά', + deleteColumn: 'Διαγραφή Στηλών' + }, + columns: 'Στήλες', + deleteTable: 'Διαγραφή Πίνακα', + headers: 'Κεφαλίδες', + headersBoth: 'Και τα δύο', + headersColumn: 'Πρώτη στήλη', + headersNone: 'Κανένα', + headersRow: 'Πρώτη Γραμμή', + heightUnit: 'μονάδα ύψους', + invalidBorder: 'Το πάχος του περιγράμματος πρέπει να είναι ένας αριθμός.', + invalidCellPadding: 'Η αναπλήρωση των κελιών πρέπει να είναι θετικός αριθμός.', + invalidCellSpacing: 'Η απόσταση μεταξύ των κελιών πρέπει να είναι ένας θετικός αριθμός.', + invalidCols: 'Ο αριθμός των στηλών πρέπει να είναι μεγαλύτερος από 0.', + invalidHeight: 'Το ύψος του πίνακα πρέπει να είναι αριθμός.', + invalidRows: 'Ο αριθμός των σειρών πρέπει να είναι μεγαλύτερος από 0.', + invalidWidth: 'Το πλάτος του πίνακα πρέπει να είναι ένας αριθμός.', + menu: 'Ιδιότητες Πίνακα', + row: { + menu: 'Γραμμή', + insertBefore: 'Εισαγωγή Γραμμής Πριν', + insertAfter: 'Εισαγωγή Γραμμής Μετά', + deleteRow: 'Διαγραφή Γραμμών' + }, + rows: 'Γραμμές', + summary: 'Περίληψη', + title: 'Ιδιότητες Πίνακα', + toolbar: 'Πίνακας', + widthPc: 'τοις εκατό', + widthPx: 'pixel', + widthUnit: 'μονάδα πλάτους' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-au.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-au.js new file mode 100644 index 0000000000..fd38ef5756 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-au.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'en-au', { + border: 'Border size', + caption: 'Caption', + cell: { + menu: 'Cell', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'Delete Cells', + merge: 'Merge Cells', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Cell padding', + cellSpace: 'Cell spacing', + column: { + menu: 'Column', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'Delete Columns' + }, + columns: 'Columns', + deleteTable: 'Delete Table', + headers: 'Headers', + headersBoth: 'Both', + headersColumn: 'First column', + headersNone: 'None', + headersRow: 'First Row', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', + invalidCellPadding: 'Cell padding must be a number.', + invalidCellSpacing: 'Cell spacing must be a number.', + invalidCols: 'Number of columns must be a number greater than 0.', + invalidHeight: 'Table height must be a number.', + invalidRows: 'Number of rows must be a number greater than 0.', + invalidWidth: 'Table width must be a number.', + menu: 'Table Properties', + row: { + menu: 'Row', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'Delete Rows' + }, + rows: 'Rows', + summary: 'Summary', + title: 'Table Properties', + toolbar: 'Table', + widthPc: 'percent', + widthPx: 'pixels', + widthUnit: 'width unit' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-ca.js new file mode 100644 index 0000000000..49290e7fdd --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-ca.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'en-ca', { + border: 'Border size', + caption: 'Caption', + cell: { + menu: 'Cell', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'Delete Cells', + merge: 'Merge Cells', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Cell padding', + cellSpace: 'Cell spacing', + column: { + menu: 'Column', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'Delete Columns' + }, + columns: 'Columns', + deleteTable: 'Delete Table', + headers: 'Headers', + headersBoth: 'Both', + headersColumn: 'First column', + headersNone: 'None', + headersRow: 'First Row', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', + invalidCellPadding: 'Cell padding must be a number.', + invalidCellSpacing: 'Cell spacing must be a number.', + invalidCols: 'Number of columns must be a number greater than 0.', + invalidHeight: 'Table height must be a number.', + invalidRows: 'Number of rows must be a number greater than 0.', + invalidWidth: 'Table width must be a number.', + menu: 'Table Properties', + row: { + menu: 'Row', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'Delete Rows' + }, + rows: 'Rows', + summary: 'Summary', + title: 'Table Properties', + toolbar: 'Table', + widthPc: 'percent', + widthPx: 'pixels', + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-gb.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-gb.js new file mode 100644 index 0000000000..27aeea0c2a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en-gb.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'en-gb', { + border: 'Border size', + caption: 'Caption', + cell: { + menu: 'Cell', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'Delete Cells', + merge: 'Merge Cells', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Cell padding', + cellSpace: 'Cell spacing', + column: { + menu: 'Column', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'Delete Columns' + }, + columns: 'Columns', + deleteTable: 'Delete Table', + headers: 'Headers', + headersBoth: 'Both', + headersColumn: 'First column', + headersNone: 'None', + headersRow: 'First Row', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', + invalidCellPadding: 'Cell padding must be a number.', + invalidCellSpacing: 'Cell spacing must be a number.', + invalidCols: 'Number of columns must be a number greater than 0.', + invalidHeight: 'Table height must be a number.', + invalidRows: 'Number of rows must be a number greater than 0.', + invalidWidth: 'Table width must be a number.', + menu: 'Table Properties', + row: { + menu: 'Row', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'Delete Rows' + }, + rows: 'Rows', + summary: 'Summary', + title: 'Table Properties', + toolbar: 'Table', + widthPc: 'percent', + widthPx: 'pixels', + widthUnit: 'width unit' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en.js new file mode 100644 index 0000000000..f26557336f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/en.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'en', { + border: 'Border size', + caption: 'Caption', + cell: { + menu: 'Cell', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'Delete Cells', + merge: 'Merge Cells', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', + rowHeader: 'Row Header', + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Cell padding', + cellSpace: 'Cell spacing', + column: { + menu: 'Column', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'Delete Columns' + }, + columns: 'Columns', + deleteTable: 'Delete Table', + headers: 'Headers', + headersBoth: 'Both', + headersColumn: 'First column', + headersNone: 'None', + headersRow: 'First Row', + heightUnit: 'height unit', + invalidBorder: 'Border size must be a number.', + invalidCellPadding: 'Cell padding must be a positive number.', + invalidCellSpacing: 'Cell spacing must be a positive number.', + invalidCols: 'Number of columns must be a number greater than 0.', + invalidHeight: 'Table height must be a number.', + invalidRows: 'Number of rows must be a number greater than 0.', + invalidWidth: 'Table width must be a number.', + menu: 'Table Properties', + row: { + menu: 'Row', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'Delete Rows' + }, + rows: 'Rows', + summary: 'Summary', + title: 'Table Properties', + toolbar: 'Table', + widthPc: 'percent', + widthPx: 'pixels', + widthUnit: 'width unit' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/eo.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/eo.js new file mode 100644 index 0000000000..9c3c1b1551 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/eo.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'eo', { + border: 'Bordero', + caption: 'Tabeltitolo', + cell: { + menu: 'Ĉelo', + insertBefore: 'Enmeti Ĉelon Antaŭ', + insertAfter: 'Enmeti Ĉelon Post', + deleteCell: 'Forigi la Ĉelojn', + merge: 'Kunfandi la Ĉelojn', + mergeRight: 'Kunfandi dekstren', + mergeDown: 'Kunfandi malsupren ', + splitHorizontal: 'Horizontale dividi', + splitVertical: 'Vertikale dividi', + title: 'Ĉelatributoj', + cellType: 'Ĉeltipo', + rowSpan: 'Kunfando de linioj', + colSpan: 'Kunfando de kolumnoj', + wordWrap: 'Cezuro', + hAlign: 'Horizontala ĝisrandigo', + vAlign: 'Vertikala ĝisrandigo', + alignBaseline: 'Malsupro de la teksto', + bgColor: 'Fonkoloro', + borderColor: 'Borderkoloro', + data: 'Datenoj', + header: 'Supra paĝotitolo', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Jes', + no: 'No', + invalidWidth: 'Ĉellarĝo devas esti nombro.', + invalidHeight: 'Ĉelalto devas esti nombro.', + invalidRowSpan: 'Kunfando de linioj devas esti entjera nombro.', + invalidColSpan: 'Kunfando de kolumnoj devas esti entjera nombro.', + chooseColor: 'Elektu' + }, + cellPad: 'Interna Marĝeno de la ĉeloj', + cellSpace: 'Spaco inter la Ĉeloj', + column: { + menu: 'Kolumno', + insertBefore: 'Enmeti kolumnon antaŭ', + insertAfter: 'Enmeti kolumnon post', + deleteColumn: 'Forigi Kolumnojn' + }, + columns: 'Kolumnoj', + deleteTable: 'Forigi Tabelon', + headers: 'Supraj Paĝotitoloj', + headersBoth: 'Ambaŭ', + headersColumn: 'Unua kolumno', + headersNone: 'Neniu', + headersRow: 'Unua linio', + heightUnit: 'height unit', // MISSING + invalidBorder: 'La bordergrando devas esti nombro.', + invalidCellPadding: 'La interna marĝeno en la ĉeloj devas esti pozitiva nombro.', + invalidCellSpacing: 'La spaco inter la ĉeloj devas esti pozitiva nombro.', + invalidCols: 'La nombro de la kolumnoj devas superi 0.', + invalidHeight: 'La tabelalto devas esti nombro.', + invalidRows: 'La nombro de la linioj devas superi 0.', + invalidWidth: 'La tabellarĝo devas esti nombro.', + menu: 'Atributoj de Tabelo', + row: { + menu: 'Linio', + insertBefore: 'Enmeti linion antaŭ', + insertAfter: 'Enmeti linion post', + deleteRow: 'Forigi Liniojn' + }, + rows: 'Linioj', + summary: 'Resumo', + title: 'Atributoj de Tabelo', + toolbar: 'Tabelo', + widthPc: 'elcentoj', + widthPx: 'Rastrumeroj', + widthUnit: 'unuo de larĝo' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/es-mx.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/es-mx.js new file mode 100644 index 0000000000..e6c69be035 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/es-mx.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'es-mx', { + border: 'Tamaño del borde', + caption: 'Subtítulo', + cell: { + menu: 'Celda', + insertBefore: 'Insertar una celda antes', + insertAfter: 'Insertar una celda despues', + deleteCell: 'Borrar celdas', + merge: 'Unir celdas', + mergeRight: 'Unir a la derecha', + mergeDown: 'Unir abajo', + splitHorizontal: 'Dividir celda horizontalmente', + splitVertical: 'Dividir celda verticalmente', + title: 'Propiedades de la celda', + cellType: 'Tipo de celda', + rowSpan: 'Extensión de las filas', + colSpan: 'Extensión de las columnas', + wordWrap: 'Ajuste de línea', + hAlign: 'Alineación horizontal', + vAlign: 'Alineación vertical', + alignBaseline: 'Base', + bgColor: 'Color de fondo', + borderColor: 'Color de borde', + data: 'Datos', + header: 'Encabezado', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Si', + no: 'No', + invalidWidth: 'El ancho de la celda debe ser un número entero.', + invalidHeight: 'El alto de la celda debe ser un número entero.', + invalidRowSpan: 'El intervalo de filas debe ser un número entero.', + invalidColSpan: 'El intervalo de columnas debe ser un número entero.', + chooseColor: 'Escoger' + }, + cellPad: 'relleno de celda', + cellSpace: 'Espacio de celda', + column: { + menu: 'Columna', + insertBefore: 'Insertar columna antes', + insertAfter: 'Insertar columna después', + deleteColumn: 'Borrar columnas' + }, + columns: 'Columnas', + deleteTable: 'Borrar tabla', + headers: 'Encabezados', + headersBoth: 'Ambos', + headersColumn: 'Primera columna', + headersNone: 'Ninguna', + headersRow: 'Primera fila', + heightUnit: 'height unit', // MISSING + invalidBorder: 'El tamaño del borde debe ser un número entero.', + invalidCellPadding: 'El relleno de la celda debe ser un número positivo.', + invalidCellSpacing: 'El espacio de la celda debe ser un número positivo.', + invalidCols: 'El número de columnas debe ser un número mayo que 0.', + invalidHeight: 'La altura de la tabla debe ser un número.', + invalidRows: 'El número de filas debe ser mayor a 0.', + invalidWidth: 'El ancho de la tabla debe ser un número.', + menu: 'Propiedades de la tabla', + row: { + menu: 'Fila', + insertBefore: 'Inserta una fila antes', + insertAfter: 'Inserta una fila después', + deleteRow: 'Borrar filas' + }, + rows: 'Filas', + summary: 'Resumen', + title: 'Propiedades de la tabla', + toolbar: 'Tabla', + widthPc: 'porcentaje', + widthPx: 'pixeles', + widthUnit: 'Unidad de ancho' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/es.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/es.js new file mode 100644 index 0000000000..6e10a54e6b --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/es.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'es', { + border: 'Tamaño de Borde', + caption: 'Título', + cell: { + menu: 'Celda', + insertBefore: 'Insertar celda a la izquierda', + insertAfter: 'Insertar celda a la derecha', + deleteCell: 'Eliminar Celdas', + merge: 'Combinar Celdas', + mergeRight: 'Combinar a la derecha', + mergeDown: 'Combinar hacia abajo', + splitHorizontal: 'Dividir la celda horizontalmente', + splitVertical: 'Dividir la celda verticalmente', + title: 'Propiedades de celda', + cellType: 'Tipo de Celda', + rowSpan: 'Expandir filas', + colSpan: 'Expandir columnas', + wordWrap: 'Ajustar al contenido', + hAlign: 'Alineación Horizontal', + vAlign: 'Alineación Vertical', + alignBaseline: 'Linea de base', + bgColor: 'Color de fondo', + borderColor: 'Color de borde', + data: 'Datos', + header: 'Encabezado', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Sí', + no: 'No', + invalidWidth: 'La anchura de celda debe ser un número.', + invalidHeight: 'La altura de celda debe ser un número.', + invalidRowSpan: 'La expansión de filas debe ser un número entero.', + invalidColSpan: 'La expansión de columnas debe ser un número entero.', + chooseColor: 'Elegir' + }, + cellPad: 'Esp. interior', + cellSpace: 'Esp. e/celdas', + column: { + menu: 'Columna', + insertBefore: 'Insertar columna a la izquierda', + insertAfter: 'Insertar columna a la derecha', + deleteColumn: 'Eliminar Columnas' + }, + columns: 'Columnas', + deleteTable: 'Eliminar Tabla', + headers: 'Encabezados', + headersBoth: 'Ambas', + headersColumn: 'Primera columna', + headersNone: 'Ninguno', + headersRow: 'Primera fila', + heightUnit: 'height unit', // MISSING + invalidBorder: 'El tamaño del borde debe ser un número.', + invalidCellPadding: 'El espaciado interior debe ser un número.', + invalidCellSpacing: 'El espaciado entre celdas debe ser un número.', + invalidCols: 'El número de columnas debe ser un número mayor que 0.', + invalidHeight: 'La altura de tabla debe ser un número.', + invalidRows: 'El número de filas debe ser un número mayor que 0.', + invalidWidth: 'La anchura de tabla debe ser un número.', + menu: 'Propiedades de Tabla', + row: { + menu: 'Fila', + insertBefore: 'Insertar fila en la parte superior', + insertAfter: 'Insertar fila en la parte inferior', + deleteRow: 'Eliminar Filas' + }, + rows: 'Filas', + summary: 'Síntesis', + title: 'Propiedades de Tabla', + toolbar: 'Tabla', + widthPc: 'porcentaje', + widthPx: 'pixeles', + widthUnit: 'unidad de la anchura' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/et.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/et.js new file mode 100644 index 0000000000..66e65de50f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/et.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'et', { + border: 'Joone suurus', + caption: 'Tabeli tiitel', + cell: { + menu: 'Lahter', + insertBefore: 'Sisesta lahter enne', + insertAfter: 'Sisesta lahter peale', + deleteCell: 'Eemalda lahtrid', + merge: 'Ühenda lahtrid', + mergeRight: 'Ühenda paremale', + mergeDown: 'Ühenda alla', + splitHorizontal: 'Poolita lahter horisontaalselt', + splitVertical: 'Poolita lahter vertikaalselt', + title: 'Lahtri omadused', + cellType: 'Lahtri liik', + rowSpan: 'Ridade vahe', + colSpan: 'Tulpade vahe', + wordWrap: 'Sõnade murdmine', + hAlign: 'Horisontaalne joondus', + vAlign: 'Vertikaalne joondus', + alignBaseline: 'Baasjoon', + bgColor: 'Tausta värv', + borderColor: 'Äärise värv', + data: 'Andmed', + header: 'Päis', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Jah', + no: 'Ei', + invalidWidth: 'Lahtri laius peab olema number.', + invalidHeight: 'Lahtri kõrgus peab olema number.', + invalidRowSpan: 'Ridade vahe peab olema täisarv.', + invalidColSpan: 'Tulpade vahe peab olema täisarv.', + chooseColor: 'Vali' + }, + cellPad: 'Lahtri täidis', + cellSpace: 'Lahtri vahe', + column: { + menu: 'Veerg', + insertBefore: 'Sisesta veerg enne', + insertAfter: 'Sisesta veerg peale', + deleteColumn: 'Eemalda veerud' + }, + columns: 'Veerud', + deleteTable: 'Kustuta tabel', + headers: 'Päised', + headersBoth: 'Mõlemad', + headersColumn: 'Esimene tulp', + headersNone: 'Puudub', + headersRow: 'Esimene rida', + heightUnit: 'kõrgusühik', + invalidBorder: 'Äärise suurus peab olema number.', + invalidCellPadding: 'Lahtrite polsterdus (padding) peab olema positiivne arv.', + invalidCellSpacing: 'Lahtrite vahe peab olema positiivne arv.', + invalidCols: 'Tulpade arv peab olema nullist suurem.', + invalidHeight: 'Tabeli kõrgus peab olema number.', + invalidRows: 'Ridade arv peab olema nullist suurem.', + invalidWidth: 'Tabeli laius peab olema number.', + menu: 'Tabeli omadused', + row: { + menu: 'Rida', + insertBefore: 'Sisesta rida enne', + insertAfter: 'Sisesta rida peale', + deleteRow: 'Eemalda read' + }, + rows: 'Read', + summary: 'Kokkuvõte', + title: 'Tabeli omadused', + toolbar: 'Tabel', + widthPc: 'protsenti', + widthPx: 'pikslit', + widthUnit: 'laiuse ühik' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/eu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/eu.js new file mode 100644 index 0000000000..54b57480ea --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/eu.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'eu', { + border: 'Ertzaren zabalera', + caption: 'Epigrafea', + cell: { + menu: 'Gelaxka', + insertBefore: 'Txertatu gelaxka aurretik', + insertAfter: 'Txertatu gelaxka ondoren', + deleteCell: 'Ezabatu gelaxkak', + merge: 'Batu gelaxkak', + mergeRight: 'Batu eskuinetara', + mergeDown: 'Batu behera', + splitHorizontal: 'Banatu gelaxka horizontalki', + splitVertical: 'Banatu gelaxka bertikalki', + title: 'Gelaxkaren propietateak', + cellType: 'Gelaxka-mota', + rowSpan: 'Errenkaden hedadura', + colSpan: 'Zutabeen hedadura', + wordWrap: 'Itzulbira', + hAlign: 'Lerrokatze horizontala', + vAlign: 'Lerrokatze bertikala', + alignBaseline: 'Oinarri-lerroan', + bgColor: 'Atzeko planoaren kolorea', + borderColor: 'Ertzaren kolorea', + data: 'Data', + header: 'Goiburua', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Bai', + no: 'Ez', + invalidWidth: 'Gelaxkaren zabalera zenbaki bat izan behar da.', + invalidHeight: 'Gelaxkaren altuera zenbaki bat izan behar da.', + invalidRowSpan: 'Errenkaden hedadura zenbaki osoa izan behar da.', + invalidColSpan: 'Zutabeen hedadura zenbaki osoa izan behar da.', + chooseColor: 'Aukeratu' + }, + cellPad: 'Gelaxken betegarria', + cellSpace: 'Gelaxka arteko tartea', + column: { + menu: 'Zutabea', + insertBefore: 'Txertatu zutabea aurretik', + insertAfter: 'Txertatu zutabea ondoren', + deleteColumn: 'Ezabatu zutabeak' + }, + columns: 'Zutabeak', + deleteTable: 'Ezabatu taula', + headers: 'Goiburuak', + headersBoth: 'Biak', + headersColumn: 'Lehen zutabea', + headersNone: 'Bat ere ez', + headersRow: 'Lehen errenkada', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Ertzaren tamaina zenbaki bat izan behar da.', + invalidCellPadding: 'Gelaxken betegarria zenbaki bat izan behar da.', + invalidCellSpacing: 'Gelaxka arteko tartea zenbaki bat izan behar da.', + invalidCols: 'Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.', + invalidHeight: 'Taularen altuera zenbaki bat izan behar da.', + invalidRows: 'Errenkada kopurua 0 baino handiagoa den zenbakia izan behar da.', + invalidWidth: 'Taularen zabalera zenbaki bat izan behar da.', + menu: 'Taularen propietateak', + row: { + menu: 'Errenkada', + insertBefore: 'Txertatu errenkada aurretik', + insertAfter: 'Txertatu errenkada ondoren', + deleteRow: 'Ezabatu errenkadak' + }, + rows: 'Errenkadak', + summary: 'Laburpena', + title: 'Taularen propietateak', + toolbar: 'Taula', + widthPc: 'ehuneko', + widthPx: 'pixel', + widthUnit: 'zabalera unitatea' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fa.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fa.js new file mode 100644 index 0000000000..0c9bfeeedd --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fa.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'fa', { + border: 'اندازهٴ لبه', + caption: 'عنوان', + cell: { + menu: 'سلول', + insertBefore: 'افزودن سلول قبل از', + insertAfter: 'افزودن سلول بعد از', + deleteCell: 'حذف سلولها', + merge: 'ادغام سلولها', + mergeRight: 'ادغام به راست', + mergeDown: 'ادغام به پایین', + splitHorizontal: 'جدا کردن افقی سلول', + splitVertical: 'جدا کردن عمودی سلول', + title: 'ویژگیهای سلول', + cellType: 'نوع سلول', + rowSpan: 'محدوده ردیفها', + colSpan: 'محدوده ستونها', + wordWrap: 'شکستن کلمه', + hAlign: 'چینش افقی', + vAlign: 'چینش عمودی', + alignBaseline: 'خط مبنا', + bgColor: 'رنگ زمینه', + borderColor: 'رنگ خطوط', + data: 'اطلاعات', + header: 'سرنویس', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'بله', + no: 'خیر', + invalidWidth: 'عرض سلول باید یک عدد باشد.', + invalidHeight: 'ارتفاع سلول باید عدد باشد.', + invalidRowSpan: 'مقدار محدوده ردیفها باید یک عدد باشد.', + invalidColSpan: 'مقدار محدوده ستونها باید یک عدد باشد.', + chooseColor: 'انتخاب' + }, + cellPad: 'فاصلهٴ پرشده در سلول', + cellSpace: 'فاصلهٴ میان سلولها', + column: { + menu: 'ستون', + insertBefore: 'افزودن ستون قبل از', + insertAfter: 'افزودن ستون بعد از', + deleteColumn: 'حذف ستونها' + }, + columns: 'ستونها', + deleteTable: 'پاک کردن جدول', + headers: 'سرنویسها', + headersBoth: 'هردو', + headersColumn: 'اولین ستون', + headersNone: 'هیچ', + headersRow: 'اولین ردیف', + heightUnit: 'واحد ارتفاع', + invalidBorder: 'مقدار اندازه خطوط باید یک عدد باشد.', + invalidCellPadding: 'بالشتک سلول باید یک عدد باشد.', + invalidCellSpacing: 'مقدار فاصلهگذاری سلول باید یک عدد باشد.', + invalidCols: 'تعداد ستونها باید یک عدد بزرگتر از 0 باشد.', + invalidHeight: 'مقدار ارتفاع جدول باید یک عدد باشد.', + invalidRows: 'تعداد ردیفها باید یک عدد بزرگتر از 0 باشد.', + invalidWidth: 'مقدار پهنای جدول باید یک عدد باشد.', + menu: 'ویژگیهای جدول', + row: { + menu: 'سطر', + insertBefore: 'افزودن سطر قبل از', + insertAfter: 'افزودن سطر بعد از', + deleteRow: 'حذف سطرها' + }, + rows: 'سطرها', + summary: 'خلاصه', + title: 'ویژگیهای جدول', + toolbar: 'جدول', + widthPc: 'درصد', + widthPx: 'پیکسل', + widthUnit: 'واحد پهنا' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fi.js new file mode 100644 index 0000000000..58b7ebb225 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fi.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'fi', { + border: 'Rajan paksuus', + caption: 'Otsikko', + cell: { + menu: 'Solu', + insertBefore: 'Lisää solu eteen', + insertAfter: 'Lisää solu perään', + deleteCell: 'Poista solut', + merge: 'Yhdistä solut', + mergeRight: 'Yhdistä oikealla olevan kanssa', + mergeDown: 'Yhdistä alla olevan kanssa', + splitHorizontal: 'Jaa solu vaakasuunnassa', + splitVertical: 'Jaa solu pystysuunnassa', + title: 'Solun ominaisuudet', + cellType: 'Solun tyyppi', + rowSpan: 'Rivin jatkuvuus', + colSpan: 'Solun jatkuvuus', + wordWrap: 'Rivitys', + hAlign: 'Horisontaali kohdistus', + vAlign: 'Vertikaali kohdistus', + alignBaseline: 'Alas (teksti)', + bgColor: 'Taustan väri', + borderColor: 'Reunan väri', + data: 'Data', + header: 'Ylätunniste', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Kyllä', + no: 'Ei', + invalidWidth: 'Solun leveyden täytyy olla numero.', + invalidHeight: 'Solun korkeuden täytyy olla numero.', + invalidRowSpan: 'Rivin jatkuvuuden täytyy olla kokonaisluku.', + invalidColSpan: 'Solun jatkuvuuden täytyy olla kokonaisluku.', + chooseColor: 'Valitse' + }, + cellPad: 'Solujen sisennys', + cellSpace: 'Solujen väli', + column: { + menu: 'Sarake', + insertBefore: 'Lisää sarake vasemmalle', + insertAfter: 'Lisää sarake oikealle', + deleteColumn: 'Poista sarakkeet' + }, + columns: 'Sarakkeet', + deleteTable: 'Poista taulu', + headers: 'Ylätunnisteet', + headersBoth: 'Molemmat', + headersColumn: 'Ensimmäinen sarake', + headersNone: 'Ei', + headersRow: 'Ensimmäinen rivi', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Reunan koon täytyy olla numero.', + invalidCellPadding: 'Solujen sisennyksen täytyy olla numero.', + invalidCellSpacing: 'Solujen välin täytyy olla numero.', + invalidCols: 'Sarakkeiden määrän täytyy olla suurempi kuin 0.', + invalidHeight: 'Taulun korkeuden täytyy olla numero.', + invalidRows: 'Rivien määrän täytyy olla suurempi kuin 0.', + invalidWidth: 'Taulun leveyden täytyy olla numero.', + menu: 'Taulun ominaisuudet', + row: { + menu: 'Rivi', + insertBefore: 'Lisää rivi yläpuolelle', + insertAfter: 'Lisää rivi alapuolelle', + deleteRow: 'Poista rivit' + }, + rows: 'Rivit', + summary: 'Yhteenveto', + title: 'Taulun ominaisuudet', + toolbar: 'Taulu', + widthPc: 'prosenttia', + widthPx: 'pikseliä', + widthUnit: 'leveysyksikkö' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fo.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fo.js new file mode 100644 index 0000000000..d6f2f6ae6e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fo.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'fo', { + border: 'Bordabreidd', + caption: 'Tabellfrágreiðing', + cell: { + menu: 'Meski', + insertBefore: 'Set meska inn áðrenn', + insertAfter: 'Set meska inn aftaná', + deleteCell: 'Strika meskar', + merge: 'Flætta meskar', + mergeRight: 'Flætta meskar til høgru', + mergeDown: 'Flætta saman', + splitHorizontal: 'Kloyv meska vatnrætt', + splitVertical: 'Kloyv meska loddrætt', + title: 'Mesku eginleikar', + cellType: 'Mesku slag', + rowSpan: 'Ræð spenni', + colSpan: 'Kolonnu spenni', + wordWrap: 'Orðkloyving', + hAlign: 'Horisontal plasering', + vAlign: 'Loddrøtt plasering', + alignBaseline: 'Basislinja', + bgColor: 'Bakgrundslitur', + borderColor: 'Bordalitur', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nei', + invalidWidth: 'Meskubreidd má vera eitt tal.', + invalidHeight: 'Meskuhædd má vera eitt tal.', + invalidRowSpan: 'Raðspennið má vera eitt heiltal.', + invalidColSpan: 'Kolonnuspennið má vera eitt heiltal.', + chooseColor: 'Vel' + }, + cellPad: 'Meskubreddi', + cellSpace: 'Fjarstøða millum meskar', + column: { + menu: 'Kolonna', + insertBefore: 'Set kolonnu inn áðrenn', + insertAfter: 'Set kolonnu inn aftaná', + deleteColumn: 'Strika kolonnur' + }, + columns: 'Kolonnur', + deleteTable: 'Strika tabell', + headers: 'Yvirskriftir', + headersBoth: 'Báðir', + headersColumn: 'Fyrsta kolonna', + headersNone: 'Eingin', + headersRow: 'Fyrsta rað', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Borda-stødd má vera eitt tal.', + invalidCellPadding: 'Cell padding má vera eitt tal.', + invalidCellSpacing: 'Cell spacing má vera eitt tal.', + invalidCols: 'Talið av kolonnum má vera eitt tal størri enn 0.', + invalidHeight: 'Tabell-hædd má vera eitt tal.', + invalidRows: 'Talið av røðum má vera eitt tal størri enn 0.', + invalidWidth: 'Tabell-breidd má vera eitt tal.', + menu: 'Eginleikar fyri tabell', + row: { + menu: 'Rað', + insertBefore: 'Set rað inn áðrenn', + insertAfter: 'Set rað inn aftaná', + deleteRow: 'Strika røðir' + }, + rows: 'Røðir', + summary: 'Samandráttur', + title: 'Eginleikar fyri tabell', + toolbar: 'Tabell', + widthPc: 'prosent', + widthPx: 'pixels', + widthUnit: 'breiddar unit' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fr-ca.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fr-ca.js new file mode 100644 index 0000000000..c30a6f4489 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fr-ca.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'fr-ca', { + border: 'Taille de la bordure', + caption: 'Titre', + cell: { + menu: 'Cellule', + insertBefore: 'Insérer une cellule avant', + insertAfter: 'Insérer une cellule après', + deleteCell: 'Supprimer des cellules', + merge: 'Fusionner les cellules', + mergeRight: 'Fusionner à droite', + mergeDown: 'Fusionner en bas', + splitHorizontal: 'Scinder la cellule horizontalement', + splitVertical: 'Scinder la cellule verticalement', + title: 'Propriétés de la cellule', + cellType: 'Type de cellule', + rowSpan: 'Fusion de lignes', + colSpan: 'Fusion de colonnes', + wordWrap: 'Retour à la ligne', + hAlign: 'Alignement horizontal', + vAlign: 'Alignement vertical', + alignBaseline: 'Bas du texte', + bgColor: 'Couleur d\'arrière plan', + borderColor: 'Couleur de bordure', + data: 'Données', + header: 'En-tête', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Oui', + no: 'Non', + invalidWidth: 'La largeur de cellule doit être un nombre.', + invalidHeight: 'La hauteur de cellule doit être un nombre.', + invalidRowSpan: 'La fusion de lignes doit être un nombre entier.', + invalidColSpan: 'La fusion de colonnes doit être un nombre entier.', + chooseColor: 'Sélectionner' + }, + cellPad: 'Marge interne des cellules', + cellSpace: 'Espacement des cellules', + column: { + menu: 'Colonne', + insertBefore: 'Insérer une colonne avant', + insertAfter: 'Insérer une colonne après', + deleteColumn: 'Supprimer des colonnes' + }, + columns: 'Colonnes', + deleteTable: 'Supprimer le tableau', + headers: 'En-têtes', + headersBoth: 'Les deux.', + headersColumn: 'Première colonne', + headersNone: 'Aucun', + headersRow: 'Première ligne', + heightUnit: 'height unit', // MISSING + invalidBorder: 'La taille de bordure doit être un nombre.', + invalidCellPadding: 'La marge interne des cellules doit être un nombre positif.', + invalidCellSpacing: 'L\'espacement des cellules doit être un nombre positif.', + invalidCols: 'Le nombre de colonnes doit être supérieur à 0.', + invalidHeight: 'La hauteur du tableau doit être un nombre.', + invalidRows: 'Le nombre de lignes doit être supérieur à 0.', + invalidWidth: 'La largeur du tableau doit être un nombre.', + menu: 'Propriétés du tableau', + row: { + menu: 'Ligne', + insertBefore: 'Insérer une ligne avant', + insertAfter: 'Insérer une ligne après', + deleteRow: 'Supprimer des lignes' + }, + rows: 'Lignes', + summary: 'Résumé', + title: 'Propriétés du tableau', + toolbar: 'Tableau', + widthPc: 'pourcentage', + widthPx: 'pixels', + widthUnit: 'unité de largeur' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fr.js new file mode 100644 index 0000000000..d2dcf4a1a3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/fr.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'fr', { + border: 'Taille de la bordure', + caption: 'Titre du tableau', + cell: { + menu: 'Cellule', + insertBefore: 'Insérer une cellule avant', + insertAfter: 'Insérer une cellule après', + deleteCell: 'Supprimer les cellules', + merge: 'Fusionner les cellules', + mergeRight: 'Fusionner vers la droite', + mergeDown: 'Fusionner vers le bas', + splitHorizontal: 'Scinder la cellule horizontalement', + splitVertical: 'Scinder la cellule verticalement', + title: 'Propriétés de la cellule', + cellType: 'Type de cellule', + rowSpan: 'Lignes occupées', + colSpan: 'Colonnes occupées', + wordWrap: 'Césure', + hAlign: 'Alignement horizontal', + vAlign: 'Alignement vertical', + alignBaseline: 'Ligne de base', + bgColor: 'Couleur d\'arrière-plan', + borderColor: 'Couleur de bordure', + data: 'Données', + header: 'En-tête', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Oui', + no: 'Non', + invalidWidth: 'La largeur de la cellule doit être un nombre.', + invalidHeight: 'La hauteur de la cellule doit être un nombre.', + invalidRowSpan: 'Le nombre de colonnes occupées doit être un nombre entier.', + invalidColSpan: 'Le nombre de colonnes occupées doit être un nombre entier.', + chooseColor: 'Choisir' + }, + cellPad: 'Marge interne des cellules', + cellSpace: 'Espacement entre les cellules', + column: { + menu: 'Colonne', + insertBefore: 'Insérer une colonne avant', + insertAfter: 'Insérer une colonne après', + deleteColumn: 'Supprimer les colonnes' + }, + columns: 'Colonnes', + deleteTable: 'Supprimer le tableau', + headers: 'En-têtes', + headersBoth: 'Les deux', + headersColumn: 'Première colonne', + headersNone: 'Aucun', + headersRow: 'Première ligne', + heightUnit: 'unité de hauteur', + invalidBorder: 'La taille de la bordure doit être un nombre.', + invalidCellPadding: 'La marge interne des cellules doit être un nombre positif.', + invalidCellSpacing: 'L\'espacement entre les cellules doit être un nombre positif.', + invalidCols: 'Le nombre de colonnes doit être supérieur à 0.', + invalidHeight: 'La hauteur du tableau doit être un nombre.', + invalidRows: 'Le nombre de lignes doit être supérieur à 0.', + invalidWidth: 'La largeur du tableau doit être un nombre.', + menu: 'Propriétés du tableau', + row: { + menu: 'Ligne', + insertBefore: 'Insérer une ligne avant', + insertAfter: 'Insérer une ligne après', + deleteRow: 'Supprimer les lignes' + }, + rows: 'Lignes', + summary: 'Résumé (description)', + title: 'Propriétés du tableau', + toolbar: 'Tableau', + widthPc: 'pour cent', + widthPx: 'pixels', + widthUnit: 'unité de largeur' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/gl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/gl.js new file mode 100644 index 0000000000..882c2503a7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/gl.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'gl', { + border: 'Tamaño do bordo', + caption: 'Título', + cell: { + menu: 'Cela', + insertBefore: 'Inserir a cela á esquerda', + insertAfter: 'Inserir a cela á dereita', + deleteCell: 'Eliminar celas', + merge: 'Combinar celas', + mergeRight: 'Combinar á dereita', + mergeDown: 'Combinar cara abaixo', + splitHorizontal: 'Dividir a cela en horizontal', + splitVertical: 'Dividir a cela en vertical', + title: 'Propiedades da cela', + cellType: 'Tipo de cela', + rowSpan: 'Expandir filas', + colSpan: 'Expandir columnas', + wordWrap: 'Axustar ao contido', + hAlign: 'Aliñación horizontal', + vAlign: 'Aliñación vertical', + alignBaseline: 'Liña de base', + bgColor: 'Cor do fondo', + borderColor: 'Cor do bordo', + data: 'Datos', + header: 'Cabeceira', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Si', + no: 'Non', + invalidWidth: 'O largo da cela debe ser un número.', + invalidHeight: 'O alto da cela debe ser un número.', + invalidRowSpan: 'A expansión de filas debe ser un número enteiro.', + invalidColSpan: 'A expansión de columnas debe ser un número enteiro.', + chooseColor: 'Escoller' + }, + cellPad: 'Marxe interior da cela', + cellSpace: 'Marxe entre celas', + column: { + menu: 'Columna', + insertBefore: 'Inserir a columna á esquerda', + insertAfter: 'Inserir a columna á dereita', + deleteColumn: 'Borrar Columnas' + }, + columns: 'Columnas', + deleteTable: 'Borrar Táboa', + headers: 'Cabeceiras', + headersBoth: 'Ambas', + headersColumn: 'Primeira columna', + headersNone: 'Ningún', + headersRow: 'Primeira fila', + heightUnit: 'unidade do alto', + invalidBorder: 'O tamaño do bordo debe ser un número.', + invalidCellPadding: 'A marxe interior debe ser un número positivo.', + invalidCellSpacing: 'A marxe entre celas debe ser un número positivo.', + invalidCols: 'O número de columnas debe ser un número maior que 0.', + invalidHeight: 'O alto da táboa debe ser un número.', + invalidRows: 'O número de filas debe ser un número maior que 0', + invalidWidth: 'O largo da táboa debe ser un número.', + menu: 'Propiedades da táboa', + row: { + menu: 'Fila', + insertBefore: 'Inserir a fila por riba', + insertAfter: 'Inserir a fila por baixo', + deleteRow: 'Eliminar filas' + }, + rows: 'Filas', + summary: 'Resumo', + title: 'Propiedades da táboa', + toolbar: 'Taboa', + widthPc: 'porcentaxe', + widthPx: 'píxeles', + widthUnit: 'unidade do largo' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/gu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/gu.js new file mode 100644 index 0000000000..f0eaaebf90 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/gu.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'gu', { + border: 'કોઠાની બાજુ(બોર્ડર) સાઇઝ', + caption: 'મથાળું/કૅપ્શન ', + cell: { + menu: 'કોષના ખાના', + insertBefore: 'પહેલાં કોષ ઉમેરવો', + insertAfter: 'પછી કોષ ઉમેરવો', + deleteCell: 'કોષ ડિલીટ/કાઢી નાખવો', + merge: 'કોષ ભેગા કરવા', + mergeRight: 'જમણી બાજુ ભેગા કરવા', + mergeDown: 'નીચે ભેગા કરવા', + splitHorizontal: 'કોષને સમસ્તરીય વિભાજન કરવું', + splitVertical: 'કોષને સીધું ને ઊભું વિભાજન કરવું', + title: 'સેલના ગુણ', + cellType: 'સેલનો પ્રકાર', + rowSpan: 'આડી કટારની જગ્યા', + colSpan: 'ઊભી કતારની જગ્યા', + wordWrap: 'વર્ડ રેપ', + hAlign: 'સપાટ લાઈનદોરી', + vAlign: 'ઊભી લાઈનદોરી', + alignBaseline: 'બસે લાઈન', + bgColor: 'પાછાળનો રંગ', + borderColor: 'બોર્ડેર રંગ', + data: 'સ્વીકૃત માહિતી', + header: 'મથાળું', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'હા', + no: 'ના', + invalidWidth: 'સેલની પોહલાઈ આંકડો હોવો જોઈએ.', + invalidHeight: 'સેલની ઊંચાઈ આંકડો હોવો જોઈએ.', + invalidRowSpan: 'રો સ્પાન આંકડો હોવો જોઈએ.', + invalidColSpan: 'કોલમ સ્પાન આંકડો હોવો જોઈએ.', + chooseColor: 'પસંદ કરવું' + }, + cellPad: 'સેલ પૅડિંગ', + cellSpace: 'સેલ અંતર', + column: { + menu: 'કૉલમ/ઊભી કટાર', + insertBefore: 'પહેલાં કૉલમ/ઊભી કટાર ઉમેરવી', + insertAfter: 'પછી કૉલમ/ઊભી કટાર ઉમેરવી', + deleteColumn: 'કૉલમ/ઊભી કટાર ડિલીટ/કાઢી નાખવી' + }, + columns: 'કૉલમ/ઊભી કટાર', + deleteTable: 'કોઠો ડિલીટ/કાઢી નાખવું', + headers: 'મથાળા', + headersBoth: 'બેવું', + headersColumn: 'પહેલી ઊભી કટાર', + headersNone: 'નથી ', + headersRow: 'પહેલી કટાર', + heightUnit: 'height unit', // MISSING + invalidBorder: 'બોર્ડર એક આંકડો હોવો જોઈએ', + invalidCellPadding: 'સેલની અંદરની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.', + invalidCellSpacing: 'સેલ વચ્ચેની જગ્યા સુન્ય કરતા વધારે હોવી જોઈએ.', + invalidCols: 'ઉભી કટાર, 0 કરતા વધારે હોવી જોઈએ.', + invalidHeight: 'ટેબલની ઊંચાઈ આંકડો હોવો જોઈએ.', + invalidRows: 'આડી કટાર, 0 કરતા વધારે હોવી જોઈએ.', + invalidWidth: 'ટેબલની પોહલાઈ આંકડો હોવો જોઈએ.', + menu: 'ટેબલ, કોઠાનું મથાળું', + row: { + menu: 'પંક્તિના ખાના', + insertBefore: 'પહેલાં પંક્તિ ઉમેરવી', + insertAfter: 'પછી પંક્તિ ઉમેરવી', + deleteRow: 'પંક્તિઓ ડિલીટ/કાઢી નાખવી' + }, + rows: 'પંક્તિના ખાના', + summary: 'ટૂંકો એહેવાલ', + title: 'ટેબલ, કોઠાનું મથાળું', + toolbar: 'ટેબલ, કોઠો', + widthPc: 'પ્રતિશત', + widthPx: 'પિકસલ', + widthUnit: 'પોહાલાઈ એકમ' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/he.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/he.js new file mode 100644 index 0000000000..b43343dd7a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/he.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'he', { + border: 'גודל מסגרת', + caption: 'כיתוב', + cell: { + menu: 'מאפייני תא', + insertBefore: 'הוספת תא לפני', + insertAfter: 'הוספת תא אחרי', + deleteCell: 'מחיקת תאים', + merge: 'מיזוג תאים', + mergeRight: 'מזג ימינה', + mergeDown: 'מזג למטה', + splitHorizontal: 'פיצול תא אופקית', + splitVertical: 'פיצול תא אנכית', + title: 'תכונות התא', + cellType: 'סוג התא', + rowSpan: 'מתיחת השורות', + colSpan: 'מתיחת התאים', + wordWrap: 'מניעת גלישת שורות', + hAlign: 'יישור אופקי', + vAlign: 'יישור אנכי', + alignBaseline: 'שורת בסיס', + bgColor: 'צבע רקע', + borderColor: 'צבע מסגרת', + data: 'מידע', + header: 'כותרת', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'כן', + no: 'לא', + invalidWidth: 'שדה רוחב התא חייב להיות מספר.', + invalidHeight: 'שדה גובה התא חייב להיות מספר.', + invalidRowSpan: 'שדה מתיחת השורות חייב להיות מספר שלם.', + invalidColSpan: 'שדה מתיחת העמודות חייב להיות מספר שלם.', + chooseColor: 'בחר' + }, + cellPad: 'ריפוד תא', + cellSpace: 'מרווח תא', + column: { + menu: 'עמודה', + insertBefore: 'הוספת עמודה לפני', + insertAfter: 'הוספת עמודה אחרי', + deleteColumn: 'מחיקת עמודות' + }, + columns: 'עמודות', + deleteTable: 'מחק טבלה', + headers: 'כותרות', + headersBoth: 'שניהם', + headersColumn: 'עמודה ראשונה', + headersNone: 'אין', + headersRow: 'שורה ראשונה', + heightUnit: 'height unit', // MISSING + invalidBorder: 'שדה גודל המסגרת חייב להיות מספר.', + invalidCellPadding: 'שדה ריפוד התאים חייב להיות מספר חיובי.', + invalidCellSpacing: 'שדה ריווח התאים חייב להיות מספר חיובי.', + invalidCols: 'שדה מספר העמודות חייב להיות מספר גדול מ 0.', + invalidHeight: 'שדה גובה הטבלה חייב להיות מספר.', + invalidRows: 'שדה מספר השורות חייב להיות מספר גדול מ 0.', + invalidWidth: 'שדה רוחב הטבלה חייב להיות מספר.', + menu: 'מאפייני טבלה', + row: { + menu: 'שורה', + insertBefore: 'הוספת שורה לפני', + insertAfter: 'הוספת שורה אחרי', + deleteRow: 'מחיקת שורות' + }, + rows: 'שורות', + summary: 'תקציר', + title: 'מאפייני טבלה', + toolbar: 'טבלה', + widthPc: 'אחוז', + widthPx: 'פיקסלים', + widthUnit: 'יחידת רוחב' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hi.js new file mode 100644 index 0000000000..7733e497b3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hi.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'hi', { + border: 'बॉर्डर साइज़', + caption: 'शीर्षक', + cell: { + menu: 'खाना', + insertBefore: 'पहले सैल डालें', + insertAfter: 'बाद में सैल डालें', + deleteCell: 'सैल डिलीट करें', + merge: 'सैल मिलायें', + mergeRight: 'बाँया विलय', + mergeDown: 'नीचे विलय करें', + splitHorizontal: 'सैल को क्षैतिज स्थिति में विभाजित करें', + splitVertical: 'सैल को लम्बाकार में विभाजित करें', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'सैल पैडिंग', + cellSpace: 'सैल अंतर', + column: { + menu: 'कालम', + insertBefore: 'पहले कालम डालें', + insertAfter: 'बाद में कालम डालें', + deleteColumn: 'कालम डिलीट करें' + }, + columns: 'कालम', + deleteTable: 'टेबल डिलीट करें', + headers: 'Headers', // MISSING + headersBoth: 'Both', // MISSING + headersColumn: 'First column', // MISSING + headersNone: 'None', + headersRow: 'First Row', // MISSING + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Table width must be a number.', // MISSING + menu: 'टेबल प्रॉपर्टीज़', + row: { + menu: 'पंक्ति', + insertBefore: 'पहले पंक्ति डालें', + insertAfter: 'बाद में पंक्ति डालें', + deleteRow: 'पंक्तियाँ डिलीट करें' + }, + rows: 'पंक्तियाँ', + summary: 'सारांश', + title: 'टेबल प्रॉपर्टीज़', + toolbar: 'टेबल', + widthPc: 'प्रतिशत', + widthPx: 'पिक्सैल', + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hr.js new file mode 100644 index 0000000000..471efe7bf2 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hr.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'hr', { + border: 'Veličina okvira', + caption: 'Naslov', + cell: { + menu: 'Ćelija', + insertBefore: 'Ubaci ćeliju prije', + insertAfter: 'Ubaci ćeliju poslije', + deleteCell: 'Izbriši ćelije', + merge: 'Spoji ćelije', + mergeRight: 'Spoji desno', + mergeDown: 'Spoji dolje', + splitHorizontal: 'Podijeli ćeliju vodoravno', + splitVertical: 'Podijeli ćeliju okomito', + title: 'Svojstva ćelije', + cellType: 'Vrsta ćelije', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Prelazak u novi red', + hAlign: 'Vodoravno poravnanje', + vAlign: 'Okomito poravnanje', + alignBaseline: 'Osnovna linija', + bgColor: 'Boja pozadine', + borderColor: 'Boja ruba', + data: 'Podatak', + header: 'Zaglavlje', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Da', + no: 'Ne', + invalidWidth: 'Širina ćelije mora biti broj.', + invalidHeight: 'Visina ćelije mora biti broj.', + invalidRowSpan: 'Rows span mora biti cijeli broj.', + invalidColSpan: 'Columns span mora biti cijeli broj.', + chooseColor: 'Odaberi' + }, + cellPad: 'Razmak ćelija', + cellSpace: 'Prostornost ćelija', + column: { + menu: 'Kolona', + insertBefore: 'Ubaci kolonu prije', + insertAfter: 'Ubaci kolonu poslije', + deleteColumn: 'Izbriši kolone' + }, + columns: 'Kolona', + deleteTable: 'Izbriši tablicu', + headers: 'Zaglavlje', + headersBoth: 'Oba', + headersColumn: 'Prva kolona', + headersNone: 'Ništa', + headersRow: 'Prvi red', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Debljina ruba mora biti broj.', + invalidCellPadding: 'Razmak ćelija mora biti broj.', + invalidCellSpacing: 'Prostornost ćelija mora biti broj.', + invalidCols: 'Broj kolona mora biti broj veći od 0.', + invalidHeight: 'Visina tablice mora biti broj.', + invalidRows: 'Broj redova mora biti broj veći od 0.', + invalidWidth: 'Širina tablice mora biti broj.', + menu: 'Svojstva tablice', + row: { + menu: 'Red', + insertBefore: 'Ubaci red prije', + insertAfter: 'Ubaci red poslije', + deleteRow: 'Izbriši redove' + }, + rows: 'Redova', + summary: 'Sažetak', + title: 'Svojstva tablice', + toolbar: 'Tablica', + widthPc: 'postotaka', + widthPx: 'piksela', + widthUnit: 'jedinica širine' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hu.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hu.js new file mode 100644 index 0000000000..ea3de4839e --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/hu.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'hu', { + border: 'Szegélyméret', + caption: 'Felirat', + cell: { + menu: 'Cella', + insertBefore: 'Beszúrás balra', + insertAfter: 'Beszúrás jobbra', + deleteCell: 'Cellák törlése', + merge: 'Cellák egyesítése', + mergeRight: 'Cellák egyesítése jobbra', + mergeDown: 'Cellák egyesítése lefelé', + splitHorizontal: 'Cellák szétválasztása vízszintesen', + splitVertical: 'Cellák szétválasztása függőlegesen', + title: 'Cella tulajdonságai', + cellType: 'Cella típusa', + rowSpan: 'Függőleges egyesítés', + colSpan: 'Vízszintes egyesítés', + wordWrap: 'Hosszú sorok törése', + hAlign: 'Vízszintes igazítás', + vAlign: 'Függőleges igazítás', + alignBaseline: 'Alapvonalra', + bgColor: 'Háttér színe', + borderColor: 'Keret színe', + data: 'Adat', + header: 'Fejléc', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Igen', + no: 'Nem', + invalidWidth: 'A szélesség mezőbe csak számokat írhat.', + invalidHeight: 'A magasság mezőbe csak számokat írhat.', + invalidRowSpan: 'A függőleges egyesítés mezőbe csak számokat írhat.', + invalidColSpan: 'A vízszintes egyesítés mezőbe csak számokat írhat.', + chooseColor: 'Válasszon' + }, + cellPad: 'Cella belső margó', + cellSpace: 'Cella térköz', + column: { + menu: 'Oszlop', + insertBefore: 'Beszúrás balra', + insertAfter: 'Beszúrás jobbra', + deleteColumn: 'Oszlopok törlése' + }, + columns: 'Oszlopok', + deleteTable: 'Táblázat törlése', + headers: 'Fejlécek', + headersBoth: 'Mindkettő', + headersColumn: 'Első oszlop', + headersNone: 'Nincsenek', + headersRow: 'Első sor', + heightUnit: 'Magasság egység', + invalidBorder: 'A szegélyméret mezőbe csak számokat írhat.', + invalidCellPadding: 'A cella belső margó mezőbe csak számokat írhat.', + invalidCellSpacing: 'A cella térköz mezőbe csak számokat írhat.', + invalidCols: 'Az oszlopok számának nagyobbnak kell lenni mint 0.', + invalidHeight: 'A magasság mezőbe csak számokat írhat.', + invalidRows: 'A sorok számának nagyobbnak kell lenni mint 0.', + invalidWidth: 'A szélesség mezőbe csak számokat írhat.', + menu: 'Táblázat tulajdonságai', + row: { + menu: 'Sor', + insertBefore: 'Beszúrás fölé', + insertAfter: 'Beszúrás alá', + deleteRow: 'Sorok törlése' + }, + rows: 'Sorok', + summary: 'Leírás', + title: 'Táblázat tulajdonságai', + toolbar: 'Táblázat', + widthPc: 'százalék', + widthPx: 'képpont', + widthUnit: 'Szélesség egység' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/id.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/id.js new file mode 100644 index 0000000000..c184079cbc --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/id.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'id', { + border: 'Ukuran batas', + caption: 'Judul halaman', + cell: { + menu: 'Sel', + insertBefore: 'Sisip Sel Sebelum', + insertAfter: 'Sisip Sel Setelah', + deleteCell: 'Hapus Sel', + merge: 'Gabungkan Sel', + mergeRight: 'Gabungkan ke Kanan', + mergeDown: 'Gabungkan ke Bawah', + splitHorizontal: 'Pisahkan Sel Secara Horisontal', + splitVertical: 'Pisahkan Sel Secara Vertikal', + title: 'Properti Sel', + cellType: 'Tipe Sel', + rowSpan: 'Rentang antar baris', + colSpan: 'Rentang antar kolom', + wordWrap: 'Word Wrap', + hAlign: 'Jajaran Horisontal', + vAlign: 'Jajaran Vertikal', + alignBaseline: 'Dasar', + bgColor: 'Warna Latar Belakang', + borderColor: 'Warna Batasan', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ya', + no: 'Tidak', + invalidWidth: 'Lebar sel harus sebuah angka.', + invalidHeight: 'Tinggi sel harus sebuah angka', + invalidRowSpan: 'Rentang antar baris harus angka seluruhnya.', + invalidColSpan: 'Rentang antar kolom harus angka seluruhnya', + chooseColor: 'Pilih' + }, + cellPad: 'Sel spasi dalam', + cellSpace: 'Spasi antar sel', + column: { + menu: 'Kolom', + insertBefore: 'Sisip Kolom Sebelum', + insertAfter: 'Sisip Kolom Sesudah', + deleteColumn: 'Hapus Kolom' + }, + columns: 'Kolom', + deleteTable: 'Hapus Tabel', + headers: 'Headers', + headersBoth: 'Keduanya', + headersColumn: 'Kolom pertama', + headersNone: 'Tidak ada', + headersRow: 'Baris Pertama', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Ukuran batasan harus sebuah angka', + invalidCellPadding: '\'Spasi dalam\' sel harus angka positif.', + invalidCellSpacing: 'Spasi antar sel harus angka positif.', + invalidCols: 'Jumlah kolom harus sebuah angka lebih besar dari 0', + invalidHeight: 'Tinggi tabel harus sebuah angka.', + invalidRows: 'Jumlah barus harus sebuah angka dan lebih besar dari 0.', + invalidWidth: 'Lebar tabel harus sebuah angka.', + menu: 'Properti Tabel', + row: { + menu: 'Baris', + insertBefore: 'Sisip Baris Sebelum', + insertAfter: 'Sisip Baris Sesudah', + deleteRow: 'Hapus Baris' + }, + rows: 'Baris', + summary: 'Intisari', + title: 'Properti Tabel', + toolbar: 'Tabe', + widthPc: 'persen', + widthPx: 'piksel', + widthUnit: 'lebar satuan' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/is.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/is.js new file mode 100644 index 0000000000..5c22e8a992 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/is.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'is', { + border: 'Breidd ramma', + caption: 'Titill', + cell: { + menu: 'Reitur', + insertBefore: 'Skjóta inn reiti fyrir aftan', + insertAfter: 'Skjóta inn reiti fyrir framan', + deleteCell: 'Fella reit', + merge: 'Sameina reiti', + mergeRight: 'Sameina til hægri', + mergeDown: 'Sameina niður á við', + splitHorizontal: 'Kljúfa reit lárétt', + splitVertical: 'Kljúfa reit lóðrétt', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Reitaspássía', + cellSpace: 'Bil milli reita', + column: { + menu: 'Dálkur', + insertBefore: 'Skjóta inn dálki vinstra megin', + insertAfter: 'Skjóta inn dálki hægra megin', + deleteColumn: 'Fella dálk' + }, + columns: 'Dálkar', + deleteTable: 'Fella töflu', + headers: 'Fyrirsagnir', + headersBoth: 'Hvort tveggja', + headersColumn: 'Fyrsti dálkur', + headersNone: 'Engar', + headersRow: 'Fyrsta röð', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Table width must be a number.', // MISSING + menu: 'Eigindi töflu', + row: { + menu: 'Röð', + insertBefore: 'Skjóta inn röð fyrir ofan', + insertAfter: 'Skjóta inn röð fyrir neðan', + deleteRow: 'Eyða röð' + }, + rows: 'Raðir', + summary: 'Áfram', + title: 'Eigindi töflu', + toolbar: 'Tafla', + widthPc: 'prósent', + widthPx: 'myndeindir', + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/it.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/it.js new file mode 100644 index 0000000000..6b2b9e14cd --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/it.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'it', { + border: 'Dimensione bordo', + caption: 'Intestazione', + cell: { + menu: 'Cella', + insertBefore: 'Inserisci Cella Prima', + insertAfter: 'Inserisci Cella Dopo', + deleteCell: 'Elimina celle', + merge: 'Unisce celle', + mergeRight: 'Unisci a Destra', + mergeDown: 'Unisci in Basso', + splitHorizontal: 'Dividi Cella Orizzontalmente', + splitVertical: 'Dividi Cella Verticalmente', + title: 'Proprietà della cella', + cellType: 'Tipo di cella', + rowSpan: 'Su più righe', + colSpan: 'Su più colonne', + wordWrap: 'Ritorno a capo', + hAlign: 'Allineamento orizzontale', + vAlign: 'Allineamento verticale', + alignBaseline: 'Linea Base', + bgColor: 'Colore di Sfondo', + borderColor: 'Colore del Bordo', + data: 'Dati', + header: 'Intestazione', + columnHeader: 'Intestazione colonna', + rowHeader: 'Intestazione riga', + yes: 'Si', + no: 'No', + invalidWidth: 'La larghezza della cella dev\'essere un numero.', + invalidHeight: 'L\'altezza della cella dev\'essere un numero.', + invalidRowSpan: 'Il numero di righe dev\'essere un numero intero.', + invalidColSpan: 'Il numero di colonne dev\'essere un numero intero.', + chooseColor: 'Scegli' + }, + cellPad: 'Padding celle', + cellSpace: 'Spaziatura celle', + column: { + menu: 'Colonna', + insertBefore: 'Inserisci Colonna Prima', + insertAfter: 'Inserisci Colonna Dopo', + deleteColumn: 'Elimina colonne' + }, + columns: 'Colonne', + deleteTable: 'Cancella Tabella', + headers: 'Intestazione', + headersBoth: 'Entrambe', + headersColumn: 'Prima Colonna', + headersNone: 'Nessuna', + headersRow: 'Prima Riga', + heightUnit: 'unità altezza', + invalidBorder: 'La dimensione del bordo dev\'essere un numero.', + invalidCellPadding: 'Il paging delle celle dev\'essere un numero', + invalidCellSpacing: 'La spaziatura tra le celle dev\'essere un numero.', + invalidCols: 'Il numero di colonne dev\'essere un numero maggiore di 0.', + invalidHeight: 'L\'altezza della tabella dev\'essere un numero.', + invalidRows: 'Il numero di righe dev\'essere un numero maggiore di 0.', + invalidWidth: 'La larghezza della tabella dev\'essere un numero.', + menu: 'Proprietà tabella', + row: { + menu: 'Riga', + insertBefore: 'Inserisci Riga Prima', + insertAfter: 'Inserisci Riga Dopo', + deleteRow: 'Elimina righe' + }, + rows: 'Righe', + summary: 'Indice', + title: 'Proprietà tabella', + toolbar: 'Tabella', + widthPc: 'percento', + widthPx: 'pixel', + widthUnit: 'unità larghezza' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ja.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ja.js new file mode 100644 index 0000000000..53711d1998 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ja.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ja', { + border: '枠線の幅', + caption: 'キャプション', + cell: { + menu: 'セル', + insertBefore: 'セルを前に挿入', + insertAfter: 'セルを後に挿入', + deleteCell: 'セルを削除', + merge: 'セルを結合', + mergeRight: '右に結合', + mergeDown: '下に結合', + splitHorizontal: 'セルを水平方向に分割', + splitVertical: 'セルを垂直方向に分割', + title: 'セルのプロパティ', + cellType: 'セルの種類', + rowSpan: '行の結合数', + colSpan: '列の結合数', + wordWrap: '単語の折り返し', + hAlign: '水平方向の配置', + vAlign: '垂直方向の配置', + alignBaseline: 'ベースライン', + bgColor: '背景色', + borderColor: 'ボーダーカラー', + data: 'テーブルデータ (td)', + header: 'ヘッダ', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'はい', + no: 'いいえ', + invalidWidth: 'セル幅は数値で入力してください。', + invalidHeight: 'セル高さは数値で入力してください。', + invalidRowSpan: '縦幅(行数)は数値で入力してください。', + invalidColSpan: '横幅(列数)は数値で入力してください。', + chooseColor: '色の選択' + }, + cellPad: 'セル内間隔', + cellSpace: 'セル内余白', + column: { + menu: '列', + insertBefore: '列を左に挿入', + insertAfter: '列を右に挿入', + deleteColumn: '列を削除' + }, + columns: '列数', + deleteTable: '表を削除', + headers: 'ヘッダ (th)', + headersBoth: '両方', + headersColumn: '最初の列のみ', + headersNone: 'なし', + headersRow: '最初の行のみ', + heightUnit: 'height unit', // MISSING + invalidBorder: '枠線の幅は数値で入力してください。', + invalidCellPadding: 'セル内余白は数値で入力してください。', + invalidCellSpacing: 'セル間余白は数値で入力してください。', + invalidCols: '列数は0より大きな数値を入力してください。', + invalidHeight: '高さは数値で入力してください。', + invalidRows: '行数は0より大きな数値を入力してください。', + invalidWidth: '幅は数値で入力してください。', + menu: '表のプロパティ', + row: { + menu: '行', + insertBefore: '行を上に挿入', + insertAfter: '行を下に挿入', + deleteRow: '行を削除' + }, + rows: '行数', + summary: '表の概要', + title: '表のプロパティ', + toolbar: '表', + widthPc: 'パーセント', + widthPx: 'ピクセル', + widthUnit: '幅の単位' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ka.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ka.js new file mode 100644 index 0000000000..5e0e6c615d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ka.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ka', { + border: 'ჩარჩოს ზომა', + caption: 'სათაური', + cell: { + menu: 'უჯრა', + insertBefore: 'უჯრის ჩასმა მანამდე', + insertAfter: 'უჯრის ჩასმა მერე', + deleteCell: 'უჯრების წაშლა', + merge: 'უჯრების შეერთება', + mergeRight: 'შეერთება მარჯვენასთან', + mergeDown: 'შეერთება ქვემოთასთან', + splitHorizontal: 'გაყოფა ჰორიზონტალურად', + splitVertical: 'გაყოფა ვერტიკალურად', + title: 'უჯრის პარამეტრები', + cellType: 'უჯრის ტიპი', + rowSpan: 'სტრიქონების ოდენობა', + colSpan: 'სვეტების ოდენობა', + wordWrap: 'სტრიქონის გადატანა (Word Wrap)', + hAlign: 'ჰორიზონტალური სწორება', + vAlign: 'ვერტიკალური სწორება', + alignBaseline: 'ძირითადი ხაზის გასწვრივ', + bgColor: 'ფონის ფერი', + borderColor: 'ჩარჩოს ფერი', + data: 'მონაცემები', + header: 'სათაური', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'დიახ', + no: 'არა', + invalidWidth: 'უჯრის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.', + invalidHeight: 'უჯრის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.', + invalidRowSpan: 'სტრიქონების რაოდენობა მთელი რიცხვი უნდა იყოს.', + invalidColSpan: 'სვეტების რაოდენობა მთელი რიცხვი უნდა იყოს.', + chooseColor: 'არჩევა' + }, + cellPad: 'უჯრის კიდე (padding)', + cellSpace: 'უჯრის სივრცე (spacing)', + column: { + menu: 'სვეტი', + insertBefore: 'სვეტის ჩამატება წინ', + insertAfter: 'სვეტის ჩამატება მერე', + deleteColumn: 'სვეტების წაშლა' + }, + columns: 'სვეტი', + deleteTable: 'ცხრილის წაშლა', + headers: 'სათაურები', + headersBoth: 'ორივე', + headersColumn: 'პირველი სვეტი', + headersNone: 'არაფერი', + headersRow: 'პირველი სტრიქონი', + heightUnit: 'height unit', // MISSING + invalidBorder: 'ჩარჩოს ზომა რიცხვით უდნა იყოს წარმოდგენილი.', + invalidCellPadding: 'უჯრის კიდე (padding) რიცხვით უნდა იყოს წარმოდგენილი.', + invalidCellSpacing: 'უჯრის სივრცე (spacing) რიცხვით უნდა იყოს წარმოდგენილი.', + invalidCols: 'სვეტების რაოდენობა დადებითი რიცხვი უნდა იყოს.', + invalidHeight: 'ცხრილის სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.', + invalidRows: 'სტრიქონების რაოდენობა დადებითი რიცხვი უნდა იყოს.', + invalidWidth: 'ცხრილის სიგანე რიცხვით უნდა იყოს წარმოდგენილი.', + menu: 'ცხრილის პარამეტრები', + row: { + menu: 'სტრიქონი', + insertBefore: 'სტრიქონის ჩამატება წინ', + insertAfter: 'სტრიქონის ჩამატება მერე', + deleteRow: 'სტრიქონების წაშლა' + }, + rows: 'სტრიქონი', + summary: 'შეჯამება', + title: 'ცხრილის პარამეტრები', + toolbar: 'ცხრილი', + widthPc: 'პროცენტი', + widthPx: 'წერტილი', + widthUnit: 'საზომი ერთეული' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/km.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/km.js new file mode 100644 index 0000000000..4f48da0d67 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/km.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'km', { + border: 'ទំហំ​បន្ទាត់​ស៊ុម', + caption: 'ចំណងជើង', + cell: { + menu: 'ក្រឡា', + insertBefore: 'បញ្ចូល​ក្រឡា​ពីមុខ', + insertAfter: 'បញ្ចូល​ក្រឡា​ពី​ក្រោយ', + deleteCell: 'លុប​ក្រឡា', + merge: 'បញ្ចូល​ក្រឡា​ចូល​គ្នា', + mergeRight: 'បញ្ចូល​គ្នា​ខាង​ស្ដាំ', + mergeDown: 'បញ្ចូល​គ្នា​ចុះ​ក្រោម', + splitHorizontal: 'ពុះ​ក្រឡា​ផ្ដេក', + splitVertical: 'ពុះ​ក្រឡា​បញ្ឈរ', + title: 'លក្ខណៈ​ក្រឡា', + cellType: 'ប្រភេទ​ក្រឡា', + rowSpan: 'ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា', + colSpan: 'ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា', + wordWrap: 'រុំ​ពាក្យ', + hAlign: 'ការ​តម្រឹម​ផ្ដេក', + vAlign: 'ការ​តម្រឹម​បញ្ឈរ', + alignBaseline: 'ខ្សែ​បន្ទាត់​គោល', + bgColor: 'ពណ៌​ផ្ទៃ​ក្រោយ', + borderColor: 'ពណ៌​បន្ទាត់​ស៊ុម', + data: 'ទិន្នន័យ', + header: 'ក្បាល', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'ព្រម', + no: 'ទេ', + invalidWidth: 'ទទឹង​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។', + invalidHeight: 'កម្ពស់​ក្រឡា​ត្រូវ​តែ​ជា​លេខ។', + invalidRowSpan: 'ចំនួន​ជួរ​ដេក​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។', + invalidColSpan: 'ចំនួន​ជួរ​ឈរ​លាយ​ចូល​គ្នា​ត្រូវ​តែ​ជា​លេខ​ទាំង​អស់។', + chooseColor: 'រើស' + }, + cellPad: 'ចន្លោះ​ក្រឡា', + cellSpace: 'គម្លាត​ក្រឡា', + column: { + menu: 'ជួរ​ឈរ', + insertBefore: 'បញ្ចូល​ជួរ​ឈរ​ពីមុខ', + insertAfter: 'បញ្ចូល​ជួរ​ឈរ​ពី​ក្រោយ', + deleteColumn: 'លុប​ជួរ​ឈរ' + }, + columns: 'ជួរឈរ', + deleteTable: 'លុប​តារាង', + headers: 'ក្បាល', + headersBoth: 'ទាំង​ពីរ', + headersColumn: 'ជួរ​ឈរ​ដំបូង', + headersNone: 'មិន​មាន', + headersRow: 'ជួរ​ដេក​ដំបូង', + heightUnit: 'height unit', // MISSING + invalidBorder: 'ទំហំ​បន្ទាត់​ស៊ុម​ត្រូវ​តែ​ជា​លេខ។', + invalidCellPadding: 'ចន្លោះ​ក្រឡា​ត្រូវ​តែជា​លេខ​វិជ្ជមាន។', + invalidCellSpacing: 'គម្លាត​ក្រឡា​ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន។', + invalidCols: 'ចំនួន​ជួរ​ឈរ​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។', + invalidHeight: 'កម្ពស់​តារាង​ត្រូវ​តែ​ជា​លេខ', + invalidRows: 'ចំនួន​ជួរ​ដេក​ត្រូវ​តែ​ជា​លេខ​ធំ​ជាង 0។', + invalidWidth: 'ទទឹង​តារាង​ត្រូវ​តែ​ជា​លេខ។', + menu: 'លក្ខណៈ​តារាង', + row: { + menu: 'ជួរ​ដេក', + insertBefore: 'បញ្ចូល​ជួរ​ដេក​ពីមុខ', + insertAfter: 'បញ្ចូល​ជួរ​ដេក​ពី​ក្រោយ', + deleteRow: 'លុប​ជួរ​ដេក' + }, + rows: 'ជួរ​ដេក', + summary: 'សេចក្តី​សង្ខេប', + title: 'លក្ខណៈ​តារាង', + toolbar: 'តារាង', + widthPc: 'ភាគរយ', + widthPx: 'ភីកសែល', + widthUnit: 'ឯកតា​ទទឹង' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ko.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ko.js new file mode 100644 index 0000000000..4a02d6a51a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ko.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ko', { + border: '테두리 두께', + caption: '주석', + cell: { + menu: '셀', + insertBefore: '앞에 셀 삽입', + insertAfter: '뒤에 셀 삽입', + deleteCell: '셀 삭제', + merge: '셀 합치기', + mergeRight: '오른쪽 합치기', + mergeDown: '왼쪽 합치기', + splitHorizontal: '수평 나누기', + splitVertical: '수직 나누기', + title: '셀 속성', + cellType: '셀 종류', + rowSpan: '행 간격', + colSpan: '열 간격', + wordWrap: '줄 끝 단어 줄 바꿈', + hAlign: '가로 정렬', + vAlign: '세로 정렬', + alignBaseline: '영문 글꼴 기준선', + bgColor: '배경색', + borderColor: '테두리 색', + data: '자료', + header: '머릿칸', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: '예', + no: '아니오', + invalidWidth: '셀 너비는 숫자여야 합니다.', + invalidHeight: '셀 높이는 숫자여야 합니다.', + invalidRowSpan: '행 간격은 정수여야 합니다.', + invalidColSpan: '열 간격은 정수여야 합니다.', + chooseColor: '선택' + }, + cellPad: '셀 여백', + cellSpace: '셀 간격', + column: { + menu: '열', + insertBefore: '왼쪽에 열 삽입', + insertAfter: '오른쪽에 열 삽입', + deleteColumn: '열 삭제' + }, + columns: '열', + deleteTable: '표 삭제', + headers: '머릿칸', + headersBoth: '모두', + headersColumn: '첫 열', + headersNone: '없음', + headersRow: '첫 행', + heightUnit: 'height unit', // MISSING + invalidBorder: '테두리 두께는 숫자여야 합니다.', + invalidCellPadding: '셀 여백은 0 이상이어야 합니다.', + invalidCellSpacing: '셀 간격은 0 이상이어야 합니다.', + invalidCols: '열 번호는 0보다 커야 합니다.', + invalidHeight: '표 높이는 숫자여야 합니다.', + invalidRows: '행 번호는 0보다 커야 합니다.', + invalidWidth: '표의 너비는 숫자여야 합니다.', + menu: '표 속성', + row: { + menu: '행', + insertBefore: '위에 행 삽입', + insertAfter: '아래에 행 삽입', + deleteRow: '행 삭제' + }, + rows: '행', + summary: '요약', + title: '표 속성', + toolbar: '표', + widthPc: '백분율', + widthPx: '픽셀', + widthUnit: '너비 단위' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ku.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ku.js new file mode 100644 index 0000000000..3c6c75a74d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ku.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ku', { + border: 'گەورەیی پەراوێز', + caption: 'سەردێڕ', + cell: { + menu: 'خانه', + insertBefore: 'دانانی خانه لەپێش', + insertAfter: 'دانانی خانه لەپاش', + deleteCell: 'سڕینەوەی خانه', + merge: 'تێکەڵکردنی خانە', + mergeRight: 'تێکەڵکردنی لەگەڵ ڕاست', + mergeDown: 'تێکەڵکردنی لەگەڵ خوارەوە', + splitHorizontal: 'دابەشکردنی خانەی ئاسۆیی', + splitVertical: 'دابەشکردنی خانەی ئەستونی', + title: 'خاسیەتی خانه', + cellType: 'جۆری خانه', + rowSpan: 'ماوەی نێوان ڕیز', + colSpan: 'بستی ئەستونی', + wordWrap: 'پێچانەوەی وشە', + hAlign: 'ڕیزکردنی ئاسۆیی', + vAlign: 'ڕیزکردنی ئەستونی', + alignBaseline: 'هێڵەبنەڕەت', + bgColor: 'ڕەنگی پاشبنەما', + borderColor: 'ڕەنگی پەراوێز', + data: 'داتا', + header: 'سەرپەڕه', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'بەڵێ', + no: 'نەخێر', + invalidWidth: 'پانی خانه دەبێت بەتەواوی ژماره بێت.', + invalidHeight: 'درێژی خانه بەتەواوی دەبێت ژمارە بێت.', + invalidRowSpan: 'ماوەی نێوان ڕیز بەتەواوی دەبێت ژمارە بێت.', + invalidColSpan: 'ماوەی نێوان ئەستونی بەتەواوی دەبێت ژمارە بێت.', + chooseColor: 'هەڵبژێرە' + }, + cellPad: 'بۆشایی ناوپۆش', + cellSpace: 'بۆشایی خانه', + column: { + menu: 'ئەستون', + insertBefore: 'دانانی ئەستون لەپێش', + insertAfter: 'دانانی ئەستوون لەپاش', + deleteColumn: 'سڕینەوەی ئەستوون' + }, + columns: 'ستوونەکان', + deleteTable: 'سڕینەوەی خشتە', + headers: 'سەرپەڕه', + headersBoth: 'هەردووك', + headersColumn: 'یەکەم ئەستوون', + headersNone: 'هیچ', + headersRow: 'یەکەم ڕیز', + heightUnit: 'یەکەی بەرز', + invalidBorder: 'ژمارەی پەراوێز دەبێت تەنها ژماره بێت.', + invalidCellPadding: 'ناوپۆشی خانه دەبێت ژمارەکی درووست بێت.', + invalidCellSpacing: 'بۆشایی خانه دەبێت ژمارەکی درووست بێت.', + invalidCols: 'ژمارەی ئەستوونی دەبێت گەورەتر بێت لەژمارەی 0.', + invalidHeight: 'درێژی خشته دهبێت تهنها ژماره بێت.', + invalidRows: 'ژمارەی ڕیز دەبێت گەورەتر بێت لەژمارەی 0.', + invalidWidth: 'پانی خشته دەبێت تەنها ژماره بێت.', + menu: 'خاسیەتی خشتە', + row: { + menu: 'ڕیز', + insertBefore: 'دانانی ڕیز لەپێش', + insertAfter: 'دانانی ڕیز لەپاش', + deleteRow: 'سڕینەوەی ڕیز' + }, + rows: 'ڕیز', + summary: 'کورتە', + title: 'خاسیەتی خشتە', + toolbar: 'خشتە', + widthPc: 'لەسەدا', + widthPx: 'وێنەخاڵ - پیکسل', + widthUnit: 'پانی یەکە' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/lt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/lt.js new file mode 100644 index 0000000000..8f26a91d4c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/lt.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'lt', { + border: 'Rėmelio dydis', + caption: 'Antraštė', + cell: { + menu: 'Langelis', + insertBefore: 'Įterpti langelį prieš', + insertAfter: 'Įterpti langelį po', + deleteCell: 'Šalinti langelius', + merge: 'Sujungti langelius', + mergeRight: 'Sujungti su dešine', + mergeDown: 'Sujungti su apačia', + splitHorizontal: 'Skaidyti langelį horizontaliai', + splitVertical: 'Skaidyti langelį vertikaliai', + title: 'Cell nustatymai', + cellType: 'Cell rūšis', + rowSpan: 'Eilučių Span', + colSpan: 'Stulpelių Span', + wordWrap: 'Sutraukti raides', + hAlign: 'Horizontalus lygiavimas', + vAlign: 'Vertikalus lygiavimas', + alignBaseline: 'Apatinė linija', + bgColor: 'Fono spalva', + borderColor: 'Rėmelio spalva', + data: 'Data', + header: 'Antraštė', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Taip', + no: 'Ne', + invalidWidth: 'Reikšmė turi būti skaičius.', + invalidHeight: 'Reikšmė turi būti skaičius.', + invalidRowSpan: 'Reikšmė turi būti skaičius.', + invalidColSpan: 'Reikšmė turi būti skaičius.', + chooseColor: 'Pasirinkite' + }, + cellPad: 'Tarpas nuo langelio rėmo iki teksto', + cellSpace: 'Tarpas tarp langelių', + column: { + menu: 'Stulpelis', + insertBefore: 'Įterpti stulpelį prieš', + insertAfter: 'Įterpti stulpelį po', + deleteColumn: 'Šalinti stulpelius' + }, + columns: 'Stulpeliai', + deleteTable: 'Šalinti lentelę', + headers: 'Antraštės', + headersBoth: 'Abu', + headersColumn: 'Pirmas stulpelis', + headersNone: 'Nėra', + headersRow: 'Pirma eilutė', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Reikšmė turi būti nurodyta skaičiumi.', + invalidCellPadding: 'Reikšmė turi būti nurodyta skaičiumi.', + invalidCellSpacing: 'Reikšmė turi būti nurodyta skaičiumi.', + invalidCols: 'Skaičius turi būti didesnis nei 0.', + invalidHeight: 'Reikšmė turi būti nurodyta skaičiumi.', + invalidRows: 'Skaičius turi būti didesnis nei 0.', + invalidWidth: 'Reikšmė turi būti nurodyta skaičiumi.', + menu: 'Lentelės savybės', + row: { + menu: 'Eilutė', + insertBefore: 'Įterpti eilutę prieš', + insertAfter: 'Įterpti eilutę po', + deleteRow: 'Šalinti eilutes' + }, + rows: 'Eilutės', + summary: 'Santrauka', + title: 'Lentelės savybės', + toolbar: 'Lentelė', + widthPc: 'procentais', + widthPx: 'taškais', + widthUnit: 'pločio vienetas' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/lv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/lv.js new file mode 100644 index 0000000000..95b3cf9a9d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/lv.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'lv', { + border: 'Rāmja izmērs', + caption: 'Leģenda', + cell: { + menu: 'Šūna', + insertBefore: 'Pievienot šūnu pirms', + insertAfter: 'Pievienot šūnu pēc', + deleteCell: 'Dzēst rūtiņas', + merge: 'Apvienot rūtiņas', + mergeRight: 'Apvieno pa labi', + mergeDown: 'Apvienot uz leju', + splitHorizontal: 'Sadalīt šūnu horizontāli', + splitVertical: 'Sadalīt šūnu vertikāli', + title: 'Šūnas uzstādījumi', + cellType: 'Šūnas tips', + rowSpan: 'Apvienotas rindas', + colSpan: 'Apvienotas kolonas', + wordWrap: 'Vārdu pārnese', + hAlign: 'Horizontālais novietojums', + vAlign: 'Vertikālais novietojums', + alignBaseline: 'Pamatrinda', + bgColor: 'Fona krāsa', + borderColor: 'Rāmja krāsa', + data: 'Dati', + header: 'Virsraksts', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Jā', + no: 'Nē', + invalidWidth: 'Šūnas platumam jābūt skaitlim', + invalidHeight: 'Šūnas augstumam jābūt skaitlim', + invalidRowSpan: 'Apvienojamo rindu skaitam jābūt veselam skaitlim', + invalidColSpan: 'Apvienojamo kolonu skaitam jābūt veselam skaitlim', + chooseColor: 'Izvēlēties' + }, + cellPad: 'Rūtiņu nobīde', + cellSpace: 'Rūtiņu atstatums', + column: { + menu: 'Kolonna', + insertBefore: 'Ievietot kolonu pirms', + insertAfter: 'Ievieto kolonu pēc', + deleteColumn: 'Dzēst kolonnas' + }, + columns: 'Kolonnas', + deleteTable: 'Dzēst tabulu', + headers: 'Virsraksti', + headersBoth: 'Abi', + headersColumn: 'Pirmā kolona', + headersNone: 'Nekas', + headersRow: 'Pirmā rinda', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Rāmju izmēram jābūt skaitlim', + invalidCellPadding: 'Šūnu atkāpēm jābūt pozitīvam skaitlim', + invalidCellSpacing: 'Šūnu atstarpēm jābūt pozitīvam skaitlim', + invalidCols: 'Kolonu skaitam jābūt lielākam par 0', + invalidHeight: 'Tabulas augstumam jābūt skaitlim', + invalidRows: 'Rindu skaitam jābūt lielākam par 0', + invalidWidth: 'Tabulas platumam jābūt skaitlim', + menu: 'Tabulas īpašības', + row: { + menu: 'Rinda', + insertBefore: 'Ievietot rindu pirms', + insertAfter: 'Ievietot rindu pēc', + deleteRow: 'Dzēst rindas' + }, + rows: 'Rindas', + summary: 'Anotācija', + title: 'Tabulas īpašības', + toolbar: 'Tabula', + widthPc: 'procentuāli', + widthPx: 'pikseļos', + widthUnit: 'platuma mērvienība' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/mk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/mk.js new file mode 100644 index 0000000000..72b4ebf320 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/mk.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'mk', { + border: 'Border size', // MISSING + caption: 'Caption', // MISSING + cell: { + menu: 'Cell', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'Delete Cells', + merge: 'Merge Cells', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Cell padding', // MISSING + cellSpace: 'Cell spacing', // MISSING + column: { + menu: 'Column', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'Delete Columns' + }, + columns: 'Columns', + deleteTable: 'Delete Table', // MISSING + headers: 'Headers', // MISSING + headersBoth: 'Both', // MISSING + headersColumn: 'First column', // MISSING + headersNone: 'None', + headersRow: 'First Row', // MISSING + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Table width must be a number.', // MISSING + menu: 'Table Properties', // MISSING + row: { + menu: 'Row', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'Delete Rows' + }, + rows: 'Rows', + summary: 'Summary', // MISSING + title: 'Table Properties', // MISSING + toolbar: 'Table', // MISSING + widthPc: 'percent', // MISSING + widthPx: 'pixels', // MISSING + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/mn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/mn.js new file mode 100644 index 0000000000..c9da755975 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/mn.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'mn', { + border: 'Хүрээний хэмжээ', + caption: 'Тайлбар', + cell: { + menu: 'Нүх/зай', + insertBefore: 'Нүх/зай өмнө нь оруулах', + insertAfter: 'Нүх/зай дараа нь оруулах', + deleteCell: 'Нүх устгах', + merge: 'Нүх нэгтэх', + mergeRight: 'Баруун тийш нэгтгэх', + mergeDown: 'Доош нэгтгэх', + splitHorizontal: 'Нүх/зайг босоогоор нь тусгаарлах', + splitVertical: 'Нүх/зайг хөндлөнгөөр нь тусгаарлах', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Хэвтээд тэгшлэх арга', + vAlign: 'Босоод тэгшлэх арга', + alignBaseline: 'Baseline', + bgColor: 'Дэвсгэр өнгө', + borderColor: 'Хүрээний өнгө', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Тийм', + no: 'Үгүй', + invalidWidth: 'Нүдний өргөн нь тоо байх ёстой.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Сонгох' + }, + cellPad: 'Нүх доторлох(padding)', + cellSpace: 'Нүх хоорондын зай (spacing)', + column: { + menu: 'Багана', + insertBefore: 'Багана өмнө нь оруулах', + insertAfter: 'Багана дараа нь оруулах', + deleteColumn: 'Багана устгах' + }, + columns: 'Багана', + deleteTable: 'Хүснэгт устгах', + headers: 'Headers', // MISSING + headersBoth: 'Both', // MISSING + headersColumn: 'First column', // MISSING + headersNone: 'None', + headersRow: 'First Row', // MISSING + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Хүснэгтийн өргөн нь тоо байх ёстой.', + menu: 'Хүснэгт', + row: { + menu: 'Мөр', + insertBefore: 'Мөр өмнө нь оруулах', + insertAfter: 'Мөр дараа нь оруулах', + deleteRow: 'Мөр устгах' + }, + rows: 'Мөр', + summary: 'Тайлбар', + title: 'Хүснэгт', + toolbar: 'Хүснэгт', + widthPc: 'хувь', + widthPx: 'цэг', + widthUnit: 'өргөний нэгж' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ms.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ms.js new file mode 100644 index 0000000000..c4959aa22f --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ms.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ms', { + border: 'Saiz Border', + caption: 'Keterangan', + cell: { + menu: 'Cell', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'Buangkan Sel-sel', + merge: 'Cantumkan Sel-sel', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'Tambahan Ruang Sel', + cellSpace: 'Ruangan Antara Sel', + column: { + menu: 'Column', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'Buangkan Lajur' + }, + columns: 'Jaluran', + deleteTable: 'Delete Table', // MISSING + headers: 'Headers', // MISSING + headersBoth: 'Both', // MISSING + headersColumn: 'First column', // MISSING + headersNone: 'None', + headersRow: 'First Row', // MISSING + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Table width must be a number.', // MISSING + menu: 'Ciri-ciri Jadual', + row: { + menu: 'Row', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'Buangkan Baris' + }, + rows: 'Barisan', + summary: 'Summary', // MISSING + title: 'Ciri-ciri Jadual', + toolbar: 'Jadual', + widthPc: 'peratus', + widthPx: 'piksel-piksel', + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/nb.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/nb.js new file mode 100644 index 0000000000..02deab0575 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/nb.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'nb', { + border: 'Rammestørrelse', + caption: 'Tittel', + cell: { + menu: 'Celle', + insertBefore: 'Sett inn celle før', + insertAfter: 'Sett inn celle etter', + deleteCell: 'Slett celler', + merge: 'Slå sammen celler', + mergeRight: 'Slå sammen høyre', + mergeDown: 'Slå sammen ned', + splitHorizontal: 'Del celle horisontalt', + splitVertical: 'Del celle vertikalt', + title: 'Celleegenskaper', + cellType: 'Celletype', + rowSpan: 'Radspenn', + colSpan: 'Kolonnespenn', + wordWrap: 'Tekstbrytning', + hAlign: 'Horisontal justering', + vAlign: 'Vertikal justering', + alignBaseline: 'Grunnlinje', + bgColor: 'Bakgrunnsfarge', + borderColor: 'Rammefarge', + data: 'Data', + header: 'Overskrift', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nei', + invalidWidth: 'Cellebredde må være et tall.', + invalidHeight: 'Cellehøyde må være et tall.', + invalidRowSpan: 'Radspenn må være et heltall.', + invalidColSpan: 'Kolonnespenn må være et heltall.', + chooseColor: 'Velg' + }, + cellPad: 'Cellepolstring', + cellSpace: 'Cellemarg', + column: { + menu: 'Kolonne', + insertBefore: 'Sett inn kolonne før', + insertAfter: 'Sett inn kolonne etter', + deleteColumn: 'Slett kolonner' + }, + columns: 'Kolonner', + deleteTable: 'Slett tabell', + headers: 'Overskrifter', + headersBoth: 'Begge', + headersColumn: 'Første kolonne', + headersNone: 'Ingen', + headersRow: 'Første rad', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Rammestørrelse må være et tall.', + invalidCellPadding: 'Cellepolstring må være et positivt tall.', + invalidCellSpacing: 'Cellemarg må være et positivt tall.', + invalidCols: 'Antall kolonner må være et tall større enn 0.', + invalidHeight: 'Tabellhøyde må være et tall.', + invalidRows: 'Antall rader må være et tall større enn 0.', + invalidWidth: 'Tabellbredde må være et tall.', + menu: 'Egenskaper for tabell', + row: { + menu: 'Rader', + insertBefore: 'Sett inn rad før', + insertAfter: 'Sett inn rad etter', + deleteRow: 'Slett rader' + }, + rows: 'Rader', + summary: 'Sammendrag', + title: 'Egenskaper for tabell', + toolbar: 'Tabell', + widthPc: 'prosent', + widthPx: 'piksler', + widthUnit: 'Bredde-enhet' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/nl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/nl.js new file mode 100644 index 0000000000..0b4c7e0669 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/nl.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'nl', { + border: 'Randdikte', + caption: 'Bijschrift', + cell: { + menu: 'Cel', + insertBefore: 'Voeg cel in voor', + insertAfter: 'Voeg cel in na', + deleteCell: 'Cellen verwijderen', + merge: 'Cellen samenvoegen', + mergeRight: 'Voeg samen naar rechts', + mergeDown: 'Voeg samen naar beneden', + splitHorizontal: 'Splits cel horizontaal', + splitVertical: 'Splits cel vertikaal', + title: 'Celeigenschappen', + cellType: 'Celtype', + rowSpan: 'Rijen samenvoegen', + colSpan: 'Kolommen samenvoegen', + wordWrap: 'Automatische terugloop', + hAlign: 'Horizontale uitlijning', + vAlign: 'Verticale uitlijning', + alignBaseline: 'Tekstregel', + bgColor: 'Achtergrondkleur', + borderColor: 'Randkleur', + data: 'Gegevens', + header: 'Kop', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nee', + invalidWidth: 'De celbreedte moet een getal zijn.', + invalidHeight: 'De celhoogte moet een getal zijn.', + invalidRowSpan: 'Rijen samenvoegen moet een heel getal zijn.', + invalidColSpan: 'Kolommen samenvoegen moet een heel getal zijn.', + chooseColor: 'Kies' + }, + cellPad: 'Celopvulling', + cellSpace: 'Celafstand', + column: { + menu: 'Kolom', + insertBefore: 'Voeg kolom in voor', + insertAfter: 'Voeg kolom in na', + deleteColumn: 'Kolommen verwijderen' + }, + columns: 'Kolommen', + deleteTable: 'Tabel verwijderen', + headers: 'Koppen', + headersBoth: 'Beide', + headersColumn: 'Eerste kolom', + headersNone: 'Geen', + headersRow: 'Eerste rij', + heightUnit: 'height unit', // MISSING + invalidBorder: 'De randdikte moet een getal zijn.', + invalidCellPadding: 'Celopvulling moet een getal zijn.', + invalidCellSpacing: 'Celafstand moet een getal zijn.', + invalidCols: 'Het aantal kolommen moet een getal zijn groter dan 0.', + invalidHeight: 'De tabelhoogte moet een getal zijn.', + invalidRows: 'Het aantal rijen moet een getal zijn groter dan 0.', + invalidWidth: 'De tabelbreedte moet een getal zijn.', + menu: 'Tabeleigenschappen', + row: { + menu: 'Rij', + insertBefore: 'Voeg rij in voor', + insertAfter: 'Voeg rij in na', + deleteRow: 'Rijen verwijderen' + }, + rows: 'Rijen', + summary: 'Samenvatting', + title: 'Tabeleigenschappen', + toolbar: 'Tabel', + widthPc: 'procent', + widthPx: 'pixels', + widthUnit: 'eenheid breedte' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/no.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/no.js new file mode 100644 index 0000000000..7fa826ea68 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/no.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'no', { + border: 'Rammestørrelse', + caption: 'Tittel', + cell: { + menu: 'Celle', + insertBefore: 'Sett inn celle før', + insertAfter: 'Sett inn celle etter', + deleteCell: 'Slett celler', + merge: 'Slå sammen celler', + mergeRight: 'Slå sammen høyre', + mergeDown: 'Slå sammen ned', + splitHorizontal: 'Del celle horisontalt', + splitVertical: 'Del celle vertikalt', + title: 'Celleegenskaper', + cellType: 'Celletype', + rowSpan: 'Radspenn', + colSpan: 'Kolonnespenn', + wordWrap: 'Tekstbrytning', + hAlign: 'Horisontal justering', + vAlign: 'Vertikal justering', + alignBaseline: 'Grunnlinje', + bgColor: 'Bakgrunnsfarge', + borderColor: 'Rammefarge', + data: 'Data', + header: 'Overskrift', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nei', + invalidWidth: 'Cellebredde må være et tall.', + invalidHeight: 'Cellehøyde må være et tall.', + invalidRowSpan: 'Radspenn må være et heltall.', + invalidColSpan: 'Kolonnespenn må være et heltall.', + chooseColor: 'Velg' + }, + cellPad: 'Cellepolstring', + cellSpace: 'Cellemarg', + column: { + menu: 'Kolonne', + insertBefore: 'Sett inn kolonne før', + insertAfter: 'Sett inn kolonne etter', + deleteColumn: 'Slett kolonner' + }, + columns: 'Kolonner', + deleteTable: 'Slett tabell', + headers: 'Overskrifter', + headersBoth: 'Begge', + headersColumn: 'Første kolonne', + headersNone: 'Ingen', + headersRow: 'Første rad', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Rammestørrelse må være et tall.', + invalidCellPadding: 'Cellepolstring må være et positivt tall.', + invalidCellSpacing: 'Cellemarg må være et positivt tall.', + invalidCols: 'Antall kolonner må være et tall større enn 0.', + invalidHeight: 'Tabellhøyde må være et tall.', + invalidRows: 'Antall rader må være et tall større enn 0.', + invalidWidth: 'Tabellbredde må være et tall.', + menu: 'Egenskaper for tabell', + row: { + menu: 'Rader', + insertBefore: 'Sett inn rad før', + insertAfter: 'Sett inn rad etter', + deleteRow: 'Slett rader' + }, + rows: 'Rader', + summary: 'Sammendrag', + title: 'Egenskaper for tabell', + toolbar: 'Tabell', + widthPc: 'prosent', + widthPx: 'piksler', + widthUnit: 'Bredde-enhet' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/oc.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/oc.js new file mode 100644 index 0000000000..2260022781 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/oc.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'oc', { + border: 'Talha de la bordadura', + caption: 'Títol del tablèu', + cell: { + menu: 'Cellula', + insertBefore: 'Inserir una cellula abans', + insertAfter: 'Inserir una cellula aprèp', + deleteCell: 'Suprimir las cellulas', + merge: 'Fusionar las cellulas', + mergeRight: 'Fusionar cap a dreita', + mergeDown: 'Fusionar cap aval', + splitHorizontal: 'Separar la cellula orizontalament', + splitVertical: 'Separar la cellula verticalament', + title: 'Proprietats de la cellula', + cellType: 'Tipe de cellula', + rowSpan: 'Linhas ocupadas', + colSpan: 'Colomnas ocupadas', + wordWrap: 'Cesura', + hAlign: 'Alinhament orizontal', + vAlign: 'Alinhament vertical', + alignBaseline: 'Linha de basa', + bgColor: 'Color de rèireplan', + borderColor: 'Color de bordadura', + data: 'Donadas', + header: 'Entèsta', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Òc', + no: 'Non', + invalidWidth: 'La largor de la cellula deu èsser un nombre.', + invalidHeight: 'La nautor de la cellula deu èsser un nombre.', + invalidRowSpan: 'Lo nombre de linhas ocupadas deu èsser un nombre entièr.', + invalidColSpan: 'Lo nombre de colomnas ocupadas deu èsser un nombre entièr.', + chooseColor: 'Causir' + }, + cellPad: 'Marge intèrne de las cellulas', + cellSpace: 'Espaçament entre las cellulas', + column: { + menu: 'Colomna', + insertBefore: 'Inserir una colomna abans', + insertAfter: 'Inserir una colomna aprèp', + deleteColumn: 'Suprimir las colomnas' + }, + columns: 'Colomnas', + deleteTable: 'Suprimir lo tablèu', + headers: 'Entèstas', + headersBoth: 'Los dos', + headersColumn: 'Primièra colomna', + headersNone: 'Pas cap', + headersRow: 'Primièra linha', + heightUnit: 'height unit', // MISSING + invalidBorder: 'La talha de la bordadura deu èsser un nombre.', + invalidCellPadding: 'Lo marge intèrne de las cellulas deu èsser un nombre positiu.', + invalidCellSpacing: 'L\'espaçament entre las cellulas deu èsser un nombre positiu.', + invalidCols: 'Lo nombre de colomnas deu èsser superior a 0.', + invalidHeight: 'La nautor del tablèu deu èsser un nombre.', + invalidRows: 'Lo nombre de linhas deu èsser superior a 0.', + invalidWidth: 'La largor del tablèu deu èsser un nombre.', + menu: 'Proprietats del tablèu', + row: { + menu: 'Linha', + insertBefore: 'Inserir una linha abans', + insertAfter: 'Inserir una linha aprèp', + deleteRow: 'Suprimir las linhas' + }, + rows: 'Linhas', + summary: 'Resumit (descripcion)', + title: 'Proprietats del tablèu', + toolbar: 'Tablèu', + widthPc: 'per cent', + widthPx: 'pixèls', + widthUnit: 'unitat de largor' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pl.js new file mode 100644 index 0000000000..8b6c6ec924 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pl.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'pl', { + border: 'Grubość obramowania', + caption: 'Tytuł', + cell: { + menu: 'Komórka', + insertBefore: 'Wstaw komórkę z lewej', + insertAfter: 'Wstaw komórkę z prawej', + deleteCell: 'Usuń komórki', + merge: 'Połącz komórki', + mergeRight: 'Połącz z komórką z prawej', + mergeDown: 'Połącz z komórką poniżej', + splitHorizontal: 'Podziel komórkę poziomo', + splitVertical: 'Podziel komórkę pionowo', + title: 'Właściwości komórki', + cellType: 'Typ komórki', + rowSpan: 'Scalenie wierszy', + colSpan: 'Scalenie komórek', + wordWrap: 'Zawijanie słów', + hAlign: 'Wyrównanie poziome', + vAlign: 'Wyrównanie pionowe', + alignBaseline: 'Linia bazowa', + bgColor: 'Kolor tła', + borderColor: 'Kolor obramowania', + data: 'Dane', + header: 'Nagłówek', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Tak', + no: 'Nie', + invalidWidth: 'Szerokość komórki musi być liczbą.', + invalidHeight: 'Wysokość komórki musi być liczbą.', + invalidRowSpan: 'Scalenie wierszy musi być liczbą całkowitą.', + invalidColSpan: 'Scalenie komórek musi być liczbą całkowitą.', + chooseColor: 'Wybierz' + }, + cellPad: 'Dopełnienie komórek', + cellSpace: 'Odstęp pomiędzy komórkami', + column: { + menu: 'Kolumna', + insertBefore: 'Wstaw kolumnę z lewej', + insertAfter: 'Wstaw kolumnę z prawej', + deleteColumn: 'Usuń kolumny' + }, + columns: 'Liczba kolumn', + deleteTable: 'Usuń tabelę', + headers: 'Nagłówki', + headersBoth: 'Oba', + headersColumn: 'Pierwsza kolumna', + headersNone: 'Brak', + headersRow: 'Pierwszy wiersz', + heightUnit: 'jednostka wysokości', + invalidBorder: 'Wartość obramowania musi być liczbą.', + invalidCellPadding: 'Dopełnienie komórek musi być liczbą dodatnią.', + invalidCellSpacing: 'Odstęp pomiędzy komórkami musi być liczbą dodatnią.', + invalidCols: 'Liczba kolumn musi być większa niż 0.', + invalidHeight: 'Wysokość tabeli musi być liczbą.', + invalidRows: 'Liczba wierszy musi być większa niż 0.', + invalidWidth: 'Szerokość tabeli musi być liczbą.', + menu: 'Właściwości tabeli', + row: { + menu: 'Wiersz', + insertBefore: 'Wstaw wiersz powyżej', + insertAfter: 'Wstaw wiersz poniżej', + deleteRow: 'Usuń wiersze' + }, + rows: 'Liczba wierszy', + summary: 'Podsumowanie', + title: 'Właściwości tabeli', + toolbar: 'Tabela', + widthPc: '%', + widthPx: 'piksele', + widthUnit: 'jednostka szerokości' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pt-br.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pt-br.js new file mode 100644 index 0000000000..b81eebce3d --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pt-br.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'pt-br', { + border: 'Borda', + caption: 'Legenda', + cell: { + menu: 'Célula', + insertBefore: 'Inserir célula a esquerda', + insertAfter: 'Inserir célula a direita', + deleteCell: 'Remover Células', + merge: 'Mesclar Células', + mergeRight: 'Mesclar com célula a direita', + mergeDown: 'Mesclar com célula abaixo', + splitHorizontal: 'Dividir célula horizontalmente', + splitVertical: 'Dividir célula verticalmente', + title: 'Propriedades da célula', + cellType: 'Tipo de célula', + rowSpan: 'Linhas cobertas', + colSpan: 'Colunas cobertas', + wordWrap: 'Quebra de palavra', + hAlign: 'Alinhamento horizontal', + vAlign: 'Alinhamento vertical', + alignBaseline: 'Patamar de alinhamento', + bgColor: 'Cor de fundo', + borderColor: 'Cor das bordas', + data: 'Dados', + header: 'Cabeçalho', + columnHeader: 'Cabeçalho da Coluna', + rowHeader: 'Cabeçalho da Linha', + yes: 'Sim', + no: 'Não', + invalidWidth: 'A largura da célula tem que ser um número.', + invalidHeight: 'A altura da célula tem que ser um número.', + invalidRowSpan: 'Linhas cobertas tem que ser um número inteiro.', + invalidColSpan: 'Colunas cobertas tem que ser um número inteiro.', + chooseColor: 'Escolher' + }, + cellPad: 'Margem interna', + cellSpace: 'Espaçamento', + column: { + menu: 'Coluna', + insertBefore: 'Inserir coluna a esquerda', + insertAfter: 'Inserir coluna a direita', + deleteColumn: 'Remover Colunas' + }, + columns: 'Colunas', + deleteTable: 'Apagar Tabela', + headers: 'Cabeçalho', + headersBoth: 'Ambos', + headersColumn: 'Primeira coluna', + headersNone: 'Nenhum', + headersRow: 'Primeira linha', + heightUnit: 'Unidade para altura', + invalidBorder: 'O tamanho da borda tem que ser um número.', + invalidCellPadding: 'A margem interna das células tem que ser um número.', + invalidCellSpacing: 'O espaçamento das células tem que ser um número.', + invalidCols: 'O número de colunas tem que ser um número maior que 0.', + invalidHeight: 'A altura da tabela tem que ser um número.', + invalidRows: 'O número de linhas tem que ser um número maior que 0.', + invalidWidth: 'A largura da tabela tem que ser um número.', + menu: 'Formatar Tabela', + row: { + menu: 'Linha', + insertBefore: 'Inserir linha acima', + insertAfter: 'Inserir linha abaixo', + deleteRow: 'Remover Linhas' + }, + rows: 'Linhas', + summary: 'Resumo', + title: 'Formatar Tabela', + toolbar: 'Tabela', + widthPc: '%', + widthPx: 'pixels', + widthUnit: 'unidade largura' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pt.js new file mode 100644 index 0000000000..aee60e1e53 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/pt.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'pt', { + border: 'Tamanho do contorno', + caption: 'Legenda', + cell: { + menu: 'Célula', + insertBefore: 'Inserir célula antes', + insertAfter: 'Inserir célula depois', + deleteCell: 'Apagar células', + merge: 'Unir células', + mergeRight: 'Unir à direita', + mergeDown: 'Fundir abaixo', + splitHorizontal: 'Dividir célula horizontalmente', + splitVertical: 'Dividir célula verticalmente', + title: 'Propriedades da célula', + cellType: 'Tipo de célula', + rowSpan: 'Linhas na célula', + colSpan: 'Colunas na célula', + wordWrap: 'Moldar texto', + hAlign: 'Alinhamento horizontal', + vAlign: 'Alinhamento vertical', + alignBaseline: 'Linha base', + bgColor: 'Cor de fundo', + borderColor: 'Cor da margem', + data: 'Dados', + header: 'Cabeçalho', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Sim', + no: 'Não', + invalidWidth: 'A largura da célula deve ser um número.', + invalidHeight: 'A altura da célula deve ser um número.', + invalidRowSpan: 'As linhas da célula devem ser um número inteiro.', + invalidColSpan: 'As colunas da célula devem ter um número inteiro.', + chooseColor: 'Escolher' + }, + cellPad: 'Espaço interior', + cellSpace: 'Espaçamento de célula', + column: { + menu: 'Coluna', + insertBefore: 'Inserir coluna antes', + insertAfter: 'Inserir coluna depois', + deleteColumn: 'Apagar colunas' + }, + columns: 'Colunas', + deleteTable: 'Apagar tabela', + headers: 'Cabeçalhos', + headersBoth: 'Ambos', + headersColumn: 'Primeira coluna', + headersNone: 'Nenhum', + headersRow: 'Primeira linha', + heightUnit: 'height unit', // MISSING + invalidBorder: 'O tamanho da margem tem de ser um número.', + invalidCellPadding: 'A criação do espaço na célula deve ser um número positivo.', + invalidCellSpacing: 'O espaçamento da célula deve ser um número positivo.', + invalidCols: 'O número de colunas tem de ser um número maior que 0.', + invalidHeight: 'A altura da tabela tem de ser um número.', + invalidRows: 'O número de linhas tem de ser maior que 0.', + invalidWidth: 'A largura da tabela tem de ser um número.', + menu: 'Propriedades da tabela', + row: { + menu: 'Linha', + insertBefore: 'Inserir linha antes', + insertAfter: 'Inserir linha depois', + deleteRow: 'Apagar linhas' + }, + rows: 'Linhas', + summary: 'Resumo', + title: 'Propriedades da tabela', + toolbar: 'Tabela', + widthPc: 'percentagem', + widthPx: 'píxeis', + widthUnit: 'unidade da largura' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ro.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ro.js new file mode 100644 index 0000000000..c0ac78ae88 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ro.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ro', { + border: 'Mărimea marginii', + caption: 'Titlu (Caption)', + cell: { + menu: 'Celulă', + insertBefore: 'Inserează celulă înainte', + insertAfter: 'Inserează celulă după', + deleteCell: 'Şterge celule', + merge: 'Uneşte celule', + mergeRight: 'Uneşte la dreapta', + mergeDown: 'Uneşte jos', + splitHorizontal: 'Împarte celula pe orizontală', + splitVertical: 'Împarte celula pe verticală', + title: 'Proprietăți celulă', + cellType: 'Tipul celulei', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Aliniament orizontal', + vAlign: 'Aliniament vertical', + alignBaseline: 'Baseline', + bgColor: 'Culoare fundal', + borderColor: 'Culoare bordură', + data: 'Data', + header: 'Antet', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Da', + no: 'Nu', + invalidWidth: 'Lățimea celulei trebuie să fie un număr.', + invalidHeight: 'Înălțimea celulei trebuie să fie un număr.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Alege' + }, + cellPad: 'Spaţiu în cadrul celulei', + cellSpace: 'Spaţiu între celule', + column: { + menu: 'Coloană', + insertBefore: 'Inserează coloană înainte', + insertAfter: 'Inserează coloană după', + deleteColumn: 'Şterge celule' + }, + columns: 'Coloane', + deleteTable: 'Şterge tabel', + headers: 'Antente', + headersBoth: 'Ambele', + headersColumn: 'Prima coloană', + headersNone: 'Nimic', + headersRow: 'Primul rând', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Dimensiunea bordurii trebuie să aibe un număr.', + invalidCellPadding: 'Spațierea celulei trebuie sa fie un număr pozitiv', + invalidCellSpacing: 'Spațierea celului trebuie să fie un număr pozitiv.', + invalidCols: 'Numărul coloanelor trebuie să fie mai mare decât 0.', + invalidHeight: 'Inaltimea celulei trebuie sa fie un numar.', + invalidRows: 'Numărul rândurilor trebuie să fie mai mare decât 0.', + invalidWidth: 'Lățimea tabelului trebuie să fie un număr.', + menu: 'Proprietăţile tabelului', + row: { + menu: 'Rând', + insertBefore: 'Inserează rând înainte', + insertAfter: 'Inserează rând după', + deleteRow: 'Şterge rânduri' + }, + rows: 'Rânduri', + summary: 'Rezumat', + title: 'Proprietăţile tabelului', + toolbar: 'Tabel', + widthPc: 'procente', + widthPx: 'pixeli', + widthUnit: 'unitate lățime' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ru.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ru.js new file mode 100644 index 0000000000..b4d637d0ce --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ru.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ru', { + border: 'Размер границ', + caption: 'Заголовок', + cell: { + menu: 'Ячейка', + insertBefore: 'Вставить ячейку слева', + insertAfter: 'Вставить ячейку справа', + deleteCell: 'Удалить ячейки', + merge: 'Объединить ячейки', + mergeRight: 'Объединить с правой', + mergeDown: 'Объединить с нижней', + splitHorizontal: 'Разделить ячейку по вертикали', + splitVertical: 'Разделить ячейку по горизонтали', + title: 'Свойства ячейки', + cellType: 'Тип ячейки', + rowSpan: 'Объединяет строк', + colSpan: 'Объединяет колонок', + wordWrap: 'Перенос по словам', + hAlign: 'Горизонтальное выравнивание', + vAlign: 'Вертикальное выравнивание', + alignBaseline: 'По базовой линии', + bgColor: 'Цвет фона', + borderColor: 'Цвет границ', + data: 'Данные', + header: 'Заголовок', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Да', + no: 'Нет', + invalidWidth: 'Ширина ячейки должна быть числом.', + invalidHeight: 'Высота ячейки должна быть числом.', + invalidRowSpan: 'Количество объединяемых строк должно быть задано числом.', + invalidColSpan: 'Количество объединяемых колонок должно быть задано числом.', + chooseColor: 'Выберите' + }, + cellPad: 'Внутренний отступ ячеек', + cellSpace: 'Внешний отступ ячеек', + column: { + menu: 'Колонка', + insertBefore: 'Вставить колонку слева', + insertAfter: 'Вставить колонку справа', + deleteColumn: 'Удалить колонки' + }, + columns: 'Колонки', + deleteTable: 'Удалить таблицу', + headers: 'Заголовки', + headersBoth: 'Сверху и слева', + headersColumn: 'Левая колонка', + headersNone: 'Без заголовков', + headersRow: 'Верхняя строка', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Размер границ должен быть числом.', + invalidCellPadding: 'Внутренний отступ ячеек (cellpadding) должен быть числом.', + invalidCellSpacing: 'Внешний отступ ячеек (cellspacing) должен быть числом.', + invalidCols: 'Количество столбцов должно быть больше 0.', + invalidHeight: 'Высота таблицы должна быть числом.', + invalidRows: 'Количество строк должно быть больше 0.', + invalidWidth: 'Ширина таблицы должна быть числом.', + menu: 'Свойства таблицы', + row: { + menu: 'Строка', + insertBefore: 'Вставить строку сверху', + insertAfter: 'Вставить строку снизу', + deleteRow: 'Удалить строки' + }, + rows: 'Строки', + summary: 'Итоги', + title: 'Свойства таблицы', + toolbar: 'Таблица', + widthPc: 'процентов', + widthPx: 'пикселей', + widthUnit: 'единица измерения' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/si.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/si.js new file mode 100644 index 0000000000..b1cd4b0a6c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/si.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'si', { + border: 'සීමාවවල විශාලත්වය', + caption: 'Caption', // MISSING + cell: { + menu: 'කොටුව', + insertBefore: 'පෙර කොටුවක් ඇතුල්කිරිම', + insertAfter: 'පසුව කොටුවක් ඇතුලත් ', + deleteCell: 'කොටුව මැකීම', + merge: 'කොටු එකට යාකිරිම', + mergeRight: 'දකුණට ', + mergeDown: 'පහලට ', + splitHorizontal: 'තිරස්ව කොටු පැතිරීම', + splitVertical: 'සිරස්ව කොටු පැතිරීම', + title: 'කොටු ', + cellType: 'කොටු වර්ගය', + rowSpan: 'පේළි පළල', + colSpan: 'සිරස් පළල', + wordWrap: 'වචන ගැලපුම', + hAlign: 'තිරස්ව ', + vAlign: 'සිරස්ව ', + alignBaseline: 'පාද රේඛාව', + bgColor: 'පසුබිම් වර්ණය', + borderColor: 'මායිම් ', + data: 'Data', // MISSING + header: 'ශීර්ෂක', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'ඔව්', + no: 'නැත', + invalidWidth: 'කොටු පළල සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය', + invalidHeight: 'කොටු උස සංඛ්‍ය්ත්මක වටිනාකමක් විය යුතුය', + invalidRowSpan: 'Rows span must be a whole number.', // MISSING + invalidColSpan: 'Columns span must be a whole number.', // MISSING + chooseColor: 'තෝරන්න' + }, + cellPad: 'Cell padding', // MISSING + cellSpace: 'Cell spacing', // MISSING + column: { + menu: 'Column', // MISSING + insertBefore: 'Insert Column Before', // MISSING + insertAfter: 'Insert Column After', // MISSING + deleteColumn: 'Delete Columns' // MISSING + }, + columns: 'සිරස් ', + deleteTable: 'වගුව මකන්න', + headers: 'ශීර්ෂක', + headersBoth: 'දෙකම', + headersColumn: 'පළමූ සිරස් තීරුව', + headersNone: 'කිසිවක්ම නොවේ', + headersRow: 'පළමූ පේළිය', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Border size must be a number.', // MISSING + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Table height must be a number.', // MISSING + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Table width must be a number.', // MISSING + menu: 'Table Properties', // MISSING + row: { + menu: 'Row', // MISSING + insertBefore: 'Insert Row Before', // MISSING + insertAfter: 'Insert Row After', // MISSING + deleteRow: 'Delete Rows' // MISSING + }, + rows: 'Rows', // MISSING + summary: 'Summary', // MISSING + title: 'Table Properties', // MISSING + toolbar: 'Table', // MISSING + widthPc: 'percent', // MISSING + widthPx: 'pixels', // MISSING + widthUnit: 'width unit' // MISSING +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sk.js new file mode 100644 index 0000000000..216ccf61e9 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sk.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'sk', { + border: 'Šírka orámovania', + caption: 'Popis', + cell: { + menu: 'Bunka', + insertBefore: 'Vložiť bunku pred', + insertAfter: 'Vložiť bunku za', + deleteCell: 'Vymazať bunky', + merge: 'Zlúčiť bunky', + mergeRight: 'Zlúčiť doprava', + mergeDown: 'Zlúčiť dole', + splitHorizontal: 'Rozdeliť bunky horizontálne', + splitVertical: 'Rozdeliť bunky vertikálne', + title: 'Vlastnosti bunky', + cellType: 'Typ bunky', + rowSpan: 'Rozsah riadkov', + colSpan: 'Rozsah stĺpcov', + wordWrap: 'Zalamovanie riadkov', + hAlign: 'Horizontálne zarovnanie', + vAlign: 'Vertikálne zarovnanie', + alignBaseline: 'Základná čiara (baseline)', + bgColor: 'Farba pozadia', + borderColor: 'Farba orámovania', + data: 'Dáta', + header: 'Hlavička', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Áno', + no: 'Nie', + invalidWidth: 'Šírka bunky musí byť číslo.', + invalidHeight: 'Výška bunky musí byť číslo.', + invalidRowSpan: 'Rozsah riadkov musí byť celé číslo.', + invalidColSpan: 'Rozsah stĺpcov musí byť celé číslo.', + chooseColor: 'Vybrať' + }, + cellPad: 'Odsadenie obsahu (cell padding)', + cellSpace: 'Vzdialenosť buniek (cell spacing)', + column: { + menu: 'Stĺpec', + insertBefore: 'Vložiť stĺpec pred', + insertAfter: 'Vložiť stĺpec po', + deleteColumn: 'Zmazať stĺpce' + }, + columns: 'Stĺpce', + deleteTable: 'Vymazať tabuľku', + headers: 'Hlavička', + headersBoth: 'Obe', + headersColumn: 'Prvý stĺpec', + headersNone: 'Žiadne', + headersRow: 'Prvý riadok', + heightUnit: 'jednotka výšky', + invalidBorder: 'Šírka orámovania musí byť číslo.', + invalidCellPadding: 'Odsadenie v bunkách (cell padding) musí byť kladné číslo.', + invalidCellSpacing: 'Medzera mädzi bunkami (cell spacing) musí byť kladné číslo.', + invalidCols: 'Počet stĺpcov musí byť číslo väčšie ako 0.', + invalidHeight: 'Výška tabuľky musí byť číslo.', + invalidRows: 'Počet riadkov musí byť číslo väčšie ako 0.', + invalidWidth: 'Širka tabuľky musí byť číslo.', + menu: 'Vlastnosti tabuľky', + row: { + menu: 'Riadok', + insertBefore: 'Vložiť riadok pred', + insertAfter: 'Vložiť riadok po', + deleteRow: 'Vymazať riadky' + }, + rows: 'Riadky', + summary: 'Prehľad', + title: 'Vlastnosti tabuľky', + toolbar: 'Tabuľka', + widthPc: 'percent', + widthPx: 'pixelov', + widthUnit: 'jednotka šírky' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sl.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sl.js new file mode 100644 index 0000000000..11052dc840 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sl.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'sl', { + border: 'Velikost obrobe', + caption: 'Napis', + cell: { + menu: 'Celica', + insertBefore: 'Vstavi celico pred', + insertAfter: 'Vstavi celico za', + deleteCell: 'Izbriši celice', + merge: 'Združi celice', + mergeRight: 'Združi desno', + mergeDown: 'Združi navzdol', + splitHorizontal: 'Razdeli celico vodoravno', + splitVertical: 'Razdeli celico navpično', + title: 'Lastnosti celice', + cellType: 'Vrsta celice', + rowSpan: 'Razpon vrstic', + colSpan: 'Razpon stolpcev', + wordWrap: 'Prelom besedila', + hAlign: 'Vodoravna poravnava', + vAlign: 'Navpična poravnava', + alignBaseline: 'Osnovnica', + bgColor: 'Barva ozadja', + borderColor: 'Barva obrobe', + data: 'Podatki', + header: 'Glava', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Da', + no: 'Ne', + invalidWidth: 'Širina celice mora biti število.', + invalidHeight: 'Višina celice mora biti število.', + invalidRowSpan: 'Razpon vrstic mora biti celo število.', + invalidColSpan: 'Razpon stolpcev mora biti celo število.', + chooseColor: 'Izberi' + }, + cellPad: 'Odmik znotraj celic', + cellSpace: 'Razmik med celicami', + column: { + menu: 'Stolpec', + insertBefore: 'Vstavi stolpec pred', + insertAfter: 'Vstavi stolpec za', + deleteColumn: 'Izbriši stolpce' + }, + columns: 'Stolpci', + deleteTable: 'Izbriši tabelo', + headers: 'Glave', + headersBoth: 'Oboje', + headersColumn: 'Prvi stolpec', + headersNone: 'Brez', + headersRow: 'Prva vrstica', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Širina obrobe mora biti število.', + invalidCellPadding: 'Odmik znotraj celic mora biti pozitivno število.', + invalidCellSpacing: 'Razmik med celicami mora biti pozitivno število.', + invalidCols: 'Število stolpcev mora biti večje od 0.', + invalidHeight: 'Višina tabele mora biti število.', + invalidRows: 'Število vrstic mora biti večje od 0.', + invalidWidth: 'Širina tabele mora biti število.', + menu: 'Lastnosti tabele', + row: { + menu: 'Vrstica', + insertBefore: 'Vstavi vrstico pred', + insertAfter: 'Vstavi vrstico za', + deleteRow: 'Izbriši vrstice' + }, + rows: 'Vrstice', + summary: 'Povzetek', + title: 'Lastnosti tabele', + toolbar: 'Tabela', + widthPc: 'odstotkov', + widthPx: 'pik', + widthUnit: 'enota širine' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sq.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sq.js new file mode 100644 index 0000000000..ad97403dd7 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sq.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'sq', { + border: 'Madhësia e kornizave', + caption: 'Titull', + cell: { + menu: 'Qeli', + insertBefore: 'Shto Qeli Para', + insertAfter: 'Shto Qeli Prapa', + deleteCell: 'Gris Qelitë', + merge: 'Bashko Qelitë', + mergeRight: 'Bashko Djathtas', + mergeDown: 'Bashko Poshtë', + splitHorizontal: 'Ndaj Qelinë Horizontalisht', + splitVertical: 'Ndaj Qelinë Vertikalisht', + title: 'Rekuizitat e Qelisë', + cellType: 'Lloji i Qelisë', + rowSpan: 'Bashko Rreshtat', + colSpan: 'Bashko Kolonat', + wordWrap: 'Fund i Fjalës', + hAlign: 'Bashkimi Horizontal', + vAlign: 'Bashkimi Vertikal', + alignBaseline: 'Baza', + bgColor: 'Ngjyra e Prapavijës', + borderColor: 'Ngjyra e Kornizave', + data: 'Të dhënat', + header: 'Koka', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Po', + no: 'Jo', + invalidWidth: 'Gjerësia e qelisë duhet të jetë numër.', + invalidHeight: 'Lartësia e qelisë duhet të jetë numër.', + invalidRowSpan: 'Hapësira e rreshtave duhet të jetë numër i plotë.', + invalidColSpan: 'Hapësira e kolonave duhet të jetë numër i plotë.', + chooseColor: 'Përzgjidh' + }, + cellPad: 'Mbushja e qelisë', + cellSpace: 'Hapësira e qelisë', + column: { + menu: 'Kolona', + insertBefore: 'Vendos Kolonë Para', + insertAfter: 'Vendos Kolonë Pas', + deleteColumn: 'Gris Kolonat' + }, + columns: 'Kolonat', + deleteTable: 'Gris Tabelën', + headers: 'Kokat', + headersBoth: 'Së bashku', + headersColumn: 'Kolona e parë', + headersNone: 'Asnjë', + headersRow: 'Rreshti i Parë', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Madhësia e kufinjve duhet të jetë numër.', + invalidCellPadding: 'Mbushja e qelisë duhet të jetë numër pozitiv.', + invalidCellSpacing: 'Hapësira e qelisë duhet të jetë numër pozitiv.', + invalidCols: 'Numri i kolonave duhet të jetë numër më i madh se 0.', + invalidHeight: 'Lartësia e tabelës duhet të jetë numër.', + invalidRows: 'Numri i rreshtave duhet të jetë numër më i madh se 0.', + invalidWidth: 'Gjerësia e tabelës duhet të jetë numër.', + menu: 'Karakteristikat e Tabelës', + row: { + menu: 'Rreshti', + insertBefore: 'Shto Rresht Para', + insertAfter: 'Shto Rresht Prapa', + deleteRow: 'Gris Rreshtat' + }, + rows: 'Rreshtat', + summary: 'Përmbledhje', + title: 'Karakteristikat e Tabelës', + toolbar: 'Tabela', + widthPc: 'përqind', + widthPx: 'piksell', + widthUnit: 'njësia e gjerësisë' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sr-latn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sr-latn.js new file mode 100644 index 0000000000..598272533c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sr-latn.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'sr-latn', { + border: 'Veličina okvira', + caption: 'Naslov tabele', + cell: { + menu: 'Ćelija', + insertBefore: 'Ubaci levo', + insertAfter: 'Ubaci desno', + deleteCell: 'Obriši ćelije', + merge: 'Spoj ćelije', + mergeRight: 'Spolj ćelije desno', + mergeDown: 'Spolj čelije na dole', + splitHorizontal: 'Razdvoji ćelije vodoravno', + splitVertical: 'Razdvoji ćelije uspravno', + title: 'Karakteristike ćelija', + cellType: 'Tip ćelija', + rowSpan: 'Spoj uzdužno', + colSpan: 'Spoj vodoravno', + wordWrap: 'Brisanje dugačkih redova', + hAlign: 'Ravnanje vodoravno', + vAlign: 'Ravnanje uspravno', + alignBaseline: 'Bazna linija', + bgColor: 'Boja pozadine', + borderColor: 'Boja okvira', + data: 'Podatak', + header: 'Zaglavlje', + columnHeader: 'Zaglavlje kolone', + rowHeader: 'Zaglavlje reda', + yes: 'Da', + no: 'Nе', + invalidWidth: 'U polje širina možete upisati samo brojeve. ', + invalidHeight: 'U polje visina možete upisati samo brojeve.', + invalidRowSpan: 'U polje spoj uspravno možete upistai samo brojeve.', + invalidColSpan: 'U polje spoj vodoravno možete upistai samo brojeve.', + chooseColor: 'Izaberi' + }, + cellPad: 'Razmak ćelija', + cellSpace: 'Ćelijski prostor', + column: { + menu: 'Kolona', + insertBefore: 'Ubaci levo', + insertAfter: 'Ubaci desno', + deleteColumn: 'Obriši kolone' + }, + columns: 'Kolona', + deleteTable: 'Izbriši tabelu', + headers: 'Zaglavlja', + headersBoth: 'Oba', + headersColumn: 'Prva kolona', + headersNone: 'Nema', + headersRow: 'Prvi red', + heightUnit: 'Jedinica visine', + invalidBorder: 'Veličina okvira mora biti broj.', + invalidCellPadding: 'Padding polja mora biti pozitivan broj.', + invalidCellSpacing: 'Razmak između ćelija mora biti pozitivan broj.', + invalidCols: 'Broj kolona mora biti broj veći od 0.', + invalidHeight: 'Visina tabele mora biti broj.', + invalidRows: 'Broj redova mora biti veći od 0.', + invalidWidth: 'Širina tabele mora biti broj.', + menu: 'Osobine tabele', + row: { + menu: 'Red', + insertBefore: 'Ubaci iznad', + insertAfter: 'Ubaci ispod', + deleteRow: 'Obriši redove' + }, + rows: 'Redovi', + summary: 'Opis', + title: 'Karakteristike tabele', + toolbar: 'Tabela', + widthPc: 'procenata', + widthPx: 'piksela', + widthUnit: 'jedinica za širinu' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sr.js new file mode 100644 index 0000000000..63f51c37f3 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sr.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'sr', { + border: 'Величина оквира', + caption: 'Наслов табеле', + cell: { + menu: 'Ћелија', + insertBefore: 'Убаци лево', + insertAfter: 'Убаци десно', + deleteCell: 'Обриши ћелије', + merge: 'Спој ћелије', + mergeRight: 'Спој ћелије на десно', + mergeDown: 'Спој ћелије на доле', + splitHorizontal: 'Раздвој ћелије водоравно', + splitVertical: 'Раздвој ћелије усправно', + title: 'Карактеристика ћелија', + cellType: 'Тип ћелија', + rowSpan: 'Спој уздужно', + colSpan: 'Спој водоравно', + wordWrap: 'Брисање дугачких редова', + hAlign: 'Равнање водоравно', + vAlign: 'Равнање усправно', + alignBaseline: 'Базна линија', + bgColor: 'Боја позадине', + borderColor: 'Боја оквира', + data: 'Податак', + header: 'Наслов', + columnHeader: 'Заглавље колоне', + rowHeader: 'Заглавље реда', + yes: 'Да', + no: 'Не', + invalidWidth: 'У поље ширина можете уписати само бројеве.', + invalidHeight: 'У поље висина можете уписати само бројеве.', + invalidRowSpan: 'У поље спој усправно можете уписати само бројеве.', + invalidColSpan: 'У поље спој водоравно можете уписати само бројеве.', + chooseColor: 'Изабери' + }, + cellPad: 'Размак ћелија', + cellSpace: 'Ћелијски простор', + column: { + menu: 'Колона', + insertBefore: 'Убаци лево', + insertAfter: 'Убаци десно', + deleteColumn: 'Обриши колоне' + }, + columns: 'Kолона', + deleteTable: 'Обриши таблу', + headers: 'Поглавља', + headersBoth: 'Оба', + headersColumn: 'Прва колона', + headersNone: 'Нема', + headersRow: 'Први ред', + heightUnit: 'Јединица висине', + invalidBorder: 'Величина ивице треба да буде цифра.', + invalidCellPadding: 'Пуњење ћелије треба да буде позитивна цифра.', + invalidCellSpacing: 'Размак ћелије треба да буде позитивна цифра.', + invalidCols: 'Број колона треба да буде цифра већа од 0.', + invalidHeight: 'Висина табеле треба да буде цифра.', + invalidRows: 'Број реда треба да буде цифра већа од 0.', + invalidWidth: 'Ширина табеле треба да буде цифра.', + menu: 'Карактеристике табеле', + row: { + menu: 'Ред', + insertBefore: 'Убаци изнад', + insertAfter: 'Убаци испод', + deleteRow: 'Обриши редове' + }, + rows: 'Редови', + summary: 'Oпис', + title: 'Карактеристике табеле', + toolbar: 'Табела', + widthPc: 'процената', + widthPx: 'пиксела', + widthUnit: 'јединица ширине' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sv.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sv.js new file mode 100644 index 0000000000..25dbb15f3c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/sv.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'sv', { + border: 'Kantstorlek', + caption: 'Rubrik', + cell: { + menu: 'Cell', + insertBefore: 'Lägg till cell före', + insertAfter: 'Lägg till cell efter', + deleteCell: 'Radera celler', + merge: 'Sammanfoga celler', + mergeRight: 'Sammanfoga höger', + mergeDown: 'Sammanfoga ner', + splitHorizontal: 'Dela cell horisontellt', + splitVertical: 'Dela cell vertikalt', + title: 'Egenskaper för cell', + cellType: 'Celltyp', + rowSpan: 'Rad spann', + colSpan: 'Kolumnen spann', + wordWrap: 'Radbrytning', + hAlign: 'Horisontell justering', + vAlign: 'Vertikal justering', + alignBaseline: 'Baslinje', + bgColor: 'Bakgrundsfärg', + borderColor: 'Ramfärg', + data: 'Data', + header: 'Rubrik', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Ja', + no: 'Nej', + invalidWidth: 'Cellens bredd måste vara ett nummer.', + invalidHeight: 'Cellens höjd måste vara ett nummer.', + invalidRowSpan: 'Radutvidgning måste vara ett heltal.', + invalidColSpan: 'Kolumn måste vara ett heltal.', + chooseColor: 'Välj' + }, + cellPad: 'Cellutfyllnad', + cellSpace: 'Cellavstånd', + column: { + menu: 'Kolumn', + insertBefore: 'Lägg till kolumn före', + insertAfter: 'Lägg till kolumn efter', + deleteColumn: 'Radera kolumn' + }, + columns: 'Kolumner', + deleteTable: 'Radera tabell', + headers: 'Rubriker', + headersBoth: 'Båda', + headersColumn: 'Första kolumnen', + headersNone: 'Ingen', + headersRow: 'Första raden', + heightUnit: 'Enhetshöjd', + invalidBorder: 'Ram måste vara ett nummer.', + invalidCellPadding: 'Luft i cell måste vara ett nummer.', + invalidCellSpacing: 'Luft i cell måste vara ett nummer.', + invalidCols: 'Antal kolumner måste vara ett nummer större än 0.', + invalidHeight: 'Tabellens höjd måste vara ett nummer.', + invalidRows: 'Antal rader måste vara större än 0.', + invalidWidth: 'Tabell måste vara ett nummer.', + menu: 'Tabellegenskaper', + row: { + menu: 'Rad', + insertBefore: 'Lägg till rad före', + insertAfter: 'Lägg till rad efter', + deleteRow: 'Radera rad' + }, + rows: 'Rader', + summary: 'Sammanfattning', + title: 'Tabellegenskaper', + toolbar: 'Tabell', + widthPc: 'procent', + widthPx: 'pixlar', + widthUnit: 'enhet bredd' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/th.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/th.js new file mode 100644 index 0000000000..6b492cf2ce --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/th.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'th', { + border: 'ขนาดเส้นขอบ', + caption: 'หัวเรื่องของตาราง', + cell: { + menu: 'ช่องตาราง', + insertBefore: 'Insert Cell Before', + insertAfter: 'Insert Cell After', + deleteCell: 'ลบช่อง', + merge: 'ผสานช่อง', + mergeRight: 'Merge Right', + mergeDown: 'Merge Down', + splitHorizontal: 'Split Cell Horizontally', + splitVertical: 'Split Cell Vertically', + title: 'Cell Properties', + cellType: 'Cell Type', + rowSpan: 'Rows Span', + colSpan: 'Columns Span', + wordWrap: 'Word Wrap', + hAlign: 'Horizontal Alignment', + vAlign: 'Vertical Alignment', + alignBaseline: 'Baseline', + bgColor: 'Background Color', + borderColor: 'Border Color', + data: 'Data', + header: 'Header', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Yes', + no: 'No', + invalidWidth: 'Cell width must be a number.', + invalidHeight: 'Cell height must be a number.', + invalidRowSpan: 'Rows span must be a whole number.', + invalidColSpan: 'Columns span must be a whole number.', + chooseColor: 'Choose' + }, + cellPad: 'ระยะแนวตั้ง', + cellSpace: 'ระยะแนวนอนน', + column: { + menu: 'คอลัมน์', + insertBefore: 'Insert Column Before', + insertAfter: 'Insert Column After', + deleteColumn: 'ลบสดมน์' + }, + columns: 'สดมน์', + deleteTable: 'ลบตาราง', + headers: 'ส่วนหัว', + headersBoth: 'ทั้งสองอย่าง', + headersColumn: 'คอลัมน์แรก', + headersNone: 'None', + headersRow: 'แถวแรก', + heightUnit: 'height unit', // MISSING + invalidBorder: 'ขนาดเส้นกรอบต้องเป็นจำนวนตัวเลข', + invalidCellPadding: 'ช่องว่างภายในเซลล์ต้องเลขจำนวนบวก', + invalidCellSpacing: 'ช่องว่างภายในเซลล์ต้องเป็นเลขจำนวนบวก', + invalidCols: 'จำนวนคอลัมน์ต้องเป็นจำนวนมากกว่า 0', + invalidHeight: 'ส่วนสูงของตารางต้องเป็นตัวเลข', + invalidRows: 'จำนวนของแถวต้องเป็นจำนวนมากกว่า 0', + invalidWidth: 'ความกว้างตารางต้องเป็นตัวเลข', + menu: 'คุณสมบัติของ ตาราง', + row: { + menu: 'แถว', + insertBefore: 'Insert Row Before', + insertAfter: 'Insert Row After', + deleteRow: 'ลบแถว' + }, + rows: 'แถว', + summary: 'สรุปความ', + title: 'คุณสมบัติของ ตาราง', + toolbar: 'ตาราง', + widthPc: 'เปอร์เซ็น', + widthPx: 'จุดสี', + widthUnit: 'หน่วยความกว้าง' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/tr.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/tr.js new file mode 100644 index 0000000000..b0efce175c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/tr.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'tr', { + border: 'Kenar Kalınlığı', + caption: 'Başlık', + cell: { + menu: 'Hücre', + insertBefore: 'Hücre Ekle - Önce', + insertAfter: 'Hücre Ekle - Sonra', + deleteCell: 'Hücre Sil', + merge: 'Hücreleri Birleştir', + mergeRight: 'Birleştir - Sağdaki İle ', + mergeDown: 'Birleştir - Aşağıdaki İle ', + splitHorizontal: 'Hücreyi Yatay Böl', + splitVertical: 'Hücreyi Dikey Böl', + title: 'Hücre Özellikleri', + cellType: 'Hücre Tipi', + rowSpan: 'Satırlar Mesafesi (Span)', + colSpan: 'Sütünlar Mesafesi (Span)', + wordWrap: 'Kelime Kaydırma', + hAlign: 'Düşey Hizalama', + vAlign: 'Yataş Hizalama', + alignBaseline: 'Tabana', + bgColor: 'Arkaplan Rengi', + borderColor: 'Çerçeve Rengi', + data: 'Veri', + header: 'Başlık', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Evet', + no: 'Hayır', + invalidWidth: 'Hücre genişliği sayı olmalıdır.', + invalidHeight: 'Hücre yüksekliği sayı olmalıdır.', + invalidRowSpan: 'Satırların mesafesi tam sayı olmalıdır.', + invalidColSpan: 'Sütünların mesafesi tam sayı olmalıdır.', + chooseColor: 'Seçiniz' + }, + cellPad: 'Izgara yazı arası', + cellSpace: 'Izgara kalınlığı', + column: { + menu: 'Sütun', + insertBefore: 'Kolon Ekle - Önce', + insertAfter: 'Kolon Ekle - Sonra', + deleteColumn: 'Sütun Sil' + }, + columns: 'Sütunlar', + deleteTable: 'Tabloyu Sil', + headers: 'Başlıklar', + headersBoth: 'Her İkisi', + headersColumn: 'İlk Sütun', + headersNone: 'Yok', + headersRow: 'İlk Satır', + heightUnit: 'yükseklik birimi', + invalidBorder: 'Çerceve büyüklüklüğü sayı olmalıdır.', + invalidCellPadding: 'Hücre aralığı (padding) sayı olmalıdır.', + invalidCellSpacing: 'Hücre boşluğu (spacing) sayı olmalıdır.', + invalidCols: 'Sütün sayısı 0 sayısından büyük olmalıdır.', + invalidHeight: 'Tablo yüksekliği sayı olmalıdır.', + invalidRows: 'Satır sayısı 0 sayısından büyük olmalıdır.', + invalidWidth: 'Tablo genişliği sayı olmalıdır.', + menu: 'Tablo Özellikleri', + row: { + menu: 'Satır', + insertBefore: 'Satır Ekle - Önce', + insertAfter: 'Satır Ekle - Sonra', + deleteRow: 'Satır Sil' + }, + rows: 'Satırlar', + summary: 'Özet', + title: 'Tablo Özellikleri', + toolbar: 'Tablo', + widthPc: 'yüzde', + widthPx: 'piksel', + widthUnit: 'genişlik birimi' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/tt.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/tt.js new file mode 100644 index 0000000000..e987973718 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/tt.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'tt', { + border: 'Чик калынлыгы', + caption: 'Исем', + cell: { + menu: 'Күзәнәк', + insertBefore: 'Алдына күзәнәк өстәү', + insertAfter: 'Артына күзәнәк өстәү', + deleteCell: 'Күзәнәкләрне бетерү', + merge: 'Күзәнәкләрне берләштерү', + mergeRight: 'Уң яктагы белән берләштерү', + mergeDown: 'Астагы белән берләштерү', + splitHorizontal: 'Күзәнәкне юлларга бүлү', + splitVertical: 'Күзәнәкне баганаларга бүлү', + title: 'Күзәнәк үзлекләре', + cellType: 'Күзәнәк төре', + rowSpan: 'Юлларны берләштерү', + colSpan: 'Баганаларны берләштерү', + wordWrap: 'Текстны күчерү', + hAlign: 'Ятма тигезләү', + vAlign: 'Асма тигезләү', + alignBaseline: 'Таяныч сызыгы', + bgColor: 'Фон төсе', + borderColor: 'Чик төсе', + data: 'Мәгълүмат', + header: 'Башлык', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Әйе', + no: 'Юк', + invalidWidth: 'Cell width must be a number.', // MISSING + invalidHeight: 'Cell height must be a number.', // MISSING + invalidRowSpan: 'Rows span must be a whole number.', // MISSING + invalidColSpan: 'Columns span must be a whole number.', // MISSING + chooseColor: 'Сайлау' + }, + cellPad: 'Cell padding', // MISSING + cellSpace: 'Cell spacing', // MISSING + column: { + menu: 'Багана', + insertBefore: 'Сулдан баганалар өстәү', + insertAfter: 'Уңнан баганалар өстәү', + deleteColumn: 'Баганаларны бетерү' + }, + columns: 'Баганалар', + deleteTable: 'Таблицаны бетерү', + headers: 'Башлыклар', + headersBoth: 'Икесе дә', + headersColumn: 'Беренче багана', + headersNone: 'Һичбер', + headersRow: 'Беренче юл', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Чик киңлеге сан булырга тиеш.', + invalidCellPadding: 'Cell padding must be a positive number.', // MISSING + invalidCellSpacing: 'Күзәнәкләр аралары уңай сан булырга тиеш.', + invalidCols: 'Number of columns must be a number greater than 0.', // MISSING + invalidHeight: 'Таблица биеклеге сан булырга тиеш.', + invalidRows: 'Number of rows must be a number greater than 0.', // MISSING + invalidWidth: 'Таблица киңлеге сан булырга тиеш', + menu: 'Таблица үзлекләре', + row: { + menu: 'Юл', + insertBefore: 'Өстән юллар өстәү', + insertAfter: 'Астан юллар өстәү', + deleteRow: 'Юлларны бетерү' + }, + rows: 'Юллар', + summary: 'Йомгаклау', + title: 'Таблица үзлекләре', + toolbar: 'Таблица', + widthPc: 'процент', + widthPx: 'Нокталар', + widthUnit: 'киңлек берәмлеге' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ug.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ug.js new file mode 100644 index 0000000000..c403ca4b70 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/ug.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'ug', { + border: 'گىرۋەك', + caption: 'ماۋزۇ', + cell: { + menu: 'كاتەكچە', + insertBefore: 'سولغا كاتەكچە قىستۇر', + insertAfter: 'ئوڭغا كاتەكچە قىستۇر', + deleteCell: 'كەتەكچە ئۆچۈر', + merge: 'كاتەكچە بىرلەشتۈر', + mergeRight: 'كاتەكچىنى ئوڭغا بىرلەشتۈر', + mergeDown: 'كاتەكچىنى ئاستىغا بىرلەشتۈر', + splitHorizontal: 'كاتەكچىنى توغرىسىغا بىرلەشتۈر', + splitVertical: 'كاتەكچىنى بويىغا بىرلەشتۈر', + title: 'كاتەكچە خاسلىقى', + cellType: 'كاتەكچە تىپى', + rowSpan: 'بويىغا چات ئارىسى قۇر سانى', + colSpan: 'توغرىسىغا چات ئارىسى ئىستون سانى', + wordWrap: 'ئۆزلۈكىدىن قۇر قاتلا', + hAlign: 'توغرىسىغا توغرىلا', + vAlign: 'بويىغا توغرىلا', + alignBaseline: 'ئاساسىي سىزىق', + bgColor: 'تەگلىك رەڭگى', + borderColor: 'گىرۋەك رەڭگى', + data: 'سانلىق مەلۇمات', + header: 'جەدۋەل باشى', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'ھەئە', + no: 'ياق', + invalidWidth: 'كاتەكچە كەڭلىكى چوقۇم سان بولىدۇ', + invalidHeight: 'كاتەكچە ئېگىزلىكى چوقۇم سان بولىدۇ', + invalidRowSpan: 'قۇر چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ ', + invalidColSpan: 'ئىستون چات ئارىسى چوقۇم پۈتۈن سان بولىدۇ', + chooseColor: 'تاللاڭ' + }, + cellPad: 'يان ئارىلىق', + cellSpace: 'ئارىلىق', + column: { + menu: 'ئىستون', + insertBefore: 'سولغا ئىستون قىستۇر', + insertAfter: 'ئوڭغا ئىستون قىستۇر', + deleteColumn: 'ئىستون ئۆچۈر' + }, + columns: 'ئىستون سانى', + deleteTable: 'جەدۋەل ئۆچۈر', + headers: 'ماۋزۇ كاتەكچە', + headersBoth: 'بىرىنچى ئىستون ۋە بىرىنچى قۇر', + headersColumn: 'بىرىنچى ئىستون', + headersNone: 'يوق', + headersRow: 'بىرىنچى قۇر', + heightUnit: 'height unit', // MISSING + invalidBorder: 'گىرۋەك توملۇقى چوقۇم سان بولىدۇ', + invalidCellPadding: 'كاتەكچىگە چوقۇم سان تولدۇرۇلىدۇ', + invalidCellSpacing: 'كاتەكچە ئارىلىقى چوقۇم سان بولىدۇ', + invalidCols: 'بەلگىلەنگەن قۇر سانى چوقۇم نۆلدىن چوڭ بولىدۇ', + invalidHeight: 'جەدۋەل ئېگىزلىكى چوقۇم سان بولىدۇ', + invalidRows: 'بەلگىلەنگەن ئىستون سانى چوقۇم نۆلدىن چوڭ بولىدۇ', + invalidWidth: 'جەدۋەل كەڭلىكى چوقۇم سان بولىدۇ', + menu: 'جەدۋەل خاسلىقى', + row: { + menu: 'قۇر', + insertBefore: 'ئۈستىگە قۇر قىستۇر', + insertAfter: 'ئاستىغا قۇر قىستۇر', + deleteRow: 'قۇر ئۆچۈر' + }, + rows: 'قۇر سانى', + summary: 'ئۈزۈندە', + title: 'جەدۋەل خاسلىقى', + toolbar: 'جەدۋەل', + widthPc: 'پىرسەنت', + widthPx: 'پىكسېل', + widthUnit: 'كەڭلىك بىرلىكى' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/uk.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/uk.js new file mode 100644 index 0000000000..9eae41b346 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/uk.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'uk', { + border: 'Розмір рамки', + caption: 'Заголовок таблиці', + cell: { + menu: 'Комірки', + insertBefore: 'Вставити комірку перед', + insertAfter: 'Вставити комірку після', + deleteCell: 'Видалити комірки', + merge: 'Об\'єднати комірки', + mergeRight: 'Об\'єднати справа', + mergeDown: 'Об\'єднати донизу', + splitHorizontal: 'Розділити комірку по горизонталі', + splitVertical: 'Розділити комірку по вертикалі', + title: 'Властивості комірки', + cellType: 'Тип комірки', + rowSpan: 'Об\'єднання рядків', + colSpan: 'Об\'єднання стовпців', + wordWrap: 'Автоперенесення тексту', + hAlign: 'Гориз. вирівнювання', + vAlign: 'Верт. вирівнювання', + alignBaseline: 'По базовій лінії', + bgColor: 'Колір фону', + borderColor: 'Колір рамки', + data: 'Дані', + header: 'Заголовок', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Так', + no: 'Ні', + invalidWidth: 'Ширина комірки повинна бути цілим числом.', + invalidHeight: 'Висота комірки повинна бути цілим числом.', + invalidRowSpan: 'Кількість об\'єднуваних рядків повинна бути цілим числом.', + invalidColSpan: 'Кількість об\'єднуваних стовбців повинна бути цілим числом.', + chooseColor: 'Обрати' + }, + cellPad: 'Внутр. відступ', + cellSpace: 'Проміжок', + column: { + menu: 'Стовбці', + insertBefore: 'Вставити стовбець перед', + insertAfter: 'Вставити стовбець після', + deleteColumn: 'Видалити стовбці' + }, + columns: 'Стовбці', + deleteTable: 'Видалити таблицю', + headers: 'Заголовки стовбців/рядків', + headersBoth: 'Стовбці і рядки', + headersColumn: 'Стовбці', + headersNone: 'Без заголовків', + headersRow: 'Рядки', + heightUnit: 'одиниця висоти', + invalidBorder: 'Розмір рамки повинен бути цілим числом.', + invalidCellPadding: 'Внутр. відступ комірки повинен бути цілим числом.', + invalidCellSpacing: 'Проміжок між комірками повинен бути цілим числом.', + invalidCols: 'Кількість стовбців повинна бути більшою 0.', + invalidHeight: 'Висота таблиці повинна бути цілим числом.', + invalidRows: 'Кількість рядків повинна бути більшою 0.', + invalidWidth: 'Ширина таблиці повинна бути цілим числом.', + menu: 'Властивості таблиці', + row: { + menu: 'Рядки', + insertBefore: 'Вставити рядок перед', + insertAfter: 'Вставити рядок після', + deleteRow: 'Видалити рядки' + }, + rows: 'Рядки', + summary: 'Детальний опис заголовку таблиці', + title: 'Властивості таблиці', + toolbar: 'Таблиця', + widthPc: 'відсотків', + widthPx: 'пікселів', + widthUnit: 'одиниця ширини' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/vi.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/vi.js new file mode 100644 index 0000000000..e2169e7d0a --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/vi.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'vi', { + border: 'Kích thước đường viền', + caption: 'Đầu đề', + cell: { + menu: 'Ô', + insertBefore: 'Chèn ô Phía trước', + insertAfter: 'Chèn ô Phía sau', + deleteCell: 'Xoá ô', + merge: 'Kết hợp ô', + mergeRight: 'Kết hợp sang phải', + mergeDown: 'Kết hợp xuống dưới', + splitHorizontal: 'Phân tách ô theo chiều ngang', + splitVertical: 'Phân tách ô theo chiều dọc', + title: 'Thuộc tính của ô', + cellType: 'Kiểu của ô', + rowSpan: 'Kết hợp hàng', + colSpan: 'Kết hợp cột', + wordWrap: 'Chữ liền hàng', + hAlign: 'Canh lề ngang', + vAlign: 'Canh lề dọc', + alignBaseline: 'Đường cơ sở', + bgColor: 'Màu nền', + borderColor: 'Màu viền', + data: 'Dữ liệu', + header: 'Đầu đề', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: 'Có', + no: 'Không', + invalidWidth: 'Chiều rộng của ô phải là một số nguyên.', + invalidHeight: 'Chiều cao của ô phải là một số nguyên.', + invalidRowSpan: 'Số hàng kết hợp phải là một số nguyên.', + invalidColSpan: 'Số cột kết hợp phải là một số nguyên.', + chooseColor: 'Chọn màu' + }, + cellPad: 'Khoảng đệm giữ ô và nội dung', + cellSpace: 'Khoảng cách giữa các ô', + column: { + menu: 'Cột', + insertBefore: 'Chèn cột phía trước', + insertAfter: 'Chèn cột phía sau', + deleteColumn: 'Xoá cột' + }, + columns: 'Số cột', + deleteTable: 'Xóa bảng', + headers: 'Đầu đề', + headersBoth: 'Cả hai', + headersColumn: 'Cột đầu tiên', + headersNone: 'Không có', + headersRow: 'Hàng đầu tiên', + heightUnit: 'height unit', // MISSING + invalidBorder: 'Kích cỡ của đường biên phải là một số nguyên.', + invalidCellPadding: 'Khoảng đệm giữa ô và nội dung phải là một số nguyên.', + invalidCellSpacing: 'Khoảng cách giữa các ô phải là một số nguyên.', + invalidCols: 'Số lượng cột phải là một số lớn hơn 0.', + invalidHeight: 'Chiều cao của bảng phải là một số nguyên.', + invalidRows: 'Số lượng hàng phải là một số lớn hơn 0.', + invalidWidth: 'Chiều rộng của bảng phải là một số nguyên.', + menu: 'Thuộc tính bảng', + row: { + menu: 'Hàng', + insertBefore: 'Chèn hàng phía trước', + insertAfter: 'Chèn hàng phía sau', + deleteRow: 'Xoá hàng' + }, + rows: 'Số hàng', + summary: 'Tóm lược', + title: 'Thuộc tính bảng', + toolbar: 'Bảng', + widthPc: 'Phần trăm (%)', + widthPx: 'Điểm ảnh (px)', + widthUnit: 'Đơn vị' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/zh-cn.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/zh-cn.js new file mode 100644 index 0000000000..423c5f5adc --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/zh-cn.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'zh-cn', { + border: '边框', + caption: '标题', + cell: { + menu: '单元格', + insertBefore: '在左侧插入单元格', + insertAfter: '在右侧插入单元格', + deleteCell: '删除单元格', + merge: '合并单元格', + mergeRight: '向右合并单元格', + mergeDown: '向下合并单元格', + splitHorizontal: '水平拆分单元格', + splitVertical: '垂直拆分单元格', + title: '单元格属性', + cellType: '单元格类型', + rowSpan: '纵跨行数', + colSpan: '横跨列数', + wordWrap: '自动换行', + hAlign: '水平对齐', + vAlign: '垂直对齐', + alignBaseline: '基线', + bgColor: '背景颜色', + borderColor: '边框颜色', + data: '数据', + header: '表头', + columnHeader: 'Column Header', // MISSING + rowHeader: 'Row Header', // MISSING + yes: '是', + no: '否', + invalidWidth: '单元格宽度必须为数字格式', + invalidHeight: '单元格高度必须为数字格式', + invalidRowSpan: '行跨度必须为整数格式', + invalidColSpan: '列跨度必须为整数格式', + chooseColor: '选择' + }, + cellPad: '边距', + cellSpace: '间距', + column: { + menu: '列', + insertBefore: '在左侧插入列', + insertAfter: '在右侧插入列', + deleteColumn: '删除列' + }, + columns: '列数', + deleteTable: '删除表格', + headers: '标题单元格', + headersBoth: '第一列和第一行', + headersColumn: '第一列', + headersNone: '无', + headersRow: '第一行', + heightUnit: '高度单位', + invalidBorder: '边框粗细必须为数字格式', + invalidCellPadding: '单元格填充必须为数字格式', + invalidCellSpacing: '单元格间距必须为数字格式', + invalidCols: '指定的行数必须大于零', + invalidHeight: '表格高度必须为数字格式', + invalidRows: '指定的列数必须大于零', + invalidWidth: '表格宽度必须为数字格式', + menu: '表格属性', + row: { + menu: '行', + insertBefore: '在上方插入行', + insertAfter: '在下方插入行', + deleteRow: '删除行' + }, + rows: '行数', + summary: '摘要', + title: '表格属性', + toolbar: '表格', + widthPc: '百分比', + widthPx: '像素', + widthUnit: '宽度单位' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/zh.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/zh.js new file mode 100644 index 0000000000..aa3cbdf03c --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/lang/zh.js @@ -0,0 +1,77 @@ +/* +Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. +CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. +*/ +CKEDITOR.plugins.setLang( 'table', 'zh', { + border: '框線大小', + caption: '標題', + cell: { + menu: '儲存格', + insertBefore: '前方插入儲存格', + insertAfter: '後方插入儲存格', + deleteCell: '刪除儲存格', + merge: '合併儲存格', + mergeRight: '向右合併', + mergeDown: '向下合併', + splitHorizontal: '水平分割儲存格', + splitVertical: '垂直分割儲存格', + title: '儲存格屬性', + cellType: '儲存格類型', + rowSpan: '行全長', + colSpan: '列全長', + wordWrap: '自動斷行', + hAlign: '水平對齊', + vAlign: '垂直對齊', + alignBaseline: '基準線', + bgColor: '背景顏色', + borderColor: '框線顏色', + data: '資料', + header: '頁首', + columnHeader: '欄標題', + rowHeader: '列標題', + yes: '是', + no: '否', + invalidWidth: '儲存格寬度必須為數字。', + invalidHeight: '儲存格高度必須為數字。', + invalidRowSpan: '行全長必須是整數。', + invalidColSpan: '列全長必須是整數。', + chooseColor: '選擇' + }, + cellPad: '儲存格邊距', + cellSpace: '儲存格間距', + column: { + menu: '列', + insertBefore: '左方插入列', + insertAfter: '右方插入列', + deleteColumn: '刪除列' + }, + columns: '列', + deleteTable: '刪除表格', + headers: '頁首', + headersBoth: '同時', + headersColumn: '第一列', + headersNone: '無', + headersRow: '第一行', + heightUnit: '高度單位', + invalidBorder: '框線大小必須是整數。', + invalidCellPadding: '儲存格邊距必須為正數。', + invalidCellSpacing: '儲存格間距必須為正數。', + invalidCols: '列數須為大於 0 的正整數。', + invalidHeight: '表格高度必須為數字。', + invalidRows: '行數須為大於 0 的正整數。', + invalidWidth: '表格寬度必須為數字。', + menu: '表格屬性', + row: { + menu: '行', + insertBefore: '上方插入行', + insertAfter: '下方插入行', + deleteRow: '刪除行' + }, + rows: '行', + summary: '總結', + title: '表格屬性', + toolbar: '表格', + widthPc: '百分比', + widthPx: '像素', + widthUnit: '寬度單位' +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/plugin.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/plugin.js new file mode 100644 index 0000000000..83ecfb9945 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/table/plugin.js @@ -0,0 +1,141 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +CKEDITOR.plugins.add( 'table', { + requires: 'dialog', + // jscs:disable maximumLineLength + lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + // jscs:enable maximumLineLength + icons: 'table', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + init: function( editor ) { + if ( editor.blockless ) + return; + + var lang = editor.lang.table; + + editor.addCommand( 'table', new CKEDITOR.dialogCommand( 'table', { + context: 'table', + allowedContent: 'table{width,height,border-collapse}[align,border,cellpadding,cellspacing,summary];' + + 'caption tbody thead tfoot;' + + 'th td tr[scope];' + + 'td{border*,background-color,vertical-align,width,height}[colspan,rowspan];' + + ( editor.plugins.dialogadvtab ? 'table' + editor.plugins.dialogadvtab.allowedContent() : '' ), + requiredContent: 'table', + contentTransformations: [ + [ 'table{width}: sizeToStyle', 'table[width]: sizeToAttribute' ], + [ 'td: splitBorderShorthand' ], + [ { + element: 'table', + right: function( element ) { + if ( element.styles ) { + var parsedStyle; + if ( element.styles.border ) { + parsedStyle = CKEDITOR.tools.style.parse.border( element.styles.border ); + } else if ( CKEDITOR.env.ie && CKEDITOR.env.version === 8 ) { + var styleData = element.styles; + // Workaround for IE8 browser. It transforms CSS border shorthand property + // to the longer one, consisting of border-top, border-right, etc. We have to check + // if all those properties exists and have the same value (#566). + if ( styleData[ 'border-left' ] && styleData[ 'border-left' ] === styleData[ 'border-right' ] && + styleData[ 'border-right' ] === styleData[ 'border-top' ] && + styleData[ 'border-top' ] === styleData[ 'border-bottom' ] ) { + + parsedStyle = CKEDITOR.tools.style.parse.border( styleData[ 'border-top' ] ); + } + } + if ( parsedStyle && parsedStyle.style && parsedStyle.style === 'solid' && + parsedStyle.width && parseFloat( parsedStyle.width ) !== 0 ) { + element.attributes.border = 1; + } + if ( element.styles[ 'border-collapse' ] == 'collapse' ) { + element.attributes.cellspacing = 0; + } + } + } + } ] + ] + } ) ); + + function createDef( def ) { + return CKEDITOR.tools.extend( def || {}, { + contextSensitive: 1, + refresh: function( editor, path ) { + this.setState( path.contains( 'table', 1 ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED ); + } + } ); + } + + editor.addCommand( 'tableProperties', new CKEDITOR.dialogCommand( 'tableProperties', createDef() ) ); + editor.addCommand( 'tableDelete', createDef( { + exec: function( editor ) { + var path = editor.elementPath(), + table = path.contains( 'table', 1 ); + + if ( !table ) + return; + + // If the table's parent has only one child remove it as well (unless it's a table cell, or the editable element) + //(https://dev.ckeditor.com/ticket/5416, https://dev.ckeditor.com/ticket/6289, https://dev.ckeditor.com/ticket/12110) + var parent = table.getParent(), + editable = editor.editable(); + + if ( parent.getChildCount() == 1 && !parent.is( 'td', 'th' ) && !parent.equals( editable ) ) + table = parent; + + var range = editor.createRange(); + range.moveToPosition( table, CKEDITOR.POSITION_BEFORE_START ); + table.remove(); + range.select(); + } + } ) ); + + editor.ui.addButton && editor.ui.addButton( 'Table', { + label: lang.toolbar, + command: 'table', + toolbar: 'insert,30' + } ); + + CKEDITOR.dialog.add( 'table', this.path + 'dialogs/table.js' ); + CKEDITOR.dialog.add( 'tableProperties', this.path + 'dialogs/table.js' ); + + // If the "menu" plugin is loaded, register the menu items. + if ( editor.addMenuItems ) { + editor.addMenuItems( { + table: { + label: lang.menu, + command: 'tableProperties', + group: 'table', + order: 5 + }, + + tabledelete: { + label: lang.deleteTable, + command: 'tableDelete', + group: 'table', + order: 1 + } + } ); + } + + editor.on( 'doubleclick', function( evt ) { + var element = evt.data.element; + + if ( element.is( 'table' ) ) + evt.data.dialog = 'tableProperties'; + } ); + + // If the "contextmenu" plugin is loaded, register the listeners. + if ( editor.contextMenu ) { + editor.contextMenu.addListener( function() { + // menu item state is resolved on commands. + return { + tabledelete: CKEDITOR.TRISTATE_OFF, + table: CKEDITOR.TRISTATE_OFF + }; + } ); + } + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/tabletools/dialogs/tableCell.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/tabletools/dialogs/tableCell.js index c7c2f7d1c4..33149d1384 100644 --- a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/tabletools/dialogs/tableCell.js +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/tabletools/dialogs/tableCell.js @@ -1,18 +1,591 @@ -/* - Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -CKEDITOR.dialog.add("cellProperties",function(h){function k(a){return{isSpacer:!0,type:"html",html:"\x26nbsp;",requiredContent:a?a:void 0}}function r(){return{type:"vbox",padding:0,children:[]}}function t(a){return{requiredContent:"td{"+a+"}",type:"hbox",widths:["70%","30%"],children:[{type:"text",id:a,width:"100px",label:e[a],validate:n.number(d["invalid"+CKEDITOR.tools.capitalize(a)]),onLoad:function(){var b=this.getDialog().getContentElement("info",a+"Type").getElement(),c=this.getInputElement(), -d=c.getAttribute("aria-labelledby");c.setAttribute("aria-labelledby",[d,b.$.id].join(" "))},setup:f(function(b){var c=parseFloat(b.getAttribute(a),10);b=parseFloat(b.getStyle(a),10);if(!isNaN(b))return b;if(!isNaN(c))return c}),commit:function(b){var c=parseFloat(this.getValue(),10),d=this.getDialog().getValueOf("info",a+"Type")||u(b,a);isNaN(c)?b.removeStyle(a):b.setStyle(a,c+d);b.removeAttribute(a)},"default":""},{type:"select",id:a+"Type",label:h.lang.table[a+"Unit"],labelStyle:"visibility:hidden;display:block;width:0;overflow:hidden", -"default":"px",items:[[p.widthPx,"px"],[p.widthPc,"%"]],setup:f(function(b){return u(b,a)})}]}}function f(a){return function(b){for(var c=a(b[0]),d=1;d=m/2?g[2].children.push(a):g[0].children.push(a)});CKEDITOR.tools.array.forEach(g,function(a){a.isSpacer||(a=a.children,a[a.length-1].isSpacer&&a.pop())});return{title:d.title,minWidth:1===g.length?205:410,minHeight:50,contents:[{id:"info",label:d.title,accessKey:"I",elements:[{type:"hbox",widths:1===g.length?["100%"]:["40%","5%","40%"],children:g}]}],getModel:function(a){return CKEDITOR.plugins.tabletools.getSelectedCells(a.getSelection())},onShow:function(){var a=this.getModel(this.getParentEditor()); -this.setupContent(a)},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.getParentEditor(),d=this.getModel(c),e=0;e 5 ) { + children = children.concat( [ createSpacer(), createColumn() ] ); + } + + CKEDITOR.tools.array.forEach( items, function( item ) { + if ( !item.isSpacer ) { + index++; + } + if ( itemsCount > 5 && index >= itemsCount / 2 ) { + children[ 2 ].children.push( item ); + } else { + children[ 0 ].children.push( item ); + } + } ); + + CKEDITOR.tools.array.forEach( children, function( item ) { + if ( item.isSpacer ) { + return; + } + + var children = item.children; + + if ( children[ children.length - 1 ].isSpacer ) { + children.pop(); + } + } ); + + return { + title: langCell.title, + minWidth: children.length === 1 ? 205 : 410, + minHeight: 50, + contents: [ { + id: 'info', + label: langCell.title, + accessKey: 'I', + elements: [ { + type: 'hbox', + widths: children.length === 1 ? [ '100%' ] : [ '40%', '5%', '40%' ], + children: children + } ] + } ], + getModel: function( editor ) { + return CKEDITOR.plugins.tabletools.getSelectedCells( editor.getSelection() ); + }, + onShow: function() { + var cells = this.getModel( this.getParentEditor() ); + this.setupContent( cells ); + }, + onOk: function() { + var selection = this._.editor.getSelection(), + bookmarks = selection.createBookmarks(), + editor = this.getParentEditor(), + cells = this.getModel( editor ); + + for ( var i = 0; i < cells.length; i++ ) { + this.commitContent( cells[ i ] ); + } + + editor.forceNextSelectionCheck(); + selection.selectBookmarks( bookmarks ); + editor.selectionChange(); + }, + onLoad: function() { + var saved = {}; + + // Prevent from changing cell properties when the field's value + // remains unaltered, i.e. when selected multiple cells and dialog loaded + // only the properties of the first cell (https://dev.ckeditor.com/ticket/11439). + this.foreach( function( field ) { + if ( !field.setup || !field.commit ) { + return; + } + + // Save field's value every time after "setup" is called. + field.setup = CKEDITOR.tools.override( field.setup, function( orgSetup ) { + return function() { + orgSetup.apply( this, arguments ); + saved[ field.id ] = field.getValue(); + }; + } ); + + // Compare saved value with actual value. Update cell only if value has changed. + field.commit = CKEDITOR.tools.override( field.commit, function( orgCommit ) { + return function() { + if ( saved[ field.id ] !== field.getValue() ) { + orgCommit.apply( this, arguments ); + } + }; + } ); + } ); + } + }; + + function createSpacer( requiredContent ) { + return { + isSpacer: true, + type: 'html', + html: ' ', + requiredContent: requiredContent ? requiredContent : undefined + }; + } + + function createColumn() { + return { + type: 'vbox', + padding: 0, + children: [] + }; + } + + function getCellSizeFieldDefinition( fieldName ) { + return { + requiredContent: 'td{' + fieldName + '}', + type: 'hbox', + widths: [ '70%', '30%' ], + children: [ { + type: 'text', + id: fieldName, + width: '100px', + label: langCommon[ fieldName ], + validate: validate.number( langCell[ 'invalid' + CKEDITOR.tools.capitalize( fieldName ) ] ), + + // Extra labelling of unit type. + onLoad: function() { + var unitType = this.getDialog().getContentElement( 'info', fieldName + 'Type' ), + labelElement = unitType.getElement(), + inputElement = this.getInputElement(), + ariaLabelledByAttr = inputElement.getAttribute( 'aria-labelledby' ); + + inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) ); + }, + + setup: setupCells( function( element ) { + var attr = parseFloat( element.getAttribute( fieldName ), 10 ), + style = parseFloat( element.getStyle( fieldName ), 10 ); + + if ( !isNaN( style ) ) { + return style; + } + if ( !isNaN( attr ) ) { + return attr; + } + + return; + + } ), + commit: function( element ) { + var value = parseFloat( this.getValue(), 10 ), + + // There might be no unit type, i.e. when multiple cells are + // selected but some of them have size expressed in pixels and some + // of them in percent. Try to re-read the unit from the cell in such + // case (https://dev.ckeditor.com/ticket/11439). + unit = this.getDialog().getValueOf( 'info', fieldName + 'Type' ) || getCellSizeUnitType( element, fieldName ); + + if ( !isNaN( value ) ) { + element.setStyle( fieldName, value + unit ); + } else { + element.removeStyle( fieldName ); + } + + element.removeAttribute( fieldName ); + }, + 'default': '' + }, { + type: 'select', + id: fieldName + 'Type', + label: editor.lang.table[ fieldName + 'Unit' ], + labelStyle: 'visibility:hidden;display:block;width:0;overflow:hidden', + 'default': 'px', + items: [ + // 'widthPx' and 'widthPc' are also used for height to avoid additional translations. + [ langTable.widthPx, 'px' ], + [ langTable.widthPc, '%' ] + ], + setup: setupCells( function( element ) { + return getCellSizeUnitType( element, fieldName ); + } ) + } ] + }; + } + + // Returns a function that runs a regular "setup" for all selected cells to find out + // whether the initial value of the field would be the same for all cells. If so, + // the value is displayed just as if a regular "setup" was executed. Otherwise, + // when there are several cells with a different value of the property, a field + // gets an empty value. + // + // * @param {Function} setup Setup function which returns a value instead of setting it. + // * @returns {Function} A function to be used in the dialog definition. + function setupCells( setup ) { + return function( cells ) { + var fieldValue = setup( cells[ 0 ] ); + + // If one of the cells would have a different value of the + // property, set the empty value for a field. + for ( var i = 1; i < cells.length; i++ ) { + if ( setup( cells[ i ] ) !== fieldValue ) { + fieldValue = null; + break; + } + } + + // Setting meaningful or empty value only makes sense + // when setup returns some value. Otherwise, a *default* value + // is used for that field. + if ( typeof fieldValue != 'undefined' ) { + this.setValue( fieldValue ); + + // The only way to have an empty select value in Firefox is + // to set a negative selectedIndex. + if ( CKEDITOR.env.gecko && this.type == 'select' && !fieldValue ) { + this.getInputElement().$.selectedIndex = -1; + } + } + }; + } + + // Reads the unit of target property of the table cell. + // + // * @param {CKEDITOR.dom.element} cell An element representing the table cell. + // * @returns {String} Current unit: 'px', '%' or undefined if none. + function getCellSizeUnitType( cell, field ) { + var unitPattern = /^(\d+(?:\.\d+)?)(px|%)$/, + match = unitPattern.exec( + cell.getStyle( field ) || cell.getAttribute( field ) + ); + + if ( match ) { + return match[ 2 ]; + } + } + + function getColorForCell( button, elementId ) { + editor.getColorFromDialog( function( color ) { + if ( color ) { + button.getDialog().getContentElement( 'info', elementId ).setValue( color ); + } + button.focus(); + }, button ); + } + + function applyColorToCell( element, selectedCell, property ) { + var value = element.getValue(); + + if ( value ) { + selectedCell.setStyle( property, value ); + } else { + selectedCell.removeStyle( property ); + } + + if ( property == 'background-color' ) { + selectedCell.removeAttribute( 'bgColor' ); + } else if ( property == 'border-color' ) { + selectedCell.removeAttribute( 'borderColor' ); + } + } + + function getAvailableCellTypes( editor ) { + if ( editor.config.tabletools_scopedHeaders ) { + return [ + [ langCell.data, 'td' ], + [ langCell.columnHeader, 'thc' ], + [ langCell.rowHeader, 'thr' ] + ]; + } + + return [ + [ langCell.data, 'td' ], + [ langCell.header, 'th' ] + ]; + } +} ); diff --git a/commons-extension-webapp/src/main/webapp/ckeditor/plugins/tabletools/plugin.js b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/tabletools/plugin.js new file mode 100644 index 0000000000..96712efe59 --- /dev/null +++ b/commons-extension-webapp/src/main/webapp/ckeditor/plugins/tabletools/plugin.js @@ -0,0 +1,1322 @@ +/** + * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. + * CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model. + */ + +( function() { + var isArray = CKEDITOR.tools.isArray; + + function getSelectedCells( selection, table ) { + var retval = [], + database = {}; + + if ( !selection ) { + return retval; + } + + var ranges = selection.getRanges(); + + function isInTable( cell ) { + if ( !table ) { + return true; + } + + return table.contains( cell ) && cell.getAscendant( 'table', true ).equals( table ); + } + + function moveOutOfCellGuard( node ) { + var cellNodeRegex = /^(?:td|th)$/; + + // Apply to the first cell only. + if ( retval.length > 0 ) { + return; + } + + // If we are exiting from the first , then the td should definitely be + // included. + if ( node.type == CKEDITOR.NODE_ELEMENT && cellNodeRegex.test( node.getName() ) && !node.getCustomData( 'selected_cell' ) ) { + CKEDITOR.dom.element.setMarker( database, node, 'selected_cell', true ); + retval.push( node ); + } + } + + for ( var i = 0; i < ranges.length; i++ ) { + var range = ranges[ i ]; + + if ( range.collapsed ) { + // Walker does not handle collapsed ranges yet - fall back to old API. + var startNode = range.getCommonAncestor(), + nearestCell = startNode.getAscendant( { td: 1, th: 1 }, true ); + + if ( nearestCell && isInTable( nearestCell ) ) { + retval.push( nearestCell ); + } + } else { + var walker = new CKEDITOR.dom.walker( range ), + node; + + walker.guard = moveOutOfCellGuard; + + while ( ( node = walker.next() ) ) { + // If may be possible for us to have a range like this: + // ^1^2 + // The 2nd td shouldn't be included. + // + // So we have to take care to include a td we've entered only when we've + // walked into its children. + + if ( node.type != CKEDITOR.NODE_ELEMENT || !node.is( CKEDITOR.dtd.table ) ) { + var parent = node.getAscendant( { td: 1, th: 1 }, true ); + + if ( parent && !parent.getCustomData( 'selected_cell' ) && isInTable( parent ) ) { + CKEDITOR.dom.element.setMarker( database, parent, 'selected_cell', true ); + retval.push( parent ); + } + } + } + } + } + + CKEDITOR.dom.element.clearAllMarkers( database ); + + return retval; + } + + function getFocusElementAfterDelCells( cellsToDelete ) { + var i = 0, + last = cellsToDelete.length - 1, + database = {}, + cell, + focusedCell, + tr; + + while ( ( cell = cellsToDelete[ i++ ] ) ) { + CKEDITOR.dom.element.setMarker( database, cell, 'delete_cell', true ); + } + + // 1. At first we check left or right side focusable cell row by row; + i = 0; + while ( ( cell = cellsToDelete[ i++ ] ) ) { + if ( ( focusedCell = cell.getPrevious() ) && !focusedCell.getCustomData( 'delete_cell' ) || ( focusedCell = cell.getNext() ) && !focusedCell.getCustomData( 'delete_cell' ) ) { + CKEDITOR.dom.element.clearAllMarkers( database ); + return focusedCell; + } + } + + CKEDITOR.dom.element.clearAllMarkers( database ); + + // 2. then we check the toppest row (outside the selection area square) focusable cell; + tr = cellsToDelete[ 0 ].getParent(); + if ( ( tr = tr.getPrevious() ) ) { + return tr.getLast(); + } + + // 3. last we check the lowerest row focusable cell. + tr = cellsToDelete[ last ].getParent(); + if ( ( tr = tr.getNext() ) ) { + return tr.getChild( 0 ); + } + + return null; + } + + function insertRow( selectionOrCells, insertBefore ) { + var cells = isArray( selectionOrCells ) ? selectionOrCells : getSelectedCells( selectionOrCells ), + firstCell = cells[ 0 ], + table = firstCell.getAscendant( 'table' ), + doc = firstCell.getDocument(), + startRow = cells[ 0 ].getParent(), + startRowIndex = startRow.$.rowIndex, + lastCell = cells[ cells.length - 1 ], + endRowIndex = lastCell.getParent().$.rowIndex + lastCell.$.rowSpan - 1, + endRow = new CKEDITOR.dom.element( table.$.rows[ endRowIndex ] ), + rowIndex = insertBefore ? startRowIndex : endRowIndex, + row = insertBefore ? startRow : endRow, + map = CKEDITOR.tools.buildTableMap( table ), + cloneRow = map[ rowIndex ], + nextRow = insertBefore ? map[ rowIndex - 1 ] : map[ rowIndex + 1 ], + width = map[ 0 ].length, + newRow = doc.createElement( 'tr' ); + + for ( var i = 0; cloneRow[ i ] && i < width; i++ ) { + var cell; + // Check whether there's a spanning row here, do not break it. + if ( cloneRow[ i ].rowSpan > 1 && nextRow && cloneRow[ i ] == nextRow[ i ] ) { + cell = cloneRow[ i ]; + cell.rowSpan += 1; + } else { + cell = new CKEDITOR.dom.element( cloneRow[ i ] ).clone(); + cell.removeAttribute( 'rowSpan' ); + cell.appendBogus(); + newRow.append( cell ); + cell = cell.$; + } + + i += cell.colSpan - 1; + } + + insertBefore ? newRow.insertBefore( row ) : newRow.insertAfter( row ); + + return newRow; + } + + function deleteRows( selectionOrRow ) { + if ( selectionOrRow instanceof CKEDITOR.dom.selection ) { + var ranges = selectionOrRow.getRanges(), + cells = getSelectedCells( selectionOrRow ), + firstCell = cells[ 0 ], + table = firstCell.getAscendant( 'table' ), + map = CKEDITOR.tools.buildTableMap( table ), + startRow = cells[ 0 ].getParent(), + startRowIndex = startRow.$.rowIndex, + lastCell = cells[ cells.length - 1 ], + endRowIndex = lastCell.getParent().$.rowIndex + lastCell.$.rowSpan - 1, + rowsToDelete = []; + + selectionOrRow.reset(); + + // Delete cell or reduce cell spans by checking through the table map. + for ( var i = startRowIndex; i <= endRowIndex; i++ ) { + var mapRow = map[ i ], + row = new CKEDITOR.dom.element( table.$.rows[ i ] ); + + for ( var j = 0; j < mapRow.length; j++ ) { + var cell = new CKEDITOR.dom.element( mapRow[ j ] ), + cellRowIndex = cell.getParent().$.rowIndex; + + if ( cell.$.rowSpan == 1 ) { + cell.remove(); + } + // Row spanned cell. + else { + // Span row of the cell, reduce spanning. + cell.$.rowSpan -= 1; + // Root row of the cell, root cell to next row. + if ( cellRowIndex == i ) { + var nextMapRow = map[ i + 1 ]; + nextMapRow[ j - 1 ] ? cell.insertAfter( new CKEDITOR.dom.element( nextMapRow[ j - 1 ] ) ) : new CKEDITOR.dom.element( table.$.rows[ i + 1 ] ).append( cell, 1 ); + } + } + + j += cell.$.colSpan - 1; + } + + rowsToDelete.push( row ); + } + + var rows = table.$.rows; + + // After deleting whole table, the selection would be broken, + // therefore it's safer to move it outside the table first. + ranges[ 0 ].moveToPosition( table, CKEDITOR.POSITION_BEFORE_START ); + + // Where to put the cursor after rows been deleted? + // 1. Into next sibling row if any; + // 2. Into previous sibling row if any; + // 3. Into table's parent element if it's the very last row. + var cursorPosition = new CKEDITOR.dom.element( rows[ endRowIndex + 1 ] || ( startRowIndex > 0 ? rows[ startRowIndex - 1 ] : null ) || table.$.parentNode ); + + for ( i = rowsToDelete.length; i >= 0; i-- ) { + deleteRows( rowsToDelete[ i ] ); + } + + // If all the rows were removed, table gets removed too. + if ( !table.$.parentNode ) { + ranges[ 0 ].select(); + return null; + } + + return cursorPosition; + } else if ( selectionOrRow instanceof CKEDITOR.dom.element ) { + table = selectionOrRow.getAscendant( 'table' ); + + if ( table.$.rows.length == 1 ) { + table.remove(); + } else { + selectionOrRow.remove(); + } + } + + return null; + } + + function getCellColIndex( cell ) { + var row = cell.getParent(), + rowCells = row.$.cells; + + var colIndex = 0; + for ( var i = 0; i < rowCells.length; i++ ) { + var mapCell = rowCells[ i ]; + + // Not always adding colSpan results in wrong position + // of newly inserted column. (#591) (https://dev.ckeditor.com/ticket/13729) + colIndex += mapCell.colSpan; + if ( mapCell == cell.$ ) { + break; + } + } + + return colIndex - 1; + } + + function getColumnsIndices( cells, isStart ) { + var retval = isStart ? Infinity : 0; + + for ( var i = 0; i < cells.length; i++ ) { + var colIndex = getCellColIndex( cells[ i ] ); + + if ( isStart ? colIndex < retval : colIndex > retval ) { + retval = colIndex; + } + } + return retval; + } + + function insertColumn( selectionOrCells, insertBefore ) { + var cells = isArray( selectionOrCells ) ? selectionOrCells : getSelectedCells( selectionOrCells ), + firstCell = cells[ 0 ], + table = firstCell.getAscendant( 'table' ), + startCol = getColumnsIndices( cells, 1 ), + lastCol = getColumnsIndices( cells ), + colIndex = insertBefore ? startCol : lastCol, + map = CKEDITOR.tools.buildTableMap( table ), + cloneCol = [], + nextCol = [], + addedCells = [], + height = map.length, + originalCell; + + for ( var i = 0; i < height; i++ ) { + var nextCell = insertBefore ? map[ i ][ colIndex - 1 ] : map[ i ][ colIndex + 1 ]; + + cloneCol.push( map[ i ][ colIndex ] ); + nextCol.push( nextCell ); + } + + for ( i = 0; i < height; i++ ) { + var cell; + + if ( !cloneCol[ i ] ) { + continue; + } + + // Check whether there's a spanning column here, do not break it. + if ( cloneCol[ i ].colSpan > 1 && nextCol[ i ] == cloneCol[ i ] ) { + cell = cloneCol[ i ]; + cell.colSpan += 1; + } else { + originalCell = new CKEDITOR.dom.element( cloneCol[ i ] ); + cell = originalCell.clone(); + cell.removeAttribute( 'colSpan' ); + cell.appendBogus(); + cell[ insertBefore ? 'insertBefore' : 'insertAfter' ].call( cell, originalCell ); + addedCells.push( cell ); + cell = cell.$; + } + + i += cell.rowSpan - 1; + } + + return addedCells; + } + + function deleteColumns( selection ) { + function processSelection( selection ) { + // If selection leak to next td/th cell, then preserve it in previous cell. + + var ranges = selection.getRanges(), + range, + endNode, + endNodeName, + previous; + + if ( ranges.length !== 1 ) { + return selection; + } + + range = ranges[ 0 ]; + if ( range.collapsed || range.endOffset !== 0 ) { + return selection; + } + + endNode = range.endContainer; + endNodeName = endNode.getName().toLowerCase(); + if ( !( endNodeName === 'td' || endNodeName === 'th' ) ) { + return selection; + } + + // Get previous td/th element or the last from previous row. + previous = endNode.getPrevious(); + if ( !previous ) { + previous = endNode.getParent().getPrevious().getLast(); + } + + // Get most inner text node or br in case of empty cell. + while ( previous.type !== CKEDITOR.NODE_TEXT && previous.getName().toLowerCase() !== 'br' ) { + previous = previous.getLast(); + // Generraly previous should never be null, if statement is just for possible weird edge cases. + if ( !previous ) { + return selection; + } + } + + range.setEndAt( previous, CKEDITOR.POSITION_BEFORE_END ); + return range.select(); + } + + // Problem occures only on webkit in case of native selection (#577). + // Upstream: https://bugs.webkit.org/show_bug.cgi?id=175131, https://bugs.chromium.org/p/chromium/issues/detail?id=752091 + if ( CKEDITOR.env.webkit && !selection.isFake ) { + selection = processSelection( selection ); + } + + var ranges = selection.getRanges(), + cells = getSelectedCells( selection ), + firstCell = cells[ 0 ], + lastCell = cells[ cells.length - 1 ], + table = firstCell.getAscendant( 'table' ), + map = CKEDITOR.tools.buildTableMap( table ), + startColIndex, endColIndex, + rowsToDelete = []; + + selection.reset(); + + // Figure out selected cells' column indices. + for ( var i = 0, rows = map.length; i < rows; i++ ) { + for ( var j = 0, cols = map[ i ].length; j < cols; j++ ) { + // #577 + // Map might contain multiple times this same element, because of existings collspan. + // We don't want to overwrite startIndex in such situation and take first one. + if ( startColIndex === undefined && map[ i ][ j ] == firstCell.$ ) { + startColIndex = j; + } + if ( map[ i ][ j ] == lastCell.$ ) { + endColIndex = j; + } + } + } + + // Delete cell or reduce cell spans by checking through the table map. + for ( i = startColIndex; i <= endColIndex; i++ ) { + for ( j = 0; j < map.length; j++ ) { + var mapRow = map[ j ], + row = new CKEDITOR.dom.element( table.$.rows[ j ] ), + cell = new CKEDITOR.dom.element( mapRow[ i ] ); + + if ( cell.$ ) { + if ( cell.$.colSpan == 1 ) { + cell.remove(); + } else { + // Reduce the col spans. + cell.$.colSpan -= 1; + } + + j += cell.$.rowSpan - 1; + + if ( !row.$.cells.length ) { + rowsToDelete.push( row ); + } + } + } + } + + // Where to put the cursor after columns been deleted? + // 1. Into next cell of the first row if any; + // 2. Into previous cell of the first row if any; + // 3. Into table's parent element; + var cursorPosition; + if ( map[ 0 ].length - 1 > endColIndex ) { + cursorPosition = new CKEDITOR.dom.element( map[ 0 ][ endColIndex + 1 ] ); + } else if ( startColIndex && map[ 0 ][ startColIndex - 1 ].cellIndex !== -1 ) { + cursorPosition = new CKEDITOR.dom.element( map[ 0 ][ startColIndex - 1 ] ); + } else { + cursorPosition = new CKEDITOR.dom.element( table.$.parentNode ); + } + + // Delete table rows only if all columns are gone (do not remove empty row). + if ( rowsToDelete.length == rows ) { + // After deleting whole table, the selection would be broken, + // therefore it's safer to move it outside the table first. + ranges[ 0 ].moveToPosition( table, CKEDITOR.POSITION_AFTER_END ); + ranges[ 0 ].select(); + + table.remove(); + } + + return cursorPosition; + } + + function insertCell( selection, insertBefore ) { + var startElement = selection.getStartElement(), + cell = startElement.getAscendant( { td: 1, th: 1 }, true ); + + if ( !cell ) { + return; + } + + // Create the new cell element to be added. + var newCell = cell.clone(); + newCell.appendBogus(); + + if ( insertBefore ) { + newCell.insertBefore( cell ); + } else { + newCell.insertAfter( cell ); + } + } + + function deleteCells( selectionOrCell ) { + if ( selectionOrCell instanceof CKEDITOR.dom.selection ) { + var ranges = selectionOrCell.getRanges(), + cellsToDelete = getSelectedCells( selectionOrCell ), + table = cellsToDelete[ 0 ] && cellsToDelete[ 0 ].getAscendant( 'table' ), + cellToFocus = getFocusElementAfterDelCells( cellsToDelete ); + + selectionOrCell.reset(); + + for ( var i = cellsToDelete.length - 1; i >= 0; i-- ) { + deleteCells( cellsToDelete[ i ] ); + } + + if ( cellToFocus ) { + placeCursorInCell( cellToFocus, true ); + } else if ( table ) { + // After deleting whole table, the selection would be broken, + // therefore it's safer to move it outside the table first. + ranges[ 0 ].moveToPosition( table, CKEDITOR.POSITION_BEFORE_START ); + ranges[ 0 ].select(); + + table.remove(); + } + } else if ( selectionOrCell instanceof CKEDITOR.dom.element ) { + var tr = selectionOrCell.getParent(); + + if ( tr.getChildCount() == 1 ) { + tr.remove(); + } else { + selectionOrCell.remove(); + } + } + } + + // Remove filler at end and empty spaces around the cell content. + function trimCell( cell ) { + var bogus = cell.getBogus(); + + bogus && bogus.remove(); + cell.trim(); + } + + function placeCursorInCell( cell, placeAtEnd ) { + var docInner = cell.getDocument(), + docOuter = CKEDITOR.document; + + // Fixing "Unspecified error" thrown in IE10 by resetting + // selection the dirty and shameful way (https://dev.ckeditor.com/ticket/10308). + // We can not apply this hack to IE8 because + // it causes error (https://dev.ckeditor.com/ticket/11058). + if ( CKEDITOR.env.ie && CKEDITOR.env.version == 10 ) { + docOuter.focus(); + docInner.focus(); + } + + var range = new CKEDITOR.dom.range( docInner ); + if ( !range[ 'moveToElementEdit' + ( placeAtEnd ? 'End' : 'Start' ) ]( cell ) ) { + range.selectNodeContents( cell ); + range.collapse( placeAtEnd ? false : true ); + } + range.select( true ); + } + + function cellInRow( tableMap, rowIndex, cell ) { + var oRow = tableMap[ rowIndex ]; + + if ( typeof cell == 'undefined' ) { + return oRow; + } + + for ( var c = 0; oRow && c < oRow.length; c++ ) { + if ( cell.is && oRow[ c ] == cell.$ ) { + return c; + } else if ( c == cell ) { + return new CKEDITOR.dom.element( oRow[ c ] ); + } + } + return cell.is ? -1 : null; + } + + function cellInCol( tableMap, colIndex ) { + var oCol = []; + for ( var r = 0; r < tableMap.length; r++ ) { + var row = tableMap[ r ]; + oCol.push( row[ colIndex ] ); + + // Avoid adding duplicate cells. + if ( row[ colIndex ].rowSpan > 1 ) { + r += row[ colIndex ].rowSpan - 1; + } + } + return oCol; + } + + function mergeCells( selection, mergeDirection, isDetect ) { + var cells = getSelectedCells( selection ), + commonAncestor; + + // Invalid merge request if: + // 1. In batch mode despite that less than two selected. + // 2. In solo mode while not exactly only one selected. + // 3. Cells distributed in different table groups (e.g. from both thead and tbody). + if ( ( mergeDirection ? cells.length != 1 : cells.length < 2 ) || + ( commonAncestor = selection.getCommonAncestor() ) && + commonAncestor.type == CKEDITOR.NODE_ELEMENT && commonAncestor.is( 'table' ) ) { + return false; + } + + var firstCell = cells[ 0 ], + table = firstCell.getAscendant( 'table' ), + map = CKEDITOR.tools.buildTableMap( table ), + mapHeight = map.length, + mapWidth = map[ 0 ].length, + startRow = firstCell.getParent().$.rowIndex, + startColumn = cellInRow( map, startRow, firstCell ), + cell; + + if ( mergeDirection ) { + var targetCell; + try { + var rowspan = parseInt( firstCell.getAttribute( 'rowspan' ), 10 ) || 1, + colspan = parseInt( firstCell.getAttribute( 'colspan' ), 10 ) || 1; + + targetCell = map[ mergeDirection == 'up' ? ( startRow - rowspan ) : mergeDirection == 'down' ? ( startRow + rowspan ) : startRow ][ + mergeDirection == 'left' ? + ( startColumn - colspan ) : + mergeDirection == 'right' ? ( startColumn + colspan ) : startColumn ]; + + } catch ( er ) { + return false; + } + + // 1. No cell could be merged. + // 2. Same cell actually. + if ( !targetCell || firstCell.$ == targetCell ) { + return false; + } + + // Sort in map order regardless of the DOM sequence. + cells[ ( mergeDirection == 'up' || mergeDirection == 'left' ) ? 'unshift' : 'push' ]( new CKEDITOR.dom.element( targetCell ) ); + } + + // Start from here are merging way ignorance (merge up/right, batch merge). + var doc = firstCell.getDocument(), + lastRowIndex = startRow, + totalRowSpan = 0, + totalColSpan = 0, + // Use a documentFragment as buffer when appending cell contents. + frag = !isDetect && new CKEDITOR.dom.documentFragment( doc ), + dimension = 0; + + for ( var i = 0; i < cells.length; i++ ) { + cell = cells[ i ]; + + var tr = cell.getParent(), + cellFirstChild = cell.getFirst(), + colSpan = cell.$.colSpan, + rowSpan = cell.$.rowSpan, + rowIndex = tr.$.rowIndex, + colIndex = cellInRow( map, rowIndex, cell ); + + // Accumulated the actual places taken by all selected cells. + dimension += colSpan * rowSpan; + // Accumulated the maximum virtual spans from column and row. + totalColSpan = Math.max( totalColSpan, colIndex - startColumn + colSpan ); + totalRowSpan = Math.max( totalRowSpan, rowIndex - startRow + rowSpan ); + + if ( !isDetect ) { + // Trim all cell fillers and check to remove empty cells. + if ( trimCell( cell ), cell.getChildren().count() ) { + // Merge vertically cells as two separated paragraphs. + if ( rowIndex != lastRowIndex && cellFirstChild && !( cellFirstChild.isBlockBoundary && cellFirstChild.isBlockBoundary( { br: 1 } ) ) ) { + var last = frag.getLast( CKEDITOR.dom.walker.whitespaces( true ) ); + if ( last && !( last.is && last.is( 'br' ) ) ) { + frag.append( 'br' ); + } + } + + cell.moveChildren( frag ); + } + i ? cell.remove() : cell.setHtml( '' ); + } + lastRowIndex = rowIndex; + } + + if ( !isDetect ) { + frag.moveChildren( firstCell ); + + firstCell.appendBogus(); + + if ( totalColSpan >= mapWidth ) { + firstCell.removeAttribute( 'rowSpan' ); + } else { + firstCell.$.rowSpan = totalRowSpan; + } + + if ( totalRowSpan >= mapHeight ) { + firstCell.removeAttribute( 'colSpan' ); + } else { + firstCell.$.colSpan = totalColSpan; + } + + // Swip empty left at the end of table due to the merging. + var trs = new CKEDITOR.dom.nodeList( table.$.rows ), + count = trs.count(); + + for ( i = count - 1; i >= 0; i-- ) { + var tailTr = trs.getItem( i ); + if ( !tailTr.$.cells.length ) { + tailTr.remove(); + count++; + continue; + } + } + + return firstCell; + } + // Be able to merge cells only if actual dimension of selected + // cells equals to the caculated rectangle. + else { + return ( totalRowSpan * totalColSpan ) == dimension; + } + } + + function horizontalSplitCell( selection, isDetect ) { + var cells = getSelectedCells( selection ); + if ( cells.length > 1 ) + return false; + else if ( isDetect ) + return true; + + var cell = cells[ 0 ], + tr = cell.getParent(), + table = tr.getAscendant( 'table' ), + map = CKEDITOR.tools.buildTableMap( table ), + rowIndex = tr.$.rowIndex, + colIndex = cellInRow( map, rowIndex, cell ), + rowSpan = cell.$.rowSpan, + newCell, newRowSpan, newCellRowSpan, newRowIndex; + + if ( rowSpan > 1 ) { + newRowSpan = Math.ceil( rowSpan / 2 ); + newCellRowSpan = Math.floor( rowSpan / 2 ); + newRowIndex = rowIndex + newRowSpan; + var newCellTr = new CKEDITOR.dom.element( table.$.rows[ newRowIndex ] ), + newCellRow = cellInRow( map, newRowIndex ), + candidateCell; + + newCell = cell.clone(); + + // Figure out where to insert the new cell by checking the vitual row. + for ( var c = 0; c < newCellRow.length; c++ ) { + candidateCell = newCellRow[ c ]; + // Catch first cell actually following the column. + if ( candidateCell.parentNode == newCellTr.$ && c > colIndex ) { + newCell.insertBefore( new CKEDITOR.dom.element( candidateCell ) ); + break; + } else { + candidateCell = null; + } + } + + // The destination row is empty, append at will. + if ( !candidateCell ) + newCellTr.append( newCell ); + } else { + newCellRowSpan = newRowSpan = 1; + + newCellTr = tr.clone(); + newCellTr.insertAfter( tr ); + newCellTr.append( newCell = cell.clone() ); + + var cellsInSameRow = cellInRow( map, rowIndex ); + for ( var i = 0; i < cellsInSameRow.length; i++ ) + cellsInSameRow[ i ].rowSpan++; + } + + newCell.appendBogus(); + + cell.$.rowSpan = newRowSpan; + newCell.$.rowSpan = newCellRowSpan; + if ( newRowSpan == 1 ) + cell.removeAttribute( 'rowSpan' ); + if ( newCellRowSpan == 1 ) + newCell.removeAttribute( 'rowSpan' ); + + return newCell; + } + + function verticalSplitCell( selection, isDetect ) { + var cells = getSelectedCells( selection ); + if ( cells.length > 1 ) + return false; + else if ( isDetect ) + return true; + + var cell = cells[ 0 ], + tr = cell.getParent(), + table = tr.getAscendant( 'table' ), + map = CKEDITOR.tools.buildTableMap( table ), + rowIndex = tr.$.rowIndex, + colIndex = cellInRow( map, rowIndex, cell ), + colSpan = cell.$.colSpan, + newCell, newColSpan, newCellColSpan; + + if ( colSpan > 1 ) { + newColSpan = Math.ceil( colSpan / 2 ); + newCellColSpan = Math.floor( colSpan / 2 ); + } else { + newCellColSpan = newColSpan = 1; + var cellsInSameCol = cellInCol( map, colIndex ); + for ( var i = 0; i < cellsInSameCol.length; i++ ) + cellsInSameCol[ i ].colSpan++; + } + newCell = cell.clone(); + newCell.insertAfter( cell ); + newCell.appendBogus(); + + cell.$.colSpan = newColSpan; + newCell.$.colSpan = newCellColSpan; + if ( newColSpan == 1 ) + cell.removeAttribute( 'colSpan' ); + if ( newCellColSpan == 1 ) + newCell.removeAttribute( 'colSpan' ); + + return newCell; + } + + CKEDITOR.plugins.tabletools = { + requires: 'table,dialog,contextmenu', + + init: function( editor ) { + var lang = editor.lang.table, + styleParse = CKEDITOR.tools.style.parse, + requiredContent = [ + 'td{width}', 'td{height}', 'td{border-color}', 'td{background-color}', 'td{white-space}', 'td{vertical-align}', 'td{text-align}', + 'td[colspan]', 'td[rowspan]', 'th' ]; + + function createDef( def ) { + return CKEDITOR.tools.extend( def || {}, { + contextSensitive: 1, + refresh: function( editor, path ) { + this.setState( path.contains( { td: 1, th: 1 }, 1 ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED ); + } + } ); + } + function addCmd( name, def ) { + var cmd = editor.addCommand( name, def ); + editor.addFeature( cmd ); + } + + addCmd( 'cellProperties', new CKEDITOR.dialogCommand( 'cellProperties', createDef( { + allowedContent: 'td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]', + requiredContent: requiredContent, + contentTransformations: [ [ { + element: 'td', + left: function( element ) { + return element.styles.background && styleParse.background( element.styles.background ).color; + }, + right: function( element ) { + element.styles[ 'background-color' ] = styleParse.background( element.styles.background ).color; + } + }, { + element: 'td', + check: 'td{vertical-align}', + left: function( element ) { + return element.attributes && element.attributes.valign; + }, + right: function( element ) { + element.styles[ 'vertical-align' ] = element.attributes.valign; + delete element.attributes.valign; + } + } + ], [ + { + // (https://dev.ckeditor.com/ticket/16818) + element: 'tr', + check: 'td{height}', + left: function( element ) { + return element.styles && element.styles.height; + }, + right: function( element ) { + CKEDITOR.tools.array.forEach( element.children, function( node ) { + if ( node.name in { td: 1, th: 1 } ) { + node.attributes[ 'cke-row-height' ] = element.styles.height; + } + } ); + + delete element.styles.height; + } + } + ], [ + { + // (https://dev.ckeditor.com/ticket/16818) + element: 'td', + check: 'td{height}', + left: function( element ) { + var attributes = element.attributes; + return attributes && attributes[ 'cke-row-height' ]; + }, + right: function( element ) { + element.styles.height = element.attributes[ 'cke-row-height' ]; + delete element.attributes[ 'cke-row-height' ]; + } + } + ] ] + } ) ) ); + CKEDITOR.dialog.add( 'cellProperties', this.path + 'dialogs/tableCell.js' ); + + addCmd( 'rowDelete', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(), + cursorPosition = deleteRows( selection ); + + if ( cursorPosition ) { + placeCursorInCell( cursorPosition ); + } + } + } ) ); + + addCmd( 'rowInsertBefore', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(), + cells = getSelectedCells( selection ); + + insertRow( cells, true ); + } + } ) ); + + addCmd( 'rowInsertAfter', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(), + cells = getSelectedCells( selection ); + + insertRow( cells ); + } + } ) ); + + addCmd( 'columnDelete', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(), + element = deleteColumns( selection ); + + if ( element ) { + placeCursorInCell( element, true ); + } + } + } ) ); + + addCmd( 'columnInsertBefore', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(), + cells = getSelectedCells( selection ); + + insertColumn( cells, true ); + } + } ) ); + + addCmd( 'columnInsertAfter', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(), + cells = getSelectedCells( selection ); + + insertColumn( cells ); + } + } ) ); + + addCmd( 'cellDelete', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(); + + deleteCells( selection ); + } + } ) ); + + addCmd( 'cellMerge', createDef( { + allowedContent: 'td[colspan,rowspan]', + requiredContent: 'td[colspan,rowspan]', + exec: function( editor, data ) { + data.cell = mergeCells( editor.getSelection() ); + + placeCursorInCell( data.cell, true ); + } + } ) ); + + addCmd( 'cellMergeRight', createDef( { + allowedContent: 'td[colspan]', + requiredContent: 'td[colspan]', + exec: function( editor, data ) { + data.cell = mergeCells( editor.getSelection(), 'right' ); + + placeCursorInCell( data.cell, true ); + } + } ) ); + + addCmd( 'cellMergeDown', createDef( { + allowedContent: 'td[rowspan]', + requiredContent: 'td[rowspan]', + exec: function( editor, data ) { + data.cell = mergeCells( editor.getSelection(), 'down' ); + + placeCursorInCell( data.cell, true ); + } + } ) ); + + addCmd( 'cellVerticalSplit', createDef( { + allowedContent: 'td[rowspan]', + requiredContent: 'td[rowspan]', + exec: function( editor ) { + placeCursorInCell( verticalSplitCell( editor.getSelection() ) ); + } + } ) ); + + addCmd( 'cellHorizontalSplit', createDef( { + allowedContent: 'td[colspan]', + requiredContent: 'td[colspan]', + exec: function( editor ) { + placeCursorInCell( horizontalSplitCell( editor.getSelection() ) ); + } + } ) ); + + addCmd( 'cellInsertBefore', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(); + + insertCell( selection, true ); + } + } ) ); + + addCmd( 'cellInsertAfter', createDef( { + requiredContent: 'table', + exec: function( editor ) { + var selection = editor.getSelection(); + + insertCell( selection ); + } + } ) ); + + // If the "menu" plugin is loaded, register the menu items. + if ( editor.addMenuItems ) { + editor.addMenuItems( { + tablecell: { + label: lang.cell.menu, + group: 'tablecell', + order: 1, + getItems: function() { + var selection = editor.getSelection(), + cells = getSelectedCells( selection ), + items = { + tablecell_insertBefore: CKEDITOR.TRISTATE_OFF, + tablecell_insertAfter: CKEDITOR.TRISTATE_OFF, + tablecell_delete: CKEDITOR.TRISTATE_OFF, + tablecell_merge: mergeCells( selection, null, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED, + tablecell_merge_right: mergeCells( selection, 'right', true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED, + tablecell_merge_down: mergeCells( selection, 'down', true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED, + tablecell_split_vertical: verticalSplitCell( selection, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED, + tablecell_split_horizontal: horizontalSplitCell( selection, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED + }; + + if ( editor.filter.check( requiredContent ) ) { + items.tablecell_properties = cells.length > 0 ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; + } + + return items; + } + }, + + tablecell_insertBefore: { + label: lang.cell.insertBefore, + group: 'tablecell', + command: 'cellInsertBefore', + order: 5 + }, + + tablecell_insertAfter: { + label: lang.cell.insertAfter, + group: 'tablecell', + command: 'cellInsertAfter', + order: 10 + }, + + tablecell_delete: { + label: lang.cell.deleteCell, + group: 'tablecell', + command: 'cellDelete', + order: 15 + }, + + tablecell_merge: { + label: lang.cell.merge, + group: 'tablecell', + command: 'cellMerge', + order: 16 + }, + + tablecell_merge_right: { + label: lang.cell.mergeRight, + group: 'tablecell', + command: 'cellMergeRight', + order: 17 + }, + + tablecell_merge_down: { + label: lang.cell.mergeDown, + group: 'tablecell', + command: 'cellMergeDown', + order: 18 + }, + + tablecell_split_horizontal: { + label: lang.cell.splitHorizontal, + group: 'tablecell', + command: 'cellHorizontalSplit', + order: 19 + }, + + tablecell_split_vertical: { + label: lang.cell.splitVertical, + group: 'tablecell', + command: 'cellVerticalSplit', + order: 20 + }, + + tablecell_properties: { + label: lang.cell.title, + group: 'tablecellproperties', + command: 'cellProperties', + order: 21 + }, + + tablerow: { + label: lang.row.menu, + group: 'tablerow', + order: 1, + getItems: function() { + return { + tablerow_insertBefore: CKEDITOR.TRISTATE_OFF, + tablerow_insertAfter: CKEDITOR.TRISTATE_OFF, + tablerow_delete: CKEDITOR.TRISTATE_OFF + }; + } + }, + + tablerow_insertBefore: { + label: lang.row.insertBefore, + group: 'tablerow', + command: 'rowInsertBefore', + order: 5 + }, + + tablerow_insertAfter: { + label: lang.row.insertAfter, + group: 'tablerow', + command: 'rowInsertAfter', + order: 10 + }, + + tablerow_delete: { + label: lang.row.deleteRow, + group: 'tablerow', + command: 'rowDelete', + order: 15 + }, + + tablecolumn: { + label: lang.column.menu, + group: 'tablecolumn', + order: 1, + getItems: function() { + return { + tablecolumn_insertBefore: CKEDITOR.TRISTATE_OFF, + tablecolumn_insertAfter: CKEDITOR.TRISTATE_OFF, + tablecolumn_delete: CKEDITOR.TRISTATE_OFF + }; + } + }, + + tablecolumn_insertBefore: { + label: lang.column.insertBefore, + group: 'tablecolumn', + command: 'columnInsertBefore', + order: 5 + }, + + tablecolumn_insertAfter: { + label: lang.column.insertAfter, + group: 'tablecolumn', + command: 'columnInsertAfter', + order: 10 + }, + + tablecolumn_delete: { + label: lang.column.deleteColumn, + group: 'tablecolumn', + command: 'columnDelete', + order: 15 + } + } ); + } + + // If the "contextmenu" plugin is loaded, register the listeners. + if ( editor.contextMenu ) { + editor.contextMenu.addListener( function( element, selection, path ) { + var cell = path.contains( { 'td': 1, 'th': 1 }, 1 ); + if ( cell && !cell.isReadOnly() ) { + return { + tablecell: CKEDITOR.TRISTATE_OFF, + tablerow: CKEDITOR.TRISTATE_OFF, + tablecolumn: CKEDITOR.TRISTATE_OFF + }; + } + + return null; + } ); + } + }, + + // These methods are needed by tableselection plugin, so we must expose them. + getCellColIndex: getCellColIndex, + insertRow: insertRow, + insertColumn: insertColumn, + + getSelectedCells: getSelectedCells + }; + CKEDITOR.plugins.add( 'tabletools', CKEDITOR.plugins.tabletools ); +} )(); + +/** + * Creates a two-dimension array that reflects the actual layout of table cells, + * with cell spans, with mappings to the original `td` elements. + * + * It could also create a map for the specified fragment of the table. + * + * @param {CKEDITOR.dom.element} table + * @param {Number} startRow Row index from which the map should be created. + * @param {Number} startCell Cell index from which the map should be created. + * @param {Number} endRow Row index to which the map should be created. + * @param {Number} endCell Cell index to which the map should be created. + * @member CKEDITOR.tools + */ +CKEDITOR.tools.buildTableMap = function( table, startRow, startCell, endRow, endCell ) { + var aRows = table.$.rows; + + startRow = startRow || 0; + startCell = startCell || 0; + endRow = typeof endRow === 'number' ? endRow : aRows.length - 1; + endCell = typeof endCell === 'number' ? endCell : -1; + + // Row and Column counters. + var r = -1, + aMap = []; + + for ( var i = startRow; i <= endRow; i++ ) { + r++; + !aMap[ r ] && ( aMap[ r ] = [] ); + + var c = -1; + + for ( var j = startCell; j <= ( endCell === -1 ? ( aRows[ i ].cells.length - 1 ) : endCell ); j++ ) { + var oCell = aRows[ i ].cells[ j ]; + + if ( !oCell ) { + break; + } + + c++; + while ( aMap[ r ][ c ] ) { + c++; + } + + var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan, + iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan; + + for ( var rs = 0; rs < iRowSpan; rs++ ) { + if ( i + rs > endRow ) { + break; + } + + if ( !aMap[ r + rs ] ) { + aMap[ r + rs ] = []; + } + + for ( var cs = 0; cs < iColSpan; cs++ ) { + aMap[ r + rs ][ c + cs ] = aRows[ i ].cells[ j ]; + } + } + + c += iColSpan - 1; + + if ( endCell !== -1 && c >= endCell ) { + break; + } + } + } + return aMap; +}; + +/** + * Changes the available values of the "Cell Type" field inside the + * "Cell Properties" dialog. If it's set to `false` (the default value), the "Cell Type" field + * will contain two options: + * + * * "Data", + * * "Header". + * + * If the option is set to `true`, the "Cell Type" field in the "Cell Properties" dialog + * will contain three possible values: + * + * * "Data", + * * "Column Header", + * * "Row Header". + * + * Column and row header options updates table headers (`th`) with the + * [`scope` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) + * that may improve accessibility experience in more complex tables. Read the + * [w3.org guide about using the scope attribute to associate header cells + * and data cells in data tables](https://www.w3.org/WAI/WCAG21/Techniques/html/H63) + * to learn more. + * + * If this config variable is set to `true` and there is a `th` element without the + * `scope` attribute in the editor's content, its "Cell Type" value will be set to an empty value. + * To avoid that issue, tables with `th` elements need to be migrated. + * The sample transformation that adds `[scope=col]` to all scopeless `th` elements is presented below: + * + * ```javascript + * editor.filter.addTransformations( [ + * [ + * { + * element: 'th', + * left: function( el ) { + * return !el.attributes.scope; + * }, + * right: function( el ) { + * el.attributes.scope = 'col'; + * } + * } + * ] + * ] ); + * ``` + * + * The transformation is added to the editor using {@link CKEDITOR.filter#addTransformations}. + * + * @since 4.20.0 + * @cfg [tabletools_scopedHeaders=false] + * @member CKEDITOR.config + */ +CKEDITOR.config.tabletools_scopedHeaders = false;