diff --git a/dev/Common/Globals.js b/dev/Common/Globals.js index 9464bc3bf..19654ab5b 100644 --- a/dev/Common/Globals.js +++ b/dev/Common/Globals.js @@ -132,17 +132,17 @@ 'toolbarGroups': [ {name: 'spec'}, {name: 'styles'}, - {name: 'basicstyles', groups: ['basicstyles', 'cleanup']}, + {name: 'basicstyles', groups: ['basicstyles', 'cleanup', 'bidi']}, {name: 'colors'}, {name: 'paragraph', groups: ['list', 'indent', 'blocks', 'align']}, {name: 'links'}, {name: 'insert'}, + {name: 'document', groups: ['mode', 'document', 'doctools']}, {name: 'others'} - // {name: 'document', groups: ['mode', 'document', 'doctools']} ], 'removePlugins': 'liststyle,tabletools,contextmenu', //blockquote - 'removeButtons': 'Format,Undo,Redo,Cut,Copy,Paste,Anchor,Strike,Subscript,Superscript,Image,SelectAll', + 'removeButtons': 'Format,Undo,Redo,Cut,Copy,Paste,Anchor,Strike,Subscript,Superscript,Image,SelectAll,Source', 'removeDialogTabs': 'link:advanced;link:target;image:advanced;images:advanced', 'extraPlugins': 'plain', diff --git a/dev/Common/HtmlEditor.js b/dev/Common/HtmlEditor.js index 15523eb77..597871ba7 100644 --- a/dev/Common/HtmlEditor.js +++ b/dev/Common/HtmlEditor.js @@ -8,6 +8,8 @@ _ = require('_'), Globals = require('Common/Globals'), + Utils = require('Common/Utils'), + Settings = require('Storage/Settings') ; @@ -167,13 +169,23 @@ var oConfig = Globals.oHtmlEditorDefaultConfig, sLanguage = Settings.settingsGet('Language'), - bSource = !!Settings.settingsGet('AllowHtmlEditorSourceButton') + bSource = !!Settings.settingsGet('AllowHtmlEditorSourceButton'), + bBiti = !!Settings.settingsGet('AllowHtmlEditorBitiButtons') ; - if (bSource && oConfig.toolbarGroups && !oConfig.toolbarGroups.__SourceInited) + if ((bSource || bBiti) && !oConfig.toolbarGroups.__SourceInited) { oConfig.toolbarGroups.__SourceInited = true; - oConfig.toolbarGroups.push({name: 'document', groups: ['mode', 'document', 'doctools']}); + + if (bSource) + { + oConfig.removeButtons = oConfig.removeButtons.replace(',Source', ''); + } + + if (bBiti) + { + oConfig.extraPlugins += (oConfig.extraPlugins ? ',' : '') + 'bidi'; + } } oConfig.enterMode = window.CKEDITOR.ENTER_BR; diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Actions.php b/rainloop/v/0.0.0/app/src/RainLoop/Actions.php index 66ac0439d..8f2c187e5 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Actions.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Actions.php @@ -1030,6 +1030,7 @@ class Actions 'InIframe' => (bool) $oConfig->Get('labs', 'in_iframe', false), 'AllowAdminPanel' => (bool) $oConfig->Get('security', 'allow_admin_panel', true), 'AllowHtmlEditorSourceButton' => (bool) $oConfig->Get('labs', 'allow_html_editor_source_button', false), + 'AllowHtmlEditorBitiButtons' => (bool) $oConfig->Get('labs', 'allow_html_editor_biti_buttons', false), 'UseRsaEncryption' => (bool) $oConfig->Get('security', 'use_rsa_encryption', false), 'RsaPublicKey' => '', 'HideDangerousActions' => $oConfig->Get('labs', 'hide_dangerous_actions', false), @@ -2651,35 +2652,27 @@ class Actions $oCacher = $this->Cacher(); $oHttp = \MailSo\Base\Http::SingletonInstance(); - if ($oHttp->CheckLocalhost($sDomain)) + if ($oHttp->CheckLocalhost($sDomain) || !$oCacher) { return 'NO'; } + $sDomainKeyValue = \RainLoop\KeyPathHelper::LicensingDomainKeyValue($sDomain); + $sDomainLongKeyValue = \RainLoop\KeyPathHelper::LicensingDomainKeyOtherValue($sDomain); + $sValue = ''; - if (!$sForce && $oCacher) + if (!$sForce) { - if (!$bLongCache) + $iTime = $oCacher->GetTimer($bLongCache ? $sDomainLongKeyValue : $sDomainKeyValue); + if (0 < $iTime && \time() < $iTime + (60 * ($bLongCache ? 60 * 24 : 1)) * ($bLongCache ? $iLongCacheTimeInDays : $iFastCacheTimeInMin)) { - $iTime = $oCacher->GetTimer(\RainLoop\KeyPathHelper::LicensingDomainKeyValue($sDomain)); - if ($iTime + 60 * $iFastCacheTimeInMin > \time()) - { - $sValue = $oCacher->Get(\RainLoop\KeyPathHelper::LicensingDomainKeyValue($sDomain)); - } - } - else - { - $iTime = $oCacher->GetTimer(\RainLoop\KeyPathHelper::LicensingDomainKeyOtherValue($sDomain)); - if ($iTime + (60 * 60 * 24) * $iLongCacheTimeInDays > \time()) - { - $sValue = $oCacher->Get(\RainLoop\KeyPathHelper::LicensingDomainKeyOtherValue($sDomain)); - } + $sValue = $oCacher->Get($bLongCache ? $sDomainLongKeyValue : $sDomainKeyValue); } } if (0 === \strlen($sValue)) { - if ($bLongCache && (!$oCacher || !$oCacher->SetTimer(\RainLoop\KeyPathHelper::LicensingDomainKeyOtherValue($sDomain)))) + if ($bLongCache && !$oCacher->SetTimer($sDomainLongKeyValue)) { return 'NO'; } @@ -2698,13 +2691,10 @@ class Actions $sValue = ''; } - if ($oCacher) - { - $oCacher->SetTimer(\RainLoop\KeyPathHelper::LicensingDomainKeyValue($sDomain)); + $oCacher->SetTimer($sDomainKeyValue); - $oCacher->Set(\RainLoop\KeyPathHelper::LicensingDomainKeyValue($sDomain), $sValue); - $oCacher->Set(\RainLoop\KeyPathHelper::LicensingDomainKeyOtherValue($sDomain), $sValue); - } + $oCacher->Set($sDomainKeyValue, $sValue); + $oCacher->Set($sDomainLongKeyValue, $sValue); } return $sValue; diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Config/Application.php b/rainloop/v/0.0.0/app/src/RainLoop/Config/Application.php index f5fc0925e..6f884ad40 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Config/Application.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Config/Application.php @@ -241,6 +241,7 @@ Enables caching in the system'), 'login_fault_delay' => array(1), 'log_ajax_response_write_limit' => array(300), 'allow_html_editor_source_button' => array(false), + 'allow_html_editor_biti_buttons' => array(false), 'hide_dangerous_actions' => array(false), 'use_app_debug_js' => array(false), 'use_app_debug_css' => array(false), diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/bidiltr.png b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/bidiltr.png new file mode 100644 index 000000000..a909c0103 Binary files /dev/null and b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/bidiltr.png differ diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/bidirtl.png b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/bidirtl.png new file mode 100644 index 000000000..7dbad48c1 Binary files /dev/null and b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/bidirtl.png differ diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/hidpi/bidiltr.png b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/hidpi/bidiltr.png new file mode 100644 index 000000000..c5998e007 Binary files /dev/null and b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/hidpi/bidiltr.png differ diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/hidpi/bidirtl.png b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/hidpi/bidirtl.png new file mode 100644 index 000000000..8aa2adc87 Binary files /dev/null and b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/icons/hidpi/bidirtl.png differ diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/af.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/af.js new file mode 100644 index 000000000..10242480b --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/af.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'af', { + ltr: 'Skryfrigting van links na regs', + rtl: 'Skryfrigting van regs na links' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ar.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ar.js new file mode 100644 index 000000000..083462c61 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ar.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ar', { + ltr: 'إتجاه النص من اليسار إلى اليمين', + rtl: 'إتجاه النص من اليمين إلى اليسار' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bg.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bg.js new file mode 100644 index 000000000..cafb1b86d --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bg.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'bg', { + ltr: 'Посока на текста от ляво на дясно', + rtl: 'Посока на текста от дясно на ляво' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bn.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bn.js new file mode 100644 index 000000000..a8ed9d108 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bn.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'bn', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bs.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bs.js new file mode 100644 index 000000000..b30a64dcc --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/bs.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'bs', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ca.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ca.js new file mode 100644 index 000000000..b27511e87 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ca.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ca', { + ltr: 'Direcció del text d\'esquerra a dreta', + rtl: 'Direcció del text de dreta a esquerra' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/cs.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/cs.js new file mode 100644 index 000000000..8bacbb7d5 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/cs.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'cs', { + ltr: 'Směr textu zleva doprava', + rtl: 'Směr textu zprava doleva' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/cy.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/cy.js new file mode 100644 index 000000000..ca0e4313f --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/cy.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'cy', { + ltr: 'Cyfeiriad testun o\'r chwith i\'r dde', + rtl: 'Cyfeiriad testun o\'r dde i\'r chwith' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/da.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/da.js new file mode 100644 index 000000000..62e625512 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/da.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'da', { + ltr: 'Tekstretning fra venstre til højre', + rtl: 'Tekstretning fra højre til venstre' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/de.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/de.js new file mode 100644 index 000000000..0463a1318 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/de.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'de', { + ltr: 'Leserichtung von Links nach Rechts', + rtl: 'Leserichtung von Rechts nach Links' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/el.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/el.js new file mode 100644 index 000000000..b78a4bcb1 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/el.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'el', { + ltr: 'Διεύθυνση κειμένου από αριστερά στα δεξιά', + rtl: 'Διεύθυνση κειμένου από δεξιά στα αριστερά' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-au.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-au.js new file mode 100644 index 000000000..056c54eb5 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-au.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'en-au', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-ca.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-ca.js new file mode 100644 index 000000000..17b72882c --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-ca.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'en-ca', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-gb.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-gb.js new file mode 100644 index 000000000..74b8687c1 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en-gb.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'en-gb', { + ltr: 'Text direction from left to right', + rtl: 'Text direction from right to left' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en.js new file mode 100644 index 000000000..8823f289a --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/en.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'en', { + ltr: 'Text direction from left to right', + rtl: 'Text direction from right to left' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/eo.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/eo.js new file mode 100644 index 000000000..8c12b753d --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/eo.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'eo', { + ltr: 'Tekstdirekto de maldekstre dekstren', + rtl: 'Tekstdirekto de dekstre maldekstren' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/es.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/es.js new file mode 100644 index 000000000..e92661382 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/es.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'es', { + ltr: 'Dirección del texto de izquierda a derecha', + rtl: 'Dirección del texto de derecha a izquierda' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/et.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/et.js new file mode 100644 index 000000000..c3afb87a5 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/et.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'et', { + ltr: 'Teksti suund vasakult paremale', + rtl: 'Teksti suund paremalt vasakule' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/eu.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/eu.js new file mode 100644 index 000000000..b276af192 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/eu.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'eu', { + ltr: 'Testuaren norantza ezkerretik eskuinera', + rtl: 'Testuaren norantza eskuinetik ezkerrera' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fa.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fa.js new file mode 100644 index 000000000..97a496e63 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fa.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'fa', { + ltr: 'جهت متن از چپ به راست', + rtl: 'جهت متن از راست به چپ' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fi.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fi.js new file mode 100644 index 000000000..119ee2b6e --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fi.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'fi', { + ltr: 'Tekstin suunta vasemmalta oikealle', + rtl: 'Tekstin suunta oikealta vasemmalle' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fo.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fo.js new file mode 100644 index 000000000..52877c5b7 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fo.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'fo', { + ltr: 'Tekstkós frá vinstru til høgru', + rtl: 'Tekstkós frá høgru til vinstru' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fr-ca.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fr-ca.js new file mode 100644 index 000000000..c33c98951 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fr-ca.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'fr-ca', { + ltr: 'Direction du texte de gauche à droite', + rtl: 'Direction du texte de droite à gauche' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fr.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fr.js new file mode 100644 index 000000000..dece2048c --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/fr.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'fr', { + ltr: 'Direction du texte de la gauche vers la droite', + rtl: 'Direction du texte de la droite vers la gauche' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/gl.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/gl.js new file mode 100644 index 000000000..6a32b0f19 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/gl.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'gl', { + ltr: 'Dirección do texto de esquerda a dereita', + rtl: 'Dirección do texto de dereita a esquerda' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/gu.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/gu.js new file mode 100644 index 000000000..b26269b56 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/gu.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'gu', { + ltr: 'ટેક્ષ્ત્ ની દિશા ડાબે થી જમણે', + rtl: 'ટેક્ષ્ત્ ની દિશા જમણે થી ડાબે' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/he.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/he.js new file mode 100644 index 000000000..e29de7790 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/he.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'he', { + ltr: 'כיוון טקסט משמאל לימין (LTR)', + rtl: 'כיוון טקסט מימין לשמאל (RTL)' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hi.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hi.js new file mode 100644 index 000000000..cc91d60cb --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hi.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'hi', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hr.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hr.js new file mode 100644 index 000000000..3c41acb42 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hr.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'hr', { + ltr: 'Smjer teksta s lijeva na desno', + rtl: 'Smjer teksta s desna na lijevo' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hu.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hu.js new file mode 100644 index 000000000..6b5411d45 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/hu.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'hu', { + ltr: 'Szöveg iránya balról jobbra', + rtl: 'Szöveg iránya jobbról balra' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/id.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/id.js new file mode 100644 index 000000000..b3ba6a3c1 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/id.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'id', { + ltr: 'Arah penulisan dari kiri ke kanan.', + rtl: 'Arah penulisan dari kanan ke kiri.' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/is.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/is.js new file mode 100644 index 000000000..2e4d05f2e --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/is.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'is', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/it.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/it.js new file mode 100644 index 000000000..0a78f9fb2 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/it.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'it', { + ltr: 'Direzione del testo da sinistra verso destra', + rtl: 'Direzione del testo da destra verso sinistra' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ja.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ja.js new file mode 100644 index 000000000..184a9f9fb --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ja.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ja', { + ltr: 'テキストの向き : 左から右へ', + rtl: 'テキストの向き : 右から左へ' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ka.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ka.js new file mode 100644 index 000000000..1c98250cd --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ka.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ka', { + ltr: 'ტექსტის მიმართულება მარცხნიდან მარჯვნივ', + rtl: 'ტექსტის მიმართულება მარჯვნიდან მარცხნივ' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/km.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/km.js new file mode 100644 index 000000000..7d0dbe463 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/km.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'km', { + ltr: 'ទិស​ដៅ​អក្សរ​ពី​ឆ្វេង​ទៅ​ស្ដាំ', + rtl: 'ទិស​ដៅ​អក្សរ​ពី​ស្ដាំ​ទៅ​ឆ្វេង' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ko.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ko.js new file mode 100644 index 000000000..1cbd46fd5 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ko.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ko', { + ltr: '택스트 방향이 왼쪽에서 오른쪽으로 ', + rtl: '택스트 방향이 오른쪽에서 왼쪽으로' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ku.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ku.js new file mode 100644 index 000000000..40a97bc5d --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ku.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ku', { + ltr: 'ئاراستەی نووسە لە چەپ بۆ ڕاست', + rtl: 'ئاراستەی نووسە لە ڕاست بۆ چەپ' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/lt.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/lt.js new file mode 100644 index 000000000..6869ab412 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/lt.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'lt', { + ltr: 'Tekstas iš kairės į dešinę', + rtl: 'Tekstas iš dešinės į kairę' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/lv.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/lv.js new file mode 100644 index 000000000..3bbf7085a --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/lv.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'lv', { + ltr: 'Teksta virziens no kreisās uz labo', + rtl: 'Teksta virziens no labās uz kreiso' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/mk.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/mk.js new file mode 100644 index 000000000..c7fbb6033 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/mk.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'mk', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/mn.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/mn.js new file mode 100644 index 000000000..b7c93f5c6 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/mn.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'mn', { + ltr: 'Зүүнээс баруун тийш бичлэг', + rtl: 'Баруунаас зүүн тийш бичлэг' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ms.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ms.js new file mode 100644 index 000000000..d4704b0e9 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ms.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ms', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/nb.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/nb.js new file mode 100644 index 000000000..d4957faaf --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/nb.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'nb', { + ltr: 'Tekstretning fra venstre til høyre', + rtl: 'Tekstretning fra høyre til venstre' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/nl.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/nl.js new file mode 100644 index 000000000..d6ff937bc --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/nl.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'nl', { + ltr: 'Schrijfrichting van links naar rechts', + rtl: 'Schrijfrichting van rechts naar links' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/no.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/no.js new file mode 100644 index 000000000..eb43c9cae --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/no.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'no', { + ltr: 'Tekstretning fra venstre til høyre', + rtl: 'Tekstretning fra høyre til venstre' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pl.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pl.js new file mode 100644 index 000000000..4e0013210 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pl.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'pl', { + ltr: 'Kierunek tekstu od lewej strony do prawej', + rtl: 'Kierunek tekstu od prawej strony do lewej' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pt-br.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pt-br.js new file mode 100644 index 000000000..b2c1b2a2f --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pt-br.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'pt-br', { + ltr: 'Direção do texto da esquerda para a direita', + rtl: 'Direção do texto da direita para a esquerda' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pt.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pt.js new file mode 100644 index 000000000..1dfa769f7 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/pt.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'pt', { + ltr: 'Direção do texto da esquerda para a direita', + rtl: 'Direção do texto da direita para a esquerda' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ro.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ro.js new file mode 100644 index 000000000..5ddb11690 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ro.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ro', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ru.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ru.js new file mode 100644 index 000000000..86f702ef1 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ru.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ru', { + ltr: 'Направление текста слева направо', + rtl: 'Направление текста справа налево' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/si.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/si.js new file mode 100644 index 000000000..5290c9171 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/si.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'si', { + ltr: 'වගන්ති දිශාව වමේ සිට දකුණට', + rtl: 'වගන්ති දිශාව දකුණේ සිට වමට' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sk.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sk.js new file mode 100644 index 000000000..915240b94 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sk.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'sk', { + ltr: 'Smer textu zľava doprava', + rtl: 'Smer textu sprava doľava' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sl.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sl.js new file mode 100644 index 000000000..1f902b41b --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sl.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'sl', { + ltr: 'Smer besedila od leve proti desni', + rtl: 'Smer besedila od desne proti levi' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sq.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sq.js new file mode 100644 index 000000000..b6ba51b69 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sq.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'sq', { + ltr: 'Drejtimi i tekstit nga e majta në të djathtë', + rtl: 'Drejtimi i tekstit nga e djathta në të majtë' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sr-latn.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sr-latn.js new file mode 100644 index 000000000..9600a9621 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sr-latn.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'sr-latn', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sr.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sr.js new file mode 100644 index 000000000..f1efd8070 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sr.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'sr', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sv.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sv.js new file mode 100644 index 000000000..dbd7818ac --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/sv.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'sv', { + ltr: 'Text riktning från vänster till höger', + rtl: 'Text riktning från höger till vänster' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/th.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/th.js new file mode 100644 index 000000000..b88174d73 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/th.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'th', { + ltr: 'Text direction from left to right', // MISSING + rtl: 'Text direction from right to left' // MISSING +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/tr.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/tr.js new file mode 100644 index 000000000..795b38ce4 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/tr.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'tr', { + ltr: 'Metin yönü soldan sağa', + rtl: 'Metin yönü sağdan sola' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/tt.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/tt.js new file mode 100644 index 000000000..cfe103fef --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/tt.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'tt', { + ltr: 'Сулдан уңга язылыш', + rtl: 'Уңнан сулга язылыш' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ug.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ug.js new file mode 100644 index 000000000..7828fe395 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/ug.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'ug', { + ltr: 'تېكىست يۆنىلىشى سولدىن ئوڭغا', + rtl: 'تېكىست يۆنىلىشى ئوڭدىن سولغا' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/uk.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/uk.js new file mode 100644 index 000000000..b2cba4bf1 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/uk.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'uk', { + ltr: 'Напрямок тексту зліва направо', + rtl: 'Напрямок тексту справа наліво' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/vi.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/vi.js new file mode 100644 index 000000000..442234104 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/vi.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'vi', { + ltr: 'Văn bản hướng từ trái sang phải', + rtl: 'Văn bản hướng từ phải sang trái' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/zh-cn.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/zh-cn.js new file mode 100644 index 000000000..f310f1c88 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/zh-cn.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'zh-cn', { + ltr: '文字方向为从左至右', + rtl: '文字方向为从右至左' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/zh.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/zh.js new file mode 100644 index 000000000..b2a114bc2 --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/lang/zh.js @@ -0,0 +1,8 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'bidi', 'zh', { + ltr: '文字方向從左至右', + rtl: '文字方向從右至左' +} ); diff --git a/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/plugin.js b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/plugin.js new file mode 100644 index 000000000..b3cdfe51d --- /dev/null +++ b/rainloop/v/0.0.0/static/ckeditor/plugins/bidi/plugin.js @@ -0,0 +1,305 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +( function() { + var guardElements = { table: 1, ul: 1, ol: 1, blockquote: 1, div: 1 }, + directSelectionGuardElements = {}, + // All guard elements which can have a direction applied on them. + allGuardElements = {}; + CKEDITOR.tools.extend( directSelectionGuardElements, guardElements, { tr: 1, p: 1, div: 1, li: 1 } ); + CKEDITOR.tools.extend( allGuardElements, directSelectionGuardElements, { td: 1 } ); + + function setToolbarStates( editor, path ) { + var useComputedState = editor.config.useComputedState, + selectedElement; + + useComputedState = useComputedState === undefined || useComputedState; + + // We can use computedState provided by the browser or traverse parents manually. + if ( !useComputedState ) + selectedElement = getElementForDirection( path.lastElement, editor.editable() ); + + selectedElement = selectedElement || path.block || path.blockLimit; + + // If we're having BODY here, user probably done CTRL+A, let's try to get the enclosed node, if any. + if ( selectedElement.equals( editor.editable() ) ) { + var enclosedNode = editor.getSelection().getRanges()[ 0 ].getEnclosedNode(); + enclosedNode && enclosedNode.type == CKEDITOR.NODE_ELEMENT && ( selectedElement = enclosedNode ); + } + + if ( !selectedElement ) + return; + + var selectionDir = useComputedState ? selectedElement.getComputedStyle( 'direction' ) : selectedElement.getStyle( 'direction' ) || selectedElement.getAttribute( 'dir' ); + + editor.getCommand( 'bidirtl' ).setState( selectionDir == 'rtl' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF ); + editor.getCommand( 'bidiltr' ).setState( selectionDir == 'ltr' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF ); + } + + function handleMixedDirContent( editor, path ) { + var directionNode = path.block || path.blockLimit || editor.editable(); + var pathDir = directionNode.getDirection( 1 ); + if ( pathDir != ( editor._.selDir || editor.lang.dir ) ) { + editor._.selDir = pathDir; + editor.fire( 'contentDirChanged', pathDir ); + } + } + + // Returns element with possibility of applying the direction. + // @param node + function getElementForDirection( node, root ) { + while ( node && !( node.getName() in allGuardElements || node.equals( root ) ) ) { + var parent = node.getParent(); + if ( !parent ) + break; + + node = parent; + } + + return node; + } + + function switchDir( element, dir, editor, database ) { + if ( element.isReadOnly() || element.equals( editor.editable() ) ) + return; + + // Mark this element as processed by switchDir. + CKEDITOR.dom.element.setMarker( database, element, 'bidi_processed', 1 ); + + // Check whether one of the ancestors has already been styled. + var parent = element, + editable = editor.editable(); + while ( ( parent = parent.getParent() ) && !parent.equals( editable ) ) { + if ( parent.getCustomData( 'bidi_processed' ) ) { + // Ancestor style must dominate. + element.removeStyle( 'direction' ); + element.removeAttribute( 'dir' ); + return; + } + } + + var useComputedState = ( 'useComputedState' in editor.config ) ? editor.config.useComputedState : 1; + + var elementDir = useComputedState ? element.getComputedStyle( 'direction' ) : element.getStyle( 'direction' ) || element.hasAttribute( 'dir' ); + + // Stop if direction is same as present. + if ( elementDir == dir ) + return; + + // Clear direction on this element. + element.removeStyle( 'direction' ); + + // Do the second check when computed state is ON, to check + // if we need to apply explicit direction on this element. + if ( useComputedState ) { + element.removeAttribute( 'dir' ); + if ( dir != element.getComputedStyle( 'direction' ) ) + element.setAttribute( 'dir', dir ); + } else + // Set new direction for this element. + element.setAttribute( 'dir', dir ); + + editor.forceNextSelectionCheck(); + + return; + } + + function getFullySelected( range, elements, enterMode ) { + var ancestor = range.getCommonAncestor( false, true ); + + range = range.clone(); + range.enlarge( enterMode == CKEDITOR.ENTER_BR ? CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS ); + + if ( range.checkBoundaryOfElement( ancestor, CKEDITOR.START ) && range.checkBoundaryOfElement( ancestor, CKEDITOR.END ) ) { + var parent; + while ( ancestor && ancestor.type == CKEDITOR.NODE_ELEMENT && ( parent = ancestor.getParent() ) && parent.getChildCount() == 1 && !( ancestor.getName() in elements ) ) + ancestor = parent; + + return ancestor.type == CKEDITOR.NODE_ELEMENT && ( ancestor.getName() in elements ) && ancestor; + } + } + + function bidiCommand( dir ) { + return { + // It applies to a "block-like" context. + context: 'p', + allowedContent: { + 'h1 h2 h3 h4 h5 h6 table ul ol blockquote div tr p div li td': { + propertiesOnly: true, + attributes: 'dir' + } + }, + requiredContent: 'p[dir]', + refresh: function( editor, path ) { + setToolbarStates( editor, path ); + handleMixedDirContent( editor, path ); + }, + exec: function( editor ) { + var selection = editor.getSelection(), + enterMode = editor.config.enterMode, + ranges = selection.getRanges(); + + if ( ranges && ranges.length ) { + var database = {}; + + // Creates bookmarks for selection, as we may split some blocks. + var bookmarks = selection.createBookmarks(); + + var rangeIterator = ranges.createIterator(), + range, + i = 0; + + while ( ( range = rangeIterator.getNextRange( 1 ) ) ) { + // Apply do directly selected elements from guardElements. + var selectedElement = range.getEnclosedNode(); + + // If this is not our element of interest, apply to fully selected elements from guardElements. + if ( !selectedElement || selectedElement && !( selectedElement.type == CKEDITOR.NODE_ELEMENT && selectedElement.getName() in directSelectionGuardElements ) ) + selectedElement = getFullySelected( range, guardElements, enterMode ); + + selectedElement && switchDir( selectedElement, dir, editor, database ); + + var iterator, block; + + // Walker searching for guardElements. + var walker = new CKEDITOR.dom.walker( range ); + + var start = bookmarks[ i ].startNode, + end = bookmarks[ i++ ].endNode; + + walker.evaluator = function( node ) { + return !!( node.type == CKEDITOR.NODE_ELEMENT && node.getName() in guardElements && !( node.getName() == ( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) && node.getParent().type == CKEDITOR.NODE_ELEMENT && node.getParent().getName() == 'blockquote' ) + // Element must be fully included in the range as well. (#6485). + && node.getPosition( start ) & CKEDITOR.POSITION_FOLLOWING && ( ( node.getPosition( end ) & CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_CONTAINS ) == CKEDITOR.POSITION_PRECEDING ) ); + }; + + while ( ( block = walker.next() ) ) + switchDir( block, dir, editor, database ); + + iterator = range.createIterator(); + iterator.enlargeBr = enterMode != CKEDITOR.ENTER_BR; + + while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) ) + switchDir( block, dir, editor, database ); + } + + CKEDITOR.dom.element.clearAllMarkers( database ); + + editor.forceNextSelectionCheck(); + // Restore selection position. + selection.selectBookmarks( bookmarks ); + + editor.focus(); + } + } + }; + } + + CKEDITOR.plugins.add( 'bidi', { + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,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,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% + icons: 'bidiltr,bidirtl', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + init: function( editor ) { + if ( editor.blockless ) + return; + + // All buttons use the same code to register. So, to avoid + // duplications, let's use this tool function. + function addButtonCommand( buttonName, buttonLabel, commandName, commandDef, order ) { + editor.addCommand( commandName, new CKEDITOR.command( editor, commandDef ) ); + + if ( editor.ui.addButton ) { + editor.ui.addButton( buttonName, { + label: buttonLabel, + command: commandName, + toolbar: 'bidi,' + order + } ); + } + } + + var lang = editor.lang.bidi; + + addButtonCommand( 'BidiLtr', lang.ltr, 'bidiltr', bidiCommand( 'ltr' ), 10 ); + addButtonCommand( 'BidiRtl', lang.rtl, 'bidirtl', bidiCommand( 'rtl' ), 20 ); + + editor.on( 'contentDom', function() { + editor.document.on( 'dirChanged', function( evt ) { + editor.fire( 'dirChanged', { + node: evt.data, + dir: evt.data.getDirection( 1 ) + } ); + } ); + } ); + + // Indicate that the current selection is in different direction than the UI. + editor.on( 'contentDirChanged', function( evt ) { + var func = ( editor.lang.dir != evt.data ? 'add' : 'remove' ) + 'Class'; + var toolbar = editor.ui.space( editor.config.toolbarLocation ); + if ( toolbar ) + toolbar[ func ]( 'cke_mixed_dir_content' ); + } ); + } + } ); + + // If the element direction changed, we need to switch the margins of + // the element and all its children, so it will get really reflected + // like a mirror. (#5910) + function isOffline( el ) { + var html = el.getDocument().getBody().getParent(); + while ( el ) { + if ( el.equals( html ) ) + return false; + el = el.getParent(); + } + return true; + } + + function dirChangeNotifier( org ) { + var isAttribute = org == elementProto.setAttribute, + isRemoveAttribute = org == elementProto.removeAttribute, + dirStyleRegexp = /\bdirection\s*:\s*(.*?)\s*(:?$|;)/; + + return function( name, val ) { + if ( !this.isReadOnly() ) { + var orgDir; + if ( ( name == ( isAttribute || isRemoveAttribute ? 'dir' : 'direction' ) || name == 'style' && ( isRemoveAttribute || dirStyleRegexp.test( val ) ) ) && !isOffline( this ) ) { + orgDir = this.getDirection( 1 ); + var retval = org.apply( this, arguments ); + if ( orgDir != this.getDirection( 1 ) ) { + this.getDocument().fire( 'dirChanged', this ); + return retval; + } + } + } + + return org.apply( this, arguments ); + }; + } + + var elementProto = CKEDITOR.dom.element.prototype, + methods = [ 'setStyle', 'removeStyle', 'setAttribute', 'removeAttribute' ]; + for ( var i = 0; i < methods.length; i++ ) + elementProto[ methods[ i ] ] = CKEDITOR.tools.override( elementProto[ methods[ i ] ], dirChangeNotifier ); +} )(); + +/** + * Fired when the language direction of an element is changed. + * + * @event dirChanged + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param data + * @param {CKEDITOR.dom.node} data.node The element that is being changed. + * @param {String} data.dir The new direction. + */ + +/** + * Fired when the language direction in the specific cursor position is changed + * + * @event contentDirChanged + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param {String} data The direction in the current position. + */