CKEditor contentsLangDirection by page language
- Status
- Open
- Subject
- CKEditor contentsLangDirection by page language
- Version
- 6.x
- Category
- Patch
- Consistency
- Feature
- WYSIWYG (What You See is What You Get)
i18n (Multilingual, l10n, Babelfish) - Resolution status
- New
- Submitted by
- ylavi
- Lastmod by
- ylavi
- Rating
- Description
The multilingual/translation support is integrated with the WYSIWYG feature in a way that if you are working in an English interface, the text direction in CKEditor remains LTR even when the page being edited is defined as being in Hebrew, which is RTL. I expect that this applies to any other RTL language.
Similarly, it seems to me (though I haven't tested it thoroughly) that a user working in a Hebrew interface would get RTL behaviour in CKEditor even when editing an English page.
I can only assume that use of the English-language interface for editing Arabic pages and Arabic-language interface for English pages is common, as such combinations are certainly common where Hebrew is involved. The forcing of direction according to interface language rather than page language is likely to be a significant annoyance in all such cases.
The ideal solution would be to make the editor direction dependent on the page language's direction, and only according to the user's language if there is no page language set (there is a CKEditor option which does that - see http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.contentsLangDirection
)- Solution
A simplistic hack was added to force the direction to 'ltr' for 'en' page language and 'rtl' for 'he' page language and only if neither of these is matched, to go by the standard logic.
tiki\lib\smarty_tiki\block.textarea.php - line 204 in 6.0Copy to clipboardcontentsLangDirection: "' . ($prefs['feature_bidi'] === 'y' ? 'rtl' : 'ltr') . '"tiki\lib\smarty_tiki\block.textarea.php - rough hack for Hebrew RTL and English LTR from Hebrew interfaceCopy to clipboard'. ( !empty($smarty->_tpl_vars['lang']) ? 'contentsLanguage: "' . $smarty->_tpl_vars['lang'] . '",' : '') . ' contentsLangDirection: "' . ( $smarty->_tpl_vars['lang'] === 'he' ? 'rtl' : ( $smarty->_tpl_vars['lang'] === 'en' ? 'ltr' : ($prefs['feature_bidi'] === 'y' ? 'rtl' : 'ltr') ) ) . '"
For general use it would make more sense to have a "RTL" flag in the language list and refer to that when setting contentsLangDirection, falling back on the "ui" setting for direction when no page language is defined.- Importance
- 3
- Priority
- 15
- Demonstrate Bug on Tiki 19+
-
This bug has been demonstrated on show2.tiki.org
Please demonstrate your bug on show2.tiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show2.tiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Demonstrate Bug (older Tiki versions)
-
This bug has been demonstrated on show.tikiwiki.org
Please demonstrate your bug on show.tikiwiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show.tikiwiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Ticket ID
- 3782
- Created
- Thursday 03 February, 2011 17:15:24 UTC
by ylavi - LastModif
- Thursday 03 February, 2011 17:15:24 UTC