Index: trunk/extensions/FCKeditor/FCKeditor.popup.html |
— | — | @@ -0,0 +1,99 @@ |
| 2 | +<html xmlns="http://www.w3.org/1999/xhtml"> |
| 3 | +<head> |
| 4 | + <title>FCKeditor</title> |
| 5 | + <script type="text/javascript"> |
| 6 | +// #### URLParams: holds all URL passed parameters (like ?Param1=Value1&Param2=Value2) |
| 7 | +var FCKURLParams = new Object() ; |
| 8 | + |
| 9 | +var aParams = document.location.search.substr(1).split('&') ; |
| 10 | +for ( var i = 0 ; i < aParams.length ; i++ ) |
| 11 | +{ |
| 12 | + var aParam = aParams[i].split('=') ; |
| 13 | + var sParamName = aParam[0] ; |
| 14 | + var sParamValue = aParam[1] ; |
| 15 | + |
| 16 | + FCKURLParams[ sParamName ] = sParamValue ; |
| 17 | +} |
| 18 | + |
| 19 | +// It is preferable to have the oFCKeditor object defined in the opener window, |
| 20 | +// so all the configurations will be there. In this way the popup doesn't need |
| 21 | +// to take care of the configurations "clonning". |
| 22 | +var popup = window.opener; |
| 23 | +var oFCKeditor = window.opener[ FCKURLParams[ 'var' ] ] ; |
| 24 | +oFCKeditor.Width = '100%' ; |
| 25 | +oFCKeditor.Height = '100%' ; |
| 26 | +oFCKeditor.Value = popup.document.getElementById( FCKURLParams[ 'el' ] ).value ; |
| 27 | + |
| 28 | +function Ok() |
| 29 | +{ |
| 30 | + var oEditor = FCKeditorAPI.GetInstance( oFCKeditor.InstanceName ) ; |
| 31 | + if ( oEditor.IsDirty() ) |
| 32 | + { |
| 33 | + if ((window.opener.firstLoad == false) && (popup.FCKeditorAPI)) { //already loaded |
| 34 | + var parentOEditor = popup.FCKeditorAPI.GetInstance(FCKURLParams[ 'el' ]); |
| 35 | + var parentIsWysiwyg = ( parentOEditor.EditMode == FCK_EDITMODE_WYSIWYG ) ; |
| 36 | + var IsWysiwyg = ( oEditor.EditMode == FCK_EDITMODE_WYSIWYG ) ; |
| 37 | + if ( !IsWysiwyg && parentIsWysiwyg ) //copy from PLAIN (popup) to WYSIWIG (parent) |
| 38 | + { |
| 39 | + parentOEditor.SwitchEditMode(); //switch to plain |
| 40 | + var text = oEditor.GetData(parentOEditor.Config.FormatSource); |
| 41 | + parentOEditor.SetHTML( text ); |
| 42 | + } |
| 43 | + else if ( parentIsWysiwyg ) |
| 44 | + { |
| 45 | + var text = oEditor.EditorDocument.documentElement.innerHTML; |
| 46 | + parentOEditor.EditingArea.Start( text ); |
| 47 | + } |
| 48 | + else |
| 49 | + { |
| 50 | + var text = oEditor.GetData(parentOEditor.Config.FormatSource); |
| 51 | + parentOEditor.SetHTML( text ); |
| 52 | + } |
| 53 | + } |
| 54 | + window.opener.document.getElementById( FCKURLParams[ 'el' ] ).value = oEditor.GetData( true ) ; // "true" means you want it formatted. |
| 55 | + } |
| 56 | + window.opener.focus() ; |
| 57 | + window.close() ; |
| 58 | + return true; |
| 59 | +} |
| 60 | + |
| 61 | +function Cancel() |
| 62 | +{ |
| 63 | + var oEditor = FCKeditorAPI.GetInstance( oFCKeditor.InstanceName ) ; |
| 64 | + if ( oEditor.IsDirty() ) |
| 65 | + { |
| 66 | + if ( !confirm( 'Are you sure you want to cancel? Your changes will be lost.' ) ) |
| 67 | + return ; |
| 68 | + } |
| 69 | + |
| 70 | + window.close() ; |
| 71 | + return true; |
| 72 | +} |
| 73 | + |
| 74 | + </script> |
| 75 | +</head> |
| 76 | +<body style="margin:0px 0px 10px;"> |
| 77 | + <table width="100%" cellspacing=0 cellpadding=0 height="100%"> |
| 78 | + <tr> |
| 79 | + <td height="100%"> |
| 80 | + <div id="FCKdiv" style='width:100%;height:100%'></div> |
| 81 | + <script type="text/javascript"> |
| 82 | +document.write( '<input type="hidden" id="' + oFCKeditor.InstanceName + '" name="' + oFCKeditor.InstanceName + '" value="' + oFCKeditor._HTMLEncode( 'nic' ) + '" style="width:100%;display:none" />' ) ; |
| 83 | + |
| 84 | +popup.window.parent.FCK_sajax('wfSajaxWikiToHTML', [oFCKeditor.Value], function ( result ){ |
| 85 | + var FCKinput = document.getElementById( oFCKeditor.InstanceName ); |
| 86 | + FCKinput.value = (result.responseText); |
| 87 | + document.getElementById( 'FCKdiv' ).innerHTML = oFCKeditor._GetConfigHtml() + oFCKeditor._GetIFrameHtml(); |
| 88 | +}); |
| 89 | + </script> |
| 90 | + </td> |
| 91 | + </tr> |
| 92 | + <tr valign="middle" height="40"> |
| 93 | + <td align="center" > |
| 94 | + <input type="button" value="Ok" onclick="Ok();" style="width:120px" /> |
| 95 | + <input type="button" value="Cancel" onclick="Cancel();" /> |
| 96 | + </td> |
| 97 | + </tr> |
| 98 | + </table> |
| 99 | +</body> |
| 100 | +</html> |
Property changes on: trunk/extensions/FCKeditor/FCKeditor.popup.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 101 | + native |
Index: trunk/extensions/FCKeditor/FCKeditorEditPage.body.php |
— | — | @@ -0,0 +1,78 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class FCKeditorEditPage extends EditPage { |
| 5 | + /** |
| 6 | + * Should we show a preview when the edit form is first shown? |
| 7 | + * |
| 8 | + * @return bool |
| 9 | + */ |
| 10 | + public function previewOnOpen() { |
| 11 | + global $wgRequest, $wgUser; |
| 12 | + if ( !$wgUser->getOption( 'riched_disable' ) ) { |
| 13 | + return false; |
| 14 | + } |
| 15 | + if( $wgRequest->getVal( 'preview' ) == 'yes' ) { |
| 16 | + // Explicit override from request |
| 17 | + return true; |
| 18 | + } elseif( $wgRequest->getVal( 'preview' ) == 'no' ) { |
| 19 | + // Explicit override from request |
| 20 | + return false; |
| 21 | + } elseif( $this->section == 'new' ) { |
| 22 | + // Nothing *to* preview for new sections |
| 23 | + return false; |
| 24 | + } elseif( ( $wgRequest->getVal( 'preload' ) !== '' || $this->mTitle->exists() ) && $wgUser->getOption( 'previewonfirst' ) ) { |
| 25 | + // Standard preference behaviour |
| 26 | + return true; |
| 27 | + } elseif( !$this->mTitle->exists() && $this->mTitle->getNamespace() == NS_CATEGORY ) { |
| 28 | + // Categories are special |
| 29 | + return true; |
| 30 | + } else { |
| 31 | + return false; |
| 32 | + } |
| 33 | + } |
| 34 | + |
| 35 | + function getPreviewText() { |
| 36 | + if( !$this->isCssJsSubpage ) { |
| 37 | + wfRunHooks( 'EditPageBeforePreviewText', array( &$this, $this->previewOnOpen() ) ); |
| 38 | + $result = parent::getPreviewText(); |
| 39 | + wfRunHooks( 'EditPagePreviewTextEnd', array( &$this, $this->previewOnOpen() ) ); |
| 40 | + } else { |
| 41 | + $result = parent::getPreviewText(); |
| 42 | + } |
| 43 | + return $result; |
| 44 | + } |
| 45 | + |
| 46 | + function getContent( $def_text = '' ) { |
| 47 | + $t = parent::getContent( $def_text ); |
| 48 | + if( !$this->isConflict ) { |
| 49 | + return $t; |
| 50 | + } |
| 51 | + $options = new FCKeditorParserOptions(); |
| 52 | + $options->setTidy( true ); |
| 53 | + $parser = new FCKeditorParser(); |
| 54 | + $parser->setOutputType( OT_HTML ); |
| 55 | + $pa = $parser->parse( $t, $this->mTitle, $options ); |
| 56 | + return $pa->mText; |
| 57 | + } |
| 58 | + |
| 59 | + function getWikiContent(){ |
| 60 | + return $this->mArticle->getContent(); |
| 61 | + } |
| 62 | + |
| 63 | + /** |
| 64 | + * This is a hack to fix |
| 65 | + * http://dev.fckeditor.net/ticket/1174 |
| 66 | + * If RTE is enabled, diff must be performed on WikiText, not on HTML |
| 67 | + */ |
| 68 | + function showDiff() { |
| 69 | + global $wgFCKWikiTextBeforeParse; |
| 70 | + if( isset( $wgFCKWikiTextBeforeParse ) ) { |
| 71 | + $_textbox1 = $this->textbox1; |
| 72 | + $this->textbox1 = $wgFCKWikiTextBeforeParse; |
| 73 | + } |
| 74 | + $result = parent::showDiff(); |
| 75 | + if( isset( $wgFCKWikiTextBeforeParse ) ) { |
| 76 | + $this->textbox1 = $_textbox1; |
| 77 | + } |
| 78 | + } |
| 79 | +} |
Property changes on: trunk/extensions/FCKeditor/FCKeditorEditPage.body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 80 | + native |
Index: trunk/extensions/FCKeditor/FCKeditor.php |
— | — | @@ -0,0 +1,115 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * FCKeditor extension - a WYSIWYG editor for MediaWiki |
| 5 | + * |
| 6 | + * @file |
| 7 | + * @ingroup Extensions |
| 8 | + * @version 1.0 |
| 9 | + * @author Frederico Caldeira Knabben |
| 10 | + * @author Wiktor Walc <w.walc(at)fckeditor(dot)net> |
| 11 | + * @copyright Copyright © Frederico Caldeira Knabben, Wiktor Walc, other FCKeditor team members and other contributors |
| 12 | + * @license GNU Lesser General Public License 2.1 or later |
| 13 | + */ |
| 14 | +/* |
| 15 | +This library is free software; you can redistribute it and/or |
| 16 | +modify it under the terms of the GNU Lesser General Public |
| 17 | +License as published by the Free Software Foundation; either |
| 18 | +version 2.1 of the License, or (at your option) any later version. |
| 19 | + |
| 20 | +This library is distributed in the hope that it will be useful, |
| 21 | +but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 22 | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 23 | +Lesser General Public License for more details. |
| 24 | + |
| 25 | +You should have received a copy of the GNU Lesser General Public |
| 26 | +License along with this library; if not, write to the Free Software |
| 27 | +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
| 28 | +*/ |
| 29 | + |
| 30 | +# Not a valid entry point, skip unless MEDIAWIKI is defined |
| 31 | +if( !defined( 'MEDIAWIKI' ) ) { |
| 32 | + echo <<<HEREDOC |
| 33 | +To install FCKeditor extension, put the following line in LocalSettings.php: |
| 34 | +require_once( "\$IP/extensions/FCKeditor/FCKeditor.php" ); |
| 35 | +HEREDOC; |
| 36 | + exit( 1 ); |
| 37 | +} |
| 38 | + |
| 39 | +# Configuration variables |
| 40 | +// Path to this extension |
| 41 | +$wgFCKEditorExtDir = 'extensions/FCKeditor'; |
| 42 | + |
| 43 | +// Path to the actual editor |
| 44 | +$wgFCKEditorDir = 'extensions/FCKeditor/fckeditor/'; |
| 45 | + |
| 46 | +$wgFCKEditorToolbarSet = 'Wiki'; |
| 47 | + |
| 48 | +// '0' for automatic ('300' minimum). |
| 49 | +$wgFCKEditorHeight = '0'; |
| 50 | + |
| 51 | +// Array of namespaces that FCKeditor is disabled for. Use constants like NS_MEDIAWIKI here. |
| 52 | +$wgFCKEditorExcludedNamespaces = array(); |
| 53 | + |
| 54 | +/** |
| 55 | + * Enable use of AJAX features. |
| 56 | + */ |
| 57 | +require_once('FCKeditorSajax.body.php'); |
| 58 | +$wgAjaxExportList[] = 'wfSajaxSearchImageFCKeditor'; |
| 59 | +$wgAjaxExportList[] = 'wfSajaxSearchArticleFCKeditor'; |
| 60 | +$wgAjaxExportList[] = 'wfSajaxSearchCategoryFCKeditor'; |
| 61 | +$wgAjaxExportList[] = 'wfSajaxWikiToHTML'; |
| 62 | +$wgAjaxExportList[] = 'wfSajaxGetImageUrl'; |
| 63 | +$wgAjaxExportList[] = 'wfSajaxGetMathUrl'; |
| 64 | +$wgAjaxExportList[] = 'wfSajaxSearchTemplateFCKeditor'; |
| 65 | +$wgAjaxExportList[] = 'wfSajaxSearchSpecialTagFCKeditor'; |
| 66 | +$wgAjaxExportList[] = 'wfSajaxToggleFCKeditor'; |
| 67 | + |
| 68 | +// Extension credits that will show up on Special:Version |
| 69 | +$wgExtensionCredits['other'][] = array( |
| 70 | + 'path' => __FILE__, |
| 71 | + 'name' => 'FCKeditor', |
| 72 | + 'author' => array( 'Frederico Caldeira Knabben', 'Wiktor Walc', 'Jack Phoenix', '...' ), |
| 73 | + 'version' => '1.0.1', |
| 74 | + 'url' => 'http://www.mediawiki.org/wiki/Extension:FCKeditor_(Official)', |
| 75 | + 'descriptionmsg' => 'fckeditor-desc', |
| 76 | +); |
| 77 | + |
| 78 | +// Autoloadable classes |
| 79 | +$dir = dirname( __FILE__ ) . '/'; |
| 80 | +$wgAutoloadClasses['FCKeditor'] = $dir . 'fckeditor/fckeditor.php'; |
| 81 | +$wgAutoloadClasses['FCKeditorParser'] = $dir . 'FCKeditorParser.body.php'; |
| 82 | +$wgAutoloadClasses['FCKeditorParserOptions'] = $dir . 'FCKeditorParserOptions.body.php'; |
| 83 | +$wgAutoloadClasses['FCKeditorParserWrapper'] = $dir . 'FCKeditorParserWrapper.body.php'; |
| 84 | +$wgAutoloadClasses['FCKeditorSkin'] = $dir . 'FCKeditorSkin.body.php'; |
| 85 | +$wgAutoloadClasses['FCKeditorEditPage'] = $dir . 'FCKeditorEditPage.body.php'; |
| 86 | +$wgAutoloadClasses['FCKeditor_MediaWiki'] = $dir . 'FCKeditor.body.php'; |
| 87 | + |
| 88 | +// Path to internationalization file |
| 89 | +$wgExtensionMessagesFiles['FCKeditor'] = $dir . 'FCKeditor.i18n.php'; |
| 90 | + |
| 91 | +// Initialize FCKeditor and the MediaWiki extension |
| 92 | +$fckeditor = new FCKeditor('fake'); |
| 93 | +$wgFCKEditorIsCompatible = $fckeditor->IsCompatible(); |
| 94 | + |
| 95 | +$oFCKeditorExtension = new FCKeditor_MediaWiki(); |
| 96 | + |
| 97 | +// Hooked functions |
| 98 | +$wgHooks['ParserAfterTidy'][] = array( $oFCKeditorExtension, 'onParserAfterTidy' ); |
| 99 | +$wgHooks['EditPage::showEditForm:initial'][] = array( $oFCKeditorExtension, 'onEditPageShowEditFormInitial' ); |
| 100 | +$wgHooks['EditPage::showEditForm:fields'][] = array( $oFCKeditorExtension, 'onEditPageShowEditFormFields' ); |
| 101 | +$wgHooks['EditPageBeforePreviewText'][] = array( $oFCKeditorExtension, 'onEditPageBeforePreviewText' ); |
| 102 | +$wgHooks['EditPagePreviewTextEnd'][] = array( $oFCKeditorExtension, 'onEditPagePreviewTextEnd' ); |
| 103 | +$wgHooks['CustomEditor'][] = array( $oFCKeditorExtension, 'onCustomEditor' ); |
| 104 | +$wgHooks['LanguageGetMagic'][] = 'FCKeditor_MediaWiki::onLanguageGetMagic'; |
| 105 | +$wgHooks['ParserBeforeStrip'][] = 'FCKeditor_MediaWiki::onParserBeforeStrip'; |
| 106 | +$wgHooks['ParserBeforeInternalParse'][] = 'FCKeditor_MediaWiki::onParserBeforeInternalParse'; |
| 107 | +$wgHooks['EditPageBeforeConflictDiff'][] = 'FCKeditor_MediaWiki::onEditPageBeforeConflictDiff'; |
| 108 | +$wgHooks['SanitizerAfterFixTagAttributes'][] = 'FCKeditor_MediaWiki::onSanitizerAfterFixTagAttributes'; |
| 109 | +$wgHooks['MakeGlobalVariablesScript'][] = 'FCKeditor_MediaWiki::onMakeGlobalVariablesScript'; |
| 110 | +$wgHooks['GetPreferences'][] = 'FCKeditor_MediaWiki::onGetPreferences'; |
| 111 | + |
| 112 | +// Defaults for new preferences options |
| 113 | +$wgDefaultUserOptions['riched_use_toggle'] = 1; |
| 114 | +$wgDefaultUserOptions['riched_start_disabled'] = 1; |
| 115 | +$wgDefaultUserOptions['riched_use_popup'] = 1; |
| 116 | +$wgDefaultUserOptions['riched_toggle_remember_state'] = 1; |
Property changes on: trunk/extensions/FCKeditor/FCKeditor.php |
___________________________________________________________________ |
Added: svn:keywords |
1 | 117 | + LastChangedRevision LastChangedDate |
Added: svn:eol-style |
2 | 118 | + native |
Index: trunk/extensions/FCKeditor/FCKeditorSkin.body.php |
— | — | @@ -0,0 +1,308 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class FCKeditorSkin { |
| 5 | + private $skin; |
| 6 | + |
| 7 | + /** |
| 8 | + * Create image link in MediaWiki 1.10 |
| 9 | + * |
| 10 | + * @param Title $nt |
| 11 | + * @param string $label label text |
| 12 | + * @param string $alt alt text |
| 13 | + * @param string $align horizontal alignment: none, left, center, right) |
| 14 | + * @param array $params Parameters to be passed to the media handler |
| 15 | + * @param boolean $framed shows image in original size in a frame |
| 16 | + * @param boolean $thumb shows image as thumbnail in a frame |
| 17 | + * @param string $manual_thumb image name for the manual thumbnail |
| 18 | + * @param string $valign vertical alignment: baseline, sub, super, top, text-top, middle, bottom, text-bottom |
| 19 | + * @return string * |
| 20 | + */ |
| 21 | + function makeImageLinkObj( $nt, $label, $alt, $align = '', $params = array(), $framed = false, |
| 22 | + $thumb = false, $manual_thumb = '', $valign = '' ) { |
| 23 | + $orginal = $nt->getText(); |
| 24 | + $img = wfFindFile( $nt ); |
| 25 | + $found = $img->getURL(); |
| 26 | + |
| 27 | + if( !is_null( $alt ) && ( $alt == 'RTENOTITLE' ) ) { // 2223 |
| 28 | + $alt = ''; |
| 29 | + } |
| 30 | + |
| 31 | + if( $found ) { |
| 32 | + // trick to get real URL for image: |
| 33 | + $frameParams = array( |
| 34 | + 'alt' => $alt, |
| 35 | + 'caption' => $label, |
| 36 | + 'align' => $align, |
| 37 | + 'framed' => $framed, |
| 38 | + 'thumbnail' => $thumb, |
| 39 | + 'manualthumb' => $manual_thumb, |
| 40 | + 'valign' => $valign |
| 41 | + ); |
| 42 | + |
| 43 | + $originalLink = strip_tags( Linker::makeImageLink2( $nt, $img, $frameParams, $params ), '<img>' ); |
| 44 | + $srcPart = substr( $originalLink, strpos( $originalLink, "src=" ) + 5 ); |
| 45 | + $url = strtok( $srcPart, '"' ); |
| 46 | + } |
| 47 | + |
| 48 | + $ret = '<img '; |
| 49 | + |
| 50 | + if( $found ) { |
| 51 | + $ret .= "src=\"{$url}\" "; |
| 52 | + } else { |
| 53 | + $ret .= "_fck_mw_valid=\"false"."\" "; |
| 54 | + } |
| 55 | + $ret .= "_fck_mw_filename=\"{$orginal}\" "; |
| 56 | + |
| 57 | + if( $align ) { |
| 58 | + $ret .= "_fck_mw_location=\"" . strtolower( $align ) . "\" "; |
| 59 | + } |
| 60 | + if( !empty( $params ) ) { |
| 61 | + if( isset( $params['width'] ) ) { |
| 62 | + $ret .= "_fck_mw_width=\"" . $params['width'] . "\" "; |
| 63 | + } |
| 64 | + if( isset( $params['height'] ) ) { |
| 65 | + $ret .= "_fck_mw_height=\"" . $params['height'] . "\" "; |
| 66 | + } |
| 67 | + } |
| 68 | + $class = ''; |
| 69 | + if( $thumb ) { |
| 70 | + $ret .= "_fck_mw_type=\"thumb"."\" "; |
| 71 | + $class .= "fck_mw_frame"; |
| 72 | + } elseif( $framed ) { |
| 73 | + $ret .= "_fck_mw_type=\"frame"."\" "; |
| 74 | + $class .= "fck_mw_frame"; |
| 75 | + } |
| 76 | + |
| 77 | + if( $align == 'right' ) { |
| 78 | + $class .= ( $class ? ' ' : '' ) . 'fck_mw_right'; |
| 79 | + } elseif( $align == 'center' ) { |
| 80 | + $class .= ( $class ? ' ' : '' ) . 'fck_mw_center'; |
| 81 | + } elseif( $align == 'left' ) { |
| 82 | + $class .= ( $class ? ' ' : '' ) . 'fck_mw_left'; |
| 83 | + } elseif( $framed || $thumb ) { |
| 84 | + $class .= ( $class ? ' ' : '' ) . 'fck_mw_right'; |
| 85 | + } |
| 86 | + |
| 87 | + if( !$found ) { |
| 88 | + $class .= ( $class ? ' ' : '' ) . 'fck_mw_notfound'; |
| 89 | + } |
| 90 | + |
| 91 | + if( !is_null( $alt ) && !empty( $alt ) && false !== strpos( FCKeditorParser::$fkc_mw_makeImage_options, $alt ) && $alt != 'Image:' . $orginal ) { |
| 92 | + $ret .= "alt=\"" . htmlspecialchars( $alt ) . "\" "; |
| 93 | + } else { |
| 94 | + $ret .= "alt=\"\" "; |
| 95 | + } |
| 96 | + |
| 97 | + if( $class ) { |
| 98 | + $ret .= "class=\"$class\" "; |
| 99 | + } |
| 100 | + |
| 101 | + $ret .= '/>'; |
| 102 | + |
| 103 | + return $ret; |
| 104 | + } |
| 105 | + |
| 106 | + function makeLinkObj( $nt, $text= '', $query = '', $trail = '', $prefix = '' ) { |
| 107 | + wfProfileIn( __METHOD__ ); |
| 108 | + if ( $nt->isExternal() ) { |
| 109 | + $args = ''; |
| 110 | + $u = $nt->getFullURL(); |
| 111 | + $link = $nt->getPrefixedURL(); |
| 112 | + if ( '' == $text ) { |
| 113 | + $text = $nt->getPrefixedText(); |
| 114 | + } |
| 115 | + $style = $this->getInterwikiLinkAttributes( $link, $text, 'extiw' ); |
| 116 | + |
| 117 | + $inside = ''; |
| 118 | + if ( '' != $trail ) { |
| 119 | + $m = array(); |
| 120 | + if ( preg_match( '/^([a-z]+)(.*)$$/sD', $trail, $m ) ) { |
| 121 | + $inside = $m[1]; |
| 122 | + $trail = $m[2]; |
| 123 | + } |
| 124 | + } |
| 125 | + if( $text == 'RTENOTITLE' ) { // 2223 |
| 126 | + $text = $u = $link; |
| 127 | + $args .= '_fcknotitle="true" '; |
| 128 | + } |
| 129 | + $t = "<a {$args}href=\"{$u}\"{$style}>{$text}{$inside}</a>"; |
| 130 | + |
| 131 | + wfProfileOut( __METHOD__ ); |
| 132 | + return $t; |
| 133 | + } |
| 134 | + |
| 135 | + return Linker::makeLinkObj( $nt, $text, $query, $trail, $prefix ); |
| 136 | + } |
| 137 | + |
| 138 | + function makeColouredLinkObj( $nt, $colour, $text = '', $query = '', $trail = '', $prefix = '' ) { |
| 139 | + if( $colour != '' ){ |
| 140 | + $style = $this->getInternalLinkAttributesObj( $nt, $text, $colour ); |
| 141 | + } else $style = ''; |
| 142 | + return $this->makeKnownLinkObj( $nt, $text, $query, $trail, $prefix, '', $style ); |
| 143 | + } |
| 144 | + |
| 145 | + function makeKnownLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' , $aprops = '', $style = '' ) { |
| 146 | + wfProfileIn( __METHOD__ ); |
| 147 | + |
| 148 | + $args = ''; |
| 149 | + if ( !is_object( $nt ) ) { |
| 150 | + wfProfileOut( __METHOD__ ); |
| 151 | + return $text; |
| 152 | + } |
| 153 | + |
| 154 | + $u = $nt->getFullText(); |
| 155 | + //#Updating links tables -> #Updating_links_tables |
| 156 | + $u = str_replace( "#" . $nt->getFragment(), $nt->getFragmentForURL(), $u ); |
| 157 | + |
| 158 | + if ( $nt->getFragment() != '' ) { |
| 159 | + if( $nt->getPrefixedDBkey() == '' ) { |
| 160 | + $u = ''; |
| 161 | + if ( '' == $text ) { |
| 162 | + $text = htmlspecialchars( $nt->getFragment() ); |
| 163 | + } |
| 164 | + } |
| 165 | + |
| 166 | + /** |
| 167 | + * See tickets 1386 and 1690 before changing anything |
| 168 | + */ |
| 169 | + if( $nt->getPartialUrl() == '' ) { |
| 170 | + $u .= $nt->getFragmentForURL(); |
| 171 | + } |
| 172 | + } |
| 173 | + if ( $text == '' ) { |
| 174 | + $text = htmlspecialchars( $nt->getPrefixedText() ); |
| 175 | + } |
| 176 | + |
| 177 | + if( $nt->getNamespace() == NS_CATEGORY ) { |
| 178 | + $u = ':' . $u; |
| 179 | + } |
| 180 | + |
| 181 | + list( $inside, $trail ) = Linker::splitTrail( $trail ); |
| 182 | + $title = "{$prefix}{$text}{$inside}"; |
| 183 | + |
| 184 | + $u = preg_replace( "/^RTECOLON/", ":", $u ); // change 'RTECOLON' => ':' |
| 185 | + if( substr( $text, 0, 10 ) == 'RTENOTITLE' ){ // starts with RTENOTITLE |
| 186 | + $args .= '_fcknotitle="true" '; |
| 187 | + $title = $u; |
| 188 | + $trail = substr( $text, 10 ) . $trail; |
| 189 | + } |
| 190 | + |
| 191 | + $r = "<a {$args}href=\"{$u}\">{$title}</a>{$trail}"; |
| 192 | + wfProfileOut( __METHOD__ ); |
| 193 | + return $r; |
| 194 | + } |
| 195 | + |
| 196 | + function makeBrokenLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) { |
| 197 | + # Fail gracefully |
| 198 | + if ( !isset( $nt ) ) { |
| 199 | + # throw new MWException(); |
| 200 | + return "<!-- ERROR -->{$prefix}{$text}{$trail}"; |
| 201 | + } |
| 202 | + $args = ''; |
| 203 | + |
| 204 | + wfProfileIn( __METHOD__ ); |
| 205 | + |
| 206 | + $u = $nt->getFullText(); |
| 207 | + //#Updating links tables -> #Updating_links_tables |
| 208 | + $u = str_replace( "#" . $nt->getFragment(), $nt->getFragmentForURL(), $u ); |
| 209 | + |
| 210 | + if ( '' == $text ) { |
| 211 | + $text = htmlspecialchars( $nt->getPrefixedText() ); |
| 212 | + } |
| 213 | + if( $nt->getNamespace() == NS_CATEGORY ) { |
| 214 | + $u = ':' . $u; |
| 215 | + } |
| 216 | + |
| 217 | + list( $inside, $trail ) = Linker::splitTrail( $trail ); |
| 218 | + $title = "{$prefix}{$text}{$inside}"; |
| 219 | + |
| 220 | + $u = preg_replace( "/^RTECOLON/", ":", $u ); // change 'RTECOLON' => ':' |
| 221 | + if( substr( $text, 0, 10 ) == 'RTENOTITLE' ){ // starts with RTENOTITLE |
| 222 | + $args .= '_fcknotitle="true" '; |
| 223 | + $title = $u; |
| 224 | + $trail = substr( $text, 10 ) . $trail; |
| 225 | + } |
| 226 | + $s = "<a {$args}href=\"{$u}\">{$title}</a>{$trail}"; |
| 227 | + |
| 228 | + wfProfileOut( __METHOD__ ); |
| 229 | + return $s; |
| 230 | + } |
| 231 | + |
| 232 | + function makeSelfLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) { |
| 233 | + $args = ''; |
| 234 | + if ( '' == $text ) { |
| 235 | + $text = $nt->mDbkeyform; |
| 236 | + } |
| 237 | + list( $inside, $trail ) = Linker::splitTrail( $trail ); |
| 238 | + $title = "{$prefix}{$text}"; |
| 239 | + if( $text == 'RTENOTITLE' ){ // 2223 |
| 240 | + $args .= '_fcknotitle="true" '; |
| 241 | + $title = $nt->mDbkeyform; |
| 242 | + } |
| 243 | + return "<a {$args}href=\"".$nt->mDbkeyform."\" class=\"selflink\">{$title}</a>{$inside}{$trail}"; |
| 244 | + } |
| 245 | + |
| 246 | + /** |
| 247 | + * Create a direct link to a given uploaded file. |
| 248 | + * |
| 249 | + * @param $title Title object. |
| 250 | + * @param $text String: pre-sanitized HTML |
| 251 | + * @return string HTML |
| 252 | + * |
| 253 | + * @todo Handle invalid or missing images better. |
| 254 | + */ |
| 255 | + public function makeMediaLinkObj( $title, $text = '' ) { |
| 256 | + if( is_null( $title ) ) { |
| 257 | + ### HOTFIX. Instead of breaking, return empty string. |
| 258 | + return $text; |
| 259 | + } else { |
| 260 | + $args = ''; |
| 261 | + $orginal = $title->getPartialURL(); |
| 262 | + $img = wfFindFile( $title ); |
| 263 | + if( $img ) { |
| 264 | + $url = $img->getURL(); |
| 265 | + $class = 'internal'; |
| 266 | + } else { |
| 267 | + $upload = SpecialPage::getTitleFor( 'Upload' ); |
| 268 | + $url = $upload->getLocalUrl( 'wpDestFile=' . urlencode( $title->getDBkey() ) ); |
| 269 | + $class = 'new'; |
| 270 | + } |
| 271 | + $alt = htmlspecialchars( $title->getText() ); |
| 272 | + if( $text == '' ) { |
| 273 | + $text = $alt; |
| 274 | + } |
| 275 | + $orginal = preg_replace( "/^RTECOLON/", ":", $orginal ); // change 'RTECOLON' => ':' |
| 276 | + if( $text == 'RTENOTITLE' ){ // 2223 |
| 277 | + $args .= '_fcknotitle="true" '; |
| 278 | + $text = $orginal; |
| 279 | + $alt = $orginal; |
| 280 | + } |
| 281 | + return "<a href=\"{$orginal}\" class=\"$class\" {$args} _fck_mw_filename=\"{$orginal}\" _fck_mw_type=\"media\" title=\"{$alt}\">{$text}</a>"; |
| 282 | + } |
| 283 | + } |
| 284 | + |
| 285 | + function makeExternalLink( $url, $text, $escape = true, $linktype = '', $ns = null ) { |
| 286 | + $url = htmlspecialchars( $url ); |
| 287 | + if( $escape ) { |
| 288 | + $text = htmlspecialchars( $text ); |
| 289 | + } |
| 290 | + $url = preg_replace( "/^RTECOLON/", ":", $url ); // change 'RTECOLON' => ':' |
| 291 | + if( $linktype == 'autonumber' ) { |
| 292 | + return '<a href="' . $url . '">[n]</a>'; |
| 293 | + } |
| 294 | + $args = ''; |
| 295 | + if( $text == 'RTENOTITLE' ){ // 2223 |
| 296 | + $args .= '_fcknotitle="true" '; |
| 297 | + $text = $url; |
| 298 | + } |
| 299 | + return '<a ' . $args . 'href="' . $url . '">' . $text . '</a>'; |
| 300 | + } |
| 301 | + |
| 302 | + function __call( $m, $a ) { |
| 303 | + return call_user_func_array( array( $this->skin, $m ), $a ); |
| 304 | + } |
| 305 | + |
| 306 | + function __construct( $skin ) { |
| 307 | + $this->skin = $skin; |
| 308 | + } |
| 309 | +} |
Property changes on: trunk/extensions/FCKeditor/FCKeditorSkin.body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 310 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/lang/sv.js |
— | — | @@ -0,0 +1,178 @@ |
| 2 | +/* |
| 3 | + * MediaWiki FCKeditor plugin |
| 4 | + * |
| 5 | + * Swedish (Svenska) language file. |
| 6 | + */ |
| 7 | + |
| 8 | +FCKLang.wikiTabEdit = 'Editera'; |
| 9 | +FCKLang.wikiTabManual = 'Manual'; |
| 10 | + |
| 11 | +FCKLang.wikiBtnTemplate = 'Infoga/Ändra Mall'; |
| 12 | +FCKLang.wikiBtnReference = 'Infoga/Ändra Reference'; |
| 13 | +FCKLang.wikiBtnReferences = 'Infoga <references /> tag'; |
| 14 | +FCKLang.wikiBtnFormula = 'Infoga/Ändra Formel'; |
| 15 | +FCKLang.wikiBtnSpecial = 'Infoga/Ändra Special Tag'; |
| 16 | +FCKLang.wikiBtnSourceCode = 'Infoga/Ändra Source Kod'; |
| 17 | +FCKLang.wikiBtnSignature = 'Infoga signatur'; |
| 18 | +FCKLang.wikiCmdTemplate = 'Mall Egenskaper'; |
| 19 | +FCKLang.wikiCmdReference = 'Reference egenskaper'; |
| 20 | +FCKLang.wikiCmdFormula = 'Formel'; |
| 21 | +FCKLang.wikiCmdCategories = 'Kategorier'; |
| 22 | +FCKLang.wikiLoadingWikitext = 'Laddar Wikitext. vänligen vänta...'; |
| 23 | +FCKLang.wikiLoadingCategories = 'Laddar kategorier...'; |
| 24 | +FCKLang.wikiSearchCategory = 'sök kategori'; |
| 25 | +FCKLang.wikiSelectedCategories = 'Valda kategorier'; |
| 26 | +FCKLang.wikiBtnCategories = 'Infoga/Ändra kategorier'; |
| 27 | +FCKLang.wikiAddNewCategory = 'Lägg till ny'; |
| 28 | +FCKLang.wikiCategoryTree = 'Kategoriträd'; |
| 29 | +FCKLang.wikiMnuTemplate = 'Mall Egenskaper'; |
| 30 | +FCKLang.wikiMnuMagicWord = 'Modifiera Magic Word'; |
| 31 | +FCKLang.wikiMnuReference = 'Reference Egenskaper'; |
| 32 | +FCKLang.wikiMnuFormula = 'Ändra Formel'; |
| 33 | +FCKLang.wikiCmdSpecial = 'Special Tag egenskaper'; |
| 34 | +FCKLang.wikiCmdSourceCode = 'Source Kod egenskaper'; |
| 35 | +FCKLang.wikiMnuSpecial = 'Special Tag Properties'; |
| 36 | +FCKLang.wikiMnuSourceCode = 'Ändra source kod'; |
| 37 | +FCKLang.wikiSourceCode = 'Source Kod'; |
| 38 | +FCKLang.wikiSourceLanguage = 'Source Språk'; |
| 39 | + |
| 40 | +FCKLang.wikiImgFileName = 'Bildens filnamn'; |
| 41 | +FCKLang.wikiImgNotice1 = 'Bilden måste laddas upp först'; |
| 42 | +FCKLang.wikiImgNotice2 = 'använd "Ladda upp fil" i vänsterkanten av skärmen'; |
| 43 | +FCKLang.wikiImgCaption = 'Caption'; |
| 44 | +FCKLang.wikiImgType = 'Special Type'; |
| 45 | +FCKLang.wikiImgTypeThumb = 'Tumnagel'; |
| 46 | +FCKLang.wikiImgTypeFrame = 'Ram'; |
| 47 | +FCKLang.wikiImgTypeBorder = 'Kant'; |
| 48 | +FCKLang.wikiImgAlignCenter = 'Center'; |
| 49 | + |
| 50 | +FCKLang.wikiImgAutomatic = 'Automatiska sökresultat'; |
| 51 | +FCKLang.wikiImgTooShort = 'För kort... skriv mer'; |
| 52 | +FCKLang.wikiImgStartTyping = 'Börja skriv i fältet ovan'; |
| 53 | +FCKLang.wikiImgStopTyping = 'Sluta skriv för att söka'; |
| 54 | +FCKLang.wikiImgSearching = 'söker...'; |
| 55 | +FCKLang.wikiImgSearchNothing = 'Inga bilder funna'; |
| 56 | +FCKLang.wikiImgSearch1Found = 'en bild funnen'; |
| 57 | +FCKLang.wikiImgSearchSeveral = '%1 bilder funna '; |
| 58 | +FCKLang.wikiImgSearchALot = '%1 bilder funan '; |
| 59 | + |
| 60 | +FCKLang.wikiLnk = 'Länk'; |
| 61 | +FCKLang.wikiLnkAutomatic = 'Automatiska sökresultat'; |
| 62 | +FCKLang.wikiLnkNoSearchAnchor = 'förankra länk... ingen sökning'; |
| 63 | +FCKLang.wikiLnkNoSearchMail = 'e-post länk... ingen sökning'; |
| 64 | +FCKLang.wikiLnkNoSearchExt = 'external link... ingan sökning'; |
| 65 | +FCKLang.wikiLnkTooShort = 'för kort... skriv mer'; |
| 66 | +FCKLang.wikiLnkStartTyping = 'Börja skriv i fältet ovan'; |
| 67 | +FCKLang.wikiLnkStopTyping = 'Sluta skriv för att söka'; |
| 68 | +FCKLang.wikiLnkSearching = 'söker...'; |
| 69 | +FCKLang.wikiLnkSearchNothing = 'Inga sidor funna'; |
| 70 | +FCKLang.wikiLnkSearch1Found = 'En sida funnen'; |
| 71 | +FCKLang.wikiLnkSearchSeveral = '%1 sidor funna'; |
| 72 | +FCKLang.wikiLnkSearchALot = '%1 sidor funna'; |
| 73 | + |
| 74 | +FCKLang.wikiTeX = 'Formel (TeX markup)'; |
| 75 | +FCKLang.wikiTeXEmpty = 'Skriv formeln'; |
| 76 | + |
| 77 | +FCKLang.wikiSpTag = 'Vald Special Tag'; |
| 78 | +FCKLang.wikiSpParam = 'Special tag parametrar'; |
| 79 | + |
| 80 | +FCKLang.wikiRef = 'Reference text (Wikitext)'; |
| 81 | +FCKLang.wikiRefName = 'Reference namn (frivilligt)'; |
| 82 | + |
| 83 | +FCKLang.wikiTmpl = 'Raw mall definiering (från {{ till }})'; |
| 84 | +FCKLang.wikiTmplEmpty = 'Mallar måste börja med {{ och sluta med }}. vänligen kontrollera.'; |
| 85 | +FCKLang.wikiTmpsel = '(Hämta manualen till en mall här)'; |
| 86 | + |
| 87 | +FCKLang.wikiUnsupportedLanguage = 'Ej supporerat språk: %1'; |
| 88 | + |
| 89 | +FCKLang.DplHelp = 'DPL står för Dynamic Page List, DPL används för att generera listor på sidor baserat på sökkriterier. Se %link för mer info'; |
| 90 | +FCKLang.inputboxHelp = 'Inputbox är en extension för att skapa formulär i wiki. Nya sidor kan bli för-definierade via en mall. Se %link för mer info'; |
| 91 | +/* |
| 92 | + * mediaWiki FCKeditor plugin |
| 93 | + * |
| 94 | + * Swedish language file. |
| 95 | + */ |
| 96 | + |
| 97 | +FCKLang.wikiTabEdit = 'Editera'; |
| 98 | +FCKLang.wikiTabManual = 'Manual'; |
| 99 | + |
| 100 | +FCKLang.wikiBtnTemplate = 'Infoga/Ändra Mall'; |
| 101 | +FCKLang.wikiBtnReference = 'Infoga/Ändra Reference'; |
| 102 | +FCKLang.wikiBtnReferences = 'Infoga <references /> tag'; |
| 103 | +FCKLang.wikiBtnFormula = 'Infoga/Ändra Formel'; |
| 104 | +FCKLang.wikiBtnSpecial = 'Infoga/Ändra Special Tag'; |
| 105 | +FCKLang.wikiBtnSourceCode = 'Infoga/Ändra Source Kod'; |
| 106 | +FCKLang.wikiBtnSignature = 'Infoga signatur'; |
| 107 | +FCKLang.wikiCmdTemplate = 'Mall Egenskaper'; |
| 108 | +FCKLang.wikiCmdReference = 'Reference egenskaper'; |
| 109 | +FCKLang.wikiCmdFormula = 'Formel'; |
| 110 | +FCKLang.wikiCmdCategories = 'Kategorier'; |
| 111 | +FCKLang.wikiLoadingWikitext = 'Laddar Wikitext. vänligen vänta...'; |
| 112 | +FCKLang.wikiLoadingCategories = 'Laddar kategorier...'; |
| 113 | +FCKLang.wikiSearchCategory = 'sök kategori'; |
| 114 | +FCKLang.wikiSelectedCategories = 'Valda kategorier'; |
| 115 | +FCKLang.wikiBtnCategories = 'Infoga/Ändra kategorier'; |
| 116 | +FCKLang.wikiAddNewCategory = 'Lägg till ny'; |
| 117 | +FCKLang.wikiCategoryTree = 'Kategoriträd'; |
| 118 | +FCKLang.wikiMnuTemplate = 'Mall Egenskaper'; |
| 119 | +FCKLang.wikiMnuMagicWord = 'Modifiera Magic Word'; |
| 120 | +FCKLang.wikiMnuReference = 'Reference Egenskaper'; |
| 121 | +FCKLang.wikiMnuFormula = 'Ändra Formel'; |
| 122 | +FCKLang.wikiCmdSpecial = 'Special Tag egenskaper'; |
| 123 | +FCKLang.wikiCmdSourceCode = 'Source Kod egenskaper'; |
| 124 | +FCKLang.wikiMnuSpecial = 'Special Tag Properties'; |
| 125 | +FCKLang.wikiMnuSourceCode = 'Ändra source kod'; |
| 126 | +FCKLang.wikiSourceCode = 'Source Kod'; |
| 127 | +FCKLang.wikiSourceLanguage = 'Source Språk'; |
| 128 | + |
| 129 | +FCKLang.wikiImgFileName = 'Bildens filnamn'; |
| 130 | +FCKLang.wikiImgNotice1 = 'Bilden måste laddas upp först'; |
| 131 | +FCKLang.wikiImgNotice2 = 'använd "Ladda upp fil" i vänsterkanten av skärmen'; |
| 132 | +FCKLang.wikiImgCaption = 'Caption'; |
| 133 | +FCKLang.wikiImgType = 'Special Type'; |
| 134 | +FCKLang.wikiImgTypeThumb = 'Tumnagel'; |
| 135 | +FCKLang.wikiImgTypeFrame = 'Ram'; |
| 136 | +FCKLang.wikiImgTypeBorder = 'Kant'; |
| 137 | +FCKLang.wikiImgAlignCenter = 'Center'; |
| 138 | + |
| 139 | +FCKLang.wikiImgAutomatic = 'Automatiska sökresultat'; |
| 140 | +FCKLang.wikiImgTooShort = 'För kort... skriv mer'; |
| 141 | +FCKLang.wikiImgStartTyping = 'Börja skriv i fältet ovan'; |
| 142 | +FCKLang.wikiImgStopTyping = 'Sluta skriv för att söka'; |
| 143 | +FCKLang.wikiImgSearching = 'söker...'; |
| 144 | +FCKLang.wikiImgSearchNothing = 'Inga bilder funna'; |
| 145 | +FCKLang.wikiImgSearch1Found = 'en bild funnen'; |
| 146 | +FCKLang.wikiImgSearchSeveral = '%1 bilder funna '; |
| 147 | +FCKLang.wikiImgSearchALot = '%1 bilder funan '; |
| 148 | + |
| 149 | +FCKLang.wikiLnk = 'Länk'; |
| 150 | +FCKLang.wikiLnkAutomatic = 'Automatiska sökresultat'; |
| 151 | +FCKLang.wikiLnkNoSearchAnchor = 'förankra länk... ingen sökning'; |
| 152 | +FCKLang.wikiLnkNoSearchMail = 'e-post länk... ingen sökning'; |
| 153 | +FCKLang.wikiLnkNoSearchExt = 'external link... ingan sökning'; |
| 154 | +FCKLang.wikiLnkTooShort = 'för kort... skriv mer'; |
| 155 | +FCKLang.wikiLnkStartTyping = 'Börja skriv i fältet ovan'; |
| 156 | +FCKLang.wikiLnkStopTyping = 'Sluta skriv för att söka'; |
| 157 | +FCKLang.wikiLnkSearching = 'söker...'; |
| 158 | +FCKLang.wikiLnkSearchNothing = 'Inga sidor funna'; |
| 159 | +FCKLang.wikiLnkSearch1Found = 'En sida funnen'; |
| 160 | +FCKLang.wikiLnkSearchSeveral = '%1 sidor funna'; |
| 161 | +FCKLang.wikiLnkSearchALot = '%1 sidor funna'; |
| 162 | + |
| 163 | +FCKLang.wikiTeX = 'Formel (TeX markup)'; |
| 164 | +FCKLang.wikiTeXEmpty = 'Skriv formeln'; |
| 165 | + |
| 166 | +FCKLang.wikiSpTag = 'Vald Special Tag'; |
| 167 | +FCKLang.wikiSpParam = 'Special tag parametrar'; |
| 168 | + |
| 169 | +FCKLang.wikiRef = 'Reference text (Wikitext)'; |
| 170 | +FCKLang.wikiRefName = 'Reference namn (frivilligt)'; |
| 171 | + |
| 172 | +FCKLang.wikiTmpl = 'Raw mall definiering (från {{ till }})'; |
| 173 | +FCKLang.wikiTmplEmpty = 'Mallar måste börja med {{ och sluta med }}. vänligen kontrollera.'; |
| 174 | +FCKLang.wikiTmpsel = '(Hämta manualen till en mall här)'; |
| 175 | + |
| 176 | +FCKLang.wikiUnsupportedLanguage = 'Ej supporerat språk: %1'; |
| 177 | + |
| 178 | +FCKLang.DplHelp = 'DPL står för Dynamic Page List, DPL används för att generera listor på sidor baserat på sökkriterier. Se %link för mer info'; |
| 179 | +FCKLang.inputboxHelp = 'Inputbox är en extension för att skapa formulär i wiki. Nya sidor kan bli för-definierade via en mall. Se %link för mer info'; |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/lang/sv.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 180 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/lang/ko.js |
— | — | @@ -0,0 +1,89 @@ |
| 2 | +/* |
| 3 | + * MediaWiki FCKeditor plugin |
| 4 | + * |
| 5 | + * Korean (한국어) language file. |
| 6 | + */ |
| 7 | + |
| 8 | +FCKLang.wikiTabEdit = '편집'; |
| 9 | +FCKLang.wikiTabManual = '매뉴얼'; |
| 10 | + |
| 11 | +FCKLang.wikiBtnTemplate = '삽입/편집 틀'; |
| 12 | +FCKLang.wikiBtnReference = '삽입/편집 참조'; |
| 13 | +FCKLang.wikiBtnReferences = '삽입 <references /> 태그'; |
| 14 | +FCKLang.wikiBtnFormula = '삽입/편집 수식'; |
| 15 | +FCKLang.wikiBtnSpecial = '삽입/편집 특수기능 태그'; |
| 16 | +FCKLang.wikiBtnSourceCode = '삽입/편집 소스 코드'; |
| 17 | +FCKLang.wikiBtnSignature = '삽입 signature'; |
| 18 | +FCKLang.wikiCmdTemplate = '틀 속성'; |
| 19 | +FCKLang.wikiCmdReference = '참조 속성'; |
| 20 | +FCKLang.wikiCmdFormula = '수식'; |
| 21 | +FCKLang.wikiCmdCategories = '분류 목록'; |
| 22 | +FCKLang.wikiLoadingWikitext = '위키텍스트를 적재하는 중입니다. 기다려주세요...'; |
| 23 | +FCKLang.wikiLoadingCategories = '분류 목록을 적재하는 중입니다...'; |
| 24 | +FCKLang.wikiSearchCategory = '검색 분류'; |
| 25 | +FCKLang.wikiSelectedCategories = '선택한 분류 목록'; |
| 26 | +FCKLang.wikiBtnCategories = '삽입/편집 분류 목록'; |
| 27 | +FCKLang.wikiAddNewCategory = '새로 추가'; |
| 28 | +FCKLang.wikiCategoryTree = '분류 트리'; |
| 29 | +FCKLang.wikiMnuTemplate = '틀 속성'; |
| 30 | +FCKLang.wikiMnuMagicWord = '주문 수정하기'; |
| 31 | +FCKLang.wikiMnuReference = '참조 속성'; |
| 32 | +FCKLang.wikiMnuFormula = '수식 편집하기'; |
| 33 | +FCKLang.wikiCmdSpecial = '특수 태그 속성'; |
| 34 | +FCKLang.wikiCmdSourceCode = '소스 코드 속성'; |
| 35 | +FCKLang.wikiMnuSpecial = '특수 태그 속성'; |
| 36 | +FCKLang.wikiMnuSourceCode = '소스 코드 편집하기'; |
| 37 | +FCKLang.wikiSourceCode = '소스 코드'; |
| 38 | +FCKLang.wikiSourceLanguage = '소스 언어'; |
| 39 | + |
| 40 | +FCKLang.wikiImgFileName = '이미지 파일 이름'; |
| 41 | +FCKLang.wikiImgNotice1 = '이미지를 먼저 올려야 합니다'; |
| 42 | +FCKLang.wikiImgNotice2 = '화면 좌측의 "파일 올리기"를 이용하세요'; |
| 43 | +FCKLang.wikiImgCaption = '캡션'; |
| 44 | +FCKLang.wikiImgType = '특수 형'; |
| 45 | +FCKLang.wikiImgTypeThumb = '썸네일'; |
| 46 | +FCKLang.wikiImgTypeFrame = '프레임'; |
| 47 | +FCKLang.wikiImgTypeBorder = '두께'; |
| 48 | +FCKLang.wikiImgAlignCenter = '중앙'; |
| 49 | + |
| 50 | +FCKLang.wikiImgAutomatic = '자동 검색 결과'; |
| 51 | +FCKLang.wikiImgTooShort = '너무 짧습니다. 글자를 더 넣으세요'; |
| 52 | +FCKLang.wikiImgStartTyping = '위쪽 필드부터 적으세요'; |
| 53 | +FCKLang.wikiImgStopTyping = '타이핑을 멈추면 검색을 시작합니다'; |
| 54 | +FCKLang.wikiImgSearching = '검색 중...'; |
| 55 | +FCKLang.wikiImgSearchNothing = '발견한 이미지 없음'; |
| 56 | +FCKLang.wikiImgSearch1Found = '이미지 하나 발견'; |
| 57 | +FCKLang.wikiImgSearchSeveral = '%1 개의 이미지 발견'; |
| 58 | +FCKLang.wikiImgSearchALot = '%1 개의 이미지 발견'; |
| 59 | + |
| 60 | +FCKLang.wikiLnk = '링크'; |
| 61 | +FCKLang.wikiLnkAutomatic = '자동 검색 결과'; |
| 62 | +FCKLang.wikiLnkNoSearchAnchor = '앵커 링크... 검색된 내용 없음'; |
| 63 | +FCKLang.wikiLnkNoSearchMail = '이메일 링크... 검색된 내용 없음'; |
| 64 | +FCKLang.wikiLnkNoSearchExt = '외부 링크... 검색된 내용 없음'; |
| 65 | +FCKLang.wikiLnkTooShort = '너무 짧습니다. 글자를 더 넣으세요'; |
| 66 | +FCKLang.wikiLnkStartTyping = '위쪽 필드부터 적으세요'; |
| 67 | +FCKLang.wikiLnkStopTyping = '타이핑을 멈추면 검색을 시작합니다'; |
| 68 | +FCKLang.wikiLnkSearching = '검색 중...'; |
| 69 | +FCKLang.wikiLnkSearchNothing = '발견한 글 없음'; |
| 70 | +FCKLang.wikiLnkSearch1Found = '글 하나 발견'; |
| 71 | +FCKLang.wikiLnkSearchSeveral = '%1 개의 글 발견'; |
| 72 | +FCKLang.wikiLnkSearchALot = '%1 개의 글 발견'; |
| 73 | + |
| 74 | +FCKLang.wikiTeX = '수식 (TeX 마크업)'; |
| 75 | +FCKLang.wikiTeXEmpty = '수식을 입력해주세요'; |
| 76 | + |
| 77 | +FCKLang.wikiSpTag = '현재 특수 태그'; |
| 78 | +FCKLang.wikiSpParam = '특수 태그 매개변수'; |
| 79 | + |
| 80 | +FCKLang.wikiRef = 'Reference text (Wikitext)'; |
| 81 | +FCKLang.wikiRefName = 'Reference name (optional)'; |
| 82 | + |
| 83 | +FCKLang.wikiTmpl = '틀 원시 정의 ({{로 시작, }}로 끝남)'; |
| 84 | +FCKLang.wikiTmplEmpty = '틀은 {{로 시작해서 }}로 끝나야 합니다. 확인해보세요.'; |
| 85 | +FCKLang.wikiTmpsel = '(여기서 틀 매뉴얼을 고르세요)'; |
| 86 | + |
| 87 | +FCKLang.wikiUnsupportedLanguage = '지원하지 않는 언어: %1'; |
| 88 | + |
| 89 | +FCKLang.DplHelp = 'DPL은 Dynamic Page List를 뜻하며 선택 기준에 근거해 페이지 목록을 예쁘게 꾸며서 보여줍니다. 자세히 알고 싶으면 %link 를 참고하세요'; |
| 90 | +FCKLang.inputboxHelp = '입력 상자는 사용자가 새 페이지를 생성하는 폼을 생성하게 해줍니다. 어느 틀에나 새 페이지 편집 상자를 미리 적재할 수 있습니다. 자세히 알고 싶으면 %link 를 참고하세요'; |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/lang/ko.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 91 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/lang/zh-tw.js |
— | — | @@ -0,0 +1,81 @@ |
| 2 | +/* |
| 3 | + * MediaWiki FCKeditor plugin |
| 4 | + * |
| 5 | + * Taiwan Chinese (中文(台灣)) language file. |
| 6 | + * @file |
| 7 | + * @ingroup Language |
| 8 | + * @author Roc michael |
| 9 | + */ |
| 10 | + |
| 11 | +FCKLang.wikiTabEdit = '編輯'; |
| 12 | +FCKLang.wikiTabManual = '手動選取'; |
| 13 | + |
| 14 | +FCKLang.wikiBtnTemplate = '插入/編輯模板'; |
| 15 | +FCKLang.wikiBtnReference = '插入/編輯參考(Reference)'; |
| 16 | +FCKLang.wikiBtnReference = '插入/編輯參考標記「<references />」'; |
| 17 | +FCKLang.wikiBtnFormula = '插入/編輯公式'; |
| 18 | +FCKLang.wikiBtnSpecial = '插入/編輯特別標記'; |
| 19 | +FCKLang.wikiCmdTemplate = '模板屬性'; |
| 20 | +FCKLang.wikiCmdReference = '參考屬性'; |
| 21 | +FCKLang.wikiCmdFormula = '公式'; |
| 22 | +FCKLang.wikiCmdCategories = '分類'; |
| 23 | +FCKLang.wikiLoadingWikitext = '載入維基文字中,請稍待...'; |
| 24 | +FCKLang.wikiLoadingCategories = '載入分類中...'; |
| 25 | +FCKLang.wikiSearchCategory = '蒐尋分類'; |
| 26 | +FCKLang.wikiSelectedCategories = '選取分類'; |
| 27 | +FCKLang.wikiBtnCategories = '插入/編輯分類'; |
| 28 | +FCKLang.wikiAddNewCategory = '新增'; |
| 29 | +FCKLang.wikiCategoryTree = '分類樹'; |
| 30 | +FCKLang.wikiMnuTemplate = '模板屬性'; |
| 31 | +FCKLang.wikiMnuMagicWord = '修改魔術字'; |
| 32 | +FCKLang.wikiMnuReference = '參考屬性'; |
| 33 | +FCKLang.wikiMnuFormula = '編輯公式'; |
| 34 | +FCKLang.wikiCmdSpecial = '特殊標記屬性'; |
| 35 | +FCKLang.wikiMnuSpecial = '特殊標記屬性'; |
| 36 | + |
| 37 | +FCKLang.wikiImgFileName = '影像檔檔名'; |
| 38 | +FCKLang.wikiImgNotice1 = '影像必須事先完成上傳'; |
| 39 | +FCKLang.wikiImgNotice2 = '使用在螢幕左側的 "上傳檔案"'; |
| 40 | +FCKLang.wikiImgCaption = '標題(Caption)'; |
| 41 | +FCKLang.wikiImgType = '特殊型態'; |
| 42 | +FCKLang.wikiImgTypeThumb = '縮圖(Thumbnail)'; |
| 43 | +FCKLang.wikiImgTypeFrame = '框(Frame)'; |
| 44 | +FCKLang.wikiImgTypeBorder = '邊(Border)'; |
| 45 | +FCKLang.wikiImgAlignCenter = '置中(Center)'; |
| 46 | + |
| 47 | +FCKLang.wikiImgAutomatic = '自動蒐尋結果'; |
| 48 | +FCKLang.wikiImgTooShort = '太短了... 請多鍵入些'; |
| 49 | +FCKLang.wikiImgStartTyping = '在上方的欄位開始鍵入'; |
| 50 | +FCKLang.wikiImgStopTyping = '停止鍵入以蒐尋'; |
| 51 | +FCKLang.wikiImgSearching = '蒐尋...'; |
| 52 | +FCKLang.wikiImgSearchNothing = '沒有找到影像'; |
| 53 | +FCKLang.wikiImgSearch1Found = '找到一個影像'; |
| 54 | +FCKLang.wikiImgSearchSeveral = '找到%1個影像'; |
| 55 | +FCKLang.wikiImgSearchALot = '找到%1個影像'; |
| 56 | + |
| 57 | +FCKLang.wikiLnk = '連結'; |
| 58 | +FCKLang.wikiLnkAutomatic = '自動蒐尋結果'; |
| 59 | +FCKLang.wikiLnkNoSearchAnchor = '錨點連結...,無蒐尋選項'; |
| 60 | +FCKLang.wikiLnkNoSearchMail = '電子郵件連結,無蒐尋選項'; |
| 61 | +FCKLang.wikiLnkNoSearchExt = '外部連結,無蒐尋選項'; |
| 62 | +FCKLang.wikiLnkTooShort = '太短了... 請多鍵入些'; |
| 63 | +FCKLang.wikiLnkStartTyping = '在上方的欄位開始鍵入'; |
| 64 | +FCKLang.wikiLnkStopTyping = '停止鍵入以蒐尋'; |
| 65 | +FCKLang.wikiLnkSearching = '蒐尋中...'; |
| 66 | +FCKLang.wikiLnkSearchNothing = '沒有找到文章'; |
| 67 | +FCKLang.wikiLnkSearch1Found = '找到1篇文章'; |
| 68 | +FCKLang.wikiLnkSearchSeveral = '找到%1篇文章'; |
| 69 | +FCKLang.wikiLnkSearchALot = '找到%1篇文章'; |
| 70 | + |
| 71 | +FCKLang.wikiTeX = '公式 (TeX 標記)'; |
| 72 | +FCKLang.wikiTeXEmpty = '請鍵入公式'; |
| 73 | + |
| 74 | +FCKLang.wikiSpTag = '現有特殊標記(Special Tag)'; |
| 75 | +FCKLang.wikiSpParam = '特殊標記參數'; |
| 76 | + |
| 77 | +FCKLang.wikiRef = '參考文字(維基文字)'; |
| 78 | +FCKLang.wikiRefName = '參考名稱(選擇性填寫)'; |
| 79 | + |
| 80 | +FCKLang.wikiTmpl = '模板行定義(從 {{ 至 }})'; |
| 81 | +FCKLang.wikiTmplEmpty = '模板必須以「{{」開頭,並以「}}」結果,請確認一下'; |
| 82 | +FCKLang.wikiTmpsel = '(請於此處選取一個模板使用說明(template manual))'; |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/lang/zh-tw.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 83 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/lang/pl.js |
— | — | @@ -0,0 +1,90 @@ |
| 2 | +/* |
| 3 | + * MediaWiki FCKeditor plugin |
| 4 | + * |
| 5 | + * Polish (Polski) language file. |
| 6 | + */ |
| 7 | + |
| 8 | +FCKLang.wikiTabEdit = 'Edycja'; |
| 9 | +FCKLang.wikiTabManual = 'Własny' ; |
| 10 | + |
| 11 | +FCKLang.wikiBtnTemplate = 'Wstaw/edytuj szablon'; |
| 12 | +FCKLang.wikiBtnReference = 'Wstaw/edytuj przypis'; |
| 13 | +FCKLang.wikiBtnReferences = 'Wstaw znacznik <references />'; |
| 14 | +FCKLang.wikiBtnFormula = 'Wstaw/edytuj formułę matematyczną'; |
| 15 | +FCKLang.wikiBtnSpecial = 'Wstaw/edytuj specialny znacznik'; |
| 16 | +FCKLang.wikiBtnSignature = 'Wstaw sygnaturkę'; |
| 17 | +FCKLang.wikiBtnSourceCode = 'Wstaw/edytuj kod źródłowy programu'; |
| 18 | +FCKLang.wikiCmdTemplate = 'Właściwości szablonu'; |
| 19 | +FCKLang.wikiCmdReference = 'Właściwości przypisu'; |
| 20 | +FCKLang.wikiCmdFormula = 'Właściwości formuły matematycznej'; |
| 21 | +FCKLang.wikiCmdCategories = 'Kategorie'; |
| 22 | +FCKLang.wikiLoadingWikitext = ' Konwertuję format wiki. Proszę czekać... '; |
| 23 | +FCKLang.wikiLoadingCategories = 'Ładuję kategorie...'; |
| 24 | +FCKLang.wikiSearchCategory = 'Szukaj kategorii'; |
| 25 | +FCKLang.wikiSelectedCategories = 'Wybrane kategorie'; |
| 26 | +FCKLang.wikiBtnCategories = 'Wstaw/edytuj kategorie'; |
| 27 | +FCKLang.wikiAddNewCategory = 'Dodaj nową'; |
| 28 | +FCKLang.wikiCategoryTree = 'Drzewo kategorii'; |
| 29 | +FCKLang.wikiMnuTemplate = 'Właściwości szablonu'; |
| 30 | +FCKLang.wikiMnuMagicWord = 'Zmodyfikuj "magiczne słowo"'; |
| 31 | +FCKLang.wikiMnuReference = 'Właściwości przypisu'; |
| 32 | +FCKLang.wikiMnuFormula = 'Właściwości formuły matematycznej'; |
| 33 | +FCKLang.wikiCmdSpecial = 'Właściwości specialnego znacznika'; |
| 34 | +FCKLang.wikiCmdSourceCode = 'Właściwości kodu źródłowego'; |
| 35 | +FCKLang.wikiMnuSpecial = 'Edytuj specialny znacznik'; |
| 36 | +FCKLang.wikiMnuSourceCode = 'Edytuj kod źródłowy'; |
| 37 | +FCKLang.wikiSourceCode = 'Kod źródłowy'; |
| 38 | +FCKLang.wikiSourceLanguage = 'Język programowania'; |
| 39 | + |
| 40 | +FCKLang.wikiImgFileName = 'Nazwa obrazka'; |
| 41 | +FCKLang.wikiImgNotice1 = 'Obrazek musi być uprzednio zapisany'; |
| 42 | +FCKLang.wikiImgNotice2 = 'patrz menu "Prześlij plik" z lewej strony ekranu.'; |
| 43 | +FCKLang.wikiImgCaption = 'Tytuł/tekst zastępczy'; |
| 44 | +FCKLang.wikiImgType = "Typ"; |
| 45 | +FCKLang.wikiImgTypeThumb = 'Podgląd'; |
| 46 | +FCKLang.wikiImgTypeFrame = 'Ramka+podpis'; |
| 47 | +FCKLang.wikiImgTypeBorder = 'Ramka'; |
| 48 | +FCKLang.wikiImgAlignCenter = 'Do środka'; |
| 49 | + |
| 50 | +FCKLang.wikiImgAutomatic = 'Wyniki wyszukiwania'; |
| 51 | +FCKLang.wikiImgTooShort = 'za mało liter... napisz coś jeszcze'; |
| 52 | +FCKLang.wikiImgStartTyping = 'zacznij pisać w polu powyżej'; |
| 53 | +FCKLang.wikiImgStopTyping = 'przestań pisać, by rozpocząć wyszukiwanie'; |
| 54 | +FCKLang.wikiImgSearching = 'wyszukiwanie...'; |
| 55 | +FCKLang.wikiImgSearchNothing = 'nie znaleziono żadnego obrazka'; |
| 56 | +FCKLang.wikiImgSearch1Found = 'znaleziono jeden obrazek'; |
| 57 | +FCKLang.wikiImgSearchSeveral = 'znaleziono %1 obrazki'; |
| 58 | +FCKLang.wikiImgSearchALot = 'znaleziono %1 obrazków'; |
| 59 | + |
| 60 | +FCKLang.wikiLnk = 'Hiperłącze'; |
| 61 | +FCKLang.wikiLnkAutomatic = 'Wyniki wyszukiwania'; |
| 62 | +FCKLang.wikiLnkNoSearchAnchor = 'Kotwica... nie da się wyszukać'; |
| 63 | +FCKLang.wikiLnkNoSearchMail = 'Adres pocztowy... nie da się wyszukać'; |
| 64 | +FCKLang.wikiLnkNoSearchExt = 'Łącze do zewnętrzne... nie da się wyszukać'; |
| 65 | +FCKLang.wikiLnkTooShort = 'za mało liter aby wyszukać'; |
| 66 | +FCKLang.wikiLnkStartTyping = 'zacznij pisać w polu powyżej'; |
| 67 | +FCKLang.wikiLnkStopTyping = 'przestań pisać, by rozpocząć wyszukiwanie'; |
| 68 | +FCKLang.wikiLnkSearching = 'wyszukiwanie...'; |
| 69 | +FCKLang.wikiLnkSearchNothing = 'nie znaleziono żadnego artykułu'; |
| 70 | +FCKLang.wikiLnkSearch1Found = 'znaleziono jednen artykuł'; |
| 71 | +FCKLang.wikiLnkSearchSeveral = 'znaleziono %1 artykuły'; |
| 72 | +FCKLang.wikiLnkSearchALot = 'znaleziono %1 artykułów'; |
| 73 | + |
| 74 | +FCKLang.wikiTeX = 'Formuła matematyczna (notacja TeX)'; |
| 75 | +FCKLang.wikiTeXEmpty = 'Nie wprowadzono formuły'; |
| 76 | + |
| 77 | +FCKLang.wikiSpTag = 'Typ znacznika'; |
| 78 | +FCKLang.wikiSpParam = 'Parametry'; |
| 79 | + |
| 80 | +FCKLang.wikiRef = 'Treść cytatu (format wiki)'; |
| 81 | +FCKLang.wikiRefName = 'Nazwa cytatu (opcjonalna)'; |
| 82 | + |
| 83 | +FCKLang.wikiTmpl = 'Szablon (np. {{PrzykładowySzablon}})'; |
| 84 | +FCKLang.wikiTmplEmpty = 'Szablon musi zaczynać się znakami {{ i kończyć się znakami }}'; |
| 85 | +FCKLang.wikiTmpsel = '(Wybierz z listy)'; |
| 86 | + |
| 87 | +FCKLang.wikiUnsupportedLanguage = 'Nieprawidłowy język programowania: %1'; |
| 88 | + |
| 89 | +FCKLang.DplHelp = 'Dynamic Page List pozwala na generowanie formatowanych list stron bazując na podanych kryteriach Zobacz %link aby dowiedzieć się więcej';; |
| 90 | +FCKLang.inputboxHelp = 'Inputbox pozwala na stworzenie formularza dla użytkowników do tworzenia nowych stron. Zobacz %link aby dowiedzieć się więcej'; |
| 91 | + |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/lang/pl.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 92 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/lang/he.js |
— | — | @@ -0,0 +1,89 @@ |
| 2 | +/* |
| 3 | + * MediaWiki FCKeditor plugin |
| 4 | + * |
| 5 | + * Hebrew (עברית) language file. |
| 6 | + */ |
| 7 | + |
| 8 | +FCKLang.wikiTabEdit = 'עריכה'; |
| 9 | +FCKLang.wikiTabManual = 'הוראות שימוש'; |
| 10 | + |
| 11 | +FCKLang.wikiBtnTemplate = 'הוסף/ערוך תבנית'; |
| 12 | +FCKLang.wikiBtnReference = 'הוסף/ערוך הערת שוליים'; |
| 13 | +FCKLang.wikiBtnReferences = 'הוסף תג <references />'; |
| 14 | +FCKLang.wikiBtnFormula = 'הוסף/ערוך נוסחה'; |
| 15 | +FCKLang.wikiBtnSpecial = 'הוסף/ערוך תג מיוחד'; |
| 16 | +FCKLang.wikiBtnSourceCode = 'הוסף/ערוך קוד מקור'; |
| 17 | +FCKLang.wikiBtnSignature = 'הוסף חתימה'; |
| 18 | +FCKLang.wikiCmdTemplate = 'תכונות התבנית'; |
| 19 | +FCKLang.wikiCmdReference = 'תכונות הערת השוליים'; |
| 20 | +FCKLang.wikiCmdFormula = 'נוסחה'; |
| 21 | +FCKLang.wikiCmdCategories = 'קטגוריות'; |
| 22 | +FCKLang.wikiLoadingWikitext = 'טוען ויקיטקסט. אנא המתן...'; |
| 23 | +FCKLang.wikiLoadingCategories = 'טוען קטגוריות...'; |
| 24 | +FCKLang.wikiSearchCategory = 'חפש קטגוריה'; |
| 25 | +FCKLang.wikiSelectedCategories = 'קטגוריות שנבחרו'; |
| 26 | +FCKLang.wikiBtnCategories = 'הוסף/ערוך קטגוריות'; |
| 27 | +FCKLang.wikiAddNewCategory = 'הוסף קטגוריה'; |
| 28 | +FCKLang.wikiCategoryTree = 'עץ קטגוריות'; |
| 29 | +FCKLang.wikiMnuTemplate = 'תכונות התבנית'; |
| 30 | +FCKLang.wikiMnuMagicWord = 'ערוך פקודת קסם'; |
| 31 | +FCKLang.wikiMnuReference = 'תכונות הערת השוליים'; |
| 32 | +FCKLang.wikiMnuFormula = 'ערוך נוסחה'; |
| 33 | +FCKLang.wikiCmdSpecial = 'תכונות התג המיוחד'; |
| 34 | +FCKLang.wikiCmdSourceCode = 'תכונות קוד המקור'; |
| 35 | +FCKLang.wikiMnuSpecial = 'תכונות התג המיוחד'; |
| 36 | +FCKLang.wikiMnuSourceCode = 'ערוך קוד מקור'; |
| 37 | +FCKLang.wikiSourceCode = 'קוד מקור'; |
| 38 | +FCKLang.wikiSourceLanguage = 'שפת קוד המקור'; |
| 39 | + |
| 40 | +FCKLang.wikiImgFileName = 'שם קובץ התמונה'; |
| 41 | +FCKLang.wikiImgNotice1 = 'יש להעלות את התמונות לפני השימוש'; |
| 42 | +FCKLang.wikiImgNotice2 = 'השתמש ב"העלאת קובץ לשרת" בצידו השמאלי של המסך'; |
| 43 | +FCKLang.wikiImgCaption = 'כיתוב תמונה'; |
| 44 | +FCKLang.wikiImgType = 'הגדרות התמונה'; |
| 45 | +FCKLang.wikiImgTypeThumb = 'ממוזערת'; |
| 46 | +FCKLang.wikiImgTypeFrame = 'ממוסגרת'; |
| 47 | +FCKLang.wikiImgTypeBorder = 'בעלת גבול'; |
| 48 | +FCKLang.wikiImgAlignCenter = 'למרכז'; |
| 49 | + |
| 50 | +FCKLang.wikiImgAutomatic = 'תוצאות חיפוש אוטומטיות'; |
| 51 | +FCKLang.wikiImgTooShort = 'קצר מדי... הקלד עוד'; |
| 52 | +FCKLang.wikiImgStartTyping = 'התחל להקליד בשדה שמלמעלה'; |
| 53 | +FCKLang.wikiImgStopTyping = 'הפסק להקליד כדי לחפש'; |
| 54 | +FCKLang.wikiImgSearching = 'מחפש...'; |
| 55 | +FCKLang.wikiImgSearchNothing = 'לא נמצאו תמונות'; |
| 56 | +FCKLang.wikiImgSearch1Found = 'תמונה אחת נמצאה'; |
| 57 | +FCKLang.wikiImgSearchSeveral = '%1 תמונות נמצאו'; |
| 58 | +FCKLang.wikiImgSearchALot = '%1 תמונות נמצאו'; |
| 59 | + |
| 60 | +FCKLang.wikiLnk = 'קישור'; |
| 61 | +FCKLang.wikiLnkAutomatic = 'תוצאות חיפוש אוטומטיות'; |
| 62 | +FCKLang.wikiLnkNoSearchAnchor = 'קישור לעוגן... אין חיפוש עבור קישורים אלו'; |
| 63 | +FCKLang.wikiLnkNoSearchMail = 'קישור למייל... אין חיפוש עבור קישורים אלו'; |
| 64 | +FCKLang.wikiLnkNoSearchExt = 'קישור חיצוני... אין חיפוש עבור קישורים אלו'; |
| 65 | +FCKLang.wikiLnkTooShort = 'קצר מדי... הקלד עוד'; |
| 66 | +FCKLang.wikiLnkStartTyping = 'התחל להקליד בשדה שמלמעלה'; |
| 67 | +FCKLang.wikiLnkStopTyping = 'הפסק להקליד כדי לחפש'; |
| 68 | +FCKLang.wikiLnkSearching = 'מחפש...'; |
| 69 | +FCKLang.wikiLnkSearchNothing = 'לא נמצאו ערכים'; |
| 70 | +FCKLang.wikiLnkSearch1Found = 'נמצא ערך אחד'; |
| 71 | +FCKLang.wikiLnkSearchSeveral = '%1 ערכים נמצאו'; |
| 72 | +FCKLang.wikiLnkSearchALot = '%1 ערכים נמצאו'; |
| 73 | + |
| 74 | +FCKLang.wikiTeX = 'נוסחה (שפת TeX)'; |
| 75 | +FCKLang.wikiTeXEmpty = 'אנא הקלד את הנוסחה'; |
| 76 | + |
| 77 | +FCKLang.wikiSpTag = 'התג המיוחד הנוכחי'; |
| 78 | +FCKLang.wikiSpParam = 'משתני התג המיוחד'; |
| 79 | + |
| 80 | +FCKLang.wikiRef = 'טקסט הערת השוליים (ויקיטקסט)'; |
| 81 | +FCKLang.wikiRefName = 'שם הערת השוליים (אופציונלי)'; |
| 82 | + |
| 83 | +FCKLang.wikiTmpl = 'הגדרה גסה של התבנית (מ-{{ ל-}})'; |
| 84 | +FCKLang.wikiTmplEmpty = 'על תבניות להתחיל ב-{{ ולהסתיים ב-}}. נסה שנית.'; |
| 85 | +FCKLang.wikiTmpsel = '(בחר תבנית כאן)'; |
| 86 | + |
| 87 | +FCKLang.wikiUnsupportedLanguage = 'שפה לא נתמכת: %1'; |
| 88 | + |
| 89 | +FCKLang.DplHelp = 'DPL הן ראשי תיבות של Dynamic Page List (בעברית - רשימת דפים דינמית). הרחבה זו מאפשרת ליצור רשימת דפים על בסיס קריטריון נבחר. לפרטים, ראה %link'; |
| 90 | +FCKLang.inputboxHelp = 'Inputbox הוא הרחבה המאפשרת ליצור טופס שנותן למשתמשים ליצור דפים חדשים. תיבת העריכה של הדף החדש יכולה להטען מראש עם כל תבנית. לפרטים, ראה %link'; |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/lang/he.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 91 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/lang/fi.js |
— | — | @@ -0,0 +1,92 @@ |
| 2 | +/* |
| 3 | + * MediaWiki FCKeditor plugin |
| 4 | + * |
| 5 | + * Finnish (Suomi) language file. |
| 6 | + * @file |
| 7 | + * @ingroup Language |
| 8 | + * @author Jack Phoenix <jack@countervandalism.net> |
| 9 | + */ |
| 10 | + |
| 11 | +FCKLang.wikiTabEdit = 'Muokkaa'; |
| 12 | +//FCKLang.wikiTabManual = 'Manual'; |
| 13 | + |
| 14 | +FCKLang.wikiBtnTemplate = 'Lisää/Muokkaa mallinetta'; |
| 15 | +FCKLang.wikiBtnReference = 'Lisää/Muokkaa viittausta'; |
| 16 | +FCKLang.wikiBtnReferences = 'Lisää <references /> -tagi'; |
| 17 | +FCKLang.wikiBtnFormula = 'Lisää/Muokkaa kaavaa'; |
| 18 | +FCKLang.wikiBtnSpecial = 'Lisää/Muokkaa erikoistagia'; |
| 19 | +FCKLang.wikiBtnSourceCode = 'Lisää/Muokkaa lähdekoodia'; |
| 20 | +FCKLang.wikiBtnSignature = 'Lisää allekirjoitus'; |
| 21 | +FCKLang.wikiCmdTemplate = 'Mallineen ominaisuudet'; |
| 22 | +FCKLang.wikiCmdReference = 'Vittauksen ominaisuudet'; |
| 23 | +FCKLang.wikiCmdFormula = 'Kaava'; |
| 24 | +FCKLang.wikiCmdCategories = 'Luokat'; |
| 25 | +FCKLang.wikiLoadingWikitext = 'Ladataan wikitekstiä. Ole hyvä ja odota...'; |
| 26 | +FCKLang.wikiLoadingCategories = 'ladataan luokkia...'; |
| 27 | +//FCKLang.wikiSearchCategory = 'Etsi luokkaa'; |
| 28 | +FCKLang.wikiSelectedCategories = 'Valitut luokat'; |
| 29 | +FCKLang.wikiBtnCategories = 'Lisää/Muokkaa luokkia'; |
| 30 | +FCKLang.wikiAddNewCategory = 'Lisää uusi'; |
| 31 | +FCKLang.wikiCategoryTree = 'Luokkapuu'; |
| 32 | +FCKLang.wikiMnuTemplate = 'Mallineen ominaisuudet'; |
| 33 | +FCKLang.wikiMnuMagicWord = 'Muuta taikasanaa'; |
| 34 | +FCKLang.wikiMnuReference = 'Viittauksen ominaisuudet'; |
| 35 | +FCKLang.wikiMnuFormula = 'Muokkaa kaavaa'; |
| 36 | +FCKLang.wikiCmdSpecial = 'Erikoistagin ominaisuudet'; |
| 37 | +FCKLang.wikiCmdSourceCode = 'Lähdekoodin ominaisuudet'; |
| 38 | +FCKLang.wikiMnuSpecial = 'Erikoistagin ominaisuudet'; |
| 39 | +FCKLang.wikiMnuSourceCode = 'Muokkaa lähdekoodia'; |
| 40 | +FCKLang.wikiSourceCode = 'Lähdekoodi'; |
| 41 | +FCKLang.wikiSourceLanguage = 'Lähdekieli'; |
| 42 | + |
| 43 | +FCKLang.wikiImgFileName = 'Kuvatiedoston nimi'; |
| 44 | +FCKLang.wikiImgNotice1 = 'Kuvan tulee olla tallennettu etukäteen'; |
| 45 | +FCKLang.wikiImgNotice2 = 'käytä "Tallenna tiedosto"-ominaisuutta ruudun vasemmalla puolella'; |
| 46 | +FCKLang.wikiImgCaption = 'Kuvateksti'; |
| 47 | +//FCKLang.wikiImgType = 'Erikoistyyppi'; |
| 48 | +FCKLang.wikiImgTypeThumb = 'Pikkukuva'; |
| 49 | +FCKLang.wikiImgTypeFrame = 'Kehys'; |
| 50 | +FCKLang.wikiImgTypeBorder = 'Reuna'; |
| 51 | +FCKLang.wikiImgAlignCenter = 'Keskitetty'; |
| 52 | + |
| 53 | +FCKLang.wikiImgAutomatic = 'Automaattisen haun tulokset'; |
| 54 | +FCKLang.wikiImgTooShort = 'liian lyhyt... kirjoita lisää'; |
| 55 | +FCKLang.wikiImgStartTyping = 'aloita kirjoittamaan ylläolevaan kenttään'; |
| 56 | +FCKLang.wikiImgStopTyping = 'lopeta kirjoittaminen etsiäksesi'; |
| 57 | +FCKLang.wikiImgSearching = 'etsitään...'; |
| 58 | +FCKLang.wikiImgSearchNothing = 'kuvia ei löytynyt'; |
| 59 | +FCKLang.wikiImgSearch1Found = 'yksi kuva löytyi'; |
| 60 | +FCKLang.wikiImgSearchSeveral = '%1 kuvaa löytyi '; |
| 61 | +FCKLang.wikiImgSearchALot = '%1 kuvaa löytyi '; |
| 62 | + |
| 63 | +FCKLang.wikiLnk = 'Linkki'; |
| 64 | +FCKLang.wikiLnkAutomatic = 'Automaattisen haun tulokset'; |
| 65 | +FCKLang.wikiLnkNoSearchAnchor = 'ankkurilinkki... ei haeta sitä'; |
| 66 | +FCKLang.wikiLnkNoSearchMail = 'sähköpostilinkki... ei haeta sitä'; |
| 67 | +FCKLang.wikiLnkNoSearchExt = 'ulkoinen linkki... ei haeta sitä'; |
| 68 | +FCKLang.wikiLnkTooShort = 'liian lyhyt... kirjoita lisää'; |
| 69 | +FCKLang.wikiLnkStartTyping = 'aloita kirjoittamaan ylläolevaan kenttään'; |
| 70 | +FCKLang.wikiLnkStopTyping = 'lopeta kirjoittaminen etsiäksesi'; |
| 71 | +FCKLang.wikiLnkSearching = 'etsitään...'; |
| 72 | +FCKLang.wikiLnkSearchNothing = 'artikkeleita ei löytynyt'; |
| 73 | +FCKLang.wikiLnkSearch1Found = 'yksi artikkeli löytyi'; |
| 74 | +FCKLang.wikiLnkSearchSeveral = '%1 artikkelia löytyi'; |
| 75 | +FCKLang.wikiLnkSearchALot = '%1 artikkelia löytyi'; |
| 76 | + |
| 77 | +FCKLang.wikiTeX = 'Kaava (TeX-merkkikieli)'; |
| 78 | +FCKLang.wikiTeXEmpty = 'Ole hyvä ja kirjoita kaava'; |
| 79 | + |
| 80 | +FCKLang.wikiSpTag = 'Nykyinen erikoistagi'; |
| 81 | +FCKLang.wikiSpParam = 'Erikoistagin parametrit'; |
| 82 | + |
| 83 | +FCKLang.wikiRef = 'Vittauksen teksti (wikitekstiä)'; |
| 84 | +FCKLang.wikiRefName = 'Viittauksen nimi (vapaaehtoinen)'; |
| 85 | + |
| 86 | +FCKLang.wikiTmpl = 'Mallineen raakamääritelmä ({{ -merkeistä }} -merkkeihin)'; |
| 87 | +FCKLang.wikiTmplEmpty = 'Mallineiden täytyy alkaa {{ -merkeillä ja päättyä }} -merkkeihin. Ole hyvä ja tarkista se.'; |
| 88 | +//FCKLang.wikiTmpsel = '(Pick up a template manual here)'; |
| 89 | + |
| 90 | +FCKLang.wikiUnsupportedLanguage = 'Ei-tuettu kieli: %1'; |
| 91 | + |
| 92 | +FCKLang.DplHelp = 'DPL on lyhenne sanoista Dynamic Page List (dynaaminen sivulista) ja se mahdollistaa muotoillun listan luomisen annettuja kriteereitä vastaavisa sivuista. Katso %link saadaksesi lisätietoja'; |
| 93 | +FCKLang.inputboxHelp = 'Inputbox mahdollistaa lomakkeen luomisen, jonka avulla käyttäjät voivat luoda uusia sivuja. Uusien sivujen luontilaatikkoon voi etukäteen ladata minkä tahansa mallineen. Katso %link saadaksesi lisätietoja'; |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/lang/fi.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 94 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/lang/en.js |
— | — | @@ -0,0 +1,89 @@ |
| 2 | +/* |
| 3 | + * MediaWiki FCKeditor plugin |
| 4 | + * |
| 5 | + * English language file. |
| 6 | + */ |
| 7 | + |
| 8 | +FCKLang.wikiTabEdit = 'Edit'; |
| 9 | +FCKLang.wikiTabManual = 'Manual'; |
| 10 | + |
| 11 | +FCKLang.wikiBtnTemplate = 'Insert/Edit Template'; |
| 12 | +FCKLang.wikiBtnReference = 'Insert/Edit Reference'; |
| 13 | +FCKLang.wikiBtnReferences = 'Insert <references /> tag'; |
| 14 | +FCKLang.wikiBtnFormula = 'Insert/Edit Formula'; |
| 15 | +FCKLang.wikiBtnSpecial = 'Insert/Edit Special Tag'; |
| 16 | +FCKLang.wikiBtnSourceCode = 'Insert/Edit Source Code'; |
| 17 | +FCKLang.wikiBtnSignature = 'Insert signature'; |
| 18 | +FCKLang.wikiCmdTemplate = 'Template Properties'; |
| 19 | +FCKLang.wikiCmdReference = 'Reference Properties'; |
| 20 | +FCKLang.wikiCmdFormula = 'Formula'; |
| 21 | +FCKLang.wikiCmdCategories = 'Categories'; |
| 22 | +FCKLang.wikiLoadingWikitext = 'Loading Wikitext. Please wait...'; |
| 23 | +FCKLang.wikiLoadingCategories = 'loading categories...'; |
| 24 | +FCKLang.wikiSearchCategory = 'Search category'; |
| 25 | +FCKLang.wikiSelectedCategories = 'Selected categories'; |
| 26 | +FCKLang.wikiBtnCategories = 'Insert/Edit categories'; |
| 27 | +FCKLang.wikiAddNewCategory = 'Add new'; |
| 28 | +FCKLang.wikiCategoryTree = 'Category tree'; |
| 29 | +FCKLang.wikiMnuTemplate = 'Template Properties'; |
| 30 | +FCKLang.wikiMnuMagicWord = 'Modify Magic Word'; |
| 31 | +FCKLang.wikiMnuReference = 'Reference Properties'; |
| 32 | +FCKLang.wikiMnuFormula = 'Edit Formula'; |
| 33 | +FCKLang.wikiCmdSpecial = 'Special Tag Properties'; |
| 34 | +FCKLang.wikiCmdSourceCode = 'Source Code Properties'; |
| 35 | +FCKLang.wikiMnuSpecial = 'Special Tag Properties'; |
| 36 | +FCKLang.wikiMnuSourceCode = 'Edit source code'; |
| 37 | +FCKLang.wikiSourceCode = 'Source Code'; |
| 38 | +FCKLang.wikiSourceLanguage = 'Source Language'; |
| 39 | + |
| 40 | +FCKLang.wikiImgFileName = 'Image file name'; |
| 41 | +FCKLang.wikiImgNotice1 = 'Image have to be uploded before'; |
| 42 | +FCKLang.wikiImgNotice2 = 'use "Upload file" on the left side of the screen'; |
| 43 | +FCKLang.wikiImgCaption = 'Caption'; |
| 44 | +FCKLang.wikiImgType = 'Special Type'; |
| 45 | +FCKLang.wikiImgTypeThumb = 'Thumbnail'; |
| 46 | +FCKLang.wikiImgTypeFrame = 'Frame'; |
| 47 | +FCKLang.wikiImgTypeBorder = 'Border'; |
| 48 | +FCKLang.wikiImgAlignCenter = 'Center'; |
| 49 | + |
| 50 | +FCKLang.wikiImgAutomatic = 'Automatic search results'; |
| 51 | +FCKLang.wikiImgTooShort = 'too short... type more'; |
| 52 | +FCKLang.wikiImgStartTyping = 'start typing in the above field'; |
| 53 | +FCKLang.wikiImgStopTyping = 'stop typing to search'; |
| 54 | +FCKLang.wikiImgSearching = 'searching...'; |
| 55 | +FCKLang.wikiImgSearchNothing = 'no images found'; |
| 56 | +FCKLang.wikiImgSearch1Found = 'one image found'; |
| 57 | +FCKLang.wikiImgSearchSeveral = '%1 images found '; |
| 58 | +FCKLang.wikiImgSearchALot = '%1 images found '; |
| 59 | + |
| 60 | +FCKLang.wikiLnk = 'Link'; |
| 61 | +FCKLang.wikiLnkAutomatic = 'Automatic search results'; |
| 62 | +FCKLang.wikiLnkNoSearchAnchor = 'anchor link... no search for it'; |
| 63 | +FCKLang.wikiLnkNoSearchMail = 'e-mail link... no search for it'; |
| 64 | +FCKLang.wikiLnkNoSearchExt = 'external link... no search for it'; |
| 65 | +FCKLang.wikiLnkTooShort = 'too short... type more'; |
| 66 | +FCKLang.wikiLnkStartTyping = 'start typing in the above field'; |
| 67 | +FCKLang.wikiLnkStopTyping = 'stop typing to search'; |
| 68 | +FCKLang.wikiLnkSearching = 'searching...'; |
| 69 | +FCKLang.wikiLnkSearchNothing = 'no articles found'; |
| 70 | +FCKLang.wikiLnkSearch1Found = 'one article found'; |
| 71 | +FCKLang.wikiLnkSearchSeveral = '%1 articles found'; |
| 72 | +FCKLang.wikiLnkSearchALot = '%1 articles found'; |
| 73 | + |
| 74 | +FCKLang.wikiTeX = 'Formula (TeX markup)'; |
| 75 | +FCKLang.wikiTeXEmpty = 'Please type the formula'; |
| 76 | + |
| 77 | +FCKLang.wikiSpTag = 'Current Special Tag'; |
| 78 | +FCKLang.wikiSpParam = 'Special tag parameters'; |
| 79 | + |
| 80 | +FCKLang.wikiRef = 'Reference text (Wikitext)'; |
| 81 | +FCKLang.wikiRefName = 'Reference name (optional)'; |
| 82 | + |
| 83 | +FCKLang.wikiTmpl = 'Template raw definition (from {{ to }})'; |
| 84 | +FCKLang.wikiTmplEmpty = 'Templates must start with {{ and end with }}. Please check it.'; |
| 85 | +FCKLang.wikiTmpsel = '(Pick up a template manual here)'; |
| 86 | + |
| 87 | +FCKLang.wikiUnsupportedLanguage = 'Unsupported language: %1'; |
| 88 | + |
| 89 | +FCKLang.DplHelp = 'DPL stands for Dynamic Page List, and allows to generate a formatted list of pages based on selection criteria. See %link for details'; |
| 90 | +FCKLang.inputboxHelp = 'Inputbox allows to create a form for users to create new pages. The new pages edit box can be pre-loaded with any template. See %link for details'; |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/lang/en.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 91 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/ref.html |
— | — | @@ -0,0 +1,125 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Link dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | + <title>Reference Properties</title> |
| 28 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | + <meta name="robots" content="noindex, nofollow" /> |
| 30 | + <script type="text/javascript"> |
| 31 | + |
| 32 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 33 | +var FCK = oEditor.FCK ; |
| 34 | +var FCKLang = oEditor.FCKLang ; |
| 35 | +var FCKConfig = oEditor.FCKConfig ; |
| 36 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 37 | +var FCKTools = oEditor.FCKTools ; |
| 38 | + |
| 39 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 40 | + |
| 41 | + </script> |
| 42 | + <script type="text/javascript"> |
| 43 | + |
| 44 | +// Get the selected flash embed (if available). |
| 45 | +var oFakeImage = FCK.Selection.GetSelectedElement() ; |
| 46 | +var oRef ; |
| 47 | + |
| 48 | +if ( oFakeImage ) |
| 49 | +{ |
| 50 | + if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fck_mw_ref') ) |
| 51 | + oRef = FCK.GetRealElement( oFakeImage ) ; |
| 52 | + else |
| 53 | + oFakeImage = null ; |
| 54 | +} |
| 55 | + |
| 56 | +window.onload = function() |
| 57 | +{ |
| 58 | + // Translate the dialog box texts. |
| 59 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 60 | + |
| 61 | + // Load the selected link information (if any). |
| 62 | + LoadSelection() ; |
| 63 | + |
| 64 | + // Activate the "OK" button. |
| 65 | + window.parent.SetOkButton( true ) ; |
| 66 | + window.parent.SetAutoSize( true ) ; |
| 67 | + GetE('xRefText').focus(); |
| 68 | +}; |
| 69 | + |
| 70 | +function LoadSelection() |
| 71 | +{ |
| 72 | + if ( !oRef ) return ; |
| 73 | + |
| 74 | + GetE('xRefText').value = FCKTools.HTMLDecode( oRef.innerHTML ).replace( /"/g, '"' ) ; |
| 75 | + GetE('xRefName').value = oRef.getAttribute( 'name' ) ; |
| 76 | +} |
| 77 | + |
| 78 | +//#### The OK button was hit. |
| 79 | +function Ok() |
| 80 | +{ |
| 81 | + if ( !oRef ) |
| 82 | + { |
| 83 | + oRef = FCK.EditorDocument.createElement( 'SPAN' ) ; |
| 84 | + oRef.className = 'fck_mw_ref' ; |
| 85 | + } |
| 86 | + |
| 87 | + var refData = FCKTools.HTMLEncode( GetE('xRefText').value ).Trim().replace( /"/g, '"' ) ; |
| 88 | + oRef.innerHTML = refData ; |
| 89 | + SetAttribute( oRef, "name", GetE('xRefName').value ) ; |
| 90 | + |
| 91 | + if ( !oFakeImage ) |
| 92 | + { |
| 93 | + oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__MWRef', oRef ) ; |
| 94 | + oFakeImage.setAttribute( '_fck_mw_ref', 'true', 0 ) ; |
| 95 | + oFakeImage = FCK.InsertElement( oFakeImage ) ; |
| 96 | + } |
| 97 | + |
| 98 | + return true ; |
| 99 | +} |
| 100 | + |
| 101 | + </script> |
| 102 | +</head> |
| 103 | +<body style="overflow: hidden"> |
| 104 | + <div id="divInfo"> |
| 105 | + <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> |
| 106 | + <tr> |
| 107 | + <td> |
| 108 | + <span fcklang="wikiRef">Reference text (Wikitext)</span> |
| 109 | + </td> |
| 110 | + </tr> |
| 111 | + <tr> |
| 112 | + <td height="100%"> |
| 113 | + <textarea id="xRefText" style="width: 100%; height: 100%; font-family: Monospace" |
| 114 | + cols="50" rows="5"></textarea> |
| 115 | + </td> |
| 116 | + </tr> |
| 117 | + <tr> |
| 118 | + <td> |
| 119 | + <span fcklang="wikiRefName">Reference name (optional)</span><br /> |
| 120 | + <input id="xRefName" type="text" size="15" /> |
| 121 | + </td> |
| 122 | + </tr> |
| 123 | + </table> |
| 124 | + </div> |
| 125 | +</body> |
| 126 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/ref.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 127 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/category.html |
— | — | @@ -0,0 +1,395 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Category dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | +<title>Categories</title> |
| 28 | +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | +<meta name="robots" content="noindex, nofollow" /> |
| 30 | +<script type="text/javascript"> |
| 31 | +var oEditor = window.parent.InnerDialogLoaded(); |
| 32 | +var FCK = oEditor.FCK; |
| 33 | +var FCKLang = oEditor.FCKLang; |
| 34 | +var FCKConfig = oEditor.FCKConfig; |
| 35 | +var FCKRegexLib = oEditor.FCKRegexLib; |
| 36 | +var FCKTools = oEditor.FCKTools; |
| 37 | +var FCKBrowserInfo = oEditor.FCKBrowserInfo; |
| 38 | +var EditorDocument = oEditor.FCK.EditorDocument; |
| 39 | + |
| 40 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ); |
| 41 | + |
| 42 | +window.onload = function() |
| 43 | +{ |
| 44 | + // Translate the dialog box texts. |
| 45 | + oEditor.FCKLanguageManager.TranslatePage( document ); |
| 46 | + |
| 47 | + // Load the selected link information (if any). |
| 48 | + InitSelected(); |
| 49 | + SetSearchMessage( FCKLang.wikiLoadingCategories || 'loading categories...' ); |
| 50 | + oEditor.window.parent.sajax_request_type = 'GET'; |
| 51 | + oEditor.window.parent.sajax_do_call( 'wfSajaxSearchCategoryFCKeditor', [], InitCategoryTree ); |
| 52 | + |
| 53 | + // Activate the "OK" button. |
| 54 | + window.parent.SetOkButton( true ); |
| 55 | + window.parent.SetAutoSize( true ); |
| 56 | +}; |
| 57 | + |
| 58 | +var selectedCats; |
| 59 | + |
| 60 | +function InitSelected() |
| 61 | +{ |
| 62 | + selectedCats = new Array(); |
| 63 | + var node = EditorDocument; |
| 64 | + while ( node ) |
| 65 | + { |
| 66 | + if ( node.nodeType == 1 && node.tagName.toLowerCase() == 'a' ) |
| 67 | + { |
| 68 | + // Get the actual Link href. |
| 69 | + var sHRef = node.getAttribute( '_fcksavedurl' ); |
| 70 | + if ( sHRef == null ) |
| 71 | + sHRef = node.getAttribute( 'href', 2 ) || ''; |
| 72 | + if ( sHRef.StartsWith( 'Category:' ) ) |
| 73 | + { |
| 74 | + var select = GetE( 'xCategories' ); |
| 75 | + var cat = sHRef.slice( 9 ); |
| 76 | + SelectCategory( cat, -1 ); |
| 77 | + } |
| 78 | + } |
| 79 | + node = FCKTools.GetNextNode( node, EditorDocument ); |
| 80 | + } |
| 81 | +} |
| 82 | + |
| 83 | +function SelectCategory( cat, catTreeRow ) |
| 84 | +{ |
| 85 | + var select, row = parseInt( catTreeRow ); |
| 86 | + if ( row >= 0 ) |
| 87 | + { |
| 88 | + select = GetE( 'xWikiResults' ); |
| 89 | + cat = select.options[ row ].text; |
| 90 | + var lvl = 0; |
| 91 | + while ( cat.charAt( lvl ) == placeholder ) |
| 92 | + lvl++; |
| 93 | + cat = cat.slice( lvl ); |
| 94 | + if ( cat.charAt( 0 ) == '[' && cat.charAt( cat.length - 1 ) == ']' ) |
| 95 | + cat = cat.substring( 1, cat.length - 1 ); |
| 96 | + } |
| 97 | + |
| 98 | + if ( selectedCats[ cat ] ) |
| 99 | + delete selectedCats[ cat ]; |
| 100 | + else |
| 101 | + selectedCats[ cat ] = cat; |
| 102 | + |
| 103 | + select = GetE( 'xCategories' ); |
| 104 | + |
| 105 | + while ( select.options.length > 0 ) |
| 106 | + select.remove( 0 ); |
| 107 | + |
| 108 | + for ( cat in selectedCats ) |
| 109 | + FCKTools.AddSelectOption( select, cat, cat ); |
| 110 | +} |
| 111 | + |
| 112 | +var catTree; |
| 113 | + |
| 114 | +function InitCategoryTree( result ) |
| 115 | +{ |
| 116 | + SetSearchMessage( FCKLang.wikiLnkStartTyping || 'start typing in the above field' ); |
| 117 | + |
| 118 | + catTree = new Object(); |
| 119 | + var levelsHead = new Array( 'root' ); |
| 120 | + var levelsBody = new Array( '' ); |
| 121 | + |
| 122 | + var results = result.responseText.Trim().split( '\n' ); |
| 123 | + var previousLvl = -1; |
| 124 | + for ( var i = 0 ; i < results.length ; i++ ) |
| 125 | + { |
| 126 | + var lvl = 0; |
| 127 | + while ( results[ i ].charAt( lvl ) == ' ' ) |
| 128 | + lvl++; |
| 129 | + var t = results[ i ].slice( lvl ); |
| 130 | + for ( var j = previousLvl ; j > lvl - 1 ; j-- ) |
| 131 | + { |
| 132 | + |
| 133 | + if ( levelsBody[ j + 1 ] != '' ) |
| 134 | + catTree[ levelsHead[ j + 1 ] ] = levelsBody[ j + 1 ]; |
| 135 | + delete levelsHead[ j + 1 ]; |
| 136 | + delete levelsBody[ j + 1 ]; |
| 137 | + } |
| 138 | + if ( lvl > previousLvl ) |
| 139 | + levelsBody[ lvl ] = t; |
| 140 | + else |
| 141 | + levelsBody[ lvl ] = levelsBody[ lvl ] + ' ' + t; |
| 142 | + levelsHead[ lvl + 1 ] = t; |
| 143 | + levelsBody[ lvl + 1 ] = ''; |
| 144 | + previousLvl = lvl; |
| 145 | + } |
| 146 | + for ( var j = previousLvl ; j >= -1 ; j-- ) |
| 147 | + { |
| 148 | + if ( levelsBody[ j + 1 ] != '' ) |
| 149 | + catTree[ levelsHead[ j + 1 ] ] = levelsBody[ j + 1 ]; |
| 150 | + delete levelsHead[ j + 1 ]; |
| 151 | + delete levelsBody[ j + 1 ]; |
| 152 | + } |
| 153 | + |
| 154 | + ShowCategoriesSubTree( -1 ); |
| 155 | +} |
| 156 | + |
| 157 | +var placeholder = '.'; |
| 158 | + |
| 159 | +//draw category subtree |
| 160 | +function ShowCategoriesSubTree( rowInTree ) |
| 161 | +{ |
| 162 | + var row = parseInt( rowInTree ); |
| 163 | + var select = GetE( 'xWikiResults' ); |
| 164 | + var root = 'root'; |
| 165 | + var lvl = -1; |
| 166 | + var prefix = ''; |
| 167 | + if ( row >= 0 ) |
| 168 | + { |
| 169 | + root = select.options[ row ].text; |
| 170 | + lvl = 0; |
| 171 | + while ( root.charAt( lvl ) == placeholder ) |
| 172 | + lvl++; |
| 173 | + root = root.slice( lvl ); |
| 174 | + if ( root.charAt( 0 ) == '[' && root.charAt( root.length - 1 ) == ']' ) |
| 175 | + root = root.substring( 1, root.length - 1 ); |
| 176 | + prefix = new Array( lvl + 1 + 3 ).join( placeholder ); |
| 177 | + } |
| 178 | + if ( !catTree[ root ] ) |
| 179 | + return; |
| 180 | + |
| 181 | + var itCount = select.options.length; |
| 182 | + var itSkip = row + 1; |
| 183 | + var opts = new Array(); |
| 184 | + for ( var i = row + 1 ; i < itCount ; i++ ) |
| 185 | + { |
| 186 | + var t = select.options[ i ].text; |
| 187 | + var sublvl = 0; |
| 188 | + while ( t.charAt( sublvl ) == placeholder ) |
| 189 | + sublvl++; |
| 190 | + if ( sublvl > lvl ) |
| 191 | + itSkip = i + 1; |
| 192 | + else |
| 193 | + break; |
| 194 | + } |
| 195 | + for ( var i = itCount - 1 ; i > row ; i-- ) |
| 196 | + { |
| 197 | + var t = select.options[ i ].text; |
| 198 | + if ( i >= itSkip ) |
| 199 | + opts.push( t ); |
| 200 | + select.remove( i ); |
| 201 | + } |
| 202 | + if ( itSkip == row + 1 ) |
| 203 | + { |
| 204 | + var cats = catTree[ root ].split( ' ' ); |
| 205 | + |
| 206 | + for ( var k in cats ) |
| 207 | + { |
| 208 | + var p = cats[ k ]; |
| 209 | + if ( catTree[ cats[ k ] ] ) |
| 210 | + p = '[' + p + ']'; |
| 211 | + var e = FCKTools.AddSelectOption( select, prefix + p, ++row ); |
| 212 | + if ( catTree[ cats[ k ] ] ) |
| 213 | + e.style.color = '#00f'; |
| 214 | + |
| 215 | + } |
| 216 | + } |
| 217 | + for ( var i = opts.length - 1 ; i >= 0 ; i-- ) |
| 218 | + { |
| 219 | + var e = FCKTools.AddSelectOption( select, opts[ i ], ++row ); |
| 220 | + if ( opts[ i ].indexOf( '[' ) >= 0 ) |
| 221 | + e.style.color = '#00f'; |
| 222 | + } |
| 223 | + |
| 224 | +} |
| 225 | + |
| 226 | +//draw filtered |
| 227 | +function ShowFilteredCategories( filter ) |
| 228 | +{ |
| 229 | + var select = GetE( 'xWikiResults' ); |
| 230 | + while ( select.options.length > 0 ) |
| 231 | + select.remove( 0 ); |
| 232 | + var found = new Object(); |
| 233 | + if ( filter.length == 0 ) |
| 234 | + { |
| 235 | + ShowCategoriesSubTree( -1 ); |
| 236 | + return; |
| 237 | + } |
| 238 | + filter = filter.toLowerCase(); |
| 239 | + var row = -1; |
| 240 | + for ( var folder in catTree ) |
| 241 | + { |
| 242 | + var cats = catTree[ folder ].split( ' ' ); |
| 243 | + for ( var k in cats ) |
| 244 | + { |
| 245 | + var p = cats[ k ].toLowerCase(); |
| 246 | + if ( p.indexOf( filter ) >= 0 ) |
| 247 | + { |
| 248 | + if ( found[ cats[ k ] ] ) |
| 249 | + ; |
| 250 | + else |
| 251 | + { |
| 252 | + found[ cats[ k ] ] = cats[ k ]; |
| 253 | + FCKTools.AddSelectOption( select, cats[ k ], ++row ); |
| 254 | + } |
| 255 | + } |
| 256 | + } |
| 257 | + } |
| 258 | +} |
| 259 | + |
| 260 | +function AddNew() |
| 261 | +{ |
| 262 | + var select = GetE( 'txtUrl' ); |
| 263 | + if ( select.value.Trim() ) |
| 264 | + SelectCategory( select.value, -1 ); |
| 265 | + select.value = ''; |
| 266 | +} |
| 267 | + |
| 268 | +//#### The OK button was hit. |
| 269 | +function Ok() |
| 270 | +{ |
| 271 | + var nodes = new Array(); |
| 272 | + var node = EditorDocument; |
| 273 | + var nodeNext; |
| 274 | + var s = ''; |
| 275 | + var i = 0; |
| 276 | + while ( node ) |
| 277 | + { |
| 278 | + nodeNext = FCKTools.GetNextNode( node, EditorDocument ); |
| 279 | + if ( node.nodeType == 1 && node.tagName.toLowerCase() == 'a' ) |
| 280 | + { |
| 281 | + // Get the actual Link href. |
| 282 | + var sHRef = node.getAttribute( '_fcksavedurl' ); |
| 283 | + if ( sHRef == null ) |
| 284 | + sHRef = node.getAttribute( 'href', 2 ) || ''; |
| 285 | + if ( sHRef.StartsWith( 'Category:' ) ) |
| 286 | + nodes[ i++ ] = node; |
| 287 | + } |
| 288 | + node = nodeNext; |
| 289 | + } |
| 290 | + for ( var i = 0 ; i < nodes.length ; i++ ) |
| 291 | + nodes[ i ].parentNode.removeChild( nodes[ i ] ); |
| 292 | + |
| 293 | + for ( var cat in selectedCats ) |
| 294 | + AddCategoryLink( cat ); |
| 295 | + |
| 296 | + CleanUpCategoryLinks(); |
| 297 | + |
| 298 | + return true; |
| 299 | +} |
| 300 | + |
| 301 | +function CleanUpCategoryLinks() |
| 302 | +{ |
| 303 | + var node = EditorDocument; |
| 304 | + var nodes = []; |
| 305 | + while ( node ) |
| 306 | + { |
| 307 | + if ( node.nodeType == 1 && node.tagName.toLowerCase() == 'a' ) |
| 308 | + { |
| 309 | + // Get the actual Link href. |
| 310 | + var sHRef = node.getAttribute( '_fcksavedurl' ); |
| 311 | + if ( sHRef == null ) |
| 312 | + sHRef = node.getAttribute( 'href', 2 ) || ''; |
| 313 | + if ( sHRef.StartsWith( 'Category:' ) ) |
| 314 | + nodes.push(node); |
| 315 | + } |
| 316 | + node = FCKTools.GetNextNode( node, EditorDocument ); |
| 317 | + } |
| 318 | + |
| 319 | + for ( var i = 0; i < nodes.length ; i++ ) |
| 320 | + EditorDocument.body.appendChild( nodes[i] ); |
| 321 | +} |
| 322 | + |
| 323 | +function AddCategoryLink( cat ) |
| 324 | +{ |
| 325 | + var sUri = 'Category:' + cat; |
| 326 | + var sInnerHtml; |
| 327 | + |
| 328 | + // If no link is selected, create a new one (it may result in more than one link creation - #220). |
| 329 | + var aLinks = oEditor.FCK.CreateLink( sUri ); |
| 330 | + |
| 331 | + // If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26) |
| 332 | + var aHasSelection = (aLinks.length > 0); |
| 333 | + if ( !aHasSelection ) |
| 334 | + { |
| 335 | + sInnerHtml = sUri; |
| 336 | + |
| 337 | + var oLinkPathRegEx = new RegExp( "//?([^?\"']+)([?].*)?$" ); |
| 338 | + var asLinkPath = oLinkPathRegEx.exec( sUri ); |
| 339 | + if ( asLinkPath != null ) |
| 340 | + sInnerHtml = asLinkPath[ 1 ]; // use matched path |
| 341 | + |
| 342 | + // Create a new (empty) anchor. |
| 343 | + aLinks = [ oEditor.FCK.InsertElement( 'a' ) ]; |
| 344 | + } |
| 345 | + |
| 346 | + oEditor.FCKUndo.SaveUndoStep(); |
| 347 | + |
| 348 | + for ( var i = 0 ; i < aLinks.length ; i++ ) |
| 349 | + { |
| 350 | + oLink = aLinks[ i ]; |
| 351 | + |
| 352 | + if ( aHasSelection ) |
| 353 | + sInnerHtml = oLink.innerHTML; // Save the innerHTML (IE changes it if it is like an URL). |
| 354 | + |
| 355 | + oLink.href = sUri; |
| 356 | + SetAttribute( oLink, '_fcksavedurl', sUri ); |
| 357 | + |
| 358 | + oLink.innerHTML = sInnerHtml; // Set (or restore) the innerHTML |
| 359 | + } |
| 360 | + |
| 361 | + return true; |
| 362 | +} |
| 363 | + |
| 364 | +//#### Called while the user types the URL. |
| 365 | +function OnUrlChange() |
| 366 | +{ |
| 367 | + var link = GetE( 'txtUrl' ).value.Trim(); |
| 368 | + ShowFilteredCategories( link ); |
| 369 | + return; |
| 370 | +} |
| 371 | + |
| 372 | +function SetSearchMessage( message ) |
| 373 | +{ |
| 374 | + GetE( 'xWikiSearchStatus' ).innerHTML = message; |
| 375 | +} |
| 376 | +</script> |
| 377 | +</head> |
| 378 | +<body scroll="no" style="overflow: hidden"> |
| 379 | +<div id="divInfo"> |
| 380 | +<div id="divLinkTypeUrl"><span fcklang="wikiSelectedCategories">Selected categories</span><br /> |
| 381 | +<select id="xCategories" size="10" style="width: 100%; height: 70px" |
| 382 | + ondblclick="SelectCategory( this.value,-1);"> |
| 383 | +</select><br /> |
| 384 | +<span fcklang="wikiSearchCategory">Search category</span><br /> |
| 385 | +<input id="txtUrl" style="width: 76%" type="text" |
| 386 | + onkeyup="OnUrlChange();" /> <input id="btnNew" style="width: 22%" |
| 387 | + type="button" onclick="AddNew();" value="Add new" fcklang="wikiAddNewCategory"/> <br /> |
| 388 | +<span fcklang="wikiCategoryTree">Category tree</span> (<span fcklang="wikiLnkStartTyping" id="xWikiSearchStatus">start typing in the |
| 389 | +above field</span>)<br /> |
| 390 | +<select id="xWikiResults" size="10" style="width: 100%; height: 300px" |
| 391 | + onclick="ShowCategoriesSubTree( this.value );" |
| 392 | + ondblclick="SelectCategory('', this.value );"> |
| 393 | +</select></div> |
| 394 | +</div> |
| 395 | +</body> |
| 396 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/category.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 397 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/link.html |
— | — | @@ -0,0 +1,253 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Link dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | + <title>Link Properties</title> |
| 28 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | + <meta name="robots" content="noindex, nofollow" /> |
| 30 | + <script type="text/javascript"> |
| 31 | + |
| 32 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 33 | +var FCK = oEditor.FCK ; |
| 34 | +var FCKLang = oEditor.FCKLang ; |
| 35 | +var FCKConfig = oEditor.FCKConfig ; |
| 36 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 37 | +var FCKTools = oEditor.FCKTools ; |
| 38 | + |
| 39 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 40 | + |
| 41 | + </script> |
| 42 | + <script type="text/javascript"> |
| 43 | + |
| 44 | +// oLink: The actual selected link in the editor. |
| 45 | +var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ; |
| 46 | +if ( oLink ) |
| 47 | + FCK.Selection.SelectNode( oLink ) ; |
| 48 | + |
| 49 | +var bLinkEqualsName = false ; |
| 50 | + |
| 51 | +window.onload = function() |
| 52 | +{ |
| 53 | + // Translate the dialog box texts. |
| 54 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 55 | + |
| 56 | + // Load the selected link information (if any). |
| 57 | + LoadSelection() ; |
| 58 | + |
| 59 | + // Activate the "OK" button. |
| 60 | + window.parent.SetOkButton( true ) ; |
| 61 | + window.parent.SetAutoSize( true ) ; |
| 62 | + GetE('txtUrl').focus(); |
| 63 | +}; |
| 64 | + |
| 65 | +function LoadSelection() |
| 66 | +{ |
| 67 | + if ( !oLink ) return ; |
| 68 | + |
| 69 | + // Get the actual Link href. |
| 70 | + var sHRef = oLink.getAttribute( '_fcksavedurl' ) ; |
| 71 | + if ( sHRef == null ) |
| 72 | + sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; |
| 73 | + |
| 74 | + sHRef = FCKConfig.ProtectedSource.Revert(sHRef, 0); //#2509 |
| 75 | + |
| 76 | + if ( sHRef == oLink.innerHTML ) |
| 77 | + bLinkEqualsName = true ; |
| 78 | + |
| 79 | + if ( sHRef.toLowerCase().StartsWith( 'rtecolon' ) ) |
| 80 | + sHRef = ":" + sHRef.substring(8) ; |
| 81 | + |
| 82 | + GetE('txtUrl').value = sHRef ; |
| 83 | +} |
| 84 | + |
| 85 | +var searchTimer ; |
| 86 | + |
| 87 | +//#### Called while the user types the URL. |
| 88 | +function OnUrlChange() |
| 89 | +{ |
| 90 | + var link = GetE('txtUrl').value.Trim() ; |
| 91 | + |
| 92 | + if ( searchTimer ) |
| 93 | + window.clearTimeout( searchTimer ) ; |
| 94 | + |
| 95 | + if ( link.StartsWith( '#' ) ) |
| 96 | + { |
| 97 | + SetSearchMessage( FCKLang.wikiLnkNoSearchAnchor || 'anchor link... no search for it' ) ; |
| 98 | + return ; |
| 99 | + } |
| 100 | + |
| 101 | + if ( link.StartsWith( 'mailto:' ) ) |
| 102 | + { |
| 103 | + SetSearchMessage( FCKLang.wikiLnkNoSearchMail || 'e-mail link... no search for it' ) ; |
| 104 | + return ; |
| 105 | + } |
| 106 | + |
| 107 | + if( /^\w+:\/\//.test( link ) ) |
| 108 | + { |
| 109 | + SetSearchMessage( FCKLang.wikiLnkNoSearchExt || 'external link... no search for it' ) ; |
| 110 | + return ; |
| 111 | + } |
| 112 | + |
| 113 | + if ( link.length < 3 ) |
| 114 | + { |
| 115 | + ClearSearch() ; |
| 116 | + |
| 117 | + if ( link.length == 0 ) |
| 118 | + SetSearchMessage( FCKLang.wikiLnkStartTyping || 'start typing in the above field' ) ; |
| 119 | + else |
| 120 | + SetSearchMessage( FCKLang.wikiLnkTooShort || 'too short... type more' ) ; |
| 121 | + return ; |
| 122 | + } |
| 123 | + |
| 124 | + SetSearchMessage( FCKLang.wikiLnkStopTyping || 'stop typing to search' ) ; |
| 125 | + searchTimer = window.setTimeout( StartSearch, 500 ) ; |
| 126 | +} |
| 127 | + |
| 128 | +function StartSearch() |
| 129 | +{ |
| 130 | + var link = GetE('txtUrl').value.Trim() ; |
| 131 | + |
| 132 | + if ( link.length < 3 ) |
| 133 | + return ; |
| 134 | + |
| 135 | + SetSearchMessage( FCKLang.wikiLnkSearching || 'searching...' ) ; |
| 136 | + |
| 137 | + // Make an Ajax search for the pages. |
| 138 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 139 | + oEditor.window.parent.sajax_do_call( 'wfSajaxSearchArticleFCKeditor', [link], LoadSearchResults ) ; |
| 140 | +} |
| 141 | + |
| 142 | +function LoadSearchResults( result ) |
| 143 | +{ |
| 144 | + var results = result.responseText.Trim().split( '\n' ) ; |
| 145 | + var select = GetE( 'xWikiResults' ) ; |
| 146 | + |
| 147 | + ClearSearch() ; |
| 148 | + |
| 149 | + if ( results.length == 0 || ( results.length == 1 && results[0].length == 0 ) ) |
| 150 | + { |
| 151 | + SetSearchMessage( FCKLang.wikiLnkSearchNothing || 'no articles found' ) ; |
| 152 | + } |
| 153 | + else |
| 154 | + { |
| 155 | + if ( results.length == 1 ) |
| 156 | + SetSearchMessage( FCKLang.wikiLnkSearch1Found || 'one article found' ) ; |
| 157 | + else |
| 158 | + SetSearchMessage( (FCKLang.wikiLnkSearchSeveral || '%1 articles found').replace( /%1/g, results.length ) ) ; |
| 159 | + |
| 160 | + for ( var i = 0 ; i < results.length ; i++ ) |
| 161 | + FCKTools.AddSelectOption( select, results[i], results[i] ) ; |
| 162 | + } |
| 163 | +} |
| 164 | + |
| 165 | +function ClearSearch() |
| 166 | +{ |
| 167 | + var select = GetE( 'xWikiResults' ) ; |
| 168 | + |
| 169 | + while ( select.options.length > 0 ) |
| 170 | + select.remove( 0 ) |
| 171 | +} |
| 172 | + |
| 173 | +function SetSearchMessage( message ) |
| 174 | +{ |
| 175 | + GetE('xWikiSearchStatus').innerHTML = message ; |
| 176 | +} |
| 177 | + |
| 178 | +function SetUrl( url ) |
| 179 | +{ |
| 180 | + GetE('txtUrl').value = url ; |
| 181 | +} |
| 182 | + |
| 183 | +//#### The OK button was hit. |
| 184 | +function Ok() |
| 185 | +{ |
| 186 | + var sUri = GetE('txtUrl').value ; |
| 187 | + sUri = FCKConfig.ProtectedSource.Protect(sUri); //#2509 |
| 188 | + var realUri = sUri; |
| 189 | + if (sUri.StartsWith( ':' ) ) |
| 190 | + sUri = sUri.replace(/:/, "rtecolon"); |
| 191 | + var sInnerHtml ; |
| 192 | + |
| 193 | + // If no link is selected, create a new one (it may result in more than one link creation - #220). |
| 194 | + var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri ) ; |
| 195 | + |
| 196 | + // If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26) |
| 197 | + var noTitle = false; |
| 198 | + var aHasSelection = ( aLinks.length > 0 ) ; |
| 199 | + if ( !aHasSelection ) |
| 200 | + { |
| 201 | + sInnerHtml = realUri; |
| 202 | + noTitle = true; |
| 203 | + |
| 204 | + var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ; |
| 205 | + var asLinkPath = oLinkPathRegEx.exec( realUri ) ; |
| 206 | + if (asLinkPath != null) |
| 207 | + sInnerHtml = asLinkPath[1]; // use matched path |
| 208 | + |
| 209 | + // Create a new (empty) anchor. |
| 210 | + aLinks = [ oEditor.FCK.InsertElement( 'a' ) ] ; |
| 211 | + } |
| 212 | + |
| 213 | + oEditor.FCKUndo.SaveUndoStep() ; |
| 214 | + |
| 215 | + for ( var i = 0 ; i < aLinks.length ; i++ ) |
| 216 | + { |
| 217 | + oLink = aLinks[i] ; |
| 218 | + |
| 219 | + if ( aHasSelection ) |
| 220 | + sInnerHtml = oLink.innerHTML ; // Save the innerHTML (IE changes it if it is like an URL). |
| 221 | + |
| 222 | + oLink.href = sUri ; |
| 223 | + SetAttribute( oLink, '_fcksavedurl', sUri ) ; |
| 224 | + |
| 225 | + if ( bLinkEqualsName ) |
| 226 | + oLink.innerHTML = realUri ; |
| 227 | + else |
| 228 | + oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML |
| 229 | + |
| 230 | + if ( noTitle ) |
| 231 | + SetAttribute( oLink, '_fcknotitle','true'); |
| 232 | + } |
| 233 | + |
| 234 | + // Select the (first) link. |
| 235 | + oEditor.FCKSelection.SelectNode( aLinks[0] ); |
| 236 | + |
| 237 | + return true ; |
| 238 | +} |
| 239 | + |
| 240 | + </script> |
| 241 | +</head> |
| 242 | +<body scroll="no" style="overflow: hidden"> |
| 243 | + <div id="divInfo"> |
| 244 | + <div id="divLinkTypeUrl"> |
| 245 | + <span fcklang="wikiLnk">Link</span><br /> |
| 246 | + <input id="txtUrl" style="width: 100%" type="text" onkeyup="OnUrlChange();" /> |
| 247 | + <br /> |
| 248 | + <span fcklang="wikiLnkAutomatic">Automatic search results</span> (<span fcklang="wikiLnkStartTyping" id="xWikiSearchStatus">start typing in the above field</span>)<br /> |
| 249 | + <select id="xWikiResults" size="10" style="width: 100%; height:150px" onclick="SetUrl( this.value );"> |
| 250 | + </select> |
| 251 | + </div> |
| 252 | + </div> |
| 253 | +</body> |
| 254 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/link.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 255 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/source.html |
— | — | @@ -0,0 +1,137 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Link dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | + <title>Source Properties</title> |
| 28 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | + <meta name="robots" content="noindex, nofollow" /> |
| 30 | + <script type="text/javascript"> |
| 31 | + |
| 32 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 33 | +var FCK = oEditor.FCK ; |
| 34 | +var FCKLang = oEditor.FCKLang ; |
| 35 | +var FCKConfig = oEditor.FCKConfig ; |
| 36 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 37 | +var FCKTools = oEditor.FCKTools ; |
| 38 | + |
| 39 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 40 | + |
| 41 | + </script> |
| 42 | + <script type="text/javascript"> |
| 43 | + |
| 44 | +// Get the selected flash embed (if available). |
| 45 | +var oFakeImage = FCK.Selection.GetSelectedElement() ; |
| 46 | +var oSource ; |
| 47 | + |
| 48 | +if ( oFakeImage ) |
| 49 | +{ |
| 50 | + if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fck_mw_source') ) |
| 51 | + { |
| 52 | + oSource = FCK.GetRealElement( oFakeImage ) ; |
| 53 | + } |
| 54 | + else |
| 55 | + { |
| 56 | + oFakeImage = null ; |
| 57 | + } |
| 58 | +} |
| 59 | + |
| 60 | +window.onload = function() |
| 61 | +{ |
| 62 | + // Translate the dialog box texts. |
| 63 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 64 | + |
| 65 | + // Load the selected link information (if any). |
| 66 | + LoadSelection() ; |
| 67 | + |
| 68 | + // Activate the "OK" button. |
| 69 | + window.parent.SetOkButton( true ) ; |
| 70 | + window.parent.SetAutoSize( true ) ; |
| 71 | +}; |
| 72 | + |
| 73 | +function LoadSelection() |
| 74 | +{ |
| 75 | + if ( !oSource ) return ; |
| 76 | + |
| 77 | + GetE('xSourceText').value = FCKTools.HTMLDecode( oSource.innerHTML ).replace(/fckLR/g,'\r\n').replace( /"/g, '"' ); |
| 78 | + GetE('xSourceLang').value = oSource.getAttribute( 'lang' ) ; |
| 79 | +} |
| 80 | + |
| 81 | +//#### The OK button was hit. |
| 82 | +function Ok() |
| 83 | +{ |
| 84 | + var supportedLanguages = ',abap,actionscript,actionscript3,ada,apache,applescript,apt_sources,asm,asp,autoit,avisynth,bash,basic4gl,bf,blitzbasic,bnf,boo,c,c_mac,caddcl,cadlisp,cfdg,cfm,cil,cobol,cpp,cpp-qt,csharp,css,d,delphi,diff,div,dos,dot,eiffel,email,fortran,freebasic,genero,gettext,glsl,gml,gnuplot,groovy,haskell,hq9plus,html4strict,idl,ini,inno,intercal,io,java,java5,javascript,kixtart,klonec,klonecpp,latex,lisp,lolcode,lotusformulas,lotusscript,lscript,lua,m68k,make,matlab,mirc,mpasm,mxml,mysql,nsis,objc,ocaml,ocaml-brief,oobas,oracle11,oracle8,pascal,per,perl,php,php-brief,pic16,pixelbender,plsql,povray,powershell,progress,prolog,providex,python,qbasic,rails,reg,robots,ruby,sas,scala,scheme,scilab,sdlbasic,smalltalk,smarty,sql,tcl,teraterm,text,thinbasic,tsql,typoscript,vb,vbnet,verilog,vhdl,vim,visualfoxpro,visualprolog,whitespace,winbatch,xml,xorg_conf,xpp,z80,'; |
| 85 | + |
| 86 | + if ( !oSource ) |
| 87 | + { |
| 88 | + oSource = FCK.EditorDocument.createElement( 'SPAN' ) ; |
| 89 | + oSource.className = 'fck_mw_source' ; |
| 90 | + } |
| 91 | + |
| 92 | + var sourceData = FCKTools.HTMLEncode(GetE('xSourceText').value.Trim().replace(/(\r\n|\n)/g, 'fckLR')).replace( /"/g, '"' ) ; |
| 93 | + var lang = GetE('xSourceLang').value.Trim().toLowerCase(); |
| 94 | + |
| 95 | + if ( lang.length && supportedLanguages.indexOf( ',' + lang + ',' ) == -1) { |
| 96 | + alert( (FCKLang.wikiUnsupportedLanguage || 'Unsupported language: %1').replace(/%1/, lang) ); |
| 97 | + return false; |
| 98 | + } |
| 99 | + |
| 100 | + oSource.innerHTML = sourceData ; |
| 101 | + oSource.setAttribute( 'lang', lang ) ; |
| 102 | + |
| 103 | + if ( !oFakeImage ) |
| 104 | + { |
| 105 | + oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__MWSource', oSource ) ; |
| 106 | + oFakeImage.setAttribute( '_fck_mw_source', 'true', 0 ) ; |
| 107 | + oFakeImage = FCK.InsertElement( oFakeImage ) ; |
| 108 | + } |
| 109 | + |
| 110 | + return true ; |
| 111 | +} |
| 112 | + |
| 113 | + </script> |
| 114 | +</head> |
| 115 | +<body style="overflow: hidden"> |
| 116 | + <div id="divInfo"> |
| 117 | + <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> |
| 118 | + <tr> |
| 119 | + <td> |
| 120 | + <span fcklang="wikiSourceCode">Source Code</span> |
| 121 | + </td> |
| 122 | + </tr> |
| 123 | + <tr> |
| 124 | + <td height="100%"> |
| 125 | + <textarea wrap=OFF id="xSourceText" style="width: 100%; height: 100%; font-family: Monospace" |
| 126 | + cols="50" rows="5"></textarea> |
| 127 | + </td> |
| 128 | + </tr> |
| 129 | + <tr> |
| 130 | + <td> |
| 131 | + <span fcklang="wikiSourceLanguage">Source Language</span><br /> |
| 132 | + <input id="xSourceLang" type="text" size="15" /> |
| 133 | + </td> |
| 134 | + </tr> |
| 135 | + </table> |
| 136 | + </div> |
| 137 | +</body> |
| 138 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/source.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 139 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/special.html |
— | — | @@ -0,0 +1,237 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Link dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | + <title>Special Tag Properties</title> |
| 28 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | + <meta name="robots" content="noindex, nofollow" /> |
| 30 | + <script type="text/javascript"> |
| 31 | + |
| 32 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 33 | +var FCK = oEditor.FCK ; |
| 34 | +var FCKLang = oEditor.FCKLang ; |
| 35 | +var FCKConfig = oEditor.FCKConfig ; |
| 36 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 37 | +var FCKTools = oEditor.FCKTools ; |
| 38 | + |
| 39 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 40 | + |
| 41 | + </script> |
| 42 | + <script type="text/javascript"> |
| 43 | + |
| 44 | +// Get the selected flash embed (if available). |
| 45 | +var oFakeImage = FCK.Selection.GetSelectedElement() ; |
| 46 | +var oTemplateSpan ; |
| 47 | +var sFakeClass = 'FCK__MWSpecial'; |
| 48 | +var sSelectedTag = ""; |
| 49 | + |
| 50 | +if ( oFakeImage ) |
| 51 | +{ |
| 52 | + if ( oFakeImage.tagName == 'IMG' ) |
| 53 | + { |
| 54 | + if ( oFakeImage.getAttribute('_fck_mw_special') ) |
| 55 | + { |
| 56 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 57 | + sFakeClass = 'FCK__MWSpecial'; |
| 58 | + } |
| 59 | + else if ( oFakeImage.getAttribute('_fck_mw_html') ) |
| 60 | + { |
| 61 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 62 | + sFakeClass = 'FCK__MWHtml'; |
| 63 | + } |
| 64 | + else if ( oFakeImage.getAttribute('_fck_mw_nowiki') ) |
| 65 | + { |
| 66 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 67 | + sFakeClass = 'FCK__MWNowiki'; |
| 68 | + } |
| 69 | + else if ( oFakeImage.getAttribute('_fck_mw_noinclude') ) |
| 70 | + { |
| 71 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 72 | + sFakeClass = 'FCK__MWNoinclude'; |
| 73 | + } |
| 74 | + else if ( oFakeImage.getAttribute('_fck_mw_gallery') ) |
| 75 | + { |
| 76 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 77 | + sFakeClass = 'FCK__MWGallery'; |
| 78 | + } |
| 79 | + else if ( oFakeImage.getAttribute('_fck_mw_onlyinclude') ) |
| 80 | + { |
| 81 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 82 | + sFakeClass = 'FCK__MWOnlyinclude'; |
| 83 | + } |
| 84 | + else if ( oFakeImage.getAttribute('_fck_mw_includeonly') ) |
| 85 | + { |
| 86 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 87 | + sFakeClass = 'FCK__MWIncludeonly'; |
| 88 | + } |
| 89 | + else |
| 90 | + oFakeImage = null ; |
| 91 | + } |
| 92 | + else |
| 93 | + oFakeImage = null ; |
| 94 | +} |
| 95 | + |
| 96 | +window.onload = function() |
| 97 | +{ |
| 98 | + // Translate the dialog box texts. |
| 99 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 100 | + |
| 101 | + // Load the selected link information (if any). |
| 102 | + LoadSelection() ; |
| 103 | + LoadDocumentation(); |
| 104 | + |
| 105 | + // Activate the "OK" button. |
| 106 | + window.parent.SetOkButton( true ) ; |
| 107 | + window.parent.SetAutoSize( true ) ; |
| 108 | + GetE('xTemplateRaw').focus(); |
| 109 | +}; |
| 110 | + |
| 111 | +function LoadSearchResults( result ) |
| 112 | +{ |
| 113 | + var results = result.responseText.Trim().split( '\n' ) ; |
| 114 | + var select = GetE( 'xSelectTag' ) ; |
| 115 | + |
| 116 | + if ( results.length > 0 && !( results.length == 1 && results[0].length == 0 ) ) |
| 117 | + { |
| 118 | + for ( var i = 0 ; i < results.length ; i++ ) |
| 119 | + FCKTools.AddSelectOption( select, results[i], results[i] ) ; |
| 120 | + } |
| 121 | + |
| 122 | + if ( sSelectedTag ) { |
| 123 | + select.value = sSelectedTag ; |
| 124 | + } |
| 125 | +} |
| 126 | + |
| 127 | + |
| 128 | +function LoadSelection() |
| 129 | +{ |
| 130 | + // Make an Ajax search for the pages. |
| 131 | + var empty = ''; |
| 132 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 133 | + oEditor.window.parent.sajax_do_call( 'wfSajaxSearchSpecialTagFCKeditor',[empty], LoadSearchResults ) ; |
| 134 | + |
| 135 | + if ( !oTemplateSpan ) return ; |
| 136 | + |
| 137 | + GetE('xTemplateRaw').value = FCKTools.HTMLDecode(oTemplateSpan.innerHTML).replace(/fckLR/g,'\r\n' ).replace( /"/g, '"' ) ; |
| 138 | + var tagName = oTemplateSpan.getAttribute('_fck_mw_tagname').toLowerCase(); |
| 139 | + |
| 140 | + sSelectedTag = tagName ; |
| 141 | + GetE('xSelectTag').value = tagName; |
| 142 | +} |
| 143 | + |
| 144 | +function LoadDocumentation() |
| 145 | +{ |
| 146 | + var tagName = GetE('xSelectTag').value; |
| 147 | + if (tagName == 'dpl') |
| 148 | + { |
| 149 | + if (!FCKLang.DplHelp) FCKLang.DplHelp = 'DPL stands for Dynamic Page List, and allows to generate a formatted list of pages based on selection criteria. See %link for details'; |
| 150 | + GetE('xDefinition').innerHTML = FCKLang.DplHelp.replace( /%link/g, '<a href="#" onclick="javascript:window.open(\'http://semeb.com/dpldemo/index.php?title=Dynamic_Page_List\')">manual</a>' ) ; |
| 151 | + } |
| 152 | + if (tagName == 'inputbox') |
| 153 | + { |
| 154 | + if (!FCKLang.inputboxHelp) FCKLang.inputboxHelp = 'Inputbox allows to create a form for users to create new pages. The new pages edit box can be pre-loaded with any template. See %link for details'; |
| 155 | + GetE('xDefinition').innerHTML = FCKLang.inputboxHelp.replace( /%link/g, '<a href="#" onclick="javascript:window.open(\'http://www.mediawiki.org/wiki/Extension:InputBox\')">manual</a>' ) ; |
| 156 | + } |
| 157 | +} |
| 158 | + |
| 159 | +//#### The OK button was hit. |
| 160 | +function Ok() |
| 161 | +{ |
| 162 | + if ( !oTemplateSpan ) |
| 163 | + { |
| 164 | + oTemplateSpan = FCK.EditorDocument.createElement( 'SPAN' ) ; |
| 165 | + oTemplateSpan.className = 'fck_mw_special' ; |
| 166 | + SetAttribute( oTemplateSpan, '_fck_mw_customtag', 'true' ) ; |
| 167 | + } |
| 168 | + |
| 169 | + var templateData = FCKTools.HTMLEncode(GetE('xTemplateRaw').value.Trim().replace(/(\r\n|\n)/g, 'fckLR' )).replace( /"/g, '"' ) ; |
| 170 | + |
| 171 | + oTemplateSpan.innerHTML = templateData ; |
| 172 | + SetAttribute( oTemplateSpan, '_fck_mw_tagname', GetE('xSelectTag').value ) ; |
| 173 | + |
| 174 | + switch (GetE('xSelectTag').value) |
| 175 | + { |
| 176 | + case 'noinclude': |
| 177 | + sFakeClass = 'FCK__MWNoinclude'; |
| 178 | + break; |
| 179 | + case 'gallery': |
| 180 | + sFakeClass = 'FCK__MWGallery'; |
| 181 | + break; |
| 182 | + case 'nowiki': |
| 183 | + sFakeClass = 'FCK__MWNowiki'; |
| 184 | + break; |
| 185 | + case 'includeonly': |
| 186 | + sFakeClass = 'FCK__MWIncludeonly'; |
| 187 | + break; |
| 188 | + case 'html': |
| 189 | + sFakeClass = 'FCK__MWHtml'; |
| 190 | + break; |
| 191 | + case 'onlyinclude': |
| 192 | + sFakeClass = 'FCK__MWOnlyinclude'; |
| 193 | + break; |
| 194 | + default: |
| 195 | + sFakeClass = 'FCK__MWSpecial'; |
| 196 | + break; |
| 197 | + } |
| 198 | + |
| 199 | + if ( !oFakeImage ) |
| 200 | + { |
| 201 | + oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( sFakeClass, oTemplateSpan ) ; |
| 202 | + oFakeImage.setAttribute( '_fck_mw_special', 'true', 0 ) ; |
| 203 | + oFakeImage = FCK.InsertElement( oFakeImage ) ; |
| 204 | + } |
| 205 | + else |
| 206 | + oFakeImage.className = sFakeClass ; |
| 207 | + |
| 208 | + return true ; |
| 209 | +} |
| 210 | + |
| 211 | + </script> |
| 212 | +</head> |
| 213 | +<body style="overflow: hidden"> |
| 214 | + <div id="divInfo"> |
| 215 | + <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> |
| 216 | + <tr> |
| 217 | + <td> |
| 218 | + <span fcklang="wikiSpTag">Current Special Tag</span>: |
| 219 | + <select id="xSelectTag" onchange="LoadDocumentation()"> |
| 220 | + </select><br> |
| 221 | + <i><span id="xDefinition"></span></i> |
| 222 | + </td> |
| 223 | + </tr> |
| 224 | + <tr> |
| 225 | + <td> |
| 226 | + <hr> |
| 227 | + <span fcklang="wikiSpParam">Special tag parameters</span>: |
| 228 | + </tr> |
| 229 | + <tr> |
| 230 | + <td height="100%"> |
| 231 | + <textarea id="xTemplateRaw" style="width: 100%; height: 100%; font-family: Monospace" |
| 232 | + cols="50" rows="10" wrap="off"></textarea> |
| 233 | + </td> |
| 234 | + </tr> |
| 235 | + </table> |
| 236 | + </div> |
| 237 | +</body> |
| 238 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/special.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 239 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/image.html |
— | — | @@ -0,0 +1,341 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Image dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | + <title>Image Properties</title> |
| 28 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | + <meta name="robots" content="noindex, nofollow" /> |
| 30 | + <script type="text/javascript"> |
| 31 | + |
| 32 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 33 | +var FCK = oEditor.FCK ; |
| 34 | +var FCKLang = oEditor.FCKLang ; |
| 35 | +var FCKConfig = oEditor.FCKConfig ; |
| 36 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 37 | +var FCKTools = oEditor.FCKTools ; |
| 38 | + |
| 39 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 40 | + |
| 41 | + </script> |
| 42 | + <script type="text/javascript"> |
| 43 | + |
| 44 | +// Get the selected image (if available). |
| 45 | +var oImage = FCK.Selection.GetSelectedElement() ; |
| 46 | + |
| 47 | +if ( oImage && oImage.tagName != 'IMG' ) |
| 48 | + oImage = null ; |
| 49 | + |
| 50 | +window.onload = function() |
| 51 | +{ |
| 52 | + // Translate the dialog box texts. |
| 53 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 54 | + |
| 55 | + // Load the selected element information (if any). |
| 56 | + LoadSelection() ; |
| 57 | + |
| 58 | + // UpdateOriginal() ; |
| 59 | + |
| 60 | + window.parent.SetAutoSize( true ) ; |
| 61 | + window.parent.SetOkButton( true ) ; |
| 62 | + GetE('txtUrl').focus(); |
| 63 | +}; |
| 64 | + |
| 65 | +function LoadSelection() |
| 66 | +{ |
| 67 | + if ( ! oImage ) return ; |
| 68 | + |
| 69 | + var sUrl = GetAttribute( oImage, '_fcksavedurl', '' ) ; |
| 70 | + if ( sUrl.length == 0 ) |
| 71 | + sUrl = GetAttribute( oImage, 'src', '' ) ; |
| 72 | + |
| 73 | + GetE('txtUrl').value = GetAttribute( oImage, '_fck_mw_filename', '' ) ; |
| 74 | + GetE('txtAlt').value = GetAttribute( oImage, 'alt', '' ) ; |
| 75 | + GetE('xType').value = GetAttribute( oImage, '_fck_mw_type', '' ) ; |
| 76 | + GetE('cmbAlign').value = GetAttribute( oImage, '_fck_mw_location', '' ) ; |
| 77 | + |
| 78 | + GetE('txtWidth').value = GetAttribute( oImage, '_fck_mw_width', '' ) ; |
| 79 | + GetE('txtHeight').value = GetAttribute( oImage, '_fck_mw_height', '' ) ; |
| 80 | + |
| 81 | + UpdatePreview(); |
| 82 | +} |
| 83 | + |
| 84 | +//#### The OK button was hit. |
| 85 | +function Ok() |
| 86 | +{ |
| 87 | + if ( GetE('txtUrl').value.length == 0 ) |
| 88 | + { |
| 89 | + GetE('txtUrl').focus() ; |
| 90 | + return false ; |
| 91 | + } |
| 92 | + |
| 93 | + if ( oEditor.window.parent.FCKeditorAPI && oEditor.window.parent.FCKeditorAPI.Version.match( /^2\.5/ ) ) { |
| 94 | + window.parent.document.getElementById( 'btnOk' ).disabled = true ; |
| 95 | + window.parent.document.getElementById( 'btnCancel' ).disabled = true ; |
| 96 | + } |
| 97 | + |
| 98 | + var imgName = GetE('txtUrl').value ; |
| 99 | + var imgCaption = GetE('txtAlt').value ; |
| 100 | + var imgType = GetE('xType').value ; |
| 101 | + var imgLocation = GetE('cmbAlign').value ; |
| 102 | + var imgWidth = GetE('txtWidth').value ; |
| 103 | + var imgHeight = GetE('txtHeight').value ; |
| 104 | + |
| 105 | + var ajaxArg = imgName ; |
| 106 | + |
| 107 | + if ( imgType.length > 0 ) |
| 108 | + ajaxArg += '|' + imgType ; |
| 109 | + |
| 110 | + if ( imgLocation.length > 0 ) |
| 111 | + ajaxArg += '|' + imgLocation ; |
| 112 | + |
| 113 | + if ( imgWidth.length > 0 ) |
| 114 | + { |
| 115 | + ajaxArg += '|' + imgWidth ; |
| 116 | + |
| 117 | + if ( imgHeight.length > 0 ) |
| 118 | + ajaxArg += 'x' + imgHeight ; |
| 119 | + |
| 120 | + ajaxArg += 'px' ; |
| 121 | + } |
| 122 | + |
| 123 | + if ( imgCaption.length > 0 ) |
| 124 | + ajaxArg += '|' + imgCaption ; |
| 125 | + |
| 126 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 127 | + oEditor.window.parent.sajax_do_call( 'wfSajaxGetImageUrl', [ajaxArg], UpdateImageFromAjax ) ; |
| 128 | + |
| 129 | + return false ; |
| 130 | +} |
| 131 | + |
| 132 | +function UpdateImageFromAjax( response ) |
| 133 | +{ |
| 134 | + var bHasImage = ( oImage != null ) ; |
| 135 | + |
| 136 | + if ( !bHasImage ) |
| 137 | + oImage = FCK.CreateElement( 'IMG' ) ; |
| 138 | + else |
| 139 | + oEditor.FCKUndo.SaveUndoStep() ; |
| 140 | + |
| 141 | + UpdateImage( oImage, response.responseText ) ; |
| 142 | + |
| 143 | + // Call it using setTimeout to avoid a strange behavior in Firefox. |
| 144 | + window.setTimeout( window.parent.Cancel, 0 ) ; |
| 145 | +} |
| 146 | + |
| 147 | +function UpdateImage( e, realUrl ) |
| 148 | +{ |
| 149 | + var imgType = GetE('xType').value ; |
| 150 | + var imgLocation = GetE('cmbAlign').value ; |
| 151 | + |
| 152 | + SetAttribute( e, "_fck_mw_filename", GetE('txtUrl').value ) ; |
| 153 | + SetAttribute( e, "alt", GetE('txtAlt').value ) ; |
| 154 | + SetAttribute( e, "_fck_mw_type", imgType ) ; |
| 155 | + SetAttribute( e, "_fck_mw_location", imgLocation ) ; |
| 156 | + SetAttribute( e, "_fck_mw_width", GetE('txtWidth').value ) ; |
| 157 | + SetAttribute( e, "_fck_mw_height", GetE('txtHeight').value ) ; |
| 158 | + |
| 159 | + SetAttribute( e, "width" , GetE('txtWidth').value ) ; |
| 160 | + SetAttribute( e, "height", GetE('txtHeight').value ) ; |
| 161 | + |
| 162 | + if ( imgType == 'thumb' || imgType == 'frame' ) |
| 163 | + { |
| 164 | + e.className = 'fck_mw_frame' ; |
| 165 | + |
| 166 | + if ( imgLocation.length == 0 ) |
| 167 | + imgLocation = 'right' ; |
| 168 | + } |
| 169 | + |
| 170 | + if ( imgLocation.length > 0 ) |
| 171 | + e.className += ' fck_mw_' + imgLocation ; |
| 172 | + |
| 173 | + if ( realUrl.length == 0 ) |
| 174 | + { |
| 175 | + e.className += ' fck_mw_notfound' ; |
| 176 | + realUrl = 'about:blank' ; |
| 177 | + } |
| 178 | + |
| 179 | + e.src = realUrl ; |
| 180 | + SetAttribute( e, "_fcksavedurl", realUrl ) ; |
| 181 | +} |
| 182 | + |
| 183 | +var searchTimer ; |
| 184 | + |
| 185 | +//#### Called while the user types the URL. |
| 186 | +function OnUrlChange() |
| 187 | +{ |
| 188 | + var link = GetE('txtUrl').value.Trim() ; |
| 189 | + |
| 190 | + if ( searchTimer ) |
| 191 | + window.clearTimeout( searchTimer ) ; |
| 192 | + |
| 193 | + if ( link.length < 3 ) |
| 194 | + { |
| 195 | + ClearSearch() ; |
| 196 | + |
| 197 | + if ( link.length == 0 ) |
| 198 | + SetSearchMessage( FCKLang.wikiImgStartTyping || 'start typing in the above field' ) ; |
| 199 | + else |
| 200 | + SetSearchMessage( FCKLang.wikiImgTooShort || 'too short... type more' ) ; |
| 201 | + return ; |
| 202 | + } |
| 203 | + |
| 204 | + SetSearchMessage( FCKLang.wikiImgStopTyping || 'stop typing to search' ) ; |
| 205 | + searchTimer = window.setTimeout( StartSearch, 500 ) ; |
| 206 | +} |
| 207 | + |
| 208 | +function StartSearch() |
| 209 | +{ |
| 210 | + var link = GetE('txtUrl').value.Trim() ; |
| 211 | + |
| 212 | + if ( link.length < 3 ) |
| 213 | + return ; |
| 214 | + |
| 215 | + SetSearchMessage( FCKLang.wikiLnkSearching || 'searching...' ) ; |
| 216 | + |
| 217 | + // Make an Ajax search for the pages. |
| 218 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 219 | + oEditor.window.parent.sajax_do_call( 'wfSajaxSearchImageFCKeditor', [link], LoadSearchResults ) ; |
| 220 | +} |
| 221 | + |
| 222 | +function LoadSearchResults( result ) |
| 223 | +{ |
| 224 | + var results = result.responseText.Trim().split( '\n' ) ; |
| 225 | + var select = GetE( 'xWikiResults' ) ; |
| 226 | + |
| 227 | + ClearSearch() ; |
| 228 | + |
| 229 | + if ( results.length == 0 || ( results.length == 1 && results[0].length == 0 ) ) |
| 230 | + { |
| 231 | + SetSearchMessage( FCKLang.wikiImgSearchNothing || 'no images found' ) ; |
| 232 | + } |
| 233 | + else |
| 234 | + { |
| 235 | + if ( results.length == 1 ) |
| 236 | + SetSearchMessage( FCKLang.wikiImgSearch1Found || 'one image found' ) ; |
| 237 | + else |
| 238 | + SetSearchMessage( (FCKLang.wikiImgSearchSeveral || '%1 images found').replace( /%1/g, results.length ) ) ; |
| 239 | + |
| 240 | + for ( var i = 0 ; i < results.length ; i++ ) |
| 241 | + FCKTools.AddSelectOption( select, results[i], results[i] ) ; |
| 242 | + } |
| 243 | +} |
| 244 | + |
| 245 | + |
| 246 | +function ClearSearch() |
| 247 | +{ |
| 248 | + var select = GetE( 'xWikiResults' ) ; |
| 249 | + |
| 250 | + while ( select.options.length > 0 ) |
| 251 | + select.remove( 0 ) |
| 252 | +} |
| 253 | + |
| 254 | +function SetSearchMessage( message ) |
| 255 | +{ |
| 256 | + GetE('xWikiSearchStatus').innerHTML = message ; |
| 257 | +} |
| 258 | + |
| 259 | +function SetUrl( url ) |
| 260 | +{ |
| 261 | + if ( url.length > 0 ) |
| 262 | + GetE('txtUrl').value = url ; |
| 263 | +} |
| 264 | + |
| 265 | +function UpdatePreviewFromAjax( response ) |
| 266 | +{ |
| 267 | + var eImgPreview = window.document.getElementById('prevImg'); |
| 268 | + eImgPreview.src = response.responseText ; |
| 269 | + SetAttribute(eImgPreview, "width" , '180px' ) ; |
| 270 | + SetAttribute(eImgPreview, "height", '130px' ) ; |
| 271 | + //UpdateImage( eImgPreview, response.responseText ) ; |
| 272 | +} |
| 273 | + |
| 274 | +function UpdatePreview() |
| 275 | +{ |
| 276 | + var ajaxArg = GetE('txtUrl').value + '|180x130px'; |
| 277 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 278 | + oEditor.window.parent.sajax_do_call( 'wfSajaxGetImageUrl', [ajaxArg], UpdatePreviewFromAjax ) ; |
| 279 | +} |
| 280 | + |
| 281 | + </script> |
| 282 | +</head> |
| 283 | +<body scroll="no" style="overflow: hidden"> |
| 284 | + <div id="divInfo"> |
| 285 | + <table cellspacing="1" cellpadding="1" border="0" width="100%"> |
| 286 | + <tr valign="center"> |
| 287 | + <td> |
| 288 | + <span fcklang="wikiImgFileName">Image file name</span><br /> |
| 289 | + <input id="txtUrl" style="width: 100%" type="text" onkeyup="OnUrlChange();" /> |
| 290 | + <br /> |
| 291 | + <span fcklang="wikiImgAutomatic">Automatic search results</span> <b>(<span fcklang="wikiImgStartTyping" id="xWikiSearchStatus">start typing in the above field</span>)</b><br /> |
| 292 | + <select id="xWikiResults" size="5" style="width: 100%; height: 70px" onclick="SetUrl( this.value );UpdatePreview();"> |
| 293 | + </select> |
| 294 | + </td> |
| 295 | + <td width="180px" height="130px"><div style="width:180; height:130; border:solid 1px black;" valign="center" align="center"> |
| 296 | + <img id="prevImg" width="180px" height="130px" alt="Preview"></div> |
| 297 | + </td> |
| 298 | + </tr> |
| 299 | + <tr> |
| 300 | + <td colspan="2"> |
| 301 | + <span fcklang="wikiImgCaption">Caption</span><br /> |
| 302 | + <input id="txtAlt" style="width: 100%" type="text"><br /> |
| 303 | + </td> |
| 304 | + </tr> |
| 305 | + <tr> |
| 306 | + <td valign="top" colspan="2"> |
| 307 | + <table cellspacing="0" cellpadding="0" border="0"> |
| 308 | + <tr> |
| 309 | + <td nowrap="nowrap"> |
| 310 | + <span fcklang="wikiImgType">Special Type</span><br /> |
| 311 | + <select id="xType"> |
| 312 | + <option value="" selected="selected"></option> |
| 313 | + <option fcklang="wikiImgTypeThumb" value="thumb">Thumbnail</option> |
| 314 | + <option fcklang="wikiImgTypeFrame" value="frame">Frame</option> |
| 315 | + <option fcklang="wikiImgTypeBorder" value="border">Border</option> |
| 316 | + </select> |
| 317 | + </td> |
| 318 | + <td style="padding-left:7px;"> |
| 319 | + <span fcklang="DlgImgAlign">Align</span><br /> |
| 320 | + <select id="cmbAlign" onchange="UpdatePreview();"> |
| 321 | + <option value="" selected></option> |
| 322 | + <option fcklang="DlgImgAlignRight" value="right">Right</option> |
| 323 | + <option fcklang="DlgImgAlignLeft" value="left">Left</option> |
| 324 | + <option fcklang="wikiImgAlignCenter" value="center">Center</option> |
| 325 | + </select> |
| 326 | + </td> |
| 327 | + <td style="padding-left:7px;"> |
| 328 | + <span fcklang="DlgImgWidth">Width</span><br /> |
| 329 | + <input type="text" size="3" id="txtWidth"> |
| 330 | + </td> |
| 331 | + <td style="padding-left:7px;"> |
| 332 | + <span fcklang="DlgImgHeight">Height</span><br /> |
| 333 | + <input type="text" size="3" id="txtHeight"> |
| 334 | + </td> |
| 335 | + </tr> |
| 336 | + </table> |
| 337 | + </td> |
| 338 | + </tr> |
| 339 | + </table> |
| 340 | + </div> |
| 341 | +</body> |
| 342 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/image.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 343 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/math.html |
— | — | @@ -0,0 +1,144 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Link dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | + <title>Formula Editor</title> |
| 28 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | + <meta name="robots" content="noindex, nofollow" /> |
| 30 | + <script type="text/javascript"> |
| 31 | + |
| 32 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 33 | +var FCK = oEditor.FCK ; |
| 34 | +var FCKLang = oEditor.FCKLang ; |
| 35 | +var FCKConfig = oEditor.FCKConfig ; |
| 36 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 37 | +var FCKTools = oEditor.FCKTools ; |
| 38 | + |
| 39 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 40 | + |
| 41 | + </script> |
| 42 | + <script type="text/javascript"> |
| 43 | + |
| 44 | +// Get the selected flash embed (if available). |
| 45 | +var oMathImage = FCK.Selection.GetSelectedElement() ; |
| 46 | + |
| 47 | +if ( oMathImage ) |
| 48 | +{ |
| 49 | + if ( oMathImage.tagName != 'IMG' || !oMathImage.getAttribute('_fck_mw_math') ) |
| 50 | + oMathImage = null ; |
| 51 | +} |
| 52 | + |
| 53 | +window.onload = function() |
| 54 | +{ |
| 55 | + // Translate the dialog box texts. |
| 56 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 57 | + |
| 58 | + // Load the selected link information (if any). |
| 59 | + LoadSelection() ; |
| 60 | + |
| 61 | + // Activate the "OK" button. |
| 62 | + window.parent.SetOkButton( true ) ; |
| 63 | + window.parent.SetAutoSize( true ) ; |
| 64 | + GetE('xTemplateRaw').focus(); |
| 65 | +}; |
| 66 | + |
| 67 | +function LoadSelection() |
| 68 | +{ |
| 69 | + if ( !oMathImage ) return ; |
| 70 | + |
| 71 | + GetE('xTemplateRaw').value = oMathImage.getAttribute( '_fck_mw_math' ) ; |
| 72 | +} |
| 73 | + |
| 74 | +//#### The OK button was hit. |
| 75 | +function Ok() |
| 76 | +{ |
| 77 | + var formula = GetE('xTemplateRaw').value.Trim() ; |
| 78 | + |
| 79 | + if ( formula.length == 0 ) |
| 80 | + { |
| 81 | + alert( FCKLang.wikiTeXEmpty || 'Please type the formula' ) ; |
| 82 | + return false ; |
| 83 | + } |
| 84 | + |
| 85 | + if ( oEditor.window.parent.FCKeditorAPI && oEditor.window.parent.FCKeditorAPI.Version.match( /^2\.5/ ) ) { |
| 86 | + window.parent.document.getElementById( 'btnOk' ).disabled = true ; |
| 87 | + window.parent.document.getElementById( 'btnCancel' ).disabled = true ; |
| 88 | + } |
| 89 | + |
| 90 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 91 | + oEditor.window.parent.sajax_do_call( 'wfSajaxGetMathUrl', [formula], UpdateImageFromAjax ) ; |
| 92 | + |
| 93 | + return false ; |
| 94 | +} |
| 95 | + |
| 96 | +function UpdateImageFromAjax( response ) |
| 97 | +{ |
| 98 | + oEditor.FCKUndo.SaveUndoStep() ; |
| 99 | + |
| 100 | + if ( !oMathImage ) |
| 101 | + { |
| 102 | + oMathImage = FCK.CreateElement( 'IMG' ) ; |
| 103 | + oMathImage.className = 'FCK__MWMath' ; |
| 104 | + oMathImage.src = FCKConfig.PluginsPath + 'mediawiki/images/icon_math.gif' ; |
| 105 | + } |
| 106 | + else |
| 107 | + { |
| 108 | + if ( response.responseText ) |
| 109 | + { |
| 110 | + oMathImage.src = response.responseText ; |
| 111 | + SetAttribute( oMathImage, "_fcksavedurl", response.responseText ) ; |
| 112 | + } |
| 113 | + else |
| 114 | + { |
| 115 | + oMathImage.src = FCKConfig.PluginsPath + 'mediawiki/images/icon_math.gif' ; |
| 116 | + } |
| 117 | + } |
| 118 | + |
| 119 | + SetAttribute( oMathImage, "_fck_mw_math", GetE('xTemplateRaw').value.Trim() ) ; |
| 120 | + SetAttribute( oMathImage, "_fckfakelement", 'true' ) ; |
| 121 | + |
| 122 | + // Call it using setTimeout to avoid a strange behavior in Firefox. |
| 123 | + window.setTimeout( window.parent.Cancel, 0 ) ; |
| 124 | +} |
| 125 | + |
| 126 | + </script> |
| 127 | +</head> |
| 128 | +<body style="overflow: hidden"> |
| 129 | + <div id="divInfo"> |
| 130 | + <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> |
| 131 | + <tr> |
| 132 | + <td> |
| 133 | + <span fcklang="wikiTeX">Formula (TeX markup)</span> |
| 134 | + </td> |
| 135 | + </tr> |
| 136 | + <tr> |
| 137 | + <td height="100%"> |
| 138 | + <textarea id="xTemplateRaw" style="width: 100%; height: 100%; font-family: Monospace" |
| 139 | + cols="50" rows="10" wrap="off"></textarea> |
| 140 | + </td> |
| 141 | + </tr> |
| 142 | + </table> |
| 143 | + </div> |
| 144 | +</body> |
| 145 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/math.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 146 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/template.html |
— | — | @@ -0,0 +1,193 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Link dialog window. |
| 24 | +--> |
| 25 | +<html> |
| 26 | +<head> |
| 27 | + <title>Template Properties</title> |
| 28 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 29 | + <meta name="robots" content="noindex, nofollow" /> |
| 30 | + <script type="text/javascript"> |
| 31 | + |
| 32 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 33 | +var FCK = oEditor.FCK ; |
| 34 | +var FCKLang = oEditor.FCKLang ; |
| 35 | +var FCKConfig = oEditor.FCKConfig ; |
| 36 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 37 | +var FCKTools = oEditor.FCKTools ; |
| 38 | + |
| 39 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 40 | + |
| 41 | + </script> |
| 42 | + <script type="text/javascript"> |
| 43 | + |
| 44 | +//#### Dialog Tabs |
| 45 | + |
| 46 | +// Set the dialog tabs. |
| 47 | +window.parent.AddTab( 'Edit', FCKLang.wikiTabEdit || 'Edit' ) ; |
| 48 | +window.parent.AddTab( 'Manual', FCKLang.wikiTabManual || 'Manual' ) ; |
| 49 | + |
| 50 | +function OnDialogTabChange( tabCode ) |
| 51 | +{ |
| 52 | + ShowE('divEdit' , ( tabCode == 'Edit' ) ) ; |
| 53 | + ShowE('divManual' , ( tabCode == 'Manual' ) ) ; |
| 54 | +} |
| 55 | + |
| 56 | +// Get the selected flash embed (if available). |
| 57 | +var oFakeImage = FCK.Selection.GetSelectedElement() ; |
| 58 | +var oTemplateSpan ; |
| 59 | + |
| 60 | +if ( oFakeImage ) |
| 61 | +{ |
| 62 | + if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fck_mw_template') ) |
| 63 | + oTemplateSpan = FCK.GetRealElement( oFakeImage ) ; |
| 64 | + else |
| 65 | + oFakeImage = null ; |
| 66 | +} |
| 67 | + |
| 68 | +window.onload = function() |
| 69 | +{ |
| 70 | + // Translate the dialog box texts. |
| 71 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 72 | + |
| 73 | + // Load the selected link information (if any). |
| 74 | + LoadSelection() ; |
| 75 | + |
| 76 | + // Activate the "OK" button. |
| 77 | + window.parent.SetOkButton( true ) ; |
| 78 | + window.parent.SetAutoSize( true ) ; |
| 79 | + GetE('xTemplateRaw').focus(); |
| 80 | +}; |
| 81 | + |
| 82 | +function LoadSearchResults( result ) |
| 83 | +{ |
| 84 | + var results = result.responseText.Trim().split( '\n' ) ; |
| 85 | + var select = GetE( 'xWikiResults' ) ; |
| 86 | + |
| 87 | + if ( results.length > 0 && !( results.length == 1 && results[0].length == 0 ) ) |
| 88 | + { |
| 89 | + for ( var i = 0 ; i < results.length ; i++ ) |
| 90 | + FCKTools.AddSelectOption( select, 'Template:' + results[i], results[i] ) ; |
| 91 | + } |
| 92 | +} |
| 93 | + |
| 94 | +function LoadSelection() |
| 95 | +{ |
| 96 | + // Make an Ajax search for the pages. |
| 97 | + var empty = ''; |
| 98 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 99 | + oEditor.window.parent.sajax_do_call( 'wfSajaxSearchTemplateFCKeditor',[empty], LoadSearchResults ) ; |
| 100 | + |
| 101 | + if ( !oTemplateSpan ) return ; |
| 102 | + |
| 103 | + var inputText = FCKTools.HTMLDecode(oTemplateSpan.innerHTML); |
| 104 | + inputText = FCKConfig.ProtectedSource.Revert(inputText, 0); //#2509 |
| 105 | + if (inputText.length>0 && inputText.indexOf('{{#')<0 && inputText.indexOf('{{:')<0 ) |
| 106 | + { |
| 107 | + var templateName = inputText.substring(2,inputText.indexOf('fckLR')); |
| 108 | + if (inputText.indexOf('fckLR')<1) |
| 109 | + templateName = inputText.substring(2,inputText.indexOf('|')); |
| 110 | + if (inputText.indexOf('|')<1) |
| 111 | + templateName = inputText.substring(2,inputText.indexOf('}}')); |
| 112 | + |
| 113 | + SetUrl(templateName.charAt(0).toUpperCase() + templateName.substr(1)); |
| 114 | + } |
| 115 | + GetE('xTemplateRaw').value = inputText.replace(/fckLR/g,'\r\n').replace( /"/g, '"' ); |
| 116 | +} |
| 117 | + |
| 118 | +function SetUrl(link) |
| 119 | +{ |
| 120 | + var urlTemplate = oEditor.window.parent.location.pathname + '?title=Template:' + link + '&printable=yes'; |
| 121 | + SetAttribute(GetE('xTemplateManual'),'src',urlTemplate); |
| 122 | + GetE('xTemplateRaw').value = "{{" + link + "}}"; |
| 123 | +} |
| 124 | + |
| 125 | +//#### The OK button was hit. |
| 126 | +function Ok() |
| 127 | +{ |
| 128 | + if ( !oTemplateSpan ) |
| 129 | + { |
| 130 | + oTemplateSpan = FCK.EditorDocument.createElement( 'SPAN' ) ; |
| 131 | + oTemplateSpan.className = 'fck_mw_template' ; |
| 132 | + } |
| 133 | + |
| 134 | + var protectedValue = FCKConfig.ProtectedSource.Protect(GetE('xTemplateRaw').value); |
| 135 | + var templateData = FCKTools.HTMLEncode(protectedValue.toString().Trim().replace(/(\r\n|\n)/g, 'fckLR')).replace( /"/g, '"' ) ; |
| 136 | + |
| 137 | + if ( !( /^{{[\s\S]+}}$/.test( templateData ) ) ) |
| 138 | + { |
| 139 | + alert( FCKLang.wikiTmplEmpty || 'Templates must start with {{ and end with }}. Please check it.' ) ; |
| 140 | + return false ; |
| 141 | + } |
| 142 | + |
| 143 | + oTemplateSpan.innerHTML = templateData ; |
| 144 | + |
| 145 | + if ( !oFakeImage ) |
| 146 | + { |
| 147 | + oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__MWTemplate', oTemplateSpan ) ; |
| 148 | + oFakeImage.setAttribute( '_fck_mw_template', 'true', 0 ) ; |
| 149 | + oFakeImage = FCK.InsertElement( oFakeImage ) ; |
| 150 | + } |
| 151 | + |
| 152 | + //GetE('xTestSpan').innerHTML = GetE('xTemplateRaw').value.Trim().replace( /"/g, '"' ).replace(/(\r\n|\n)/g, '___') ; |
| 153 | + return true ; |
| 154 | +} |
| 155 | + |
| 156 | + </script> |
| 157 | +</head> |
| 158 | +<body style="overflow: hidden"> |
| 159 | + <div id="divEdit"> |
| 160 | + <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> |
| 161 | + <tr> |
| 162 | + <td> |
| 163 | + <span fcklang="wikiTmpl">Template raw definition (from {{ to }})</span><br /> |
| 164 | + </td> |
| 165 | + </tr> |
| 166 | + <tr> |
| 167 | + <td height="100%"> |
| 168 | + <textarea id="xTemplateRaw" style="width: 100%; height: 100%; font-family: Monospace" |
| 169 | + cols="50" rows="10" wrap="off"></textarea> |
| 170 | + </td> |
| 171 | + </tr> |
| 172 | + <tr> |
| 173 | + <td> |
| 174 | + <span id="xTestSpan" class="fck_mw_template"></span> |
| 175 | + </td> |
| 176 | + </tr> |
| 177 | + </table> |
| 178 | + </div> |
| 179 | + <div id="divManual" style="display: none"> |
| 180 | + <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> |
| 181 | + <tr> |
| 182 | + <select id="xWikiResults" style="width: 100%;" onchange="SetUrl( this.value );"> |
| 183 | + <option fcklang="wikiTmpsel" value=""><Pick up a template manual here></option> |
| 184 | + </select> |
| 185 | + </tr> |
| 186 | + <tr> |
| 187 | + <td> |
| 188 | + <iframe id="xTemplateManual" width="100%" scrolling="yes" height="100%" src="" style="margin:5px;padding:0px;"></iframe> |
| 189 | + </td> |
| 190 | + </tr> |
| 191 | + </table> |
| 192 | + </div> |
| 193 | +</body> |
| 194 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/dialogs/template.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 195 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_html.gif |
— | — | @@ -0,0 +1 @@ |
| 2 | +GIF89aB � ������� , B � H����*\Ȱ�Ç�H1�Ą .>PQ dž����`Ʌ'��bJ/�Ĩ��� 8�����N�'�t�hQ�0�0�aI�&�&�I��F�FO>-JU�U�_n��χM�v\kP�D�pEƝK��]� ; |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_html.gif |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 3 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_special.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_special.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 4 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_template.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_template.gif |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 5 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_ref.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_ref.gif |
___________________________________________________________________ |
Added: svn:mime-type |
4 | 6 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_signature.gif |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +GIF89a � ((())),,,---///777999;;;<<<AAADDDFFFGGGJJJLLLNNNOOOPPPQQQSSSTTTVVVWWWXXXZZZ\\\aaabbbccceeefffgggjjjlllmmmnnnooopppwww{{{|||~~~��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� !� l , � ������
+R !���,l�$<XBA��hb%��H� �C$"TSA�$N�`!��D6R|��� ��Dxł�<`q@��.@�Q��� |
| 3 | +bn.)Q���Hs�
+/I`` �Gل[���� >zc���_V�02� �#($�a!��
+'e��BG.+6�as�E�KtԈ��B� \EȏC�d134 ; |
\ No newline at end of file |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_math.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_math.gif |
___________________________________________________________________ |
Added: svn:mime-type |
1 | 4 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_noinclude.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_noinclude.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 5 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_special.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_special.gif |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 6 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_references.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_references.gif |
___________________________________________________________________ |
Added: svn:mime-type |
4 | 7 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_source.gif |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +GIF89a �H a��f��e��i��j��n�⇜��w�䇠㈡�|�拧Ձ�惫牪熮舮膯靮�苳ꍳ鎳莳饱̔�闷ꔸ졵锹왻쨸餺ꥻ짿뮿�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!� |
| 3 | + , ��. ���,�� CFG��C ��F?@�:82G1��GBDBB>93GA?�7
+$(BA=4�G 0FC@:53/� �" <�@=86��%<G�A>=���EDAA��*�FDDC�#+; |
| 4 | +)FF�b�����8a����P�cčD<B"��š��Z ; |
\ No newline at end of file |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_includeonly.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_includeonly.gif |
___________________________________________________________________ |
Added: svn:mime-type |
1 | 5 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_onlyinclude.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_onlyinclude.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 6 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_math.gif |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +GIF89aB � �������, B \�������Ԁ��m`�h�}Px�TI�&� |
| 3 | +�� |
| 4 | +�䡞����l.��@�����Ȕ!��i4R{¢Ji�Ksi���:���R$��8��ϛ |
| 5 | + ; |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_math.gif |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_gallery.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_gallery.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 7 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_nowiki.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_nowiki.gif |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 8 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_source.gif |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +GIF89a; � ���� , ; � H����*\Ȱ�Ç@��PbB )jD��`G�B�H��@�G |
| 3 | +TI�I�)�\�2$M6i�Ĺ�D�)Y�X�(ёE��4Z�#РJ�����ș3>e*)ӥU�� �*X�5�~]�էnj<{b��jНvn�۲/ܾ�n ; |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_source.gif |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_template.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_template.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 5 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_ref.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_ref.gif |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 6 | + image/gif |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_signature.gif |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +GIF89aB � ������� , B � H����*\�p`��#B��D�/RL`�E�5z$ؑ`�����2�J�/3�����$Gʄɳ�N�)� |
| 3 | +j�@���4�t�ҠN�z��R�?�Nm�*V�9��,�Tk׳f�D�4-סe�zm�.L�!��}��%U�U^=h����$6q,�ǐ#K� ; |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/icon_signature.gif |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_category.gif |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +GIF89a � � ������!� , 0��y�ʱ����A46gU���@Ng�X |
| 3 | +������Gˇ��VL�MB���X ; |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/images/tb_icon_category.gif |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js |
— | — | @@ -0,0 +1,1073 @@ |
| 2 | +/* |
| 3 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 4 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 5 | + * |
| 6 | + * == BEGIN LICENSE == |
| 7 | + * |
| 8 | + * Licensed under the terms of any of the following licenses at your |
| 9 | + * choice: |
| 10 | + * |
| 11 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 12 | + * http://www.gnu.org/licenses/gpl.html |
| 13 | + * |
| 14 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 15 | + * http://www.gnu.org/licenses/lgpl.html |
| 16 | + * |
| 17 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 18 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 19 | + * |
| 20 | + * == END LICENSE == |
| 21 | + * |
| 22 | + * Main MediaWiki integration plugin. |
| 23 | + * |
| 24 | + * Wikitext syntax reference: |
| 25 | + * http://meta.wikimedia.org/wiki/Help:Wikitext_examples |
| 26 | + * http://meta.wikimedia.org/wiki/Help:Advanced_editing |
| 27 | + * |
| 28 | + * MediaWiki Sandbox: |
| 29 | + * http://www.mediawiki.org/wiki/Sandbox |
| 30 | + */ |
| 31 | + |
| 32 | +// Rename the "Source" buttom to "Wikitext". |
| 33 | +FCKToolbarItems.RegisterItem( 'Source', new FCKToolbarButton( 'Source', 'Wikitext', null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ); |
| 34 | + |
| 35 | +// Register our toolbar buttons. |
| 36 | +var tbButton = new FCKToolbarButton( 'MW_Template', 'Template', FCKLang.wikiBtnTemplate || 'Insert/Edit Template' ); |
| 37 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_template.gif'; |
| 38 | +FCKToolbarItems.RegisterItem( 'MW_Template', tbButton ); |
| 39 | + |
| 40 | +// Ref button |
| 41 | +tbButton = new FCKToolbarButton( 'MW_Ref', 'Ref', FCKLang.wikiBtnReference || 'Insert/Edit Reference' ); |
| 42 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_ref.gif'; |
| 43 | +FCKToolbarItems.RegisterItem( 'MW_Ref', tbButton ); |
| 44 | +if ( !FCKConfig.showreferences ) { // hack to disable MW_Ref button |
| 45 | + tbButton.Create = function(){ return 0; } |
| 46 | + tbButton.Disable = function(){ return 0; } |
| 47 | + tbButton.RefreshState = function(){ return 0; } |
| 48 | +} |
| 49 | + |
| 50 | +// References button |
| 51 | +var FCKReferences = function(){}; |
| 52 | +FCKReferences.prototype.GetState = function(){ return ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) }; |
| 53 | +FCKCommands.RegisterCommand( 'MW_References', new FCKReferences() ); |
| 54 | +tbButton = new FCKToolbarButton( 'MW_References', 'References', FCKLang.wikiBtnReferences || 'Insert <references /> tag', FCK_TOOLBARITEM_ICONTEXT,true, true, 1 ); |
| 55 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_ref.gif'; |
| 56 | +if ( !FCKConfig.showreferences ) { // hack to disable MW_References button |
| 57 | + tbButton.Create = function(){ return 0; } |
| 58 | + tbButton.Disable = function(){ return 0; } |
| 59 | + tbButton.RefreshState = function(){ return 0; } |
| 60 | +} |
| 61 | + |
| 62 | +FCKReferences.prototype.Execute = function(){ |
| 63 | + if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ) |
| 64 | + return; |
| 65 | + |
| 66 | + FCKUndo.SaveUndoStep(); |
| 67 | + |
| 68 | + var e = FCK.EditorDocument.createElement( 'span' ); |
| 69 | + e.setAttribute( '_fck_mw_customtag', 'true' ); |
| 70 | + e.setAttribute( '_fck_mw_tagname', 'references' ); |
| 71 | + e.className = 'fck_mw_references'; |
| 72 | + |
| 73 | + oFakeImage = FCK.InsertElement( FCKDocumentProcessor_CreateFakeImage( 'FCK__MWReferences', e ) ); |
| 74 | +} |
| 75 | +FCKToolbarItems.RegisterItem( 'MW_References', tbButton ); |
| 76 | + |
| 77 | +// Signature button |
| 78 | +var FCKSignature = function(){}; |
| 79 | +FCKSignature.prototype.GetState = function(){ return ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) }; |
| 80 | +FCKCommands.RegisterCommand( 'MW_Signature', new FCKSignature() ); |
| 81 | +tbButton = new FCKToolbarButton( 'MW_Signature', 'Signature', FCKLang.wikiBtnSignature || 'Insert signature', FCK_TOOLBARITEM_ONLYICON,true, true, 1 ); |
| 82 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_signature.gif'; |
| 83 | + |
| 84 | +FCKSignature.prototype.Execute = function(){ |
| 85 | + if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ) |
| 86 | + return; |
| 87 | + |
| 88 | + FCKUndo.SaveUndoStep(); |
| 89 | + var e = FCK.EditorDocument.createElement( 'span' ); |
| 90 | + e.className = 'fck_mw_signature'; |
| 91 | + |
| 92 | + oFakeImage = FCK.InsertElement( FCKDocumentProcessor_CreateFakeImage( 'FCK__MWSignature', e ) ); |
| 93 | +} |
| 94 | +FCKToolbarItems.RegisterItem( 'MW_Signature', tbButton ); |
| 95 | + |
| 96 | +tbButton = new FCKToolbarButton( 'MW_Math', 'Formula', FCKLang.wikiBtnFormula || 'Insert/Edit Formula' ); |
| 97 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_math.gif'; |
| 98 | +FCKToolbarItems.RegisterItem( 'MW_Math', tbButton ); |
| 99 | + |
| 100 | +tbButton = new FCKToolbarButton( 'MW_Source', 'Source', FCKLang.wikiBtnSourceCode || 'Insert/Edit Source Code' ); |
| 101 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_source.gif'; |
| 102 | +FCKToolbarItems.RegisterItem( 'MW_Source', tbButton ); |
| 103 | +if ( !FCKConfig.showsource ) { // hack to disable MW_Source button |
| 104 | + tbButton.Create = function(){ return 0; } |
| 105 | + tbButton.Disable = function(){ return 0; } |
| 106 | + tbButton.RefreshState = function(){ return 0; } |
| 107 | +} |
| 108 | + |
| 109 | +tbButton = new FCKToolbarButton( 'MW_Special', 'Special Tag', FCKLang.wikiBtnSpecial || 'Insert/Edit Special Tag' ); |
| 110 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_special.gif'; |
| 111 | +FCKToolbarItems.RegisterItem( 'MW_Special', tbButton ); |
| 112 | + |
| 113 | +tbButton = new FCKToolbarButton( 'MW_Category', 'Categories', FCKLang.wikiBtnCategories || 'Insert/Edit categories' ); |
| 114 | +tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_category.gif'; |
| 115 | +FCKToolbarItems.RegisterItem( 'MW_Category', tbButton ); |
| 116 | + |
| 117 | +// Override some dialogs. |
| 118 | +FCKCommands.RegisterCommand( 'MW_Template', new FCKDialogCommand( 'MW_Template', ( FCKLang.wikiCmdTemplate || 'Template Properties' ), FCKConfig.PluginsPath + 'mediawiki/dialogs/template.html', 400, 330 ) ); |
| 119 | +FCKCommands.RegisterCommand( 'MW_Ref', new FCKDialogCommand( 'MW_Ref', ( FCKLang.wikiCmdReference || 'Reference Properties' ), FCKConfig.PluginsPath + 'mediawiki/dialogs/ref.html', 400, 250 ) ); |
| 120 | +FCKCommands.RegisterCommand( 'MW_Math', new FCKDialogCommand( 'MW_Math', ( FCKLang.wikiCmdFormula || 'Formula' ), FCKConfig.PluginsPath + 'mediawiki/dialogs/math.html', 400, 300 ) ); |
| 121 | +FCKCommands.RegisterCommand( 'MW_Special', new FCKDialogCommand( 'MW_Special', ( FCKLang.wikiCmdSpecial || 'Special Tag Properties' ), FCKConfig.PluginsPath + 'mediawiki/dialogs/special.html', 400, 330 ) ); |
| 122 | +FCKCommands.RegisterCommand( 'MW_Source', new FCKDialogCommand( 'MW_Source', ( FCKLang.wikiCmdSourceCode || 'Source Code Properties' ), FCKConfig.PluginsPath + 'mediawiki/dialogs/source.html', 720, 380 ) ); |
| 123 | +FCKCommands.RegisterCommand( 'Link', new FCKDialogCommand( 'Link', FCKLang.DlgLnkWindowTitle, FCKConfig.PluginsPath + 'mediawiki/dialogs/link.html', 400, 250 ) ); |
| 124 | +FCKCommands.RegisterCommand( 'MW_Category', new FCKDialogCommand( 'MW_Category', ( FCKLang.wikiCmdCategories || 'Categories' ), FCKConfig.PluginsPath + 'mediawiki/dialogs/category.html', 400, 500 ) ); |
| 125 | +FCKCommands.RegisterCommand( 'Image', new FCKDialogCommand( 'Image', FCKLang.DlgImgTitle, FCKConfig.PluginsPath + 'mediawiki/dialogs/image.html', 450, 300 ) ); |
| 126 | + |
| 127 | +FCKToolbarItems.OldGetItem = FCKToolbarItems.GetItem; |
| 128 | + |
| 129 | +FCKToolbarItems.GetItem = function( itemName ){ |
| 130 | + var oItem = FCKToolbarItems.LoadedItems[ itemName ]; |
| 131 | + |
| 132 | + if ( oItem ) |
| 133 | + return oItem; |
| 134 | + |
| 135 | + switch ( itemName ){ |
| 136 | + case 'Bold': |
| 137 | + oItem = new FCKToolbarButton( 'Bold', FCKLang.Bold, null, null, true, true, 20 ); |
| 138 | + break; |
| 139 | + case 'Italic': |
| 140 | + oItem = new FCKToolbarButton( 'Italic', FCKLang.Italic, null, null, true, true, 21 ); |
| 141 | + break; |
| 142 | + case 'Underline': |
| 143 | + oItem = new FCKToolbarButton( 'Underline', FCKLang.Underline, null, null, true, true, 22 ); |
| 144 | + break; |
| 145 | + case 'StrikeThrough': |
| 146 | + oItem = new FCKToolbarButton( 'StrikeThrough', FCKLang.StrikeThrough, null, null, true, true, 23 ); |
| 147 | + break; |
| 148 | + case 'Link': |
| 149 | + oItem = new FCKToolbarButton( 'Link', FCKLang.InsertLinkLbl, FCKLang.InsertLink, null, true, true, 34 ); |
| 150 | + break; |
| 151 | + |
| 152 | + default: |
| 153 | + return FCKToolbarItems.OldGetItem( itemName ); |
| 154 | + } |
| 155 | + |
| 156 | + FCKToolbarItems.LoadedItems[ itemName ] = oItem; |
| 157 | + |
| 158 | + return oItem; |
| 159 | +} |
| 160 | + |
| 161 | +FCKToolbarButton.prototype.Click = function(){ |
| 162 | + var oToolbarButton = this._ToolbarButton || this; |
| 163 | + |
| 164 | + // for some buttons, do something else instead... |
| 165 | + var CMode = false; |
| 166 | + if ( oToolbarButton.SourceView && ( FCK_EDITMODE_SOURCE == FCK.EditMode ) ){ |
| 167 | + if ( !window.parent.popup ) |
| 168 | + var oDoc = window.parent; |
| 169 | + else |
| 170 | + var oDoc = window.parent.popup; |
| 171 | + |
| 172 | + switch( oToolbarButton.CommandName ){ |
| 173 | + case 'Bold': |
| 174 | + oDoc.FCKeditorInsertTags( '\'\'\'', '\'\'\'', 'Bold text', document ); |
| 175 | + CMode = true; |
| 176 | + break; |
| 177 | + case 'Italic': |
| 178 | + oDoc.FCKeditorInsertTags( '\'\'', '\'\'', 'Italic text', document ); |
| 179 | + CMode = true; |
| 180 | + break; |
| 181 | + case 'Underline': |
| 182 | + oDoc.FCKeditorInsertTags( '<u>', '</u>', 'Underlined text', document ); |
| 183 | + CMode = true; |
| 184 | + break; |
| 185 | + case 'StrikeThrough': |
| 186 | + oDoc.FCKeditorInsertTags( '<strike>', '</strike>', 'Strikethrough text', document ); |
| 187 | + CMode = true; |
| 188 | + break; |
| 189 | + case 'Link': |
| 190 | + oDoc.FCKeditorInsertTags ('[[', ']]', 'Internal link', document ); |
| 191 | + CMode = true; |
| 192 | + break; |
| 193 | + } |
| 194 | + } |
| 195 | + |
| 196 | + if ( !CMode ) |
| 197 | + FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oToolbarButton.CommandName ).Execute(); |
| 198 | +} |
| 199 | + |
| 200 | +// MediaWiki Wikitext Data Processor implementation. |
| 201 | +FCK.DataProcessor = { |
| 202 | + _inPre : false, |
| 203 | + _inLSpace : false, |
| 204 | + |
| 205 | + /* |
| 206 | + * Returns a string representing the HTML format of "data". The returned |
| 207 | + * value will be loaded in the editor. |
| 208 | + * The HTML must be from <html> to </html>, eventually including |
| 209 | + * the DOCTYPE. |
| 210 | + * @param {String} data The data to be converted in the |
| 211 | + * DataProcessor specific format. |
| 212 | + */ |
| 213 | + ConvertToHtml : function( data ){ |
| 214 | + // Call the original code. |
| 215 | + return FCKDataProcessor.prototype.ConvertToHtml.call( this, data ); |
| 216 | + }, |
| 217 | + |
| 218 | + /* |
| 219 | + * Converts a DOM (sub-)tree to a string in the data format. |
| 220 | + * @param {Object} rootNode The node that contains the DOM tree to be |
| 221 | + * converted to the data format. |
| 222 | + * @param {Boolean} excludeRoot Indicates that the root node must not |
| 223 | + * be included in the conversion, only its children. |
| 224 | + * @param {Boolean} format Indicates that the data must be formatted |
| 225 | + * for human reading. Not all Data Processors may provide it. |
| 226 | + */ |
| 227 | + ConvertToDataFormat : function( rootNode, excludeRoot, ignoreIfEmptyParagraph, format ){ |
| 228 | + // rootNode is <body>. |
| 229 | + |
| 230 | + // Normalize the document for text node processing (except IE - #1586). |
| 231 | + if ( !FCKBrowserInfo.IsIE ) |
| 232 | + rootNode.normalize(); |
| 233 | + |
| 234 | + var stringBuilder = new Array(); |
| 235 | + this._AppendNode( rootNode, stringBuilder, '' ); |
| 236 | + return stringBuilder.join( '' ).RTrim().replace(/^\n*/, ""); |
| 237 | + }, |
| 238 | + |
| 239 | + /* |
| 240 | + * Makes any necessary changes to a piece of HTML for insertion in the |
| 241 | + * editor selection position. |
| 242 | + * @param {String} html The HTML to be fixed. |
| 243 | + */ |
| 244 | + FixHtml : function( html ){ |
| 245 | + return html; |
| 246 | + }, |
| 247 | + |
| 248 | + // Collection of element definitions: |
| 249 | + // 0 : Prefix |
| 250 | + // 1 : Suffix |
| 251 | + // 2 : Ignore children |
| 252 | + _BasicElements : { |
| 253 | + body : [ ], |
| 254 | + b : [ "'''", "'''" ], |
| 255 | + strong : [ "'''", "'''" ], |
| 256 | + i : [ "''", "''" ], |
| 257 | + em : [ "''", "''" ], |
| 258 | + p : [ '\n', '\n' ], |
| 259 | + h1 : [ '\n= ', ' =\n' ], |
| 260 | + h2 : [ '\n== ', ' ==\n' ], |
| 261 | + h3 : [ '\n=== ', ' ===\n' ], |
| 262 | + h4 : [ '\n==== ', ' ====\n' ], |
| 263 | + h5 : [ '\n===== ', ' =====\n' ], |
| 264 | + h6 : [ '\n====== ', ' ======\n' ], |
| 265 | + br : [ '<br>', null, true ], |
| 266 | + hr : [ '\n----\n', null, true ] |
| 267 | + } , |
| 268 | + |
| 269 | + // This function is based on FCKXHtml._AppendNode. |
| 270 | + _AppendNode : function( htmlNode, stringBuilder, prefix ){ |
| 271 | + if ( !htmlNode ) |
| 272 | + return; |
| 273 | + |
| 274 | + switch ( htmlNode.nodeType ){ |
| 275 | + // Element Node. |
| 276 | + case 1 : |
| 277 | + |
| 278 | + // Here we found an element that is not the real element, but a |
| 279 | + // fake one (like the Flash placeholder image), so we must get the real one. |
| 280 | + if ( htmlNode.getAttribute('_fckfakelement') && !htmlNode.getAttribute( '_fck_mw_math' ) ) |
| 281 | + return this._AppendNode( FCK.GetRealElement( htmlNode ), stringBuilder ); |
| 282 | + |
| 283 | + // Mozilla insert custom nodes in the DOM. |
| 284 | + if ( FCKBrowserInfo.IsGecko && htmlNode.hasAttribute( '_moz_editor_bogus_node' ) ) |
| 285 | + return; |
| 286 | + |
| 287 | + // This is for elements that are instrumental to FCKeditor and |
| 288 | + // must be removed from the final HTML. |
| 289 | + if ( htmlNode.getAttribute( '_fcktemp' ) ) |
| 290 | + return; |
| 291 | + |
| 292 | + // Get the element name. |
| 293 | + var sNodeName = htmlNode.tagName.toLowerCase(); |
| 294 | + |
| 295 | + if ( FCKBrowserInfo.IsIE ){ |
| 296 | + // IE doens't include the scope name in the nodeName. So, add the namespace. |
| 297 | + if ( htmlNode.scopeName && htmlNode.scopeName != 'HTML' && htmlNode.scopeName != 'FCK' ) |
| 298 | + sNodeName = htmlNode.scopeName.toLowerCase() + ':' + sNodeName; |
| 299 | + } else { |
| 300 | + if ( sNodeName.StartsWith( 'fck:' ) ) |
| 301 | + sNodeName = sNodeName.Remove( 0, 4 ); |
| 302 | + } |
| 303 | + |
| 304 | + // Check if the node name is valid, otherwise ignore this tag. |
| 305 | + // If the nodeName starts with a slash, it is a orphan closing tag. |
| 306 | + // On some strange cases, the nodeName is empty, even if the node exists. |
| 307 | + if ( !FCKRegexLib.ElementName.test( sNodeName ) ) |
| 308 | + return; |
| 309 | + |
| 310 | + if ( sNodeName == 'br' && ( this._inPre || this._inLSpace ) ){ |
| 311 | + stringBuilder.push( "\n" ); |
| 312 | + if ( this._inLSpace ) |
| 313 | + stringBuilder.push( " " ); |
| 314 | + return; |
| 315 | + } |
| 316 | + |
| 317 | + // Remove the <br> if it is a bogus node. |
| 318 | + if ( sNodeName == 'br' && htmlNode.getAttribute( 'type', 2 ) == '_moz' ) |
| 319 | + return; |
| 320 | + |
| 321 | + // The already processed nodes must be marked to avoid then to be duplicated (bad formatted HTML). |
| 322 | + // So here, the "mark" is checked... if the element is Ok, then mark it. |
| 323 | + if ( htmlNode._fckxhtmljob && htmlNode._fckxhtmljob == FCKXHtml.CurrentJobNum ) |
| 324 | + return; |
| 325 | + |
| 326 | + var basicElement = this._BasicElements[ sNodeName ]; |
| 327 | + if ( basicElement ){ |
| 328 | + var basic0 = basicElement[0]; |
| 329 | + var basic1 = basicElement[1]; |
| 330 | + |
| 331 | + if ( ( basicElement[0] == "''" || basicElement[0] == "'''" ) && stringBuilder.length > 2 ){ |
| 332 | + var pr1 = stringBuilder[stringBuilder.length-1]; |
| 333 | + var pr2 = stringBuilder[stringBuilder.length-2]; |
| 334 | + |
| 335 | + if ( pr1 + pr2 == "'''''") { |
| 336 | + if ( basicElement[0] == "''" ){ |
| 337 | + basic0 = '<i>'; |
| 338 | + basic1 = '</i>'; |
| 339 | + } |
| 340 | + if ( basicElement[0] == "'''" ){ |
| 341 | + basic0 = '<b>'; |
| 342 | + basic1 = '</b>'; |
| 343 | + } |
| 344 | + } |
| 345 | + } |
| 346 | + |
| 347 | + if ( basic0 ) |
| 348 | + stringBuilder.push( basic0 ); |
| 349 | + |
| 350 | + var len = stringBuilder.length; |
| 351 | + |
| 352 | + if ( !basicElement[2] ){ |
| 353 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix ); |
| 354 | + // only empty element inside, remove it to avoid quotes |
| 355 | + if ( ( stringBuilder.length == len || ( stringBuilder.length == len + 1 && !stringBuilder[len].length ) ) |
| 356 | + && basicElement[0] && basicElement[0].charAt(0) == "'" ){ |
| 357 | + stringBuilder.pop(); |
| 358 | + stringBuilder.pop(); |
| 359 | + return; |
| 360 | + } |
| 361 | + } |
| 362 | + |
| 363 | + if ( basic1 ) |
| 364 | + stringBuilder.push( basic1 ); |
| 365 | + } else { |
| 366 | + switch ( sNodeName ){ |
| 367 | + case 'ol' : |
| 368 | + case 'ul' : |
| 369 | + var isFirstLevel = !htmlNode.parentNode.nodeName.IEquals( 'ul', 'ol', 'li', 'dl', 'dt', 'dd' ); |
| 370 | + |
| 371 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix ); |
| 372 | + |
| 373 | + if ( isFirstLevel && stringBuilder[ stringBuilder.length - 1 ] != "\n" ) { |
| 374 | + stringBuilder.push( '\n' ); |
| 375 | + } |
| 376 | + |
| 377 | + break; |
| 378 | + |
| 379 | + case 'li' : |
| 380 | + |
| 381 | + if( stringBuilder.length > 1 ){ |
| 382 | + var sLastStr = stringBuilder[ stringBuilder.length - 1 ]; |
| 383 | + if ( sLastStr != ";" && sLastStr != ":" && sLastStr != "#" && sLastStr != "*" ) |
| 384 | + stringBuilder.push( '\n' + prefix ); |
| 385 | + } |
| 386 | + |
| 387 | + var parent = htmlNode.parentNode; |
| 388 | + var listType = "#"; |
| 389 | + |
| 390 | + while ( parent ){ |
| 391 | + if ( parent.nodeName.toLowerCase() == 'ul' ){ |
| 392 | + listType = "*"; |
| 393 | + break; |
| 394 | + } else if ( parent.nodeName.toLowerCase() == 'ol' ){ |
| 395 | + listType = "#"; |
| 396 | + break; |
| 397 | + } |
| 398 | + else if ( parent.nodeName.toLowerCase() != 'li' ) |
| 399 | + break; |
| 400 | + |
| 401 | + parent = parent.parentNode; |
| 402 | + } |
| 403 | + |
| 404 | + stringBuilder.push( listType ); |
| 405 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix + listType ); |
| 406 | + |
| 407 | + break; |
| 408 | + |
| 409 | + case 'a' : |
| 410 | + |
| 411 | + var pipeline = true; |
| 412 | + // Get the actual Link href. |
| 413 | + var href = htmlNode.getAttribute( '_fcksavedurl' ); |
| 414 | + var hrefType = htmlNode.getAttribute( '_fck_mw_type' ) || ''; |
| 415 | + |
| 416 | + if ( href == null ) |
| 417 | + href = htmlNode.getAttribute( 'href' , 2 ) || ''; |
| 418 | + |
| 419 | + var isWikiUrl = true; |
| 420 | + |
| 421 | + if ( hrefType == "media" ) |
| 422 | + stringBuilder.push( '[[Media:' ); |
| 423 | + else if ( htmlNode.className == "extiw" ){ |
| 424 | + stringBuilder.push( '[[' ); |
| 425 | + var isWikiUrl = true; |
| 426 | + } else { |
| 427 | + var isWikiUrl = !( href.StartsWith( 'mailto:' ) || /^\w+:\/\//.test( href ) ); |
| 428 | + stringBuilder.push( isWikiUrl ? '[[' : '[' ); |
| 429 | + } |
| 430 | + // #2223 |
| 431 | + if( htmlNode.getAttribute( '_fcknotitle' ) && htmlNode.getAttribute( '_fcknotitle' ) == "true" ){ |
| 432 | + var testHref = FCKConfig.ProtectedSource.Revert( href, 0 ); |
| 433 | + var testInner = FCKConfig.ProtectedSource.Revert( htmlNode.innerHTML, 0 ); |
| 434 | + if ( href.toLowerCase().StartsWith( 'category:' ) ) |
| 435 | + testInner = 'Category:' + testInner; |
| 436 | + if ( testHref.toLowerCase().StartsWith( 'rtecolon' ) ) |
| 437 | + testHref = testHref.replace( /rtecolon/, ":" ); |
| 438 | + testInner = testInner.replace( /&/, "&" ); |
| 439 | + if ( testInner == testHref ) |
| 440 | + pipeline = false; |
| 441 | + } |
| 442 | + if( href.toLowerCase().StartsWith( 'rtecolon' ) ){ // change 'rtecolon=' => ':' in links |
| 443 | + stringBuilder.push(':'); |
| 444 | + href = href.substring(8); |
| 445 | + } |
| 446 | + stringBuilder.push( href ); |
| 447 | + if ( pipeline && htmlNode.innerHTML != '[n]' && ( !isWikiUrl || href != htmlNode.innerHTML || !href.toLowerCase().StartsWith( "category:" ) ) ){ |
| 448 | + stringBuilder.push( isWikiUrl? '|' : ' ' ); |
| 449 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix ); |
| 450 | + } |
| 451 | + stringBuilder.push( isWikiUrl ? ']]' : ']' ); |
| 452 | + |
| 453 | + break; |
| 454 | + |
| 455 | + case 'dl' : |
| 456 | + |
| 457 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix ); |
| 458 | + var isFirstLevel = !htmlNode.parentNode.nodeName.IEquals( 'ul', 'ol', 'li', 'dl', 'dd', 'dt' ); |
| 459 | + if ( isFirstLevel && stringBuilder[ stringBuilder.length - 1 ] != "\n" ) |
| 460 | + stringBuilder.push( '\n' ); |
| 461 | + |
| 462 | + break; |
| 463 | + |
| 464 | + case 'dt' : |
| 465 | + |
| 466 | + if( stringBuilder.length > 1 ){ |
| 467 | + var sLastStr = stringBuilder[ stringBuilder.length - 1 ]; |
| 468 | + if ( sLastStr != ";" && sLastStr != ":" && sLastStr != "#" && sLastStr != "*" ) |
| 469 | + stringBuilder.push( '\n' + prefix ); |
| 470 | + } |
| 471 | + stringBuilder.push( ';' ); |
| 472 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix + ";" ); |
| 473 | + |
| 474 | + break; |
| 475 | + |
| 476 | + case 'dd' : |
| 477 | + |
| 478 | + if( stringBuilder.length > 1 ){ |
| 479 | + var sLastStr = stringBuilder[ stringBuilder.length - 1 ]; |
| 480 | + if ( sLastStr != ";" && sLastStr != ":" && sLastStr != "#" && sLastStr != "*" ) |
| 481 | + stringBuilder.push( '\n' + prefix ); |
| 482 | + } |
| 483 | + stringBuilder.push( ':' ); |
| 484 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix + ":" ); |
| 485 | + |
| 486 | + break; |
| 487 | + |
| 488 | + case 'table' : |
| 489 | + |
| 490 | + var attribs = this._GetAttributesStr( htmlNode ); |
| 491 | + |
| 492 | + stringBuilder.push( '\n{|' ); |
| 493 | + if ( attribs.length > 0 ) |
| 494 | + stringBuilder.push( attribs ); |
| 495 | + stringBuilder.push( '\n' ); |
| 496 | + |
| 497 | + if ( htmlNode.caption && htmlNode.caption.innerHTML.length > 0 ){ |
| 498 | + stringBuilder.push( '|+ ' ); |
| 499 | + this._AppendChildNodes( htmlNode.caption, stringBuilder, prefix ); |
| 500 | + stringBuilder.push( '\n' ); |
| 501 | + } |
| 502 | + |
| 503 | + for ( var r = 0; r < htmlNode.rows.length; r++ ){ |
| 504 | + attribs = this._GetAttributesStr( htmlNode.rows[r] ); |
| 505 | + |
| 506 | + stringBuilder.push( '|-' ); |
| 507 | + if ( attribs.length > 0 ) |
| 508 | + stringBuilder.push( attribs ); |
| 509 | + stringBuilder.push( '\n' ); |
| 510 | + |
| 511 | + for ( var c = 0; c < htmlNode.rows[r].cells.length; c++ ){ |
| 512 | + attribs = this._GetAttributesStr( htmlNode.rows[r].cells[c] ); |
| 513 | + |
| 514 | + if ( htmlNode.rows[r].cells[c].tagName.toLowerCase() == "th" ) |
| 515 | + stringBuilder.push( '!' ); |
| 516 | + else |
| 517 | + stringBuilder.push( '|' ); |
| 518 | + |
| 519 | + if ( attribs.length > 0 ) |
| 520 | + stringBuilder.push( attribs + ' |' ); |
| 521 | + |
| 522 | + stringBuilder.push( ' ' ); |
| 523 | + |
| 524 | + this._IsInsideCell = true; |
| 525 | + this._AppendChildNodes( htmlNode.rows[r].cells[c], stringBuilder, prefix ); |
| 526 | + this._IsInsideCell = false; |
| 527 | + |
| 528 | + stringBuilder.push( '\n' ); |
| 529 | + } |
| 530 | + } |
| 531 | + |
| 532 | + stringBuilder.push( '|}\n' ); |
| 533 | + |
| 534 | + break; |
| 535 | + |
| 536 | + case 'img' : |
| 537 | + |
| 538 | + var formula = htmlNode.getAttribute( '_fck_mw_math' ); |
| 539 | + |
| 540 | + if ( formula && formula.length > 0 ){ |
| 541 | + stringBuilder.push( '<math>' ); |
| 542 | + stringBuilder.push( formula ); |
| 543 | + stringBuilder.push( '</math>' ); |
| 544 | + return; |
| 545 | + } |
| 546 | + |
| 547 | + var imgName = htmlNode.getAttribute( '_fck_mw_filename' ); |
| 548 | + var imgCaption = htmlNode.getAttribute( 'alt' ) || ''; |
| 549 | + var imgType = htmlNode.getAttribute( '_fck_mw_type' ) || ''; |
| 550 | + var imgLocation = htmlNode.getAttribute( '_fck_mw_location' ) || ''; |
| 551 | + var imgWidth = htmlNode.getAttribute( '_fck_mw_width' ) || ''; |
| 552 | + var imgHeight = htmlNode.getAttribute( '_fck_mw_height' ) || ''; |
| 553 | + var imgStyleWidth = ( parseInt(htmlNode.style.width) || '' ) + ''; |
| 554 | + var imgStyleHeight = ( parseInt(htmlNode.style.height) || '' ) + ''; |
| 555 | + var imgRealWidth = ( htmlNode.getAttribute( 'width' ) || '' ) + ''; |
| 556 | + var imgRealHeight = ( htmlNode.getAttribute( 'height' ) || '' ) + ''; |
| 557 | + |
| 558 | + stringBuilder.push( '[[Image:' ); |
| 559 | + stringBuilder.push( imgName ); |
| 560 | + |
| 561 | + if ( imgStyleWidth.length > 0 ) |
| 562 | + imgWidth = imgStyleWidth; |
| 563 | + else if ( imgWidth.length > 0 && imgRealWidth.length > 0 ) |
| 564 | + imgWidth = imgRealWidth; |
| 565 | + |
| 566 | + if ( imgStyleHeight.length > 0 ) |
| 567 | + imgHeight = imgStyleHeight; |
| 568 | + else if ( imgHeight.length > 0 && imgRealHeight.length > 0 ) |
| 569 | + imgHeight = imgRealHeight; |
| 570 | + |
| 571 | + if ( imgType.length > 0 ) |
| 572 | + stringBuilder.push( '|' + imgType ); |
| 573 | + |
| 574 | + if ( imgLocation.length > 0 ) |
| 575 | + stringBuilder.push( '|' + imgLocation ); |
| 576 | + |
| 577 | + if ( imgWidth.length > 0 ){ |
| 578 | + stringBuilder.push( '|' + imgWidth ); |
| 579 | + |
| 580 | + if ( imgHeight.length > 0 ) |
| 581 | + stringBuilder.push( 'x' + imgHeight ); |
| 582 | + |
| 583 | + stringBuilder.push( 'px' ); |
| 584 | + } |
| 585 | + |
| 586 | + if ( imgCaption.length > 0 ) |
| 587 | + stringBuilder.push( '|' + imgCaption ); |
| 588 | + |
| 589 | + stringBuilder.push( ']]' ); |
| 590 | + |
| 591 | + break; |
| 592 | + |
| 593 | + case 'span' : |
| 594 | + switch ( htmlNode.className ){ |
| 595 | + case 'fck_mw_source' : |
| 596 | + var refLang = htmlNode.getAttribute( 'lang' ); |
| 597 | + |
| 598 | + stringBuilder.push( '<source' ); |
| 599 | + stringBuilder.push( ' lang="' + refLang + '"' ); |
| 600 | + stringBuilder.push( '>' ); |
| 601 | + stringBuilder.push( FCKTools.HTMLDecode(htmlNode.innerHTML).replace(/fckLR/g,'\r\n') ); |
| 602 | + stringBuilder.push( '</source>' ); |
| 603 | + return; |
| 604 | + |
| 605 | + case 'fck_mw_ref' : |
| 606 | + var refName = htmlNode.getAttribute( 'name' ); |
| 607 | + |
| 608 | + stringBuilder.push( '<ref' ); |
| 609 | + |
| 610 | + if ( refName && refName.length > 0 ) |
| 611 | + stringBuilder.push( ' name="' + refName + '"' ); |
| 612 | + |
| 613 | + if ( htmlNode.innerHTML.length == 0 ) |
| 614 | + stringBuilder.push( ' />' ); |
| 615 | + else { |
| 616 | + stringBuilder.push( '>' ); |
| 617 | + stringBuilder.push( htmlNode.innerHTML ); |
| 618 | + stringBuilder.push( '</ref>' ); |
| 619 | + } |
| 620 | + return; |
| 621 | + |
| 622 | + case 'fck_mw_references' : |
| 623 | + stringBuilder.push( '<references />' ); |
| 624 | + return; |
| 625 | + |
| 626 | + case 'fck_mw_signature' : |
| 627 | + stringBuilder.push( FCKConfig.WikiSignature ); |
| 628 | + return; |
| 629 | + |
| 630 | + case 'fck_mw_template' : |
| 631 | + stringBuilder.push( FCKTools.HTMLDecode(htmlNode.innerHTML).replace(/fckLR/g,'\r\n') ); |
| 632 | + return; |
| 633 | + |
| 634 | + case 'fck_mw_magic' : |
| 635 | + stringBuilder.push( htmlNode.innerHTML ); |
| 636 | + return; |
| 637 | + |
| 638 | + case 'fck_mw_nowiki' : |
| 639 | + sNodeName = 'nowiki'; |
| 640 | + break; |
| 641 | + |
| 642 | + case 'fck_mw_html' : |
| 643 | + sNodeName = 'html'; |
| 644 | + break; |
| 645 | + |
| 646 | + case 'fck_mw_includeonly' : |
| 647 | + sNodeName = 'includeonly'; |
| 648 | + break; |
| 649 | + |
| 650 | + case 'fck_mw_noinclude' : |
| 651 | + sNodeName = 'noinclude'; |
| 652 | + break; |
| 653 | + |
| 654 | + case 'fck_mw_gallery' : |
| 655 | + sNodeName = 'gallery'; |
| 656 | + break; |
| 657 | + |
| 658 | + case 'fck_mw_onlyinclude' : |
| 659 | + sNodeName = 'onlyinclude'; |
| 660 | + |
| 661 | + break; |
| 662 | + } |
| 663 | + |
| 664 | + // Change the node name and fell in the "default" case. |
| 665 | + if ( htmlNode.getAttribute( '_fck_mw_customtag' ) ) |
| 666 | + sNodeName = htmlNode.getAttribute( '_fck_mw_tagname' ); |
| 667 | + |
| 668 | + case 'pre' : |
| 669 | + var attribs = this._GetAttributesStr( htmlNode ); |
| 670 | + |
| 671 | + if ( htmlNode.className == "_fck_mw_lspace" ){ |
| 672 | + stringBuilder.push( "\n " ); |
| 673 | + this._inLSpace = true; |
| 674 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix ); |
| 675 | + this._inLSpace = false; |
| 676 | + var len = stringBuilder.length; |
| 677 | + if ( len > 1 ) { |
| 678 | + var tail = stringBuilder[len-2] + stringBuilder[len-1]; |
| 679 | + if ( len > 2 ) { |
| 680 | + tail = stringBuilder[len-3] + tail; |
| 681 | + } |
| 682 | + if (tail.EndsWith("\n ")) { |
| 683 | + stringBuilder[len-1] = stringBuilder[len-1].replace(/ $/, ""); |
| 684 | + } else if ( !tail.EndsWith("\n") ) { |
| 685 | + stringBuilder.push( "\n" ); |
| 686 | + } |
| 687 | + } |
| 688 | + } else { |
| 689 | + stringBuilder.push( '<' ); |
| 690 | + stringBuilder.push( sNodeName ); |
| 691 | + |
| 692 | + if ( attribs.length > 0 ) |
| 693 | + stringBuilder.push( attribs ); |
| 694 | + if( htmlNode.innerHTML == '' ) |
| 695 | + stringBuilder.push( ' />' ); |
| 696 | + else { |
| 697 | + stringBuilder.push( '>' ); |
| 698 | + this._inPre = true; |
| 699 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix ); |
| 700 | + this._inPre = false; |
| 701 | + |
| 702 | + stringBuilder.push( '<\/' ); |
| 703 | + stringBuilder.push( sNodeName ); |
| 704 | + stringBuilder.push( '>' ); |
| 705 | + } |
| 706 | + } |
| 707 | + |
| 708 | + break; |
| 709 | + default : |
| 710 | + var attribs = this._GetAttributesStr( htmlNode ); |
| 711 | + |
| 712 | + stringBuilder.push( '<' ); |
| 713 | + stringBuilder.push( sNodeName ); |
| 714 | + |
| 715 | + if ( attribs.length > 0 ) |
| 716 | + stringBuilder.push( attribs ); |
| 717 | + |
| 718 | + stringBuilder.push( '>' ); |
| 719 | + this._AppendChildNodes( htmlNode, stringBuilder, prefix ); |
| 720 | + stringBuilder.push( '<\/' ); |
| 721 | + stringBuilder.push( sNodeName ); |
| 722 | + stringBuilder.push( '>' ); |
| 723 | + break; |
| 724 | + } |
| 725 | + } |
| 726 | + |
| 727 | + htmlNode._fckxhtmljob = FCKXHtml.CurrentJobNum; |
| 728 | + return; |
| 729 | + |
| 730 | + // Text Node. |
| 731 | + case 3 : |
| 732 | + |
| 733 | + var parentIsSpecialTag = htmlNode.parentNode.getAttribute( '_fck_mw_customtag' ); |
| 734 | + var textValue = htmlNode.nodeValue; |
| 735 | + if ( !parentIsSpecialTag ){ |
| 736 | + if ( FCKBrowserInfo.IsIE && this._inLSpace ) { |
| 737 | + textValue = textValue.replace( /\r/g, "\r " ); |
| 738 | + if (textValue.EndsWith( "\r " )) { |
| 739 | + textValue = textValue.replace( /\r $/, "\r" ); |
| 740 | + } |
| 741 | + } |
| 742 | + if ( !FCKBrowserInfo.IsIE && this._inLSpace ) { |
| 743 | + textValue = textValue.replace( /\n(?! )/g, "\n " ); |
| 744 | + } |
| 745 | + |
| 746 | + if (!this._inLSpace && !this._inPre) { |
| 747 | + textValue = textValue.replace( /[\n\t]/g, ' ' ); |
| 748 | + } |
| 749 | + |
| 750 | + textValue = FCKTools.HTMLEncode( textValue ); |
| 751 | + textValue = textValue.replace( /\u00A0/g, ' ' ); |
| 752 | + |
| 753 | + if ( ( !htmlNode.previousSibling || |
| 754 | + ( stringBuilder.length > 0 && stringBuilder[ stringBuilder.length - 1 ].EndsWith( '\n' ) ) ) && !this._inLSpace && !this._inPre ){ |
| 755 | + textValue = textValue.LTrim(); |
| 756 | + } |
| 757 | + |
| 758 | + if ( !htmlNode.nextSibling && !this._inLSpace && !this._inPre && ( !htmlNode.parentNode || !htmlNode.parentNode.nextSibling ) ) |
| 759 | + textValue = textValue.RTrim(); |
| 760 | + |
| 761 | + if( !this._inLSpace && !this._inPre ) |
| 762 | + textValue = textValue.replace( / {2,}/g, ' ' ); |
| 763 | + |
| 764 | + if ( this._inLSpace && textValue.length == 1 && textValue.charCodeAt(0) == 13 ) |
| 765 | + textValue = textValue + " "; |
| 766 | + |
| 767 | + if ( !this._inLSpace && !this._inPre && textValue == " " ) { |
| 768 | + var len = stringBuilder.length; |
| 769 | + if( len > 1 ) { |
| 770 | + var tail = stringBuilder[len-2] + stringBuilder[len-1]; |
| 771 | + if ( tail.toString().EndsWith( "\n" ) ) |
| 772 | + textValue = ''; |
| 773 | + } |
| 774 | + } |
| 775 | + |
| 776 | + if ( this._IsInsideCell ) { |
| 777 | + var result, linkPattern = new RegExp( "\\[\\[.*?\\]\\]", "g" ); |
| 778 | + while( result = linkPattern.exec( textValue ) ) { |
| 779 | + textValue = textValue.replace( result, result.toString().replace( /\|/g, "<!--LINK_PIPE-->" ) ); |
| 780 | + } |
| 781 | + textValue = textValue.replace( /\|/g, '|' ); |
| 782 | + textValue = textValue.replace( /<!--LINK_PIPE-->/g, '|' ); |
| 783 | + } |
| 784 | + } else { |
| 785 | + textValue = FCKTools.HTMLDecode(textValue).replace(/fckLR/g,'\r\n'); |
| 786 | + } |
| 787 | + |
| 788 | + stringBuilder.push( textValue ); |
| 789 | + return; |
| 790 | + |
| 791 | + // Comment |
| 792 | + case 8 : |
| 793 | + // IE catches the <!DOTYPE ... > as a comment, but it has no |
| 794 | + // innerHTML, so we can catch it, and ignore it. |
| 795 | + if ( FCKBrowserInfo.IsIE && !htmlNode.innerHTML ) |
| 796 | + return; |
| 797 | + |
| 798 | + stringBuilder.push( "<!--" ); |
| 799 | + |
| 800 | + try { |
| 801 | + stringBuilder.push( htmlNode.nodeValue ); |
| 802 | + } catch( e ) { /* Do nothing... probably this is a wrong format comment. */ } |
| 803 | + |
| 804 | + stringBuilder.push( "-->" ); |
| 805 | + return; |
| 806 | + } |
| 807 | + }, |
| 808 | + |
| 809 | + _AppendChildNodes : function( htmlNode, stringBuilder, listPrefix ){ |
| 810 | + var child = htmlNode.firstChild; |
| 811 | + |
| 812 | + while ( child ){ |
| 813 | + this._AppendNode( child, stringBuilder, listPrefix ); |
| 814 | + child = child.nextSibling; |
| 815 | + } |
| 816 | + }, |
| 817 | + |
| 818 | + _GetAttributesStr : function( htmlNode ){ |
| 819 | + var attStr = ''; |
| 820 | + var aAttributes = htmlNode.attributes; |
| 821 | + |
| 822 | + for ( var n = 0; n < aAttributes.length; n++ ){ |
| 823 | + var oAttribute = aAttributes[n]; |
| 824 | + |
| 825 | + if ( oAttribute.specified ){ |
| 826 | + var sAttName = oAttribute.nodeName.toLowerCase(); |
| 827 | + var sAttValue; |
| 828 | + |
| 829 | + // Ignore any attribute starting with "_fck". |
| 830 | + if ( sAttName.StartsWith( '_fck' ) ) |
| 831 | + continue; |
| 832 | + // There is a bug in Mozilla that returns '_moz_xxx' attributes as specified. |
| 833 | + else if ( sAttName.indexOf( '_moz' ) == 0 ) |
| 834 | + continue; |
| 835 | + // For "class", nodeValue must be used. |
| 836 | + else if ( sAttName == 'class' ){ |
| 837 | + // Get the class, removing any fckXXX we can have there. |
| 838 | + sAttValue = oAttribute.nodeValue.replace( /(^|\s*)fck\S+/, '' ).Trim(); |
| 839 | + |
| 840 | + if ( sAttValue.length == 0 ) |
| 841 | + continue; |
| 842 | + } else if ( sAttName == 'style' && FCKBrowserInfo.IsIE ) { |
| 843 | + sAttValue = htmlNode.style.cssText.toLowerCase(); |
| 844 | + } |
| 845 | + // XHTML doens't support attribute minimization like "CHECKED". It must be trasformed to cheched="checked". |
| 846 | + else if ( oAttribute.nodeValue === true ) |
| 847 | + sAttValue = sAttName; |
| 848 | + else |
| 849 | + sAttValue = htmlNode.getAttribute( sAttName, 2 ); // We must use getAttribute to get it exactly as it is defined. |
| 850 | + |
| 851 | + // leave templates |
| 852 | + if ( sAttName.StartsWith( '{{' ) && sAttName.EndsWith( '}}' ) ) { |
| 853 | + attStr += ' ' + sAttName; |
| 854 | + } else { |
| 855 | + attStr += ' ' + sAttName + '="' + String(sAttValue).replace( '"', '"' ) + '"'; |
| 856 | + } |
| 857 | + } |
| 858 | + } |
| 859 | + return attStr; |
| 860 | + } |
| 861 | +}; |
| 862 | + |
| 863 | +// Here we change the SwitchEditMode function to make the Ajax call when |
| 864 | +// switching from Wikitext. |
| 865 | +(function(){ |
| 866 | + if( window.parent.showFCKEditor & ( 2 | 4 ) ){ // if popup or toggle link |
| 867 | + var original_ULF = FCK.UpdateLinkedField; |
| 868 | + FCK.UpdateLinkedField = function(){ |
| 869 | + if( window.parent.showFCKEditor & 1 ){ // only if editor is up-to-date |
| 870 | + original_ULF.apply(); |
| 871 | + } |
| 872 | + } |
| 873 | + } |
| 874 | + var original = FCK.SwitchEditMode; |
| 875 | + window.parent.oFCKeditor.ready = true; |
| 876 | + FCK.SwitchEditMode = function(){ |
| 877 | + var args = arguments; |
| 878 | + window.parent.oFCKeditor.ready = false; |
| 879 | + var loadHTMLFromAjax = function( result ){ |
| 880 | + FCK.EditingArea.Textarea.value = result.responseText; |
| 881 | + original.apply( FCK, args ); |
| 882 | + window.parent.oFCKeditor.ready = true; |
| 883 | + } |
| 884 | + var edittools_markup = parent.document.getElementById( 'editpage-specialchars' ); |
| 885 | + |
| 886 | + if ( FCK.EditMode == FCK_EDITMODE_SOURCE ){ |
| 887 | + // Hide the textarea to avoid seeing the code change. |
| 888 | + FCK.EditingArea.Textarea.style.visibility = 'hidden'; |
| 889 | + var loading = document.createElement( 'span' ); |
| 890 | + loading.innerHTML = ' '+ ( FCKLang.wikiLoadingWikitext || 'Loading Wikitext. Please wait...' ) + ' '; |
| 891 | + loading.style.position = 'absolute'; |
| 892 | + loading.style.left = '5px'; |
| 893 | +// loading.style.backgroundColor = '#ff0000'; |
| 894 | + FCK.EditingArea.Textarea.parentNode.appendChild( loading, FCK.EditingArea.Textarea ); |
| 895 | + // if we have a standard Edittools div, hide the one containing wikimarkup |
| 896 | + if( edittools_markup ) { |
| 897 | + edittools_markup.style.display = 'none'; |
| 898 | + } |
| 899 | + |
| 900 | + // Use Ajax to transform the Wikitext to HTML. |
| 901 | + if( window.parent.popup ){ |
| 902 | + window.parent.popup.parent.FCK_sajax( 'wfSajaxWikiToHTML', [FCK.EditingArea.Textarea.value], loadHTMLFromAjax ); |
| 903 | + } else { |
| 904 | + window.parent.FCK_sajax( 'wfSajaxWikiToHTML', [FCK.EditingArea.Textarea.value], loadHTMLFromAjax ); |
| 905 | + } |
| 906 | + } else { |
| 907 | + original.apply( FCK, args ); |
| 908 | + if( edittools_markup ) { |
| 909 | + edittools_markup.style.display = ''; |
| 910 | + } |
| 911 | + window.parent.oFCKeditor.ready = true; |
| 912 | + } |
| 913 | + } |
| 914 | +})(); |
| 915 | + |
| 916 | +// MediaWiki document processor. |
| 917 | +FCKDocumentProcessor.AppendNew().ProcessDocument = function( document ){ |
| 918 | + // #1011: change signatures to SPAN elements |
| 919 | + var aTextNodes = document.getElementsByTagName( '*' ); |
| 920 | + var i = 0; |
| 921 | + var signatureRegExp = new RegExp( FCKConfig.WikiSignature.replace( /([*:.*?();|$])/g, "\\$1" ), "i" ); |
| 922 | + while( element = aTextNodes[i++] ){ |
| 923 | + var nodes = element.childNodes; |
| 924 | + var j = 0; |
| 925 | + while ( node = nodes[j++] ){ |
| 926 | + if ( node.nodeType == 3 ){ // textNode |
| 927 | + var index = 0; |
| 928 | + |
| 929 | + while ( aSignatures = node.nodeValue.match( signatureRegExp ) ){ |
| 930 | + index = node.nodeValue.indexOf( aSignatures[0] ); |
| 931 | + if ( index != -1 ){ |
| 932 | + var e = FCK.EditorDocument.createElement( 'span' ); |
| 933 | + e.className = "fck_mw_signature"; |
| 934 | + var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__MWSignature', e ); |
| 935 | + |
| 936 | + var substr1 = FCK.EditorDocument.createTextNode( node.nodeValue.substring(0, index) ); |
| 937 | + var substr2 = FCK.EditorDocument.createTextNode( node.nodeValue.substring(index + aSignatures[0].length) ); |
| 938 | + |
| 939 | + node.parentNode.insertBefore( substr1, node ); |
| 940 | + node.parentNode.insertBefore( oFakeImage, node ); |
| 941 | + node.parentNode.insertBefore( substr2, node ); |
| 942 | + |
| 943 | + node.parentNode.removeChild( node ); |
| 944 | + if ( node ) |
| 945 | + node.nodeValue = ''; |
| 946 | + } |
| 947 | + } |
| 948 | + } |
| 949 | + } |
| 950 | + } |
| 951 | + |
| 952 | + // Templates and magic words. |
| 953 | + var aSpans = document.getElementsByTagName( 'SPAN' ); |
| 954 | + |
| 955 | + var eSpan; |
| 956 | + var i = aSpans.length - 1; |
| 957 | + while ( i >= 0 && ( eSpan = aSpans[i--] ) ){ |
| 958 | + var className = null; |
| 959 | + switch ( eSpan.className ){ |
| 960 | + case 'fck_mw_source' : |
| 961 | + className = 'FCK__MWSource'; |
| 962 | + case 'fck_mw_ref' : |
| 963 | + if (className == null) |
| 964 | + className = 'FCK__MWRef'; |
| 965 | + case 'fck_mw_references' : |
| 966 | + if ( className == null ) |
| 967 | + className = 'FCK__MWReferences'; |
| 968 | + case 'fck_mw_template' : |
| 969 | + if ( className == null ) //YC |
| 970 | + className = 'FCK__MWTemplate'; //YC |
| 971 | + case 'fck_mw_magic' : |
| 972 | + if ( className == null ) |
| 973 | + className = 'FCK__MWMagicWord'; |
| 974 | + case 'fck_mw_magic' : |
| 975 | + if ( className == null ) |
| 976 | + className = 'FCK__MWMagicWord'; |
| 977 | + case 'fck_mw_special' : //YC |
| 978 | + if ( className == null ) |
| 979 | + className = 'FCK__MWSpecial'; |
| 980 | + case 'fck_mw_nowiki' : |
| 981 | + if ( className == null ) |
| 982 | + className = 'FCK__MWNowiki'; |
| 983 | + case 'fck_mw_html' : |
| 984 | + if ( className == null ) |
| 985 | + className = 'FCK__MWHtml'; |
| 986 | + case 'fck_mw_includeonly' : |
| 987 | + if ( className == null ) |
| 988 | + className = 'FCK__MWIncludeonly'; |
| 989 | + case 'fck_mw_gallery' : |
| 990 | + if ( className == null ) |
| 991 | + className = 'FCK__MWGallery'; |
| 992 | + case 'fck_mw_noinclude' : |
| 993 | + if ( className == null ) |
| 994 | + className = 'FCK__MWNoinclude'; |
| 995 | + case 'fck_mw_onlyinclude' : |
| 996 | + if ( className == null ) |
| 997 | + className = 'FCK__MWOnlyinclude'; |
| 998 | + |
| 999 | + var oImg = FCKDocumentProcessor_CreateFakeImage( className, eSpan.cloneNode(true) ); |
| 1000 | + oImg.setAttribute( '_' + eSpan.className, 'true', 0 ); |
| 1001 | + |
| 1002 | + eSpan.parentNode.insertBefore( oImg, eSpan ); |
| 1003 | + eSpan.parentNode.removeChild( eSpan ); |
| 1004 | + break; |
| 1005 | + } |
| 1006 | + } |
| 1007 | + |
| 1008 | + // Math tags without Tex. |
| 1009 | + var aImgs = document.getElementsByTagName( 'IMG' ); |
| 1010 | + var eImg; |
| 1011 | + i = aImgs.length - 1; |
| 1012 | + while ( i >= 0 && ( eImg = aImgs[i--] ) ){ |
| 1013 | + var className = null; |
| 1014 | + switch ( eImg.className ){ |
| 1015 | + case 'FCK__MWMath' : |
| 1016 | + eImg.src = FCKConfig.PluginsPath + 'mediawiki/images/icon_math.gif'; |
| 1017 | + break; |
| 1018 | + } |
| 1019 | + } |
| 1020 | + |
| 1021 | + // InterWiki / InterLanguage links |
| 1022 | + var aHrefs = document.getElementsByTagName( 'A' ); |
| 1023 | + var a; |
| 1024 | + var i = aHrefs.length - 1; |
| 1025 | + while ( i >= 0 && ( a = aHrefs[i--] ) ){ |
| 1026 | + if( a.className == 'extiw' ){ |
| 1027 | + a.href = a.title; |
| 1028 | + a.setAttribute( '_fcksavedurl', a.href ); |
| 1029 | + } else { |
| 1030 | + if( a.href.toLowerCase().StartsWith( 'rtecolon' ) ){ |
| 1031 | + a.href = ":" + a.href.substring(8); |
| 1032 | + if( a.innerHTML.toLowerCase().StartsWith( 'rtecolon' ) ){ |
| 1033 | + a.innerHTML = a.innerHTML.substring(8); |
| 1034 | + } |
| 1035 | + } |
| 1036 | + } |
| 1037 | + } |
| 1038 | +} |
| 1039 | + |
| 1040 | +// Context menu for templates. |
| 1041 | +FCK.ContextMenu.RegisterListener({ |
| 1042 | + AddItems : function( contextMenu, tag, tagName ){ |
| 1043 | + if ( tagName == 'IMG' ){ |
| 1044 | + if ( tag.getAttribute( '_fck_mw_template' ) ){ |
| 1045 | + contextMenu.AddSeparator(); |
| 1046 | + contextMenu.AddItem( 'MW_Template', FCKLang.wikiMnuTemplate || 'Template Properties' ); |
| 1047 | + } |
| 1048 | + if ( tag.getAttribute( '_fck_mw_magic' ) ){ |
| 1049 | + contextMenu.AddSeparator(); |
| 1050 | + contextMenu.AddItem( 'MW_MagicWord', FCKLang.wikiMnuMagicWord || 'Modify Magic Word' ); |
| 1051 | + } |
| 1052 | + if ( tag.getAttribute( '_fck_mw_ref' ) ){ |
| 1053 | + contextMenu.AddSeparator(); |
| 1054 | + contextMenu.AddItem( 'MW_Ref', FCKLang.wikiMnuReference || 'Reference Properties' ); |
| 1055 | + } |
| 1056 | + if ( tag.getAttribute( '_fck_mw_html' ) ){ |
| 1057 | + contextMenu.AddSeparator(); |
| 1058 | + contextMenu.AddItem( 'MW_Special', 'Edit HTML code' ); |
| 1059 | + } |
| 1060 | + if ( tag.getAttribute( '_fck_mw_source' ) ){ |
| 1061 | + contextMenu.AddSeparator(); |
| 1062 | + contextMenu.AddItem( 'MW_Source', FCKLang.wikiMnuSourceCode || 'Source Code Properties' ); |
| 1063 | + } |
| 1064 | + if ( tag.getAttribute( '_fck_mw_math' ) ){ |
| 1065 | + contextMenu.AddSeparator(); |
| 1066 | + contextMenu.AddItem( 'MW_Math', FCKLang.wikiMnuFormula || 'Edit Formula' ); |
| 1067 | + } |
| 1068 | + if ( tag.getAttribute( '_fck_mw_special' ) || tag.getAttribute( '_fck_mw_nowiki' ) || tag.getAttribute( '_fck_mw_includeonly' ) || tag.getAttribute( '_fck_mw_noinclude' ) || tag.getAttribute( '_fck_mw_onlyinclude' ) || tag.getAttribute( '_fck_mw_gallery' ) ){ //YC |
| 1069 | + contextMenu.AddSeparator(); |
| 1070 | + contextMenu.AddItem( 'MW_Special', FCKLang.wikiMnuSpecial || 'Special Tag Properties' ); |
| 1071 | + } |
| 1072 | + } |
| 1073 | + } |
| 1074 | +}); |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki/fckplugin.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 1075 | + native |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki |
___________________________________________________________________ |
Added: svn:ignore |
2 | 1076 | + .settings |
.project |
Index: trunk/extensions/FCKeditor/plugins/mediawiki_localfilelink/link_dialog.html |
— | — | @@ -0,0 +1,241 @@ |
| 2 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| 3 | +<!-- |
| 4 | + * FCKeditor - The text editor for Internet - http://www.fckeditor.net |
| 5 | + * Copyright (C) 2003-2007 Frederico Caldeira Knabben |
| 6 | + * |
| 7 | + * == BEGIN LICENSE == |
| 8 | + * |
| 9 | + * Licensed under the terms of any of the following licenses at your |
| 10 | + * choice: |
| 11 | + * |
| 12 | + * - GNU General Public License Version 2 or later (the "GPL") |
| 13 | + * http://www.gnu.org/licenses/gpl.html |
| 14 | + * |
| 15 | + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") |
| 16 | + * http://www.gnu.org/licenses/lgpl.html |
| 17 | + * |
| 18 | + * - Mozilla Public License Version 1.1 or later (the "MPL") |
| 19 | + * http://www.mozilla.org/MPL/MPL-1.1.html |
| 20 | + * |
| 21 | + * == END LICENSE == |
| 22 | + * |
| 23 | + * Link dialog window. |
| 24 | + * MODIFIED: by Doru Moisa, Optaros Inc., purpose: allow inserting links to local files |
| 25 | +--> |
| 26 | +<html> |
| 27 | +<head> |
| 28 | + <title>Link Properties</title> |
| 29 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 30 | + <meta name="robots" content="noindex, nofollow" /> |
| 31 | + <script type="text/javascript"> |
| 32 | + |
| 33 | +var oEditor = window.parent.InnerDialogLoaded() ; |
| 34 | +var FCK = oEditor.FCK ; |
| 35 | +var FCKLang = oEditor.FCKLang ; |
| 36 | +var FCKConfig = oEditor.FCKConfig ; |
| 37 | +var FCKRegexLib = oEditor.FCKRegexLib ; |
| 38 | +var FCKTools = oEditor.FCKTools ; |
| 39 | + |
| 40 | +document.write( '<script src="' + FCKConfig.BasePath + 'dialog/common/fck_dialog_common.js" type="text/javascript"><\/script>' ) ; |
| 41 | + |
| 42 | + </script> |
| 43 | + <script type="text/javascript"> |
| 44 | + |
| 45 | +// oLink: The actual selected link in the editor. |
| 46 | +var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ; |
| 47 | +if ( oLink ) |
| 48 | + FCK.Selection.SelectNode( oLink ) ; |
| 49 | + |
| 50 | +window.onload = function() |
| 51 | +{ |
| 52 | + // Translate the dialog box texts. |
| 53 | + oEditor.FCKLanguageManager.TranslatePage(document) ; |
| 54 | + |
| 55 | + // Load the selected link information (if any). |
| 56 | + LoadSelection() ; |
| 57 | + |
| 58 | + // Activate the "OK" button. |
| 59 | + window.parent.SetOkButton( true ) ; |
| 60 | + window.parent.SetAutoSize( true ) ; |
| 61 | +}; |
| 62 | + |
| 63 | +function LoadSelection() |
| 64 | +{ |
| 65 | + if ( !oLink ) return ; |
| 66 | + |
| 67 | + // Get the actual Link href. |
| 68 | + var sHRef = oLink.getAttribute( '_fcksavedurl' ) ; |
| 69 | + if ( sHRef == null ) |
| 70 | + sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; |
| 71 | + |
| 72 | + GetE('txtUrl').value = sHRef ; |
| 73 | +} |
| 74 | + |
| 75 | +var searchTimer ; |
| 76 | + |
| 77 | +//#### Called while the user types the URL. |
| 78 | +function OnUrlChange() |
| 79 | +{ |
| 80 | + var link = GetE('txtUrl').value.Trim() ; |
| 81 | + |
| 82 | + if ( searchTimer ) |
| 83 | + window.clearTimeout( searchTimer ) ; |
| 84 | + |
| 85 | + if ( link.StartsWith( '#' ) ) |
| 86 | + { |
| 87 | + SetSearchMessage( 'anchor link... no search for it' ) ; |
| 88 | + return ; |
| 89 | + } |
| 90 | + |
| 91 | + if ( link.StartsWith( 'mailto:' ) ) |
| 92 | + { |
| 93 | + SetSearchMessage( 'e-mail link... no search for it' ) ; |
| 94 | + return ; |
| 95 | + } |
| 96 | + |
| 97 | + if( /^\w+:\/\//.test( link ) ) |
| 98 | + { |
| 99 | + SetSearchMessage( 'external link... no search for it' ) ; |
| 100 | + return ; |
| 101 | + } |
| 102 | + |
| 103 | + if ( link.length < 3 ) |
| 104 | + { |
| 105 | + ClearSearch() ; |
| 106 | + |
| 107 | + if ( link.length == 0 ) |
| 108 | + SetSearchMessage( 'start typing in the above field' ) ; |
| 109 | + else |
| 110 | + SetSearchMessage( 'too short... type more' ) ; |
| 111 | + return ; |
| 112 | + } |
| 113 | + |
| 114 | + SetSearchMessage( 'stop typing to search' ) ; |
| 115 | + searchTimer = window.setTimeout( StartSearch, 500 ) ; |
| 116 | +} |
| 117 | + |
| 118 | +function StartSearch() |
| 119 | +{ |
| 120 | + var link = GetE('txtUrl').value.Trim() ; |
| 121 | + |
| 122 | + if ( link.length < 3 ) |
| 123 | + return ; |
| 124 | + |
| 125 | + SetSearchMessage( 'searching...' ) ; |
| 126 | + |
| 127 | + // Make an Ajax search for the pages. |
| 128 | + oEditor.window.parent.sajax_request_type = 'GET' ; |
| 129 | + oEditor.window.parent.sajax_do_call( 'wfSajaxSearchArticleFCKeditor', [link], LoadSearchResults ) ; |
| 130 | +} |
| 131 | + |
| 132 | +function LoadSearchResults( result ) |
| 133 | +{ |
| 134 | + var results = result.responseText.Trim().split( '\n' ) ; |
| 135 | + var select = GetE( 'xWikiResults' ) ; |
| 136 | + |
| 137 | + ClearSearch() ; |
| 138 | + |
| 139 | + if ( results.length == 0 || ( results.length == 1 && results[0].length == 0 ) ) |
| 140 | + { |
| 141 | + SetSearchMessage( 'no articles found' ) ; |
| 142 | + } |
| 143 | + else |
| 144 | + { |
| 145 | + if ( results.length == 1 ) |
| 146 | + SetSearchMessage( 'one article found' ) ; |
| 147 | + else |
| 148 | + SetSearchMessage( results.length + ' articles found' ) ; |
| 149 | + |
| 150 | + for ( var i = 0 ; i < results.length ; i++ ) |
| 151 | + FCKTools.AddSelectOption( select, results[i], results[i] ) ; |
| 152 | + } |
| 153 | +} |
| 154 | + |
| 155 | +function ClearSearch() |
| 156 | +{ |
| 157 | + var select = GetE( 'xWikiResults' ) ; |
| 158 | + |
| 159 | + while ( select.options.length > 0 ) |
| 160 | + select.remove( 0 ) |
| 161 | +} |
| 162 | + |
| 163 | +function SetSearchMessage( message ) |
| 164 | +{ |
| 165 | + GetE('xWikiSearchStatus').innerHTML = message ; |
| 166 | +} |
| 167 | + |
| 168 | +function SetUrl( url ) |
| 169 | +{ |
| 170 | + GetE('txtUrl').value = url ; |
| 171 | +} |
| 172 | + |
| 173 | +//#### The OK button was hit. |
| 174 | +function Ok() |
| 175 | +{ |
| 176 | + var sUri = GetE('txtUrl').value ; |
| 177 | + var sInnerHtml ; |
| 178 | + |
| 179 | + // If no link is selected, create a new one (it may result in more than one link creation - #220). |
| 180 | + var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri ) ; |
| 181 | + |
| 182 | + // If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26) |
| 183 | + var aHasSelection = ( aLinks.length > 0 ) ; |
| 184 | + if ( !aHasSelection ) |
| 185 | + { |
| 186 | + sInnerHtml = sUri; |
| 187 | + |
| 188 | + var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ; |
| 189 | + var asLinkPath = oLinkPathRegEx.exec( sUri ) ; |
| 190 | + if (asLinkPath != null) |
| 191 | + sInnerHtml = asLinkPath[1]; // use matched path |
| 192 | + |
| 193 | + // Create a new (empty) anchor. |
| 194 | + aLinks = [ oEditor.FCK.InsertElement( 'a' ) ] ; |
| 195 | + } |
| 196 | + |
| 197 | + oEditor.FCKUndo.SaveUndoStep() ; |
| 198 | + |
| 199 | + for ( var i = 0 ; i < aLinks.length ; i++ ) |
| 200 | + { |
| 201 | + oLink = aLinks[i] ; |
| 202 | + |
| 203 | + if ( aHasSelection ) |
| 204 | + sInnerHtml = oLink.innerHTML ; // Save the innerHTML (IE changes it if it is like an URL). |
| 205 | + |
| 206 | + oLink.href = sUri ; |
| 207 | + SetAttribute( oLink, '_fcksavedurl', sUri ) ; |
| 208 | + |
| 209 | + oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML |
| 210 | + |
| 211 | + } |
| 212 | + |
| 213 | + // Select the (first) link. |
| 214 | + oEditor.FCKSelection.SelectNode( aLinks[0] ); |
| 215 | + |
| 216 | + return true ; |
| 217 | +} |
| 218 | +function handleLocalURLChange(elem){ |
| 219 | + // file:///C:/Documents%20and%20Settings/ |
| 220 | + document.getElementById("txtUrl").value = "file:///" + elem.value.replace(/\\/g,'/').replace(/ /g,"%20"); |
| 221 | +} |
| 222 | + </script> |
| 223 | +</head> |
| 224 | +<body scroll="no" style="overflow: hidden"> |
| 225 | + <div id="divInfo"> |
| 226 | + <div id="divLinkTypeUrl"> |
| 227 | + <span>Type a link (URL):</span><br /> |
| 228 | + <input id="txtUrl" style="width: 100%" type="text" onkeyup="OnUrlChange(this.value);" /> |
| 229 | + <form onsubmit="return false;"> |
| 230 | + <span style="display: inline-block; padding-top: 10px; _padding-top: 4px;z-index: 4;">Link to local file:</span> |
| 231 | + <span style="position: relative;" align="right"> |
| 232 | + <input type="file" id="lfl_localURL" onchange="handleLocalURLChange(this)" style="z-index: 2; opacity:0; filter: alpha(opacity=0); -moz-opacity: 0; position: absolute; _left: -110px; cursor: pointer; _cursor: hand;" /> |
| 233 | + <input class="Button" type="button" value="BROWSE" style="position: absolute; left: 10px; top: -12px; _top: 0px;z-index: 1; cursor: pointer; _cursor: hand;" /> |
| 234 | + </span> |
| 235 | + </form> |
| 236 | + Automatic search results (<span id="xWikiSearchStatus">start typing in the above field</span>)<br /> |
| 237 | + <select id="xWikiResults" size="10" style="width: 100%; height:150px" onclick="SetUrl( this.value );"> |
| 238 | + </select> |
| 239 | + </div> |
| 240 | + </div> |
| 241 | +</body> |
| 242 | +</html> |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki_localfilelink/link_dialog.html |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 243 | + native |
Index: trunk/extensions/FCKeditor/plugins/mediawiki_localfilelink/fckplugin.js |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +// localFileLink MediaWiki Extention |
| 3 | +// Created by Doru Moisa, Optaros Inc. |
| 4 | +// Rwrite the link command to use our link_dialog.html. |
| 5 | +FCKCommands.RegisterCommand( 'Link', |
| 6 | + new FCKDialogCommand( 'Link', |
| 7 | + FCKLang.DlgLnkWindowTitle, |
| 8 | + FCKConfig.PluginsPath + 'mediawiki_localfilelink/link_dialog.html', |
| 9 | + 400, |
| 10 | + 250 ) |
| 11 | + ) ; |
Property changes on: trunk/extensions/FCKeditor/plugins/mediawiki_localfilelink/fckplugin.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 12 | + native |
Index: trunk/extensions/FCKeditor/FCKeditorSajax.body.php |
— | — | @@ -0,0 +1,303 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * AJAX functions used by FCKeditor extension |
| 5 | + */ |
| 6 | + |
| 7 | +function wfSajaxGetMathUrl( $term ) { |
| 8 | + $originalLink = MathRenderer::renderMath( $term ); |
| 9 | + |
| 10 | + if( false == strpos( $originalLink, 'src="' ) ) { |
| 11 | + return ''; |
| 12 | + } |
| 13 | + |
| 14 | + $srcPart = substr( $originalLink, strpos( $originalLink, "src=" ) + 5 ); |
| 15 | + $url = strtok( $srcPart, '"' ); |
| 16 | + |
| 17 | + return $url; |
| 18 | +} |
| 19 | + |
| 20 | +function wfSajaxGetImageUrl( $term ) { |
| 21 | + global $wgExtensionFunctions, $wgTitle; |
| 22 | + |
| 23 | + $options = new FCKeditorParserOptions(); |
| 24 | + $options->setTidy( true ); |
| 25 | + $parser = new FCKeditorParser(); |
| 26 | + |
| 27 | + if( in_array( 'wfCite', $wgExtensionFunctions ) ) { |
| 28 | + $parser->setHook( 'ref', array( $parser, 'ref' ) ); |
| 29 | + $parser->setHook( 'references', array( $parser, 'references' ) ); |
| 30 | + } |
| 31 | + $parser->setOutputType( OT_HTML ); |
| 32 | + $originalLink = $parser->parse( '[[File:' . $term . ']]', $wgTitle, $options )->getText(); |
| 33 | + if( false == strpos( $originalLink, 'src="' ) ) { |
| 34 | + return ''; |
| 35 | + } |
| 36 | + |
| 37 | + $srcPart = substr( $originalLink, strpos( $originalLink, "src=" )+ 5 ); |
| 38 | + $url = strtok( $srcPart, '"' ); |
| 39 | + |
| 40 | + return $url; |
| 41 | +} |
| 42 | + |
| 43 | +function wfSajaxSearchSpecialTagFCKeditor( $empty ) { |
| 44 | + global $wgParser, $wgRawHtml; |
| 45 | + |
| 46 | + $ret = "nowiki\nincludeonly\nonlyinclude\nnoinclude\ngallery\n"; |
| 47 | + if( $wgRawHtml ){ |
| 48 | + $ret.= "html\n"; |
| 49 | + } |
| 50 | + $wgParser->firstCallInit(); |
| 51 | + foreach( $wgParser->getTags() as $h ) { |
| 52 | + if( !in_array( $h, array( 'pre', 'math', 'ref', 'references' ) ) ) { |
| 53 | + $ret .= $h . "\n"; |
| 54 | + } |
| 55 | + } |
| 56 | + $arr = explode( "\n", $ret ); |
| 57 | + sort( $arr ); |
| 58 | + $ret = implode( "\n", $arr ); |
| 59 | + |
| 60 | + return $ret; |
| 61 | +} |
| 62 | + |
| 63 | +function wfSajaxSearchImageFCKeditor( $term ) { |
| 64 | + global $wgContLang; |
| 65 | + $limit = 10; |
| 66 | + |
| 67 | + $term = $wgContLang->checkTitleEncoding( $wgContLang->recodeInput( js_unescape( $term ) ) ); |
| 68 | + $term1 = str_replace( ' ', '_', $wgContLang->ucfirst( $term ) ); |
| 69 | + $term2 = str_replace( ' ', '_', $wgContLang->lc( $term ) ); |
| 70 | + $term3 = str_replace( ' ', '_', $wgContLang->uc( $term ) ); |
| 71 | + $term4 = str_replace( ' ', '_', $wgContLang->ucfirst( $term2 ) ); |
| 72 | + $term = $term1; |
| 73 | + |
| 74 | + if ( strlen( str_replace( '_', '', $term ) ) < 3 ) |
| 75 | + return ''; |
| 76 | + |
| 77 | + $dbr = wfGetDB( DB_SLAVE ); |
| 78 | + $res = $dbr->select( 'page', |
| 79 | + 'page_title', |
| 80 | + array( |
| 81 | + 'page_namespace' => NS_FILE, |
| 82 | + "page_title LIKE '%". $dbr->strencode( $term1 ) ."%'". |
| 83 | + "OR (page_title LIKE '%". $dbr->strencode( $term2 ) ."%') ". |
| 84 | + "OR (page_title LIKE '%". $dbr->strencode( $term3 ) ."%') ". |
| 85 | + "OR (page_title LIKE '%". $dbr->strencode( $term4 ) ."%') " |
| 86 | + ), |
| 87 | + __METHOD__, |
| 88 | + array( 'LIMIT' => $limit + 1 ) |
| 89 | + ); |
| 90 | + |
| 91 | + $ret = ''; |
| 92 | + $i = 0; |
| 93 | + while ( ( $row = $dbr->fetchObject( $res ) ) && ( ++$i <= $limit ) ) { |
| 94 | + $ret .= $row->page_title . "\n"; |
| 95 | + } |
| 96 | + |
| 97 | + $term = htmlspecialchars( $term ); |
| 98 | + |
| 99 | + return $ret; |
| 100 | +} |
| 101 | + |
| 102 | +function wfSajaxSearchArticleFCKeditor( $term ) { |
| 103 | + global $wgContLang, $wgExtraNamespaces; |
| 104 | + $limit = 10; |
| 105 | + $ns = NS_MAIN; |
| 106 | + |
| 107 | + $term = $wgContLang->checkTitleEncoding( $wgContLang->recodeInput( js_unescape( $term ) ) ); |
| 108 | + |
| 109 | + if( strpos( strtolower( $term ), 'category:' ) === 0 ) { |
| 110 | + $ns = NS_CATEGORY; |
| 111 | + $term = substr( $term, 9 ); |
| 112 | + $prefix = 'Category:'; |
| 113 | + } elseif( strpos( strtolower( $term ), ':category:' ) === 0 ) { |
| 114 | + $ns = NS_CATEGORY; |
| 115 | + $term = substr( $term, 10 ); |
| 116 | + $prefix = ':Category:'; |
| 117 | + } elseif( strpos( strtolower( $term ), 'media:' ) === 0 ) { |
| 118 | + $ns = NS_IMAGE; |
| 119 | + $term = substr( $term, 6 ); |
| 120 | + $prefix = 'Media:'; |
| 121 | + } elseif( strpos( strtolower( $term ), ':image:' ) === 0 ) { |
| 122 | + $ns = NS_IMAGE; |
| 123 | + $term = substr( strtolower( $term ), 7 ); |
| 124 | + $prefix = ':Image:'; |
| 125 | + } elseif( strpos( $term, ':' ) && is_array( $wgExtraNamespaces ) ) { |
| 126 | + $pos = strpos( $term, ':' ); |
| 127 | + $find_ns = array_search( substr( $term, 0, $pos ), $wgExtraNamespaces ); |
| 128 | + if( $find_ns ) { |
| 129 | + $ns = $find_ns; |
| 130 | + $prefix = substr( $term, 0, $pos + 1 ); |
| 131 | + $term = substr( $term, $pos + 1 ); |
| 132 | + } |
| 133 | + } |
| 134 | + |
| 135 | + $term1 = str_replace( ' ', '_', $wgContLang->ucfirst( $term ) ); |
| 136 | + $term2 = str_replace( ' ', '_', $wgContLang->lc( $term ) ); |
| 137 | + $term3 = str_replace( ' ', '_', $wgContLang->uc( $term ) ); |
| 138 | + $term4 = str_replace( ' ', '_', $wgContLang->ucfirst( $term2 ) ); |
| 139 | + $term = $term1; |
| 140 | + |
| 141 | + if ( strlen( str_replace( '_', '', $term ) ) < 3 ) { |
| 142 | + return ''; |
| 143 | + } |
| 144 | + |
| 145 | + $dbr = wfGetDB( DB_SLAVE ); |
| 146 | + $res = $dbr->select( 'page', |
| 147 | + 'page_title', |
| 148 | + array( |
| 149 | + 'page_namespace' => $ns, |
| 150 | + "page_title LIKE '%". $dbr->strencode( $term1 ) ."%' ". |
| 151 | + "OR (page_title LIKE '%". $dbr->strencode( $term2 ) ."%') ". |
| 152 | + "OR (page_title LIKE '%". $dbr->strencode( $term3 ) ."%') ". |
| 153 | + "OR (page_title LIKE '%". $dbr->strencode( $term4 ) ."%') " |
| 154 | + ), |
| 155 | + __METHOD__, |
| 156 | + array( 'LIMIT' => $limit + 1 ) |
| 157 | + ); |
| 158 | + |
| 159 | + $ret = ''; |
| 160 | + $i = 0; |
| 161 | + while ( ( $row = $dbr->fetchObject( $res ) ) && ( ++$i <= $limit ) ) { |
| 162 | + if( isset( $prefix ) && !is_null( $prefix ) ) { |
| 163 | + $ret .= $prefix; |
| 164 | + } |
| 165 | + $ret .= $row->page_title . "\n"; |
| 166 | + } |
| 167 | + |
| 168 | + $term = htmlspecialchars( $term ); |
| 169 | + |
| 170 | + return $ret; |
| 171 | +} |
| 172 | + |
| 173 | +function wfSajaxSearchCategoryFCKeditor(){ |
| 174 | + $ns = NS_CATEGORY; |
| 175 | + $dbr = wfGetDB( DB_SLAVE ); |
| 176 | + /** @todo FIXME: should use Database class */ |
| 177 | + $m_sql = "SELECT tmpSelectCat1.cl_to AS title FROM ".$dbr->tableName('categorylinks')." AS tmpSelectCat1 ". |
| 178 | + "LEFT JOIN ".$dbr->tableName('page')." AS tmpSelectCatPage ON ( tmpSelectCat1.cl_to = tmpSelectCatPage.page_title ". |
| 179 | + "AND tmpSelectCatPage.page_namespace =$ns ) ". |
| 180 | + "LEFT JOIN ".$dbr->tableName('categorylinks')." AS tmpSelectCat2 ON tmpSelectCatPage.page_id = tmpSelectCat2.cl_from ". |
| 181 | + "WHERE tmpSelectCat2.cl_from IS NULL GROUP BY tmpSelectCat1.cl_to"; |
| 182 | + |
| 183 | + $res = $dbr->query( $m_sql, __METHOD__ ); |
| 184 | + |
| 185 | + $ret = ''; |
| 186 | + $i = 0; |
| 187 | + while ( ( $row = $dbr->fetchObject( $res ) ) ) { |
| 188 | + $ret .= $row->title . "\n"; |
| 189 | + $sub = explode( "\n", wfSajaxSearchCategoryChildrenFCKeditor( $row->title ) ); |
| 190 | + foreach( $sub as $subrow ) |
| 191 | + if( strlen( $subrow ) > 0 ) |
| 192 | + $ret.= ' ' . $subrow . "\n"; |
| 193 | + } |
| 194 | + |
| 195 | + return $ret; |
| 196 | +} |
| 197 | + |
| 198 | +function wfSajaxSearchCategoryChildrenFCKeditor( $m_root ){ |
| 199 | + $limit = 50; |
| 200 | + $ns = NS_CATEGORY; |
| 201 | + $dbr = wfGetDB( DB_SLAVE ); |
| 202 | + /// @todo FIXME: should use Database class |
| 203 | + $sql = "SELECT tmpSelectCatPage.page_title AS title FROM ".$dbr->tableName('categorylinks')." AS tmpSelectCat ". |
| 204 | + "LEFT JOIN ".$dbr->tableName('page')." AS tmpSelectCatPage ON tmpSelectCat.cl_from = tmpSelectCatPage.page_id ". |
| 205 | + "WHERE tmpSelectCat.cl_to LIKE ".$dbr->addQuotes($m_root)." AND tmpSelectCatPage.page_namespace = $ns"; |
| 206 | + |
| 207 | + $res = $dbr->query( $sql, __METHOD__ ); |
| 208 | + $ret = ''; |
| 209 | + $i = 0; |
| 210 | + while ( ( $row = $dbr->fetchObject( $res ) ) ) { |
| 211 | + $ret .= $row->title . "\n"; |
| 212 | + $sub = explode( "\n", wfSajaxSearchCategoryChildrenFCKeditor( $row->title ) ); |
| 213 | + foreach( $sub as $subrow ) |
| 214 | + if( strlen( $subrow ) > 0 ) |
| 215 | + $ret.= ' ' . $subrow . "\n"; |
| 216 | + } |
| 217 | + |
| 218 | + return $ret; |
| 219 | +} |
| 220 | + |
| 221 | +function wfSajaxSearchTemplateFCKeditor( $empty ) { |
| 222 | + $dbr = wfGetDB( DB_SLAVE ); |
| 223 | + $res = $dbr->select( 'page', |
| 224 | + 'page_title', |
| 225 | + array( 'page_namespace' => NS_TEMPLATE ), |
| 226 | + __METHOD__, |
| 227 | + array( 'ORDER BY' => 'page_title' ) |
| 228 | + ); |
| 229 | + |
| 230 | + $ret = ''; |
| 231 | + while ( $row = $dbr->fetchObject( $res ) ) { |
| 232 | + $ret .= $row->page_title . "\n"; |
| 233 | + } |
| 234 | + |
| 235 | + return $ret; |
| 236 | +} |
| 237 | + |
| 238 | +function wfSajaxWikiToHTML( $wiki ) { |
| 239 | + global $wgTitle; |
| 240 | + |
| 241 | + $options = new FCKeditorParserOptions(); |
| 242 | + $options->setTidy( true ); |
| 243 | + $parser = new FCKeditorParser(); |
| 244 | + $parser->setOutputType( OT_HTML ); |
| 245 | + |
| 246 | + wfSajaxToggleFCKeditor( 'show' ); // FCKeditor was switched to visible |
| 247 | + return str_replace( '<!-- Tidy found serious XHTML errors -->', '', $parser->parse( $wiki, $wgTitle, $options )->getText() ); |
| 248 | +} |
| 249 | + |
| 250 | +function wfSajaxToggleFCKeditor( $data ) { |
| 251 | + if( $data == 'show' ){ |
| 252 | + $_SESSION['showMyFCKeditor'] = RTE_VISIBLE; // visible last time |
| 253 | + } else { |
| 254 | + $_SESSION['showMyFCKeditor'] = 0; // invisible |
| 255 | + } |
| 256 | + return 'SUCCESS'; |
| 257 | +} |
| 258 | + |
| 259 | +/** |
| 260 | + * Function converts an Javascript escaped string back into a string with |
| 261 | + * specified charset (default is UTF-8). |
| 262 | + * Modified function from http://pure-essence.net/stuff/code/utf8RawUrlDecode.phps |
| 263 | + * |
| 264 | + * @param $source String escaped with Javascript's escape() function |
| 265 | + * @param $iconv_to String destination character set will be used as second parameter |
| 266 | + * in the iconv function. Default is UTF-8. |
| 267 | + * @return string |
| 268 | + */ |
| 269 | +function js_unescape( $source, $iconv_to = 'UTF-8' ) { |
| 270 | + $decodedStr = ''; |
| 271 | + $pos = 0; |
| 272 | + $len = strlen ( $source ); |
| 273 | + |
| 274 | + while ( $pos < $len ) { |
| 275 | + $charAt = substr ( $source, $pos, 1 ); |
| 276 | + if ( $charAt == '%' ) { |
| 277 | + $pos++; |
| 278 | + $charAt = substr ( $source, $pos, 1 ); |
| 279 | + |
| 280 | + if ( $charAt == 'u' ) { |
| 281 | + // we got a unicode character |
| 282 | + $pos++; |
| 283 | + $unicodeHexVal = substr ( $source, $pos, 4 ); |
| 284 | + $unicode = hexdec ( $unicodeHexVal ); |
| 285 | + $decodedStr .= codepointToUtf8( $unicode ); |
| 286 | + $pos += 4; |
| 287 | + } else { |
| 288 | + // we have an escaped ascii character |
| 289 | + $hexVal = substr ( $source, $pos, 2 ); |
| 290 | + $decodedStr .= chr ( hexdec ( $hexVal ) ); |
| 291 | + $pos += 2; |
| 292 | + } |
| 293 | + } else { |
| 294 | + $decodedStr .= $charAt; |
| 295 | + $pos++; |
| 296 | + } |
| 297 | + } |
| 298 | + |
| 299 | + if ( $iconv_to != "UTF-8" ) { |
| 300 | + $decodedStr = iconv( "utf-8", $iconv_to, $decodedStr ); |
| 301 | + } |
| 302 | + |
| 303 | + return $decodedStr; |
| 304 | +} |
Property changes on: trunk/extensions/FCKeditor/FCKeditorSajax.body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 305 | + native |
Index: trunk/extensions/FCKeditor/FCKeditorParserOptions.body.php |
— | — | @@ -0,0 +1,13 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class FCKeditorParserOptions extends ParserOptions { |
| 5 | + function getNumberHeadings() { return false; } |
| 6 | + function getEditSection() { return false; } |
| 7 | + |
| 8 | + function getSkin( $title = null ) { |
| 9 | + if ( !isset( $this->mSkin ) ) { |
| 10 | + $this->mSkin = new FCKeditorSkin( $this->mUser->getSkin( $title ) ); |
| 11 | + } |
| 12 | + return $this->mSkin; |
| 13 | + } |
| 14 | +} |
Property changes on: trunk/extensions/FCKeditor/FCKeditorParserOptions.body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 15 | + native |
Index: trunk/extensions/FCKeditor/css/user.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/user.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 16 | + image/gif |
Index: trunk/extensions/FCKeditor/css/audio.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/audio.png |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 17 | + image/png |
Index: trunk/extensions/FCKeditor/css/required.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/required.gif |
___________________________________________________________________ |
Added: svn:mime-type |
4 | 18 | + image/gif |
Index: trunk/extensions/FCKeditor/css/wiki.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/wiki.png |
___________________________________________________________________ |
Added: svn:mime-type |
5 | 19 | + image/png |
Index: trunk/extensions/FCKeditor/css/video.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/video.png |
___________________________________________________________________ |
Added: svn:mime-type |
6 | 20 | + image/png |
Index: trunk/extensions/FCKeditor/css/headbg.jpg |
Cannot display: file marked as a binary type. |
svn:mime-type = image/jpeg |
Property changes on: trunk/extensions/FCKeditor/css/headbg.jpg |
___________________________________________________________________ |
Added: svn:mime-type |
7 | 21 | + image/jpeg |
Index: trunk/extensions/FCKeditor/css/bullet.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/bullet.gif |
___________________________________________________________________ |
Added: svn:mime-type |
8 | 22 | + image/gif |
Index: trunk/extensions/FCKeditor/css/file_icon.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/file_icon.gif |
___________________________________________________________________ |
Added: svn:mime-type |
9 | 23 | + image/gif |
Index: trunk/extensions/FCKeditor/css/mail_icon.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/mail_icon.gif |
___________________________________________________________________ |
Added: svn:mime-type |
10 | 24 | + image/gif |
Index: trunk/extensions/FCKeditor/css/fckeditor-rtl.css |
— | — | @@ -0,0 +1,232 @@ |
| 2 | +/* |
| 3 | +Right-to-left fixes for MonoBook. |
| 4 | +Places sidebar on right, tweaks various alignment issues. |
| 5 | + |
| 6 | +Works mostly ok nicely on Safari 1.2.1; fine in Mozilla. |
| 7 | + |
| 8 | +Safari bugs (1.2.1): |
| 9 | +* Tabs are still appearing in left-to-right order. (Try after localizing) |
| 10 | + |
| 11 | +Opera bugs (7.23 linux): |
| 12 | +* Some bits of ltr text (sidebar box titles) have forward and backward versions overlapping each other |
| 13 | + |
| 14 | +IE/mac bugs: |
| 15 | +* The thing barfs on Hebrew and Arabic anyway, so no point testing. |
| 16 | + |
| 17 | +Missing features due to lack of support: |
| 18 | +* external link icons |
| 19 | + |
| 20 | +To test: |
| 21 | +* Opera6 |
| 22 | +* IE 5.0 |
| 23 | +* etc |
| 24 | + |
| 25 | +*/ |
| 26 | +body { |
| 27 | + direction: rtl; |
| 28 | + unicode-bidi: embed; |
| 29 | +} |
| 30 | +#column-content { |
| 31 | + margin: 0 -12.2em 0 0; |
| 32 | + float: left; |
| 33 | +} |
| 34 | +#column-content #content{ |
| 35 | + margin-left: 0; |
| 36 | + margin-right: 12.2em; |
| 37 | + border-right: 1px solid #aaaaaa; |
| 38 | + border-left: none; |
| 39 | +} |
| 40 | +html > body .portlet { |
| 41 | + float: right; |
| 42 | + clear: right; |
| 43 | +} |
| 44 | +.editsection { |
| 45 | + float: left; |
| 46 | + margin-right: 5px; |
| 47 | + margin-left: 0; /* bug 9122: undo default LTR */ |
| 48 | +} |
| 49 | +/* recover IEMac (might be fine with the float, but usually it's close to IE */ |
| 50 | +*>body .portlet { |
| 51 | + float: none; |
| 52 | + clear: none; |
| 53 | +} |
| 54 | +.pBody { |
| 55 | + padding-right: 0.8em; |
| 56 | + padding-left: 0.5em; |
| 57 | +} |
| 58 | + |
| 59 | +/* Fix alignment */ |
| 60 | +.documentByLine, |
| 61 | +.portletDetails, |
| 62 | +.portletMore, |
| 63 | +#p-personal { |
| 64 | + text-align: left; |
| 65 | +} |
| 66 | + |
| 67 | +div div.thumbcaption { |
| 68 | + text-align: right; |
| 69 | +} |
| 70 | + |
| 71 | +div.magnify, |
| 72 | +#p-logo { |
| 73 | + left: auto; |
| 74 | + right: 0; |
| 75 | +} |
| 76 | +#p-personal { |
| 77 | + left: auto; |
| 78 | + right: 0; |
| 79 | +} |
| 80 | + |
| 81 | +#p-cactions { |
| 82 | + left: auto; |
| 83 | + right: 11.5em; |
| 84 | + padding-left: 0; |
| 85 | + padding-right: 1em; |
| 86 | +} |
| 87 | +#p-cactions li { |
| 88 | + margin-left: 0.3em; |
| 89 | + margin-right: 0; |
| 90 | + float: right; |
| 91 | +} |
| 92 | +* html #p-cactions li a { |
| 93 | + display: block; |
| 94 | + padding-bottom: 0; |
| 95 | +} |
| 96 | +* html #p-cactions li a:hover { |
| 97 | + padding-bottom: 0.2em; |
| 98 | +} |
| 99 | +/* offsets to distinguish the tab groups */ |
| 100 | +li#ca-talk { |
| 101 | + margin-right: auto; |
| 102 | + margin-left: 1.6em; |
| 103 | +} |
| 104 | +li#ca-watch,li#ca-unwatch { |
| 105 | + margin-right: 1.6em !important; |
| 106 | +} |
| 107 | + |
| 108 | +/* Fix margins for non-css2 browsers */ |
| 109 | +/* top right bottom left */ |
| 110 | + |
| 111 | +ul { |
| 112 | + margin-left: 0; |
| 113 | + margin-right: 1.5em; |
| 114 | +} |
| 115 | +ol { |
| 116 | + margin-left: 0; |
| 117 | + margin-right: 2.4em; |
| 118 | +} |
| 119 | +dd { |
| 120 | + margin-left: 0; |
| 121 | + margin-right: 1.6em; |
| 122 | +} |
| 123 | +#contentSub { |
| 124 | + margin-right: 1em; |
| 125 | + margin-left: 0; |
| 126 | +} |
| 127 | +.tocindent { |
| 128 | + margin-left: 0; |
| 129 | + margin-right: 2em; |
| 130 | +} |
| 131 | +div.tright, div.floatright, table.floatright { |
| 132 | + clear: none; |
| 133 | +} |
| 134 | +div.tleft, div.floatleft, table.floatleft { |
| 135 | + clear: left; |
| 136 | +} |
| 137 | +#p-personal li { |
| 138 | + margin-left: 0; |
| 139 | + margin-right: 1em; |
| 140 | +} |
| 141 | + |
| 142 | +li#ca-talk, |
| 143 | +li#ca-watch { |
| 144 | + margin-right: auto; |
| 145 | + margin-left: 1.6em; |
| 146 | +} |
| 147 | + |
| 148 | +#p-personal li { |
| 149 | + float: left; |
| 150 | +} |
| 151 | +/* Fix link icons */ |
| 152 | +.external { |
| 153 | + padding: 0 !important; |
| 154 | + background: none !important; |
| 155 | +} |
| 156 | +#footer { |
| 157 | + clear: both; |
| 158 | +} |
| 159 | +* html #footer { |
| 160 | + margin-left: 0; |
| 161 | + margin-right: 13.6em; |
| 162 | + border-left: 0; |
| 163 | + border-right: 1px solid #fabd23; |
| 164 | +} |
| 165 | +* html #column-content { |
| 166 | + float: none; |
| 167 | + margin-left: 0; |
| 168 | + margin-right: 0; |
| 169 | +} |
| 170 | +* html #column-content #content { |
| 171 | + margin-left: 0; |
| 172 | + margin-top: 3em; |
| 173 | +} |
| 174 | +* html #column-one { right: 0; } |
| 175 | + |
| 176 | +/* js pref toc */ |
| 177 | + |
| 178 | +#preftoc { |
| 179 | + margin-right: 1em; |
| 180 | +} |
| 181 | + |
| 182 | +.errorbox, .successbox, #preftoc li, .prefsection fieldset { |
| 183 | + float: right; |
| 184 | +} |
| 185 | + |
| 186 | +.prefsection { |
| 187 | + padding-right: 2em; |
| 188 | +} |
| 189 | + |
| 190 | +/* workaround for moz bug, displayed bullets on left side */ |
| 191 | + |
| 192 | +#toc ul { |
| 193 | + text-align: right; |
| 194 | +} |
| 195 | + |
| 196 | +#toc ul ul { |
| 197 | + margin: 0 2em 0 0; |
| 198 | +} |
| 199 | + |
| 200 | +input#wpSave, input#wpDiff { |
| 201 | + margin-right: 0; |
| 202 | + margin-left: .33em; |
| 203 | +} |
| 204 | + |
| 205 | +#userlogin { |
| 206 | + float: right; |
| 207 | + margin: 0 0 1em 3em; |
| 208 | +} |
| 209 | +/* Convenience links to edit block and delete reasons */ |
| 210 | +p.mw-ipb-conveniencelinks, p.mw-filedelete-editreasons, p.mw-delete-editreasons { |
| 211 | + float: left; |
| 212 | +} |
| 213 | + |
| 214 | +.toggle { |
| 215 | + margin-left: 0em; |
| 216 | + margin-right: 2em; |
| 217 | +} |
| 218 | +table.filehistory th { |
| 219 | + text-align: right; |
| 220 | +} |
| 221 | + |
| 222 | +/** |
| 223 | + * Lists: |
| 224 | + * The following lines don't have a visible effect on non-Gecko browsers |
| 225 | + * They fix a problem ith Gecko browsers rendering lists to the right of |
| 226 | + * left-floated objects in an RTL layout. |
| 227 | + */ |
| 228 | +html > body div#bodyContent ul { |
| 229 | + display: table; |
| 230 | +} |
| 231 | +html > body div#bodyContent ul#filetoc { |
| 232 | + display: block; |
| 233 | +} |
\ No newline at end of file |
Property changes on: trunk/extensions/FCKeditor/css/fckeditor-rtl.css |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 234 | + native |
Index: trunk/extensions/FCKeditor/css/document.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/document.png |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 235 | + image/png |
Index: trunk/extensions/FCKeditor/css/fckeditor.css |
— | — | @@ -0,0 +1,1656 @@ |
| 2 | +/* |
| 3 | +** MediaWiki 'monobook' style sheet for CSS2-capable browsers. |
| 4 | +** Copyright Gabriel Wicke - http://wikidev.net/ |
| 5 | +** License: GPL (http://www.gnu.org/copyleft/gpl.html) |
| 6 | +** |
| 7 | +** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John |
| 8 | +** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, |
| 9 | +** Michael Zeltner and Geir Bækholt) |
| 10 | +** All you guys rock :) |
| 11 | +*/ |
| 12 | + |
| 13 | +/** |
| 14 | + * Stylesheet for screen. All rules not marked media-specific are shared with |
| 15 | + * handheld.css and should be updated in tandem. The rules can't be in the |
| 16 | + * same file because old browsers like IE5 won't obey @media rules. |
| 17 | + * |
| 18 | + * Rules that are screen-specific are marked with commented-out @media rules |
| 19 | + * and indentation. |
| 20 | + */ |
| 21 | + |
| 22 | +/* @media screen { */ |
| 23 | + #column-one { |
| 24 | + padding-top: 160px; |
| 25 | + } |
| 26 | +/* } */ |
| 27 | +/* the left column width is specified in class .portlet */ |
| 28 | + |
| 29 | +/* Font size: |
| 30 | +** We take advantage of keyword scaling- browsers won't go below 9px |
| 31 | +** More at http://www.w3.org/2003/07/30-font-size |
| 32 | +** http://style.cleverchimp.com/font_size_intervals/altintervals.html |
| 33 | +*/ |
| 34 | + |
| 35 | +body { |
| 36 | + color: black; |
| 37 | + margin: 0; |
| 38 | + padding: 0; |
| 39 | + font: 83% sans-serif; |
| 40 | + width: 100%; |
| 41 | + background: white; |
| 42 | + line-height: 1.5em; |
| 43 | +} |
| 44 | + |
| 45 | +/* scale back up to a sane default */ |
| 46 | +.visualClear { |
| 47 | + clear: both; |
| 48 | +} |
| 49 | + |
| 50 | +/* general styles */ |
| 51 | + |
| 52 | +table { |
| 53 | + font-size: 100%; |
| 54 | + color: black; |
| 55 | + /* we don't want the bottom borders of <h2>s to be visible through |
| 56 | + floated tables */ |
| 57 | + background-color: white; |
| 58 | + margin: 0 0 0 5px; |
| 59 | +} |
| 60 | +a { |
| 61 | + text-decoration: underline !important; |
| 62 | + color: #002bb8 !important; |
| 63 | + background: none; |
| 64 | +} |
| 65 | +a:visited { |
| 66 | + color: #002bb8 !important; |
| 67 | +} |
| 68 | +a:active { |
| 69 | + color: #002bb8 !important; |
| 70 | +} |
| 71 | +a:hover { |
| 72 | + text-decoration: underline; |
| 73 | +} |
| 74 | +a.stub { |
| 75 | + color: #772233; |
| 76 | +} |
| 77 | +a.new, #p-personal a.new { |
| 78 | + color: #ba0000; |
| 79 | +} |
| 80 | +a.new:visited, #p-personal a.new:visited { |
| 81 | + color: #a55858; |
| 82 | +} |
| 83 | + |
| 84 | +img { |
| 85 | + border: none; |
| 86 | + vertical-align: middle; |
| 87 | +} |
| 88 | +/* @media screen { */ |
| 89 | + p { |
| 90 | + margin: .4em 0 .5em 5px; |
| 91 | + line-height: 1.5em; |
| 92 | + } |
| 93 | +/* } */ |
| 94 | +p img { |
| 95 | + margin: 0; |
| 96 | +} |
| 97 | + |
| 98 | +hr { |
| 99 | + height: 1px; |
| 100 | + color: #aaa; |
| 101 | + background-color: #aaa; |
| 102 | + border: 0; |
| 103 | + margin: .2em 0 .2em 0; |
| 104 | +} |
| 105 | + |
| 106 | +h1, h2, h3, h4, h5, h6 { |
| 107 | + color: black; |
| 108 | + background: none; |
| 109 | + font-weight: normal; |
| 110 | + margin: 0 0 0 5px; |
| 111 | + padding-top: .5em; |
| 112 | + padding-bottom: .17em; |
| 113 | + border-bottom: 1px solid #aaa; |
| 114 | +} |
| 115 | +h1 { font-size: 188%; } |
| 116 | +h1 .editsection { font-size: 53%; } |
| 117 | +h2 { font-size: 150%; } |
| 118 | +h2 .editsection { font-size: 67%; } |
| 119 | +h3, h4, h5, h6 { |
| 120 | + border-bottom: none; |
| 121 | + font-weight: bold; |
| 122 | +} |
| 123 | +h3 { font-size: 132%; } |
| 124 | +h3 .editsection { font-size: 76%; font-weight: normal; } |
| 125 | +h4 { font-size: 116%; } |
| 126 | +h4 .editsection { font-size: 86%; font-weight: normal; } |
| 127 | +h5 { font-size: 100%; } |
| 128 | +h5 .editsection { font-weight: normal; } |
| 129 | +h6 { font-size: 80%; } |
| 130 | +h6 .editsection { font-size: 125%; font-weight: normal; } |
| 131 | + |
| 132 | +.editsection { |
| 133 | + float: right; |
| 134 | + margin-left: 5px; |
| 135 | +} |
| 136 | + |
| 137 | +ul { |
| 138 | + line-height: 1.5em; |
| 139 | + list-style-type: square; |
| 140 | + margin: .3em 0 0 1.5em; |
| 141 | + padding: 0; |
| 142 | + list-style-image: url(bullet.gif); |
| 143 | +} |
| 144 | +ol { |
| 145 | + line-height: 1.5em; |
| 146 | + margin: .3em 0 0 3.2em; |
| 147 | + padding: 0; |
| 148 | + list-style-image: none; |
| 149 | +} |
| 150 | +li { |
| 151 | + margin-bottom: .1em; |
| 152 | +} |
| 153 | +dt { |
| 154 | + font-weight: bold; |
| 155 | + margin-bottom: .1em; |
| 156 | +} |
| 157 | +dl { |
| 158 | + margin-top: .2em; |
| 159 | + margin-bottom: .5em; |
| 160 | +} |
| 161 | +dd { |
| 162 | + line-height: 1.5em; |
| 163 | + margin-left: 2em; |
| 164 | + margin-bottom: .1em; |
| 165 | +} |
| 166 | + |
| 167 | +fieldset { |
| 168 | + border: 1px solid #2f6fab; |
| 169 | + margin: 1em 0 1em 0; |
| 170 | + padding: 0 1em 1em; |
| 171 | + line-height: 1.5em; |
| 172 | +} |
| 173 | +legend { |
| 174 | + padding: .5em; |
| 175 | + font-size: 95%; |
| 176 | +} |
| 177 | +form { |
| 178 | + border: none; |
| 179 | + margin: 0; |
| 180 | +} |
| 181 | + |
| 182 | +textarea { |
| 183 | + width: 100%; |
| 184 | + padding: .1em; |
| 185 | +} |
| 186 | + |
| 187 | +input.historysubmit { |
| 188 | + padding: 0 .3em .3em .3em !important; |
| 189 | + font-size: 94%; |
| 190 | + cursor: pointer; |
| 191 | + height: 1.7em !important; |
| 192 | + margin-left: 1.6em; |
| 193 | +} |
| 194 | +select { |
| 195 | + vertical-align: top; |
| 196 | +} |
| 197 | +abbr, acronym, .explain { |
| 198 | + border-bottom: 1px dotted black; |
| 199 | + color: black; |
| 200 | + background: none; |
| 201 | + cursor: help; |
| 202 | +} |
| 203 | +q { |
| 204 | + font-family: Times, "Times New Roman", serif; |
| 205 | + font-style: italic; |
| 206 | +} |
| 207 | +/* disabled for now |
| 208 | +blockquote { |
| 209 | + font-family: Times, "Times New Roman", serif; |
| 210 | + font-style: italic; |
| 211 | +}*/ |
| 212 | +code { |
| 213 | + background-color: #f9f9f9; |
| 214 | +} |
| 215 | +pre { |
| 216 | + padding: 1em; |
| 217 | + border: 1px dashed #2f6fab; |
| 218 | + color: black; |
| 219 | + background-color: #f9f9f9; |
| 220 | + line-height: 1.1em; |
| 221 | +} |
| 222 | + |
| 223 | +/* |
| 224 | +** the main content area |
| 225 | +*/ |
| 226 | + |
| 227 | +/* @media screen { */ |
| 228 | + #siteSub { |
| 229 | + display: none; |
| 230 | + } |
| 231 | + #jump-to-nav { |
| 232 | + display: none; |
| 233 | + } |
| 234 | +/* } */ |
| 235 | + |
| 236 | +#contentSub, #contentSub2 { |
| 237 | + font-size: 84%; |
| 238 | + line-height: 1.2em; |
| 239 | + margin: 0 0 1.4em 1em; |
| 240 | + color: #7d7d7d; |
| 241 | + width: auto; |
| 242 | +} |
| 243 | +span.subpages { |
| 244 | + display: block; |
| 245 | +} |
| 246 | + |
| 247 | +/* Some space under the headers in the content area */ |
| 248 | +h1, h2 { |
| 249 | + margin-bottom: .6em; |
| 250 | +} |
| 251 | +h3, h4, h5 { |
| 252 | + margin-bottom: .3em; |
| 253 | +} |
| 254 | +.firstHeading { |
| 255 | + margin-bottom: .1em; |
| 256 | +} |
| 257 | + |
| 258 | +/* user notification thing */ |
| 259 | +.usermessage { |
| 260 | + background-color: #ffce7b; |
| 261 | + border: 1px solid #ffa500; |
| 262 | + color: black; |
| 263 | + font-weight: bold; |
| 264 | + margin: 2em 0 1em; |
| 265 | + padding: .5em 1em; |
| 266 | + vertical-align: middle; |
| 267 | +} |
| 268 | +#siteNotice { |
| 269 | + text-align: center; |
| 270 | + font-size: 95%; |
| 271 | + padding: 0 .9em; |
| 272 | +} |
| 273 | +#siteNotice p { |
| 274 | + margin: 0; |
| 275 | + padding: 0; |
| 276 | +} |
| 277 | +.error { |
| 278 | + color: red; |
| 279 | + font-size: larger; |
| 280 | +} |
| 281 | +.errorbox, .successbox { |
| 282 | + font-size: larger; |
| 283 | + border: 2px solid; |
| 284 | + padding: .5em 1em; |
| 285 | + float: left; |
| 286 | + margin-bottom: 2em; |
| 287 | + color: #000; |
| 288 | +} |
| 289 | +.errorbox { |
| 290 | + border-color: red; |
| 291 | + background-color: #fff2f2; |
| 292 | +} |
| 293 | +.successbox { |
| 294 | + border-color: green; |
| 295 | + background-color: #dfd; |
| 296 | +} |
| 297 | +.errorbox h2, .successbox h2 { |
| 298 | + font-size: 1em; |
| 299 | + font-weight: bold; |
| 300 | + display: inline; |
| 301 | + margin: 0 .5em 0 0; |
| 302 | + border: none; |
| 303 | +} |
| 304 | + |
| 305 | +#catlinks { |
| 306 | + border: 1px solid #aaa; |
| 307 | + background-color: #f9f9f9; |
| 308 | + padding: 5px; |
| 309 | + margin-top: 1em; |
| 310 | + clear: both; |
| 311 | +} |
| 312 | +/* currently unused, intended to be used by a metadata box |
| 313 | +in the bottom-right corner of the content area */ |
| 314 | +.documentDescription { |
| 315 | + /* The summary text describing the document */ |
| 316 | + font-weight: bold; |
| 317 | + display: block; |
| 318 | + margin: 1em 0; |
| 319 | + line-height: 1.5em; |
| 320 | +} |
| 321 | +.documentByLine { |
| 322 | + text-align: right; |
| 323 | + font-size: 90%; |
| 324 | + clear: both; |
| 325 | + font-weight: normal; |
| 326 | + color: #76797c; |
| 327 | +} |
| 328 | + |
| 329 | +/* emulate center */ |
| 330 | +.center { |
| 331 | + width: 100%; |
| 332 | + text-align: center; |
| 333 | +} |
| 334 | +*.center * { |
| 335 | + margin-left: auto; |
| 336 | + margin-right: auto; |
| 337 | +} |
| 338 | +/* small for tables and similar */ |
| 339 | +.small, .small * { |
| 340 | + font-size: 94%; |
| 341 | +} |
| 342 | +table.small { |
| 343 | + font-size: 100%; |
| 344 | +} |
| 345 | + |
| 346 | +/* |
| 347 | +** content styles |
| 348 | +*/ |
| 349 | + |
| 350 | +#toc, |
| 351 | +.toc, |
| 352 | +.mw-warning { |
| 353 | + border: 1px solid #aaa; |
| 354 | + background-color: #f9f9f9; |
| 355 | + padding: 5px; |
| 356 | + font-size: 95%; |
| 357 | +} |
| 358 | +#toc h2, |
| 359 | +.toc h2 { |
| 360 | + display: inline; |
| 361 | + border: none; |
| 362 | + padding: 0; |
| 363 | + font-size: 100%; |
| 364 | + font-weight: bold; |
| 365 | +} |
| 366 | +#toc #toctitle, |
| 367 | +.toc #toctitle, |
| 368 | +#toc .toctitle, |
| 369 | +.toc .toctitle { |
| 370 | + text-align: center; |
| 371 | +} |
| 372 | +#toc ul, |
| 373 | +.toc ul { |
| 374 | + list-style-type: none; |
| 375 | + list-style-image: none; |
| 376 | + margin-left: 0; |
| 377 | + padding-left: 0; |
| 378 | + text-align: left; |
| 379 | +} |
| 380 | +#toc ul ul, |
| 381 | +.toc ul ul { |
| 382 | + margin: 0 0 0 2em; |
| 383 | +} |
| 384 | +#toc .toctoggle, |
| 385 | +.toc .toctoggle { |
| 386 | + font-size: 94%; |
| 387 | +} |
| 388 | + |
| 389 | +.mw-warning { |
| 390 | + margin-left: 50px; |
| 391 | + margin-right: 50px; |
| 392 | + text-align: center; |
| 393 | +} |
| 394 | + |
| 395 | +/* images */ |
| 396 | +div.floatright, table.floatright { |
| 397 | + clear: right; |
| 398 | + float: right; |
| 399 | + position: relative; |
| 400 | + margin: 0 0 .5em .5em; |
| 401 | + border: 0; |
| 402 | +/* |
| 403 | + border: .5em solid white; |
| 404 | + border-width: .5em 0 .8em 1.4em; |
| 405 | +*/ |
| 406 | +} |
| 407 | +div.floatright p { font-style: italic; } |
| 408 | +div.floatleft, table.floatleft { |
| 409 | + float: left; |
| 410 | + clear: left; |
| 411 | + position: relative; |
| 412 | + margin: 0 .5em .5em 0; |
| 413 | + border: 0; |
| 414 | +/* |
| 415 | + margin: .3em .5em .5em 0; |
| 416 | + border: .5em solid white; |
| 417 | + border-width: .5em 1.4em .8em 0; |
| 418 | +*/ |
| 419 | +} |
| 420 | +div.floatleft p { font-style: italic; } |
| 421 | +/* thumbnails */ |
| 422 | +div.thumb { |
| 423 | + margin-bottom: .5em; |
| 424 | + border-style: solid; |
| 425 | + border-color: white; |
| 426 | + width: auto; |
| 427 | +} |
| 428 | +div.thumbinner { |
| 429 | + border: 1px solid #ccc; |
| 430 | + padding: 3px !important; |
| 431 | + background-color: #f9f9f9; |
| 432 | + font-size: 94%; |
| 433 | + text-align: center; |
| 434 | + overflow: hidden; |
| 435 | +} |
| 436 | +html .thumbimage { |
| 437 | + border: 1px solid #ccc; |
| 438 | +} |
| 439 | +html .thumbcaption { |
| 440 | + border: none; |
| 441 | + text-align: left; |
| 442 | + line-height: 1.4em; |
| 443 | + padding: 3px !important; |
| 444 | + font-size: 94%; |
| 445 | +} |
| 446 | +div.magnify { |
| 447 | + float: right; |
| 448 | + border: none !important; |
| 449 | + background: none !important; |
| 450 | +} |
| 451 | +div.magnify a, div.magnify img { |
| 452 | + display: block; |
| 453 | + border: none !important; |
| 454 | + background: none !important; |
| 455 | +} |
| 456 | +div.tright { |
| 457 | + clear: right; |
| 458 | + float: right; |
| 459 | + border-width: .5em 0 .8em 1.4em; |
| 460 | +} |
| 461 | +div.tleft { |
| 462 | + float: left; |
| 463 | + clear: left; |
| 464 | + margin-right: .5em; |
| 465 | + border-width: .5em 1.4em .8em 0; |
| 466 | +} |
| 467 | + |
| 468 | +.hiddenStructure { |
| 469 | + display: none; |
| 470 | + speak: none; |
| 471 | +} |
| 472 | +img.tex { |
| 473 | + vertical-align: middle; |
| 474 | +} |
| 475 | +span.texhtml { |
| 476 | + font-family: serif; |
| 477 | +} |
| 478 | + |
| 479 | +/* Have a checkered background on images on the description pages and in galleries |
| 480 | + to make transparency visible |
| 481 | + |
| 482 | +#file img, .gallerybox .thumb img { |
| 483 | + background: url(Checker-16x16.png) repeat; |
| 484 | +} |
| 485 | +*/ |
| 486 | + |
| 487 | +/* |
| 488 | +** classes for special content elements like town boxes |
| 489 | +** intended to be referenced directly from the wiki src |
| 490 | +*/ |
| 491 | + |
| 492 | +/* |
| 493 | +** User styles |
| 494 | +*/ |
| 495 | +/* table standards */ |
| 496 | +table.rimage { |
| 497 | + float: right; |
| 498 | + position: relative; |
| 499 | + margin-left: 1em; |
| 500 | + margin-bottom: 1em; |
| 501 | + text-align: center; |
| 502 | +} |
| 503 | +.toccolours { |
| 504 | + border: 1px solid #aaa; |
| 505 | + background-color: #f9f9f9; |
| 506 | + padding: 5px; |
| 507 | + font-size: 95%; |
| 508 | +} |
| 509 | +div.townBox { |
| 510 | + position: relative; |
| 511 | + float: right; |
| 512 | + background: white; |
| 513 | + margin-left: 1em; |
| 514 | + border: 1px solid gray; |
| 515 | + padding: .3em; |
| 516 | + width: 200px; |
| 517 | + overflow: hidden; |
| 518 | + clear: right; |
| 519 | +} |
| 520 | +div.townBox dl { |
| 521 | + padding: 0; |
| 522 | + margin: 0 0 .3em; |
| 523 | + font-size: 96%; |
| 524 | +} |
| 525 | +div.townBox dl dt { |
| 526 | + background: none; |
| 527 | + margin: .4em 0 0; |
| 528 | +} |
| 529 | +div.townBox dl dd { |
| 530 | + margin: .1em 0 0 1.1em; |
| 531 | + background-color: #f3f3f3; |
| 532 | +} |
| 533 | + |
| 534 | +/* |
| 535 | +** edit views etc |
| 536 | +*/ |
| 537 | +.special li { |
| 538 | + line-height: 1.4em; |
| 539 | + margin: 0; |
| 540 | + padding: 0; |
| 541 | +} |
| 542 | + |
| 543 | +/* Page history styling */ |
| 544 | +/* the auto-generated edit comments */ |
| 545 | +.autocomment { |
| 546 | + color: gray; |
| 547 | +} |
| 548 | +#pagehistory span.user { |
| 549 | + margin-left: 1.4em; |
| 550 | + margin-right: .4em; |
| 551 | +} |
| 552 | +#pagehistory span.minor { |
| 553 | + font-weight: bold; |
| 554 | +} |
| 555 | +#pagehistory li { |
| 556 | + border: 1px solid white; |
| 557 | +} |
| 558 | +#pagehistory li.selected { |
| 559 | + background-color: #f9f9f9; |
| 560 | + border: 1px dashed #aaa; |
| 561 | +} |
| 562 | + |
| 563 | +/* |
| 564 | +** Diff rendering |
| 565 | +*/ |
| 566 | +table.diff, td.diff-otitle, td.diff-ntitle { |
| 567 | + background-color: white; |
| 568 | +} |
| 569 | +td.diff-addedline { |
| 570 | + background: #cfc; |
| 571 | + font-size: smaller; |
| 572 | +} |
| 573 | +td.diff-deletedline { |
| 574 | + background: #ffa; |
| 575 | + font-size: smaller; |
| 576 | +} |
| 577 | +td.diff-context { |
| 578 | + background: #eee; |
| 579 | + font-size: smaller; |
| 580 | +} |
| 581 | +.diffchange { |
| 582 | + color: red; |
| 583 | + font-weight: bold; |
| 584 | + text-decoration: none; |
| 585 | +} |
| 586 | + |
| 587 | +/* |
| 588 | +** keep the whitespace in front of the ^=, hides rule from konqueror |
| 589 | +** this is css3, the validator doesn't like it when validating as css2 |
| 590 | +*/ |
| 591 | + a.external, |
| 592 | + a[href ^="gopher://"] { |
| 593 | + background: url(external.png) center right no-repeat; |
| 594 | + padding-right: 13px; |
| 595 | +} |
| 596 | + a[href ^="https://"], |
| 597 | +.link-https { |
| 598 | + background: url(lock_icon.gif) center right no-repeat; |
| 599 | + padding-right: 16px; |
| 600 | +} |
| 601 | + a[href ^="mailto:"], |
| 602 | +.link-mailto { |
| 603 | + background: url(mail_icon.gif) center right no-repeat; |
| 604 | + padding-right: 18px; |
| 605 | +} |
| 606 | + a[href ^="news://"] { |
| 607 | + background: url(news_icon.png) center right no-repeat; |
| 608 | + padding-right: 18px; |
| 609 | +} |
| 610 | + a[href ^="ftp://"], |
| 611 | +.link-ftp { |
| 612 | + background: url(file_icon.gif) center right no-repeat; |
| 613 | + padding-right: 18px; |
| 614 | +} |
| 615 | + a[href ^="irc://"], |
| 616 | +.link-irc { |
| 617 | + background: url(discussionitem_icon.gif) center right no-repeat; |
| 618 | + padding-right: 18px; |
| 619 | +} |
| 620 | +a.external[href $=".ogg"], a.external[href $=".OGG"], |
| 621 | +a.external[href $=".mid"], a.external[href $=".MID"], |
| 622 | +a.external[href $=".midi"], a.external[href $=".MIDI"], |
| 623 | +a.external[href $=".mp3"], a.external[href $=".MP3"], |
| 624 | +a.external[href $=".wav"], a.external[href $=".WAV"], |
| 625 | +a.external[href $=".wma"], a.external[href $=".WMA"], |
| 626 | +.link-audio { |
| 627 | + background: url("audio.png") center right no-repeat; |
| 628 | + padding-right: 13px; |
| 629 | +} |
| 630 | +a.external[href $=".ogm"], a.external[href $=".OGM"], |
| 631 | +a.external[href $=".avi"], a.external[href $=".AVI"], |
| 632 | +a.external[href $=".mpeg"], a.external[href $=".MPEG"], |
| 633 | +a.external[href $=".mpg"], a.external[href $=".MPG"], |
| 634 | +.link-video { |
| 635 | + background: url("video.png") center right no-repeat; |
| 636 | + padding-right: 13px; |
| 637 | +} |
| 638 | +a.external[href $=".pdf"], a.external[href $=".PDF"], |
| 639 | +a.external[href *=".pdf#"], a.external[href *=".PDF#"], |
| 640 | +a.external[href *=".pdf?"], a.external[href *=".PDF?"], |
| 641 | +.link-document { |
| 642 | + background: url("document.png") center right no-repeat; |
| 643 | + padding-right: 12px; |
| 644 | +} |
| 645 | + |
| 646 | +/* disable interwiki styling */ |
| 647 | +a.extiw, |
| 648 | +a.extiw:active { |
| 649 | + color: #36b; |
| 650 | + background: none; |
| 651 | + padding: 0; |
| 652 | +} |
| 653 | +a.external { |
| 654 | + color: #36b; |
| 655 | +} |
| 656 | +/* this can be used in the content area to switch off |
| 657 | +special external link styling */ |
| 658 | +.plainlinks a { |
| 659 | + background: none !important; |
| 660 | + padding: 0 !important; |
| 661 | +} |
| 662 | +/* |
| 663 | +** Structural Elements |
| 664 | +*/ |
| 665 | + |
| 666 | +/* |
| 667 | +** general portlet styles (elements in the quickbar) |
| 668 | +*/ |
| 669 | +.portlet { |
| 670 | + border: none; |
| 671 | + margin: 0 0 .5em; |
| 672 | + padding: 0; |
| 673 | + float: none; |
| 674 | + width: 11.6em; |
| 675 | + overflow: hidden; |
| 676 | +} |
| 677 | +.portlet h4 { |
| 678 | + font-size: 95%; |
| 679 | + font-weight: normal; |
| 680 | + white-space: nowrap; |
| 681 | +} |
| 682 | +.portlet h5 { |
| 683 | + background: transparent; |
| 684 | + padding: 0 1em 0 .5em; |
| 685 | + display: inline; |
| 686 | + height: 1em; |
| 687 | + text-transform: lowercase; |
| 688 | + font-size: 91%; |
| 689 | + font-weight: normal; |
| 690 | + white-space: nowrap; |
| 691 | +} |
| 692 | +.portlet h6 { |
| 693 | + background: #ffae2e; |
| 694 | + border: 1px solid #2f6fab; |
| 695 | + border-style: solid solid none solid; |
| 696 | + padding: 0 1em 0 1em; |
| 697 | + text-transform: lowercase; |
| 698 | + display: block; |
| 699 | + font-size: 1em; |
| 700 | + height: 1.2em; |
| 701 | + font-weight: normal; |
| 702 | + white-space: nowrap; |
| 703 | +} |
| 704 | +.pBody { |
| 705 | + font-size: 95%; |
| 706 | + background-color: white; |
| 707 | + color: black; |
| 708 | + border-collapse: collapse; |
| 709 | + border: 1px solid #aaa; |
| 710 | + padding: 0 .8em .3em .5em; |
| 711 | +} |
| 712 | +.portlet h1, |
| 713 | +.portlet h2, |
| 714 | +.portlet h3, |
| 715 | +.portlet h4 { |
| 716 | + margin: 0; |
| 717 | + padding: 0; |
| 718 | +} |
| 719 | +.portlet ul { |
| 720 | + line-height: 1.5em; |
| 721 | + list-style-type: square; |
| 722 | + list-style-image: url(bullet.gif); |
| 723 | + font-size: 95%; |
| 724 | +} |
| 725 | +.portlet li { |
| 726 | + padding: 0; |
| 727 | + margin: 0; |
| 728 | +} |
| 729 | + |
| 730 | +/* |
| 731 | +** Logo properties |
| 732 | +*/ |
| 733 | + |
| 734 | +/* @media screen { */ |
| 735 | + #p-logo { |
| 736 | + top: 0; |
| 737 | + left: 0; |
| 738 | + position: absolute; /*needed to use z-index */ |
| 739 | + z-index: 3; |
| 740 | + height: 155px; |
| 741 | + width: 12em; |
| 742 | + overflow: visible; |
| 743 | + } |
| 744 | + #p-logo h5 { |
| 745 | + display: none; |
| 746 | + } |
| 747 | + #p-logo a, |
| 748 | + #p-logo a:hover { |
| 749 | + display: block; |
| 750 | + height: 155px; |
| 751 | + width: 12.2em; |
| 752 | + background-repeat: no-repeat; |
| 753 | + background-position: 35% 50% !important; |
| 754 | + text-decoration: none; |
| 755 | + } |
| 756 | +/* } */ |
| 757 | +/* |
| 758 | +** the navigation portlet |
| 759 | +*/ |
| 760 | + |
| 761 | +/* @media screen { */ |
| 762 | + #p-navigation { |
| 763 | + position: relative; |
| 764 | + z-index: 3; |
| 765 | + } |
| 766 | + #p-navigation a { |
| 767 | + display: block; |
| 768 | + } |
| 769 | + #p-navigation li.active a, #p-navigation li.active a:hover { |
| 770 | + display: inline; |
| 771 | + } |
| 772 | +/* } */ |
| 773 | + |
| 774 | +#p-navigation .pBody { |
| 775 | + padding-right: 0; |
| 776 | +} |
| 777 | + |
| 778 | +#p-navigation li.active a, #p-navigation li.active a:hover { |
| 779 | + text-decoration: none; |
| 780 | + font-weight: bold; |
| 781 | +} |
| 782 | + |
| 783 | + |
| 784 | +/* |
| 785 | +** Search portlet |
| 786 | +*/ |
| 787 | +/* @media screen { */ |
| 788 | + #p-search { |
| 789 | + position: relative; |
| 790 | + z-index: 3; |
| 791 | + } |
| 792 | +/* } */ |
| 793 | +input.searchButton { |
| 794 | + margin-top: 1px; |
| 795 | + font-size: 95%; |
| 796 | +} |
| 797 | +#searchGoButton { |
| 798 | + padding-left: .5em; |
| 799 | + padding-right: .5em; |
| 800 | + font-weight: bold; |
| 801 | +} |
| 802 | +#searchInput { |
| 803 | + width: 10.9em; |
| 804 | + margin: 0; |
| 805 | + font-size: 95%; |
| 806 | +} |
| 807 | +#p-search .pBody { |
| 808 | + padding: .5em .4em .4em .4em; |
| 809 | + text-align: center; |
| 810 | +} |
| 811 | + |
| 812 | +/* |
| 813 | +** the personal toolbar |
| 814 | +*/ |
| 815 | +/* @media screen { */ |
| 816 | + #p-personal { |
| 817 | + position: absolute; |
| 818 | + left: 0; |
| 819 | + top: 0; |
| 820 | + z-index: 0; |
| 821 | + } |
| 822 | + #p-personal { |
| 823 | + width: 100%; |
| 824 | + white-space: nowrap; |
| 825 | + padding: 0; |
| 826 | + margin: 0; |
| 827 | + border: none; |
| 828 | + background: none; |
| 829 | + overflow: visible; |
| 830 | + line-height: 1.2em; |
| 831 | + } |
| 832 | + #p-personal h5 { |
| 833 | + display: none; |
| 834 | + } |
| 835 | + #p-personal .portlet, |
| 836 | + #p-personal .pBody { |
| 837 | + z-index: 0; |
| 838 | + padding: 0; |
| 839 | + margin: 0; |
| 840 | + border: none; |
| 841 | + overflow: visible; |
| 842 | + background: none; |
| 843 | + } |
| 844 | +/* this is the ul contained in the portlet */ |
| 845 | + #p-personal ul { |
| 846 | + border: none; |
| 847 | + line-height: 1.4em; |
| 848 | + color: #2f6fab; |
| 849 | + padding: 0 2em 0 3em; |
| 850 | + margin: 0; |
| 851 | + text-align: right; |
| 852 | + list-style: none; |
| 853 | + z-index: 0; |
| 854 | + background: none; |
| 855 | + cursor: default; |
| 856 | + } |
| 857 | + #p-personal li { |
| 858 | + z-index: 0; |
| 859 | + border: none; |
| 860 | + padding: 0; |
| 861 | + display: inline; |
| 862 | + color: #2f6fab; |
| 863 | + margin-left: 1em; |
| 864 | + line-height: 1.2em; |
| 865 | + background: none; |
| 866 | + } |
| 867 | + #p-personal li a { |
| 868 | + text-decoration: none; |
| 869 | + color: #005896; |
| 870 | + padding-bottom: .2em; |
| 871 | + background: none; |
| 872 | + } |
| 873 | + #p-personal li a:hover { |
| 874 | + background-color: white; |
| 875 | + padding-bottom: .2em; |
| 876 | + text-decoration: none; |
| 877 | + } |
| 878 | + #p-personal li.active a:hover { |
| 879 | + background-color: transparent; |
| 880 | + } |
| 881 | + /* the icon in front of the user name, single quotes |
| 882 | + in bg url to hide it from iemac */ |
| 883 | + li#pt-userpage, |
| 884 | + li#pt-anonuserpage, |
| 885 | + li#pt-login { |
| 886 | + background: url(user.gif) top left no-repeat; |
| 887 | + padding-left: 20px; |
| 888 | + text-transform: none; |
| 889 | + } |
| 890 | +/* } */ |
| 891 | +#p-personal ul { |
| 892 | + text-transform: lowercase; |
| 893 | +} |
| 894 | +#p-personal li.active { |
| 895 | + font-weight: bold; |
| 896 | +} |
| 897 | +/* |
| 898 | +** the page-related actions- page/talk, edit etc |
| 899 | +*/ |
| 900 | +/* @media screen { */ |
| 901 | + #p-cactions { |
| 902 | + position: absolute; |
| 903 | + top: 1.3em; |
| 904 | + left: 11.5em; |
| 905 | + margin: 0; |
| 906 | + white-space: nowrap; |
| 907 | + width: 76%; |
| 908 | + line-height: 1.1em; |
| 909 | + overflow: visible; |
| 910 | + background: none; |
| 911 | + border-collapse: collapse; |
| 912 | + padding-left: 1em; |
| 913 | + list-style: none; |
| 914 | + font-size: 95%; |
| 915 | + } |
| 916 | + #p-cactions ul { |
| 917 | + list-style: none; |
| 918 | + } |
| 919 | + #p-cactions li { |
| 920 | + display: inline; |
| 921 | + border: 1px solid #aaa; |
| 922 | + border-bottom: none; |
| 923 | + padding: 0 0 .1em 0; |
| 924 | + margin: 0 .3em 0 0; |
| 925 | + overflow: visible; |
| 926 | + background: white; |
| 927 | + } |
| 928 | + #p-cactions li.selected { |
| 929 | + border-color: #fabd23; |
| 930 | + padding: 0 0 .2em 0; |
| 931 | + font-weight: bold; |
| 932 | + } |
| 933 | + #p-cactions li a { |
| 934 | + background-color: #fbfbfb; |
| 935 | + color: #002bb8; |
| 936 | + border: none; |
| 937 | + padding: 0 .8em .3em; |
| 938 | + position: relative; |
| 939 | + z-index: 0; |
| 940 | + margin: 0; |
| 941 | + text-decoration: none; |
| 942 | + } |
| 943 | + #p-cactions li.selected a { |
| 944 | + z-index: 3; |
| 945 | + padding: 0 1em .2em!important; |
| 946 | + background-color: white; |
| 947 | + } |
| 948 | + #p-cactions .new a { |
| 949 | + color: #ba0000; |
| 950 | + } |
| 951 | + #p-cactions li a:hover { |
| 952 | + z-index: 3; |
| 953 | + text-decoration: none; |
| 954 | + background-color: white; |
| 955 | + } |
| 956 | + #p-cactions h5 { |
| 957 | + display: none; |
| 958 | + } |
| 959 | + #p-cactions li.istalk { |
| 960 | + margin-right: 0; |
| 961 | + } |
| 962 | + #p-cactions li.istalk a { |
| 963 | + padding-right: .5em; |
| 964 | + } |
| 965 | + #p-cactions #ca-addsection a { |
| 966 | + padding-left: .4em; |
| 967 | + padding-right: .4em; |
| 968 | + } |
| 969 | + /* offsets to distinguish the tab groups */ |
| 970 | + li#ca-talk { |
| 971 | + margin-right: 1.6em; |
| 972 | + } |
| 973 | + li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { |
| 974 | + margin-left: 1.6em; |
| 975 | + } |
| 976 | + #p-cactions .pBody { |
| 977 | + font-size: 1em; |
| 978 | + background-color: transparent; |
| 979 | + color: inherit; |
| 980 | + border-collapse: inherit; |
| 981 | + border: 0; |
| 982 | + padding: 0; |
| 983 | + } |
| 984 | +/* } */ |
| 985 | +#p-cactions .hiddenStructure { |
| 986 | + display: none; |
| 987 | +} |
| 988 | +#p-cactions li a { |
| 989 | + text-transform: lowercase; |
| 990 | +} |
| 991 | + |
| 992 | +/* |
| 993 | +** the remaining portlets |
| 994 | +*/ |
| 995 | +/* @media screen { */ |
| 996 | + #p-tbx, |
| 997 | + #p-lang { |
| 998 | + position: relative; |
| 999 | + z-index: 3; |
| 1000 | + } |
| 1001 | +/* } */ |
| 1002 | + |
| 1003 | +/* TODO: #t-iscite is only used by the Cite extension, come up with some |
| 1004 | + * system which allows extensions to add to this file on the fly |
| 1005 | + */ |
| 1006 | +#t-ispermalink, #t-iscite { |
| 1007 | + color: #999; |
| 1008 | +} |
| 1009 | +/* |
| 1010 | +** footer |
| 1011 | +*/ |
| 1012 | +#footer { |
| 1013 | + background-color: white; |
| 1014 | + border-top: 1px solid #fabd23; |
| 1015 | + border-bottom: 1px solid #fabd23; |
| 1016 | + margin: .6em 0 1em 0; |
| 1017 | + padding: .4em 0 1.2em 0; |
| 1018 | + text-align: center; |
| 1019 | + font-size: 90%; |
| 1020 | +} |
| 1021 | +#footer li { |
| 1022 | + display: inline; |
| 1023 | + margin: 0 1.3em; |
| 1024 | +} |
| 1025 | +#f-poweredbyico, #f-copyrightico { |
| 1026 | + margin: 0 8px; |
| 1027 | + position: relative; |
| 1028 | + top: -2px; /* Bump it up just a tad */ |
| 1029 | +} |
| 1030 | +#f-poweredbyico { |
| 1031 | + float: right; |
| 1032 | + height: 1%; |
| 1033 | +} |
| 1034 | +#f-copyrightico { |
| 1035 | + float: left; |
| 1036 | + height: 1%; |
| 1037 | +} |
| 1038 | + |
| 1039 | +/* js pref toc */ |
| 1040 | +#preftoc { |
| 1041 | + margin: 0; |
| 1042 | + padding: 0; |
| 1043 | + width: 100%; |
| 1044 | + clear: both; |
| 1045 | +} |
| 1046 | +#preftoc li { |
| 1047 | + background-color: #f0f0f0; |
| 1048 | + color: #000; |
| 1049 | +} |
| 1050 | +/* @media screen { */ |
| 1051 | + #preftoc li { |
| 1052 | + margin: 1px -2px 1px 2px; |
| 1053 | + float: left; |
| 1054 | + padding: 2px 0 3px 0; |
| 1055 | + border: 1px solid #fff; |
| 1056 | + border-right-color: #716f64; |
| 1057 | + border-bottom: 0; |
| 1058 | + position: relative; |
| 1059 | + white-space: nowrap; |
| 1060 | + list-style-type: none; |
| 1061 | + list-style-image: none; |
| 1062 | + z-index: 3; |
| 1063 | + } |
| 1064 | +/* } */ |
| 1065 | +#preftoc li.selected { |
| 1066 | + font-weight: bold; |
| 1067 | + background-color: #f9f9f9; |
| 1068 | + border: 1px solid #aaa; |
| 1069 | + border-bottom: none; |
| 1070 | + cursor: default; |
| 1071 | + top: 1px; |
| 1072 | + padding-top: 2px; |
| 1073 | + margin-right: -3px; |
| 1074 | +} |
| 1075 | +#preftoc > li.selected { |
| 1076 | + top: 2px; |
| 1077 | +} |
| 1078 | +#preftoc a, |
| 1079 | +#preftoc a:active { |
| 1080 | + display: block; |
| 1081 | + color: #000; |
| 1082 | + padding: 0 .7em; |
| 1083 | + position: relative; |
| 1084 | + text-decoration: none; |
| 1085 | +} |
| 1086 | +#preftoc li.selected a { |
| 1087 | + cursor: default; |
| 1088 | + text-decoration: none; |
| 1089 | +} |
| 1090 | +#prefcontrol { |
| 1091 | + padding-top: 2em; |
| 1092 | + clear: both; |
| 1093 | +} |
| 1094 | +#preferences { |
| 1095 | + margin: 0; |
| 1096 | + border: 1px solid #aaa; |
| 1097 | + clear: both; |
| 1098 | + padding: 1.5em; |
| 1099 | + background-color: #F9F9F9; |
| 1100 | +} |
| 1101 | +.prefsection { |
| 1102 | + border: none; |
| 1103 | + padding: 0; |
| 1104 | + margin: 0; |
| 1105 | +} |
| 1106 | +.prefsection fieldset { |
| 1107 | + border: 1px solid #aaa; |
| 1108 | + float: left; |
| 1109 | + margin-right: 2em; |
| 1110 | +} |
| 1111 | +.prefsection legend { |
| 1112 | + font-weight: bold; |
| 1113 | +} |
| 1114 | +.prefsection table, .prefsection legend { |
| 1115 | + background-color: #F9F9F9; |
| 1116 | +} |
| 1117 | +/* @media screen { */ |
| 1118 | + .mainLegend { |
| 1119 | + display: none; |
| 1120 | + } |
| 1121 | +/* } */ |
| 1122 | +div.prefsectiontip { |
| 1123 | + font-size: 95%; |
| 1124 | + margin-top: 0; |
| 1125 | + background-color: #FFC1C1; |
| 1126 | + padding: .2em .7em; |
| 1127 | + clear: both; |
| 1128 | +} |
| 1129 | +.btnSavePrefs { |
| 1130 | + font-weight: bold; |
| 1131 | + padding-left: .3em; |
| 1132 | + padding-right: .3em; |
| 1133 | +} |
| 1134 | + |
| 1135 | +.preferences-login { |
| 1136 | + clear: both; |
| 1137 | + margin-bottom: 1.5em; |
| 1138 | +} |
| 1139 | + |
| 1140 | +.prefcache { |
| 1141 | + font-size: 90%; |
| 1142 | + margin-top: 2em; |
| 1143 | +} |
| 1144 | + |
| 1145 | +div#userloginForm form, |
| 1146 | +div#userlogin form#userlogin2 { |
| 1147 | + margin: 0 3em 1em 0; |
| 1148 | + border: 1px solid #aaa; |
| 1149 | + clear: both; |
| 1150 | + padding: 1.5em 2em; |
| 1151 | + background-color: #f9f9f9; |
| 1152 | + float: left; |
| 1153 | +} |
| 1154 | + |
| 1155 | +div#userloginForm table, |
| 1156 | +div#userlogin form#userlogin2 table { |
| 1157 | + background-color: #f9f9f9; |
| 1158 | +} |
| 1159 | + |
| 1160 | +div#userloginForm h2, |
| 1161 | +div#userlogin form#userlogin2 h2 { |
| 1162 | + padding-top: 0; |
| 1163 | +} |
| 1164 | + |
| 1165 | +div#userlogin .captcha { |
| 1166 | + border: 1px solid #bbb; |
| 1167 | + padding: 1.5em 2em; |
| 1168 | + width: 400px; |
| 1169 | + background-color: white; |
| 1170 | +} |
| 1171 | + |
| 1172 | + |
| 1173 | +#userloginprompt, #languagelinks { |
| 1174 | + font-size: 85%; |
| 1175 | +} |
| 1176 | + |
| 1177 | +#login-sectiontip { |
| 1178 | + font-size: 85%; |
| 1179 | + line-height: 1.2; |
| 1180 | + padding-top: 2em; |
| 1181 | +} |
| 1182 | + |
| 1183 | +#userlogin .loginText, #userlogin .loginPassword { |
| 1184 | + width: 12em; |
| 1185 | +} |
| 1186 | + |
| 1187 | +#userloginlink a, #wpLoginattempt, #wpCreateaccount { |
| 1188 | + font-weight: bold; |
| 1189 | +} |
| 1190 | + |
| 1191 | +/* @media screen { */ |
| 1192 | + /* |
| 1193 | + ** IE/Mac fixes, hope to find a validating way to move this |
| 1194 | + ** to a separate stylesheet. This would work but doesn't validate: |
| 1195 | + ** @import("IEMacFixes.css"); |
| 1196 | + */ |
| 1197 | + /* tabs: border on the a, not the div */ |
| 1198 | + * > html #p-cactions li { border: none; } |
| 1199 | + * > html #p-cactions li a { |
| 1200 | + border: 1px solid #aaa; |
| 1201 | + border-bottom: none; |
| 1202 | + } |
| 1203 | + * > html #p-cactions li.selected a { border-color: #fabd23; } |
| 1204 | + /* footer icons need a fixed width */ |
| 1205 | + * > html #f-poweredbyico, |
| 1206 | + * > html #f-copyrightico { width: 88px; } |
| 1207 | + * > html , |
| 1208 | + * > html pre { |
| 1209 | + overflow-x: auto; |
| 1210 | + width: 100%; |
| 1211 | + padding-bottom: 25px; |
| 1212 | + } |
| 1213 | +/* } */ |
| 1214 | + |
| 1215 | +/* more IE fixes */ |
| 1216 | +/* float/negative margin brokenness */ |
| 1217 | +* html #footer {margin-top: 0;} |
| 1218 | +* html div.editsection { font-size: smaller; } |
| 1219 | +#pagehistory li.selected { position: relative; } |
| 1220 | + |
| 1221 | +/* Mac IE 5.0 fix; floated content turns invisible */ |
| 1222 | +* > html #column-one { |
| 1223 | + position: absolute; |
| 1224 | + left: 0; |
| 1225 | + top: 0; |
| 1226 | +} |
| 1227 | +* > html #footer { |
| 1228 | + margin-left: 13.2em; |
| 1229 | +} |
| 1230 | +.redirectText { |
| 1231 | + font-size: 150%; |
| 1232 | + margin: 5px; |
| 1233 | +} |
| 1234 | + |
| 1235 | +.printfooter { |
| 1236 | + display: none; |
| 1237 | +} |
| 1238 | + |
| 1239 | +.not-patrolled { |
| 1240 | + background-color: #ffa; |
| 1241 | +} |
| 1242 | +div.patrollink { |
| 1243 | + font-size: 75%; |
| 1244 | + text-align: right; |
| 1245 | +} |
| 1246 | +span.newpage, span.minor, span.searchmatch, span.bot { |
| 1247 | + font-weight: bold; |
| 1248 | +} |
| 1249 | +span.unpatrolled { |
| 1250 | + font-weight: bold; |
| 1251 | + color: red; |
| 1252 | +} |
| 1253 | + |
| 1254 | +span.searchmatch { |
| 1255 | + color: red; |
| 1256 | +} |
| 1257 | +.sharedUploadNotice { |
| 1258 | + font-style: italic; |
| 1259 | +} |
| 1260 | + |
| 1261 | +span.updatedmarker { |
| 1262 | + color: black; |
| 1263 | + background-color: #0f0; |
| 1264 | +} |
| 1265 | + |
| 1266 | +table.gallery { |
| 1267 | + border: 1px solid #ccc; |
| 1268 | + margin: 2px; |
| 1269 | + padding: 2px; |
| 1270 | + background-color: white; |
| 1271 | +} |
| 1272 | + |
| 1273 | +table.gallery tr { |
| 1274 | + vertical-align: top; |
| 1275 | +} |
| 1276 | + |
| 1277 | +table.gallery td { |
| 1278 | + vertical-align: top; |
| 1279 | + background-color: #f9f9f9; |
| 1280 | + border: solid 2px white; |
| 1281 | +} |
| 1282 | +/* Keep this temporarily so that cached pages will display right */ |
| 1283 | +table.gallery td.galleryheader { |
| 1284 | + text-align: center; |
| 1285 | + font-weight: bold; |
| 1286 | +} |
| 1287 | +table.gallery caption { |
| 1288 | + font-weight: bold; |
| 1289 | +} |
| 1290 | + |
| 1291 | +div.gallerybox { |
| 1292 | + margin: 2px; |
| 1293 | +} |
| 1294 | + |
| 1295 | +div.gallerybox div.thumb { |
| 1296 | + text-align: center; |
| 1297 | + border: 1px solid #ccc; |
| 1298 | + margin: 2px; |
| 1299 | +} |
| 1300 | + |
| 1301 | +div.gallerytext { |
| 1302 | + font-size: 94%; |
| 1303 | + padding: 2px 4px; |
| 1304 | +} |
| 1305 | + |
| 1306 | +span.comment { |
| 1307 | + font-style: italic; |
| 1308 | +} |
| 1309 | + |
| 1310 | +span.changedby { |
| 1311 | + font-size: 95%; |
| 1312 | +} |
| 1313 | + |
| 1314 | +.previewnote { |
| 1315 | + text-indent: 3em; |
| 1316 | + color: #c00; |
| 1317 | + border-bottom: 1px solid #aaa; |
| 1318 | + padding-bottom: 1em; |
| 1319 | + margin-bottom: 1em; |
| 1320 | +} |
| 1321 | + |
| 1322 | +.previewnote p { |
| 1323 | + margin: 0; |
| 1324 | + padding: 0; |
| 1325 | +} |
| 1326 | + |
| 1327 | +.editExternally { |
| 1328 | + border: 1px solid gray; |
| 1329 | + background-color: #ffffff; |
| 1330 | + padding: 3px; |
| 1331 | + margin-top: 0.5em; |
| 1332 | + float: left; |
| 1333 | + font-size: small; |
| 1334 | + text-align: center; |
| 1335 | +} |
| 1336 | +.editExternallyHelp { |
| 1337 | + font-style: italic; |
| 1338 | + color: gray; |
| 1339 | +} |
| 1340 | + |
| 1341 | +li span.deleted, span.history-deleted { |
| 1342 | + text-decoration: line-through; |
| 1343 | + color: #888; |
| 1344 | + font-style: italic; |
| 1345 | +} |
| 1346 | + |
| 1347 | +.toggle { |
| 1348 | + margin-left: 2em; |
| 1349 | + text-indent: -2em; |
| 1350 | +} |
| 1351 | + |
| 1352 | +/* Classes for EXIF data display */ |
| 1353 | +table.mw_metadata { |
| 1354 | + font-size: 0.8em; |
| 1355 | + margin-left: 0.5em; |
| 1356 | + margin-bottom: 0.5em; |
| 1357 | + width: 300px; |
| 1358 | +} |
| 1359 | + |
| 1360 | +table.mw_metadata caption { |
| 1361 | + font-weight: bold; |
| 1362 | +} |
| 1363 | + |
| 1364 | +table.mw_metadata th { |
| 1365 | + font-weight: normal; |
| 1366 | +} |
| 1367 | + |
| 1368 | +table.mw_metadata td { |
| 1369 | + padding: 0.1em; |
| 1370 | +} |
| 1371 | + |
| 1372 | +table.mw_metadata { |
| 1373 | + border: none; |
| 1374 | + border-collapse: collapse; |
| 1375 | +} |
| 1376 | + |
| 1377 | +table.mw_metadata td, table.mw_metadata th { |
| 1378 | + text-align: center; |
| 1379 | + border: 1px solid #aaaaaa; |
| 1380 | + padding-left: 0.1em; |
| 1381 | + padding-right: 0.1em; |
| 1382 | +} |
| 1383 | + |
| 1384 | +table.mw_metadata th { |
| 1385 | + background-color: #f9f9f9; |
| 1386 | +} |
| 1387 | + |
| 1388 | +table.mw_metadata td { |
| 1389 | + background-color: #fcfcfc; |
| 1390 | +} |
| 1391 | + |
| 1392 | +table.collapsed tr.collapsable { |
| 1393 | + display: none; |
| 1394 | +} |
| 1395 | + |
| 1396 | + |
| 1397 | +/* filetoc */ |
| 1398 | +ul#filetoc { |
| 1399 | + text-align: center; |
| 1400 | + border: 1px solid #aaaaaa; |
| 1401 | + background-color: #f9f9f9; |
| 1402 | + padding: 5px; |
| 1403 | + font-size: 95%; |
| 1404 | + margin-bottom: 0.5em; |
| 1405 | + margin-left: 0; |
| 1406 | + margin-right: 0; |
| 1407 | +} |
| 1408 | + |
| 1409 | +#filetoc li { |
| 1410 | + display: inline; |
| 1411 | + list-style-type: none; |
| 1412 | + padding-right: 2em; |
| 1413 | +} |
| 1414 | + |
| 1415 | +input#wpSummary { |
| 1416 | + width: 80%; |
| 1417 | +} |
| 1418 | + |
| 1419 | +/* @bug 1714 */ |
| 1420 | +input#wpSave, input#wpDiff { |
| 1421 | + margin-right: 0.33em; |
| 1422 | +} |
| 1423 | + |
| 1424 | +#editform .editOptions { |
| 1425 | + display: inline; |
| 1426 | +} |
| 1427 | + |
| 1428 | +#wpSave { |
| 1429 | + font-weight: bold; |
| 1430 | +} |
| 1431 | + |
| 1432 | +/* Classes for article validation */ |
| 1433 | + |
| 1434 | +table.revisionform_default { |
| 1435 | + border: 1px solid #000000; |
| 1436 | +} |
| 1437 | + |
| 1438 | +table.revisionform_focus { |
| 1439 | + border: 1px solid #000000; |
| 1440 | + background-color:#00BBFF; |
| 1441 | +} |
| 1442 | + |
| 1443 | +tr.revision_tr_default { |
| 1444 | + background-color:#EEEEEE; |
| 1445 | +} |
| 1446 | + |
| 1447 | +tr.revision_tr_first { |
| 1448 | + background-color:#DDDDDD; |
| 1449 | +} |
| 1450 | + |
| 1451 | +p.revision_saved { |
| 1452 | + color: green; |
| 1453 | + font-weight:bold; |
| 1454 | +} |
| 1455 | + |
| 1456 | +#mw_trackbacks { |
| 1457 | + border: solid 1px #bbbbff; |
| 1458 | + background-color: #eeeeff; |
| 1459 | + padding: 0.2em; |
| 1460 | +} |
| 1461 | + |
| 1462 | + |
| 1463 | +/* Allmessages table */ |
| 1464 | + |
| 1465 | +#allmessagestable th { |
| 1466 | + background-color: #b2b2ff; |
| 1467 | +} |
| 1468 | + |
| 1469 | +#allmessagestable tr.orig { |
| 1470 | + background-color: #ffe2e2; |
| 1471 | +} |
| 1472 | + |
| 1473 | +#allmessagestable tr.new { |
| 1474 | + background-color: #e2ffe2; |
| 1475 | +} |
| 1476 | + |
| 1477 | +#allmessagestable tr.def { |
| 1478 | + background-color: #f0f0ff; |
| 1479 | +} |
| 1480 | + |
| 1481 | + |
| 1482 | +/* noarticletext */ |
| 1483 | +div.noarticletext { |
| 1484 | + border: 1px solid #ccc; |
| 1485 | + background: #fff; |
| 1486 | + padding: .2em 1em; |
| 1487 | + color: #000; |
| 1488 | +} |
| 1489 | + |
| 1490 | +div#searchTargetContainer { |
| 1491 | + left: 10px; |
| 1492 | + top: 10px; |
| 1493 | + width: 90%; |
| 1494 | + background: white; |
| 1495 | +} |
| 1496 | + |
| 1497 | +div#searchTarget { |
| 1498 | + padding: 3px; |
| 1499 | + margin: 5px; |
| 1500 | + background: #F0F0F0; |
| 1501 | + border: solid 1px blue; |
| 1502 | +} |
| 1503 | + |
| 1504 | +div#searchTarget ul li { |
| 1505 | + list-style: none; |
| 1506 | +} |
| 1507 | + |
| 1508 | +div#searchTarget ul li:before { |
| 1509 | + color: orange; |
| 1510 | + content: "\00BB \0020"; |
| 1511 | +} |
| 1512 | + |
| 1513 | +div.multipageimagenavbox { |
| 1514 | + border: solid 1px silver; |
| 1515 | + padding: 4px; |
| 1516 | + margin: 1em; |
| 1517 | + -moz-border-radius: 6px; |
| 1518 | + background: #f0f0f0; |
| 1519 | +} |
| 1520 | + |
| 1521 | +div.multipageimagenavbox div.thumb { |
| 1522 | + border: none; |
| 1523 | + margin-left: 2em; |
| 1524 | + margin-right: 2em; |
| 1525 | +} |
| 1526 | + |
| 1527 | +div.multipageimagenavbox hr { |
| 1528 | + margin: 6px; |
| 1529 | +} |
| 1530 | + |
| 1531 | +table.multipageimage td { |
| 1532 | + text-align: center; |
| 1533 | +} |
| 1534 | + |
| 1535 | +/** Special:Version */ |
| 1536 | + |
| 1537 | +table#sv-ext, table#sv-hooks { |
| 1538 | + margin: 1em; |
| 1539 | + padding:0em; |
| 1540 | +} |
| 1541 | + |
| 1542 | +#sv-ext td, #sv-hooks td, |
| 1543 | +#sv-ext th, #sv-hooks th { |
| 1544 | + border: 1px solid #A0A0A0; |
| 1545 | + padding: 0 0.15em 0 0.15em; |
| 1546 | +} |
| 1547 | +#sv-ext th, #sv-hooks th { |
| 1548 | + background-color: #F0F0F0; |
| 1549 | + color: black; |
| 1550 | + padding: 0 0.15em 0 0.15em; |
| 1551 | +} |
| 1552 | +tr.sv-space{ |
| 1553 | + height: 0.8em; |
| 1554 | + border:none; |
| 1555 | +} |
| 1556 | +tr.sv-space td { display: none; } |
| 1557 | + |
| 1558 | +/* |
| 1559 | + Table pager (e.g. Special:Imagelist) |
| 1560 | + - remove underlines from the navigation link |
| 1561 | + - collapse borders |
| 1562 | + - set the borders to outsets (similar to Special:Allmessages) |
| 1563 | + - remove line wrapping for all td and th, set background color |
| 1564 | + - restore line wrapping for the last two table cells (description and size) |
| 1565 | +*/ |
| 1566 | +.TablePager_nav a { text-decoration: none; } |
| 1567 | +.TablePager { border-collapse: collapse; } |
| 1568 | +.TablePager, .TablePager td, .TablePager th { |
| 1569 | + border: 1px solid #aaaaaa; |
| 1570 | + padding: 0 0.15em 0 0.15em; |
| 1571 | +} |
| 1572 | +.TablePager th { background-color: #eeeeff } |
| 1573 | +.TablePager td { background-color: #ffffff } |
| 1574 | +.TablePager tr:hover td { background-color: #eeeeff } |
| 1575 | + |
| 1576 | +.imagelist td, .imagelist th { white-space: nowrap } |
| 1577 | +.imagelist .TablePager_col_links { background-color: #eeeeff } |
| 1578 | +.imagelist .TablePager_col_img_description { white-space: normal } |
| 1579 | +.imagelist th.TablePager_sort { background-color: #ccccff } |
| 1580 | + |
| 1581 | +.templatesUsed { margin-top: 1.5em; } |
| 1582 | + |
| 1583 | +.mw-summary-preview { |
| 1584 | + margin: 0.1em 0; |
| 1585 | +} |
| 1586 | + |
| 1587 | +/* Convenience links on Special:Ipblocklist */ |
| 1588 | +p.mw-ipb-conveniencelinks { |
| 1589 | + font-size: 90%; |
| 1590 | + float: right; |
| 1591 | +} |
| 1592 | + |
| 1593 | +/** |
| 1594 | + * Here is some stuff that's ACTUALLY COMMON TO ALL SKINS. |
| 1595 | + * When the day comes, it can be moved to a *real* common.css. |
| 1596 | + */ |
| 1597 | +.mw-plusminus-null { color: #aaa; } |
| 1598 | +.texvc { direction: ltr; unicode-bidi: embed; } |
| 1599 | +/* Stop floats from intruding into edit area in previews */ |
| 1600 | +#toolbar, #wpTextbox1 { clear: both; } |
| 1601 | + |
| 1602 | +.MediaTransformError { |
| 1603 | + background-color: #ccc; |
| 1604 | + padding: 0.1em; |
| 1605 | +} |
| 1606 | +.MediaTransformError td { |
| 1607 | + text-align: center; |
| 1608 | + vertical-align: middle; |
| 1609 | + font-size: 90%; |
| 1610 | +} |
| 1611 | + |
| 1612 | + |
| 1613 | +/** |
| 1614 | + * FCKeditor specific styles |
| 1615 | + */ |
| 1616 | + |
| 1617 | +img.fck_mw_frame |
| 1618 | +{ |
| 1619 | + background-color: #F9F9F9; |
| 1620 | + border: 1px solid #CCCCCC; |
| 1621 | + padding: 3px !important; |
| 1622 | +} |
| 1623 | + |
| 1624 | +img.fck_mw_right |
| 1625 | +{ |
| 1626 | + margin: 0.5em 5px 0.8em 1.4em ; |
| 1627 | + clear: right; |
| 1628 | + float: right; |
| 1629 | +} |
| 1630 | + |
| 1631 | +img.fck_mw_left |
| 1632 | +{ |
| 1633 | + margin: 0.5em 1.4em 0.8em 0em; |
| 1634 | + clear: left; |
| 1635 | + float: left; |
| 1636 | +} |
| 1637 | + |
| 1638 | +img.fck_mw_center |
| 1639 | +{ |
| 1640 | + margin-left: auto; |
| 1641 | + margin-right: auto; |
| 1642 | + margin-bottom: 0.5em; |
| 1643 | + display: block; |
| 1644 | +} |
| 1645 | + |
| 1646 | +img.fck_mw_notfound |
| 1647 | +{ |
| 1648 | + font-size: 1px; |
| 1649 | + height: 25px; |
| 1650 | + width: 25px; |
| 1651 | + overflow: hidden ; |
| 1652 | +} |
| 1653 | + |
| 1654 | +img.fck_mw_border |
| 1655 | +{ |
| 1656 | + border: 1px solid #dddddd; |
| 1657 | +} |
Property changes on: trunk/extensions/FCKeditor/css/fckeditor.css |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 1658 | + native |
Index: trunk/extensions/FCKeditor/css/magnify-clip.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/magnify-clip.png |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 1659 | + image/png |
Index: trunk/extensions/FCKeditor/css/wiki-indexed.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/wiki-indexed.png |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 1660 | + image/png |
Index: trunk/extensions/FCKeditor/css/lock_icon.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/lock_icon.gif |
___________________________________________________________________ |
Added: svn:mime-type |
4 | 1661 | + image/gif |
Index: trunk/extensions/FCKeditor/css/external.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/external.png |
___________________________________________________________________ |
Added: svn:mime-type |
5 | 1662 | + image/png |
Index: trunk/extensions/FCKeditor/css/news_icon.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/FCKeditor/css/news_icon.png |
___________________________________________________________________ |
Added: svn:mime-type |
6 | 1663 | + image/png |
Index: trunk/extensions/FCKeditor/css/link_icon.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/link_icon.gif |
___________________________________________________________________ |
Added: svn:mime-type |
7 | 1664 | + image/gif |
Index: trunk/extensions/FCKeditor/css/discussionitem_icon.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: trunk/extensions/FCKeditor/css/discussionitem_icon.gif |
___________________________________________________________________ |
Added: svn:mime-type |
8 | 1665 | + image/gif |
Index: trunk/extensions/FCKeditor/FCKeditorParser.body.php |
— | — | @@ -0,0 +1,689 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +class FCKeditorParser extends FCKeditorParserWrapper { |
| 5 | + public static $fkc_mw_makeImage_options; |
| 6 | + protected $fck_mw_strtr_span; |
| 7 | + protected $fck_mw_strtr_span_counter = 1; |
| 8 | + protected $fck_mw_taghook; |
| 9 | + protected $fck_internal_parse_text; |
| 10 | + protected $fck_matches = array(); |
| 11 | + |
| 12 | + private $FCKeditorMagicWords = array( |
| 13 | + '__NOTOC__', |
| 14 | + '__FORCETOC__', |
| 15 | + '__NOEDITSECTION__', |
| 16 | + '__START__', |
| 17 | + '__NOTITLECONVERT__', |
| 18 | + '__NOCONTENTCONVERT__', |
| 19 | + '__END__', |
| 20 | + '__TOC__', |
| 21 | + '__NOTC__', |
| 22 | + '__NOCC__', |
| 23 | + '__FORCETOC__', |
| 24 | + '__NEWSECTIONLINK__', |
| 25 | + '__NOGALLERY__', |
| 26 | + ); |
| 27 | + |
| 28 | + /** |
| 29 | + * Add special string (that would be changed by Parser) to array and return simple unique string |
| 30 | + * that will remain unchanged during whole parsing operation. |
| 31 | + * At the end we'll replace all this unique strings with original content |
| 32 | + * |
| 33 | + * @param string $text |
| 34 | + * @return string |
| 35 | + */ |
| 36 | + private function fck_addToStrtr( $text, $replaceLineBreaks = true ) { |
| 37 | + $key = 'Fckmw' . $this->fck_mw_strtr_span_counter . 'fckmw'; |
| 38 | + $this->fck_mw_strtr_span_counter++; |
| 39 | + if( $replaceLineBreaks ) { |
| 40 | + $this->fck_mw_strtr_span[$key] = str_replace( array( "\r\n", "\n", "\r" ), 'fckLR', $text ); |
| 41 | + } else { |
| 42 | + $this->fck_mw_strtr_span[$key] = $text; |
| 43 | + } |
| 44 | + return $key; |
| 45 | + } |
| 46 | + |
| 47 | + /** |
| 48 | + * Handle link to subpage if necessary |
| 49 | + * @param string $target the source of the link |
| 50 | + * @param string &$text the link text, modified as necessary |
| 51 | + * @return string the full name of the link |
| 52 | + * @private |
| 53 | + */ |
| 54 | + function maybeDoSubpageLink( $target, &$text ) { |
| 55 | + return $target; |
| 56 | + } |
| 57 | + |
| 58 | + /** |
| 59 | + * DO NOT replace special strings like "ISBN xxx" and "RFC xxx" with |
| 60 | + * magic external links. |
| 61 | + * |
| 62 | + * DML |
| 63 | + * @private |
| 64 | + */ |
| 65 | + function doMagicLinks( $text ) { |
| 66 | + return $text; |
| 67 | + } |
| 68 | + |
| 69 | + /** |
| 70 | + * Callback function for custom tags: feed, ref, references etc. |
| 71 | + * |
| 72 | + * @param string $str Input |
| 73 | + * @param array $argv Arguments |
| 74 | + * @return string |
| 75 | + */ |
| 76 | + function fck_genericTagHook( $str, $argv, $parser ) { |
| 77 | + if( in_array( $this->fck_mw_taghook, array( 'ref', 'math', 'references', 'source' ) ) ) { |
| 78 | + $class = $this->fck_mw_taghook; |
| 79 | + } else { |
| 80 | + $class = 'special'; |
| 81 | + } |
| 82 | + |
| 83 | + if( empty( $argv ) ) { |
| 84 | + $ret = '<span class="fck_mw_' . $class . '" _fck_mw_customtag="true" _fck_mw_tagname="' . $this->fck_mw_taghook . '">'; |
| 85 | + } else { |
| 86 | + $ret = '<span class="fck_mw_' . $class . '" _fck_mw_customtag="true" _fck_mw_tagname="' . $this->fck_mw_taghook . '"'; |
| 87 | + foreach( $argv as $key => $value ) { |
| 88 | + $ret .= " " . $key . "=\"" . $value . "\""; |
| 89 | + } |
| 90 | + $ret .= '>'; |
| 91 | + } |
| 92 | + if( is_null( $str ) ) { |
| 93 | + $ret = substr( $ret, 0, -1 ) . ' />'; |
| 94 | + } else { |
| 95 | + $ret .= htmlspecialchars( $str ); |
| 96 | + $ret .= '</span>'; |
| 97 | + } |
| 98 | + |
| 99 | + $replacement = $this->fck_addToStrtr( $ret ); |
| 100 | + return $replacement; |
| 101 | + } |
| 102 | + |
| 103 | + /** |
| 104 | + * Callback function for wiki tags: nowiki, includeonly, noinclude |
| 105 | + * |
| 106 | + * @param string $tagName tag name, eg. nowiki, math |
| 107 | + * @param string $str Input |
| 108 | + * @param array $argv Arguments |
| 109 | + * @return string |
| 110 | + */ |
| 111 | + function fck_wikiTag( $tagName, $str, $argv = array() ) { |
| 112 | + if( empty( $argv ) ) { |
| 113 | + $ret = '<span class="fck_mw_' . $tagName . '" _fck_mw_customtag="true" _fck_mw_tagname="' . $tagName . '">'; |
| 114 | + } else { |
| 115 | + $ret = '<span class="fck_mw_' . $tagName . '" _fck_mw_customtag="true" _fck_mw_tagname="' . $tagName . '"'; |
| 116 | + foreach( $argv as $key => $value ) { |
| 117 | + $ret .= " " . $key . "=\"" . $value . "\""; |
| 118 | + } |
| 119 | + $ret .= '>'; |
| 120 | + } |
| 121 | + if( is_null( $str ) ) { |
| 122 | + $ret = substr( $ret, 0, -1 ) . ' />'; |
| 123 | + } else { |
| 124 | + $ret .= htmlspecialchars( $str ); |
| 125 | + $ret .= '</span>'; |
| 126 | + } |
| 127 | + |
| 128 | + $replacement = $this->fck_addToStrtr( $ret ); |
| 129 | + |
| 130 | + return $replacement; |
| 131 | + } |
| 132 | + |
| 133 | + /** |
| 134 | + * Strips and renders nowiki, pre, math, hiero |
| 135 | + * If $render is set, performs necessary rendering operations on plugins |
| 136 | + * Returns the text, and fills an array with data needed in unstrip() |
| 137 | + * |
| 138 | + * @param StripState $state |
| 139 | + * |
| 140 | + * @param bool $stripcomments when set, HTML comments <!-- like this --> |
| 141 | + * will be stripped in addition to other tags. This is important |
| 142 | + * for section editing, where these comments cause confusion when |
| 143 | + * counting the sections in the wikisource |
| 144 | + * |
| 145 | + * @param array dontstrip contains tags which should not be stripped; |
| 146 | + * used to prevent stipping of <gallery> when saving (fixes bug 2700) |
| 147 | + * |
| 148 | + * @private |
| 149 | + */ |
| 150 | + function strip( $text, $state, $stripcomments = false, $dontstrip = array() ) { |
| 151 | + global $wgContLang, $wgUseTeX, $wgScriptPath, $wgHooks, $wgExtensionFunctions; |
| 152 | + |
| 153 | + wfProfileIn( __METHOD__ ); |
| 154 | + $render = ( $this->mOutputType == OT_HTML ); |
| 155 | + |
| 156 | + $uniq_prefix = $this->mUniqPrefix; |
| 157 | + $commentState = new ReplacementArray; |
| 158 | + |
| 159 | + $elements = array_merge( array( 'nowiki', 'gallery', 'math' ), array_keys( $this->mTagHooks ) ); |
| 160 | + if ( ( isset( $wgHooks['ParserFirstCallInit']) && in_array( 'efSyntaxHighlight_GeSHiSetup', $wgHooks['ParserFirstCallInit'] ) ) |
| 161 | + || ( isset( $wgExtensionFunctions ) && in_array( 'efSyntaxHighlight_GeSHiSetup', $wgExtensionFunctions ) ) ) { |
| 162 | + $elements = array_merge( $elements, array( 'source' ) ); |
| 163 | + } |
| 164 | + if ( ( isset( $wgHooks['ParserFirstCallInit'] ) && in_array( 'wfCite', $wgHooks['ParserFirstCallInit'] ) ) |
| 165 | + || ( isset( $wgExtensionFunctions ) && in_array( 'wfCite', $wgExtensionFunctions ) ) ) { |
| 166 | + $elements = array_merge( $elements, array( 'ref', 'references' ) ); |
| 167 | + } |
| 168 | + global $wgRawHtml; |
| 169 | + if( $wgRawHtml ) { |
| 170 | + $elements[] = 'html'; |
| 171 | + } |
| 172 | + |
| 173 | + # Removing $dontstrip tags from $elements list (currently only 'gallery', fixing bug 2700) |
| 174 | + foreach( $elements as $k => $v ) { |
| 175 | + if( !in_array( $v, $dontstrip ) ) |
| 176 | + continue; |
| 177 | + unset( $elements[$k] ); |
| 178 | + } |
| 179 | + |
| 180 | + $elements = array_unique( $elements ); |
| 181 | + $matches = array(); |
| 182 | + $text = Parser::extractTagsAndParams( $elements, $text, $matches, $uniq_prefix ); |
| 183 | + |
| 184 | + foreach( $matches as $marker => $data ) { |
| 185 | + list( $element, $content, $params, $tag ) = $data; |
| 186 | + if( $render ) { |
| 187 | + $tagName = strtolower( $element ); |
| 188 | + wfProfileIn( __METHOD__ . "-render-$tagName" ); |
| 189 | + switch( $tagName ) { |
| 190 | + case '!--': |
| 191 | + // Comment |
| 192 | + if( substr( $tag, -3 ) == '-->' ) { |
| 193 | + $output = $tag; |
| 194 | + } else { |
| 195 | + // Unclosed comment in input. |
| 196 | + // Close it so later stripping can remove it |
| 197 | + $output = "$tag-->"; |
| 198 | + } |
| 199 | + break; |
| 200 | + case 'references': |
| 201 | + $output = $this->fck_wikiTag( 'references', $content, $params ); |
| 202 | + break; |
| 203 | + case 'ref': |
| 204 | + $output = $this->fck_wikiTag( 'ref', $content, $params ); |
| 205 | + break; |
| 206 | + case 'source': |
| 207 | + $output = $this->fck_wikiTag( 'source', $content, $params ); |
| 208 | + break; |
| 209 | + case 'html': |
| 210 | + if( $wgRawHtml ) { |
| 211 | + $output = $this->fck_wikiTag( 'html', $content, $params ); |
| 212 | + } |
| 213 | + break; |
| 214 | + case 'nowiki': |
| 215 | + $output = $this->fck_wikiTag( 'nowiki', $content, $params ); // required by FCKeditor |
| 216 | + break; |
| 217 | + case 'math': |
| 218 | + if( $wgUseTeX ){ //normal render |
| 219 | + $output = $wgContLang->armourMath( MathRenderer::renderMath( $content ) ); |
| 220 | + } else // show fakeimage |
| 221 | + $output = '<img _fckfakelement="true" class="FCK__MWMath" _fck_mw_math="'.$content.'" src="'.$wgScriptPath.'/skins/common/images/button_math.png" />'; |
| 222 | + break; |
| 223 | + case 'gallery': |
| 224 | + $output = $this->fck_wikiTag( 'gallery', $content, $params ); // required by FCKeditor |
| 225 | + //$output = $this->renderImageGallery( $content, $params ); |
| 226 | + break; |
| 227 | + default: |
| 228 | + if( isset( $this->mTagHooks[$tagName] ) ) { |
| 229 | + $this->fck_mw_taghook = $tagName; // required by FCKeditor |
| 230 | + $output = call_user_func_array( $this->mTagHooks[$tagName], |
| 231 | + array( $content, $params, $this ) ); |
| 232 | + } else { |
| 233 | + throw new MWException( "Invalid call hook $element" ); |
| 234 | + } |
| 235 | + } |
| 236 | + wfProfileOut( __METHOD__ . "-render-$tagName" ); |
| 237 | + } else { |
| 238 | + // Just stripping tags; keep the source |
| 239 | + $output = $tag; |
| 240 | + } |
| 241 | + |
| 242 | + // Unstrip the output, to support recursive strip() calls |
| 243 | + $output = $state->unstripBoth( $output ); |
| 244 | + |
| 245 | + if( !$stripcomments && $element == '!--' ) { |
| 246 | + $commentState->setPair( $marker, $output ); |
| 247 | + } elseif ( $element == 'html' || $element == 'nowiki' ) { |
| 248 | + $state->addNoWiki( $output ); |
| 249 | + } else { |
| 250 | + $state->addGeneral( $output ); |
| 251 | + } |
| 252 | + } |
| 253 | + |
| 254 | + # Unstrip comments unless explicitly told otherwise. |
| 255 | + # (The comments are always stripped prior to this point, so as to |
| 256 | + # not invoke any extension tags / parser hooks contained within |
| 257 | + # a comment.) |
| 258 | + if ( !$stripcomments ) { |
| 259 | + // Put them all back and forget them |
| 260 | + $text = $commentState->replace( $text ); |
| 261 | + } |
| 262 | + |
| 263 | + $this->fck_matches = $matches; |
| 264 | + wfProfileOut( __METHOD__ ); |
| 265 | + return $text; |
| 266 | + } |
| 267 | + |
| 268 | + /** |
| 269 | + * Replace HTML comments with unique text using fck_addToStrtr function |
| 270 | + * |
| 271 | + * @private |
| 272 | + * @param string $text |
| 273 | + * @return string |
| 274 | + */ |
| 275 | + private function fck_replaceHTMLcomments( $text ) { |
| 276 | + wfProfileIn( __METHOD__ ); |
| 277 | + while( ( $start = strpos( $text, '<!--' ) ) !== false ) { |
| 278 | + $end = strpos( $text, '-->', $start + 4 ); |
| 279 | + if( $end === false ) { |
| 280 | + # Unterminated comment; bail out |
| 281 | + break; |
| 282 | + } |
| 283 | + |
| 284 | + $end += 3; |
| 285 | + |
| 286 | + # Trim space and newline if the comment is both |
| 287 | + # preceded and followed by a newline |
| 288 | + $spaceStart = max( $start - 1, 0 ); |
| 289 | + $spaceLen = $end - $spaceStart; |
| 290 | + while( substr( $text, $spaceStart, 1 ) === ' ' && $spaceStart > 0 ) { |
| 291 | + $spaceStart--; |
| 292 | + $spaceLen++; |
| 293 | + } |
| 294 | + while( substr( $text, $spaceStart + $spaceLen, 1 ) === ' ' ) |
| 295 | + $spaceLen++; |
| 296 | + if( substr( $text, $spaceStart, 1 ) === "\n" and substr( $text, $spaceStart + $spaceLen, 1 ) === "\n" ) { |
| 297 | + # Remove the comment, leading and trailing |
| 298 | + # spaces, and leave only one newline. |
| 299 | + $replacement = $this->fck_addToStrtr( substr( $text, $spaceStart, $spaceLen + 1 ), false ); |
| 300 | + $text = substr_replace( $text, $replacement . "\n", $spaceStart, $spaceLen + 1 ); |
| 301 | + } else { |
| 302 | + # Remove just the comment. |
| 303 | + $replacement = $this->fck_addToStrtr( substr( $text, $start, $end - $start ), false ); |
| 304 | + $text = substr_replace( $text, $replacement, $start, $end - $start ); |
| 305 | + } |
| 306 | + } |
| 307 | + wfProfileOut( __METHOD__ ); |
| 308 | + |
| 309 | + return $text; |
| 310 | + } |
| 311 | + |
| 312 | + function replaceInternalLinks( $text ) { |
| 313 | + $text = preg_replace( "/\[\[([^|\[\]]*?)\]\]/", "[[$1|RTENOTITLE]]", $text ); // #2223: [[()]] => [[%1|RTENOTITLE]] |
| 314 | + $text = preg_replace( "/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text ); // change ':' => 'RTECOLON' in links |
| 315 | + $text = parent::replaceInternalLinks( $text ); |
| 316 | + $text = preg_replace( "/\|RTENOTITLE\]\]/", "]]", $text ); // remove unused RTENOTITLE |
| 317 | + |
| 318 | + return $text; |
| 319 | + } |
| 320 | + |
| 321 | + function makeImage( $nt, $options, $holders = false ) { |
| 322 | + FCKeditorParser::$fkc_mw_makeImage_options = $options; |
| 323 | + return parent::makeImage( $nt, $options, $holders ); |
| 324 | + } |
| 325 | + |
| 326 | + /** |
| 327 | + * Replace templates with unique text to preserve them from parsing |
| 328 | + * |
| 329 | + * @todo if {{template}} is inside string that also must be returned unparsed, |
| 330 | + * e.g. <noinclude>{{template}}</noinclude> |
| 331 | + * {{template}} replaced with Fckmw[n]fckmw which is wrong... |
| 332 | + * |
| 333 | + * @param string $text |
| 334 | + * @return string |
| 335 | + */ |
| 336 | + private function fck_replaceTemplates( $text ) { |
| 337 | + |
| 338 | + $callback = array( |
| 339 | + '{' => array( |
| 340 | + 'end'=>'}', |
| 341 | + 'cb' => array( |
| 342 | + 2 => array( $this, 'fck_leaveTemplatesAlone' ), |
| 343 | + 3 => array( $this, 'fck_leaveTemplatesAlone' ), |
| 344 | + ), |
| 345 | + 'min' => 2, |
| 346 | + 'max' => 3, |
| 347 | + ) |
| 348 | + ); |
| 349 | + |
| 350 | + $text = $this->replace_callback( $text, $callback ); |
| 351 | + |
| 352 | + $tags = array(); |
| 353 | + $offset = 0; |
| 354 | + $textTmp = $text; |
| 355 | + while( false !== ( $pos = strpos( $textTmp, '<!--FCK_SKIP_START-->' ) ) ){ |
| 356 | + $tags[abs($pos + $offset)] = 1; |
| 357 | + $textTmp = substr( $textTmp, $pos + 21 ); |
| 358 | + $offset += $pos + 21; |
| 359 | + } |
| 360 | + |
| 361 | + $offset = 0; |
| 362 | + $textTmp = $text; |
| 363 | + while( false !== ( $pos = strpos( $textTmp, '<!--FCK_SKIP_END-->' ) ) ){ |
| 364 | + $tags[abs($pos + $offset)] = -1; |
| 365 | + $textTmp = substr( $textTmp, $pos + 19 ); |
| 366 | + $offset += $pos + 19; |
| 367 | + } |
| 368 | + |
| 369 | + if( !empty( $tags ) ) { |
| 370 | + ksort( $tags ); |
| 371 | + |
| 372 | + $strtr = array( '<!--FCK_SKIP_START-->' => '', '<!--FCK_SKIP_END-->' => '' ); |
| 373 | + |
| 374 | + $sum = 0; |
| 375 | + $lastSum = 0; |
| 376 | + $finalString = ''; |
| 377 | + $stringToParse = ''; |
| 378 | + $startingPos = 0; |
| 379 | + $inner = ''; |
| 380 | + $strtr_span = array(); |
| 381 | + foreach( $tags as $pos=>$type) { |
| 382 | + $sum += $type; |
| 383 | + if( !$pos ) { |
| 384 | + $opened = 0; |
| 385 | + $closed = 0; |
| 386 | + } else { |
| 387 | + $opened = substr_count( $text, '[', 0, $pos ); // count [ |
| 388 | + $closed = substr_count( $text, ']', 0, $pos ); // count ] |
| 389 | + } |
| 390 | + if( $sum == 1 && $lastSum == 0 ) { |
| 391 | + $stringToParse .= strtr( substr( $text, $startingPos, $pos - $startingPos ), $strtr ); |
| 392 | + $startingPos = $pos; |
| 393 | + } elseif( $sum == 0 ) { |
| 394 | + $stringToParse .= 'Fckmw' . $this->fck_mw_strtr_span_counter . 'fckmw'; |
| 395 | + $inner = htmlspecialchars( strtr( substr( $text, $startingPos, $pos - $startingPos + 19 ), $strtr ) ); |
| 396 | + $this->fck_mw_strtr_span['href="Fckmw' . $this->fck_mw_strtr_span_counter . 'fckmw"'] = 'href="' . $inner . '"'; |
| 397 | + if( $opened <= $closed ) { // {{template}} is NOT in [] or [[]] |
| 398 | + $this->fck_mw_strtr_span['Fckmw' . $this->fck_mw_strtr_span_counter . 'fckmw'] = '<span class="fck_mw_template">' . str_replace( array( "\r\n", "\n", "\r" ), 'fckLR', $inner ) . '</span>'; |
| 399 | + } else { |
| 400 | + $this->fck_mw_strtr_span['Fckmw' . $this->fck_mw_strtr_span_counter . 'fckmw'] = str_replace( array( "\r\n", "\n", "\r" ), 'fckLR', $inner ); |
| 401 | + } |
| 402 | + $startingPos = $pos + 19; |
| 403 | + $this->fck_mw_strtr_span_counter++; |
| 404 | + } |
| 405 | + $lastSum = $sum; |
| 406 | + } |
| 407 | + $stringToParse .= substr( $text, $startingPos ); |
| 408 | + $text = &$stringToParse; |
| 409 | + } |
| 410 | + |
| 411 | + return $text; |
| 412 | + } |
| 413 | + |
| 414 | + function internalParse( $text, $isMain = true, $frame = false ) { |
| 415 | + $this->fck_internal_parse_text =& $text; |
| 416 | + |
| 417 | + // these three tags should remain unchanged |
| 418 | + $text = StringUtils::delimiterReplaceCallback( '<includeonly>', '</includeonly>', array( $this, 'fck_includeonly' ), $text ); |
| 419 | + $text = StringUtils::delimiterReplaceCallback( '<noinclude>', '</noinclude>', array( $this, 'fck_noinclude' ), $text ); |
| 420 | + $text = StringUtils::delimiterReplaceCallback( '<onlyinclude>', '</onlyinclude>', array( $this, 'fck_onlyinclude' ), $text ); |
| 421 | + |
| 422 | + // HTML comments shouldn't be stripped |
| 423 | + $text = $this->fck_replaceHTMLcomments( $text ); |
| 424 | + // as well as templates |
| 425 | + $text = $this->fck_replaceTemplates( $text ); |
| 426 | + |
| 427 | + $finalString = parent::internalParse( $text, $isMain ); |
| 428 | + |
| 429 | + return $finalString; |
| 430 | + } |
| 431 | + |
| 432 | + function fck_includeonly( $matches ) { |
| 433 | + return $this->fck_wikiTag( 'includeonly', $matches[1] ); |
| 434 | + } |
| 435 | + |
| 436 | + function fck_noinclude( $matches ) { |
| 437 | + return $this->fck_wikiTag( 'noinclude', $matches[1] ); |
| 438 | + } |
| 439 | + |
| 440 | + function fck_onlyinclude( $matches ) { |
| 441 | + return $this->fck_wikiTag( 'onlyinclude', $matches[1] ); |
| 442 | + } |
| 443 | + |
| 444 | + function fck_leaveTemplatesAlone( $matches ) { |
| 445 | + return '<!--FCK_SKIP_START-->' . $matches['text'] . '<!--FCK_SKIP_END-->'; |
| 446 | + } |
| 447 | + |
| 448 | + function formatHeadings( $text, $origText, $isMain = true ) { |
| 449 | + return $text; |
| 450 | + } |
| 451 | + |
| 452 | + function replaceFreeExternalLinks( $text ) { return $text; } |
| 453 | + |
| 454 | + function stripNoGallery( &$text ) {} |
| 455 | + |
| 456 | + function stripToc( $text ) { |
| 457 | + //$prefix = '<span class="fck_mw_magic">'; |
| 458 | + //$suffix = '</span>'; |
| 459 | + $prefix = ''; |
| 460 | + $suffix = ''; |
| 461 | + |
| 462 | + $strtr = array(); |
| 463 | + foreach( $this->FCKeditorMagicWords as $word ) { |
| 464 | + $strtr[$word] = $prefix . $word . $suffix; |
| 465 | + } |
| 466 | + |
| 467 | + return strtr( $text, $strtr ); |
| 468 | + } |
| 469 | + |
| 470 | + function doDoubleUnderscore( $text ) { |
| 471 | + return $text; |
| 472 | + } |
| 473 | + |
| 474 | + function parse( $text, Title $title, ParserOptions $options, $linestart = true, $clearState = true, $revid = null ) { |
| 475 | + $text = preg_replace( "/^#REDIRECT/", '<!--FCK_REDIRECT-->', $text ); |
| 476 | + $parserOutput = parent::parse( $text, $title, $options, $linestart, $clearState, $revid ); |
| 477 | + |
| 478 | + $categories = $parserOutput->getCategories(); |
| 479 | + if( $categories ) { |
| 480 | + $appendString = ''; |
| 481 | + foreach( $categories as $cat => $val ) { |
| 482 | + $args = ''; |
| 483 | + if( $val == 'RTENOTITLE' ){ |
| 484 | + $args .= '_fcknotitle="true" '; |
| 485 | + $val = $cat; |
| 486 | + } |
| 487 | + if( $val != $title->mTextform ) { |
| 488 | + $appendString .= '<a ' . $args . 'href="Category:' . $cat . '">' . $val . '</a> '; |
| 489 | + } else { |
| 490 | + $appendString .= '<a ' . $args . 'href="Category:' . $cat . '">Category:' . $cat . '</a> '; |
| 491 | + } |
| 492 | + } |
| 493 | + $parserOutput->setText( $parserOutput->getText() . $appendString ); |
| 494 | + } |
| 495 | + |
| 496 | + if( !empty( $this->fck_mw_strtr_span ) ) { |
| 497 | + global $leaveRawTemplates; |
| 498 | + if( !empty( $leaveRawTemplates ) ) { |
| 499 | + foreach( $leaveRawTemplates as $l ) { |
| 500 | + $this->fck_mw_strtr_span[$l] = substr( $this->fck_mw_strtr_span[$l], 30, -7 ); |
| 501 | + } |
| 502 | + } |
| 503 | + $text = strtr( $parserOutput->getText(), $this->fck_mw_strtr_span ); |
| 504 | + $parserOutput->setText( strtr( $text, $this->fck_mw_strtr_span ) ); |
| 505 | + } |
| 506 | + if( !empty( $this->fck_matches ) ) { |
| 507 | + $text = $parserOutput->getText(); |
| 508 | + foreach( $this->fck_matches as $key => $m ) { |
| 509 | + $text = str_replace( $key, $m[3], $text ); |
| 510 | + } |
| 511 | + $parserOutput->setText( $text ); |
| 512 | + } |
| 513 | + |
| 514 | + if( !empty( $parserOutput->mLanguageLinks ) ) { |
| 515 | + foreach( $parserOutput->mLanguageLinks as $l ) { |
| 516 | + $parserOutput->setText( $parserOutput->getText() . "\n" . '<a href="' . $l . '">' . $l . '</a>' ); |
| 517 | + } |
| 518 | + } |
| 519 | + |
| 520 | + $parserOutput->setText( str_replace( '<!--FCK_REDIRECT-->', '#REDIRECT', $parserOutput->getText() ) ); |
| 521 | + |
| 522 | + return $parserOutput; |
| 523 | + } |
| 524 | + |
| 525 | + /** |
| 526 | + * Make lists from lines starting with ':', '*', '#', etc. |
| 527 | + * |
| 528 | + * @private |
| 529 | + * @return string the lists rendered as HTML |
| 530 | + */ |
| 531 | + function doBlockLevels( $text, $linestart ) { |
| 532 | + wfProfileIn( __METHOD__ ); |
| 533 | + |
| 534 | + # Parsing through the text line by line. The main thing |
| 535 | + # happening here is handling of block-level elements p, pre, |
| 536 | + # and making lists from lines starting with * # : etc. |
| 537 | + $textLines = explode( "\n", $text ); |
| 538 | + |
| 539 | + $lastPrefix = $output = ''; |
| 540 | + $this->mDTopen = $inBlockElem = false; |
| 541 | + $prefixLength = 0; |
| 542 | + $paragraphStack = false; |
| 543 | + |
| 544 | + if ( !$linestart ) { |
| 545 | + $output .= array_shift( $textLines ); |
| 546 | + } |
| 547 | + foreach ( $textLines as $oLine ) { |
| 548 | + $lastPrefixLength = strlen( $lastPrefix ); |
| 549 | + $preCloseMatch = preg_match('/<\\/pre/i', $oLine ); |
| 550 | + $preOpenMatch = preg_match('/<pre/i', $oLine ); |
| 551 | + if ( !$this->mInPre ) { |
| 552 | + # Multiple prefixes may abut each other for nested lists. |
| 553 | + $prefixLength = strspn( $oLine, '*#:;' ); |
| 554 | + $pref = substr( $oLine, 0, $prefixLength ); |
| 555 | + |
| 556 | + # eh? |
| 557 | + $pref2 = str_replace( ';', ':', $pref ); |
| 558 | + $t = substr( $oLine, $prefixLength ); |
| 559 | + $this->mInPre = !empty( $preOpenMatch ); |
| 560 | + } else { |
| 561 | + # Don't interpret any other prefixes in preformatted text |
| 562 | + $prefixLength = 0; |
| 563 | + $pref = $pref2 = ''; |
| 564 | + $t = $oLine; |
| 565 | + } |
| 566 | + |
| 567 | + # List generation |
| 568 | + if( $prefixLength && 0 == strcmp( $lastPrefix, $pref2 ) ) { |
| 569 | + # Same as the last item, so no need to deal with nesting or opening stuff |
| 570 | + $output .= $this->nextItem( substr( $pref, -1 ) ); |
| 571 | + $paragraphStack = false; |
| 572 | + |
| 573 | + if ( substr( $pref, -1 ) == ';') { |
| 574 | + # The one nasty exception: definition lists work like this: |
| 575 | + # ; title : definition text |
| 576 | + # So we check for : in the remainder text to split up the |
| 577 | + # title and definition, without b0rking links. |
| 578 | + $term = $t2 = ''; |
| 579 | + if( $this->findColonNoLinks( $t, $term, $t2 ) !== false ) { |
| 580 | + $t = $t2; |
| 581 | + $output .= $term . $this->nextItem( ':' ); |
| 582 | + } |
| 583 | + } |
| 584 | + } elseif( $prefixLength || $lastPrefixLength ) { |
| 585 | + # Either open or close a level... |
| 586 | + $commonPrefixLength = $this->getCommon( $pref, $lastPrefix ); |
| 587 | + $paragraphStack = false; |
| 588 | + |
| 589 | + while( $commonPrefixLength < $lastPrefixLength ) { |
| 590 | + $output .= $this->closeList( $lastPrefix{$lastPrefixLength-1} ); |
| 591 | + --$lastPrefixLength; |
| 592 | + } |
| 593 | + if ( $prefixLength <= $commonPrefixLength && $commonPrefixLength > 0 ) { |
| 594 | + $output .= $this->nextItem( $pref{$commonPrefixLength-1} ); |
| 595 | + } |
| 596 | + while ( $prefixLength > $commonPrefixLength ) { |
| 597 | + $char = substr( $pref, $commonPrefixLength, 1 ); |
| 598 | + $output .= $this->openList( $char ); |
| 599 | + |
| 600 | + if ( ';' == $char ) { |
| 601 | + # FIXME: This is dupe of code above |
| 602 | + if( $this->findColonNoLinks( $t, $term, $t2 ) !== false ) { |
| 603 | + $t = $t2; |
| 604 | + $output .= $term . $this->nextItem( ':' ); |
| 605 | + } |
| 606 | + } |
| 607 | + ++$commonPrefixLength; |
| 608 | + } |
| 609 | + $lastPrefix = $pref2; |
| 610 | + } |
| 611 | + if( 0 == $prefixLength ) { |
| 612 | + wfProfileIn( __METHOD__ . '-paragraph' ); |
| 613 | + # No prefix (not in list)--go to paragraph mode |
| 614 | + // XXX: use a stack for nestable elements like span, table and div |
| 615 | + $openmatch = preg_match( '/(?:<table|<blockquote|<h1|<h2|<h3|<h4|<h5|<h6|<pre|<tr|<p|<ul|<ol|<li|<\\/tr|<\\/td|<\\/th)/iS', $t ); |
| 616 | + $closematch = preg_match( |
| 617 | + '/(?:<\\/table|<\\/blockquote|<\\/h1|<\\/h2|<\\/h3|<\\/h4|<\\/h5|<\\/h6|'. |
| 618 | + '<td|<th|<\\/?div|<hr|<\\/pre|<\\/p|' . $this->mUniqPrefix . '-pre|<\\/li|<\\/ul|<\\/ol|<\\/?center)/iS', $t ); |
| 619 | + if ( $openmatch or $closematch ) { |
| 620 | + $paragraphStack = false; |
| 621 | + # TODO bug 5718: paragraph closed |
| 622 | + $output .= $this->closeParagraph(); |
| 623 | + if ( $preOpenMatch and !$preCloseMatch ) { |
| 624 | + $this->mInPre = true; |
| 625 | + } |
| 626 | + if ( $closematch ) { |
| 627 | + $inBlockElem = false; |
| 628 | + } else { |
| 629 | + $inBlockElem = true; |
| 630 | + } |
| 631 | + } elseif ( !$inBlockElem && !$this->mInPre ) { |
| 632 | + if ( ' ' == $t{0} and ( $this->mLastSection == 'pre' or trim( $t ) != '' ) ) { |
| 633 | + // pre |
| 634 | + if( $this->mLastSection != 'pre' ) { |
| 635 | + $paragraphStack = false; |
| 636 | + $output .= $this->closeParagraph() . '<pre class="_fck_mw_lspace">'; |
| 637 | + $this->mLastSection = 'pre'; |
| 638 | + } |
| 639 | + $t = substr( $t, 1 ); |
| 640 | + } else { |
| 641 | + // paragraph |
| 642 | + if ( '' == trim( $t ) ) { |
| 643 | + if ( $paragraphStack ) { |
| 644 | + $output .= $paragraphStack . '<br />'; |
| 645 | + $paragraphStack = false; |
| 646 | + $this->mLastSection = 'p'; |
| 647 | + } else { |
| 648 | + if ($this->mLastSection != 'p' ) { |
| 649 | + $output .= $this->closeParagraph(); |
| 650 | + $this->mLastSection = ''; |
| 651 | + $paragraphStack = '<p>'; |
| 652 | + } else { |
| 653 | + $paragraphStack = '</p><p>'; |
| 654 | + } |
| 655 | + } |
| 656 | + } else { |
| 657 | + if ( $paragraphStack ) { |
| 658 | + $output .= $paragraphStack; |
| 659 | + $paragraphStack = false; |
| 660 | + $this->mLastSection = 'p'; |
| 661 | + } elseif ($this->mLastSection != 'p') { |
| 662 | + $output .= $this->closeParagraph().'<p>'; |
| 663 | + $this->mLastSection = 'p'; |
| 664 | + } |
| 665 | + } |
| 666 | + } |
| 667 | + } |
| 668 | + wfProfileOut( __METHOD__ . '-paragraph' ); |
| 669 | + } |
| 670 | + // somewhere above we forget to get out of pre block (bug 785) |
| 671 | + if( $preCloseMatch && $this->mInPre ) { |
| 672 | + $this->mInPre = false; |
| 673 | + } |
| 674 | + if( $paragraphStack === false ) { |
| 675 | + $output .= $t . "\n"; |
| 676 | + } |
| 677 | + } |
| 678 | + while ( $prefixLength ) { |
| 679 | + $output .= $this->closeList( $pref2{$prefixLength-1} ); |
| 680 | + --$prefixLength; |
| 681 | + } |
| 682 | + if ( '' != $this->mLastSection ) { |
| 683 | + $output .= '</' . $this->mLastSection . '>'; |
| 684 | + $this->mLastSection = ''; |
| 685 | + } |
| 686 | + |
| 687 | + wfProfileOut( __METHOD__ ); |
| 688 | + return $output; |
| 689 | + } |
| 690 | +} |
Property changes on: trunk/extensions/FCKeditor/FCKeditorParser.body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 691 | + native |
Index: trunk/extensions/FCKeditor/FCKeditorParserWrapper.body.php |
— | — | @@ -0,0 +1,197 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Used by MW 1.12+ |
| 5 | + */ |
| 6 | +class FCKeditorParserWrapper extends Parser { |
| 7 | + function __construct() { |
| 8 | + global $wgParser; |
| 9 | + |
| 10 | + parent::__construct(); |
| 11 | + |
| 12 | + $wgParser->firstCallInit(); |
| 13 | + foreach( $wgParser->getTags() as $h ) { |
| 14 | + if( !in_array( $h, array( 'pre' ) ) ) { |
| 15 | + $this->setHook( $h, array( $this, 'fck_genericTagHook' ) ); |
| 16 | + } |
| 17 | + } |
| 18 | + } |
| 19 | + |
| 20 | + /** |
| 21 | + * parse any parentheses in format ((title|part|part)) |
| 22 | + * and call callbacks to get a replacement text for any found piece |
| 23 | + * |
| 24 | + * @param string $text The text to parse |
| 25 | + * @param array $callbacks rules in form: |
| 26 | + * '{' => array( # opening parentheses |
| 27 | + * 'end' => '}', # closing parentheses |
| 28 | + * 'cb' => array( |
| 29 | + * 2 => callback, # replacement callback to call if {{..}} is found |
| 30 | + * 3 => callback # replacement callback to call if {{{..}}} is found |
| 31 | + * ) |
| 32 | + * ) |
| 33 | + * 'min' => 2, # Minimum parenthesis count in cb |
| 34 | + * 'max' => 3, # Maximum parenthesis count in cb |
| 35 | + */ |
| 36 | + /*private*/ function replace_callback( $text, $callbacks ) { |
| 37 | + wfProfileIn( __METHOD__ ); |
| 38 | + $openingBraceStack = array(); # this array will hold a stack of parentheses which are not closed yet |
| 39 | + $lastOpeningBrace = -1; # last not closed parentheses |
| 40 | + |
| 41 | + $validOpeningBraces = implode( '', array_keys( $callbacks ) ); |
| 42 | + |
| 43 | + $i = 0; |
| 44 | + while ( $i < strlen( $text ) ) { |
| 45 | + # Find next opening brace, closing brace or pipe |
| 46 | + if ( $lastOpeningBrace == -1 ) { |
| 47 | + $currentClosing = ''; |
| 48 | + $search = $validOpeningBraces; |
| 49 | + } else { |
| 50 | + $currentClosing = $openingBraceStack[$lastOpeningBrace]['braceEnd']; |
| 51 | + $search = $validOpeningBraces . '|' . $currentClosing; |
| 52 | + } |
| 53 | + $rule = null; |
| 54 | + $i += strcspn( $text, $search, $i ); |
| 55 | + if ( $i < strlen( $text ) ) { |
| 56 | + if ( $text[$i] == '|' ) { |
| 57 | + $found = 'pipe'; |
| 58 | + } elseif ( $text[$i] == $currentClosing ) { |
| 59 | + $found = 'close'; |
| 60 | + } elseif ( isset( $callbacks[$text[$i]] ) ) { |
| 61 | + $found = 'open'; |
| 62 | + $rule = $callbacks[$text[$i]]; |
| 63 | + } else { |
| 64 | + # Some versions of PHP have a strcspn which stops on null characters |
| 65 | + # Ignore and continue |
| 66 | + ++$i; |
| 67 | + continue; |
| 68 | + } |
| 69 | + } else { |
| 70 | + # All done |
| 71 | + break; |
| 72 | + } |
| 73 | + |
| 74 | + if ( $found == 'open' ) { |
| 75 | + # found opening brace, let's add it to parentheses stack |
| 76 | + $piece = array( |
| 77 | + 'brace' => $text[$i], |
| 78 | + 'braceEnd' => $rule['end'], |
| 79 | + 'title' => '', |
| 80 | + 'parts' => null |
| 81 | + ); |
| 82 | + |
| 83 | + # count opening brace characters |
| 84 | + $piece['count'] = strspn( $text, $piece['brace'], $i ); |
| 85 | + $piece['startAt'] = $piece['partStart'] = $i + $piece['count']; |
| 86 | + $i += $piece['count']; |
| 87 | + |
| 88 | + # we need to add to stack only if opening brace count is enough for one of the rules |
| 89 | + if ( $piece['count'] >= $rule['min'] ) { |
| 90 | + $lastOpeningBrace ++; |
| 91 | + $openingBraceStack[$lastOpeningBrace] = $piece; |
| 92 | + } |
| 93 | + } elseif ( $found == 'close' ) { |
| 94 | + # lets check if it is enough characters for closing brace |
| 95 | + $maxCount = $openingBraceStack[$lastOpeningBrace]['count']; |
| 96 | + $count = strspn( $text, $text[$i], $i, $maxCount ); |
| 97 | + |
| 98 | + # check for maximum matching characters (if there are 5 closing |
| 99 | + # characters, we will probably need only 3 - depending on the rules) |
| 100 | + $matchingCount = 0; |
| 101 | + $matchingCallback = null; |
| 102 | + $cbType = $callbacks[$openingBraceStack[$lastOpeningBrace]['brace']]; |
| 103 | + if ( $count > $cbType['max'] ) { |
| 104 | + # The specified maximum exists in the callback array, unless the caller |
| 105 | + # has made an error |
| 106 | + $matchingCount = $cbType['max']; |
| 107 | + } else { |
| 108 | + # Count is less than the maximum |
| 109 | + # Skip any gaps in the callback array to find the true largest match |
| 110 | + # Need to use array_key_exists not isset because the callback can be null |
| 111 | + $matchingCount = $count; |
| 112 | + while ( $matchingCount > 0 && !array_key_exists( $matchingCount, $cbType['cb'] ) ) { |
| 113 | + --$matchingCount; |
| 114 | + } |
| 115 | + } |
| 116 | + |
| 117 | + if( $matchingCount <= 0 ) { |
| 118 | + $i += $count; |
| 119 | + continue; |
| 120 | + } |
| 121 | + $matchingCallback = $cbType['cb'][$matchingCount]; |
| 122 | + |
| 123 | + # let's set a title or last part (if '|' was found) |
| 124 | + if( null === $openingBraceStack[$lastOpeningBrace]['parts'] ) { |
| 125 | + $openingBraceStack[$lastOpeningBrace]['title'] = |
| 126 | + substr($text, $openingBraceStack[$lastOpeningBrace]['partStart'], |
| 127 | + $i - $openingBraceStack[$lastOpeningBrace]['partStart']); |
| 128 | + } else { |
| 129 | + $openingBraceStack[$lastOpeningBrace]['parts'][] = |
| 130 | + substr($text, $openingBraceStack[$lastOpeningBrace]['partStart'], |
| 131 | + $i - $openingBraceStack[$lastOpeningBrace]['partStart']); |
| 132 | + } |
| 133 | + |
| 134 | + $pieceStart = $openingBraceStack[$lastOpeningBrace]['startAt'] - $matchingCount; |
| 135 | + $pieceEnd = $i + $matchingCount; |
| 136 | + |
| 137 | + if( is_callable( $matchingCallback ) ) { |
| 138 | + $cbArgs = array( |
| 139 | + 'text' => substr( $text, $pieceStart, $pieceEnd - $pieceStart ), |
| 140 | + 'title' => trim( $openingBraceStack[$lastOpeningBrace]['title'] ), |
| 141 | + 'parts' => $openingBraceStack[$lastOpeningBrace]['parts'], |
| 142 | + 'lineStart' => ( ( $pieceStart > 0 ) && ( $text[$pieceStart-1] == "\n" ) ), |
| 143 | + ); |
| 144 | + # finally we can call a user callback and replace piece of text |
| 145 | + $replaceWith = call_user_func( $matchingCallback, $cbArgs ); |
| 146 | + $text = substr( $text, 0, $pieceStart ) . $replaceWith . substr( $text, $pieceEnd ); |
| 147 | + $i = $pieceStart + strlen( $replaceWith ); |
| 148 | + } else { |
| 149 | + # null value for callback means that parentheses should be parsed, but not replaced |
| 150 | + $i += $matchingCount; |
| 151 | + } |
| 152 | + |
| 153 | + # reset last opening parentheses, but keep it in case there are unused characters |
| 154 | + $piece = array( |
| 155 | + 'brace' => $openingBraceStack[$lastOpeningBrace]['brace'], |
| 156 | + 'braceEnd' => $openingBraceStack[$lastOpeningBrace]['braceEnd'], |
| 157 | + 'count' => $openingBraceStack[$lastOpeningBrace]['count'], |
| 158 | + 'title' => '', |
| 159 | + 'parts' => null, |
| 160 | + 'startAt' => $openingBraceStack[$lastOpeningBrace]['startAt'] |
| 161 | + ); |
| 162 | + $openingBraceStack[$lastOpeningBrace--] = null; |
| 163 | + |
| 164 | + if( $matchingCount < $piece['count'] ) { |
| 165 | + $piece['count'] -= $matchingCount; |
| 166 | + $piece['startAt'] -= $matchingCount; |
| 167 | + $piece['partStart'] = $piece['startAt']; |
| 168 | + # do we still qualify for any callback with remaining count? |
| 169 | + $currentCbList = $callbacks[$piece['brace']]['cb']; |
| 170 | + while ( $piece['count'] ) { |
| 171 | + if ( array_key_exists( $piece['count'], $currentCbList ) ) { |
| 172 | + $lastOpeningBrace++; |
| 173 | + $openingBraceStack[$lastOpeningBrace] = $piece; |
| 174 | + break; |
| 175 | + } |
| 176 | + --$piece['count']; |
| 177 | + } |
| 178 | + } |
| 179 | + } elseif ( $found == 'pipe' ) { |
| 180 | + # let's set a title if it is a first separator, or next part otherwise |
| 181 | + if( null === $openingBraceStack[$lastOpeningBrace]['parts'] ) { |
| 182 | + $openingBraceStack[$lastOpeningBrace]['title'] = |
| 183 | + substr($text, $openingBraceStack[$lastOpeningBrace]['partStart'], |
| 184 | + $i - $openingBraceStack[$lastOpeningBrace]['partStart']); |
| 185 | + $openingBraceStack[$lastOpeningBrace]['parts'] = array(); |
| 186 | + } else { |
| 187 | + $openingBraceStack[$lastOpeningBrace]['parts'][] = |
| 188 | + substr($text, $openingBraceStack[$lastOpeningBrace]['partStart'], |
| 189 | + $i - $openingBraceStack[$lastOpeningBrace]['partStart']); |
| 190 | + } |
| 191 | + $openingBraceStack[$lastOpeningBrace]['partStart'] = ++$i; |
| 192 | + } |
| 193 | + } |
| 194 | + |
| 195 | + wfProfileOut( __METHOD__ ); |
| 196 | + return $text; |
| 197 | + } |
| 198 | +} |
Property changes on: trunk/extensions/FCKeditor/FCKeditorParserWrapper.body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 199 | + native |
Index: trunk/extensions/FCKeditor/fckeditor_config.js |
— | — | @@ -0,0 +1,127 @@ |
| 2 | +/* |
| 3 | + * FCKeditor Extension for MediaWiki specific settings. |
| 4 | + */ |
| 5 | + |
| 6 | +// When using the modified image dialog you must set this variable. It must |
| 7 | +// correspond to $wgScriptPath in LocalSettings.php. |
| 8 | +FCKConfig.mwScriptPath = ''; |
| 9 | + |
| 10 | +// Setup the editor toolbar. |
| 11 | +FCKConfig.ToolbarSets['Wiki'] = [ |
| 12 | + ['Source'], |
| 13 | + ['Cut','Copy','Paste',/*'PasteText','PasteWord',*/'-','Print'], |
| 14 | + ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'], |
| 15 | + ['SpecialChar','Table','Image','Rule'], |
| 16 | + ['MW_Template','MW_Special','MW_Ref','MW_References','MW_Source','MW_Math','MW_Signature','MW_Category'], |
| 17 | + '/', |
| 18 | + ['FontFormat'], |
| 19 | + ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'], |
| 20 | + ['OrderedList','UnorderedList','-','Blockquote'], |
| 21 | +// ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'], |
| 22 | + ['Link','Unlink','Anchor'], |
| 23 | +// ['TextColor','BGColor'], |
| 24 | + ['FitWindow','-','About'] |
| 25 | +]; |
| 26 | + |
| 27 | +// Load the extension plugins. |
| 28 | +FCKConfig.PluginsPath = FCKConfig.EditorPath + '../plugins/'; |
| 29 | +// Available translations |
| 30 | +FCKConfig.Plugins.Add( 'mediawiki', 'en,fi,he,ko,pl,sv,zh-tw' ); |
| 31 | + |
| 32 | +FCKConfig.ForcePasteAsPlainText = true; |
| 33 | +FCKConfig.FontFormats = 'p;h1;h2;h3;h4;h5;h6;pre'; |
| 34 | + |
| 35 | +FCKConfig.AutoDetectLanguage = true; |
| 36 | +FCKConfig.DefaultLanguage = 'en'; |
| 37 | + |
| 38 | +FCKConfig.WikiSignature = '--~~~~'; |
| 39 | + |
| 40 | +// FCKConfig.DisableObjectResizing = true ; |
| 41 | + |
| 42 | +FCKConfig.EditorAreaStyles = '\ |
| 43 | +.FCK__MWTemplate, .FCK__MWSource, .FCK__MWRef, .FCK__MWSignature, .FCK__MWSpecial, .FCK__MWReferences, .FCK__MWMath, .FCK__MWNowiki, .FCK__MWIncludeonly, .FCK__MWNoinclude, .FCK__MWOnlyinclude, .FCK__MWGallery \ |
| 44 | +{ \ |
| 45 | + border: 1px dotted #00F; \ |
| 46 | + background-position: center center; \ |
| 47 | + background-repeat: no-repeat; \ |
| 48 | + vertical-align: middle; \ |
| 49 | +} \ |
| 50 | +.FCK__MWSource \ |
| 51 | +{ \ |
| 52 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_source.gif); \ |
| 53 | + width: 59px; \ |
| 54 | + height: 15px; \ |
| 55 | +} \ |
| 56 | +.FCK__MWTemplate \ |
| 57 | +{ \ |
| 58 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_template.gif); \ |
| 59 | + width: 20px; \ |
| 60 | + height: 15px; \ |
| 61 | +} \ |
| 62 | +.FCK__MWRef \ |
| 63 | +{ \ |
| 64 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_ref.gif); \ |
| 65 | + width: 18px; \ |
| 66 | + height: 15px; \ |
| 67 | +} \ |
| 68 | +.FCK__MWSpecial \ |
| 69 | +{ \ |
| 70 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_special.gif); \ |
| 71 | + width: 66px; \ |
| 72 | + height: 15px; \ |
| 73 | +} \ |
| 74 | +.FCK__MWNowiki \ |
| 75 | +{ \ |
| 76 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_nowiki.gif); \ |
| 77 | + width: 66px; \ |
| 78 | + height: 15px; \ |
| 79 | +} \ |
| 80 | +.FCK__MWHtml \ |
| 81 | +{ \ |
| 82 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_html.gif); \ |
| 83 | + width: 66px; \ |
| 84 | + height: 15px; \ |
| 85 | +} \ |
| 86 | +.FCK__MWMath \ |
| 87 | +{ \ |
| 88 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_math.gif); \ |
| 89 | + width: 66px; \ |
| 90 | + height: 15px; \ |
| 91 | +} \ |
| 92 | +.FCK__MWIncludeonly \ |
| 93 | +{ \ |
| 94 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_includeonly.gif); \ |
| 95 | + width: 66px; \ |
| 96 | + height: 15px; \ |
| 97 | +} \ |
| 98 | +.FCK__MWNoinclude \ |
| 99 | +{ \ |
| 100 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_noinclude.gif); \ |
| 101 | + width: 66px; \ |
| 102 | + height: 15px; \ |
| 103 | +} \ |
| 104 | +.FCK__MWGallery \ |
| 105 | +{ \ |
| 106 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_gallery.gif); \ |
| 107 | + width: 66px; \ |
| 108 | + height: 15px; \ |
| 109 | +} \ |
| 110 | +.FCK__MWOnlyinclude \ |
| 111 | +{ \ |
| 112 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_onlyinclude.gif); \ |
| 113 | + width: 66px; \ |
| 114 | + height: 15px; \ |
| 115 | +} \ |
| 116 | +.FCK__MWSignature \ |
| 117 | +{ \ |
| 118 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_signature.gif); \ |
| 119 | + width: 66px; \ |
| 120 | + height: 15px; \ |
| 121 | +} \ |
| 122 | +.FCK__MWReferences \ |
| 123 | +{ \ |
| 124 | + background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_references.gif); \ |
| 125 | + width: 66px; \ |
| 126 | + height: 15px; \ |
| 127 | +} \ |
| 128 | +'; |
Property changes on: trunk/extensions/FCKeditor/fckeditor_config.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 129 | + native |
Index: trunk/extensions/FCKeditor/README.txt |
— | — | @@ -0,0 +1,38 @@ |
| 2 | +== Installation == |
| 3 | + |
| 4 | +This integration is done by a dedicated MediaWiki extension. See http://www.mediawiki.org/wiki/Extension:FCKeditor_(Official) for details. |
| 5 | + |
| 6 | +== About the project == |
| 7 | + |
| 8 | +After several attempts to provide a WYSIWYG interface for MediaWiki, we at FCKeditor have decided starting a dedicated project for it, aiming to propose a definitive solution for it. |
| 9 | + |
| 10 | +The main criticism again such kind of integration is that rich text editors produce HTML code, and MediaWiki runs with Wikitext. We prioritized this problem when developing this prototype and our FCKeditor integration now produces Wikitext, satisfying this need. |
| 11 | + |
| 12 | +== Integration screenshot == |
| 13 | + |
| 14 | +So, to see it in action, just go to our Sandbox: http://mediawiki.fckeditor.net/index.php/Sandbox and start editing that page. |
| 15 | + |
| 16 | +== Integration status == |
| 17 | + |
| 18 | +We have created the first working prototype for this integration. It is still in the first stages, but shows the potential of it, and it’s actually fully usable. In any case, use it on production web sites at your own risk. |
| 19 | + |
| 20 | +The following features are currently available: |
| 21 | +* Rich editing: instead of writing inside a plain text area, using Wikitext markup for the text * structure and formatting, you can use visual tools, which reflect the final output. |
| 22 | +* Easy table creation. |
| 23 | +* Easy link creation, including automated search for internal articles. |
| 24 | +* Easy image insertion, including automated search for uploaded image files. |
| 25 | +* Templates handling: a template icon is displayed in the editor so they can be easily edited or inserted, without impacting in the editing interface. |
| 26 | +* References are displayed as small icons, not disturbing the editing, making them easy to create and edit. |
| 27 | +* Formulas are rendered inside the editor, making it easy to edit them with a mouse click. |
| 28 | +* My preferences: the editor can be disable at "Editing > Disable rich editor". Also, if the editor is enabled, a new tab called "Rich editor" is available so you can disable it under specific namespaces. |
| 29 | + |
| 30 | +== Final notes == |
| 31 | + |
| 32 | +Take it easy! This is a prototype and it is expected to present undesired behaviors if bugs are forced to happen. Feel free to use the discussion space in this page to talk about it. |
| 33 | + |
| 34 | +=== Project future === |
| 35 | + |
| 36 | +As stated at the top of this page, at FCKeditor we have "started" coding this integration. We need help now to continue with it, as we are (and have to be) focused on FCKeditor. |
| 37 | + |
| 38 | +We are looking for help on coding it, so PHP and JavaScript developers are welcome. |
| 39 | + |
Property changes on: trunk/extensions/FCKeditor/README.txt |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 40 | + native |
Index: trunk/extensions/FCKeditor/FCKeditor.body.php |
— | — | @@ -0,0 +1,713 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Options for FCKeditor |
| 5 | + * [start with FCKeditor] |
| 6 | + */ |
| 7 | +define('RTE_VISIBLE', 1); |
| 8 | +/** |
| 9 | + * Options for FCKeditor |
| 10 | + * [show toggle link] |
| 11 | + */ |
| 12 | +define('RTE_TOGGLE_LINK', 2); |
| 13 | +/** |
| 14 | + * Options for FCKeditor |
| 15 | + * [show popup link] |
| 16 | + */ |
| 17 | +define('RTE_POPUP', 4); |
| 18 | + |
| 19 | +class FCKeditor_MediaWiki { |
| 20 | + public $showFCKEditor; |
| 21 | + private $count = array(); |
| 22 | + private $excludedNamespaces; |
| 23 | + private $oldTextBox1; |
| 24 | + static $nsToggles = array( |
| 25 | + 'riched_disable_ns_main', |
| 26 | + 'riched_disable_ns_talk', |
| 27 | + 'riched_disable_ns_user', |
| 28 | + 'riched_disable_ns_user_talk', |
| 29 | + 'riched_disable_ns_project', |
| 30 | + 'riched_disable_ns_project_talk', |
| 31 | + 'riched_disable_ns_image', |
| 32 | + 'riched_disable_ns_image_talk', |
| 33 | + 'riched_disable_ns_mediawiki', |
| 34 | + 'riched_disable_ns_mediawiki_talk', |
| 35 | + 'riched_disable_ns_template', |
| 36 | + 'riched_disable_ns_template_talk', |
| 37 | + 'riched_disable_ns_help', |
| 38 | + 'riched_disable_ns_help_talk', |
| 39 | + 'riched_disable_ns_category', |
| 40 | + 'riched_disable_ns_category_talk', |
| 41 | + ); |
| 42 | + |
| 43 | + function __call( $m, $a ) { |
| 44 | + print "\n#### " . $m . "\n"; |
| 45 | + if( !isset( $this->count[$m] ) ) { |
| 46 | + $this->count[$m] = 0; |
| 47 | + } |
| 48 | + $this->count[$m]++; |
| 49 | + return true; |
| 50 | + } |
| 51 | + |
| 52 | + /** |
| 53 | + * Gets the namespaces where FCKeditor should be disabled |
| 54 | + * First check is done against user preferences, second is done against the global variable $wgFCKEditorExcludedNamespaces |
| 55 | + */ |
| 56 | + private function getExcludedNamespaces() { |
| 57 | + global $wgUser, $wgDefaultUserOptions, $wgFCKEditorExcludedNamespaces; |
| 58 | + |
| 59 | + if( is_null( $this->excludedNamespaces ) ) { |
| 60 | + $this->excludedNamespaces = array(); |
| 61 | + foreach( self::$nsToggles as $toggle ) { |
| 62 | + $default = isset( $wgDefaultUserOptions[$toggle] ) ? $wgDefaultUserOptions[$toggle] : ''; |
| 63 | + if( $wgUser->getOption( $toggle, $default ) ) { |
| 64 | + $this->excludedNamespaces[] = constant( strtoupper( str_replace( 'riched_disable_', '', $toggle ) ) ); |
| 65 | + } |
| 66 | + } |
| 67 | + /* |
| 68 | + If this site's LocalSettings.php defines Namespaces that shouldn't use the FCKEditor (in the #wgFCKexcludedNamespaces array), those excluded |
| 69 | + namespaces should be combined with those excluded in the user's preferences. |
| 70 | + */ |
| 71 | + if( !empty( $wgFCKEditorExcludedNamespaces ) && is_array( $wgFCKEditorExcludedNamespaces ) ) { |
| 72 | + $this->excludedNamespaces = array_merge( $wgFCKEditorExcludedNamespaces, $this->excludedNamespaces ); |
| 73 | + } |
| 74 | + } |
| 75 | + |
| 76 | + return $this->excludedNamespaces; |
| 77 | + } |
| 78 | + |
| 79 | + public static function onLanguageGetMagic( &$magicWords, $langCode ) { |
| 80 | + $magicWords['NORICHEDITOR'] = array( 0, '__NORICHEDITOR__' ); |
| 81 | + |
| 82 | + return true; |
| 83 | + } |
| 84 | + |
| 85 | + public static function onParserBeforeInternalParse( &$parser, &$text, &$strip_state ) { |
| 86 | + MagicWord::get( 'NORICHEDITOR' )->matchAndRemove( $text ); |
| 87 | + |
| 88 | + return true; |
| 89 | + } |
| 90 | + |
| 91 | + public function onEditPageShowEditFormFields( $pageEditor, $wgOut ) { |
| 92 | + global $wgUser, $wgFCKEditorIsCompatible, $wgTitle; |
| 93 | + |
| 94 | + /* |
| 95 | + If FCKeditor extension is enabled, BUT it shouldn't appear (because it's disabled by user, we have incompatible browser etc.) |
| 96 | + We must do this trick to show the original text as WikiText instead of HTML when conflict occurs |
| 97 | + */ |
| 98 | + if ( ( !$wgUser->getOption( 'showtoolbar' ) || $wgUser->getOption( 'riched_disable' ) || !$wgFCKEditorIsCompatible ) || |
| 99 | + in_array( $wgTitle->getNamespace(), $this->getExcludedNamespaces() ) || !( $this->showFCKEditor & RTE_VISIBLE ) || |
| 100 | + false !== strpos( $pageEditor->textbox1, '__NORICHEDITOR__' ) |
| 101 | + ) { |
| 102 | + if( $pageEditor->isConflict ) { |
| 103 | + $pageEditor->textbox1 = $pageEditor->getWikiContent(); |
| 104 | + } |
| 105 | + } |
| 106 | + |
| 107 | + return true; |
| 108 | + } |
| 109 | + |
| 110 | + /** |
| 111 | + * @param $pageEditor EditPage instance |
| 112 | + * @param $out OutputPage instance |
| 113 | + * @return true |
| 114 | + */ |
| 115 | + public static function onEditPageBeforeConflictDiff( $pageEditor, $out ) { |
| 116 | + global $wgRequest; |
| 117 | + |
| 118 | + /* |
| 119 | + Show WikiText instead of HTML when there is a conflict |
| 120 | + http://dev.fckeditor.net/ticket/1385 |
| 121 | + */ |
| 122 | + $pageEditor->textbox2 = $wgRequest->getVal( 'wpTextbox1' ); |
| 123 | + $pageEditor->textbox1 = $pageEditor->getWikiContent(); |
| 124 | + |
| 125 | + return true; |
| 126 | + } |
| 127 | + |
| 128 | + public static function onParserBeforeStrip( &$parser, &$text, &$stripState ) { |
| 129 | + $text = $parser->strip( $text, $stripState ); |
| 130 | + return true; |
| 131 | + } |
| 132 | + |
| 133 | + public static function onSanitizerAfterFixTagAttributes( $text, $element, &$attribs ) { |
| 134 | + $text = preg_match_all( "/Fckmw\d+fckmw/", $text, $matches ); |
| 135 | + |
| 136 | + if( !empty( $matches[0][0] ) ) { |
| 137 | + global $leaveRawTemplates; |
| 138 | + if( !isset( $leaveRawTemplates ) ) { |
| 139 | + $leaveRawTemplates = array(); |
| 140 | + } |
| 141 | + $leaveRawTemplates = array_merge( $leaveRawTemplates, $matches[0] ); |
| 142 | + $attribs = array_merge( $attribs, $matches[0] ); |
| 143 | + } |
| 144 | + |
| 145 | + return true; |
| 146 | + } |
| 147 | + |
| 148 | + public function onCustomEditor( $article, $user ) { |
| 149 | + global $wgRequest, $wgUseExternalEditor; |
| 150 | + |
| 151 | + $action = $wgRequest->getVal( 'action', 'view' ); |
| 152 | + |
| 153 | + $internal = $wgRequest->getVal( 'internaledit' ); |
| 154 | + $external = $wgRequest->getVal( 'externaledit' ); |
| 155 | + $section = $wgRequest->getVal( 'section' ); |
| 156 | + $oldid = $wgRequest->getVal( 'oldid' ); |
| 157 | + if( !$wgUseExternalEditor || $action == 'submit' || $internal || |
| 158 | + $section || $oldid || ( !$user->getOption( 'externaleditor' ) && !$external ) ) { |
| 159 | + $editor = new FCKeditorEditPage( $article ); |
| 160 | + $editor->submit(); |
| 161 | + } elseif( $wgUseExternalEditor && ( $external || $user->getOption( 'externaleditor' ) ) ) { |
| 162 | + $mode = $wgRequest->getVal( 'mode' ); |
| 163 | + $extedit = new ExternalEdit( $article, $mode ); |
| 164 | + $extedit->edit(); |
| 165 | + } |
| 166 | + |
| 167 | + return false; |
| 168 | + } |
| 169 | + |
| 170 | + public function onEditPageBeforePreviewText( &$editPage, $previewOnOpen ) { |
| 171 | + global $wgUser, $wgRequest; |
| 172 | + |
| 173 | + if( $wgUser->getOption( 'showtoolbar' ) && !$wgUser->getOption( 'riched_disable' ) && !$previewOnOpen ) { |
| 174 | + $this->oldTextBox1 = $editPage->textbox1; |
| 175 | + $editPage->importFormData( $wgRequest ); |
| 176 | + } |
| 177 | + |
| 178 | + return true; |
| 179 | + } |
| 180 | + |
| 181 | + public function onEditPagePreviewTextEnd( &$editPage, $previewOnOpen ) { |
| 182 | + global $wgUser; |
| 183 | + |
| 184 | + if( $wgUser->getOption( 'showtoolbar' ) && !$wgUser->getOption( 'riched_disable' ) && !$previewOnOpen ) { |
| 185 | + $editPage->textbox1 = $this->oldTextBox1; |
| 186 | + } |
| 187 | + |
| 188 | + return true; |
| 189 | + } |
| 190 | + |
| 191 | + public function onParserAfterTidy( &$parser, &$text ) { |
| 192 | + global $wgUseTeX, $wgUser, $wgTitle, $wgFCKEditorIsCompatible; |
| 193 | + |
| 194 | + # Don't initialize for users that have chosen to disable the toolbar, rich editor or that do not have a FCKeditor-compatible browser |
| 195 | + if( !$wgUser->getOption( 'showtoolbar' ) || $wgUser->getOption( 'riched_disable' ) || !$wgFCKEditorIsCompatible ) { |
| 196 | + return true; |
| 197 | + } |
| 198 | + |
| 199 | + # Are we editing a page that's in an excluded namespace? If so, bail out. |
| 200 | + if( is_object( $wgTitle ) && in_array( $wgTitle->getNamespace(), $this->getExcludedNamespaces() ) ) { |
| 201 | + return true; |
| 202 | + } |
| 203 | + |
| 204 | + if( $wgUseTeX ) { |
| 205 | + // it may add much overload on page with huge amount of math content... |
| 206 | + $text = preg_replace( '/<img class="tex" alt="([^"]*)"/m', '<img _fckfakelement="true" _fck_mw_math="$1"', $text ); |
| 207 | + $text = preg_replace( "/<img class='tex' src=\"([^\"]*)\" alt=\"([^\"]*)\"/m", '<img src="$1" _fckfakelement="true" _fck_mw_math="$2"', $text ); |
| 208 | + } |
| 209 | + |
| 210 | + return true; |
| 211 | + } |
| 212 | + |
| 213 | + /** |
| 214 | + * Adds some new JS global variables |
| 215 | + * @param $vars Array: array of JS global variables |
| 216 | + * @return true |
| 217 | + */ |
| 218 | + public static function onMakeGlobalVariablesScript( $vars ){ |
| 219 | + global $wgFCKEditorDir, $wgFCKEditorExtDir, $wgFCKEditorToolbarSet, $wgFCKEditorHeight; |
| 220 | + |
| 221 | + $vars['wgFCKEditorDir'] = $wgFCKEditorDir; |
| 222 | + $vars['wgFCKEditorExtDir'] = $wgFCKEditorExtDir; |
| 223 | + $vars['wgFCKEditorToolbarSet'] = $wgFCKEditorToolbarSet; |
| 224 | + $vars['wgFCKEditorHeight'] = $wgFCKEditorHeight; |
| 225 | + |
| 226 | + return true; |
| 227 | + } |
| 228 | + |
| 229 | + /** |
| 230 | + * Adds new toggles into Special:Preferences |
| 231 | + * @param $user User object |
| 232 | + * @param $preferences Preferences object |
| 233 | + * @return true |
| 234 | + */ |
| 235 | + public static function onGetPreferences( $user, &$preferences ){ |
| 236 | + global $wgDefaultUserOptions; |
| 237 | + |
| 238 | + |
| 239 | + $preferences['riched_disable'] = array( |
| 240 | + 'type' => 'toggle', |
| 241 | + 'section' => 'editing/fckeditor', |
| 242 | + 'label-message' => 'tog-riched_disable', |
| 243 | + ); |
| 244 | + |
| 245 | + $preferences['riched_start_disabled'] = array( |
| 246 | + 'type' => 'toggle', |
| 247 | + 'section' => 'editing/fckeditor', |
| 248 | + 'label-message' => 'tog-riched_start_disabled', |
| 249 | + ); |
| 250 | + |
| 251 | + $preferences['riched_use_popup'] = array( |
| 252 | + 'type' => 'toggle', |
| 253 | + 'section' => 'editing/fckeditor', |
| 254 | + 'label-message' => 'tog-riched_use_popup', |
| 255 | + ); |
| 256 | + |
| 257 | + $preferences['riched_use_toggle'] = array( |
| 258 | + 'type' => 'toggle', |
| 259 | + 'section' => 'editing/fckeditor', |
| 260 | + 'label-message' => 'tog-riched_use_toggle', |
| 261 | + ); |
| 262 | + |
| 263 | + $preferences['riched_toggle_remember_state'] = array( |
| 264 | + 'type' => 'toggle', |
| 265 | + 'section' => 'editing/fckeditor', |
| 266 | + 'label-message' => 'tog-riched_toggle_remember_state', |
| 267 | + ); |
| 268 | + |
| 269 | + // Show default options in Special:Preferences |
| 270 | + if( !array_key_exists( 'riched_disable', $user->mOptions ) && !empty( $wgDefaultUserOptions['riched_disable'] ) ) |
| 271 | + $user->setOption( 'riched_disable', $wgDefaultUserOptions['riched_disable'] ); |
| 272 | + if( !array_key_exists( 'riched_start_disabled', $user->mOptions ) && !empty( $wgDefaultUserOptions['riched_start_disabled'] ) ) |
| 273 | + $user->setOption( 'riched_start_disabled', $wgDefaultUserOptions['riched_start_disabled'] ); |
| 274 | + if( !array_key_exists( 'riched_use_popup', $user->mOptions ) && !empty( $wgDefaultUserOptions['riched_use_popup'] ) ) |
| 275 | + $user->setOption( 'riched_use_popup', $wgDefaultUserOptions['riched_use_popup'] ); |
| 276 | + if( !array_key_exists( 'riched_use_toggle', $user->mOptions ) && !empty( $wgDefaultUserOptions['riched_use_toggle'] ) ) |
| 277 | + $user->setOption( 'riched_use_toggle', $wgDefaultUserOptions['riched_use_toggle'] ); |
| 278 | + if( !array_key_exists( 'riched_toggle_remember_state', $user->mOptions ) && !empty( $wgDefaultUserOptions['riched_toggle_remember_state'] ) ) |
| 279 | + $user->setOption( 'riched_toggle_remember_state', $wgDefaultUserOptions['riched_toggle_remember_state'] ); |
| 280 | + |
| 281 | + // Add the "disable rich editor on namespace X" toggles too |
| 282 | + foreach( self::$nsToggles as $newToggle ){ |
| 283 | + $preferences[$newToggle] = array( |
| 284 | + 'type' => 'toggle', |
| 285 | + 'section' => 'editing/fckeditor', |
| 286 | + 'label-message' => 'tog-' . $newToggle |
| 287 | + ); |
| 288 | + } |
| 289 | + |
| 290 | + return true; |
| 291 | + } |
| 292 | + |
| 293 | + /** |
| 294 | + * Add FCK script |
| 295 | + * |
| 296 | + * @param $form EditPage object |
| 297 | + * @return true |
| 298 | + */ |
| 299 | + public function onEditPageShowEditFormInitial( $form ) { |
| 300 | + global $wgOut, $wgTitle, $wgScriptPath, $wgContLang, $wgUser; |
| 301 | + global $wgStylePath, $wgStyleVersion, $wgExtensionFunctions, $wgHooks, $wgDefaultUserOptions; |
| 302 | + global $wgFCKWikiTextBeforeParse, $wgFCKEditorIsCompatible; |
| 303 | + global $wgFCKEditorDir; |
| 304 | + |
| 305 | + if( !isset( $this->showFCKEditor ) ){ |
| 306 | + $this->showFCKEditor = 0; |
| 307 | + if ( !$wgUser->getOption( 'riched_start_disabled', $wgDefaultUserOptions['riched_start_disabled'] ) ) { |
| 308 | + $this->showFCKEditor += RTE_VISIBLE; |
| 309 | + } |
| 310 | + if ( $wgUser->getOption( 'riched_use_popup', $wgDefaultUserOptions['riched_use_popup'] ) ) { |
| 311 | + $this->showFCKEditor += RTE_POPUP; |
| 312 | + } |
| 313 | + if ( $wgUser->getOption( 'riched_use_toggle', $wgDefaultUserOptions['riched_use_toggle'] ) ) { |
| 314 | + $this->showFCKEditor += RTE_TOGGLE_LINK; |
| 315 | + } |
| 316 | + } |
| 317 | + |
| 318 | + if( ( !empty( $_SESSION['showMyFCKeditor'] ) ) && ( $wgUser->getOption( 'riched_toggle_remember_state', $wgDefaultUserOptions['riched_toggle_remember_state'] ) ) ){ |
| 319 | + // Clear RTE_VISIBLE flag |
| 320 | + $this->showFCKEditor &= ~RTE_VISIBLE; |
| 321 | + // Get flag from session |
| 322 | + $this->showFCKEditor |= $_SESSION['showMyFCKeditor']; |
| 323 | + } |
| 324 | + |
| 325 | + # Don't initialize if we have disabled the toolbar or FCkeditor or have a non-compatible browser |
| 326 | + if( !$wgUser->getOption( 'showtoolbar' ) || |
| 327 | + $wgUser->getOption( 'riched_disable', !empty( $wgDefaultUserOptions['riched_disable'] ) ? $wgDefaultUserOptions['riched_disable'] : false ) |
| 328 | + || !$wgFCKEditorIsCompatible ) { |
| 329 | + return true; |
| 330 | + } |
| 331 | + |
| 332 | + # Don't do anything if we're in an excluded namespace |
| 333 | + if( in_array( $wgTitle->getNamespace(), $this->getExcludedNamespaces() ) ) { |
| 334 | + return true; |
| 335 | + } |
| 336 | + |
| 337 | + # Make sure that there's no __NORICHEDITOR__ in the text either |
| 338 | + if( false !== strpos( $form->textbox1, '__NORICHEDITOR__' ) ) { |
| 339 | + return true; |
| 340 | + } |
| 341 | + |
| 342 | + $wgFCKWikiTextBeforeParse = $form->textbox1; |
| 343 | + if( $this->showFCKEditor & RTE_VISIBLE ){ |
| 344 | + $options = new FCKeditorParserOptions(); |
| 345 | + $options->setTidy( true ); |
| 346 | + $parser = new FCKeditorParser(); |
| 347 | + $parser->setOutputType( OT_HTML ); |
| 348 | + $form->textbox1 = str_replace( '<!-- Tidy found serious XHTML errors -->', '', $parser->parse( $form->textbox1, $wgTitle, $options )->getText() ); |
| 349 | + } |
| 350 | + |
| 351 | + $printsheet = htmlspecialchars( "$wgStylePath/common/wikiprintable.css?$wgStyleVersion" ); |
| 352 | + |
| 353 | + $script = <<<HEREDOC |
| 354 | +<script type="text/javascript" src="$wgScriptPath/$wgFCKEditorDir/fckeditor.js"></script> |
| 355 | +<script type="text/javascript"> |
| 356 | +var sEditorAreaCSS = '$printsheet,/mediawiki/skins/monobook/main.css?{$wgStyleVersion}'; |
| 357 | +</script> |
| 358 | +<!--[if lt IE 5.5000]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE50Fixes.css?{$wgStyleVersion}'; </script><![endif]--> |
| 359 | +<!--[if IE 5.5000]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE55Fixes.css?{$wgStyleVersion}'; </script><![endif]--> |
| 360 | +<!--[if IE 6]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE60Fixes.css?{$wgStyleVersion}'; </script><![endif]--> |
| 361 | +<!--[if IE 7]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IE70Fixes.css?{$wgStyleVersion}'; </script><![endif]--> |
| 362 | +<!--[if lt IE 7]><script type="text/javascript">sEditorAreaCSS += ',/mediawiki/skins/monobook/IEFixes.css?{$wgStyleVersion}'; </script><![endif]--> |
| 363 | +HEREDOC; |
| 364 | + |
| 365 | + # Show references only if Cite extension has been installed |
| 366 | + $showRef = false; |
| 367 | + if( ( isset( $wgHooks['ParserFirstCallInit'] ) && in_array( 'wfCite', $wgHooks['ParserFirstCallInit'] ) ) || |
| 368 | + ( isset( $wgExtensionFunctions ) && in_array( 'wfCite', $wgExtensionFunctions ) ) ) { |
| 369 | + $showRef = true; |
| 370 | + } |
| 371 | + |
| 372 | + $showSource = false; |
| 373 | + if ( ( isset( $wgHooks['ParserFirstCallInit']) && in_array( 'efSyntaxHighlight_GeSHiSetup', $wgHooks['ParserFirstCallInit'] ) ) |
| 374 | + || ( isset( $wgExtensionFunctions ) && in_array( 'efSyntaxHighlight_GeSHiSetup', $wgExtensionFunctions ) ) ) { |
| 375 | + $showSource = true; |
| 376 | + } |
| 377 | + |
| 378 | + |
| 379 | + $script .= ' |
| 380 | +<script type="text/javascript"> |
| 381 | +var showFCKEditor = ' . $this->showFCKEditor . '; |
| 382 | +var popup = false; // pointer to popup document |
| 383 | +var firstLoad = true; |
| 384 | +var editorMsgOn = "' . Xml::escapeJsString( wfMsgHtml( 'textrichditor' ) ) . '"; |
| 385 | +var editorMsgOff = "' . Xml::escapeJsString( wfMsgHtml( 'tog-riched_disable' ) ) . '"; |
| 386 | +var editorLink = "' . ( ( $this->showFCKEditor & RTE_VISIBLE ) ? Xml::escapeJsString( wfMsgHtml( 'tog-riched_disable' ) ) : Xml::escapeJsString( wfMsgHtml( 'textrichditor' ) ) ) . '"; |
| 387 | +var saveSetting = ' . ( $wgUser->getOption( 'riched_toggle_remember_state', $wgDefaultUserOptions['riched_toggle_remember_state'] ) ? 1 : 0 ) . '; |
| 388 | +var RTE_VISIBLE = ' . RTE_VISIBLE . '; |
| 389 | +var RTE_TOGGLE_LINK = ' . RTE_TOGGLE_LINK . '; |
| 390 | +var RTE_POPUP = ' . RTE_POPUP . '; |
| 391 | + |
| 392 | + |
| 393 | +var oFCKeditor = new FCKeditor( "wpTextbox1" ); |
| 394 | + |
| 395 | +// Set config |
| 396 | +oFCKeditor.BasePath = wgScriptPath + "/" + wgFCKEditorDir; |
| 397 | +oFCKeditor.Config["CustomConfigurationsPath"] = wgScriptPath + "/" + wgFCKEditorExtDir + "/fckeditor_config.js";'; |
| 398 | + // Load fckeditor-rtl.css for right-to-left languages, but only fckeditor.css for other languages |
| 399 | + if( $wgContLang->isRTL() ) { |
| 400 | + $script .= 'oFCKeditor.Config["EditorAreaCSS"] = wgScriptPath + "/" + wgFCKEditorExtDir + "/css/fckeditor.css," + wgScriptPath + "/" + wgFCKEditorExtDir + "/css/fckeditor-rtl.css";'; |
| 401 | + } else { |
| 402 | + $script .= 'oFCKeditor.Config["EditorAreaCSS"] = wgScriptPath + "/" + wgFCKEditorExtDir + "/css/fckeditor.css";'; |
| 403 | + } |
| 404 | + $script .= ' |
| 405 | +oFCKeditor.ToolbarSet = wgFCKEditorToolbarSet; |
| 406 | +oFCKeditor.ready = true; |
| 407 | +oFCKeditor.Config["showreferences"] = ' . ( ( $showRef ) ? 'true' : 'false' ) . '; |
| 408 | +oFCKeditor.Config["showsource"] = ' . ( ( $showSource ) ? 'true' : 'false' ) . '; |
| 409 | +'; |
| 410 | + $script .= '</script>'; |
| 411 | + |
| 412 | + $newWinMsg = Xml::escapeJsString( wfMsgHtml( 'rich_editor_new_window' ) ); |
| 413 | + $script .= <<<HEREDOC |
| 414 | +<script type="text/javascript"> |
| 415 | + |
| 416 | +//IE hack to call func from popup |
| 417 | +function FCK_sajax(func_name, args, target) { |
| 418 | + sajax_request_type = 'POST'; |
| 419 | + sajax_do_call(func_name, args, function (x) { |
| 420 | + // I know this is function, not object |
| 421 | + target(x); |
| 422 | + } |
| 423 | + ); |
| 424 | +} |
| 425 | + |
| 426 | +function onLoadFCKeditor(){ |
| 427 | + if( !( showFCKEditor & RTE_VISIBLE ) ) |
| 428 | + showFCKEditor += RTE_VISIBLE; |
| 429 | + firstLoad = false; |
| 430 | + realTextarea = document.getElementById( 'wpTextbox1' ); |
| 431 | + if ( realTextarea ){ |
| 432 | + var height = wgFCKEditorHeight; |
| 433 | + realTextarea.style.display = 'none'; |
| 434 | + if ( height == 0 ){ |
| 435 | + // Get the window (inner) size. |
| 436 | + var height = window.innerHeight || ( document.documentElement && document.documentElement.clientHeight ) || 550; |
| 437 | + |
| 438 | + // Reduce the height to the offset of the toolbar. |
| 439 | + var offset = document.getElementById( 'wikiPreview' ) || document.getElementById( 'toolbar' ); |
| 440 | + while ( offset ){ |
| 441 | + height -= offset.offsetTop; |
| 442 | + offset = offset.offsetParent; |
| 443 | + } |
| 444 | + |
| 445 | + // Add a small space to be left in the bottom. |
| 446 | + height -= 20; |
| 447 | + } |
| 448 | + |
| 449 | + // Enforce a minimum height. |
| 450 | + height = ( !height || height < 300 ) ? 300 : height; |
| 451 | + |
| 452 | + // Create the editor instance and replace the textarea. |
| 453 | + oFCKeditor.Height = height; |
| 454 | + oFCKeditor.ReplaceTextarea(); |
| 455 | + |
| 456 | + // Hide the default toolbar. |
| 457 | + document.getElementById( 'toolbar' ).style.display = 'none'; |
| 458 | + |
| 459 | + // do things with CharInsert for example |
| 460 | + var edittools_markup = document.getElementById( 'editpage-specialchars' ); |
| 461 | + if( edittools_markup ) { |
| 462 | + edittools_markup.style.display = 'none'; |
| 463 | + } |
| 464 | + FCKeditorInsertTags = function( tagOpen, tagClose, sampleText, oDoc ){ |
| 465 | + var txtarea; |
| 466 | + |
| 467 | + if ( !( typeof(oDoc.FCK) == "undefined" ) && !( typeof(oDoc.FCK.EditingArea) == "undefined" ) ){ |
| 468 | + txtarea = oDoc.FCK.EditingArea.Textarea; |
| 469 | + } elseif( oDoc.editform ){ |
| 470 | + // if we have FCK enabled, behave differently... |
| 471 | + if ( showFCKEditor & RTE_VISIBLE ){ |
| 472 | + SRCiframe = oDoc.getElementById( 'wpTextbox1___Frame' ); |
| 473 | + if ( SRCiframe ){ |
| 474 | + if( window.frames[SRCiframe] ) |
| 475 | + SRCdoc = window.frames[SRCiframe].oDoc; |
| 476 | + else |
| 477 | + SRCdoc = SRCiframe.contentDocument; |
| 478 | + |
| 479 | + var SRCarea = SRCdoc.getElementById( 'xEditingArea' ).firstChild; |
| 480 | + |
| 481 | + if( SRCarea ) |
| 482 | + txtarea = SRCarea; |
| 483 | + else |
| 484 | + return false; |
| 485 | + |
| 486 | + } else { |
| 487 | + return false; |
| 488 | + } |
| 489 | + } else { |
| 490 | + txtarea = oDoc.editform.wpTextbox1; |
| 491 | + } |
| 492 | + } else { |
| 493 | + // some alternate form? take the first one we can find |
| 494 | + var areas = oDoc.getElementsByTagName( 'textarea' ); |
| 495 | + txtarea = areas[0]; |
| 496 | + } |
| 497 | + |
| 498 | + var selText, isSample = false; |
| 499 | + |
| 500 | + if ( oDoc.selection && oDoc.selection.createRange ){ // IE/Opera |
| 501 | + |
| 502 | + // save window scroll position |
| 503 | + if ( oDoc.documentElement && oDoc.documentElement.scrollTop ) |
| 504 | + var winScroll = oDoc.documentElement.scrollTop; |
| 505 | + elseif ( oDoc.body ) |
| 506 | + var winScroll = oDoc.body.scrollTop; |
| 507 | + |
| 508 | + // get current selection |
| 509 | + txtarea.focus(); |
| 510 | + var range = oDoc.selection.createRange(); |
| 511 | + selText = range.text; |
| 512 | + // insert tags |
| 513 | + checkSelected(); |
| 514 | + range.text = tagOpen + selText + tagClose; |
| 515 | + // mark sample text as selected |
| 516 | + if ( isSample && range.moveStart ){ |
| 517 | + if( window.opera ) |
| 518 | + tagClose = tagClose.replace(/\\n/g,''); // check it out one more time |
| 519 | + range.moveStart( 'character', - tagClose.length - selText.length ); |
| 520 | + range.moveEnd( 'character', - tagClose.length ); |
| 521 | + } |
| 522 | + range.select(); |
| 523 | + // restore window scroll position |
| 524 | + if ( oDoc.documentElement && oDoc.documentElement.scrollTop ) |
| 525 | + oDoc.documentElement.scrollTop = winScroll; |
| 526 | + elseif ( oDoc.body ) |
| 527 | + oDoc.body.scrollTop = winScroll; |
| 528 | + |
| 529 | + } elseif ( txtarea.selectionStart || txtarea.selectionStart == '0' ){ // Mozilla |
| 530 | + |
| 531 | + // save textarea scroll position |
| 532 | + var textScroll = txtarea.scrollTop; |
| 533 | + // get current selection |
| 534 | + txtarea.focus(); |
| 535 | + var startPos = txtarea.selectionStart; |
| 536 | + var endPos = txtarea.selectionEnd; |
| 537 | + selText = txtarea.value.substring( startPos, endPos ); |
| 538 | + |
| 539 | + // insert tags |
| 540 | + if( !selText ){ |
| 541 | + selText = sampleText; |
| 542 | + isSample = true; |
| 543 | + } elseif( selText.charAt(selText.length - 1) == ' ' ){ //exclude ending space char |
| 544 | + selText = selText.substring(0, selText.length - 1); |
| 545 | + tagClose += ' '; |
| 546 | + } |
| 547 | + txtarea.value = txtarea.value.substring(0, startPos) + tagOpen + selText + tagClose + |
| 548 | + txtarea.value.substring(endPos, txtarea.value.length); |
| 549 | + // set new selection |
| 550 | + if( isSample ){ |
| 551 | + txtarea.selectionStart = startPos + tagOpen.length; |
| 552 | + txtarea.selectionEnd = startPos + tagOpen.length + selText.length; |
| 553 | + } else { |
| 554 | + txtarea.selectionStart = startPos + tagOpen.length + selText.length + tagClose.length; |
| 555 | + txtarea.selectionEnd = txtarea.selectionStart; |
| 556 | + } |
| 557 | + // restore textarea scroll position |
| 558 | + txtarea.scrollTop = textScroll; |
| 559 | + } |
| 560 | + } |
| 561 | + } |
| 562 | +} |
| 563 | +function checkSelected(){ |
| 564 | + if( !selText ) { |
| 565 | + selText = sampleText; |
| 566 | + isSample = true; |
| 567 | + } elseif( selText.charAt(selText.length - 1) == ' ' ) { //exclude ending space char |
| 568 | + selText = selText.substring(0, selText.length - 1); |
| 569 | + tagClose += ' ' |
| 570 | + } |
| 571 | +} |
| 572 | +function initEditor(){ |
| 573 | + var toolbar = document.getElementById( 'toolbar' ); |
| 574 | + // show popup or toogle link |
| 575 | + if( showFCKEditor & ( RTE_POPUP|RTE_TOGGLE_LINK ) ){ |
| 576 | + // add new toolbar before wiki toolbar |
| 577 | + var fckTools = document.createElement( 'div' ); |
| 578 | + fckTools.setAttribute('id', 'fckTools'); |
| 579 | + toolbar.parentNode.insertBefore( fckTools, toolbar ); |
| 580 | + |
| 581 | + var SRCtextarea = document.getElementById( 'wpTextbox1' ); |
| 582 | + if( showFCKEditor & RTE_VISIBLE ) SRCtextarea.style.display = 'none'; |
| 583 | + } |
| 584 | + |
| 585 | + if( showFCKEditor & RTE_TOGGLE_LINK ){ |
| 586 | + fckTools.innerHTML='[<a class="fckToogle" id="toggle_wpTextbox1" href="javascript:void(0)" onclick="ToggleFCKEditor(\'toggle\',\'wpTextbox1\')">'+ editorLink +'</a>] '; |
| 587 | + } |
| 588 | + if( showFCKEditor & RTE_POPUP ){ |
| 589 | + var style = (showFCKEditor & RTE_VISIBLE) ? 'style="display:none"' : ""; |
| 590 | + fckTools.innerHTML+='<span ' + style + ' id="popup_wpTextbox1">[<a class="fckPopup" href="javascript:void(0)" onclick="ToggleFCKEditor(\'popup\',\'wpTextbox1\')">{$newWinMsg}</a>]</span>'; |
| 591 | + } |
| 592 | + |
| 593 | + if( showFCKEditor & RTE_VISIBLE ){ |
| 594 | + if ( toolbar ){ // insert wiki buttons |
| 595 | + // Remove the mwSetupToolbar onload hook to avoid a JavaScript error with FF. |
| 596 | + if ( window.removeEventListener ) |
| 597 | + window.removeEventListener( 'load', mwSetupToolbar, false ); |
| 598 | + elseif ( window.detachEvent ) |
| 599 | + window.detachEvent( 'onload', mwSetupToolbar ); |
| 600 | + mwSetupToolbar = function(){ return false ; }; |
| 601 | + |
| 602 | + for( var i = 0; i < mwEditButtons.length; i++ ) { |
| 603 | + mwInsertEditButton(toolbar, mwEditButtons[i]); |
| 604 | + } |
| 605 | + for( var i = 0; i < mwCustomEditButtons.length; i++ ) { |
| 606 | + mwInsertEditButton(toolbar, mwCustomEditButtons[i]); |
| 607 | + } |
| 608 | + } |
| 609 | + onLoadFCKeditor(); |
| 610 | + } |
| 611 | + return true; |
| 612 | +} |
| 613 | +addOnloadHook( initEditor ); |
| 614 | + |
| 615 | +HEREDOC; |
| 616 | + |
| 617 | +if( $this->showFCKEditor & ( RTE_TOGGLE_LINK | RTE_POPUP ) ){ |
| 618 | + // add toggle link and handler |
| 619 | + $script .= <<<HEREDOC |
| 620 | + |
| 621 | +function ToggleFCKEditor( mode, objId ){ |
| 622 | + var SRCtextarea = document.getElementById( objId ); |
| 623 | + if( mode == 'popup' ){ |
| 624 | + if ( ( showFCKEditor & RTE_VISIBLE ) && ( FCKeditorAPI ) ) { // if FCKeditor is up-to-date |
| 625 | + var oEditorIns = FCKeditorAPI.GetInstance( objId ); |
| 626 | + var text = oEditorIns.GetData( oEditorIns.Config.FormatSource ); |
| 627 | + SRCtextarea.value = text; // copy text to textarea |
| 628 | + } |
| 629 | + FCKeditor_OpenPopup('oFCKeditor', objId); |
| 630 | + return true; |
| 631 | + } |
| 632 | + |
| 633 | + var oToggleLink = document.getElementById( 'toggle_' + objId ); |
| 634 | + var oPopupLink = document.getElementById( 'popup_' + objId ); |
| 635 | + |
| 636 | + if ( firstLoad ){ |
| 637 | + // firstLoad = true => FCKeditor start invisible |
| 638 | + if( oToggleLink ) oToggleLink.innerHTML = 'Loading...'; |
| 639 | + sajax_request_type = 'POST'; |
| 640 | + oFCKeditor.ready = false; |
| 641 | + sajax_do_call('wfSajaxWikiToHTML', [SRCtextarea.value], function( result ){ |
| 642 | + if ( firstLoad ){ //still |
| 643 | + SRCtextarea.value = result.responseText; // insert parsed text |
| 644 | + onLoadFCKeditor(); |
| 645 | + if( oToggleLink ) oToggleLink.innerHTML = editorMsgOff; |
| 646 | + oFCKeditor.ready = true; |
| 647 | + } |
| 648 | + }); |
| 649 | + return true; |
| 650 | + } |
| 651 | + |
| 652 | + if( !oFCKeditor.ready ) return false; // sajax_do_call in action |
| 653 | + if( !FCKeditorAPI ) return false; // not loaded yet |
| 654 | + var oEditorIns = FCKeditorAPI.GetInstance( objId ); |
| 655 | + var oEditorIframe = document.getElementById( objId + '___Frame' ); |
| 656 | + var FCKtoolbar = document.getElementById( 'toolbar' ); |
| 657 | + var bIsWysiwyg = ( oEditorIns.EditMode == FCK_EDITMODE_WYSIWYG ); |
| 658 | + |
| 659 | + //FCKeditor visible -> hidden |
| 660 | + if ( showFCKEditor & RTE_VISIBLE ){ |
| 661 | + var text = oEditorIns.GetData( oEditorIns.Config.FormatSource ); |
| 662 | + SRCtextarea.value = text; |
| 663 | + if ( bIsWysiwyg ) oEditorIns.SwitchEditMode(); // switch to plain |
| 664 | + var text = oEditorIns.GetData( oEditorIns.Config.FormatSource ); |
| 665 | + // copy from FCKeditor to textarea |
| 666 | + SRCtextarea.value = text; |
| 667 | + if( saveSetting ){ |
| 668 | + sajax_request_type = 'GET'; |
| 669 | + sajax_do_call( 'wfSajaxToggleFCKeditor', ['hide'], function(){} ); //remember closing in session |
| 670 | + } |
| 671 | + if( oToggleLink ) oToggleLink.innerHTML = editorMsgOn; |
| 672 | + if( oPopupLink ) oPopupLink.style.display = ''; |
| 673 | + showFCKEditor -= RTE_VISIBLE; |
| 674 | + oEditorIframe.style.display = 'none'; |
| 675 | + FCKtoolbar.style.display = ''; |
| 676 | + SRCtextarea.style.display = ''; |
| 677 | + } else { |
| 678 | + // FCKeditor hidden -> visible |
| 679 | + if ( bIsWysiwyg ) oEditorIns.SwitchEditMode(); // switch to plain |
| 680 | + SRCtextarea.style.display = 'none'; |
| 681 | + // copy from textarea to FCKeditor |
| 682 | + oEditorIns.EditingArea.Textarea.value = SRCtextarea.value; |
| 683 | + FCKtoolbar.style.display = 'none'; |
| 684 | + oEditorIframe.style.display = ''; |
| 685 | + if ( !bIsWysiwyg ) oEditorIns.SwitchEditMode(); // switch to WYSIWYG |
| 686 | + showFCKEditor += RTE_VISIBLE; // showFCKEditor+=RTE_VISIBLE |
| 687 | + if( oToggleLink ) oToggleLink.innerHTML = editorMsgOff; |
| 688 | + if( oPopupLink ) oPopupLink.style.display = 'none'; |
| 689 | + } |
| 690 | + return true; |
| 691 | +} |
| 692 | + |
| 693 | +HEREDOC; |
| 694 | +} |
| 695 | + |
| 696 | +if( $this->showFCKEditor & RTE_POPUP ){ |
| 697 | + $script .= <<<HEREDOC |
| 698 | + |
| 699 | +function FCKeditor_OpenPopup(jsID, textareaID){ |
| 700 | + popupUrl = wgFCKEditorExtDir + '/FCKeditor.popup.html'; |
| 701 | + popupUrl = popupUrl + '?var='+ jsID + '&el=' + textareaID; |
| 702 | + window.open(popupUrl, null, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=1,dependent=yes'); |
| 703 | + return 0; |
| 704 | +} |
| 705 | +HEREDOC; |
| 706 | +} |
| 707 | +$script .= '</script>'; |
| 708 | + |
| 709 | + $wgOut->addScript( $script ); |
| 710 | + |
| 711 | + return true; |
| 712 | + } |
| 713 | + |
| 714 | +} |
Property changes on: trunk/extensions/FCKeditor/FCKeditor.body.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 715 | + native |
Index: trunk/extensions/FCKeditor/OBSOLETE |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +Per the upstream bug tracker http://dev.ckeditor.com/ticket/5602 and http://dev.ckeditor.com/ticket/6273 |
| 3 | +"MediaWiki and FCKeditor are no longer supported. Closing the ticked." |
| 4 | + |
| 5 | +This extension is obsolete and as per above, unsupported by the upstream developers |
Index: trunk/extensions/FCKeditor/FCKeditor.i18n.php |
— | — | @@ -0,0 +1,1531 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * Internationalization file for FCKeditor extension. |
| 5 | + * |
| 6 | + * @file |
| 7 | + * @ingroup Extensions |
| 8 | + */ |
| 9 | + |
| 10 | +$messages = array(); |
| 11 | + |
| 12 | +/** English */ |
| 13 | +$messages['en'] = array( |
| 14 | + 'fckeditor-desc' => 'Allow editing using the WYSIWYG editor FCKeditor', |
| 15 | + 'textrichditor' => 'Rich Editor', |
| 16 | + 'prefs-fckeditor' => 'Rich Editor', |
| 17 | + 'tog-riched_disable' => 'Disable rich editor', |
| 18 | + 'tog-riched_disable_ns_main' => 'Disable rich editor within the main namespace', |
| 19 | + 'tog-riched_disable_ns_talk' => 'Disable rich editor within the "{{ns:talk}}" namespace', |
| 20 | + 'tog-riched_disable_ns_user' => 'Disable rich editor within the "{{ns:user}}" namespace', |
| 21 | + 'tog-riched_disable_ns_user_talk' => 'Disable rich editor within the "{{ns:user_talk}}" namespace', |
| 22 | + 'tog-riched_disable_ns_project' => 'Disable rich editor within the "{{ns:project}}" namespace', |
| 23 | + 'tog-riched_disable_ns_project_talk' => 'Disable rich editor within the "{{ns:project_talk}}" namespace', |
| 24 | + 'tog-riched_disable_ns_image' => 'Disable rich editor within the "{{ns:file}}" namespace', |
| 25 | + 'tog-riched_disable_ns_image_talk' => 'Disable rich editor within the "{{ns:file_talk}}" namespace', |
| 26 | + 'tog-riched_disable_ns_mediawiki' => 'Disable rich editor within the "{{ns:mediawiki}}" namespace', |
| 27 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Disable rich editor within the "{{ns:mediawiki_talk}}" namespace', |
| 28 | + 'tog-riched_disable_ns_template' => 'Disable rich editor within the "{{ns:template}}" namespace', |
| 29 | + 'tog-riched_disable_ns_template_talk' => 'Disable rich editor within the "{{ns:template_talk}}" namespace', |
| 30 | + 'tog-riched_disable_ns_help' => 'Disable rich editor within the "{{ns:help}}" namespace', |
| 31 | + 'tog-riched_disable_ns_help_talk' => 'Disable rich editor within the "{{ns:help_talk}}" namespace', |
| 32 | + 'tog-riched_disable_ns_category' => 'Disable rich editor within the "{{ns:category}}" namespace', |
| 33 | + 'tog-riched_disable_ns_category_talk' => 'Disable rich editor within the "{{ns:category_talk}}" namespace', |
| 34 | + 'rich_editor_new_window' => 'Open Rich editor in new window', |
| 35 | + 'tog-riched_start_disabled' => 'Start with rich editor disabled', |
| 36 | + 'tog-riched_use_popup' => 'Open rich editor in a popup', |
| 37 | + 'tog-riched_use_toggle' => 'Use toggle to switch between wikitext and rich editor (replace textarea with rich editor)', |
| 38 | + 'tog-riched_toggle_remember_state' => 'Remember last toggle state', |
| 39 | +); |
| 40 | + |
| 41 | +/** Message documentation (Message documentation) |
| 42 | + * @author Pinodd |
| 43 | + * @author Umherirrender |
| 44 | + */ |
| 45 | +$messages['qqq'] = array( |
| 46 | + 'fckeditor-desc' => '{{desc}}', |
| 47 | + 'textrichditor' => "questo dovrebbe essere solo il nome dell'estensione e quindi lo lascerei com'è", |
| 48 | + 'prefs-fckeditor' => "questo dovrebbe essere semplicemente il nome dell'estensione e a mio parere va lasciato così com'è", |
| 49 | +); |
| 50 | + |
| 51 | +/** Arabic (العربية) |
| 52 | + * @author Meno25 |
| 53 | + * @author OsamaK |
| 54 | + */ |
| 55 | +$messages['ar'] = array( |
| 56 | + 'fckeditor-desc' => 'يسمح بالتعديل باستخدام محرر الWYSIWYG FCKeditor', |
| 57 | + 'textrichditor' => 'محرر متقدم', |
| 58 | + 'prefs-fckeditor' => 'محرّر غني', |
| 59 | + 'tog-riched_disable' => 'عطل المحرر المتقدم', |
| 60 | + 'tog-riched_disable_ns_main' => 'عطل المحرر المتقدم في النطاق الرئيسي', |
| 61 | + 'tog-riched_disable_ns_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:talk}}"', |
| 62 | + 'tog-riched_disable_ns_user' => 'عطل المحرر المتقدم في نطاق "{{ns:user}}"', |
| 63 | + 'tog-riched_disable_ns_user_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:user_talk}}"', |
| 64 | + 'tog-riched_disable_ns_project' => 'عطل المحرر المتقدم في نطاق "{{ns:project}}"', |
| 65 | + 'tog-riched_disable_ns_project_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:project_talk}}"', |
| 66 | + 'tog-riched_disable_ns_image' => 'عطل المحرر المتقدم في نطاق "{{ns:file}}"', |
| 67 | + 'tog-riched_disable_ns_image_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:file_talk}}"', |
| 68 | + 'tog-riched_disable_ns_mediawiki' => 'عطل المحرر المتقدم في نطاق "{{ns:mediawiki}}"', |
| 69 | + 'tog-riched_disable_ns_mediawiki_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:mediawiki_talk}}"', |
| 70 | + 'tog-riched_disable_ns_template' => 'عطل المحرر المتقدم في نطاق "{{ns:template}}"', |
| 71 | + 'tog-riched_disable_ns_template_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:template_talk}}"', |
| 72 | + 'tog-riched_disable_ns_help' => 'عطل المحرر المتقدم في نطاق "{{ns:help}}"', |
| 73 | + 'tog-riched_disable_ns_help_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:help_talk}}"', |
| 74 | + 'tog-riched_disable_ns_category' => 'عطل المحرر المتقدم في نطاق "{{ns:category}}"', |
| 75 | + 'tog-riched_disable_ns_category_talk' => 'عطل المحرر المتقدم في نطاق "{{ns:category_talk}}"', |
| 76 | + 'rich_editor_new_window' => 'افتح المحرر الغني في نافذة جديدة', |
| 77 | + 'tog-riched_start_disabled' => 'ابدأ بتعطيل المحرر الغني', |
| 78 | + 'tog-riched_use_popup' => 'افتح المحرر الغني في نافذة منبثقة', |
| 79 | + 'tog-riched_use_toggle' => 'استخدم التبديل للتغيير بين نص الويكي والمحرر الغني (استبدل مساحة النص بالمحرر الغني)', |
| 80 | + 'tog-riched_toggle_remember_state' => 'تذكر آخر حالة تبديل', |
| 81 | +); |
| 82 | + |
| 83 | +/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) |
| 84 | + * @author EugeneZelenko |
| 85 | + * @author Jim-by |
| 86 | + */ |
| 87 | +$messages['be-tarask'] = array( |
| 88 | + 'fckeditor-desc' => 'Дазваляе рэдагаваньне з дапамогай WYSIWYG рэдактара FCKeditor', |
| 89 | + 'textrichditor' => 'Палепшаны рэдактар', |
| 90 | + 'prefs-fckeditor' => 'Палепшаны рэдактар', |
| 91 | + 'tog-riched_disable' => 'Адключыць палепшаны рэдактар', |
| 92 | + 'tog-riched_disable_ns_main' => 'Адключыць палепшаны рэдактар у асноўнай прасторы назваў', |
| 93 | + 'tog-riched_disable_ns_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:Talk}}»', |
| 94 | + 'tog-riched_disable_ns_user' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:User}}»', |
| 95 | + 'tog-riched_disable_ns_user_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:User_talk}}»', |
| 96 | + 'tog-riched_disable_ns_project' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:Project}}»', |
| 97 | + 'tog-riched_disable_ns_project_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:Project_talk}}»', |
| 98 | + 'tog-riched_disable_ns_image' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:file}}»', |
| 99 | + 'tog-riched_disable_ns_image_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:file_talk}}»', |
| 100 | + 'tog-riched_disable_ns_mediawiki' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:mediawiki}}»', |
| 101 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:mediawiki_talk}}»', |
| 102 | + 'tog-riched_disable_ns_template' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:template}}»', |
| 103 | + 'tog-riched_disable_ns_template_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:template_talk}}»', |
| 104 | + 'tog-riched_disable_ns_help' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:help}}»', |
| 105 | + 'tog-riched_disable_ns_help_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:help_talk}}»', |
| 106 | + 'tog-riched_disable_ns_category' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:category}}»', |
| 107 | + 'tog-riched_disable_ns_category_talk' => 'Адключыць палепшаны рэдактар у прасторы назваў «{{ns:category_talk}}»', |
| 108 | + 'rich_editor_new_window' => 'Адчыніць палепшаны рэдактар ў новым акне', |
| 109 | + 'tog-riched_start_disabled' => 'Пачынаць працу з адключаным палепшаным рэдактарам', |
| 110 | + 'tog-riched_use_popup' => 'Адчыніць палепшаны рэдактар ў дадатковым акенцы', |
| 111 | + 'tog-riched_use_toggle' => 'Выкарыстоўваць пераключальнік паміж звычайным і палепшаным рэдактарам (замяняе тэкставае поле на палепшаны рэдактар)', |
| 112 | + 'tog-riched_toggle_remember_state' => 'Памятаць апошні стан пераключальніка', |
| 113 | +); |
| 114 | + |
| 115 | +/** Bulgarian (Български) |
| 116 | + * @author Borislav |
| 117 | + * @author DCLXVI |
| 118 | + */ |
| 119 | +$messages['bg'] = array( |
| 120 | + 'fckeditor-desc' => 'Възможност за редактиране с помощта на разширения редактор FCKeditor', |
| 121 | + 'textrichditor' => 'Разширен редактор', |
| 122 | + 'prefs-fckeditor' => 'Разширен редактор', |
| 123 | + 'tog-riched_disable' => 'Изключване на разширения редактор', |
| 124 | + 'tog-riched_disable_ns_main' => 'Изключване на разширения редактор в основното именно пространство', |
| 125 | + 'tog-riched_disable_ns_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:Talk}}“', |
| 126 | + 'tog-riched_disable_ns_user' => 'Изключване на разширения редактор в именно пространство „{{ns:User}}“', |
| 127 | + 'tog-riched_disable_ns_user_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:User_talk}}“', |
| 128 | + 'tog-riched_disable_ns_project' => 'Изключване на разширения редактор в именно пространство „{{ns:Project}}“', |
| 129 | + 'tog-riched_disable_ns_project_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:Project_talk}}“', |
| 130 | + 'tog-riched_disable_ns_image' => 'Изключване на разширения редактор в именно пространство „{{ns:Image}}“', |
| 131 | + 'tog-riched_disable_ns_image_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:Image_talk}}“', |
| 132 | + 'tog-riched_disable_ns_mediawiki' => 'Изключване на разширения редактор в именно пространство „{{ns:MediaWiki}}“', |
| 133 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:MediaWiki_talk}}“', |
| 134 | + 'tog-riched_disable_ns_template' => 'Изключване на разширения редактор в именно пространство „{{ns:Template}}“', |
| 135 | + 'tog-riched_disable_ns_template_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:Template_talk}}“', |
| 136 | + 'tog-riched_disable_ns_help' => 'Изключване на разширения редактор в именно пространство „{{ns:Help}}“', |
| 137 | + 'tog-riched_disable_ns_help_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:Help_talk}}“', |
| 138 | + 'tog-riched_disable_ns_category' => 'Изключване на разширения редактор в именно пространство „{{ns:Category}}“', |
| 139 | + 'tog-riched_disable_ns_category_talk' => 'Изключване на разширения редактор в именно пространство „{{ns:Category_talk}}“', |
| 140 | + 'rich_editor_new_window' => 'Разширен редактор в нов прозорец', |
| 141 | + 'tog-riched_start_disabled' => 'Без автоматично пускане на разширения редактор', |
| 142 | + 'tog-riched_use_popup' => 'Отваряне на разширения редактор в нов прозорец', |
| 143 | + 'tog-riched_use_toggle' => 'Възможност за превключване между уикитекст и разширен редактор (замества текстовото поле с разширения редактор)', |
| 144 | + 'tog-riched_toggle_remember_state' => 'Запомняне на текущото състояние', |
| 145 | +); |
| 146 | + |
| 147 | +/** Bengali (বাংলা) |
| 148 | + * @author Wikitanvir |
| 149 | + */ |
| 150 | +$messages['bn'] = array( |
| 151 | + 'textrichditor' => 'রিচ এডিটর', |
| 152 | + 'prefs-fckeditor' => 'রিচ এডিটর', |
| 153 | + 'tog-riched_disable' => 'রিচ এডিটর নিষ্ক্রিয় করো', |
| 154 | + 'tog-riched_disable_ns_main' => 'প্রধান নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 155 | + 'tog-riched_disable_ns_talk' => '"{{ns:talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 156 | + 'tog-riched_disable_ns_user' => '"{{ns:user}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 157 | + 'tog-riched_disable_ns_user_talk' => '"{{ns:user_talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 158 | + 'tog-riched_disable_ns_project' => '"{{ns:project}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 159 | + 'tog-riched_disable_ns_project_talk' => '"{{ns:project_talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 160 | + 'tog-riched_disable_ns_image' => '"{{ns:file}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 161 | + 'tog-riched_disable_ns_image_talk' => '"{{ns:file_talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 162 | + 'tog-riched_disable_ns_mediawiki' => '"{{ns:mediawiki}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 163 | + 'tog-riched_disable_ns_mediawiki_talk' => '"{{ns:mediawiki_talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 164 | + 'tog-riched_disable_ns_template' => '"{{ns:template}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 165 | + 'tog-riched_disable_ns_template_talk' => '"{{ns:template_talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 166 | + 'tog-riched_disable_ns_help' => '"{{ns:help}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 167 | + 'tog-riched_disable_ns_help_talk' => '"{{ns:help_talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 168 | + 'tog-riched_disable_ns_category' => '"{{ns:category}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 169 | + 'tog-riched_disable_ns_category_talk' => '"{{ns:category_talk}}" নামস্থানে রিচ এডিটর নিষ্ক্রিয় করো', |
| 170 | + 'rich_editor_new_window' => 'রিচ এডিটর নতুন পাতায় চালু করো', |
| 171 | +); |
| 172 | + |
| 173 | +/** Breton (Brezhoneg) |
| 174 | + * @author Fulup |
| 175 | + */ |
| 176 | +$messages['br'] = array( |
| 177 | + 'fckeditor-desc' => 'Aotren a ra implijout ar skridaozer WYSIWYG FCKeditor evit degas kemmoù', |
| 178 | + 'textrichditor' => 'Skridaozer Pinvidikaet', |
| 179 | + 'prefs-fckeditor' => 'Skridaozer Pinvidikaet', |
| 180 | + 'tog-riched_disable' => 'Diweredekaat ar skridaozer pinvidikaet', |
| 181 | + 'tog-riched_disable_ns_main' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv pennañ.', |
| 182 | + 'tog-riched_disable_ns_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:talk}}"', |
| 183 | + 'tog-riched_disable_ns_user' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:user}}"', |
| 184 | + 'tog-riched_disable_ns_user_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:user_talk}}"', |
| 185 | + 'tog-riched_disable_ns_project' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:project}}"', |
| 186 | + 'tog-riched_disable_ns_project_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:project_talk}}"', |
| 187 | + 'tog-riched_disable_ns_image' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:file}}"', |
| 188 | + 'tog-riched_disable_ns_image_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:file_talk}}"', |
| 189 | + 'tog-riched_disable_ns_mediawiki' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:mediawiki}}"', |
| 190 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:mediawiki_talk}}"', |
| 191 | + 'tog-riched_disable_ns_template' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:template}}"', |
| 192 | + 'tog-riched_disable_ns_template_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:template_talk}}"', |
| 193 | + 'tog-riched_disable_ns_help' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:help}}"', |
| 194 | + 'tog-riched_disable_ns_help_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:help_talk}}"', |
| 195 | + 'tog-riched_disable_ns_category' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:category}}"', |
| 196 | + 'tog-riched_disable_ns_category_talk' => 'Diweredekaat ar skridaozer pinvidikaet en esaouenn anv "{{ns:category_talk}}"', |
| 197 | + 'rich_editor_new_window' => 'Digeriñ ar Skridaozer pinvidikaet en ur prenestr nevez', |
| 198 | + 'tog-riched_start_disabled' => 'Kregiñ gant ar skridaozer pinvidikaet diweredekaet', |
| 199 | + 'tog-riched_use_popup' => 'Digeriñ ar skridaozer pinvidikaet en ur popup', |
| 200 | + 'tog-riched_use_toggle' => "Ober gant un diuzer evit mont eus ar skidaozer orin WikiText d'ar skridaozer pinvidikaet", |
| 201 | + 'tog-riched_toggle_remember_state' => "Derc'hel soñj eus diuzadenn ziwezhañ ar skridaozer", |
| 202 | +); |
| 203 | + |
| 204 | +/** Bosnian (Bosanski) |
| 205 | + * @author CERminator |
| 206 | + */ |
| 207 | +$messages['bs'] = array( |
| 208 | + 'fckeditor-desc' => 'Omogućava uređivanje koristeći WYSIWYG uređivač FCKeditor', |
| 209 | + 'textrichditor' => 'Vizuelni uređivač', |
| 210 | + 'prefs-fckeditor' => 'Vizuelni uređivač', |
| 211 | + 'tog-riched_disable' => 'Onemogući vizuelni uređivač', |
| 212 | + 'tog-riched_disable_ns_main' => 'Onemogući vizuelni uređivač u glavnom imenskom prostoru', |
| 213 | + 'tog-riched_disable_ns_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:talk}}"', |
| 214 | + 'tog-riched_disable_ns_user' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:user}}"', |
| 215 | + 'tog-riched_disable_ns_user_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:user_talk}}"', |
| 216 | + 'tog-riched_disable_ns_project' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:project}}"', |
| 217 | + 'tog-riched_disable_ns_project_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:project_talk}}"', |
| 218 | + 'tog-riched_disable_ns_image' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:file}}"', |
| 219 | + 'tog-riched_disable_ns_image_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:file_talk}}"', |
| 220 | + 'tog-riched_disable_ns_mediawiki' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:mediawiki}}"', |
| 221 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:mediawiki_talk}}"', |
| 222 | + 'tog-riched_disable_ns_template' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:template}}"', |
| 223 | + 'tog-riched_disable_ns_template_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:template_talk}}"', |
| 224 | + 'tog-riched_disable_ns_help' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:help}}"', |
| 225 | + 'tog-riched_disable_ns_help_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:help_talk}}"', |
| 226 | + 'tog-riched_disable_ns_category' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:category}}"', |
| 227 | + 'tog-riched_disable_ns_category_talk' => 'Onemogući vizuelni uređivač u imenskom prostoru "{{ns:category_talk}}"', |
| 228 | + 'rich_editor_new_window' => 'Otvori vizuelni uređivač u novom prozoru', |
| 229 | + 'tog-riched_start_disabled' => 'Započni sa onemogućenim vizuelnim uređivačem', |
| 230 | + 'tog-riched_use_popup' => 'Otvori vizuelni uređivač kao popup', |
| 231 | + 'tog-riched_use_toggle' => 'Koristi prekidač za prebacivanje između wikiteksta i vizuelnog uređivača (zamjenjuje područje teksta sa vizuelnim uređivačem)', |
| 232 | + 'tog-riched_toggle_remember_state' => 'Zapamti zadnje stanje uključivanja', |
| 233 | +); |
| 234 | + |
| 235 | +/** Catalan (Català) |
| 236 | + * @author BroOk |
| 237 | + * @author Solde |
| 238 | + */ |
| 239 | +$messages['ca'] = array( |
| 240 | + 'fckeditor-desc' => "Permet l'edició amb l'editor WYSIWYG FCKeditor", |
| 241 | + 'textrichditor' => 'Editor enriquit', |
| 242 | + 'prefs-fckeditor' => 'Editor enriquit', |
| 243 | + 'tog-riched_disable' => "Deshabilita l'editor enriquit", |
| 244 | + 'tog-riched_disable_ns_main' => "Deshabilita l'editor enriquit dins de l'espai de noms", |
| 245 | + 'tog-riched_disable_ns_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:talk}}"', |
| 246 | + 'tog-riched_disable_ns_user' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:user}}"', |
| 247 | + 'tog-riched_disable_ns_user_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:user_talk}}"', |
| 248 | + 'tog-riched_disable_ns_project' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:project}}"', |
| 249 | + 'tog-riched_disable_ns_project_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:project_talk}}"', |
| 250 | + 'tog-riched_disable_ns_image' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:file}}"', |
| 251 | + 'tog-riched_disable_ns_image_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:file_talk}}"', |
| 252 | + 'tog-riched_disable_ns_mediawiki' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:mediawiki}}"', |
| 253 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:mediawiki_talk}}"', |
| 254 | + 'tog-riched_disable_ns_template' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:template}}"', |
| 255 | + 'tog-riched_disable_ns_template_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:template_talk}}"', |
| 256 | + 'tog-riched_disable_ns_help' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:help}}"', |
| 257 | + 'tog-riched_disable_ns_help_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:help_talk}}"', |
| 258 | + 'tog-riched_disable_ns_category' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:category}}"', |
| 259 | + 'tog-riched_disable_ns_category_talk' => 'Deshabilita l\'editor enriquit dins de l\'espai de noms "{{ns:category_talk}}"', |
| 260 | + 'rich_editor_new_window' => "Obre l'editor enriquit en una nova finestra", |
| 261 | + 'tog-riched_start_disabled' => "Comença amb l'editor enriquit deshabilitat", |
| 262 | + 'tog-riched_use_popup' => "Obre l'editor enriquit en una finestra emergent", |
| 263 | + 'tog-riched_use_toggle' => "Usa la palanca per canviar entre wikitext i l'editor visual (reemplaça l'àrea de text amb l'editor enriquit)", |
| 264 | + 'tog-riched_toggle_remember_state' => "Recorda canviar l'estat passat", |
| 265 | +); |
| 266 | + |
| 267 | +/** Czech (Česky) |
| 268 | + * @author Jkjk |
| 269 | + */ |
| 270 | +$messages['cs'] = array( |
| 271 | + 'fckeditor-desc' => 'Umožnit editace s použitím WYSIWYG edigoru FCKeditor', |
| 272 | +); |
| 273 | + |
| 274 | +/** German (Deutsch) |
| 275 | + * @author Kghbln |
| 276 | + * @author Umherirrender |
| 277 | + */ |
| 278 | +$messages['de'] = array( |
| 279 | + 'fckeditor-desc' => 'Ermöglicht die Nutzung des WYSIWYG-Editors CKEditor, vormals FCKeditor', |
| 280 | + 'textrichditor' => 'Mit dem Texteditor öffnen', |
| 281 | + 'prefs-fckeditor' => 'Texteditor', |
| 282 | + 'tog-riched_disable' => 'Texteditor deaktivieren', |
| 283 | + 'tog-riched_disable_ns_main' => 'Texteditor im Haupt-Namensraum deaktivieren', |
| 284 | + 'tog-riched_disable_ns_talk' => 'Texteditor im Namensraum „{{ns:talk}}“ deaktivieren', |
| 285 | + 'tog-riched_disable_ns_user' => 'Texteditor im Namensraum „{{ns:user}}“ deaktivieren', |
| 286 | + 'tog-riched_disable_ns_user_talk' => 'Texteditor im Namensraum „{{ns:user_talk}}“ deaktivieren', |
| 287 | + 'tog-riched_disable_ns_project' => 'Texteditor im Namensraum „{{ns:project}}“ deaktivieren', |
| 288 | + 'tog-riched_disable_ns_project_talk' => 'Texteditor im Namensraum „{{ns:project_talk}}“ deaktivieren', |
| 289 | + 'tog-riched_disable_ns_image' => 'Texteditor im Namensraum „{{ns:file}}“ deaktivieren', |
| 290 | + 'tog-riched_disable_ns_image_talk' => 'Texteditor im Namensraum „{{ns:file_talk}}“ deaktivieren', |
| 291 | + 'tog-riched_disable_ns_mediawiki' => 'Texteditor im Namensraum „{{ns:mediawiki}}“ deaktivieren', |
| 292 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Texteditor im Namensraum „{{ns:mediawiki_talk}}“ deaktivieren', |
| 293 | + 'tog-riched_disable_ns_template' => 'Texteditor im Namensraum „{{ns:template}}“ deaktivieren', |
| 294 | + 'tog-riched_disable_ns_template_talk' => 'Texteditor im Namensraum „{{ns:template_talk}}“ deaktivieren', |
| 295 | + 'tog-riched_disable_ns_help' => 'Texteditor im Namensraum „{{ns:help}}“ deaktivieren', |
| 296 | + 'tog-riched_disable_ns_help_talk' => 'Texteditor im Namensraum „{{ns:help_talk}}“ deaktivieren', |
| 297 | + 'tog-riched_disable_ns_category' => 'Texteditor im Namensraum „{{ns:category}}“ deaktivieren', |
| 298 | + 'tog-riched_disable_ns_category_talk' => 'Texteditor im Namensraum „{{ns:category_talk}}“ deaktivieren', |
| 299 | + 'rich_editor_new_window' => 'Mit dem Texteditor in einem neuen Fenster öffnen', |
| 300 | + 'tog-riched_start_disabled' => 'Texteditor nicht automatisch starten', |
| 301 | + 'tog-riched_use_popup' => 'Texteditor als Popup öffnen', |
| 302 | + 'tog-riched_use_toggle' => 'Schalter zum Wechseln zwischen Wikitext und Texteditor benutzen (ersetzt den Textbereich mit dem Texteditor)', |
| 303 | + 'tog-riched_toggle_remember_state' => 'Letzten Umschaltzustand merken', |
| 304 | +); |
| 305 | + |
| 306 | +/** Lower Sorbian (Dolnoserbski) |
| 307 | + * @author Michawiki |
| 308 | + */ |
| 309 | +$messages['dsb'] = array( |
| 310 | + 'fckeditor-desc' => 'Wobźěłanje z pomocu editora WYSIWYG FCKeditor dowóliś', |
| 311 | + 'textrichditor' => 'Rich editor', |
| 312 | + 'prefs-fckeditor' => 'Rich editor', |
| 313 | + 'tog-riched_disable' => 'Rich editor znjemóžniś', |
| 314 | + 'tog-riched_disable_ns_main' => 'Rich editor w głownem mjenjowem rumje znjemóžniś', |
| 315 | + 'tog-riched_disable_ns_talk' => 'Rich editor w mjenjowem rumje "{{ns:talk}}" znjemóžniś', |
| 316 | + 'tog-riched_disable_ns_user' => 'Rich editor w mjenjowem rumje "{{ns:user}}" znjemóžniś', |
| 317 | + 'tog-riched_disable_ns_user_talk' => 'Rich editor w mjenjowem rumje "{{ns:user_talk}}" znjemóžniś', |
| 318 | + 'tog-riched_disable_ns_project' => 'Rich editor w mjenjowem rumje "{{ns:project}}" znjemóžniś', |
| 319 | + 'tog-riched_disable_ns_project_talk' => 'Rich editor w mjenjowem rumje "{{ns:project_talk}}" znjemóžniś', |
| 320 | + 'tog-riched_disable_ns_image' => 'Rich editor w mjenjowem rumje "{{ns:file}}" znjemóžniś', |
| 321 | + 'tog-riched_disable_ns_image_talk' => 'Rich editor w mjenjowem rumje "{{ns:file_talk}}" znjemóžniś', |
| 322 | + 'tog-riched_disable_ns_mediawiki' => 'Rich editor w mjenjowem rumje "{{ns:mediawiki}}" znjemóžniś', |
| 323 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Rich editor w mjenjowem rumje "{{ns:mediawiki_talk}}" znjemóžniś', |
| 324 | + 'tog-riched_disable_ns_template' => 'Rich editor w mjenjowem rumje "{{ns:template}}" znjemóžniś', |
| 325 | + 'tog-riched_disable_ns_template_talk' => 'Rich editor w mjenjowem rumje "{{ns:template_talk}}" znjemóžniś', |
| 326 | + 'tog-riched_disable_ns_help' => 'Rich editor w mjenjowem rumje "{{ns:help}}" znjemóžniś', |
| 327 | + 'tog-riched_disable_ns_help_talk' => 'Rich editor w mjenjowem rumje "{{ns:help_talk}}" znjemóžniś', |
| 328 | + 'tog-riched_disable_ns_category' => 'Rich editor w mjenjowem rumje "{{ns:category}}" znjemóžniś', |
| 329 | + 'tog-riched_disable_ns_category_talk' => 'Rich editor w mjenjowem rumje "{{ns:category_talk}}" znjemóžniś', |
| 330 | + 'rich_editor_new_window' => 'Rich editor w nowem woknje wócyniś', |
| 331 | + 'tog-riched_start_disabled' => 'Ze znjemóžnjonym rich editorom startowaś', |
| 332 | + 'tog-riched_use_popup' => 'Rich editor we wuskokujucem woknje wócyniś', |
| 333 | + 'tog-riched_use_toggle' => 'Mjazy wikitekstom a rich editorom pśešaltowaś (tekstowe pólo pśez rich editor wuměniś)', |
| 334 | + 'tog-riched_toggle_remember_state' => 'Šaltowańsku poziciju se spomnjeś', |
| 335 | +); |
| 336 | + |
| 337 | +/** Greek (Ελληνικά) |
| 338 | + * @author Omnipaedista |
| 339 | + */ |
| 340 | +$messages['el'] = array( |
| 341 | + 'textrichditor' => 'Εμπλουτισμένος Επεξεργαστής', |
| 342 | + 'prefs-fckeditor' => 'Εμπλουτισμένος Επεξεργαστής', |
| 343 | + 'tog-riched_disable' => 'Απενεργοποίηση εμπλουτισμένου επεξεργαστή', |
| 344 | +); |
| 345 | + |
| 346 | +/** Esperanto (Esperanto) |
| 347 | + * @author Yekrats |
| 348 | + */ |
| 349 | +$messages['eo'] = array( |
| 350 | + 'textrichditor' => 'Riĉa Redaktilo', |
| 351 | +); |
| 352 | + |
| 353 | +/** Spanish (Español) |
| 354 | + * @author Locos epraix |
| 355 | + */ |
| 356 | +$messages['es'] = array( |
| 357 | + 'fckeditor-desc' => 'Permitir edición usando el editor WYSIWYG FCKeditor', |
| 358 | + 'textrichditor' => 'Editor enriquecido', |
| 359 | + 'prefs-fckeditor' => 'Editor enriquecido', |
| 360 | + 'tog-riched_disable' => 'Desactivar editor enriquecido', |
| 361 | + 'tog-riched_disable_ns_main' => 'Desactivar editor enriquecido en el espacio de nombres principal', |
| 362 | + 'tog-riched_disable_ns_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:talk}}"', |
| 363 | + 'tog-riched_disable_ns_user' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:user}}"', |
| 364 | + 'tog-riched_disable_ns_user_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:user_talk}}"', |
| 365 | + 'tog-riched_disable_ns_project' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:project}}"', |
| 366 | + 'tog-riched_disable_ns_project_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:project_talk}}"', |
| 367 | + 'tog-riched_disable_ns_image' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:file}}"', |
| 368 | + 'tog-riched_disable_ns_image_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:file_talk}}"', |
| 369 | + 'tog-riched_disable_ns_mediawiki' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:mediawiki}}"', |
| 370 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:mediawiki_talk}}"', |
| 371 | + 'tog-riched_disable_ns_template' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:template}}"', |
| 372 | + 'tog-riched_disable_ns_template_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:template_talk}}"', |
| 373 | + 'tog-riched_disable_ns_help' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:help}}"', |
| 374 | + 'tog-riched_disable_ns_help_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:help_talk}}"', |
| 375 | + 'tog-riched_disable_ns_category' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:category}}"', |
| 376 | + 'tog-riched_disable_ns_category_talk' => 'Desactivar editor enriquecido en el espacio de nombres "{{ns:category_talk}}"', |
| 377 | + 'rich_editor_new_window' => 'Abrir el editor enriquecido en una nueva ventana', |
| 378 | + 'tog-riched_start_disabled' => 'Empezar con el editor enriquecido desactivado', |
| 379 | + 'tog-riched_use_popup' => 'Abrir editor enriquecido en un popup', |
| 380 | + 'tog-riched_use_toggle' => 'Utilizar un selector para cambiar entre wikitext y editor enriquecido', |
| 381 | + 'tog-riched_toggle_remember_state' => 'Recordar la última selección del editor', |
| 382 | +); |
| 383 | + |
| 384 | +/** Basque (Euskara) |
| 385 | + * @author Agonirena |
| 386 | + * @author Kobazulo |
| 387 | + */ |
| 388 | +$messages['eu'] = array( |
| 389 | + 'fckeditor-desc' => 'FCKeditor editoreak eskaintzen duen WYSIWYG edizio modua gaitu', |
| 390 | + 'textrichditor' => 'Aberastutako Editorea', |
| 391 | + 'prefs-fckeditor' => 'Aberastutako Editorea', |
| 392 | + 'tog-riched_disable' => 'Ezgaitu aberastutako editorea', |
| 393 | + 'tog-riched_disable_ns_main' => 'Ezgaitu aberastutako editorea izen-tarte nagusian', |
| 394 | + 'tog-riched_disable_ns_talk' => 'Ezgaitu aberastutako editorea "{{ns:talk}}" izen-tartean', |
| 395 | + 'tog-riched_disable_ns_user' => 'Ezgaitu aberastutako editorea "{{ns:user}}" izen-tartean', |
| 396 | + 'tog-riched_disable_ns_user_talk' => 'Ezgaitu aberastutako editorea "{{ns:user_talk}}" izen-tartean', |
| 397 | + 'tog-riched_disable_ns_project' => 'Ezgaitu aberastutako editorea "{{ns:project}}" izen-tartean', |
| 398 | + 'tog-riched_disable_ns_project_talk' => 'Ezgaitu aberastutako editorea "{{ns:project_talk}}" izen-tartean', |
| 399 | + 'tog-riched_disable_ns_image' => 'Ezgaitu aberastutako editorea "{{ns:file}}" izen-tartean', |
| 400 | + 'tog-riched_disable_ns_image_talk' => 'Ezgaitu aberastutako editorea "{{ns:file_talk}}" izen-tartean', |
| 401 | + 'tog-riched_disable_ns_mediawiki' => 'Ezgaitu aberastutako editorea "{{ns:mediawiki}}" izen-tartean', |
| 402 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Ezgaitu aberastutako editorea "{{ns:mediawiki_talk}}" izen-tartean', |
| 403 | + 'tog-riched_disable_ns_template' => 'Ezgaitu aberastutako editorea "{{ns:template}}" izen-tartean', |
| 404 | + 'tog-riched_disable_ns_template_talk' => 'Ezgaitu aberastutako editorea "{{ns:template_talk}}" izen-tartean', |
| 405 | + 'tog-riched_disable_ns_help' => 'Ezgaitu aberastutako editorea "{{ns:help}}" izen-tartean', |
| 406 | + 'tog-riched_disable_ns_help_talk' => 'Ezgaitu aberastutako editorea "{{ns:help_talk}}" izen-tartean', |
| 407 | + 'tog-riched_disable_ns_category' => 'Ezgaitu aberastutako editorea "{{ns:category}}" izen-tartean', |
| 408 | + 'tog-riched_disable_ns_category_talk' => 'Ezgaitu aberastutako editorea "{{ns:category_talk}}" izen-tartean', |
| 409 | + 'rich_editor_new_window' => 'Ireki Aberastutako editorea leiho berri batean', |
| 410 | + 'tog-riched_start_disabled' => 'Hasi editore aberastua ezgaitua dagoela', |
| 411 | + 'tog-riched_use_popup' => 'Editore aberastua laster-leiho batean ireki', |
| 412 | + 'tog-riched_use_toggle' => 'Erabili testu eremu gainean dagoen esteka wikitext edo editore aberastua hautatzeko (testu eremua editore aberastuarekin erabiltzeko)', |
| 413 | + 'tog-riched_toggle_remember_state' => 'Gogoratu erabilitako azken editore hautua', |
| 414 | +); |
| 415 | + |
| 416 | +/** Persian (فارسی) |
| 417 | + * @author Ebraminio |
| 418 | + * @author Huji |
| 419 | + * @author Reza1615 |
| 420 | + */ |
| 421 | +$messages['fa'] = array( |
| 422 | + 'fckeditor-desc' => 'اجازه ویرایش با استفاده از ویرایشگر WYSIWYG FCKeditor را میدهد', |
| 423 | + 'textrichditor' => 'ویرایشگر پیشرفته', |
| 424 | + 'prefs-fckeditor' => 'ویرایشگر پیشرفته', |
| 425 | + 'tog-riched_disable' => 'غیرفعال کردن ویرایشگر پیشرفته', |
| 426 | + 'tog-riched_disable_ns_main' => 'غیرفعال کردن ویرایشگر پیشرفته در فضای نام اصلی', |
| 427 | + 'tog-riched_disable_ns_talk' => 'غیرفعال کردن ویرایشگر پیشرفته در فضای نام "{{ns:talk}}"', |
| 428 | + 'tog-riched_disable_ns_user' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:user}}"', |
| 429 | + 'tog-riched_disable_ns_user_talk' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:user_talk}}"', |
| 430 | + 'tog-riched_disable_ns_project' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:project}}"', |
| 431 | + 'tog-riched_disable_ns_project_talk' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:project_talk}}"', |
| 432 | + 'tog-riched_disable_ns_image' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:file}}"', |
| 433 | + 'tog-riched_disable_ns_image_talk' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:file_talk}}"', |
| 434 | + 'tog-riched_disable_ns_mediawiki' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:mediawiki}}"', |
| 435 | + 'tog-riched_disable_ns_mediawiki_talk' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:mediawiki_talk}}"', |
| 436 | + 'tog-riched_disable_ns_template' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:template}}"', |
| 437 | + 'tog-riched_disable_ns_template_talk' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:template_talk}}"', |
| 438 | + 'tog-riched_disable_ns_help' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:help}}"', |
| 439 | + 'tog-riched_disable_ns_help_talk' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:help_talk}}"', |
| 440 | + 'tog-riched_disable_ns_category' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:category}}"', |
| 441 | + 'tog-riched_disable_ns_category_talk' => 'غيرفعال کردن ويرايشگر پيشرفته در فضاي نام "{{ns:category_talk}}"', |
| 442 | + 'rich_editor_new_window' => 'ویرایشگر پیشرفته را در پنجره جدید باز کن', |
| 443 | + 'tog-riched_start_disabled' => 'شروع با ویرایشگر پیشرفته غیر فعال شد', |
| 444 | + 'tog-riched_use_popup' => 'بازکردن ویرایشگر پیشرفته در یک پنجره', |
| 445 | + 'tog-riched_use_toggle' => 'استفاده از زبانهٔ انتخابکردن بین ویکیمتن و ویرایشگر پیشرفته (جایگزینی جعبه ویرایش با ویرایشگر پیشرفته)', |
| 446 | + 'tog-riched_toggle_remember_state' => 'آخرین وضعیت زبانه را به یاد داشته باش', |
| 447 | +); |
| 448 | + |
| 449 | +/** Finnish (Suomi) |
| 450 | + * @author Centerlink |
| 451 | + * @author Crt |
| 452 | + * @author Jack Phoenix <jack@countervandalism.net> |
| 453 | + */ |
| 454 | +$messages['fi'] = array( |
| 455 | + 'fckeditor-desc' => 'Mahdollistaa muokkaamisen WYSIWYG-tyylillä käyttäen FCKeditoria.', |
| 456 | + 'textrichditor' => 'Rikas editori', |
| 457 | + 'prefs-fckeditor' => 'Rich-editori', |
| 458 | + 'tog-riched_disable' => 'Ota rikas editori pois käytöstä', |
| 459 | + 'tog-riched_disable_ns_main' => 'Ota rikas editori pois käytöstä päänimiavaruudessa', |
| 460 | + 'tog-riched_disable_ns_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:talk}}"', |
| 461 | + 'tog-riched_disable_ns_user' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:user}}"', |
| 462 | + 'tog-riched_disable_ns_user_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:user_talk}}"', |
| 463 | + 'tog-riched_disable_ns_project' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:project}}"', |
| 464 | + 'tog-riched_disable_ns_project_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:project_talk}}"', |
| 465 | + 'tog-riched_disable_ns_image' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:file}}"', |
| 466 | + 'tog-riched_disable_ns_image_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:file_talk}}"', |
| 467 | + 'tog-riched_disable_ns_mediawiki' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:mediawiki}}"', |
| 468 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:mediawiki_talk}}"', |
| 469 | + 'tog-riched_disable_ns_template' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:template}}"', |
| 470 | + 'tog-riched_disable_ns_template_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:template_talk}}"', |
| 471 | + 'tog-riched_disable_ns_help' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:help}}"', |
| 472 | + 'tog-riched_disable_ns_help_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:help_talk}}"', |
| 473 | + 'tog-riched_disable_ns_category' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:category}}"', |
| 474 | + 'tog-riched_disable_ns_category_talk' => 'Ota rikas editori pois käytöstä nimiavaruudessa "{{ns:category_talk}}"', |
| 475 | + 'rich_editor_new_window' => 'Avaa rikas editori uudessa ikkunassa', |
| 476 | + 'tog-riched_start_disabled' => 'Aloita niin, että rikas editori on oletuksena pois käytöstä', |
| 477 | + 'tog-riched_use_popup' => 'Avaa rikas editori popup-ikkunassa', |
| 478 | + 'tog-riched_use_toggle' => 'Käytä nappulaa vaihtaaksesi wikitekstin ja rikkaan editorin välillä (korvaa tekstialue rikkaalla editorilla)', |
| 479 | + 'tog-riched_toggle_remember_state' => 'Muista viimeisin nappulan asento', |
| 480 | +); |
| 481 | + |
| 482 | +/** French (Français) |
| 483 | + * @author Crochet.david |
| 484 | + * @author IAlex |
| 485 | + * @author Verdy p |
| 486 | + */ |
| 487 | +$messages['fr'] = array( |
| 488 | + 'fckeditor-desc' => 'Permet la modification en utilisant l’éditeur WYSIWYG FCKeditor', |
| 489 | + 'textrichditor' => 'Éditeur de texte enrichi', |
| 490 | + 'prefs-fckeditor' => 'Éditeur enrichi', |
| 491 | + 'tog-riched_disable' => "Désactiver l'éditeur enrichi", |
| 492 | + 'tog-riched_disable_ns_main' => "Désactiver l'éditeur enrichi dans l'espace de noms principal.", |
| 493 | + 'tog-riched_disable_ns_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:talk}} ».", |
| 494 | + 'tog-riched_disable_ns_user' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:user}} ».", |
| 495 | + 'tog-riched_disable_ns_user_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:user_talk}} ».", |
| 496 | + 'tog-riched_disable_ns_project' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:project}} ».", |
| 497 | + 'tog-riched_disable_ns_project_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:project_talk}} ».", |
| 498 | + 'tog-riched_disable_ns_image' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:file}} ».", |
| 499 | + 'tog-riched_disable_ns_image_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:file_talk}} ».", |
| 500 | + 'tog-riched_disable_ns_mediawiki' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:mediawiki}} ».", |
| 501 | + 'tog-riched_disable_ns_mediawiki_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:mediawiki_talk}} ».", |
| 502 | + 'tog-riched_disable_ns_template' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:template}} ».", |
| 503 | + 'tog-riched_disable_ns_template_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:template_talk}} ».", |
| 504 | + 'tog-riched_disable_ns_help' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:help}} ».", |
| 505 | + 'tog-riched_disable_ns_help_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:help_talk}} ».", |
| 506 | + 'tog-riched_disable_ns_category' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:category}} ».", |
| 507 | + 'tog-riched_disable_ns_category_talk' => "Désactiver l'éditeur enrichi dans l'espace de noms « {{ns:category_talk}} ».", |
| 508 | + 'rich_editor_new_window' => "Ouvrir l'éditeur enrichi dans une nouvelle fenêtre", |
| 509 | + 'tog-riched_start_disabled' => "Démarrer avec l'éditeur enrichi désactivé", |
| 510 | + 'tog-riched_use_popup' => "Ouvrir l'éditeur enrichi dans une popup", |
| 511 | + 'tog-riched_use_toggle' => "Donner la possibilité de changer entre l'éditeur original WikiText et l'éditeur enrichi", |
| 512 | + 'tog-riched_toggle_remember_state' => "Se souvenir de la dernière selection de l'éditeur", |
| 513 | +); |
| 514 | + |
| 515 | +/** Franco-Provençal (Arpetan) |
| 516 | + * @author ChrisPtDe |
| 517 | + */ |
| 518 | +$messages['frp'] = array( |
| 519 | + 'textrichditor' => 'Èditor enrechiê', |
| 520 | + 'prefs-fckeditor' => 'Èditor enrechiê', |
| 521 | + 'tog-riched_disable' => 'Dèsactivar l’èditor enrechiê', |
| 522 | +); |
| 523 | + |
| 524 | +/** Galician (Galego) |
| 525 | + * @author Toliño |
| 526 | + */ |
| 527 | +$messages['gl'] = array( |
| 528 | + 'fckeditor-desc' => 'Permite a edición empregando o editor WYSIWYG FCKeditor', |
| 529 | + 'textrichditor' => 'Editor enriquecido', |
| 530 | + 'prefs-fckeditor' => 'Editor enriquecido', |
| 531 | + 'tog-riched_disable' => 'Desactivar o editor enriquecido', |
| 532 | + 'tog-riched_disable_ns_main' => 'Desactivar o editor enriquecido no espazo de nomes principal', |
| 533 | + 'tog-riched_disable_ns_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:talk}}"', |
| 534 | + 'tog-riched_disable_ns_user' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:user}}"', |
| 535 | + 'tog-riched_disable_ns_user_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:user_talk}}"', |
| 536 | + 'tog-riched_disable_ns_project' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:project}}"', |
| 537 | + 'tog-riched_disable_ns_project_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:project_talk}}"', |
| 538 | + 'tog-riched_disable_ns_image' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:file}}"', |
| 539 | + 'tog-riched_disable_ns_image_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:file_talk}}"', |
| 540 | + 'tog-riched_disable_ns_mediawiki' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:mediawiki}}"', |
| 541 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:mediawiki_talk}}"', |
| 542 | + 'tog-riched_disable_ns_template' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:template}}"', |
| 543 | + 'tog-riched_disable_ns_template_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:template_talk}}"', |
| 544 | + 'tog-riched_disable_ns_help' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:help}}"', |
| 545 | + 'tog-riched_disable_ns_help_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:help_talk}}"', |
| 546 | + 'tog-riched_disable_ns_category' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:category}}"', |
| 547 | + 'tog-riched_disable_ns_category_talk' => 'Desactivar o editor enriquecido no espazo de nomes "{{ns:category_talk}}"', |
| 548 | + 'rich_editor_new_window' => 'Abrir o editor enriquecido nunha nova ventá', |
| 549 | + 'tog-riched_start_disabled' => 'Comenzar co editor enriquecido desactivado', |
| 550 | + 'tog-riched_use_popup' => 'Abrir o editor enriquecido nunha ventá emerxente', |
| 551 | + 'tog-riched_use_toggle' => 'Utilizar un selector para cambiar entre texto wiki e o editor enriquecido (substitúe a área de texto polo editor enriquecido)', |
| 552 | + 'tog-riched_toggle_remember_state' => 'Recordar a última selección do editor', |
| 553 | +); |
| 554 | + |
| 555 | +/** Swiss German (Alemannisch) |
| 556 | + * @author Als-Holder |
| 557 | + */ |
| 558 | +$messages['gsw'] = array( |
| 559 | + 'fckeditor-desc' => 'Bearbeite erlaube mit em WYSIWYG-Editor FCKeditor', |
| 560 | + 'textrichditor' => 'Rich Editor', |
| 561 | + 'prefs-fckeditor' => 'Rich Editor', |
| 562 | + 'tog-riched_disable' => 'Rich editor deaktiviere', |
| 563 | + 'tog-riched_disable_ns_main' => 'Rich editor deaktiviere im Haupt-Namensruum', |
| 564 | + 'tog-riched_disable_ns_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:talk}}"', |
| 565 | + 'tog-riched_disable_ns_user' => 'Rich editor deaktiviere im Namensruum "{{ns:user}}"', |
| 566 | + 'tog-riched_disable_ns_user_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:user_talk}}"', |
| 567 | + 'tog-riched_disable_ns_project' => 'Rich editor deaktiviere im Namensruum "{{ns:project}}"', |
| 568 | + 'tog-riched_disable_ns_project_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:project_talk}}"', |
| 569 | + 'tog-riched_disable_ns_image' => 'Rich editor deaktiviere im Namensruum "{{ns:file}}"', |
| 570 | + 'tog-riched_disable_ns_image_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:file_talk}}"', |
| 571 | + 'tog-riched_disable_ns_mediawiki' => 'Rich editor deaktiviere im Namensruum "{{ns:mediawiki}}"', |
| 572 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:mediawiki_talk}}"', |
| 573 | + 'tog-riched_disable_ns_template' => 'Rich editor deaktiviere im Namensruum "{{ns:template}}"', |
| 574 | + 'tog-riched_disable_ns_template_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:template_talk}}"', |
| 575 | + 'tog-riched_disable_ns_help' => 'Rich editor deaktiviere im Namensruum "{{ns:help}}"', |
| 576 | + 'tog-riched_disable_ns_help_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:help_talk}}"', |
| 577 | + 'tog-riched_disable_ns_category' => 'Rich editor deaktiviere im Namensruum "{{ns:category}}"', |
| 578 | + 'tog-riched_disable_ns_category_talk' => 'Rich editor deaktiviere im Namensruum "{{ns:category_talk}}"', |
| 579 | + 'rich_editor_new_window' => 'Rich editor in eme neje Fänschter ufmache', |
| 580 | + 'tog-riched_start_disabled' => 'Mit eme deaktivierte Rich editor starte', |
| 581 | + 'tog-riched_use_popup' => 'Rich editor in eme Popup ufmache', |
| 582 | + 'tog-riched_use_toggle' => 'Schaltchnopf verwände zum zwischem Wikitekscht un em Rich editor hii- un härzgumpe (s Tekschtfäld dur Rich editor ersetze)', |
| 583 | + 'tog-riched_toggle_remember_state' => 'Di letscht Stellig vum Schaltchnopf bhalte', |
| 584 | +); |
| 585 | + |
| 586 | +/** Hebrew (עברית) |
| 587 | + * @author Rotemliss |
| 588 | + * @author YaronSh |
| 589 | + */ |
| 590 | +$messages['he'] = array( |
| 591 | + 'fckeditor-desc' => 'מתן האפשרות לעריכה באמצעות עורך WYSIWYG בשם FCKeditor', |
| 592 | + 'textrichditor' => 'עורך עשיר', |
| 593 | + 'prefs-fckeditor' => 'עורך לטקסט מעוצב', |
| 594 | + 'tog-riched_disable' => 'כבה את העורך העשיר', |
| 595 | + 'tog-riched_disable_ns_main' => 'כבה את העורך העשיר במרחב השם הראשי', |
| 596 | + 'tog-riched_disable_ns_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:talk}}"', |
| 597 | + 'tog-riched_disable_ns_user' => 'כבה את העורך העשיר במרחב השם "{{ns:user}}"', |
| 598 | + 'tog-riched_disable_ns_user_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:user_talk}}"', |
| 599 | + 'tog-riched_disable_ns_project' => 'כבה את העורך העשיר במרחב השם "{{ns:project}}"', |
| 600 | + 'tog-riched_disable_ns_project_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:project_talk}}"', |
| 601 | + 'tog-riched_disable_ns_image' => 'כבה את העורך העשיר במרחב השם "{{ns:file}}"', |
| 602 | + 'tog-riched_disable_ns_image_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:file_talk}}"', |
| 603 | + 'tog-riched_disable_ns_mediawiki' => 'כבה את העורך העשיר במרחב השם "{{ns:mediawiki}}"', |
| 604 | + 'tog-riched_disable_ns_mediawiki_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:mediawiki_talk}}"', |
| 605 | + 'tog-riched_disable_ns_template' => 'כבה את העורך העשיר במרחב השם "{{ns:template}}"', |
| 606 | + 'tog-riched_disable_ns_template_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:template_talk}}"', |
| 607 | + 'tog-riched_disable_ns_help' => 'כבה את העורך העשיר במרחב השם "{{ns:help}}"', |
| 608 | + 'tog-riched_disable_ns_help_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:help_talk}}"', |
| 609 | + 'tog-riched_disable_ns_category' => 'כבה את העורך העשיר במרחב השם "{{ns:category}}"', |
| 610 | + 'tog-riched_disable_ns_category_talk' => 'כבה את העורך העשיר במרחב השם "{{ns:category_talk}}"', |
| 611 | + 'rich_editor_new_window' => 'פתח את העורך העשיר בחלון חדש', |
| 612 | + 'tog-riched_start_disabled' => 'התחל עם העורך העשיר כבוי', |
| 613 | + 'tog-riched_use_popup' => 'פתח את העורך העשיר בחלון קופץ', |
| 614 | + 'tog-riched_use_toggle' => 'השתמש במתג כדי להחליף בין ויקיטקסט והעורך העשיר (החלף את אזור הטקסט עם העורך העשיר)', |
| 615 | + 'tog-riched_toggle_remember_state' => 'זכור את מצב המתג האחרון', |
| 616 | +); |
| 617 | + |
| 618 | +/** Upper Sorbian (Hornjoserbsce) |
| 619 | + * @author Michawiki |
| 620 | + */ |
| 621 | +$messages['hsb'] = array( |
| 622 | + 'fckeditor-desc' => 'Wobdźěłanje z pomocu editora WYSIWYG FCKeditor dowolić', |
| 623 | + 'textrichditor' => 'Rich editor', |
| 624 | + 'prefs-fckeditor' => 'Rich editor', |
| 625 | + 'tog-riched_disable' => 'Rich editor deaktiwizować', |
| 626 | + 'tog-riched_disable_ns_main' => 'Rich editor znutřka hłowneho mjenoweho ruma deaktiwizować', |
| 627 | + 'tog-riched_disable_ns_talk' => 'Rich editor znutřka mjenoweho ruma "{{ns:talk}}" deaktiwizować', |
| 628 | + 'tog-riched_disable_ns_user' => 'Rich editor znutřka mjenoweho ruma "{{ns:user}}" deaktiwizować', |
| 629 | + 'tog-riched_disable_ns_user_talk' => 'Rich editor znutřka mjenoweho ruma "{{ns:user_talk}}" deaktiwizować', |
| 630 | + 'tog-riched_disable_ns_project' => 'Rich editor znutřka mjenoweho ruma "{{ns:project}}" deaktiwizować', |
| 631 | + 'tog-riched_disable_ns_project_talk' => 'Rich editor znutřka mjenoweho ruma "{{ns:project_talk}}" deaktiwizować', |
| 632 | + 'tog-riched_disable_ns_image' => 'Rich editor znutřka mjenoweho ruma "{{ns:file}}" deaktiwizować', |
| 633 | + 'tog-riched_disable_ns_image_talk' => 'Rich editor znutřka mjenoweho ruma "{{ns:file_talk}}" deaktiwizować', |
| 634 | + 'tog-riched_disable_ns_mediawiki' => 'Rich editor znutřka mjenoweho ruma "{{ns:mediawiki}}" deaktiwizować', |
| 635 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Rich editor znutřka mjenoweho ruma "{{ns:mediawiki_talk}}" deaktiwizować', |
| 636 | + 'tog-riched_disable_ns_template' => 'Rich editor znutřka mjenoweho ruma "{{ns:template}}" deaktiwizować', |
| 637 | + 'tog-riched_disable_ns_template_talk' => 'Rich editor znutřka mjenoweho ruma "{{ns:template_talk}}" deaktiwizować', |
| 638 | + 'tog-riched_disable_ns_help' => 'Rich editor znutřka mjenoweho ruma "{{ns:help}}" deaktiwizować', |
| 639 | + 'tog-riched_disable_ns_help_talk' => 'Rich editor znutřka mjenoweho ruma "{{ns:help_talk}}" deaktiwizować', |
| 640 | + 'tog-riched_disable_ns_category' => 'Rich editor znutřka mjenoweho ruma the "{{ns:category}}" deaktiwizować', |
| 641 | + 'tog-riched_disable_ns_category_talk' => 'Rich editor znutřka mjenoweho ruma the "{{ns:category_talk}}" deaktiwizować', |
| 642 | + 'rich_editor_new_window' => 'Rich editor w nowym woknje wočinić', |
| 643 | + 'tog-riched_start_disabled' => 'Ze znjemóžnjenym rich editorom startować', |
| 644 | + 'tog-riched_use_popup' => 'Rich editor we wuskakowanskim woknje wočinić', |
| 645 | + 'tog-riched_use_toggle' => 'Mjez wikitekstom a rich editorom přepinać (tekstowe polo přez rich editor wuměnić)', |
| 646 | + 'tog-riched_toggle_remember_state' => 'Poslednje přepinanske staće sej spomjatkować', |
| 647 | +); |
| 648 | + |
| 649 | +/** Hungarian (Magyar) |
| 650 | + * @author Glanthor Reviol |
| 651 | + */ |
| 652 | +$messages['hu'] = array( |
| 653 | + 'fckeditor-desc' => '„Amit látsz, azt kapod” (WYSIWYG) szerkesztő', |
| 654 | + 'textrichditor' => 'Vizuális szerkesztő', |
| 655 | + 'prefs-fckeditor' => 'Vizuális szerkesztő', |
| 656 | + 'tog-riched_disable' => 'Vizuális szerkesztő letiltása', |
| 657 | + 'tog-riched_disable_ns_main' => 'Vizuális szerkesztő letiltása a fő névtérben', |
| 658 | + 'tog-riched_disable_ns_talk' => 'Vizuális szerkesztő letiltása a „{{ns:talk}}” névtérben', |
| 659 | + 'tog-riched_disable_ns_user' => 'Vizuális szerkesztő letiltása a „{{ns:user}}” névtérben', |
| 660 | + 'tog-riched_disable_ns_user_talk' => 'Vizuális szerkesztő letiltása a „{{ns:user_talk}}” névtérben', |
| 661 | + 'tog-riched_disable_ns_project' => 'Vizuális szerkesztő letiltása a „{{ns:project}}” névtérben', |
| 662 | + 'tog-riched_disable_ns_project_talk' => 'Vizuális szerkesztő letiltása a „{{ns:project_talk}}” névtérben', |
| 663 | + 'tog-riched_disable_ns_image' => 'Vizuális szerkesztő letiltása a „{{ns:file}}” névtérben', |
| 664 | + 'tog-riched_disable_ns_image_talk' => 'Vizuális szerkesztő letiltása a „{{ns:file_talk}}” névtérben', |
| 665 | + 'tog-riched_disable_ns_mediawiki' => 'Vizuális szerkesztő letiltása a „{{ns:mediawiki}}” névtérben', |
| 666 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Vizuális szerkesztő letiltása a „{{ns:mediawiki_talk}}” névtérben', |
| 667 | + 'tog-riched_disable_ns_template' => 'Vizuális szerkesztő letiltása a „{{ns:template}}” névtérben', |
| 668 | + 'tog-riched_disable_ns_template_talk' => 'Vizuális szerkesztő letiltása a „{{ns:template_talk}}” névtérben', |
| 669 | + 'tog-riched_disable_ns_help' => 'Vizuális szerkesztő letiltása a „{{ns:help}}” névtérben', |
| 670 | + 'tog-riched_disable_ns_help_talk' => 'Vizuális szerkesztő letiltása a „{{ns:help_talk}}” névtérben', |
| 671 | + 'tog-riched_disable_ns_category' => 'Vizuális szerkesztő letiltása a „{{ns:category}}” névtérben', |
| 672 | + 'tog-riched_disable_ns_category_talk' => 'Vizuális szerkesztő letiltása a „{{ns:category_talk}}” névtérben', |
| 673 | + 'rich_editor_new_window' => 'Vizuális szerkesztő megnyitása új ablakban', |
| 674 | + 'tog-riched_start_disabled' => 'Indítás a vizuális szerkesztő letiltásával', |
| 675 | + 'tog-riched_use_popup' => 'Vizuális szerkesztő megnyitása felugró ablakban', |
| 676 | + 'tog-riched_use_toggle' => 'Váltás a wikiszöveg és a vizuális szerkesztő között (lecseréli a szövegbeviteli mezőt a vizuális szerkesztőre)', |
| 677 | + 'tog-riched_toggle_remember_state' => 'Emlékezzen az utolsó állapotra', |
| 678 | +); |
| 679 | + |
| 680 | +/** Interlingua (Interlingua) |
| 681 | + * @author McDutchie |
| 682 | + */ |
| 683 | +$messages['ia'] = array( |
| 684 | + 'fckeditor-desc' => 'Permitter le modification con le editor WYSIWYG FCKeditor', |
| 685 | + 'textrichditor' => 'Editor typographic', |
| 686 | + 'prefs-fckeditor' => 'Editor typographic', |
| 687 | + 'tog-riched_disable' => 'Disactivar le editor typographic', |
| 688 | + 'tog-riched_disable_ns_main' => 'Disactivar le editor typographic intra le spatio de nomines principal', |
| 689 | + 'tog-riched_disable_ns_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:talk}}"', |
| 690 | + 'tog-riched_disable_ns_user' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:user}}"', |
| 691 | + 'tog-riched_disable_ns_user_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:user_talk}}"', |
| 692 | + 'tog-riched_disable_ns_project' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:project}}"', |
| 693 | + 'tog-riched_disable_ns_project_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:project_talk}}"', |
| 694 | + 'tog-riched_disable_ns_image' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:file}}"', |
| 695 | + 'tog-riched_disable_ns_image_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:file_talk}}"', |
| 696 | + 'tog-riched_disable_ns_mediawiki' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:mediawiki}}"', |
| 697 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:mediawiki_talk}}"', |
| 698 | + 'tog-riched_disable_ns_template' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:template}}"', |
| 699 | + 'tog-riched_disable_ns_template_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:template_talk}}"', |
| 700 | + 'tog-riched_disable_ns_help' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:help}}"', |
| 701 | + 'tog-riched_disable_ns_help_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:help_talk}}"', |
| 702 | + 'tog-riched_disable_ns_category' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:category}}"', |
| 703 | + 'tog-riched_disable_ns_category_talk' => 'Disactivar le editor typographic intra le spatio de nomines "{{ns:category_talk}}"', |
| 704 | + 'rich_editor_new_window' => 'Aperir le editor typographic in un nove fenestra', |
| 705 | + 'tog-riched_start_disabled' => 'Initialmente disactivar le editor typographic', |
| 706 | + 'tog-riched_use_popup' => 'Aperir le editor typographic in un pop-up', |
| 707 | + 'tog-riched_use_toggle' => 'Presentar un button pro cambiar inter wikitexto e editor typographic (in loco del area de texto)', |
| 708 | + 'tog-riched_toggle_remember_state' => 'Memorar le ultime selection de editor', |
| 709 | +); |
| 710 | + |
| 711 | +/** Indonesian (Bahasa Indonesia) |
| 712 | + * @author Bennylin |
| 713 | + */ |
| 714 | +$messages['id'] = array( |
| 715 | + 'fckeditor-desc' => 'Mengijinkan penyuntingan menggunakan penyunting WYSIWYG FCKeditor', |
| 716 | + 'textrichditor' => 'Penyunting Kaya', |
| 717 | + 'prefs-fckeditor' => 'Penyunting Kaya', |
| 718 | + 'tog-riched_disable' => 'Matikan penyunting kaya', |
| 719 | + 'tog-riched_disable_ns_main' => 'Matikan penyunting kaya di dalam ruang nama utama', |
| 720 | + 'tog-riched_disable_ns_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:talk}}"', |
| 721 | + 'tog-riched_disable_ns_user' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:user}}"', |
| 722 | + 'tog-riched_disable_ns_user_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:user_talk}}"', |
| 723 | + 'tog-riched_disable_ns_project' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:project}}"', |
| 724 | + 'tog-riched_disable_ns_project_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:project_talk}}"', |
| 725 | + 'tog-riched_disable_ns_image' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:file}}"', |
| 726 | + 'tog-riched_disable_ns_image_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:file_talk}}"', |
| 727 | + 'tog-riched_disable_ns_mediawiki' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:mediawiki}}"', |
| 728 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:mediawiki_talk}}"', |
| 729 | + 'tog-riched_disable_ns_template' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:template}}"', |
| 730 | + 'tog-riched_disable_ns_template_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:template_talk}}"', |
| 731 | + 'tog-riched_disable_ns_help' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:help}}"', |
| 732 | + 'tog-riched_disable_ns_help_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:help_talk}}"', |
| 733 | + 'tog-riched_disable_ns_category' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:category}}"', |
| 734 | + 'tog-riched_disable_ns_category_talk' => 'Matikan penyunting kaya di dalam ruang nama "{{ns:category_talk}}"', |
| 735 | + 'rich_editor_new_window' => 'Buka penyunting kaya lewat jendela baru', |
| 736 | + 'tog-riched_start_disabled' => 'Mulai dengan penyunting kaya dimatikan', |
| 737 | + 'tog-riched_use_popup' => 'Buka penyunting kaya lewat pop-up', |
| 738 | + 'tog-riched_use_toggle' => 'Gunakan tuas untuk mengganti antara wikiteks dan penyunting kaya (ganti textarea dengan penyunting kaya)', |
| 739 | + 'tog-riched_toggle_remember_state' => 'Ingat keadaan tuas terakhir', |
| 740 | +); |
| 741 | + |
| 742 | +/** Italian (Italiano) |
| 743 | + * @author Pinodd |
| 744 | + */ |
| 745 | +$messages['it'] = array( |
| 746 | + 'fckeditor-desc' => "Consenti la modifica utilizzando l'editor WYSIWYG FCKeditor", |
| 747 | + 'textrichditor' => 'Rich Editor', |
| 748 | + 'prefs-fckeditor' => 'Rich Editor', |
| 749 | + 'tog-riched_disable' => 'Disabilita editor avanzato', |
| 750 | + 'tog-riched_disable_ns_main' => "Disattiva editor avanzato all'interno del namespace principale", |
| 751 | + 'tog-riched_disable_ns_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:talk}}"', |
| 752 | + 'tog-riched_disable_ns_user' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:user}}"', |
| 753 | + 'tog-riched_disable_ns_user_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:user_talk}}"', |
| 754 | + 'tog-riched_disable_ns_project' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:project}}"', |
| 755 | + 'tog-riched_disable_ns_project_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:project_talk}}"', |
| 756 | + 'tog-riched_disable_ns_image' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:file}}"', |
| 757 | + 'tog-riched_disable_ns_image_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:file_talk}}"', |
| 758 | + 'tog-riched_disable_ns_mediawiki' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:mediawiki}}"', |
| 759 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:mediawiki_talk}}"', |
| 760 | + 'tog-riched_disable_ns_template' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:template}}"', |
| 761 | + 'tog-riched_disable_ns_template_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:template_talk}}"', |
| 762 | + 'tog-riched_disable_ns_help' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:help}}"', |
| 763 | + 'tog-riched_disable_ns_help_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:help_talk}}"', |
| 764 | + 'tog-riched_disable_ns_category' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:category}}"', |
| 765 | + 'tog-riched_disable_ns_category_talk' => 'Disattiva editor avanzato all\'interno del namespace "{{ns:category_talk}}"', |
| 766 | + 'rich_editor_new_window' => 'Apri editor avanzato in una nuova finestra', |
| 767 | + 'tog-riched_start_disabled' => "Inizia con l'editor avanzato disabilitato", |
| 768 | + 'tog-riched_use_popup' => 'Apri editor avanzato in una finestra popup', |
| 769 | + 'tog-riched_use_toggle' => "Usa il pulsante per passare dal normale wikitext all'editor avanzato e viceversa (sostituisce la textarea con l'editor avanzato)", |
| 770 | + 'tog-riched_toggle_remember_state' => "Ricorda l'ultima modalità di editing utilizzata (avanzata o normale)", |
| 771 | +); |
| 772 | + |
| 773 | +/** Japanese (日本語) |
| 774 | + * @author Fryed-peach |
| 775 | + */ |
| 776 | +$messages['ja'] = array( |
| 777 | + 'fckeditor-desc' => 'WYSIWYG を実現した FCKeditor を使用して編集できるようにする', |
| 778 | + 'textrichditor' => 'リッチエディタ', |
| 779 | + 'prefs-fckeditor' => 'リッチエディタ', |
| 780 | + 'tog-riched_disable' => 'リッチエディタを無効化する', |
| 781 | + 'tog-riched_disable_ns_main' => '標準名前空間でリッチエディタを無効化する', |
| 782 | + 'tog-riched_disable_ns_talk' => '「{{ns:talk}}」名前空間でリッチエディタを無効化する', |
| 783 | + 'tog-riched_disable_ns_user' => '「{{ns:user}}」名前空間でリッチエディタを無効化する', |
| 784 | + 'tog-riched_disable_ns_user_talk' => '「{{ns:user_talk}}」名前空間でリッチエディタを無効化する', |
| 785 | + 'tog-riched_disable_ns_project' => '「{{ns:project}}」名前空間でリッチエディタを無効化する', |
| 786 | + 'tog-riched_disable_ns_project_talk' => '「{{ns:project_talk}}」名前空間でリッチエディタを無効化する', |
| 787 | + 'tog-riched_disable_ns_image' => '「{{ns:file}}」名前空間でリッチエディタを無効化する', |
| 788 | + 'tog-riched_disable_ns_image_talk' => '「{{ns:file_talk}}」名前空間でリッチエディタを無効化する', |
| 789 | + 'tog-riched_disable_ns_mediawiki' => '「{{ns:mediawiki}}」名前空間でリッチエディタを無効化する', |
| 790 | + 'tog-riched_disable_ns_mediawiki_talk' => '「{{ns:mediawiki_talk}}」名前空間でリッチエディタを無効化する', |
| 791 | + 'tog-riched_disable_ns_template' => '「{{ns:template}}」名前空間でリッチエディタを無効化する', |
| 792 | + 'tog-riched_disable_ns_template_talk' => '「{{ns:template_talk}}」名前空間でリッチエディタを無効化する', |
| 793 | + 'tog-riched_disable_ns_help' => '「{{ns:help}}」名前空間でリッチエディタを無効化する', |
| 794 | + 'tog-riched_disable_ns_help_talk' => '「{{ns:help_talk}}」名前空間でリッチエディタを無効化する', |
| 795 | + 'tog-riched_disable_ns_category' => '「{{ns:category}}」名前空間でリッチエディタを無効化する', |
| 796 | + 'tog-riched_disable_ns_category_talk' => '「{{ns:category_talk}}」名前空間でリッチエディタを無効化する', |
| 797 | + 'rich_editor_new_window' => 'リッチエディタを新規ウィンドウで開く', |
| 798 | + 'tog-riched_start_disabled' => '開始時にはリッチエディタを無効にしておく', |
| 799 | + 'tog-riched_use_popup' => 'リッチエディタをポップアップ・ウィンドウで開く', |
| 800 | + 'tog-riched_use_toggle' => 'ウィキテキストとリッチエディタを切り替えるトグルスイッチを利用する (テキストエリアをリッチエディタで置き換える)', |
| 801 | + 'tog-riched_toggle_remember_state' => '最後のトグル状態を記憶する', |
| 802 | +); |
| 803 | + |
| 804 | +/** Korean (한국어) |
| 805 | + * @author Devunt |
| 806 | + * @author Klutzy |
| 807 | + */ |
| 808 | +$messages['ko'] = array( |
| 809 | + 'fckeditor-desc' => '위지윅 편집기 FCKeditor를 이용하여 편집하는것을 허용', |
| 810 | + 'textrichditor' => '리치 에디터', |
| 811 | + 'prefs-fckeditor' => '리치 에디터', |
| 812 | + 'tog-riched_disable' => '리치 에디터 사용하지 않기', |
| 813 | + 'tog-riched_disable_ns_main' => '주 이름 공간에서 리치 에디어 사용하지 않기', |
| 814 | + 'tog-riched_disable_ns_talk' => '"{{ns:talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 815 | + 'tog-riched_disable_ns_user' => '"{{ns:user}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 816 | + 'tog-riched_disable_ns_user_talk' => '"{{ns:user_talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 817 | + 'tog-riched_disable_ns_project' => '"{{ns:project}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 818 | + 'tog-riched_disable_ns_project_talk' => '"{{ns:project_talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 819 | + 'tog-riched_disable_ns_image' => '"{{ns:file}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 820 | + 'tog-riched_disable_ns_image_talk' => '"{{ns:file_talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 821 | + 'tog-riched_disable_ns_mediawiki' => '"{{ns:mediawiki}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 822 | + 'tog-riched_disable_ns_mediawiki_talk' => '"{{ns:mediawiki_talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 823 | + 'tog-riched_disable_ns_template' => '"{{ns:template}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 824 | + 'tog-riched_disable_ns_template_talk' => '"{{ns:template_talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 825 | + 'tog-riched_disable_ns_help' => '"{{ns:help}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 826 | + 'tog-riched_disable_ns_help_talk' => '"{{ns:help_talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 827 | + 'tog-riched_disable_ns_category' => '"{{ns:category}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 828 | + 'tog-riched_disable_ns_category_talk' => '"{{ns:category_talk}}" 이름 공간에서 리치 에디어 사용하지 않기', |
| 829 | + 'rich_editor_new_window' => '새 창에 리치 에디터 열기', |
| 830 | + 'tog-riched_start_disabled' => '리치 에디터를 끈 채로 시작하기', |
| 831 | + 'tog-riched_use_popup' => '팝업 창에 리치 에디터 열기', |
| 832 | + 'tog-riched_use_toggle' => '토글을 이용해 위키텍스트와 리치 에디터를 오가기 (텍스트영역을 리치 에디터로 대체하기)', |
| 833 | + 'tog-riched_toggle_remember_state' => '마지막 토글 상태를 기억하기', |
| 834 | +); |
| 835 | + |
| 836 | +/** Colognian (Ripoarisch) |
| 837 | + * @author Purodha |
| 838 | + */ |
| 839 | +$messages['ksh'] = array( |
| 840 | + 'fckeditor-desc' => 'Määt es müjjelesch, de Sigge met däm „<i lang="en">Rich Editor</i>“ en dä <i lang="en">WYSIWYG</i>-Mannier ze ändere.', |
| 841 | + 'textrichditor' => '<i lang="en">Rich Editor</i>', |
| 842 | + 'prefs-fckeditor' => '„<i lang="en">Rich Editor</i>“', |
| 843 | + 'tog-riched_disable' => 'Donn dä „<i lang="en">Rich Editor</i>“ afschallde', |
| 844 | + 'tog-riched_disable_ns_main' => 'Donn dä „<i lang="en">Rich Editor</i>“ em Houp-Appachtemang afschallde', |
| 845 | + 'tog-riched_disable_ns_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:talk}}-Appachtemang afschallde', |
| 846 | + 'tog-riched_disable_ns_user' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:user}}-Appachtemang afschallde', |
| 847 | + 'tog-riched_disable_ns_user_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:user_talk}}-Appachtemang afschallde', |
| 848 | + 'tog-riched_disable_ns_project' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:project}}-Appachtemang afschallde', |
| 849 | + 'tog-riched_disable_ns_project_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:project_talk}}-Appachtemang afschallde', |
| 850 | + 'tog-riched_disable_ns_image' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:file_talk}}-Appachtemang afschallde', |
| 851 | + 'tog-riched_disable_ns_image_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:file_talk}}-Appachtemang afschallde', |
| 852 | + 'tog-riched_disable_ns_mediawiki' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:mediawiki}}-Appachtemang afschallde', |
| 853 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:mediawiki_talk}}-Appachtemang afschallde', |
| 854 | + 'tog-riched_disable_ns_template' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:template}}-Appachtemang afschallde', |
| 855 | + 'tog-riched_disable_ns_template_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:template_talk}}-Appachtemang afschallde', |
| 856 | + 'tog-riched_disable_ns_help' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:help}}-Appachtemang afschallde', |
| 857 | + 'tog-riched_disable_ns_help_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:help_talk}}-Appachtemang afschallde', |
| 858 | + 'tog-riched_disable_ns_category' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:category}}-Appachtemang afschallde', |
| 859 | + 'tog-riched_disable_ns_category_talk' => 'Donn dä „<i lang="en">Rich Editor</i>“ em {{ns:category_talk}}-Appachtemang afschallde', |
| 860 | + 'rich_editor_new_window' => 'Donn dä „<i lang="en">Rich Editor</i>“ em extra Finster opmaache', |
| 861 | + 'tog-riched_start_disabled' => 'Donn dä „<i lang="en">Rich Editor</i>“ nit automattesch aanschmiiße', |
| 862 | + 'tog-riched_use_popup' => 'Donn dä „<i lang="en">Rich Editor</i>“ als ene <i lang="en">popup</i> loufe lohße', |
| 863 | + 'tog-riched_use_toggle' => 'Donn zwesche däm nomaale Ändere (Wikitäx Beärbeide) un däm „<i lang="en">Rich Editor</i>“ aam sellve Plaz ömschallde', |
| 864 | + 'tog-riched_toggle_remember_state' => 'Donn dä letzte Zohschtand vum Ömschallde zwesche däm Wikitäx Beärbeide un däm „<i lang="en">Rich Editor</i>“ faßhallde', |
| 865 | +); |
| 866 | + |
| 867 | +/** Luxembourgish (Lëtzebuergesch) |
| 868 | + * @author Robby |
| 869 | + */ |
| 870 | +$messages['lb'] = array( |
| 871 | + 'fckeditor-desc' => 'Erlaabt et de WYSIWYG-Editeur FCKeditor ze benotzen', |
| 872 | + 'textrichditor' => 'Editeur mat erweiderte Fonctiounen', |
| 873 | + 'prefs-fckeditor' => 'Editeur mat erweiderte Fonctiounen', |
| 874 | + 'tog-riched_disable' => 'Editeur mat erweiderte Fonctiounen aschalten', |
| 875 | + 'tog-riched_disable_ns_main' => 'Editeur mat erweiderte Fonctiounen am Haaptnummraum ausschalten', |
| 876 | + 'tog-riched_disable_ns_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:talk}}" ausschalten', |
| 877 | + 'tog-riched_disable_ns_user' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:user}}" ausschalten', |
| 878 | + 'tog-riched_disable_ns_user_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:user_talk}}" ausschalten', |
| 879 | + 'tog-riched_disable_ns_project' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:project}}" ausschalten', |
| 880 | + 'tog-riched_disable_ns_project_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:prject_talk}}" ausschalten', |
| 881 | + 'tog-riched_disable_ns_image' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:file}}" ausschalten', |
| 882 | + 'tog-riched_disable_ns_image_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:file_talk}}" ausschalten', |
| 883 | + 'tog-riched_disable_ns_mediawiki' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:mediawiki}}" ausschalten', |
| 884 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:mediawiki_talk}}" ausschalten', |
| 885 | + 'tog-riched_disable_ns_template' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:template}}" ausschalten', |
| 886 | + 'tog-riched_disable_ns_template_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:template_talk}}" ausschalten', |
| 887 | + 'tog-riched_disable_ns_help' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:help}}" ausschalten', |
| 888 | + 'tog-riched_disable_ns_help_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:help_talk}}" ausschalten', |
| 889 | + 'tog-riched_disable_ns_category' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:category}}" ausschalten', |
| 890 | + 'tog-riched_disable_ns_category_talk' => 'Editeur mat erweiderte Fonctiounen am Nummraum "{{ns:category_talk}}" ausschalten', |
| 891 | + 'rich_editor_new_window' => 'Editeur mat erweiderte Fonctiounen an enger neier Fënster opmaachen', |
| 892 | + 'tog-riched_start_disabled' => 'Editeur mat erweiderte Fonctiounen beim Start ausgeschalt', |
| 893 | + 'tog-riched_use_popup' => 'Editeur mat erweiderte Fonctiounen an engem Popup opmaachen', |
| 894 | + 'tog-riched_use_toggle' => "Schalter benotze fir tëschen dem Benotze vu Wikitext an engem 'rich editor' ze wiesselen (den Textberäich gëtt duerch e 'rich editor' ersat)", |
| 895 | + 'tog-riched_toggle_remember_state' => 'De leschten Ëmschaltzoustand verhalen', |
| 896 | +); |
| 897 | + |
| 898 | +/** Latvian (Latviešu) |
| 899 | + * @author GreenZeb |
| 900 | + */ |
| 901 | +$messages['lv'] = array( |
| 902 | + 'textrichditor' => 'Formatējuma redaktors', |
| 903 | + 'prefs-fckeditor' => 'Formatējuma redaktors', |
| 904 | + 'tog-riched_disable' => 'Atspējot formatējuma redaktoru', |
| 905 | + 'tog-riched_disable_ns_main' => 'Atspējot formatējuma redaktoru galvenajā vārdtelpā', |
| 906 | + 'tog-riched_disable_ns_talk' => 'Atspējot formatējuma redaktoru "{{ns:talk}}" vārdtelpā', |
| 907 | + 'tog-riched_disable_ns_user' => 'Atspējot formatējuma redaktoru "{{ns:user}}" vārdtelpā', |
| 908 | + 'tog-riched_disable_ns_user_talk' => 'Atspējot formatējuma redaktoru "{{ns:user_talk}}" vārdtelpā', |
| 909 | + 'tog-riched_disable_ns_project' => 'Atspējot formatējuma redaktoru "{{ns:project}}" vārdtelpā', |
| 910 | + 'tog-riched_disable_ns_project_talk' => 'Atspējot formatējuma redaktoru "{{ns:project_talk}}" vārdtelpā', |
| 911 | + 'tog-riched_disable_ns_image' => 'Atspējot formatējuma redaktoru "{{ns:file}}" vārdtelpā', |
| 912 | + 'tog-riched_disable_ns_image_talk' => 'Atspējot formatējuma redaktoru "{{ns:file_talk}}" vārdtelpā', |
| 913 | + 'tog-riched_disable_ns_mediawiki' => 'Atspējot formatējuma redaktoru "{{ns:mediawiki}}" vārdtelpā', |
| 914 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Atspējot formatējuma redaktoru "{{ns:mediawiki_talk}}" vārdtelpā', |
| 915 | + 'tog-riched_disable_ns_template' => 'Atspējot formatējuma redaktoru "{{ns:template}}" vārdtelpā', |
| 916 | + 'tog-riched_disable_ns_template_talk' => 'Atspējot formatējuma redaktoru "{{ns:template_talk}}" vārdtelpā', |
| 917 | + 'tog-riched_disable_ns_help' => 'Atspējot formatējuma redaktoru "{{ns:help}}" vārdtelpā', |
| 918 | + 'tog-riched_disable_ns_help_talk' => 'Atspējot formatējuma redaktoru "{{ns:help_talk}}" vārdtelpā', |
| 919 | + 'tog-riched_disable_ns_category' => 'Atspējot formatējuma redaktoru "{{ns:category}}" vārdtelpā', |
| 920 | + 'tog-riched_disable_ns_category_talk' => 'Atspējot formatējuma redaktoru "{{ns:category_talk}}" vārdtelpā', |
| 921 | + 'rich_editor_new_window' => 'Atvērt formatējuma redaktoru jaunā logā', |
| 922 | + 'tog-riched_start_disabled' => 'Sākt ar atspējotu formatējuma redaktoru', |
| 923 | + 'tog-riched_use_popup' => 'Atvērt formatējuma redaktoru uzlecošā logā', |
| 924 | +); |
| 925 | + |
| 926 | +/** Macedonian (Македонски) |
| 927 | + * @author Bjankuloski06 |
| 928 | + */ |
| 929 | +$messages['mk'] = array( |
| 930 | + 'fckeditor-desc' => 'Овозможува уредување со помош на визуелниот (WYSIWYG) уредник FCKeditor', |
| 931 | + 'textrichditor' => 'Визуелен уредувач', |
| 932 | + 'prefs-fckeditor' => 'Визуелен уредувач', |
| 933 | + 'tog-riched_disable' => 'Оневозможи визуелен уредувач', |
| 934 | + 'tog-riched_disable_ns_main' => 'Оневозможи визуелен уредувач во главниот именски простор', |
| 935 | + 'tog-riched_disable_ns_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:talk}}“', |
| 936 | + 'tog-riched_disable_ns_user' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:user}}“', |
| 937 | + 'tog-riched_disable_ns_user_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:user_talk}}“', |
| 938 | + 'tog-riched_disable_ns_project' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:project}}“', |
| 939 | + 'tog-riched_disable_ns_project_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:project_talk}}“', |
| 940 | + 'tog-riched_disable_ns_image' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:file}}“', |
| 941 | + 'tog-riched_disable_ns_image_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:file_talk}}“', |
| 942 | + 'tog-riched_disable_ns_mediawiki' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:mediawiki}}“', |
| 943 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:mediawiki_talk}}“', |
| 944 | + 'tog-riched_disable_ns_template' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:template}}“', |
| 945 | + 'tog-riched_disable_ns_template_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:template_talk}}“', |
| 946 | + 'tog-riched_disable_ns_help' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:help}}“', |
| 947 | + 'tog-riched_disable_ns_help_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:help_talk}}“', |
| 948 | + 'tog-riched_disable_ns_category' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:category}}“', |
| 949 | + 'tog-riched_disable_ns_category_talk' => 'Оневозможи визуелен уредувач во именскиот простор „{{ns:category_talk}}“', |
| 950 | + 'rich_editor_new_window' => 'Отвори го визуелниот уредувач во нов прозорец', |
| 951 | + 'tog-riched_start_disabled' => 'Почнувај со визуелниот уредувач исклучен', |
| 952 | + 'tog-riched_use_popup' => 'Отвори го визуелниот уредувач во скокачки прозорец', |
| 953 | + 'tog-riched_use_toggle' => 'Користи превклучувач за преод помеѓу викитекст и визуелниот уредувач (ја заменува текстуалното поле со визуелен уредувач)', |
| 954 | + 'tog-riched_toggle_remember_state' => 'Запомни ја последната состојба на превклучувачот', |
| 955 | +); |
| 956 | + |
| 957 | +/** Marathi (मराठी) |
| 958 | + * @author Kaustubh |
| 959 | + */ |
| 960 | +$messages['mr'] = array( |
| 961 | + 'textrichditor' => 'वाढीव संपादक', |
| 962 | + 'tog-riched_disable' => 'वाढीव संपादक रद्द करा', |
| 963 | + 'tog-riched_disable_ns_main' => 'मुख्य नामविश्वात वाढीव संपादक रद्द करा', |
| 964 | + 'tog-riched_disable_ns_talk' => '"{{ns:Talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 965 | + 'tog-riched_disable_ns_user' => '"{{ns:User}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 966 | + 'tog-riched_disable_ns_user_talk' => '"{{ns:User_talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 967 | + 'tog-riched_disable_ns_project' => '"{{ns:Project}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 968 | + 'tog-riched_disable_ns_project_talk' => '"{{ns:Project_talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 969 | + 'tog-riched_disable_ns_image' => '"{{ns:Image}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 970 | + 'tog-riched_disable_ns_image_talk' => '"{{ns:Image_talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 971 | + 'tog-riched_disable_ns_mediawiki' => '"{{ns:MediaWiki}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 972 | + 'tog-riched_disable_ns_mediawiki_talk' => '"{{ns:MediaWiki_talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 973 | + 'tog-riched_disable_ns_template' => '"{{ns:Template}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 974 | + 'tog-riched_disable_ns_template_talk' => '"{{ns:Template_talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 975 | + 'tog-riched_disable_ns_help' => '"{{ns:Help}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 976 | + 'tog-riched_disable_ns_help_talk' => '"{{ns:Help_talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 977 | + 'tog-riched_disable_ns_category' => '"{{ns:Category}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 978 | + 'tog-riched_disable_ns_category_talk' => '"{{ns:Category_talk}}" नामविश्वात वाढीव संपादक रद्द करा', |
| 979 | +); |
| 980 | + |
| 981 | +/** Malay (Bahasa Melayu) |
| 982 | + * @author Anakmalaysia |
| 983 | + */ |
| 984 | +$messages['ms'] = array( |
| 985 | + 'fckeditor-desc' => 'Membolehkan penggunaan editor WYSIWYG, FCKeditor', |
| 986 | + 'textrichditor' => 'Editor Teks Beraneka', |
| 987 | + 'prefs-fckeditor' => 'Editor Teks Beraneka', |
| 988 | + 'tog-riched_disable' => 'Matikan editor teks beraneka', |
| 989 | + 'tog-riched_disable_ns_main' => 'Matikan editor teks beraneka di dalam ruang nama utama', |
| 990 | + 'tog-riched_disable_ns_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:talk}}"', |
| 991 | + 'tog-riched_disable_ns_user' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:user}}"', |
| 992 | + 'tog-riched_disable_ns_user_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:user_talk}}"', |
| 993 | + 'tog-riched_disable_ns_project' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:project}}"', |
| 994 | + 'tog-riched_disable_ns_project_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:project_talk}}"', |
| 995 | + 'tog-riched_disable_ns_image' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:file}}"', |
| 996 | + 'tog-riched_disable_ns_image_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:file_talk}}"', |
| 997 | + 'tog-riched_disable_ns_mediawiki' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:mediawiki}}"', |
| 998 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:mediawiki_talk}}"', |
| 999 | + 'tog-riched_disable_ns_template' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:template}}"', |
| 1000 | + 'tog-riched_disable_ns_template_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:template_talk}}"', |
| 1001 | + 'tog-riched_disable_ns_help' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:help}}"', |
| 1002 | + 'tog-riched_disable_ns_help_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:help_talk}}"', |
| 1003 | + 'tog-riched_disable_ns_category' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:category}}"', |
| 1004 | + 'tog-riched_disable_ns_category_talk' => 'Matikan editor teks beraneka di dalam ruang nama "{{ns:category_talk}}"', |
| 1005 | + 'rich_editor_new_window' => 'Buka Editor teks beraneka dalam tetingkap baru', |
| 1006 | + 'tog-riched_start_disabled' => 'Mulakan tanpa menghidupkan editor teks beraneka', |
| 1007 | + 'tog-riched_use_popup' => 'Buka editor teks beraneka dalam tetimbul (pop-up)', |
| 1008 | + 'tog-riched_use_toggle' => 'Gunakan togol untuk beralih antara teks wiki dan editor teks beraneka (ganti ruangan teks dengan editor teks beraneka)', |
| 1009 | + 'tog-riched_toggle_remember_state' => 'Ingati keadaan togol terkini', |
| 1010 | +); |
| 1011 | + |
| 1012 | +/** Dutch (Nederlands) |
| 1013 | + * @author Siebrand |
| 1014 | + */ |
| 1015 | +$messages['nl'] = array( |
| 1016 | + 'fckeditor-desc' => 'Maakt bewerken met de WYSIWYG-editor FCKeditor mogelijk', |
| 1017 | + 'textrichditor' => 'Uitgebreide editor', |
| 1018 | + 'prefs-fckeditor' => 'Uitgebreide editor', |
| 1019 | + 'tog-riched_disable' => 'Uitgebreide editor uitschakelen', |
| 1020 | + 'tog-riched_disable_ns_main' => 'Uitgebreide editor uitschakelen binnen de hoofdnaamruimte', |
| 1021 | + 'tog-riched_disable_ns_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:talk}}"', |
| 1022 | + 'tog-riched_disable_ns_user' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:user}}"', |
| 1023 | + 'tog-riched_disable_ns_user_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:user_talk}}"', |
| 1024 | + 'tog-riched_disable_ns_project' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:project}}"', |
| 1025 | + 'tog-riched_disable_ns_project_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:project_talk}}"', |
| 1026 | + 'tog-riched_disable_ns_image' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:file}}"', |
| 1027 | + 'tog-riched_disable_ns_image_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:file_talk}}"', |
| 1028 | + 'tog-riched_disable_ns_mediawiki' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:mediawiki}}"', |
| 1029 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:mediawiki_talk}}"', |
| 1030 | + 'tog-riched_disable_ns_template' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:template}}"', |
| 1031 | + 'tog-riched_disable_ns_template_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:template_talk}}"', |
| 1032 | + 'tog-riched_disable_ns_help' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:help}}"', |
| 1033 | + 'tog-riched_disable_ns_help_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:help_talk}}"', |
| 1034 | + 'tog-riched_disable_ns_category' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:category}}"', |
| 1035 | + 'tog-riched_disable_ns_category_talk' => 'Uitgebreide editor uitschakelen binnen de naamruimte "{{ns:category_talk}}"', |
| 1036 | + 'rich_editor_new_window' => 'Uitgebreide editor in nieuw venster openen', |
| 1037 | + 'tog-riched_start_disabled' => 'De uitgebreide editor aanvankelijk uitschakelen', |
| 1038 | + 'tog-riched_use_popup' => 'Uitgebreide editor in een pop-up weergeven', |
| 1039 | + 'tog-riched_use_toggle' => 'Knop gebruiken om te wisselen tussen wikitext en uitgebreide editor (het tekstgedeelte wordt vervangen door de uitgebreide editor)', |
| 1040 | + 'tog-riched_toggle_remember_state' => 'Laatste status onthouden', |
| 1041 | +); |
| 1042 | + |
| 1043 | +/** Norwegian Nynorsk (Norsk (nynorsk)) |
| 1044 | + * @author Gunnernett |
| 1045 | + */ |
| 1046 | +$messages['nn'] = array( |
| 1047 | + 'tog-riched_disable_ns_main' => 'Slå av rik tekstredigering i hovudnamneromet', |
| 1048 | +); |
| 1049 | + |
| 1050 | +/** Norwegian (bokmål) (Norsk (bokmål)) |
| 1051 | + * @author Jon Harald Søby |
| 1052 | + * @author Laaknor |
| 1053 | + * @author Nghtwlkr |
| 1054 | + */ |
| 1055 | +$messages['no'] = array( |
| 1056 | + 'fckeditor-desc' => 'Tillatt redigeringer med «WYSIWYG»-editoren FCKeditor', |
| 1057 | + 'textrichditor' => 'Rik tekstredigering', |
| 1058 | + 'prefs-fckeditor' => 'Rik editor', |
| 1059 | + 'tog-riched_disable' => 'Slå av rik tekstredigering', |
| 1060 | + 'tog-riched_disable_ns_main' => 'Slå av rik tekstredigering i hovednavnerommet', |
| 1061 | + 'tog-riched_disable_ns_talk' => 'Slå av rik tekstredigering i «{{ns:talk}}»-navnerommet', |
| 1062 | + 'tog-riched_disable_ns_user' => 'Slå av rik tekstredigering i «{{ns:user}}»-navnerommet', |
| 1063 | + 'tog-riched_disable_ns_user_talk' => 'Slå av rik tekstredigering i «{{ns:user_talk}}»-navnerommet', |
| 1064 | + 'tog-riched_disable_ns_project' => 'Slå av rik tekstredigering i «{{ns:project}}»-navnerommet', |
| 1065 | + 'tog-riched_disable_ns_project_talk' => 'Slå av rik tekstredigering i «{{ns:project_talk}}»-navnerommet', |
| 1066 | + 'tog-riched_disable_ns_image' => 'Slå av rik tekstredigering i «{{ns:file}}»-navnerommet', |
| 1067 | + 'tog-riched_disable_ns_image_talk' => 'Slå av rik tekstredigering i «{{ns:file_talk}}»-navnerommet', |
| 1068 | + 'tog-riched_disable_ns_mediawiki' => 'Slå av rik tekstbehandler i navnerommet «{{ns:MediaWiki}}»', |
| 1069 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Slå av rik tekstbehandler i navnerommet «{{ns:MediaWiki_talk}}»', |
| 1070 | + 'tog-riched_disable_ns_template' => 'Slå av rik tekstredigering i «{{ns:template}}»-navnerommet', |
| 1071 | + 'tog-riched_disable_ns_template_talk' => 'Slå av rik tekstredigering i «{{ns:template_talk}}»-navnerommet', |
| 1072 | + 'tog-riched_disable_ns_help' => 'Slå av rik tekstredigering i «{{ns:help}}»-navnerommet', |
| 1073 | + 'tog-riched_disable_ns_help_talk' => 'Slå av rik tekstredigering i «{{ns:help_talk}}»-navnerommet', |
| 1074 | + 'tog-riched_disable_ns_category' => 'Slå av rik tekstredigering i «{{ns:category}}»-navnerommet', |
| 1075 | + 'tog-riched_disable_ns_category_talk' => 'Slå av rik tekstredigering i «{{ns:category_talk}}»-navnerommet', |
| 1076 | + 'rich_editor_new_window' => 'Åpne rik editor i nytt vindu', |
| 1077 | + 'tog-riched_start_disabled' => 'Start med rik editor deaktivert', |
| 1078 | + 'tog-riched_use_popup' => 'Åpne rik editor i et sprettoppvindu', |
| 1079 | + 'tog-riched_use_toggle' => 'Bruk bytt for å bytte mellom wikitekst og grafisk redigering (bytter ut tekstrute med grafisk redigering)', |
| 1080 | + 'tog-riched_toggle_remember_state' => 'Husk siste valg', |
| 1081 | +); |
| 1082 | + |
| 1083 | +/** Occitan (Occitan) |
| 1084 | + * @author Cedric31 |
| 1085 | + */ |
| 1086 | +$messages['oc'] = array( |
| 1087 | + 'fckeditor-desc' => 'Permet la modificacion en utilizant l’editor WYSIWYG FCKeditor', |
| 1088 | + 'textrichditor' => "''Rich Editor''", |
| 1089 | + 'prefs-fckeditor' => 'Editor enriquit', |
| 1090 | + 'tog-riched_disable' => "Desactivar ''Rich Editor''", |
| 1091 | + 'tog-riched_disable_ns_main' => "Desactivar ''Rich Editor'' dins l'espaci de noms principal.", |
| 1092 | + 'tog-riched_disable_ns_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:talk}}''.", |
| 1093 | + 'tog-riched_disable_ns_user' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:user}}''.", |
| 1094 | + 'tog-riched_disable_ns_user_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:user_talk}}''.", |
| 1095 | + 'tog-riched_disable_ns_project' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:project}}''.", |
| 1096 | + 'tog-riched_disable_ns_project_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:project_talk}}''.", |
| 1097 | + 'tog-riched_disable_ns_image' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:file}}''.", |
| 1098 | + 'tog-riched_disable_ns_image_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:file_talk}}''.", |
| 1099 | + 'tog-riched_disable_ns_mediawiki' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:file_talk}}''.", |
| 1100 | + 'tog-riched_disable_ns_mediawiki_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:mediawiki_talk}}''.", |
| 1101 | + 'tog-riched_disable_ns_template' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:template}}''.", |
| 1102 | + 'tog-riched_disable_ns_template_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:template_talk}}''.", |
| 1103 | + 'tog-riched_disable_ns_help' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:help}}''.", |
| 1104 | + 'tog-riched_disable_ns_help_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:help_talk}}''.", |
| 1105 | + 'tog-riched_disable_ns_category' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:category}}''.", |
| 1106 | + 'tog-riched_disable_ns_category_talk' => "Desactivar ''Rich Editor'' dins l'espaci de noms ''{{ns:category_talk}}''.", |
| 1107 | + 'rich_editor_new_window' => "Dobrir l'editor enriquit dins una fenèstra novèla", |
| 1108 | + 'tog-riched_start_disabled' => "Amodar amb l'editor enriquit desactivat", |
| 1109 | + 'tog-riched_use_popup' => "Dobrir l'editor enriquit dins una popup", |
| 1110 | + 'tog-riched_use_toggle' => "Balhar la possibilitat de cambiar entre l'editor original WikiTèxte e l'editor enriquit", |
| 1111 | + 'tog-riched_toggle_remember_state' => "Se remembrar de la darrièra seleccion de l'editor", |
| 1112 | +); |
| 1113 | + |
| 1114 | +/** Polish (Polski) |
| 1115 | + * @author Sp5uhe |
| 1116 | + */ |
| 1117 | +$messages['pl'] = array( |
| 1118 | + 'fckeditor-desc' => 'Umożliwia korzystanie z edytora WYSIWYG o nazwie FCKeditor', |
| 1119 | + 'textrichditor' => 'Rozbudowany edytor', |
| 1120 | + 'prefs-fckeditor' => 'Rozbudowany edytor', |
| 1121 | + 'tog-riched_disable' => 'Wyłącz rozbudowany edytor', |
| 1122 | + 'tog-riched_disable_ns_main' => 'Wyłącz rozbudowany edytor w głównej przestrzeni nazw', |
| 1123 | + 'tog-riched_disable_ns_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:talk}}“', |
| 1124 | + 'tog-riched_disable_ns_user' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:user}}“', |
| 1125 | + 'tog-riched_disable_ns_user_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:user_talk}}“', |
| 1126 | + 'tog-riched_disable_ns_project' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:project}}“', |
| 1127 | + 'tog-riched_disable_ns_project_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:project_talk}}“', |
| 1128 | + 'tog-riched_disable_ns_image' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:file}}“', |
| 1129 | + 'tog-riched_disable_ns_image_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:file_talk}}“', |
| 1130 | + 'tog-riched_disable_ns_mediawiki' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:mediawiki}}“', |
| 1131 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:mediawiki_talk}}“', |
| 1132 | + 'tog-riched_disable_ns_template' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:template}}“', |
| 1133 | + 'tog-riched_disable_ns_template_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:template_talk}}“', |
| 1134 | + 'tog-riched_disable_ns_help' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:help}}“', |
| 1135 | + 'tog-riched_disable_ns_help_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:help_talk}}“', |
| 1136 | + 'tog-riched_disable_ns_category' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:category}}“', |
| 1137 | + 'tog-riched_disable_ns_category_talk' => 'Wyłącz rozbudowany edytor w przestrzeni nazw „{{ns:category_talk}}“', |
| 1138 | + 'rich_editor_new_window' => 'Otwieraj rozbudowany edytor w nowym oknie', |
| 1139 | + 'tog-riched_start_disabled' => 'Rozbudowany edytor ma być domyślnie wyłączony', |
| 1140 | + 'tog-riched_use_popup' => 'Otwieraj rozbudowany edytor w okienku popup', |
| 1141 | + 'tog-riched_use_toggle' => 'Używaj rozbudowanego edytora zamiennie ze standardowym (umieści rozbudowany edytor w polu „textarea“)', |
| 1142 | + 'tog-riched_toggle_remember_state' => 'Zapamiętuj ostatni używany edytor', |
| 1143 | +); |
| 1144 | + |
| 1145 | +/** Piedmontese (Piemontèis) |
| 1146 | + * @author Bèrto 'd Sèra |
| 1147 | + * @author Dragonòt |
| 1148 | + */ |
| 1149 | +$messages['pms'] = array( |
| 1150 | + 'fckeditor-desc' => "A përmëtt ëd modifiché con l'editor WYSIWYG FCKeditor", |
| 1151 | + 'textrichditor' => 'Editor svicio', |
| 1152 | + 'prefs-fckeditor' => 'Editor rich', |
| 1153 | + 'tog-riched_disable' => "Disabilité l'editor svicio", |
| 1154 | + 'tog-riched_disable_ns_main' => "Disabilité l'editor svicio ant lë spassi nominal prinsipal", |
| 1155 | + 'tog-riched_disable_ns_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:talk}}"', |
| 1156 | + 'tog-riched_disable_ns_user' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:user}}"', |
| 1157 | + 'tog-riched_disable_ns_user_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:user_talk}}"', |
| 1158 | + 'tog-riched_disable_ns_project' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:project}}"', |
| 1159 | + 'tog-riched_disable_ns_project_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:project_talk}}"', |
| 1160 | + 'tog-riched_disable_ns_image' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:file}}"', |
| 1161 | + 'tog-riched_disable_ns_image_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:file_talk}}"', |
| 1162 | + 'tog-riched_disable_ns_mediawiki' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:mediawiki}}"', |
| 1163 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:mediawiki_talk}}"', |
| 1164 | + 'tog-riched_disable_ns_template' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:template}}"', |
| 1165 | + 'tog-riched_disable_ns_template_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:template_talk}}"', |
| 1166 | + 'tog-riched_disable_ns_help' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:help}}"', |
| 1167 | + 'tog-riched_disable_ns_help_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:help_talk}}"', |
| 1168 | + 'tog-riched_disable_ns_category' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:category}}"', |
| 1169 | + 'tog-riched_disable_ns_category_talk' => 'Disabilité l\'editor svicio ant lë spassi nominal "{{ns:category_talk}}"', |
| 1170 | + 'rich_editor_new_window' => "deurb l'Edito rich an na neuva fnesta", |
| 1171 | + 'tog-riched_start_disabled' => "Part con l'Editor rich pa abilità", |
| 1172 | + 'tog-riched_use_popup' => "deurb l'Editor rich ant un popup", |
| 1173 | + 'tog-riched_use_toggle' => "Dòvra un toggle për cambié da wikitext a Editor rich (cambia la textarea con l'Editor rich)", |
| 1174 | + 'tog-riched_toggle_remember_state' => "Arcòrda l'ùltim toggle stat", |
| 1175 | +); |
| 1176 | + |
| 1177 | +/** Portuguese (Português) |
| 1178 | + * @author Hamilton Abreu |
| 1179 | + * @author Lijealso |
| 1180 | + * @author Malafaya |
| 1181 | + */ |
| 1182 | +$messages['pt'] = array( |
| 1183 | + 'fckeditor-desc' => 'Permitir edição através do editor WYSIWYG, FCKeditor', |
| 1184 | + 'textrichditor' => 'Editor Rico', |
| 1185 | + 'prefs-fckeditor' => 'Editor Rico', |
| 1186 | + 'tog-riched_disable' => 'Desactivar editor rico', |
| 1187 | + 'tog-riched_disable_ns_main' => 'Desactivar editor rico no espaço nominal principal', |
| 1188 | + 'tog-riched_disable_ns_talk' => 'Desactivar editor rico no espaço nominal "{{ns:talk}}"', |
| 1189 | + 'tog-riched_disable_ns_user' => 'Desactivar editor rico no espaço nominal "{{ns:user}}"', |
| 1190 | + 'tog-riched_disable_ns_user_talk' => 'Desactivar editor rico no espaço nominal "{{ns:user_talk}}"', |
| 1191 | + 'tog-riched_disable_ns_project' => 'Desactivar editor rico no espaço nominal "{{ns:project}}"', |
| 1192 | + 'tog-riched_disable_ns_project_talk' => 'Desactivar editor rico no espaço nominal "{{ns:project_talk}}"', |
| 1193 | + 'tog-riched_disable_ns_image' => 'Desactivar editor rico no espaço nominal "{{ns:file}}"', |
| 1194 | + 'tog-riched_disable_ns_image_talk' => 'Desactivar editor rico no espaço nominal "{{ns:file_talk}}"', |
| 1195 | + 'tog-riched_disable_ns_mediawiki' => 'Desactivar editor rico no espaço nominal "{{ns:mediawiki}}"', |
| 1196 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Desactivar editor rico no espaço nominal "{{ns:mediawiki_talk}}"', |
| 1197 | + 'tog-riched_disable_ns_template' => 'Desactivar editor rico no espaço nominal "{{ns:template}}"', |
| 1198 | + 'tog-riched_disable_ns_template_talk' => 'Desactivar editor rico no espaço nominal "{{ns:template_talk}}"', |
| 1199 | + 'tog-riched_disable_ns_help' => 'Desactivar editor rico no espaço nominal "{{ns:help}}"', |
| 1200 | + 'tog-riched_disable_ns_help_talk' => 'Desactivar editor rico no espaço nominal "{{ns:help_talk}}"', |
| 1201 | + 'tog-riched_disable_ns_category' => 'Desactivar editor rico no espaço nominal "{{ns:category}}"', |
| 1202 | + 'tog-riched_disable_ns_category_talk' => 'Desactivar editor rico no espaço nominal "{{ns:category_talk}}"', |
| 1203 | + 'rich_editor_new_window' => 'Abrir editor rico numa nova janela', |
| 1204 | + 'tog-riched_start_disabled' => 'Começar com o editor rico desactivado', |
| 1205 | + 'tog-riched_use_popup' => 'Abrir editor rico numa janela flutuante', |
| 1206 | + 'tog-riched_use_toggle' => 'Use selector para alternar entre texto wiki e editor rico na área de texto', |
| 1207 | + 'tog-riched_toggle_remember_state' => 'Memorizar último estado do selector', |
| 1208 | +); |
| 1209 | + |
| 1210 | +/** Brazilian Portuguese (Português do Brasil) |
| 1211 | + * @author Daemorris |
| 1212 | + */ |
| 1213 | +$messages['pt-br'] = array( |
| 1214 | + 'fckeditor-desc' => 'Permitir edição usando o editor FCKeditor WYSIWYG', |
| 1215 | + 'textrichditor' => 'Editor Rico', |
| 1216 | + 'prefs-fckeditor' => 'Editor Rico', |
| 1217 | + 'tog-riched_disable' => 'Desativar editor rico', |
| 1218 | + 'tog-riched_disable_ns_main' => 'Desativar o editor rico no espaço nominal principal', |
| 1219 | + 'tog-riched_disable_ns_talk' => 'Desativar o editor rico no espaço nominal "{{ns:talk}}"', |
| 1220 | + 'tog-riched_disable_ns_user' => 'Desativar o editor rico no espaço nominal "{{ns:user}}"', |
| 1221 | + 'tog-riched_disable_ns_user_talk' => 'Desativar o editor rico no espaço nominal "{{ns:user_talk}}"', |
| 1222 | + 'tog-riched_disable_ns_project' => 'Desativar o editor rico no espaço nominal "{{ns:projetct}}"', |
| 1223 | + 'tog-riched_disable_ns_project_talk' => 'Desativar o editor rico no espaço nominal "{{ns:project_talk}}"', |
| 1224 | + 'tog-riched_disable_ns_image' => 'Desativar o editor rico no espaço nominal "{{ns:file}}"', |
| 1225 | + 'tog-riched_disable_ns_image_talk' => 'Desativar o editor rico no espaço nominal "{{ns:file_talk}}"', |
| 1226 | + 'tog-riched_disable_ns_mediawiki' => 'Desativar o editor rico no espaço nominal "{{ns:mediawiki}}"', |
| 1227 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Desativar o editor rico no espaço nominal "{{ns:mediawiki_talk}}"', |
| 1228 | + 'tog-riched_disable_ns_template' => 'Desativar o editor rico no espaço nominal "{{ns:template}}"', |
| 1229 | + 'tog-riched_disable_ns_template_talk' => 'Desativar o editor rico no espaço nominal "{{ns:template_talk}}"', |
| 1230 | + 'tog-riched_disable_ns_help' => 'Desativar o editor rico no espaço nominal "{{ns:help}}"', |
| 1231 | + 'tog-riched_disable_ns_help_talk' => 'Desativar o editor rico no espaço nominal "{{ns:help_talk}}"', |
| 1232 | + 'tog-riched_disable_ns_category' => 'Desativar o editor rico no espaço nominal "{{ns:category}}"', |
| 1233 | + 'tog-riched_disable_ns_category_talk' => 'Desativar o editor rico no espaço nominal "{{ns:category_talk}}"', |
| 1234 | + 'rich_editor_new_window' => 'Abrir o editor rico em uma nova janela', |
| 1235 | + 'tog-riched_start_disabled' => 'Iniciar com o editor rico desativado', |
| 1236 | + 'tog-riched_use_popup' => 'Abrir editor rico em uma janela flutuante', |
| 1237 | + 'tog-riched_use_toggle' => 'Use alterar para alternar entre textowiki e um editor rico (substitui a área de texto com um editor rico)', |
| 1238 | + 'tog-riched_toggle_remember_state' => 'Lembrar último estado alterado', |
| 1239 | +); |
| 1240 | + |
| 1241 | +/** Russian (Русский) |
| 1242 | + * @author Александр Сигачёв |
| 1243 | + */ |
| 1244 | +$messages['ru'] = array( |
| 1245 | + 'fckeditor-desc' => 'Позволяет редактировать с помощью визульного-редактора FCKeditor', |
| 1246 | + 'textrichditor' => 'Визуальный редактор', |
| 1247 | + 'prefs-fckeditor' => 'Визуальный редактор', |
| 1248 | + 'tog-riched_disable' => 'Отключить визуальный редактор', |
| 1249 | + 'tog-riched_disable_ns_main' => 'Отключить визуальный редактор в главном пространстве имён', |
| 1250 | + 'tog-riched_disable_ns_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:Talk}}»', |
| 1251 | + 'tog-riched_disable_ns_user' => 'Отключить визуальный редактор в пространстве имён «{{ns:User}}»', |
| 1252 | + 'tog-riched_disable_ns_user_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:User_talk}}»', |
| 1253 | + 'tog-riched_disable_ns_project' => 'Отключить визуальный редактор в пространстве имён «{{ns:Project}}»', |
| 1254 | + 'tog-riched_disable_ns_project_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:Project_talk}}»', |
| 1255 | + 'tog-riched_disable_ns_image' => 'Отключить визуальный редактор в пространстве имён «{{ns:Image}}»', |
| 1256 | + 'tog-riched_disable_ns_image_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:Image_talk}}»', |
| 1257 | + 'tog-riched_disable_ns_mediawiki' => 'Отключить визуальный редактор в пространстве имён «{{ns:MediaWiki}}»', |
| 1258 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:MediaWiki_talk}}»', |
| 1259 | + 'tog-riched_disable_ns_template' => 'Отключить визуальный редактор в пространстве имён «{{ns:Template}}»', |
| 1260 | + 'tog-riched_disable_ns_template_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:Template_talk}}»', |
| 1261 | + 'tog-riched_disable_ns_help' => 'Отключить визуальный редактор в пространстве имён «{{ns:Help}}»', |
| 1262 | + 'tog-riched_disable_ns_help_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:Help_talk}}»', |
| 1263 | + 'tog-riched_disable_ns_category' => 'Отключить визуальный редактор в пространстве имён «{{ns:Category}}»', |
| 1264 | + 'tog-riched_disable_ns_category_talk' => 'Отключить визуальный редактор в пространстве имён «{{ns:Category_talk}}»', |
| 1265 | + 'rich_editor_new_window' => 'Открыть визуальный редактор в новом окне', |
| 1266 | + 'tog-riched_start_disabled' => 'Начинать с выключенным визуальным редактором', |
| 1267 | + 'tog-riched_use_popup' => 'Открывать визуальный редактор во всплывающем окне', |
| 1268 | + 'tog-riched_use_toggle' => 'Использовать переключатель для переключений между викитекстом и визуальным редактором (замена текстового поля на визуальный редактор)', |
| 1269 | + 'tog-riched_toggle_remember_state' => 'Запоминать последнее состояние переключателя', |
| 1270 | +); |
| 1271 | + |
| 1272 | +/** Slovak (Slovenčina) |
| 1273 | + * @author Helix84 |
| 1274 | + */ |
| 1275 | +$messages['sk'] = array( |
| 1276 | + 'fckeditor-desc' => 'Umožniť úpravy pomocou WYSIWYG editora FCKeditor', |
| 1277 | + 'textrichditor' => 'Editor formátovaného textu', |
| 1278 | + 'prefs-fckeditor' => 'Editor obohateného textu', |
| 1279 | + 'tog-riched_disable' => 'Vypnúť editor formátovaného textu', |
| 1280 | + 'tog-riched_disable_ns_main' => 'Vypnúť editor formátovaného textu v hlavnom mennom priestore', |
| 1281 | + 'tog-riched_disable_ns_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:talk}}“', |
| 1282 | + 'tog-riched_disable_ns_user' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:user}}“', |
| 1283 | + 'tog-riched_disable_ns_user_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:user_talk}}“', |
| 1284 | + 'tog-riched_disable_ns_project' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:project}}“', |
| 1285 | + 'tog-riched_disable_ns_project_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:project_talk}}“', |
| 1286 | + 'tog-riched_disable_ns_image' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:file}}“', |
| 1287 | + 'tog-riched_disable_ns_image_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:file_talk}}“', |
| 1288 | + 'tog-riched_disable_ns_mediawiki' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:mediawiki}}“', |
| 1289 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:mediawiki_talk}}“', |
| 1290 | + 'tog-riched_disable_ns_template' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:template}}“', |
| 1291 | + 'tog-riched_disable_ns_template_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:template_talk}}“', |
| 1292 | + 'tog-riched_disable_ns_help' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:help}}“', |
| 1293 | + 'tog-riched_disable_ns_help_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:help_talk}}“', |
| 1294 | + 'tog-riched_disable_ns_category' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:category}}“', |
| 1295 | + 'tog-riched_disable_ns_category_talk' => 'Vypnúť editor formátovaného textu v mennom priestore „{{ns:category_talk}}“', |
| 1296 | + 'rich_editor_new_window' => 'Otvoriť Editor obohateného textu v novom okne', |
| 1297 | + 'tog-riched_start_disabled' => 'Spustiť s vypnutým Editorom obohateného textu', |
| 1298 | + 'tog-riched_use_popup' => 'Otvoriť Editor obohateného textu vo vyskakovacom okne', |
| 1299 | + 'tog-riched_use_toggle' => 'Použiť prepínač na prepnutie medzi wikitextom a editorom obohateného textu (nahrádza oblasť s textom editorom obohateného textu)', |
| 1300 | + 'tog-riched_toggle_remember_state' => 'Pamätať si posledný stav prepínača', |
| 1301 | +); |
| 1302 | + |
| 1303 | +/** Swedish (Svenska) |
| 1304 | + * @author Sertion |
| 1305 | + */ |
| 1306 | +$messages['sv'] = array( |
| 1307 | + 'fckeditor-desc' => 'Skapar möjligheten att redigera med WYSIWYG-redigeraren FGKeditor', |
| 1308 | + 'textrichditor' => 'Grafiskt läge', |
| 1309 | + 'prefs-fckeditor' => 'Grafiskt läge', |
| 1310 | + 'tog-riched_disable' => 'Inaktivera grafiskt läge', |
| 1311 | + 'tog-riched_disable_ns_main' => 'Inaktivera grafiskt läge i huvudnamnrymden', |
| 1312 | + 'tog-riched_disable_ns_talk' => 'Inaktivera grafiskt läge i "{{ns:talk}}" namnrymden', |
| 1313 | + 'tog-riched_disable_ns_user' => 'Inaktivera grafiskt läge i "{{ns:user}}" namnrymden', |
| 1314 | + 'tog-riched_disable_ns_user_talk' => 'Inaktivera grafiskt läge i "{{ns:user_talk}}" namnrymden', |
| 1315 | + 'tog-riched_disable_ns_project' => 'Inaktivera grafiskt läge i "{{ns:project}}" namnrymden', |
| 1316 | + 'tog-riched_disable_ns_project_talk' => 'Inaktivera grafiskt läge i "{{ns:project_talk}}" namnrymden', |
| 1317 | + 'tog-riched_disable_ns_image' => 'Inaktivera grafiskt läge i "{{ns:file}}" namnrymden', |
| 1318 | + 'tog-riched_disable_ns_image_talk' => 'Inaktivera grafiskt läge i "{{ns:file_talk}}" namnrymden', |
| 1319 | + 'tog-riched_disable_ns_mediawiki' => 'Inaktivera grafiskt läge i "{{ns:mediawiki}}" namnrymden', |
| 1320 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Inaktivera grafiskt läge i "{{ns:mediawiki_talk}}" namnrymden', |
| 1321 | + 'tog-riched_disable_ns_template' => 'Inaktivera grafiskt läge i "{{ns:template}}" namnrymden', |
| 1322 | + 'tog-riched_disable_ns_template_talk' => 'Inaktivera grafiskt läge i "{{ns:template_talk}}" namnrymden', |
| 1323 | + 'tog-riched_disable_ns_help' => 'Inaktivera grafiskt läge i "{{ns:help}}" namnrymden', |
| 1324 | + 'tog-riched_disable_ns_help_talk' => 'Inaktivera grafiskt läge i "{{ns:help_talk}}" namnrymden', |
| 1325 | + 'tog-riched_disable_ns_category' => 'Inaktivera grafiskt läge i "{{ns:category}}" namnrymden', |
| 1326 | + 'tog-riched_disable_ns_category_talk' => 'Inaktivera grafiskt läge i "{{ns:category_talk}}" namnrymden', |
| 1327 | + 'rich_editor_new_window' => 'Öppna det grafiska läget i nytt fönster', |
| 1328 | + 'tog-riched_start_disabled' => 'Starta det grafiska läget inaktiverat', |
| 1329 | + 'tog-riched_use_popup' => 'Öppna det grafiska läget i ett popupfönster', |
| 1330 | + 'tog-riched_use_toggle' => 'Använd växla mellan wikitext och det grafiska läget (byter textruta mot grafiskt läge)', |
| 1331 | + 'tog-riched_toggle_remember_state' => 'Kom ihåg senaste val (i den grafiska editorn)', |
| 1332 | +); |
| 1333 | + |
| 1334 | +/** Telugu (తెలుగు) |
| 1335 | + * @author Chaduvari |
| 1336 | + * @author Veeven |
| 1337 | + */ |
| 1338 | +$messages['te'] = array( |
| 1339 | + 'textrichditor' => 'సిరి కూర్పరి', |
| 1340 | + 'prefs-fckeditor' => 'సిరి కూర్పరి', |
| 1341 | + 'tog-riched_disable' => 'సిరి కూర్పరిని అచేతనం చేయండి', |
| 1342 | + 'tog-riched_disable_ns_help_talk' => '"{{ns:help_talk}}" పేరుబరిలో రిచ్ ఎడిటరును అచేతనం చెయ్యి', |
| 1343 | + 'tog-riched_disable_ns_category' => '"{{ns:category}}" పేరుబరిలో రిచ్ ఎడిటరును అచేతనం చెయ్యి', |
| 1344 | + 'tog-riched_disable_ns_category_talk' => '"{{ns:category_talk}}" పేరుబరిలో రిచ్ ఎడిటరును అచేతనం చెయ్యి', |
| 1345 | + 'rich_editor_new_window' => 'రిచ్ ఎడిటరును కొత్త విండోలో తెరువు', |
| 1346 | + 'tog-riched_use_popup' => 'రిచ్ ఎడిటరును పాపప్ లో తెరువు', |
| 1347 | + 'tog-riched_toggle_remember_state' => 'గత టాగుల్ స్థితిని గుర్తు పెట్టుకో', |
| 1348 | +); |
| 1349 | + |
| 1350 | +/** Tagalog (Tagalog) |
| 1351 | + * @author AnakngAraw |
| 1352 | + */ |
| 1353 | +$messages['tl'] = array( |
| 1354 | + 'fckeditor-desc' => 'Ipahintulot ang pamamatnugot na gamit ang patnugot na FCK ng patnugot na WYSIWYG', |
| 1355 | + 'textrichditor' => 'Mayamang Patnugot', |
| 1356 | + 'prefs-fckeditor' => 'Mayamang Patnugot', |
| 1357 | + 'tog-riched_disable' => 'Huwag paganahin ang mayamang patnugot', |
| 1358 | + 'tog-riched_disable_ns_main' => 'Huwag paganahin ang mayamang patnugot sa loob ng pangunang puwang na pampangalan', |
| 1359 | + 'tog-riched_disable_ns_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:talk}}"', |
| 1360 | + 'tog-riched_disable_ns_user' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:user}}"', |
| 1361 | + 'tog-riched_disable_ns_user_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:user_talk}}"', |
| 1362 | + 'tog-riched_disable_ns_project' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:project}}"', |
| 1363 | + 'tog-riched_disable_ns_project_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:project_talk}}"', |
| 1364 | + 'tog-riched_disable_ns_image' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:file}}"', |
| 1365 | + 'tog-riched_disable_ns_image_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:file_talk}}"', |
| 1366 | + 'tog-riched_disable_ns_mediawiki' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:mediawiki}}"', |
| 1367 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:mediawiki_talk}}"', |
| 1368 | + 'tog-riched_disable_ns_template' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:template}}"', |
| 1369 | + 'tog-riched_disable_ns_template_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:template_talk}}"', |
| 1370 | + 'tog-riched_disable_ns_help' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:help}}"', |
| 1371 | + 'tog-riched_disable_ns_help_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:help_talk}}"', |
| 1372 | + 'tog-riched_disable_ns_category' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:category}}"', |
| 1373 | + 'tog-riched_disable_ns_category_talk' => 'Huwag paganahin ang mayamang patnugot sa loob ng puwang na pampangalang "{{ns:category_talk}}"', |
| 1374 | + 'rich_editor_new_window' => 'Buksan ang mayamang patnugot sa loob ng bagong dungawan', |
| 1375 | + 'tog-riched_start_disabled' => 'Magsimulang hindi gumagana ang mayamang patnugot', |
| 1376 | + 'tog-riched_use_popup' => 'Buksan ang mayamang patnugot sa loob ng isang biglang-litaw', |
| 1377 | + 'tog-riched_use_toggle' => 'Gamitin ang panglipat-lipat upang magpalipat-lipat sa pagitan ng wikiteksto at mayamang patnugot (palitan ang lugar ng teksto ng mayamang patnugot)', |
| 1378 | + 'tog-riched_toggle_remember_state' => 'Tandaan ang huling katayuan ng panglipat-lipat', |
| 1379 | +); |
| 1380 | + |
| 1381 | +/** Turkish (Türkçe) |
| 1382 | + * @author Vito Genovese |
| 1383 | + */ |
| 1384 | +$messages['tr'] = array( |
| 1385 | + 'textrichditor' => 'Zengin Editör', |
| 1386 | + 'prefs-fckeditor' => 'Zengin Editör', |
| 1387 | + 'tog-riched_disable' => 'Zengin editörü devre dışı bırak', |
| 1388 | + 'tog-riched_disable_ns_main' => 'Zengin editörü ana isim alanında devre dışı bırak', |
| 1389 | + 'tog-riched_disable_ns_talk' => 'Zengin editörü "{{ns:talk}}" isim alanında devre dışı bırak', |
| 1390 | + 'tog-riched_disable_ns_user' => 'Zengin editörü "{{ns:user}}" isim alanında devre dışı bırak', |
| 1391 | + 'tog-riched_start_disabled' => 'Zengin editör devre dışı bırakılmış şekilde başla', |
| 1392 | + 'tog-riched_use_popup' => 'Zengin editörü açılır pencerede aç', |
| 1393 | +); |
| 1394 | + |
| 1395 | +/** Ukrainian (Українська) |
| 1396 | + * @author Apromix |
| 1397 | + */ |
| 1398 | +$messages['uk'] = array( |
| 1399 | + 'fckeditor-desc' => 'Дозволяє редагувати за допомогою візуального редактора FCKeditor', |
| 1400 | + 'textrichditor' => 'Візуальний редактор', |
| 1401 | + 'prefs-fckeditor' => 'Візуальний редактор', |
| 1402 | + 'tog-riched_disable' => 'Вимкнути візуальний редактор', |
| 1403 | + 'tog-riched_disable_ns_main' => 'Вимкнути візуальний редактор, в головному просторі імен', |
| 1404 | +); |
| 1405 | + |
| 1406 | +/** Vietnamese (Tiếng Việt) |
| 1407 | + * @author Minh Nguyen |
| 1408 | + * @author Vinhtantran |
| 1409 | + */ |
| 1410 | +$messages['vi'] = array( |
| 1411 | + 'fckeditor-desc' => 'Cho phép sửa đổi dùng bộ soạn thảo WYSIWYG FCKeditor', |
| 1412 | + 'textrichditor' => 'Bộ soạn thảo phong phú', |
| 1413 | + 'prefs-fckeditor' => 'Bộ soạn thảo phong phú', |
| 1414 | + 'tog-riched_disable' => 'Tắt bộ soạn thảo phong phú', |
| 1415 | + 'tog-riched_disable_ns_main' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên chính', |
| 1416 | + 'tog-riched_disable_ns_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:talk}}”', |
| 1417 | + 'tog-riched_disable_ns_user' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:user}}”', |
| 1418 | + 'tog-riched_disable_ns_user_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:user_talk}}”', |
| 1419 | + 'tog-riched_disable_ns_project' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:project}}”', |
| 1420 | + 'tog-riched_disable_ns_project_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:project_talk}}”', |
| 1421 | + 'tog-riched_disable_ns_image' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:file}}”', |
| 1422 | + 'tog-riched_disable_ns_image_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:file_talk}}”', |
| 1423 | + 'tog-riched_disable_ns_mediawiki' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:mediawiki}}”', |
| 1424 | + 'tog-riched_disable_ns_mediawiki_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:mediawiki_talk}}”', |
| 1425 | + 'tog-riched_disable_ns_template' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:template}}”', |
| 1426 | + 'tog-riched_disable_ns_template_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:template_talk}}”', |
| 1427 | + 'tog-riched_disable_ns_help' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:help}}”', |
| 1428 | + 'tog-riched_disable_ns_help_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:help_talk}}”', |
| 1429 | + 'tog-riched_disable_ns_category' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:category}}”', |
| 1430 | + 'tog-riched_disable_ns_category_talk' => 'Tắt bộ soạn thảo phong phú ở trong không gian tên “{{ns:category_talk}}”', |
| 1431 | + 'rich_editor_new_window' => 'Mở trình soạn thảo phong phú trong cửa sổ mới', |
| 1432 | + 'tog-riched_start_disabled' => 'Tắt trình soạn thảo phong phú khi khởi động', |
| 1433 | + 'tog-riched_use_popup' => 'Mở trình soạn thảo phong phú trong cửa sổ popup', |
| 1434 | + 'tog-riched_use_toggle' => 'Dùng nút bật tắt để chuyển giữa trình soạn thảo văn bản wiki và trình soạn thảo phong phú (thay thế ô soạn thảo bằng trình soạn thảo phong phú)', |
| 1435 | + 'tog-riched_toggle_remember_state' => 'Ghi nhớ tình trạng chuyển đổi cuối cùng', |
| 1436 | +); |
| 1437 | + |
| 1438 | +/** Simplified Chinese (中文(简体)) |
| 1439 | + * @author PhiLiP |
| 1440 | + */ |
| 1441 | +$messages['zh-hans'] = array( |
| 1442 | + 'fckeditor-desc' => '允许在编辑时使用所见即所得工具FCKeditor', |
| 1443 | + 'textrichditor' => '富文本编辑器', |
| 1444 | + 'prefs-fckeditor' => '富文本编辑器', |
| 1445 | + 'tog-riched_disable' => '禁用富文本编辑器', |
| 1446 | + 'tog-riched_disable_ns_main' => '在主名字空间禁用富文本编辑器', |
| 1447 | + 'tog-riched_disable_ns_talk' => '在“{{ns:talk}}”名字空间禁用富文本编辑器', |
| 1448 | + 'tog-riched_disable_ns_user' => '在“{{ns:user}}”名字空间禁用富文本编辑器', |
| 1449 | + 'tog-riched_disable_ns_user_talk' => '在“{{ns:user_talk}}”名字空间禁用富文本编辑器', |
| 1450 | + 'tog-riched_disable_ns_project' => '在“{{ns:project}}”名字空间禁用富文本编辑器', |
| 1451 | + 'tog-riched_disable_ns_project_talk' => '在“{{ns:project_talk}}”名字空间禁用富文本编辑器', |
| 1452 | + 'tog-riched_disable_ns_image' => '在“{{ns:file}}”名字空间禁用富文本编辑器', |
| 1453 | + 'tog-riched_disable_ns_image_talk' => '在“{{ns:file_talk}}”名字空间禁用富文本编辑器', |
| 1454 | + 'tog-riched_disable_ns_mediawiki' => '在“{{ns:mediawiki}}”名字空间禁用富文本编辑器', |
| 1455 | + 'tog-riched_disable_ns_mediawiki_talk' => '在“{{ns:mediawiki_talk}}”名字空间禁用富文本编辑器', |
| 1456 | + 'tog-riched_disable_ns_template' => '在“{{ns:template}}”名字空间禁用富文本编辑器', |
| 1457 | + 'tog-riched_disable_ns_template_talk' => '在“{{ns:template_talk}}”名字空间禁用富文本编辑器', |
| 1458 | + 'tog-riched_disable_ns_help' => '在“{{ns:help}}”名字空间禁用富文本编辑器', |
| 1459 | + 'tog-riched_disable_ns_help_talk' => '在“{{ns:help_talk}}”名字空间禁用富文本编辑器', |
| 1460 | + 'tog-riched_disable_ns_category' => '在“{{ns:category}}”名字空间禁用富文本编辑器', |
| 1461 | + 'tog-riched_disable_ns_category_talk' => '在“{{ns:category_talk}}”名字空间禁用富文本编辑器', |
| 1462 | + 'rich_editor_new_window' => '在新窗口打开富文本编辑器', |
| 1463 | + 'tog-riched_start_disabled' => '默认禁用富文本编辑器', |
| 1464 | + 'tog-riched_use_popup' => '在弹出窗口中使用富文本编辑器', |
| 1465 | + 'tog-riched_use_toggle' => '使用开关在wiki文本和富文本编辑器间切换(用富文本编辑器替换textarea)', |
| 1466 | + 'tog-riched_toggle_remember_state' => '记住上次切换状态', |
| 1467 | +); |
| 1468 | + |
| 1469 | +/** Traditional Chinese (中文(繁體)) |
| 1470 | + * @author Liangent |
| 1471 | + * @author Mark85296341 |
| 1472 | + */ |
| 1473 | +$messages['zh-hant'] = array( |
| 1474 | + 'fckeditor-desc' => '允許在編輯時使用所見即所得工具 FCKeditor', |
| 1475 | + 'textrichditor' => 'RTF 編輯器', |
| 1476 | + 'prefs-fckeditor' => 'RTF 編輯器', |
| 1477 | + 'tog-riched_disable' => '禁用 RTF 編輯器', |
| 1478 | + 'tog-riched_disable_ns_main' => '在主名字空間禁用 RTF 編輯器', |
| 1479 | + 'tog-riched_disable_ns_talk' => '在「{{ns:talk}}」名字空間禁用 RTF 編輯器', |
| 1480 | + 'tog-riched_disable_ns_user' => '在「{{ns:user}}」名字空間禁用 RTF 編輯器', |
| 1481 | + 'tog-riched_disable_ns_user_talk' => '在「{{ns:user_talk}}」名字空間禁用 RTF 編輯器', |
| 1482 | + 'tog-riched_disable_ns_project' => '在「{{ns:project}}」名字空間禁用 RTF 編輯器', |
| 1483 | + 'tog-riched_disable_ns_project_talk' => '在「{{ns:project_talk}}」名字空間禁用 RTF 編輯器', |
| 1484 | + 'tog-riched_disable_ns_image' => '在「{{ns:file}}」名字空間禁用 RTF 編輯器', |
| 1485 | + 'tog-riched_disable_ns_image_talk' => '在「{{ns:file_talk}}」名字空間禁用 RTF 編輯器', |
| 1486 | + 'tog-riched_disable_ns_mediawiki' => '在「{{ns:mediawiki}}」名字空間禁用 RTF 編輯器', |
| 1487 | + 'tog-riched_disable_ns_mediawiki_talk' => '在「{{ns:mediawiki_talk}}」名字空間禁用 RTF 編輯器', |
| 1488 | + 'tog-riched_disable_ns_template' => '在「{{ns:template}}」名字空間禁用 RTF 編輯器', |
| 1489 | + 'tog-riched_disable_ns_template_talk' => '在「{{ns:template_talk}}」名字空間禁用 RTF 編輯器', |
| 1490 | + 'tog-riched_disable_ns_help' => '在「{{ns:help}}」名字空間禁用 RTF 編輯器', |
| 1491 | + 'tog-riched_disable_ns_help_talk' => '在「{{ns:help_talk}}」名字空間禁用 RTF 編輯器', |
| 1492 | + 'tog-riched_disable_ns_category' => '在「{{ns:category}}」名字空間禁用 RTF 編輯器', |
| 1493 | + 'tog-riched_disable_ns_category_talk' => '在「{{ns:category_talk}}」名字空間禁用 RTF 編輯器', |
| 1494 | + 'rich_editor_new_window' => '在新視窗開啟 RTF 編輯器', |
| 1495 | + 'tog-riched_start_disabled' => '預設禁用 RTF 編輯器', |
| 1496 | + 'tog-riched_use_popup' => '在彈出視窗中使用 RTF 編輯器', |
| 1497 | + 'tog-riched_use_toggle' => '使用開關在 wiki 文字和 RTF 編輯器間切換(用 RTF 編輯器替換 textarea)', |
| 1498 | + 'tog-riched_toggle_remember_state' => '記住上次切換狀態', |
| 1499 | +); |
| 1500 | + |
| 1501 | +/** Chinese (Taiwan) (中文(台灣)) |
| 1502 | + * @author Pbdragonwang |
| 1503 | + * @author Roc michael |
| 1504 | + */ |
| 1505 | +$messages['zh-tw'] = array( |
| 1506 | + 'fckeditor-desc' => '允許在編輯時使用所見即所得工具FCKeditor', |
| 1507 | + 'textrichditor' => '視覺化編輯器(Rich Editor)', |
| 1508 | + 'prefs-fckeditor' => '視覺化編輯器', |
| 1509 | + 'tog-riched_disable' => '停用視覺化編輯器(rich editor)', |
| 1510 | + 'tog-riched_disable_ns_main' => '停用主名字空間的視覺化編輯器', |
| 1511 | + 'tog-riched_disable_ns_talk' => '停用"{{ns:talk}}"名字空間的視覺化編輯器', |
| 1512 | + 'tog-riched_disable_ns_user' => '停用"{{ns:user}}"名字空間的視覺化編輯器', |
| 1513 | + 'tog-riched_disable_ns_user_talk' => '停用"{{ns:user_talk}}"名字空間的視覺化編輯器', |
| 1514 | + 'tog-riched_disable_ns_project' => '停用"{{ns:project}}"名字空間的視覺化編輯器', |
| 1515 | + 'tog-riched_disable_ns_project_talk' => '停用"{{ns:project_talk}}"名字空間的視覺化編輯器', |
| 1516 | + 'tog-riched_disable_ns_image' => '停用"{{ns:file}}"名字空間的視覺化編輯器', |
| 1517 | + 'tog-riched_disable_ns_image_talk' => '停用"{{ns:file_talk}}"名字空間的視覺化編輯器', |
| 1518 | + 'tog-riched_disable_ns_mediawiki' => '停用"{{ns:mediawiki}}"名字空間的視覺化編輯器', |
| 1519 | + 'tog-riched_disable_ns_mediawiki_talk' => '停用"{{ns:mediawiki_talk}}"名字空間的視覺化編輯器', |
| 1520 | + 'tog-riched_disable_ns_template' => '停用"{{ns:template}}"名字空間的視覺化編輯器', |
| 1521 | + 'tog-riched_disable_ns_template_talk' => '停用"{{ns:template_talk}}"名字空間的視覺化編輯器', |
| 1522 | + 'tog-riched_disable_ns_help' => '停用"{{ns:help}}"名字空間的視覺化編輯器', |
| 1523 | + 'tog-riched_disable_ns_help_talk' => '停用"{{ns:help_talk}}"名字空間的視覺化編輯器', |
| 1524 | + 'tog-riched_disable_ns_category' => '停用"{{ns:category}}"名字空間的視覺化編輯器', |
| 1525 | + 'tog-riched_disable_ns_category_talk' => '停用"{{ns:category_talk}}"名字空間的視覺化編輯器', |
| 1526 | + 'rich_editor_new_window' => '於新視窗內開啟視覺化編輯器(Rich Editor)', |
| 1527 | + 'tog-riched_start_disabled' => '開始時先停用視覺化編輯器(rich editor)', |
| 1528 | + 'tog-riched_use_popup' => '於彈出視窗(popup)中使用視覺化編輯器(Rich Editor)', |
| 1529 | + 'tog-riched_use_toggle' => '在「維基文字」與「視覺化編輯器」之間以開關作切換(以視覺化編輯器取代文字編輯區)', |
| 1530 | + 'tog-riched_toggle_remember_state' => '記住最後的切換設定', |
| 1531 | +); |
| 1532 | + |
Property changes on: trunk/extensions/FCKeditor/FCKeditor.i18n.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 1533 | + native |
Property changes on: trunk/extensions/FCKeditor |
___________________________________________________________________ |
Added: svn:externals |
2 | 1534 | + fckeditor http://svn.fckeditor.net/FCKeditor/branches/versions/2.6.x/ |