ckeditor 4.3.4

This commit is contained in:
Roland Gruber 2014-04-11 20:05:45 +00:00
parent ecb85b4afb
commit b59508b051
99 changed files with 23297 additions and 0 deletions

View File

@ -0,0 +1,74 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview API initialization code.
*/
( function() {
// Disable HC detection in WebKit. (#5429)
if ( CKEDITOR.env.webkit )
CKEDITOR.env.hc = false;
else {
// Check whether high contrast is active by creating a colored border.
var hcDetect = CKEDITOR.dom.element.createFromHtml( '<div style="width:0;height:0;position:absolute;left:-10000px;' +
'border:1px solid;border-color:red blue"></div>', CKEDITOR.document );
hcDetect.appendTo( CKEDITOR.document.getHead() );
// Update CKEDITOR.env.
// Catch exception needed sometimes for FF. (#4230)
try {
var top = hcDetect.getComputedStyle( 'border-top-color' ),
right = hcDetect.getComputedStyle( 'border-right-color' );
// We need to check if getComputedStyle returned any value, because on FF
// it returnes empty string if CKEditor is loaded in hidden iframe. (#11121)
CKEDITOR.env.hc = !!( top && top == right );
} catch ( e ) {
CKEDITOR.env.hc = false;
}
hcDetect.remove();
}
if ( CKEDITOR.env.hc )
CKEDITOR.env.cssClass += ' cke_hc';
// Initially hide UI spaces when relevant skins are loading, later restored by skin css.
CKEDITOR.document.appendStyleText( '.cke{visibility:hidden;}' );
// Mark the editor as fully loaded.
CKEDITOR.status = 'loaded';
CKEDITOR.fireOnce( 'loaded' );
// Process all instances created by the "basic" implementation.
var pending = CKEDITOR._.pending;
if ( pending ) {
delete CKEDITOR._.pending;
for ( var i = 0; i < pending.length; i++ ) {
CKEDITOR.editor.prototype.constructor.apply( pending[ i ][ 0 ], pending[ i ][ 1 ] );
CKEDITOR.add( pending[ i ][ 0 ] );
}
}
} )();
/**
* Indicates that CKEditor is running on a High Contrast environment.
*
* if ( CKEDITOR.env.hc )
* alert( 'You\'re running on High Contrast mode. The editor interface will get adapted to provide you a better experience.' );
*
* @property {Boolean} hc
* @member CKEDITOR.env
*/
/**
* Fired when a CKEDITOR core object is fully loaded and ready for interaction.
*
* @event loaded
* @member CKEDITOR
*/

View File

@ -0,0 +1,204 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Contains the third and last part of the {@link CKEDITOR} object
* definition.
*/
/** @class CKEDITOR */
// Remove the CKEDITOR.loadFullCore reference defined on ckeditor_basic.
delete CKEDITOR.loadFullCore;
/**
* Stores references to all editor instances created. The name of the properties
* in this object correspond to instance names, and their values contain the
* {@link CKEDITOR.editor} object representing them.
*
* alert( CKEDITOR.instances.editor1.name ); // 'editor1'
*
* @property {Object}
*/
CKEDITOR.instances = {};
/**
* The document of the window storing the CKEDITOR object.
*
* alert( CKEDITOR.document.getBody().getName() ); // 'body'
*
* @property {CKEDITOR.dom.document}
*/
CKEDITOR.document = new CKEDITOR.dom.document( document );
/**
* Adds an editor instance to the global {@link CKEDITOR} object. This function
* is available for internal use mainly.
*
* @param {CKEDITOR.editor} editor The editor instance to be added.
*/
CKEDITOR.add = function( editor ) {
CKEDITOR.instances[ editor.name ] = editor;
editor.on( 'focus', function() {
if ( CKEDITOR.currentInstance != editor ) {
CKEDITOR.currentInstance = editor;
CKEDITOR.fire( 'currentInstance' );
}
} );
editor.on( 'blur', function() {
if ( CKEDITOR.currentInstance == editor ) {
CKEDITOR.currentInstance = null;
CKEDITOR.fire( 'currentInstance' );
}
} );
CKEDITOR.fire( 'instance', null, editor );
};
/**
* Removes an editor instance from the global {@link CKEDITOR} object. This function
* is available for internal use only. External code must use {@link CKEDITOR.editor#method-destroy}.
*
* @private
* @param {CKEDITOR.editor} editor The editor instance to be removed.
*/
CKEDITOR.remove = function( editor ) {
delete CKEDITOR.instances[ editor.name ];
};
( function() {
var tpls = {};
/**
* Adds a named {@link CKEDITOR.template} instance to be reused among all editors.
* This will return the existing one if a template with same name is already
* defined. Additionally, it fires the "template" event to allow template source customization.
*
* @param {String} name The name which identifies a UI template.
* @param {String} source The source string for constructing this template.
* @returns {CKEDITOR.template} The created template instance.
*/
CKEDITOR.addTemplate = function( name, source ) {
var tpl = tpls[ name ];
if ( tpl )
return tpl;
// Make it possible to customize the template through event.
var params = { name: name, source: source };
CKEDITOR.fire( 'template', params );
return ( tpls[ name ] = new CKEDITOR.template( params.source ) );
};
/**
* Retrieves a defined template created with {@link CKEDITOR#addTemplate}.
*
* @param {String} name The template name.
*/
CKEDITOR.getTemplate = function( name ) {
return tpls[ name ];
};
} )();
( function() {
var styles = [];
/**
* Adds CSS rules to be appended to the editor document.
* This method is mostly used by plugins to add custom styles to the editor
* document. For basic content styling the `contents.css` file should be
* used instead.
*
* **Note:** This function should be called before the creation of editor instances.
*
* // Add styles for all headings inside editable contents.
* CKEDITOR.addCss( '.cke_editable h1,.cke_editable h2,.cke_editable h3 { border-bottom: 1px dotted red }' );
*
* @param {String} css The style rules to be appended.
* @see CKEDITOR.config#contentsCss
*/
CKEDITOR.addCss = function( css ) {
styles.push( css );
};
/**
* Returns a string will all CSS rules passed to the {@link CKEDITOR#addCss} method.
*
* @returns {String} A string containing CSS rules.
*/
CKEDITOR.getCss = function() {
return styles.join( '\n' );
};
} )();
// Perform global clean up to free as much memory as possible
// when there are no instances left
CKEDITOR.on( 'instanceDestroyed', function() {
if ( CKEDITOR.tools.isEmpty( this.instances ) )
CKEDITOR.fire( 'reset' );
} );
// Load the bootstrap script.
CKEDITOR.loader.load( '_bootstrap' ); // %REMOVE_LINE%
// Tri-state constants.
/**
* Used to indicate the ON or ACTIVE state.
*
* @readonly
* @property {Number} [=1]
*/
CKEDITOR.TRISTATE_ON = 1;
/**
* Used to indicate the OFF or INACTIVE state.
*
* @readonly
* @property {Number} [=2]
*/
CKEDITOR.TRISTATE_OFF = 2;
/**
* Used to indicate the DISABLED state.
*
* @readonly
* @property {Number} [=0]
*/
CKEDITOR.TRISTATE_DISABLED = 0;
/**
* The editor which is currently active (has user focus).
*
* function showCurrentEditorName() {
* if ( CKEDITOR.currentInstance )
* alert( CKEDITOR.currentInstance.name );
* else
* alert( 'Please focus an editor first.' );
* }
*
* @property {CKEDITOR.editor} currentInstance
* @see CKEDITOR#event-currentInstance
*/
/**
* Fired when the CKEDITOR.currentInstance object reference changes. This may
* happen when setting the focus on different editor instances in the page.
*
* var editor; // A variable to store a reference to the current editor.
* CKEDITOR.on( 'currentInstance', function() {
* editor = CKEDITOR.currentInstance;
* } );
*
* @event currentInstance
*/
/**
* Fired when the last instance has been destroyed. This event is used to perform
* global memory cleanup.
*
* @event reset
*/

View File

@ -0,0 +1,315 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Contains the first and essential part of the {@link CKEDITOR}
* object definition.
*/
// #### Compressed Code
// Must be updated on changes in the script as well as updated in the ckeditor.js file.
// window.CKEDITOR||(window.CKEDITOR=function(){var b={timestamp:"",version:"%VERSION%",revision:"%REV%",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var b=document.getElementsByTagName("script"),c=0;c<b.length;c++){var d=b[c].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(d){a=d[1];break}}-1==a.indexOf(":/")&&"//"!=a.slice(0,2)&&(a=0===a.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+a:location.href.match(/^[^\?]*\/(?:)/)[0]+a);if(!a)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return a}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&"/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a)&&(a+=(0<=a.indexOf("?")?"&":"?")+"t="+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(d){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){c.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(e){}if(document.documentElement.doScroll&&b){var f=function(){try{document.documentElement.doScroll("left")}catch(b){setTimeout(f,1);return}a()};f()}}}}()},e=window.CKEDITOR_GETURL;if(e){var g=b.getUrl;b.getUrl=function(a){return e.call(b,a)||g.call(b,a)}}return b}());
// The Closure Compiler online service should be used when updating this manually:
// http://closure-compiler.appspot.com/
// #### Raw code
// ATTENTION: read the above "Compressed Code" notes when changing this code.
if ( !window.CKEDITOR ) {
/**
* This is the API entry point. The entire CKEditor code runs under this object.
* @class CKEDITOR
* @singleton
*/
window.CKEDITOR = ( function() {
var CKEDITOR = {
/**
* A constant string unique for each release of CKEditor. Its value
* is used, by default, to build the URL for all resources loaded
* by the editor code, guaranteeing clean cache results when
* upgrading.
*
* alert( CKEDITOR.timestamp ); // e.g. '87dm'
*/
timestamp: '', // %REMOVE_LINE%
/* // %REMOVE_LINE%
// The production implementation contains a fixed timestamp, unique
// for each release and generated by the releaser.
// (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122)
timestamp: '%TIMESTAMP%',
*/ // %REMOVE_LINE%
/**
* Contains the CKEditor version number.
*
* alert( CKEDITOR.version ); // e.g. 'CKEditor 3.4.1'
*/
version: '%VERSION%',
/**
* Contains the CKEditor revision number.
* The revision number is incremented automatically, following each
* modification to the CKEditor source code.
*
* alert( CKEDITOR.revision ); // e.g. '3975'
*/
revision: '%REV%',
/**
* A 3-digit random integer, valid for the entire life of the CKEDITOR object.
*
* alert( CKEDITOR.rnd ); // e.g. 319
*
* @property {Number}
*/
rnd: Math.floor( Math.random() * ( 999 /*Max*/ - 100 /*Min*/ + 1 ) ) + 100 /*Min*/,
/**
* Private object used to hold core stuff. It should not be used outside of
* the API code as properties defined here may change at any time
* without notice.
*
* @private
*/
_: {
pending: []
},
/**
* Indicates the API loading status. The following statuses are available:
*
* * **unloaded**: the API is not yet loaded.
* * **basic_loaded**: the basic API features are available.
* * **basic_ready**: the basic API is ready to load the full core code.
* * **loaded**: the API can be fully used.
*
* Example:
*
* if ( CKEDITOR.status == 'loaded' ) {
* // The API can now be fully used.
* doSomething();
* } else {
* // Wait for the full core to be loaded and fire its loading.
* CKEDITOR.on( 'load', doSomething );
* CKEDITOR.loadFullCore && CKEDITOR.loadFullCore();
* }
*/
status: 'unloaded',
/**
* The full URL for the CKEditor installation directory.
* It is possible to manually provide the base path by setting a
* global variable named `CKEDITOR_BASEPATH`. This global variable
* must be set **before** the editor script loading.
*
* alert( CKEDITOR.basePath ); // e.g. 'http://www.example.com/ckeditor/'
*
* @property {String}
*/
basePath: ( function() {
// ATTENTION: fixes to this code must be ported to
// var basePath in "core/loader.js".
// Find out the editor directory path, based on its <script> tag.
var path = window.CKEDITOR_BASEPATH || '';
if ( !path ) {
var scripts = document.getElementsByTagName( 'script' );
for ( var i = 0; i < scripts.length; i++ ) {
var match = scripts[ i ].src.match( /(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i );
if ( match ) {
path = match[ 1 ];
break;
}
}
}
// In IE (only) the script.src string is the raw value entered in the
// HTML source. Other browsers return the full resolved URL instead.
if ( path.indexOf( ':/' ) == -1 && path.slice( 0, 2 ) != '//' ) {
// Absolute path.
if ( path.indexOf( '/' ) === 0 )
path = location.href.match( /^.*?:\/\/[^\/]*/ )[ 0 ] + path;
// Relative path.
else
path = location.href.match( /^[^\?]*\/(?:)/ )[ 0 ] + path;
}
if ( !path )
throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';
return path;
} )(),
/**
* Gets the full URL for CKEditor resources. By default, URLs
* returned by this function contain a querystring parameter ("t")
* set to the {@link CKEDITOR#timestamp} value.
*
* It is possible to provide a custom implementation of this
* function by setting a global variable named `CKEDITOR_GETURL`.
* This global variable must be set **before** the editor script
* loading. If the custom implementation returns nothing (`==null`), the
* default implementation is used.
*
* // e.g. 'http://www.example.com/ckeditor/skins/default/editor.css?t=87dm'
* alert( CKEDITOR.getUrl( 'skins/default/editor.css' ) );
*
* // e.g. 'http://www.example.com/skins/default/editor.css?t=87dm'
* alert( CKEDITOR.getUrl( '/skins/default/editor.css' ) );
*
* // e.g. 'http://www.somesite.com/skins/default/editor.css?t=87dm'
* alert( CKEDITOR.getUrl( 'http://www.somesite.com/skins/default/editor.css' ) );
*
* @param {String} resource The resource whose full URL we want to get.
* It may be a full, absolute, or relative URL.
* @returns {String} The full URL.
*/
getUrl: function( resource ) {
// If this is not a full or absolute path.
if ( resource.indexOf( ':/' ) == -1 && resource.indexOf( '/' ) !== 0 )
resource = this.basePath + resource;
// Add the timestamp, except for directories.
if ( this.timestamp && resource.charAt( resource.length - 1 ) != '/' && !( /[&?]t=/ ).test( resource ) )
resource += ( resource.indexOf( '?' ) >= 0 ? '&' : '?' ) + 't=' + this.timestamp;
return resource;
},
/**
* Specify a function to execute when the DOM is fully loaded.
*
* If called after the DOM has been initialized, the function passed in will
* be executed immediately.
*
* @method
* @todo
*/
domReady: ( function() {
// Based on the original jQuery code.
var callbacks = [];
function onReady() {
try {
// Cleanup functions for the document ready method
if ( document.addEventListener ) {
document.removeEventListener( 'DOMContentLoaded', onReady, false );
executeCallbacks();
}
// Make sure body exists, at least, in case IE gets a little overzealous.
else if ( document.attachEvent && document.readyState === 'complete' ) {
document.detachEvent( 'onreadystatechange', onReady );
executeCallbacks();
}
} catch ( er ) {}
}
function executeCallbacks() {
var i;
while ( ( i = callbacks.shift() ) )
i();
}
return function( fn ) {
callbacks.push( fn );
// Catch cases where this is called after the
// browser event has already occurred.
if ( document.readyState === 'complete' )
// Handle it asynchronously to allow scripts the opportunity to delay ready
setTimeout( onReady, 1 );
// Run below once on demand only.
if ( callbacks.length != 1 )
return;
// For IE>8, Firefox, Opera and Webkit.
if ( document.addEventListener ) {
// Use the handy event callback
document.addEventListener( 'DOMContentLoaded', onReady, false );
// A fallback to window.onload, that will always work
window.addEventListener( 'load', onReady, false );
}
// If old IE event model is used
else if ( document.attachEvent ) {
// ensure firing before onload,
// maybe late but safe also for iframes
document.attachEvent( 'onreadystatechange', onReady );
// A fallback to window.onload, that will always work
window.attachEvent( 'onload', onReady );
// If IE and not a frame
// continually check to see if the document is ready
// use the trick by Diego Perini
// http://javascript.nwbox.com/IEContentLoaded/
var toplevel = false;
try {
toplevel = !window.frameElement;
} catch ( e ) {}
if ( document.documentElement.doScroll && toplevel ) {
function scrollCheck() {
try {
document.documentElement.doScroll( 'left' );
} catch ( e ) {
setTimeout( scrollCheck, 1 );
return;
}
onReady();
}
scrollCheck();
}
}
};
} )()
};
// Make it possible to override the "url" function with a custom
// implementation pointing to a global named CKEDITOR_GETURL.
var newGetUrl = window.CKEDITOR_GETURL;
if ( newGetUrl ) {
var originalGetUrl = CKEDITOR.getUrl;
CKEDITOR.getUrl = function( resource ) {
return newGetUrl.call( CKEDITOR, resource ) || originalGetUrl.call( CKEDITOR, resource );
};
}
return CKEDITOR;
} )();
}
/**
* Function called upon loading a custom configuration file that can
* modify the editor instance configuration ({@link CKEDITOR.editor#config}).
* It is usually defined inside the custom configuration files that can
* include developer defined settings.
*
* // This is supposed to be placed in the config.js file.
* CKEDITOR.editorConfig = function( config ) {
* // Define changes to default configuration here. For example:
* config.language = 'fr';
* config.uiColor = '#AADC6E';
* };
*
* @method editorConfig
* @param {CKEDITOR.config} config A configuration object containing the
* settings defined for a {@link CKEDITOR.editor} instance up to this
* function call. Note that not all settings may still be available. See
* [Configuration Loading Order](http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Setting_Configurations#Configuration_Loading_Order)
* for details.
*/
// PACKAGER_RENAME( CKEDITOR )

View File

@ -0,0 +1,94 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Contains the second part of the {@link CKEDITOR} object
* definition, which defines the basic editor features to be available in
* the root ckeditor_basic.js file.
*/
if ( CKEDITOR.status == 'unloaded' ) {
( function() {
CKEDITOR.event.implementOn( CKEDITOR );
/**
* Forces the full CKEditor core code, in the case only the basic code has been
* loaded (`ckeditor_basic.js`). This method self-destroys (becomes undefined) in
* the first call or as soon as the full code is available.
*
* // Check if the full core code has been loaded and load it.
* if ( CKEDITOR.loadFullCore )
* CKEDITOR.loadFullCore();
*
* @member CKEDITOR
*/
CKEDITOR.loadFullCore = function() {
// If the basic code is not ready, just mark it to be loaded.
if ( CKEDITOR.status != 'basic_ready' ) {
CKEDITOR.loadFullCore._load = 1;
return;
}
// Destroy this function.
delete CKEDITOR.loadFullCore;
// Append the script to the head.
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = CKEDITOR.basePath + 'ckeditor.js';
script.src = CKEDITOR.basePath + 'ckeditor_source.js'; // %REMOVE_LINE%
document.getElementsByTagName( 'head' )[ 0 ].appendChild( script );
};
/**
* The time to wait (in seconds) to load the full editor code after the
* page load, if the "ckeditor_basic" file is used. If set to zero, the
* editor is loaded on demand, as soon as an instance is created.
*
* This value must be set on the page before the page load completion.
*
* // Loads the full source after five seconds.
* CKEDITOR.loadFullCoreTimeout = 5;
*
* @property
* @member CKEDITOR
*/
CKEDITOR.loadFullCoreTimeout = 0;
// Documented at ckeditor.js.
CKEDITOR.add = function( editor ) {
// For now, just put the editor in the pending list. It will be
// processed as soon as the full code gets loaded.
var pending = this._.pending || ( this._.pending = [] );
pending.push( editor );
};
( function() {
var onload = function() {
var loadFullCore = CKEDITOR.loadFullCore,
loadFullCoreTimeout = CKEDITOR.loadFullCoreTimeout;
if ( !loadFullCore )
return;
CKEDITOR.status = 'basic_ready';
if ( loadFullCore && loadFullCore._load )
loadFullCore();
else if ( loadFullCoreTimeout ) {
setTimeout( function() {
if ( CKEDITOR.loadFullCore )
CKEDITOR.loadFullCore();
}, loadFullCoreTimeout * 1000 );
}
};
CKEDITOR.domReady( onload );
} )();
CKEDITOR.status = 'basic_loaded';
} )();
}

View File

@ -0,0 +1,271 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* Represents a command that can be executed on an editor instance.
*
* var command = new CKEDITOR.command( editor, {
* exec: function( editor ) {
* alert( editor.document.getBody().getHtml() );
* }
* } );
*
* @class
* @mixins CKEDITOR.event
* @constructor Creates a command class instance.
* @param {CKEDITOR.editor} editor The editor instance this command will be
* related to.
* @param {CKEDITOR.commandDefinition} commandDefinition The command
* definition.
*/
CKEDITOR.command = function( editor, commandDefinition ) {
/**
* Lists UI items that are associated to this command. This list can be
* used to interact with the UI on command execution (by the execution code
* itself, for example).
*
* alert( 'Number of UI items associated to this command: ' + command.uiItems.length );
*/
this.uiItems = [];
/**
* Executes the command.
*
* command.exec(); // The command gets executed.
*
* @param {Object} [data] Any data to pass to the command. Depends on the
* command implementation and requirements.
* @returns {Boolean} A boolean indicating that the command has been successfully executed.
*/
this.exec = function( data ) {
if ( this.state == CKEDITOR.TRISTATE_DISABLED || !this.checkAllowed() )
return false;
if ( this.editorFocus ) // Give editor focus if necessary (#4355).
editor.focus();
if ( this.fire( 'exec' ) === false )
return true;
return ( commandDefinition.exec.call( this, editor, data ) !== false );
};
/**
* Explicitly update the status of the command, by firing the {@link CKEDITOR.command#event-refresh} event,
* as well as invoke the {@link CKEDITOR.commandDefinition#refresh} method if defined, this method
* is to allow different parts of the editor code to contribute in command status resolution.
*
* @param {CKEDITOR.editor} editor The editor instance.
* @param {CKEDITOR.dom.elementPath} path
*/
this.refresh = function( editor, path ) {
// Do nothing is we're on read-only and this command doesn't support it.
// We don't need to disabled the command explicitely here, because this
// is already done by the "readOnly" event listener.
if ( !this.readOnly && editor.readOnly )
return true;
// Disable commands that are not allowed in the current selection path context.
if ( this.context && !path.isContextFor( this.context ) ) {
this.disable();
return true;
}
// Disable commands that are not allowed by the active filter.
if ( !this.checkAllowed( true ) ) {
this.disable();
return true;
}
// Make the "enabled" state a default for commands enabled from start.
if ( !this.startDisabled )
this.enable();
// Disable commands which shouldn't be enabled in this mode.
if ( this.modes && !this.modes[ editor.mode ] )
this.disable();
if ( this.fire( 'refresh', { editor: editor, path: path } ) === false )
return true;
return ( commandDefinition.refresh && commandDefinition.refresh.apply( this, arguments ) !== false );
};
var allowed;
/**
* Checks whether this command is allowed by the active allowed
* content filter ({@link CKEDITOR.editor#activeFilter}). This means
* that if command implements {@link CKEDITOR.feature} interface it will be tested
* by the {@link CKEDITOR.filter#checkFeature} method.
*
* @since 4.1
* @param {Boolean} [noCache] Skip cache for example due to active filter change. Since CKEditor 4.2.
* @returns {Boolean} Whether this command is allowed.
*/
this.checkAllowed = function( noCache ) {
if ( !noCache && typeof allowed == 'boolean' )
return allowed;
return allowed = editor.activeFilter.checkFeature( this );
};
CKEDITOR.tools.extend( this, commandDefinition, {
/**
* The editor modes within which the command can be executed. The
* execution will have no action if the current mode is not listed
* in this property.
*
* // Enable the command in both WYSIWYG and Source modes.
* command.modes = { wysiwyg:1,source:1 };
*
* // Enable the command in Source mode only.
* command.modes = { source:1 };
*
* @see CKEDITOR.editor#mode
*/
modes: { wysiwyg: 1 },
/**
* Indicates that the editor will get the focus before executing
* the command.
*
* // Do not force the editor to have focus when executing the command.
* command.editorFocus = false;
*
* @property {Boolean} [=true]
*/
editorFocus: 1,
/**
* Indicates that this command is sensible to the selection context.
* If `true`, the {@link CKEDITOR.command#method-refresh} method will be
* called for this command on the {@link CKEDITOR.editor#event-selectionChange} event.
*
* @property {Boolean} [=false]
*/
contextSensitive: !!commandDefinition.context,
/**
* Indicates the editor state. Possible values are:
*
* * {@link CKEDITOR#TRISTATE_DISABLED}: the command is
* disabled. It's execution will have no effect. Same as {@link #disable}.
* * {@link CKEDITOR#TRISTATE_ON}: the command is enabled
* and currently active in the editor (for context sensitive commands, for example).
* * {@link CKEDITOR#TRISTATE_OFF}: the command is enabled
* and currently inactive in the editor (for context sensitive commands, for example).
*
* Do not set this property directly, using the {@link #setState} method instead.
*
* if ( command.state == CKEDITOR.TRISTATE_DISABLED )
* alert( 'This command is disabled' );
*
* @property {Number} [=CKEDITOR.TRISTATE_DISABLED]
*/
state: CKEDITOR.TRISTATE_DISABLED
} );
// Call the CKEDITOR.event constructor to initialize this instance.
CKEDITOR.event.call( this );
};
CKEDITOR.command.prototype = {
/**
* Enables the command for execution. The command state (see
* {@link CKEDITOR.command#property-state}) available before disabling it is restored.
*
* command.enable();
* command.exec(); // Execute the command.
*/
enable: function() {
if ( this.state == CKEDITOR.TRISTATE_DISABLED && this.checkAllowed() )
this.setState( ( !this.preserveState || ( typeof this.previousState == 'undefined' ) ) ? CKEDITOR.TRISTATE_OFF : this.previousState );
},
/**
* Disables the command for execution. The command state (see
* {@link CKEDITOR.command#property-state}) will be set to {@link CKEDITOR#TRISTATE_DISABLED}.
*
* command.disable();
* command.exec(); // "false" - Nothing happens.
*/
disable: function() {
this.setState( CKEDITOR.TRISTATE_DISABLED );
},
/**
* Sets the command state.
*
* command.setState( CKEDITOR.TRISTATE_ON );
* command.exec(); // Execute the command.
* command.setState( CKEDITOR.TRISTATE_DISABLED );
* command.exec(); // 'false' - Nothing happens.
* command.setState( CKEDITOR.TRISTATE_OFF );
* command.exec(); // Execute the command.
*
* @param {Number} newState The new state. See {@link #property-state}.
* @returns {Boolean} Returns `true` if the command state changed.
*/
setState: function( newState ) {
// Do nothing if there is no state change.
if ( this.state == newState )
return false;
if ( newState != CKEDITOR.TRISTATE_DISABLED && !this.checkAllowed() )
return false;
this.previousState = this.state;
// Set the new state.
this.state = newState;
// Fire the "state" event, so other parts of the code can react to the
// change.
this.fire( 'state' );
return true;
},
/**
* Toggles the on/off (active/inactive) state of the command. This is
* mainly used internally by context sensitive commands.
*
* command.toggleState();
*/
toggleState: function() {
if ( this.state == CKEDITOR.TRISTATE_OFF )
this.setState( CKEDITOR.TRISTATE_ON );
else if ( this.state == CKEDITOR.TRISTATE_ON )
this.setState( CKEDITOR.TRISTATE_OFF );
}
};
CKEDITOR.event.implementOn( CKEDITOR.command.prototype );
/**
* Indicates the previous command state.
*
* alert( command.previousState );
*
* @property {Number} previousState
* @see #state
*/
/**
* Fired when the command state changes.
*
* command.on( 'state', function() {
* // Alerts the new state.
* alert( this.state );
* } );
*
* @event state
*/
/**
* @event refresh
* @todo
*/

View File

@ -0,0 +1,139 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class,
* which contains the defintion of a command. This file is for
* documentation purposes only.
*/
/**
* Virtual class that illustrates the features of command objects to be
* passed to the {@link CKEDITOR.editor#addCommand} function.
*
* @class CKEDITOR.commandDefinition
* @abstract
*/
/**
* The function to be fired when the commend is executed.
*
* editorInstance.addCommand( 'sample', {
* exec: function( editor ) {
* alert( 'Executing a command for the editor name "' + editor.name + '"!' );
* }
* } );
*
* @method exec
* @param {CKEDITOR.editor} editor The editor within which run the command.
* @param {Object} [data] Additional data to be used to execute the command.
* @returns {Boolean} Whether the command has been successfully executed.
* Defaults to `true`, if nothing is returned.
*/
/**
* Whether the command need to be hooked into the redo/undo system.
*
* editorInstance.addCommand( 'alertName', {
* exec: function( editor ) {
* alert( editor.name );
* },
* canUndo: false // No support for undo/redo.
* } );
*
* @property {Boolean} [canUndo=true]
*/
/**
* Whether the command is asynchronous, which means that the
* {@link CKEDITOR.editor#event-afterCommandExec} event will be fired by the
* command itself manually, and that the return value of this command is not to
* be returned by the {@link #exec} function.
*
* editorInstance.addCommand( 'loadOptions', {
* exec: function( editor ) {
* // Asynchronous operation below.
* CKEDITOR.ajax.loadXml( 'data.xml', function() {
* editor.fire( 'afterCommandExec' );
* } );
* },
* async: true // The command need some time to complete after exec function returns.
* } );
*
* @property {Boolean} [async=false]
*/
/**
* Whether the command should give focus to the editor before execution.
*
* editorInstance.addCommand( 'maximize', {
* exec: function( editor ) {
* // ...
* },
* editorFocus: false // The command doesn't require focusing the editing document.
* } );
*
* @property {Boolean} [editorFocus=true]
* @see CKEDITOR.command#editorFocus
*/
/**
* Whether the command state should be set to {@link CKEDITOR#TRISTATE_DISABLED} on startup.
*
* editorInstance.addCommand( 'unlink', {
* exec: function( editor ) {
* // ...
* },
* startDisabled: true // Command is unavailable until selection is inside a link.
* } );
*
* @property {Boolean} [startDisabled=false]
*/
/**
* Indicates that this command is sensible to the selection context.
* If `true`, the {@link CKEDITOR.command#method-refresh} method will be
* called for this command on selection changes, with a single parameter
* representing the current elements path.
*
* @property {Boolean} [contextSensitive=true]
*/
/**
* Defined by command definition a function to determinate the command state, it will be invoked
* when editor has it's `states` or `selection` changed.
*
* **Note:** The function provided must be calling {@link CKEDITOR.command#setState} in all circumstance,
* if it is intended to update the command state.
*
* @method refresh
* @param {CKEDITOR.editor} editor
* @param {CKEDITOR.dom.elementPath} path
*/
/**
* Sets the element name used to reflect the command state on selection changes.
* If the selection is in a place where the element is not allowed, the command
* will be disabled.
* Setting this property overrides {@link #contextSensitive} to `true`.
*
* @property {Boolean} [context=true]
*/
/**
* The editor modes within which the command can be executed. The execution
* will have no action if the current mode is not listed in this property.
*
* editorInstance.addCommand( 'link', {
* exec: function( editor ) {
* // ...
* },
* modes: { wysiwyg:1 } // Command is available in wysiwyg mode only.
* } );
*
* @property {Object} [modes={ wysiwyg:1 }]
* @see CKEDITOR.command#modes
*/

View File

@ -0,0 +1,383 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.config} object that stores the
* default configuration settings.
*/
/**
* Used in conjunction with {@link CKEDITOR.config#enterMode}
* and {@link CKEDITOR.config#shiftEnterMode} configuration
* settings to make the editor produce `<p>` tags when
* using the *Enter* key.
*
* @readonly
* @property {Number} [=1]
* @member CKEDITOR
*/
CKEDITOR.ENTER_P = 1;
/**
* Used in conjunction with {@link CKEDITOR.config#enterMode}
* and {@link CKEDITOR.config#shiftEnterMode} configuration
* settings to make the editor produce `<br>` tags when
* using the *Enter* key.
*
* @readonly
* @property {Number} [=2]
* @member CKEDITOR
*/
CKEDITOR.ENTER_BR = 2;
/**
* Used in conjunction with {@link CKEDITOR.config#enterMode}
* and {@link CKEDITOR.config#shiftEnterMode} configuration
* settings to make the editor produce `<div>` tags when
* using the *Enter* key.
*
* @readonly
* @property {Number} [=3]
* @member CKEDITOR
*/
CKEDITOR.ENTER_DIV = 3;
/**
* Stores default configuration settings. Changes to this object are
* reflected in all editor instances, if not specified otherwise for a particular
* instance.
*
* @class
* @singleton
*/
CKEDITOR.config = {
/**
* The URL path for the custom configuration file to be loaded. If not
* overloaded with inline configuration, it defaults to the `config.js`
* file present in the root of the CKEditor installation directory.
*
* CKEditor will recursively load custom configuration files defined inside
* other custom configuration files.
*
* // Load a specific configuration file.
* CKEDITOR.replace( 'myfield', { customConfig: '/myconfig.js' } );
*
* // Do not load any custom configuration file.
* CKEDITOR.replace( 'myfield', { customConfig: '' } );
*
* @cfg {String} [="<CKEditor folder>/config.js"]
*/
customConfig: 'config.js',
/**
* Whether the replaced element (usually a `<textarea>`)
* is to be updated automatically when posting the form containing the editor.
*
* @cfg
*/
autoUpdateElement: true,
/**
* The user interface language localization to use. If left empty, the editor
* will automatically be localized to the user language. If the user language is not supported,
* the language specified in the {@link CKEDITOR.config#defaultLanguage}
* configuration setting is used.
*
* // Load the German interface.
* config.language = 'de';
*
* @cfg
*/
language: '',
/**
* The language to be used if the {@link CKEDITOR.config#language}
* setting is left empty and it is not possible to localize the editor to the user language.
*
* config.defaultLanguage = 'it';
*
* @cfg
*/
defaultLanguage: 'en',
/**
* The writting direction of the language used to write the editor
* contents. Allowed values are:
*
* * `''` (empty string) - indicate content direction will be the same with either the editor
* UI direction or page element direction depending on the creators:
* * Themed UI: The same with user interface language direction;
* * Inline: The same with the editable element text direction;
* * `'ltr'` - for Left-To-Right language (like English);
* * `'rtl'` - for Right-To-Left languages (like Arabic).
*
* Example:
*
* config.contentsLangDirection = 'rtl';
*
* @cfg
*/
contentsLangDirection: '',
/**
* Sets the behavior of the *Enter* key. It also determines other behavior
* rules of the editor, like whether the `<br>` element is to be used
* as a paragraph separator when indenting text.
* The allowed values are the following constants that cause the behavior outlined below:
*
* * {@link CKEDITOR#ENTER_P} (1) &ndash; new `<p>` paragraphs are created;
* * {@link CKEDITOR#ENTER_BR} (2) &ndash; lines are broken with `<br>` elements;
* * {@link CKEDITOR#ENTER_DIV} (3) &ndash; new `<div>` blocks are created.
*
* **Note**: It is recommended to use the {@link CKEDITOR#ENTER_P} setting because of
* its semantic value and correctness. The editor is optimized for this setting.
*
* // Not recommended.
* config.enterMode = CKEDITOR.ENTER_BR;
*
* @cfg {Number} [=CKEDITOR.ENTER_P]
*/
enterMode: CKEDITOR.ENTER_P,
/**
* Force the use of {@link CKEDITOR.config#enterMode} as line break regardless
* of the context. If, for example, {@link CKEDITOR.config#enterMode} is set
* to {@link CKEDITOR#ENTER_P}, pressing the *Enter* key inside a
* `<div>` element will create a new paragraph with `<p>`
* instead of a `<div>`.
*
* // Not recommended.
* config.forceEnterMode = true;
*
* @since 3.2.1
* @cfg
*/
forceEnterMode: false,
/**
* Similarly to the {@link CKEDITOR.config#enterMode} setting, it defines the behavior
* of the *Shift+Enter* key combination.
*
* The allowed values are the following constants the behavior outlined below:
*
* * {@link CKEDITOR#ENTER_P} (1) &ndash; new `<p>` paragraphs are created;
* * {@link CKEDITOR#ENTER_BR} (2) &ndash; lines are broken with `<br>` elements;
* * {@link CKEDITOR#ENTER_DIV} (3) &ndash; new `<div>` blocks are created.
*
* Example:
*
* config.shiftEnterMode = CKEDITOR.ENTER_P;
*
* @cfg {Number} [=CKEDITOR.ENTER_BR]
*/
shiftEnterMode: CKEDITOR.ENTER_BR,
/**
* Sets the `DOCTYPE` to be used when loading the editor content as HTML.
*
* // Set the DOCTYPE to the HTML 4 (Quirks) mode.
* config.docType = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
*
* @cfg
*/
docType: '<!DOCTYPE html>',
/**
* Sets the `id` attribute to be used on the `body` element
* of the editing area. This can be useful when you intend to reuse the original CSS
* file you are using on your live website and want to assign the editor the same ID
* as the section that will include the contents. In this way ID-specific CSS rules will
* be enabled.
*
* config.bodyId = 'contents_id';
*
* @since 3.1
* @cfg
*/
bodyId: '',
/**
* Sets the `class` attribute to be used on the `body` element
* of the editing area. This can be useful when you intend to reuse the original CSS
* file you are using on your live website and want to assign the editor the same class
* as the section that will include the contents. In this way class-specific CSS rules will
* be enabled.
*
* config.bodyClass = 'contents';
*
* **Note:** Editor needs to load stylesheets containing contents styles. You can either
* copy them to the `contents.css` file that editor loads by default or set the {@link #contentsCss}
* option.
*
* **Note:** This setting applies only to the classic editor (the one that uses `iframe`).
*
* @since 3.1
* @cfg
*/
bodyClass: '',
/**
* Indicates whether the contents to be edited are being input as a full HTML page.
* A full page includes the `<html>`, `<head>`, and `<body>` elements.
* The final output will also reflect this setting, including the
* `<body>` contents only if this setting is disabled.
*
* config.fullPage = true;
*
* @since 3.1
* @cfg
*/
fullPage: false,
/**
* The height of the editing area (that includes the editor content). This
* can be an integer, for pixel sizes, or any CSS-defined length unit.
*
* **Note:** Percent units (%) are not supported.
*
* config.height = 500; // 500 pixels.
* config.height = '25em'; // CSS length.
* config.height = '300px'; // CSS length.
*
* @cfg {Number/String}
*/
height: 200,
/**
* Comma separated list of plugins to be used for an editor instance,
* besides, the actual plugins that to be loaded could be still affected by two other settings:
* {@link CKEDITOR.config#extraPlugins} and {@link CKEDITOR.config#removePlugins}.
*
* @cfg {String} [="<default list of plugins>"]
*/
plugins: '', // %REMOVE_LINE%
/**
* A list of additional plugins to be loaded. This setting makes it easier
* to add new plugins without having to touch {@link CKEDITOR.config#plugins} setting.
*
* config.extraPlugins = 'myplugin,anotherplugin';
*
* @cfg
*/
extraPlugins: '',
/**
* A list of plugins that must not be loaded. This setting makes it possible
* to avoid loading some plugins defined in the {@link CKEDITOR.config#plugins}
* setting, without having to touch it.
*
* **Note:** Plugin required by other plugin cannot be removed (error will be thrown).
* So e.g. if `contextmenu` is required by `tabletools`, then it can be removed
* only if `tabletools` isn't loaded.
*
* config.removePlugins = 'elementspath,save,font';
*
* @cfg
*/
removePlugins: '',
/**
* List of regular expressions to be executed on input HTML,
* indicating HTML source code that when matched, must **not** be available in the WYSIWYG
* mode for editing.
*
* config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP code
* config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP code
* config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net code
*
* @cfg
*/
protectedSource: [],
/**
* The editor `tabindex` value.
*
* config.tabIndex = 1;
*
* @cfg
*/
tabIndex: 0,
/**
* The editor UI outer width. This can be an integer, for pixel sizes, or
* any CSS-defined unit.
*
* Unlike the {@link CKEDITOR.config#height} setting, this
* one will set the outer width of the entire editor UI, not for the
* editing area only.
*
* config.width = 850; // 850 pixels wide.
* config.width = '75%'; // CSS unit.
*
* @cfg {String/Number}
*/
width: '',
/**
* The base Z-index for floating dialog windows and popups.
*
* config.baseFloatZIndex = 2000;
*
* @cfg
*/
baseFloatZIndex: 10000,
/**
* The keystrokes that are blocked by default as the browser implementation
* is buggy. These default keystrokes are handled by the editor.
*
* // Default setting.
* config.blockedKeystrokes = [
* CKEDITOR.CTRL + 66, // CTRL+B
* CKEDITOR.CTRL + 73, // CTRL+I
* CKEDITOR.CTRL + 85, // CTRL+U
* CKEDITOR.CTRL + 89, // CTRL+Y
* CKEDITOR.CTRL + 90, // CTRL+Z
* CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 // CTRL+SHIFT+Z
* ];
*
* @cfg {Array} [blockedKeystrokes=see example]
*/
blockedKeystrokes: [
CKEDITOR.CTRL + 66, // CTRL+B
CKEDITOR.CTRL + 73, // CTRL+I
CKEDITOR.CTRL + 85, // CTRL+U
CKEDITOR.CTRL + 89, // CTRL+Y
CKEDITOR.CTRL + 90, // CTRL+Z
CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 // CTRL+SHIFT+Z
]
};
/**
* Indicates that some of the editor features, like alignment and text
* direction, should use the "computed value" of the feature to indicate its
* on/off state instead of using the "real value".
*
* If enabled in a Left-To-Right written document, the "Left Justify"
* alignment button will be shown as active, even if the alignment style is not
* explicitly applied to the current paragraph in the editor.
*
* config.useComputedState = false;
*
* @since 3.4
* @cfg {Boolean} [useComputedState=true]
*/
/**
* The base user interface color to be used by the editor. Not all skins are
* compatible with this setting.
*
* // Using a color code.
* config.uiColor = '#AADC6E';
*
* // Using an HTML color name.
* config.uiColor = 'Gold';
*
* @cfg {String} uiColor
*/
// PACKAGER_RENAME( CKEDITOR.config )

View File

@ -0,0 +1,70 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the "virtual" {@link CKEDITOR.dataProcessor} class, which
* defines the basic structure of data processor objects to be
* set to {@link CKEDITOR.editor.dataProcessor}.
*/
/**
* If defined, points to the data processor which is responsible to translate
* and transform the editor data on input and output.
* Generaly it will point to an instance of {@link CKEDITOR.htmlDataProcessor},
* which handles HTML data. The editor may also handle other data formats by
* using different data processors provided by specific plugins.
*
* @property {CKEDITOR.dataProcessor} dataProcessor
* @member CKEDITOR.editor
*/
/**
* Represents a data processor, which is responsible to translate and
* transform the editor data on input and output.
*
* This class is here for documentation purposes only and is not really part of
* the API. It serves as the base ("interface") for data processors implementation.
*
* @class CKEDITOR.dataProcessor
* @abstract
*/
/**
* Transforms input data into HTML to be loaded in the editor.
* While the editor is able to handle non HTML data (like BBCode), at runtime
* it can handle HTML data only. The role of the data processor is transforming
* the input data into HTML through this function.
*
* // Tranforming BBCode data, having a custom BBCode data processor.
* var data = 'This is [b]an example[/b].';
* var html = editor.dataProcessor.toHtml( data ); // '<p>This is <b>an example</b>.</p>'
*
* @method toHtml
* @param {String} data The input data to be transformed.
* @param {String} [fixForBody] The tag name to be used if the data must be
* fixed because it is supposed to be loaded direcly into the `<body>`
* tag. This is generally not used by non-HTML data processors.
* @todo fixForBody type - compare to htmlDataProcessor.
*/
/**
* Transforms HTML into data to be outputted by the editor, in the format
* expected by the data processor.
*
* While the editor is able to handle non HTML data (like BBCode), at runtime
* it can handle HTML data only. The role of the data processor is transforming
* the HTML data containined by the editor into a specific data format through
* this function.
*
* // Tranforming into BBCode data, having a custom BBCode data processor.
* var html = '<p>This is <b>an example</b>.</p>';
* var data = editor.dataProcessor.toDataFormat( html ); // 'This is [b]an example[/b].'
*
* @method toDataFormat
* @param {String} html The HTML to be transformed.
* @param {String} fixForBody The tag name to be used if the output data is
* coming from `<body>` and may be eventually fixed for it. This is
* generally not used by non-HTML data processors.
*/

View File

@ -0,0 +1,13 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dom} object, which contains DOM
* manipulation objects and function.
*/
CKEDITOR.dom = {};
// PACKAGER_RENAME( CKEDITOR.dom )

View File

@ -0,0 +1,328 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dtd} object, which holds the DTD
* mapping for XHTML 1.0 Transitional. This file was automatically
* generated from the file: xhtml1-transitional.dtd.
*/
/**
* Holds and object representation of the HTML DTD to be used by the
* editor in its internal operations.
*
* Each element in the DTD is represented by a property in this object. Each
* property contains the list of elements that can be contained by the element.
* Text is represented by the `#` property.
*
* Several special grouping properties are also available. Their names start
* with the `$` character.
*
* // Check if <div> can be contained in a <p> element.
* alert( !!CKEDITOR.dtd[ 'p' ][ 'div' ] ); // false
*
* // Check if <p> can be contained in a <div> element.
* alert( !!CKEDITOR.dtd[ 'div' ][ 'p' ] ); // true
*
* // Check if <p> is a block element.
* alert( !!CKEDITOR.dtd.$block[ 'p' ] ); // true
*
* @class CKEDITOR.dtd
* @singleton
*/
CKEDITOR.dtd = ( function() {
'use strict';
var X = CKEDITOR.tools.extend,
// Subtraction rest of sets, from the first set.
Y = function( source, removed ) {
var substracted = CKEDITOR.tools.clone( source );
for ( var i = 1; i < arguments.length; i++ ) {
removed = arguments[ i ];
for ( var name in removed )
delete substracted[ name ];
}
return substracted;
};
// Phrasing elements.
// P = { a: 1, em: 1, strong: 1, small: 1, abbr: 1, dfn: 1, i: 1, b: 1, s: 1,
// u: 1, code: 1, 'var': 1, samp: 1, kbd: 1, sup: 1, sub: 1, q: 1, cite: 1,
// span: 1, bdo: 1, bdi: 1, br: 1, wbr: 1, ins: 1, del: 1, img: 1, embed: 1,
// object: 1, iframe: 1, map: 1, area: 1, script: 1, noscript: 1, ruby: 1,
// video: 1, audio: 1, input: 1, textarea: 1, select: 1, button: 1, label: 1,
// output: 1, keygen: 1, progress: 1, command: 1, canvas: 1, time: 1,
// meter: 1, detalist: 1 },
// Flow elements.
// F = { a: 1, p: 1, hr: 1, pre: 1, ul: 1, ol: 1, dl: 1, div: 1, h1: 1, h2: 1,
// h3: 1, h4: 1, h5: 1, h6: 1, hgroup: 1, address: 1, blockquote: 1, ins: 1,
// del: 1, object: 1, map: 1, noscript: 1, section: 1, nav: 1, article: 1,
// aside: 1, header: 1, footer: 1, video: 1, audio: 1, figure: 1, table: 1,
// form: 1, fieldset: 1, menu: 1, canvas: 1, details:1 },
// Text can be everywhere.
// X( P, T );
// Flow elements set consists of phrasing elements set.
// X( F, P );
var P = {}, F = {},
// Intersection of flow elements set and phrasing elements set.
PF = { a: 1, abbr: 1, area: 1, audio: 1, b: 1, bdi: 1, bdo: 1, br: 1, button: 1, canvas: 1, cite: 1,
code: 1, command: 1, datalist: 1, del: 1, dfn: 1, em: 1, embed: 1, i: 1, iframe: 1, img: 1,
input: 1, ins: 1, kbd: 1, keygen: 1, label: 1, map: 1, mark: 1, meter: 1, noscript: 1, object: 1,
output: 1, progress: 1, q: 1, ruby: 1, s: 1, samp: 1, script: 1, select: 1, small: 1, span: 1,
strong: 1, sub: 1, sup: 1, textarea: 1, time: 1, u: 1, 'var': 1, video: 1, wbr: 1 },
// F - PF (Flow Only).
FO = { address: 1, article: 1, aside: 1, blockquote: 1, details: 1, div: 1, dl: 1, fieldset: 1,
figure: 1, footer: 1, form: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, header: 1, hgroup: 1,
hr: 1, menu: 1, nav: 1, ol: 1, p: 1, pre: 1, section: 1, table: 1, ul: 1 },
// Metadata elements.
M = { command: 1, link: 1, meta: 1, noscript: 1, script: 1, style: 1 },
// Empty.
E = {},
// Text.
T = { '#': 1 },
// Deprecated phrasing elements.
DP = { acronym: 1, applet: 1, basefont: 1, big: 1, font: 1, isindex: 1, strike: 1, style: 1, tt: 1 }, // TODO remove "style".
// Deprecated flow only elements.
DFO = { center: 1, dir: 1, noframes: 1 };
// Phrasing elements := PF + T + DP
X( P, PF, T, DP );
// Flow elements := FO + P + DFO
X( F, FO, P, DFO );
var dtd = {
a: Y( P, { a: 1, button: 1 } ), // Treat as normal inline element (not a transparent one).
abbr: P,
address: F,
area: E,
article: X( { style: 1 }, F ),
aside: X( { style: 1 }, F ),
audio: X( { source: 1, track: 1 }, F ),
b: P,
base: E,
bdi: P,
bdo: P,
blockquote: F,
body: F,
br: E,
button: Y( P, { a: 1, button: 1 } ),
canvas: P, // Treat as normal inline element (not a transparent one).
caption: F,
cite: P,
code: P,
col: E,
colgroup: { col: 1 },
command: E,
datalist: X( { option: 1 }, P ),
dd: F,
del: P, // Treat as normal inline element (not a transparent one).
details: X( { summary: 1 }, F ),
dfn: P,
div: X( { style: 1 }, F ),
dl: { dt: 1, dd: 1 },
dt: F,
em: P,
embed: E,
fieldset: X( { legend: 1 }, F ),
figcaption: F,
figure: X( { figcaption: 1 }, F ),
footer: F,
form: F,
h1: P,
h2: P,
h3: P,
h4: P,
h5: P,
h6: P,
head: X( { title: 1, base: 1 }, M ),
header: F,
hgroup: { h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1 },
hr: E,
html: X( { head: 1, body: 1 }, F, M ), // Head and body are optional...
i: P,
iframe: T,
img: E,
input: E,
ins: P, // Treat as normal inline element (not a transparent one).
kbd: P,
keygen: E,
label: P,
legend: P,
li: F,
link: E,
map: F,
mark: P, // Treat as normal inline element (not a transparent one).
menu: X( { li: 1 }, F ),
meta: E,
meter: Y( P, { meter: 1 } ),
nav: F,
noscript: X( { link: 1, meta: 1, style: 1 }, P ), // Treat as normal inline element (not a transparent one).
object: X( { param: 1 }, P ), // Treat as normal inline element (not a transparent one).
ol: { li: 1 },
optgroup: { option: 1 },
option: T,
output: P,
p: P,
param: E,
pre: P,
progress: Y( P, { progress: 1 } ),
q: P,
rp: P,
rt: P,
ruby: X( { rp: 1, rt: 1 }, P ),
s: P,
samp: P,
script: T,
section: X( { style: 1 }, F ),
select: { optgroup: 1, option: 1 },
small: P,
source: E,
span: P,
strong: P,
style: T,
sub: P,
summary: P,
sup: P,
table: { caption: 1, colgroup: 1, thead: 1, tfoot: 1, tbody: 1, tr: 1 },
tbody: { tr: 1 },
td: F,
textarea: T,
tfoot: { tr: 1 },
th: F,
thead: { tr: 1 },
time: Y( P, { time: 1 } ),
title: T,
tr: { th: 1, td: 1 },
track: E,
u: P,
ul: { li: 1 },
'var': P,
video: X( { source: 1, track: 1 }, F ),
wbr: E,
// Deprecated tags.
acronym: P,
applet: X( { param: 1 }, F ),
basefont: E,
big: P,
center: F,
dialog: E,
dir: { li: 1 },
font: P,
isindex: E,
noframes: F,
strike: P,
tt: P
};
X( dtd, {
/**
* List of block elements, like `<p>` or `<div>`.
*/
$block: X( { audio: 1, dd: 1, dt: 1, figcaption: 1, li: 1, video: 1 }, FO, DFO ),
/**
* List of elements that contain other blocks, in which block-level operations should be limited,
* this property is not intended to be checked directly, use {@link CKEDITOR.dom.elementPath#blockLimit} instead.
*
* Some examples of editor behaviors that are impacted by block limits:
*
* * Enter key never split a block-limit element;
* * Style application is constraint by the block limit of the current selection.
* * Pasted html will be inserted into the block limit of the current selection.
*
* **Note:** As an exception `<li>` is not considered as a block limit, as it's generally used as a text block.
*/
$blockLimit: { article: 1, aside: 1, audio: 1, body: 1, caption: 1, details: 1, dir: 1, div: 1, dl: 1,
fieldset: 1, figcaption: 1, figure: 1, footer: 1, form: 1, header: 1, hgroup: 1, menu: 1, nav: 1,
ol: 1, section: 1, table: 1, td: 1, th: 1, tr: 1, ul: 1, video: 1 },
/**
* List of elements that contain character data.
*/
$cdata: { script: 1, style: 1 },
/**
* List of elements that are accepted as inline editing hosts.
*/
$editable: { address: 1, article: 1, aside: 1, blockquote: 1, body: 1, details: 1, div: 1, fieldset: 1,
figcaption: 1, footer: 1, form: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, header: 1, hgroup: 1,
nav: 1, p: 1, pre: 1, section: 1 },
/**
* List of empty (self-closing) elements, like `<br>` or `<img>`.
*/
$empty: { area: 1, base: 1, basefont: 1, br: 1, col: 1, command: 1, dialog: 1, embed: 1, hr: 1, img: 1,
input: 1, isindex: 1, keygen: 1, link: 1, meta: 1, param: 1, source: 1, track: 1, wbr: 1 },
/**
* List of inline (`<span>` like) elements.
*/
$inline: P,
/**
* List of list root elements.
*/
$list: { dl: 1, ol: 1, ul: 1 },
/**
* List of list item elements, like `<li>` or `<dd>`.
*/
$listItem: { dd: 1, dt: 1, li: 1 },
/**
* List of elements which may live outside body.
*/
$nonBodyContent: X( { body: 1, head: 1, html: 1 }, dtd.head ),
/**
* Elements that accept text nodes, but are not possible to edit into the browser.
*/
$nonEditable: { applet: 1, audio: 1, button: 1, embed: 1, iframe: 1, map: 1, object: 1, option: 1,
param: 1, script: 1, textarea: 1, video: 1 },
/**
* Elements that are considered objects, therefore selected as a whole in the editor.
*/
$object: { applet: 1, audio: 1, button: 1, hr: 1, iframe: 1, img: 1, input: 1, object: 1, select: 1,
table: 1, textarea: 1, video: 1 },
/**
* List of elements that can be ignored if empty, like `<b>` or `<span>`.
*/
$removeEmpty: { abbr: 1, acronym: 1, b: 1, bdi: 1, bdo: 1, big: 1, cite: 1, code: 1, del: 1, dfn: 1,
em: 1, font: 1, i: 1, ins: 1, label: 1, kbd: 1, mark: 1, meter: 1, output: 1, q: 1, ruby: 1, s: 1,
samp: 1, small: 1, span: 1, strike: 1, strong: 1, sub: 1, sup: 1, time: 1, tt: 1, u: 1, 'var': 1 },
/**
* List of elements that have tabindex set to zero by default.
*/
$tabIndex: { a: 1, area: 1, button: 1, input: 1, object: 1, select: 1, textarea: 1 },
/**
* List of elements used inside the `<table>` element, like `<tbody>` or `<td>`.
*/
$tableContent: { caption: 1, col: 1, colgroup: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1 },
/**
* List of "transparent" elements. See [W3C's definition of "transparent" element](http://dev.w3.org/html5/markup/terminology.html#transparent).
*/
$transparent: { a: 1, audio: 1, canvas: 1, del: 1, ins: 1, map: 1, noscript: 1, object: 1, video: 1 },
/**
* List of elements that are not to exist standalone that must live under it's parent element.
*/
$intermediate: { caption: 1, colgroup: 1, dd: 1, dt: 1, figcaption: 1, legend: 1, li: 1, optgroup: 1,
option: 1, rp: 1, rt: 1, summary: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1 }
} );
return dtd;
} )();
// PACKAGER_RENAME( CKEDITOR.dtd )

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
if ( !CKEDITOR.editor ) {
// Documented at editor.js.
CKEDITOR.editor = function() {
// Push this editor to the pending list. It'll be processed later once
// the full editor code is loaded.
CKEDITOR._.pending.push( [ this, arguments ] );
// Call the CKEDITOR.event constructor to initialize this instance.
CKEDITOR.event.call( this );
};
// Both fire and fireOnce will always pass this editor instance as the
// "editor" param in CKEDITOR.event.fire. So, we override it to do that
// automaticaly.
CKEDITOR.editor.prototype.fire = function( eventName, data ) {
if ( eventName in { instanceReady: 1, loaded: 1 } )
this[ eventName ] = true;
return CKEDITOR.event.prototype.fire.call( this, eventName, data, this );
};
CKEDITOR.editor.prototype.fireOnce = function( eventName, data ) {
if ( eventName in { instanceReady: 1, loaded: 1 } )
this[ eventName ] = true;
return CKEDITOR.event.prototype.fireOnce.call( this, eventName, data, this );
};
// "Inherit" (copy actually) from CKEDITOR.event.
CKEDITOR.event.implementOn( CKEDITOR.editor.prototype );
}

View File

@ -0,0 +1,359 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.env} object which contains
* environment and browser information.
*/
if ( !CKEDITOR.env ) {
/**
* Environment and browser information.
*
* @class CKEDITOR.env
* @singleton
*/
CKEDITOR.env = ( function() {
var agent = navigator.userAgent.toLowerCase();
var opera = window.opera;
var env = {
/**
* Indicates that CKEditor is running in Internet Explorer.
*
* if ( CKEDITOR.env.ie )
* alert( 'I\'m running in IE!' );
*
* @property {Boolean}
*/
ie: ( agent.indexOf( 'trident/' ) > -1 ),
/**
* Indicates that CKEditor is running in Opera.
*
* if ( CKEDITOR.env.opera )
* alert( 'I\'m running in Opera!' );
*
* @property {Boolean}
*/
opera: ( !!opera && opera.version ),
/**
* Indicates that CKEditor is running in a WebKit-based browser, like Safari.
*
* if ( CKEDITOR.env.webkit )
* alert( 'I\'m running in a WebKit browser!' );
*
* @property {Boolean}
*/
webkit: ( agent.indexOf( ' applewebkit/' ) > -1 ),
/**
* Indicates that CKEditor is running in Adobe AIR.
*
* if ( CKEDITOR.env.air )
* alert( 'I\'m on AIR!' );
*
* @property {Boolean}
*/
air: ( agent.indexOf( ' adobeair/' ) > -1 ),
/**
* Indicates that CKEditor is running on Macintosh.
*
* if ( CKEDITOR.env.mac )
* alert( 'I love apples!'' );
*
* @property {Boolean}
*/
mac: ( agent.indexOf( 'macintosh' ) > -1 ),
/**
* Indicates that CKEditor is running in a Quirks Mode environment.
*
* if ( CKEDITOR.env.quirks )
* alert( 'Nooooo!' );
*
* Internet Explorer 10 introduced the _New Quirks Mode_, which is similar to the _Quirks Mode_
* implemented in other modern browsers and defined in the HTML5 specification. It can be handled
* as the Standards mode, so the value of this property will be set to `false`.
*
* The _Internet Explorer 5 Quirks_ mode which is still available in Internet Explorer 10+
* sets this value to `true` and {@link #version} to `7`.
*
* Read more: [IEBlog](http://blogs.msdn.com/b/ie/archive/2011/12/14/interoperable-html5-quirks-mode-in-ie10.aspx)
*
* @property {Boolean}
*/
quirks: ( document.compatMode == 'BackCompat' && ( !document.documentMode || document.documentMode < 10 ) ),
/**
* Indicates that CKEditor is running in a mobile environemnt.
*
* if ( CKEDITOR.env.mobile )
* alert( 'I\'m running with CKEditor today!' );
*
* @property {Boolean}
*/
mobile: ( agent.indexOf( 'mobile' ) > -1 ),
/**
* Indicates that CKEditor is running on Apple iPhone/iPad/iPod devices.
*
* if ( CKEDITOR.env.iOS )
* alert( 'I like little apples!' );
*
* @property {Boolean}
*/
iOS: /(ipad|iphone|ipod)/.test( agent ),
/**
* Indicates that the browser has a custom domain enabled. This has
* been set with `document.domain`.
*
* if ( CKEDITOR.env.isCustomDomain() )
* alert( 'I\'m in a custom domain!' );
*
* @returns {Boolean} `true` if a custom domain is enabled.
* @deprecated
*/
isCustomDomain: function() {
if ( !this.ie )
return false;
var domain = document.domain,
hostname = window.location.hostname;
return domain != hostname && domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)
},
/**
* Indicates that the page is running under an encrypted connection.
*
* if ( CKEDITOR.env.secure )
* alert( 'I\'m on SSL!' );
*
* @returns {Boolean} `true` if the page has an encrypted connection.
*/
secure: location.protocol == 'https:'
};
/**
* Indicates that CKEditor is running in a Gecko-based browser, like
* Firefox.
*
* if ( CKEDITOR.env.gecko )
* alert( 'I\'m riding a gecko!' );
*
* @property {Boolean}
*/
env.gecko = ( navigator.product == 'Gecko' && !env.webkit && !env.opera && !env.ie );
/**
* Indicates that CKEditor is running in Chrome.
*
* if ( CKEDITOR.env.chrome )
* alert( 'I\'m running in Chrome!' );
*
* @property {Boolean} chrome
*/
/**
* Indicates that CKEditor is running in Safari (including the mobile version).
*
* if ( CKEDITOR.env.safari )
* alert( 'I\'m on Safari!' );
*
* @property {Boolean} safari
*/
if ( env.webkit ) {
if ( agent.indexOf( 'chrome' ) > -1 )
env.chrome = true;
else
env.safari = true;
}
var version = 0;
// Internet Explorer 6.0+
if ( env.ie ) {
// We use env.version for feature detection, so set it properly.
if ( env.quirks || !document.documentMode )
version = parseFloat( agent.match( /msie (\d+)/ )[ 1 ] );
else
version = document.documentMode;
// Deprecated features available just for backwards compatibility.
env.ie9Compat = version == 9;
env.ie8Compat = version == 8;
env.ie7Compat = version == 7;
env.ie6Compat = version < 7 || env.quirks;
/**
* Indicates that CKEditor is running in an IE6-like environment, which
* includes IE6 itself as well as IE7, IE8 and IE9 in Quirks Mode.
*
* @deprecated
* @property {Boolean} ie6Compat
*/
/**
* Indicates that CKEditor is running in an IE7-like environment, which
* includes IE7 itself and IE8's IE7 Document Mode.
*
* @deprecated
* @property {Boolean} ie7Compat
*/
/**
* Indicates that CKEditor is running in Internet Explorer 8 on
* Standards Mode.
*
* @deprecated
* @property {Boolean} ie8Compat
*/
/**
* Indicates that CKEditor is running in Internet Explorer 9 on
* Standards Mode.
*
* @deprecated
* @property {Boolean} ie9Compat
*/
}
// Gecko.
if ( env.gecko ) {
var geckoRelease = agent.match( /rv:([\d\.]+)/ );
if ( geckoRelease ) {
geckoRelease = geckoRelease[ 1 ].split( '.' );
version = geckoRelease[ 0 ] * 10000 + ( geckoRelease[ 1 ] || 0 ) * 100 + ( geckoRelease[ 2 ] || 0 ) * 1;
}
}
// Opera 9.50+
if ( env.opera )
version = parseFloat( opera.version() );
// Adobe AIR 1.0+
// Checked before Safari because AIR have the WebKit rich text editor
// features from Safari 3.0.4, but the version reported is 420.
if ( env.air )
version = parseFloat( agent.match( / adobeair\/(\d+)/ )[ 1 ] );
// WebKit 522+ (Safari 3+)
if ( env.webkit )
version = parseFloat( agent.match( / applewebkit\/(\d+)/ )[ 1 ] );
/**
* Contains the browser version.
*
* For Gecko-based browsers (like Firefox) it contains the revision
* number with first three parts concatenated with a padding zero
* (e.g. for revision 1.9.0.2 we have 10900).
*
* For WebKit-based browsers (like Safari and Chrome) it contains the
* WebKit build version (e.g. 522).
*
* For IE browsers, it matches the "Document Mode".
*
* if ( CKEDITOR.env.ie && CKEDITOR.env.version <= 6 )
* alert( 'Ouch!' );
*
* @property {Number}
*/
env.version = version;
/**
* Indicates that CKEditor is running in a compatible browser.
*
* if ( CKEDITOR.env.isCompatible )
* alert( 'Your browser is pretty cool!' );
*
* @property {Boolean}
*/
env.isCompatible =
// White list of mobile devices that CKEditor supports.
env.iOS && version >= 534 ||
!env.mobile && (
( env.ie && version > 6 ) ||
( env.gecko && version >= 10801 ) ||
( env.opera && version >= 9.5 ) ||
( env.air && version >= 1 ) ||
( env.webkit && version >= 522 ) ||
false
);
/**
* Indicates that CKEditor is running in the HiDPI environment.
*
* if ( CKEDITOR.env.hidpi )
* alert( 'You are using a screen with high pixel density.' );
*
* @property {Boolean}
*/
env.hidpi = window.devicePixelRatio >= 2;
/**
* Indicates that CKEditor is running in a browser which uses a bogus
* `<br>` filler in order to correctly display caret in empty blocks.
*
* @since 4.3
* @property {Boolean}
*/
env.needsBrFiller = env.gecko || env.webkit || ( env.ie && version > 10 );
/**
* Indicates that CKEditor is running in a browser which needs a
* non-breaking space filler in order to correctly display caret in empty blocks.
*
* @since 4.3
* @property {Boolean}
*/
env.needsNbspFiller = env.ie && version < 11;
/**
* A CSS class that denotes the browser where CKEditor runs and is appended
* to the HTML element that contains the editor. It makes it easier to apply
* browser-specific styles to editor instances.
*
* myDiv.className = CKEDITOR.env.cssClass;
*
* @property {String}
*/
env.cssClass = 'cke_browser_' + ( env.ie ? 'ie' : env.gecko ? 'gecko' : env.opera ? 'opera' : env.webkit ? 'webkit' : 'unknown' );
if ( env.quirks )
env.cssClass += ' cke_browser_quirks';
if ( env.ie ) {
env.cssClass += ' cke_browser_ie' + ( env.quirks || env.version < 7 ? '6' : env.version );
if ( env.quirks )
env.cssClass += ' cke_browser_iequirks';
}
if ( env.gecko ) {
if ( version < 10900 )
env.cssClass += ' cke_browser_gecko18';
else if ( version <= 11000 )
env.cssClass += ' cke_browser_gecko19';
}
if ( env.air )
env.cssClass += ' cke_browser_air';
if ( env.iOS )
env.cssClass += ' cke_browser_ios';
if ( env.hidpi )
env.cssClass += ' cke_hidpi';
return env;
} )();
}
// PACKAGER_RENAME( CKEDITOR.env )
// PACKAGER_RENAME( CKEDITOR.env.ie )

View File

@ -0,0 +1,387 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.event} class, which serves as the
* base for classes and objects that require event handling features.
*/
if ( !CKEDITOR.event ) {
/**
* Creates an event class instance. This constructor is rearely used, being
* the {@link #implementOn} function used in class prototypes directly
* instead.
*
* This is a base class for classes and objects that require event
* handling features.
*
* Do not confuse this class with {@link CKEDITOR.dom.event} which is
* instead used for DOM events. The CKEDITOR.event class implements the
* internal event system used by the CKEditor to fire API related events.
*
* @class
* @constructor Creates an event class instance.
*/
CKEDITOR.event = function() {};
/**
* Implements the {@link CKEDITOR.event} features in an object.
*
* var myObject = { message: 'Example' };
* CKEDITOR.event.implementOn( myObject );
*
* myObject.on( 'testEvent', function() {
* alert( this.message );
* } );
* myObject.fire( 'testEvent' ); // 'Example'
*
* @static
* @param {Object} targetObject The object into which implement the features.
*/
CKEDITOR.event.implementOn = function( targetObject ) {
var eventProto = CKEDITOR.event.prototype;
for ( var prop in eventProto ) {
if ( targetObject[ prop ] == undefined )
targetObject[ prop ] = eventProto[ prop ];
}
};
CKEDITOR.event.prototype = ( function() {
// Returns the private events object for a given object.
var getPrivate = function( obj ) {
var _ = ( obj.getPrivate && obj.getPrivate() ) || obj._ || ( obj._ = {} );
return _.events || ( _.events = {} );
};
var eventEntry = function( eventName ) {
this.name = eventName;
this.listeners = [];
};
eventEntry.prototype = {
// Get the listener index for a specified function.
// Returns -1 if not found.
getListenerIndex: function( listenerFunction ) {
for ( var i = 0, listeners = this.listeners; i < listeners.length; i++ ) {
if ( listeners[ i ].fn == listenerFunction )
return i;
}
return -1;
}
};
// Retrieve the event entry on the event host (create it if needed).
function getEntry( name ) {
// Get the event entry (create it if needed).
var events = getPrivate( this );
return events[ name ] || ( events[ name ] = new eventEntry( name ) );
}
return {
/**
* Predefine some intrinsic properties on a specific event name.
*
* @param {String} name The event name
* @param meta
* @param [meta.errorProof=false] Whether the event firing should catch error thrown from a per listener call.
*/
define: function( name, meta ) {
var entry = getEntry.call( this, name );
CKEDITOR.tools.extend( entry, meta, true );
},
/**
* Registers a listener to a specific event in the current object.
*
* someObject.on( 'someEvent', function() {
* alert( this == someObject ); // true
* } );
*
* someObject.on( 'someEvent', function() {
* alert( this == anotherObject ); // true
* }, anotherObject );
*
* someObject.on( 'someEvent', function( event ) {
* alert( event.listenerData ); // 'Example'
* }, null, 'Example' );
*
* someObject.on( 'someEvent', function() { ... } ); // 2nd called
* someObject.on( 'someEvent', function() { ... }, null, null, 100 ); // 3rd called
* someObject.on( 'someEvent', function() { ... }, null, null, 1 ); // 1st called
*
* @param {String} eventName The event name to which listen.
* @param {Function} listenerFunction The function listening to the
* event. A single {@link CKEDITOR.eventInfo} object instanced
* is passed to this function containing all the event data.
* @param {Object} [scopeObj] The object used to scope the listener
* call (the `this` object). If omitted, the current object is used.
* @param {Object} [listenerData] Data to be sent as the
* {@link CKEDITOR.eventInfo#listenerData} when calling the
* listener.
* @param {Number} [priority=10] The listener priority. Lower priority
* listeners are called first. Listeners with the same priority
* value are called in registration order.
* @returns {Object} An object containing the `removeListener`
* function, which can be used to remove the listener at any time.
*/
on: function( eventName, listenerFunction, scopeObj, listenerData, priority ) {
// Create the function to be fired for this listener.
function listenerFirer( editor, publisherData, stopFn, cancelFn ) {
var ev = {
name: eventName,
sender: this,
editor: editor,
data: publisherData,
listenerData: listenerData,
stop: stopFn,
cancel: cancelFn,
removeListener: removeListener
};
var ret = listenerFunction.call( scopeObj, ev );
return ret === false ? false : ev.data;
}
function removeListener() {
me.removeListener( eventName, listenerFunction );
}
var event = getEntry.call( this, eventName );
if ( event.getListenerIndex( listenerFunction ) < 0 ) {
// Get the listeners.
var listeners = event.listeners;
// Fill the scope.
if ( !scopeObj )
scopeObj = this;
// Default the priority, if needed.
if ( isNaN( priority ) )
priority = 10;
var me = this;
listenerFirer.fn = listenerFunction;
listenerFirer.priority = priority;
// Search for the right position for this new listener, based on its
// priority.
for ( var i = listeners.length - 1; i >= 0; i-- ) {
// Find the item which should be before the new one.
if ( listeners[ i ].priority <= priority ) {
// Insert the listener in the array.
listeners.splice( i + 1, 0, listenerFirer );
return { removeListener: removeListener };
}
}
// If no position has been found (or zero length), put it in
// the front of list.
listeners.unshift( listenerFirer );
}
return { removeListener: removeListener };
},
/**
* Similiar with {@link #on} but the listener will be called only once upon the next event firing.
*
* @see CKEDITOR.event#on
*/
once: function() {
var fn = arguments[ 1 ];
arguments[ 1 ] = function( evt ) {
evt.removeListener();
return fn.apply( this, arguments );
};
return this.on.apply( this, arguments );
},
/**
* @static
* @property {Boolean} useCapture
* @todo
*/
/**
* Register event handler under the capturing stage on supported target.
*/
capture: function() {
CKEDITOR.event.useCapture = 1;
var retval = this.on.apply( this, arguments );
CKEDITOR.event.useCapture = 0;
return retval;
},
/**
* Fires an specific event in the object. All registered listeners are
* called at this point.
*
* someObject.on( 'someEvent', function() { ... } );
* someObject.on( 'someEvent', function() { ... } );
* someObject.fire( 'someEvent' ); // Both listeners are called.
*
* someObject.on( 'someEvent', function( event ) {
* alert( event.data ); // 'Example'
* } );
* someObject.fire( 'someEvent', 'Example' );
*
* @method
* @param {String} eventName The event name to fire.
* @param {Object} [data] Data to be sent as the
* {@link CKEDITOR.eventInfo#data} when calling the listeners.
* @param {CKEDITOR.editor} [editor] The editor instance to send as the
* {@link CKEDITOR.eventInfo#editor} when calling the listener.
* @returns {Boolean/Object} A boolean indicating that the event is to be
* canceled, or data returned by one of the listeners.
*/
fire: ( function() {
// Create the function that marks the event as stopped.
var stopped = 0;
var stopEvent = function() {
stopped = 1;
};
// Create the function that marks the event as canceled.
var canceled = 0;
var cancelEvent = function() {
canceled = 1;
};
return function( eventName, data, editor ) {
// Get the event entry.
var event = getPrivate( this )[ eventName ];
// Save the previous stopped and cancelled states. We may
// be nesting fire() calls.
var previousStopped = stopped,
previousCancelled = canceled;
// Reset the stopped and canceled flags.
stopped = canceled = 0;
if ( event ) {
var listeners = event.listeners;
if ( listeners.length ) {
// As some listeners may remove themselves from the
// event, the original array length is dinamic. So,
// let's make a copy of all listeners, so we are
// sure we'll call all of them.
listeners = listeners.slice( 0 );
var retData;
// Loop through all listeners.
for ( var i = 0; i < listeners.length; i++ ) {
// Call the listener, passing the event data.
if ( event.errorProof ) {
try {
retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
} catch ( er ) {}
} else
retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
if ( retData === false )
canceled = 1;
else if ( typeof retData != 'undefined' )
data = retData;
// No further calls is stopped or canceled.
if ( stopped || canceled )
break;
}
}
}
var ret = canceled ? false : ( typeof data == 'undefined' ? true : data );
// Restore the previous stopped and canceled states.
stopped = previousStopped;
canceled = previousCancelled;
return ret;
};
} )(),
/**
* Fires an specific event in the object, releasing all listeners
* registered to that event. The same listeners are not called again on
* successive calls of it or of {@link #fire}.
*
* someObject.on( 'someEvent', function() { ... } );
* someObject.fire( 'someEvent' ); // Above listener called.
* someObject.fireOnce( 'someEvent' ); // Above listener called.
* someObject.fire( 'someEvent' ); // No listeners called.
*
* @param {String} eventName The event name to fire.
* @param {Object} [data] Data to be sent as the
* {@link CKEDITOR.eventInfo#data} when calling the listeners.
* @param {CKEDITOR.editor} [editor] The editor instance to send as the
* {@link CKEDITOR.eventInfo#editor} when calling the listener.
* @returns {Boolean/Object} A booloan indicating that the event is to be
* canceled, or data returned by one of the listeners.
*/
fireOnce: function( eventName, data, editor ) {
var ret = this.fire( eventName, data, editor );
delete getPrivate( this )[ eventName ];
return ret;
},
/**
* Unregisters a listener function from being called at the specified
* event. No errors are thrown if the listener has not been registered previously.
*
* var myListener = function() { ... };
* someObject.on( 'someEvent', myListener );
* someObject.fire( 'someEvent' ); // myListener called.
* someObject.removeListener( 'someEvent', myListener );
* someObject.fire( 'someEvent' ); // myListener not called.
*
* @param {String} eventName The event name.
* @param {Function} listenerFunction The listener function to unregister.
*/
removeListener: function( eventName, listenerFunction ) {
// Get the event entry.
var event = getPrivate( this )[ eventName ];
if ( event ) {
var index = event.getListenerIndex( listenerFunction );
if ( index >= 0 )
event.listeners.splice( index, 1 );
}
},
/**
* Remove all existing listeners on this object, for cleanup purpose.
*/
removeAllListeners: function() {
var events = getPrivate( this );
for ( var i in events )
delete events[ i ];
},
/**
* Checks if there is any listener registered to a given event.
*
* var myListener = function() { ... };
* someObject.on( 'someEvent', myListener );
* alert( someObject.hasListeners( 'someEvent' ) ); // true
* alert( someObject.hasListeners( 'noEvent' ) ); // false
*
* @param {String} eventName The event name.
* @returns {Boolean}
*/
hasListeners: function( eventName ) {
var event = getPrivate( this )[ eventName ];
return ( event && event.listeners.length > 0 );
}
};
} )();
}

View File

@ -0,0 +1,115 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the "virtual" {@link CKEDITOR.eventInfo} class, which
* contains the defintions of the event object passed to event listeners.
* This file is for documentation purposes only.
*/
/**
* Virtual class that illustrates the features of the event object to be
* passed to event listeners by a {@link CKEDITOR.event} based object.
*
* This class is not really part of the API.
*
* @class CKEDITOR.eventInfo
* @abstract
*/
/**
* The event name.
*
* someObject.on( 'someEvent', function( event ) {
* alert( event.name ); // 'someEvent'
* } );
* someObject.fire( 'someEvent' );
*
* @property {String} name
*/
/**
* The object that publishes (sends) the event.
*
* someObject.on( 'someEvent', function( event ) {
* alert( event.sender == someObject ); // true
* } );
* someObject.fire( 'someEvent' );
*
* @property sender
*/
/**
* The editor instance that holds the sender. May be the same as sender. May be
* null if the sender is not part of an editor instance, like a component
* running in standalone mode.
*
* myButton.on( 'someEvent', function( event ) {
* alert( event.editor == myEditor ); // true
* } );
* myButton.fire( 'someEvent', null, myEditor );
*
* @property {CKEDITOR.editor} editor
*/
/**
* Any kind of additional data. Its format and usage is event dependent.
*
* someObject.on( 'someEvent', function( event ) {
* alert( event.data ); // 'Example'
* } );
* someObject.fire( 'someEvent', 'Example' );
*
* @property data
*/
/**
* Any extra data appended during the listener registration.
*
* someObject.on( 'someEvent', function( event ) {
* alert( event.listenerData ); // 'Example'
* }, null, 'Example' );
*
* @property listenerData
*/
/**
* Indicates that no further listeners are to be called.
*
* someObject.on( 'someEvent', function( event ) {
* event.stop();
* } );
* someObject.on( 'someEvent', function( event ) {
* // This one will not be called.
* } );
* alert( someObject.fire( 'someEvent' ) ); // false
*
* @method stop
*/
/**
* Indicates that the event is to be cancelled (if cancelable).
*
* someObject.on( 'someEvent', function( event ) {
* event.cancel();
* } );
* someObject.on( 'someEvent', function( event ) {
* // This one will not be called.
* } );
* alert( someObject.fire( 'someEvent' ) ); // true
*
* @method cancel
*/
/**
* Removes the current listener.
*
* someObject.on( 'someEvent', function( event ) {
* event.removeListener();
* // Now this function won't be called again by 'someEvent'.
* } );
*
* @method removeListener
*/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,271 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.focusManager} class, which is used
* to handle the focus on editor instances..
*/
( function() {
/**
* Manages the focus activity in an editor instance. This class is to be
* used mainly by UI elements coders when adding interface elements that need
* to set the focus state of the editor.
*
* var focusManager = new CKEDITOR.focusManager( editor );
* focusManager.focus();
*
* @class
* @constructor Creates a focusManager class instance.
* @param {CKEDITOR.editor} editor The editor instance.
*/
CKEDITOR.focusManager = function( editor ) {
if ( editor.focusManager )
return editor.focusManager;
/**
* Indicates that the editor instance has focus.
*
* alert( CKEDITOR.instances.editor1.focusManager.hasFocus ); // e.g. true
*/
this.hasFocus = false;
/**
* Indicate the currently focused DOM element that makes the editor activated.
*
* @property {CKEDITOR.dom.domObject}
*/
this.currentActive = null;
/**
* Object used to hold private stuff.
*
* @private
*/
this._ = {
editor: editor
};
return this;
};
var SLOT_NAME = 'focusmanager',
SLOT_NAME_LISTENERS = 'focusmanager_handlers';
/**
* Object used to hold private stuff.
*
* @private
* @class
* @singleton
*/
CKEDITOR.focusManager._ = {
/**
* The delay (in milliseconds) to deactivate the editor when UI dom element has lost focus.
*
* @private
* @property {Number} [blurDelay=200]
* @member CKEDITOR.focusManager._
*/
blurDelay: 200
};
CKEDITOR.focusManager.prototype = {
/**
* Indicate this editor instance is activated (due to DOM focus change),
* the `activated` state is a symbolic indicator of an active user
* interaction session.
*
* **Note:** This method will not introduce UI focus
* impact on DOM, it's here to record editor UI focus state internally.
* If you want to make the cursor blink inside of the editable, use
* {@link CKEDITOR.editor#method-focus} instead.
*
* var editor = CKEDITOR.instances.editor1;
* editor.focusManage.focus( editor.editable() );
*
* @param {CKEDITOR.dom.element} [currentActive] The new value of {@link #currentActive} property.
* @member CKEDITOR.focusManager
*/
focus: function( currentActive ) {
if ( this._.timer )
clearTimeout( this._.timer );
if ( currentActive )
this.currentActive = currentActive;
if ( !( this.hasFocus || this._.locked ) ) {
// If another editor has the current focus, we first "blur" it. In
// this way the events happen in a more logical sequence, like:
// "focus 1" > "blur 1" > "focus 2"
// ... instead of:
// "focus 1" > "focus 2" > "blur 1"
var current = CKEDITOR.currentInstance;
current && current.focusManager.blur( 1 );
this.hasFocus = true;
var ct = this._.editor.container;
ct && ct.addClass( 'cke_focus' );
this._.editor.fire( 'focus' );
}
},
/**
* Prevent from changing the focus manager state until next {@link #unlock} is called.
*
* @member CKEDITOR.focusManager
*/
lock: function() {
this._.locked = 1;
},
/**
* Restore the automatic focus management, if {@link #lock} is called.
*
* @member CKEDITOR.focusManager
*/
unlock: function() {
delete this._.locked;
},
/**
* Used to indicate that the editor instance has been deactivated by the specified
* element which has just lost focus.
*
* **Note:** that this functions acts asynchronously with a delay of 100ms to
* avoid temporary deactivation. Use instead the `noDelay` parameter
* to deactivate immediately.
*
* var editor = CKEDITOR.instances.editor1;
* editor.focusManager.blur();
*
* @param {Boolean} [noDelay=false] Deactivate immediately the editor instance synchronously.
* @member CKEDITOR.focusManager
*/
blur: function( noDelay ) {
if ( this._.locked )
return;
function doBlur() {
if ( this.hasFocus ) {
this.hasFocus = false;
var ct = this._.editor.container;
ct && ct.removeClass( 'cke_focus' );
this._.editor.fire( 'blur' );
}
}
if ( this._.timer )
clearTimeout( this._.timer );
var delay = CKEDITOR.focusManager._.blurDelay;
if ( noDelay || !delay )
doBlur.call( this );
else {
this._.timer = CKEDITOR.tools.setTimeout( function() {
delete this._.timer;
doBlur.call( this );
}, delay, this );
}
},
/**
* Register an UI DOM element to the focus manager, which will make the focus manager "hasFocus"
* once input focus is relieved on the element, it's to be used by plugins to expand the jurisdiction of the editor focus.
*
* @param {CKEDITOR.dom.element} element The container (top most) element of one UI part.
* @param {Boolean} isCapture If specified {@link CKEDITOR.event#useCapture} will be used when listening to the focus event.
* @member CKEDITOR.focusManager
*/
add: function( element, isCapture ) {
var fm = element.getCustomData( SLOT_NAME );
if ( !fm || fm != this ) {
// If this element is already taken by another instance, dismiss it first.
fm && fm.remove( element );
var focusEvent = 'focus',
blurEvent = 'blur';
// Bypass the element's internal DOM focus change.
if ( isCapture ) {
// Use "focusin/focusout" events instead of capture phase in IEs,
// which fires synchronously.
if ( CKEDITOR.env.ie ) {
focusEvent = 'focusin';
blurEvent = 'focusout';
} else
CKEDITOR.event.useCapture = 1;
}
var listeners = {
blur: function() {
if ( element.equals( this.currentActive ) )
this.blur();
},
focus: function() {
this.focus( element );
}
};
element.on( focusEvent, listeners.focus, this );
element.on( blurEvent, listeners.blur, this );
if ( isCapture )
CKEDITOR.event.useCapture = 0;
element.setCustomData( SLOT_NAME, this );
element.setCustomData( SLOT_NAME_LISTENERS, listeners );
}
},
/**
* Dismiss an element from the the focus manager delegations added by {@link #add}.
*
* @param {CKEDITOR.dom.element} element The element to be removed from the focusmanager.
* @member CKEDITOR.focusManager
*/
remove: function( element ) {
element.removeCustomData( SLOT_NAME );
var listeners = element.removeCustomData( SLOT_NAME_LISTENERS );
element.removeListener( 'blur', listeners.blur );
element.removeListener( 'focus', listeners.focus );
}
};
} )();
/**
* Fired when the editor instance receives the input focus.
*
* editor.on( 'focus', function( e ) {
* alert( 'The editor named ' + e.editor.name + ' is now focused' );
* } );
*
* @event focus
* @member CKEDITOR.editor
* @param {CKEDITOR.editor} editor The editor instance.
*/
/**
* Fired when the editor instance loses the input focus.
*
* **Note:** This event will **NOT** be triggered when focus is moved internally, e.g. from
* the editable to other part of the editor UI like dialog.
* If you're interested on only the editable focus state listen to the {@link CKEDITOR.editable#event-focus}
* and {@link CKEDITOR.editable#blur} events instead.
*
* editor.on( 'blur', function( e ) {
* alert( 'The editor named ' + e.editor.name + ' lost the focus' );
* } );
*
* @event blur
* @member CKEDITOR.editor
* @param {CKEDITOR.editor} editor The editor instance.
*/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,207 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* Provides an "event like" system to parse strings of HTML data.
*
* var parser = new CKEDITOR.htmlParser();
* parser.onTagOpen = function( tagName, attributes, selfClosing ) {
* alert( tagName );
* };
* parser.parse( '<p>Some <b>text</b>.</p>' ); // Alerts 'p', 'b'.
*
* @class
* @constructor Creates a htmlParser class instance.
*/
CKEDITOR.htmlParser = function() {
this._ = {
htmlPartsRegex: new RegExp( '<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:"[^"]*")|(?:\'[^\']*\')|[^"\'>])*)\\/?>))', 'g' )
};
};
( function() {
var attribsRegex = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,
emptyAttribs = { checked: 1, compact: 1, declare: 1, defer: 1, disabled: 1, ismap: 1, multiple: 1, nohref: 1, noresize: 1, noshade: 1, nowrap: 1, readonly: 1, selected: 1 };
CKEDITOR.htmlParser.prototype = {
/**
* Function to be fired when a tag opener is found. This function
* should be overriden when using this class.
*
* var parser = new CKEDITOR.htmlParser();
* parser.onTagOpen = function( tagName, attributes, selfClosing ) {
* alert( tagName ); // e.g. 'b'
* } );
* parser.parse( '<!-- Example --><b>Hello</b>' );
*
* @param {String} tagName The tag name. The name is guarantted to be lowercased.
* @param {Object} attributes An object containing all tag attributes. Each
* property in this object represent and attribute name and its value is the attribute value.
* @param {Boolean} selfClosing `true` if the tag closes itself, false if the tag doesn't.
*/
onTagOpen: function() {},
/**
* Function to be fired when a tag closer is found. This function
* should be overriden when using this class.
*
* var parser = new CKEDITOR.htmlParser();
* parser.onTagClose = function( tagName ) {
* alert( tagName ); // 'b'
* } );
* parser.parse( '<!-- Example --><b>Hello</b>' );
*
* @param {String} tagName The tag name. The name is guarantted to be lowercased.
*/
onTagClose: function() {},
/**
* Function to be fired when text is found. This function
* should be overriden when using this class.
*
* var parser = new CKEDITOR.htmlParser();
* parser.onText = function( text ) {
* alert( text ); // 'Hello'
* } );
* parser.parse( '<!-- Example --><b>Hello</b>' );
*
* @param {String} text The text found.
*/
onText: function() {},
/**
* Function to be fired when CDATA section is found. This function
* should be overriden when using this class.
*
* var parser = new CKEDITOR.htmlParser();
* parser.onCDATA = function( cdata ) {
* alert( cdata ); // 'var hello;'
* } );
* parser.parse( '<script>var hello;</script>' );
*
* @param {String} cdata The CDATA been found.
*/
onCDATA: function() {},
/**
* Function to be fired when a commend is found. This function
* should be overriden when using this class.
*
* var parser = new CKEDITOR.htmlParser();
* parser.onComment = function( comment ) {
* alert( comment ); // ' Example '
* } );
* parser.parse( '<!-- Example --><b>Hello</b>' );
*
* @param {String} comment The comment text.
*/
onComment: function() {},
/**
* Parses text, looking for HTML tokens, like tag openers or closers,
* or comments. This function fires the onTagOpen, onTagClose, onText
* and onComment function during its execution.
*
* var parser = new CKEDITOR.htmlParser();
* // The onTagOpen, onTagClose, onText and onComment should be overriden
* // at this point.
* parser.parse( '<!-- Example --><b>Hello</b>' );
*
* @param {String} html The HTML to be parsed.
*/
parse: function( html ) {
var parts, tagName,
nextIndex = 0,
cdata; // The collected data inside a CDATA section.
while ( ( parts = this._.htmlPartsRegex.exec( html ) ) ) {
var tagIndex = parts.index;
if ( tagIndex > nextIndex ) {
var text = html.substring( nextIndex, tagIndex );
if ( cdata )
cdata.push( text );
else
this.onText( text );
}
nextIndex = this._.htmlPartsRegex.lastIndex;
/*
"parts" is an array with the following items:
0 : The entire match for opening/closing tags and comments.
1 : Group filled with the tag name for closing tags.
2 : Group filled with the comment text.
3 : Group filled with the tag name for opening tags.
4 : Group filled with the attributes part of opening tags.
*/
// Closing tag
if ( ( tagName = parts[ 1 ] ) ) {
tagName = tagName.toLowerCase();
if ( cdata && CKEDITOR.dtd.$cdata[ tagName ] ) {
// Send the CDATA data.
this.onCDATA( cdata.join( '' ) );
cdata = null;
}
if ( !cdata ) {
this.onTagClose( tagName );
continue;
}
}
// If CDATA is enabled, just save the raw match.
if ( cdata ) {
cdata.push( parts[ 0 ] );
continue;
}
// Opening tag
if ( ( tagName = parts[ 3 ] ) ) {
tagName = tagName.toLowerCase();
// There are some tag names that can break things, so let's
// simply ignore them when parsing. (#5224)
if ( /="/.test( tagName ) )
continue;
var attribs = {},
attribMatch,
attribsPart = parts[ 4 ],
selfClosing = !!( attribsPart && attribsPart.charAt( attribsPart.length - 1 ) == '/' );
if ( attribsPart ) {
while ( ( attribMatch = attribsRegex.exec( attribsPart ) ) ) {
var attName = attribMatch[ 1 ].toLowerCase(),
attValue = attribMatch[ 2 ] || attribMatch[ 3 ] || attribMatch[ 4 ] || '';
if ( !attValue && emptyAttribs[ attName ] )
attribs[ attName ] = attName;
else
attribs[ attName ] = CKEDITOR.tools.htmlDecodeAttr( attValue );
}
}
this.onTagOpen( tagName, attribs, selfClosing );
// Open CDATA mode when finding the appropriate tags.
if ( !cdata && CKEDITOR.dtd.$cdata[ tagName ] )
cdata = [];
continue;
}
// Comment
if ( ( tagName = parts[ 2 ] ) )
this.onComment( tagName );
}
if ( html.length > nextIndex )
this.onText( html.substring( nextIndex, html.length ) );
}
};
} )();

View File

@ -0,0 +1,153 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* Controls keystrokes typing in an editor instance.
*
* @class
* @constructor Creates a keystrokeHandler class instance.
* @param {CKEDITOR.editor} editor The editor instance.
*/
CKEDITOR.keystrokeHandler = function( editor ) {
if ( editor.keystrokeHandler )
return editor.keystrokeHandler;
/**
* List of keystrokes associated to commands. Each entry points to the
* command to be executed.
*
* Since CKEditor 4 there's no need to modify this property directly during the runtime.
* Use {@link CKEDITOR.editor#setKeystroke} instead.
*/
this.keystrokes = {};
/**
* List of keystrokes that should be blocked if not defined at
* {@link #keystrokes}. In this way it is possible to block the default
* browser behavior for those keystrokes.
*/
this.blockedKeystrokes = {};
this._ = {
editor: editor
};
return this;
};
( function() {
var cancel;
var onKeyDown = function( event ) {
// The DOM event object is passed by the "data" property.
event = event.data;
var keyCombination = event.getKeystroke();
var command = this.keystrokes[ keyCombination ];
var editor = this._.editor;
cancel = ( editor.fire( 'key', { keyCode: keyCombination } ) === false );
if ( !cancel ) {
if ( command ) {
var data = { from: 'keystrokeHandler' };
cancel = ( editor.execCommand( command, data ) !== false );
}
if ( !cancel )
cancel = !!this.blockedKeystrokes[ keyCombination ];
}
if ( cancel )
event.preventDefault( true );
return !cancel;
};
var onKeyPress = function( event ) {
if ( cancel ) {
cancel = false;
event.data.preventDefault( true );
}
};
CKEDITOR.keystrokeHandler.prototype = {
/**
* Attaches this keystroke handle to a DOM object. Keystrokes typed
* over this object will get handled by this keystrokeHandler.
*
* @param {CKEDITOR.dom.domObject} domObject The DOM object to attach to.
*/
attach: function( domObject ) {
// For most browsers, it is enough to listen to the keydown event
// only.
domObject.on( 'keydown', onKeyDown, this );
// Some browsers instead, don't cancel key events in the keydown, but in the
// keypress. So we must do a longer trip in those cases.
if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
domObject.on( 'keypress', onKeyPress, this );
}
};
} )();
/**
* A list associating keystrokes to editor commands. Each element in the list
* is an array where the first item is the keystroke, and the second is the
* name of the command to be executed.
*
* This setting should be used to define (as well as to overwrite or remove) keystrokes
* set by plugins (like `link` and `basicstyles`). If you want to set a keystroke
* for your plugin or during the runtime, use {@link CKEDITOR.editor#setKeystroke} instead.
*
* Since default keystrokes are set by {@link CKEDITOR.editor#setKeystroke}
* method, by default `config.keystrokes` is an empty array.
*
* See {@link CKEDITOR.editor#setKeystroke} documentation for more details
* regarding the start up order.
*
* // Change default CTRL + L keystroke for 'link' command to CTRL + SHIFT + L.
* config.keystrokes = [
* ...
* [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 76, 'link' ], // CTRL + SHIFT + L
* ...
* ];
*
* To reset a particular keystroke, the following approach can be used:
*
* // Disable default CTRL + L keystroke which executes link command by default.
* config.keystrokes = [
* ...
* [ CKEDITOR.CTRL + 76, null ], // CTRL + L
* ...
* ];
*
* To reset all default keystrokes an {@link CKEDITOR#instanceReady} callback should be
* used. This is since editor defaults are merged rather than overwritten by
* user keystrokes.
*
* **Note**: This can be potentially harmful for an editor. Avoid this unless you're
* aware of the consequences.
*
* // Reset all default keystrokes.
* config.on.instanceReady = function() {
* this.keystrokeHandler.keystrokes = [];
* };
*
* @cfg {Array} [keystrokes=[]]
* @member CKEDITOR.config
*/
/**
* Fired when any keyboard key (or combination) is pressed into the editing area.
*
* @event key
* @member CKEDITOR.editor
* @param data
* @param {Number} data.keyCode A number representing the key code (or combination).
* It is the sum of the current key code and the {@link CKEDITOR#CTRL}, {@link CKEDITOR#SHIFT}
* and {@link CKEDITOR#ALT} constants, if those are pressed.
* @param {CKEDITOR.editor} editor This editor instance.
*/

View File

@ -0,0 +1,100 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
( function() {
var loadedLangs = {};
/**
* Stores language-related functions.
*
* @class
* @singleton
*/
CKEDITOR.lang = {
/**
* The list of languages available in the editor core.
*
* alert( CKEDITOR.lang.en ); // 1
*/
languages: { af: 1, ar: 1, bg: 1, bn: 1, bs: 1, ca: 1, cs: 1, cy: 1, da: 1, de: 1, el: 1,
'en-au': 1, 'en-ca': 1, 'en-gb': 1, en: 1, eo: 1, es: 1, et: 1, eu: 1, fa: 1, fi: 1, fo: 1,
'fr-ca': 1, fr: 1, gl: 1, gu: 1, he: 1, hi: 1, hr: 1, hu: 1, id: 1, is: 1, it: 1, ja: 1, ka: 1,
km: 1, ko: 1, ku: 1, lt: 1, lv: 1, mk: 1, mn: 1, ms: 1, nb: 1, nl: 1, no: 1, pl: 1, 'pt-br': 1,
pt: 1, ro: 1, ru: 1, si: 1, sk: 1, sl: 1, sq: 1, 'sr-latn': 1, sr: 1, sv: 1, th: 1, tr: 1, ug: 1,
uk: 1, vi: 1, 'zh-cn': 1, zh: 1 },
/**
* The list of languages that are written Right-To-Left (RTL) and are supported by the editor.
*/
rtl: { ar: 1, fa: 1, he: 1, ku: 1, ug: 1 },
/**
* Loads a specific language file, or auto detects it. A callback is
* then called when the file gets loaded.
*
* @param {String} languageCode The code of the language file to be
* loaded. If null or empty, autodetection will be performed. The
* same happens if the language is not supported.
* @param {String} defaultLanguage The language to be used if
* `languageCode` is not supported or if the autodetection fails.
* @param {Function} callback A function to be called once the
* language file is loaded. Two parameters are passed to this
* function: the language code and the loaded language entries.
*/
load: function( languageCode, defaultLanguage, callback ) {
// If no languageCode - fallback to browser or default.
// If languageCode - fallback to no-localized version or default.
if ( !languageCode || !CKEDITOR.lang.languages[ languageCode ] )
languageCode = this.detect( defaultLanguage, languageCode );
if ( !this[ languageCode ] ) {
CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( 'lang/' + languageCode + '.js' ), function() {
this[ languageCode ].dir = this.rtl[ languageCode ] ? 'rtl' : 'ltr';
callback( languageCode, this[ languageCode ] );
}, this );
} else
callback( languageCode, this[ languageCode ] );
},
/**
* Returns the language that best fits the user language. For example,
* suppose that the user language is "pt-br". If this language is
* supported by the editor, it is returned. Otherwise, if only "pt" is
* supported, it is returned instead. If none of the previous are
* supported, a default language is then returned.
*
* alert( CKEDITOR.lang.detect( 'en' ) ); // e.g., in a German browser: 'de'
*
* @param {String} defaultLanguage The default language to be returned
* if the user language is not supported.
* @param {String} [probeLanguage] A language code to try to use,
* instead of the browser-based autodetection.
* @returns {String} The detected language code.
*/
detect: function( defaultLanguage, probeLanguage ) {
var languages = this.languages;
probeLanguage = probeLanguage || navigator.userLanguage || navigator.language || defaultLanguage;
var parts = probeLanguage.toLowerCase().match( /([a-z]+)(?:-([a-z]+))?/ ),
lang = parts[ 1 ],
locale = parts[ 2 ];
if ( languages[ lang + '-' + locale ] )
lang = lang + '-' + locale;
else if ( !languages[ lang ] )
lang = null;
CKEDITOR.lang.detect = lang ?
function() {
return lang;
} : function( defaultLanguage ) {
return defaultLanguage;
};
return lang || defaultLanguage;
}
};
} )();

View File

@ -0,0 +1,247 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.loader} objects, which is used to
* load core scripts and their dependencies from _source.
*/
if ( typeof CKEDITOR == 'undefined' )
CKEDITOR = {};
if ( !CKEDITOR.loader ) {
/**
* Load core scripts and their dependencies from _source.
*
* @class
* @singleton
*/
CKEDITOR.loader = ( function() {
// Table of script names and their dependencies.
var scripts = {
'_bootstrap': [ 'config', 'creators/inline', 'creators/themedui', 'editable', 'ckeditor', 'plugins', 'scriptloader', 'style', 'tools', /* The following are entries that we want to force loading at the end to avoid dependence recursion */ 'dom/comment', 'dom/elementpath', 'dom/text', 'dom/rangelist', 'skin' ],
'ckeditor': [ 'ckeditor_basic', 'dom', 'dtd', 'dom/document', 'dom/element', 'dom/iterator', 'editor', 'event', 'htmldataprocessor', 'htmlparser', 'htmlparser/element', 'htmlparser/fragment', 'htmlparser/filter', 'htmlparser/basicwriter', 'template', 'tools' ],
'ckeditor_base': [],
'ckeditor_basic': [ 'editor_basic', 'env', 'event' ],
'command': [],
'config': [ 'ckeditor_base' ],
'dom': [],
'dom/comment': [ 'dom/node' ],
'dom/document': [ 'dom/node', 'dom/window' ],
'dom/documentfragment': [ 'dom/element' ],
'dom/element': [ 'dom', 'dom/document', 'dom/domobject', 'dom/node', 'dom/nodelist', 'tools' ],
'dom/elementpath': [ 'dom/element' ],
'dom/event': [],
'dom/iterator': [ 'dom/range' ],
'dom/node': [ 'dom/domobject', 'tools' ],
'dom/nodelist': [ 'dom/node' ],
'dom/domobject': [ 'dom/event' ],
'dom/range': [ 'dom/document', 'dom/documentfragment', 'dom/element', 'dom/walker' ],
'dom/rangelist': [ 'dom/range' ],
'dom/text': [ 'dom/node', 'dom/domobject' ],
'dom/walker': [ 'dom/node' ],
'dom/window': [ 'dom/domobject' ],
'dtd': [ 'tools' ],
'editable': [ 'editor', 'tools' ],
'editor': [ 'command', 'config', 'editor_basic', 'filter', 'focusmanager', 'keystrokehandler', 'lang', 'plugins', 'tools', 'ui' ],
'editor_basic': [ 'event' ],
'env': [],
'event': [],
'filter': [ 'dtd', 'tools' ],
'focusmanager': [],
'htmldataprocessor': [ 'htmlparser', 'htmlparser/basicwriter', 'htmlparser/fragment', 'htmlparser/filter' ],
'htmlparser': [],
'htmlparser/comment': [ 'htmlparser', 'htmlparser/node' ],
'htmlparser/element': [ 'htmlparser', 'htmlparser/fragment', 'htmlparser/node' ],
'htmlparser/fragment': [ 'htmlparser', 'htmlparser/comment', 'htmlparser/text', 'htmlparser/cdata' ],
'htmlparser/text': [ 'htmlparser', 'htmlparser/node' ],
'htmlparser/cdata': [ 'htmlparser', 'htmlparser/node' ],
'htmlparser/filter': [ 'htmlparser' ],
'htmlparser/basicwriter': [ 'htmlparser' ],
'htmlparser/node': [ 'htmlparser' ],
'keystrokehandler': [ 'event' ],
'lang': [],
'plugins': [ 'resourcemanager' ],
'resourcemanager': [ 'scriptloader', 'tools' ],
'scriptloader': [ 'dom/element', 'env' ],
'selection': [ 'dom/range', 'dom/walker' ],
'skin': [],
'style': [ 'selection' ],
'template': [],
'tools': [ 'env' ],
'ui': [],
'creators/themedui': [],
'creators/inline': []
};
var basePath = ( function() {
// This is a copy of CKEDITOR.basePath, but requires the script having
// "_source/loader.js".
if ( CKEDITOR && CKEDITOR.basePath )
return CKEDITOR.basePath;
// Find out the editor directory path, based on its <script> tag.
var path = '';
var scripts = document.getElementsByTagName( 'script' );
for ( var i = 0; i < scripts.length; i++ ) {
var match = scripts[ i ].src.match( /(^|.*?[\\\/])(?:_source\/)?core\/loader.js(?:\?.*)?$/i );
if ( match ) {
path = match[ 1 ];
break;
}
}
// In IE (only) the script.src string is the raw valued entered in the
// HTML. Other browsers return the full resolved URL instead.
if ( path.indexOf( '://' ) == -1 ) {
// Absolute path.
if ( path.indexOf( '/' ) === 0 )
path = location.href.match( /^.*?:\/\/[^\/]*/ )[ 0 ] + path;
// Relative path.
else
path = location.href.match( /^[^\?]*\// )[ 0 ] + path;
}
return path;
} )();
var timestamp = ( CKEDITOR && CKEDITOR.timestamp ) || ( new Date() ).valueOf(); // %REMOVE_LINE%
/* // %REMOVE_LINE%
* The production implementation contains a fixed timestamp // %REMOVE_LINE%
* generated by the releaser // %REMOVE_LINE%
var timestamp = '%TIMESTAMP%';
*/ // %REMOVE_LINE%
var getUrl = function( resource ) {
if ( CKEDITOR && CKEDITOR.getUrl )
return CKEDITOR.getUrl( resource );
return basePath + resource + ( resource.indexOf( '?' ) >= 0 ? '&' : '?' ) + 't=' + timestamp;
};
var pendingLoad = [];
return {
/**
* The list of loaded scripts in their loading order.
*
* // Alert the loaded script names.
* alert( CKEDITOR.loader.loadedScripts );
*/
loadedScripts: [],
/**
* Table of script names and their dependencies.
*
* @property {Array}
*/
scripts: scripts,
/**
* @todo
*/
loadPending: function() {
var scriptName = pendingLoad.shift();
if ( !scriptName )
return;
var scriptSrc = getUrl( 'core/' + scriptName + '.js' );
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = scriptSrc;
function onScriptLoaded() {
// Append this script to the list of loaded scripts.
CKEDITOR.loader.loadedScripts.push( scriptName );
// Load the next.
CKEDITOR.loader.loadPending();
}
// We must guarantee the execution order of the scripts, so we
// need to load them one by one. (#4145)
// The following if/else block has been taken from the scriptloader core code.
if ( typeof( script.onreadystatechange ) !== "undefined" ) {
/** @ignore */
script.onreadystatechange = function() {
if ( script.readyState == 'loaded' || script.readyState == 'complete' ) {
script.onreadystatechange = null;
onScriptLoaded();
}
};
} else {
/** @ignore */
script.onload = function() {
// Some browsers, such as Safari, may call the onLoad function
// immediately. Which will break the loading sequence. (#3661)
setTimeout( function() {
onScriptLoaded( scriptName );
}, 0 );
};
}
document.body.appendChild( script );
},
/**
* Loads a specific script, including its dependencies. This is not a
* synchronous loading, which means that the code to be loaded will
* not necessarily be available after this call.
*
* CKEDITOR.loader.load( 'dom/element' );
*
* @param {String} scriptName
* @param {Boolean} [defer=false]
* @todo params
*/
load: function( scriptName, defer ) {
// Check if the script has already been loaded.
if ( ( 's:' + scriptName ) in this.loadedScripts )
return;
// Get the script dependencies list.
var dependencies = scripts[ scriptName ];
if ( !dependencies )
throw 'The script name"' + scriptName + '" is not defined.';
// Mark the script as loaded, even before really loading it, to
// avoid cross references recursion.
// Prepend script name with 's:' to avoid conflict with Array's methods.
this.loadedScripts[ 's:' + scriptName ] = true;
// Load all dependencies first.
for ( var i = 0; i < dependencies.length; i++ )
this.load( dependencies[ i ], true );
var scriptSrc = getUrl( 'core/' + scriptName + '.js' );
// Append the <script> element to the DOM.
// If the page is fully loaded, we can't use document.write
// but if the script is run while the body is loading then it's safe to use it
// Unfortunately, Firefox <3.6 doesn't support document.readyState, so it won't get this improvement
if ( document.body && ( !document.readyState || document.readyState == 'complete' ) ) {
pendingLoad.push( scriptName );
if ( !defer )
this.loadPending();
} else {
// Append this script to the list of loaded scripts.
this.loadedScripts.push( scriptName );
document.write( '<script src="' + scriptSrc + '" type="text/javascript"><\/script>' );
}
}
};
} )();
}
// Check if any script has been defined for autoload.
if ( CKEDITOR._autoLoad ) {
CKEDITOR.loader.load( CKEDITOR._autoLoad );
delete CKEDITOR._autoLoad;
}

View File

@ -0,0 +1,96 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the "virtual" {@link CKEDITOR.pluginDefinition} class which
* contains the defintion of a plugin. This file is for documentation
* purposes only.
*/
/**
* Virtual class which just illustrates the features of plugin objects to be
* passed to the {@link CKEDITOR.plugins#add} method.
*
* This class is not really part of the API, so its constructor should not be called.
*
* @class CKEDITOR.pluginDefinition
* @abstract
*/
/**
* A list of plugins that are required by this plugin. Note that this property
* does not determine the loading order of the plugins.
*
* CKEDITOR.plugins.add( 'sample', {
* requires: [ 'button', 'selection' ]
* } );
*
* @property {Array} requires
*/
/**
* A list of language files available for this plugin. These files are stored inside
* the `lang` directory inside the plugin directory, follow the name
* pattern of `langCode.js`, and contain the language definition created with
* {@link CKEDITOR.plugins#setLang}.
*
* When the plugin is being loaded, the editor checks this list to see if
* a language file of the current editor language ({@link CKEDITOR.editor#langCode})
* is available, and if so, loads it. Otherwise, the file represented by the first item
* in the list is loaded.
*
* CKEDITOR.plugins.add( 'sample', {
* lang: [ 'en', 'fr' ]
* } );
*
* @property {Array} lang
*/
/**
* A function called on initialization of every editor instance created in the
* page before the {@link #init} call task. The `beforeInit` function will be called for
* all plugins, after that the `init` function is called for all of them. This
* feature makes it possible to initialize things that could be used in the
* `init` function of other plugins.
*
* CKEDITOR.plugins.add( 'sample', {
* beforeInit: function( editor ) {
* alert( 'Editor "' + editor.name + '" is to be initialized!' );
* }
* } );
*
* @method beforeInit
* @param {CKEDITOR.editor} editor The editor instance being initialized.
*/
/**
* Function called on initialization of every editor instance created in the page.
*
* CKEDITOR.plugins.add( 'sample', {
* init: function( editor ) {
* alert( 'Editor "' + editor.name + '" is being initialized!' );
* }
* } );
*
* @method init
* @param {CKEDITOR.editor} editor The editor instance being initialized.
*/
/**
* Announces the plugin as HiDPI-ready (optimized for high pixel density screens, e.g. *Retina*)
* by providing high-resolution icons and images. HiDPI icons must be twice as big
* (defaults are `16px x 16px`) and stored under `plugin_name/icons/hidpi/` directory.
*
* The common place for additional HiDPI images used by the plugin (**but not icons**)
* is `plugin_name/images/hidpi/` directory.
*
* This property is optional and only makes sense if `32px x 32px` icons
* and high-resolution images actually exist. If this flag is set `true`, the editor
* will automatically detect the HiDPI environment and attempt to load the
* high-resolution resources.
*
* @since 4.2
* @property {Boolean} hidpi
*/

View File

@ -0,0 +1,119 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.plugins} object, which is used to
* manage plugins registration and loading.
*/
/**
* Manages plugins registration and loading.
*
* @class
* @extends CKEDITOR.resourceManager
* @singleton
*/
CKEDITOR.plugins = new CKEDITOR.resourceManager( 'plugins/', 'plugin' );
// PACKAGER_RENAME( CKEDITOR.plugins )
CKEDITOR.plugins.load = CKEDITOR.tools.override( CKEDITOR.plugins.load, function( originalLoad ) {
var initialized = {};
return function( name, callback, scope ) {
var allPlugins = {};
var loadPlugins = function( names ) {
originalLoad.call( this, names, function( plugins ) {
CKEDITOR.tools.extend( allPlugins, plugins );
var requiredPlugins = [];
for ( var pluginName in plugins ) {
var plugin = plugins[ pluginName ],
requires = plugin && plugin.requires;
if ( !initialized[ pluginName ] ) {
// Register all icons eventually defined by this plugin.
if ( plugin.icons ) {
var icons = plugin.icons.split( ',' );
for ( var ic = icons.length; ic--; ) {
CKEDITOR.skin.addIcon( icons[ ic ],
plugin.path +
'icons/' +
( CKEDITOR.env.hidpi && plugin.hidpi ? 'hidpi/' : '' ) +
icons[ ic ] +
'.png' );
}
}
initialized[ pluginName ] = 1;
}
if ( requires ) {
// Trasnform it into an array, if it's not one.
if ( requires.split )
requires = requires.split( ',' );
for ( var i = 0; i < requires.length; i++ ) {
if ( !allPlugins[ requires[ i ] ] )
requiredPlugins.push( requires[ i ] );
}
}
}
if ( requiredPlugins.length )
loadPlugins.call( this, requiredPlugins );
else {
// Call the "onLoad" function for all plugins.
for ( pluginName in allPlugins ) {
plugin = allPlugins[ pluginName ];
if ( plugin.onLoad && !plugin.onLoad._called ) {
// Make it possible to return false from plugin::onLoad to disable it.
if ( plugin.onLoad() === false )
delete allPlugins[ pluginName ];
plugin.onLoad._called = 1;
}
}
// Call the callback.
if ( callback )
callback.call( scope || window, allPlugins );
}
}, this );
};
loadPlugins.call( this, name );
};
} );
/**
* Loads a specific language file, or auto detect it. A callback is
* then called when the file gets loaded.
*
* CKEDITOR.plugins.setLang( 'myPlugin', 'en', {
* title: 'My plugin',
* selectOption: 'Please select an option'
* } );
*
* @param {String} pluginName The name of the plugin to which the provided translation
* should be attached.
* @param {String} languageCode The code of the language translation provided.
* @param {Object} languageEntries An object that contains pairs of label and
* the respective translation.
*/
CKEDITOR.plugins.setLang = function( pluginName, languageCode, languageEntries ) {
var plugin = this.get( pluginName ),
pluginLangEntries = plugin.langEntries || ( plugin.langEntries = {} ),
pluginLang = plugin.lang || ( plugin.lang = [] );
if ( pluginLang.split )
pluginLang = pluginLang.split( ',' );
if ( CKEDITOR.tools.indexOf( pluginLang, languageCode ) == -1 )
pluginLang.push( languageCode );
pluginLangEntries[ languageCode ] = languageEntries;
};

View File

@ -0,0 +1,227 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.resourceManager} class, which is
* the base for resource managers, like plugins.
*/
/**
* Base class for resource managers, like plugins. This class is not
* intended to be used out of the CKEditor core code.
*
* @class
* @constructor Creates a resourceManager class instance.
* @param {String} basePath The path for the resources folder.
* @param {String} fileName The name used for resource files.
*/
CKEDITOR.resourceManager = function( basePath, fileName ) {
/**
* The base directory containing all resources.
*
* @property {String}
*/
this.basePath = basePath;
/**
* The name used for resource files.
*
* @property {String}
*/
this.fileName = fileName;
/**
* Contains references to all resources that have already been registered
* with {@link #add}.
*/
this.registered = {};
/**
* Contains references to all resources that have already been loaded
* with {@link #load}.
*/
this.loaded = {};
/**
* Contains references to all resources that have already been registered
* with {@link #addExternal}.
*/
this.externals = {};
/**
* @private
*/
this._ = {
// List of callbacks waiting for plugins to be loaded.
waitingList: {}
};
};
CKEDITOR.resourceManager.prototype = {
/**
* Registers a resource.
*
* CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
*
* @param {String} name The resource name.
* @param {Object} [definition] The resource definition.
* @see CKEDITOR.pluginDefinition
*/
add: function( name, definition ) {
if ( this.registered[ name ] )
throw '[CKEDITOR.resourceManager.add] The resource name "' + name + '" is already registered.';
var resource = this.registered[ name ] = definition || {};
resource.name = name;
resource.path = this.getPath( name );
CKEDITOR.fire( name + CKEDITOR.tools.capitalize( this.fileName ) + 'Ready', resource );
return this.get( name );
},
/**
* Gets the definition of a specific resource.
*
* var definition = CKEDITOR.plugins.get( 'sample' );
*
* @param {String} name The resource name.
* @returns {Object} The registered object.
*/
get: function( name ) {
return this.registered[ name ] || null;
},
/**
* Get the folder path for a specific loaded resource.
*
* alert( CKEDITOR.plugins.getPath( 'sample' ) ); // '<editor path>/plugins/sample/'
*
* @param {String} name The resource name.
* @returns {String}
*/
getPath: function( name ) {
var external = this.externals[ name ];
return CKEDITOR.getUrl( ( external && external.dir ) || this.basePath + name + '/' );
},
/**
* Get the file path for a specific loaded resource.
*
* alert( CKEDITOR.plugins.getFilePath( 'sample' ) ); // '<editor path>/plugins/sample/plugin.js'
*
* @param {String} name The resource name.
* @returns {String}
*/
getFilePath: function( name ) {
var external = this.externals[ name ];
return CKEDITOR.getUrl( this.getPath( name ) + ( external ? external.file : this.fileName + '.js' ) );
},
/**
* Registers one or more resources to be loaded from an external path
* instead of the core base path.
*
* // Loads a plugin from '/myplugin/samples/plugin.js'.
* CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
*
* // Loads a plugin from '/myplugin/samples/my_plugin.js'.
* CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/', 'my_plugin.js' );
*
* // Loads a plugin from '/myplugin/samples/my_plugin.js'.
* CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/my_plugin.js', '' );
*
* @param {String} names The resource names, separated by commas.
* @param {String} path The path of the folder containing the resource.
* @param {String} [fileName] The resource file name. If not provided, the
* default name is used. If provided with a empty string, will implicitly indicates that `path` argument
* is already the full path.
*/
addExternal: function( names, path, fileName ) {
names = names.split( ',' );
for ( var i = 0; i < names.length; i++ ) {
var name = names[ i ];
// If "fileName" is not provided, we assume that it may be available
// in "path". Try to extract it in this case.
if ( !fileName ) {
path = path.replace( /[^\/]+$/, function( match ) {
fileName = match;
return '';
} );
}
this.externals[ name ] = {
dir: path,
// Use the default file name if there is no "fileName" and it
// was not found in "path".
file: fileName || ( this.fileName + '.js' )
};
}
},
/**
* Loads one or more resources.
*
* CKEDITOR.plugins.load( 'myplugin', function( plugins ) {
* alert( plugins[ 'myplugin' ] ); // object
* } );
*
* @param {String/Array} name The name of the resource to load. It may be a
* string with a single resource name, or an array with several names.
* @param {Function} callback A function to be called when all resources
* are loaded. The callback will receive an array containing all loaded names.
* @param {Object} [scope] The scope object to be used for the callback call.
*/
load: function( names, callback, scope ) {
// Ensure that we have an array of names.
if ( !CKEDITOR.tools.isArray( names ) )
names = names ? [ names ] : [];
var loaded = this.loaded,
registered = this.registered,
urls = [],
urlsNames = {},
resources = {};
// Loop through all names.
for ( var i = 0; i < names.length; i++ ) {
var name = names[ i ];
if ( !name )
continue;
// If not available yet.
if ( !loaded[ name ] && !registered[ name ] ) {
var url = this.getFilePath( name );
urls.push( url );
if ( !( url in urlsNames ) )
urlsNames[ url ] = [];
urlsNames[ url ].push( name );
} else
resources[ name ] = this.get( name );
}
CKEDITOR.scriptLoader.load( urls, function( completed, failed ) {
if ( failed.length ) {
throw '[CKEDITOR.resourceManager.load] Resource name "' + urlsNames[ failed[ 0 ] ].join( ',' )
+ '" was not found at "' + failed[ 0 ] + '".';
}
for ( var i = 0; i < completed.length; i++ ) {
var nameList = urlsNames[ completed[ i ] ];
for ( var j = 0; j < nameList.length; j++ ) {
var name = nameList[ j ];
resources[ name ] = this.get( name );
loaded[ name ] = 1;
}
}
callback.call( scope, resources );
}, this );
}
};

View File

@ -0,0 +1,202 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.scriptLoader} object, used to load scripts
* asynchronously.
*/
/**
* Load scripts asynchronously.
*
* @class
* @singleton
*/
CKEDITOR.scriptLoader = ( function() {
var uniqueScripts = {},
waitingList = {};
return {
/**
* Loads one or more external script checking if not already loaded
* previously by this function.
*
* CKEDITOR.scriptLoader.load( '/myscript.js' );
*
* CKEDITOR.scriptLoader.load( '/myscript.js', function( success ) {
* // Alerts true if the script has been properly loaded.
* // HTTP error 404 should return false.
* alert( success );
* } );
*
* CKEDITOR.scriptLoader.load( [ '/myscript1.js', '/myscript2.js' ], function( completed, failed ) {
* alert( 'Number of scripts loaded: ' + completed.length );
* alert( 'Number of failures: ' + failed.length );
* } );
*
* @param {String/Array} scriptUrl One or more URLs pointing to the
* scripts to be loaded.
* @param {Function} [callback] A function to be called when the script
* is loaded and executed. If a string is passed to `scriptUrl`, a
* boolean parameter is passed to the callback, indicating the
* success of the load. If an array is passed instead, two arrays
* parameters are passed to the callback - the first contains the
* URLs that have been properly loaded and the second the failed ones.
* @param {Object} [scope] The scope (`this` reference) to be used for
* the callback call. Defaults to {@link CKEDITOR}.
* @param {Boolean} [showBusy] Changes the cursor of the document while
* the script is loaded.
*/
load: function( scriptUrl, callback, scope, showBusy ) {
var isString = ( typeof scriptUrl == 'string' );
if ( isString )
scriptUrl = [ scriptUrl ];
if ( !scope )
scope = CKEDITOR;
var scriptCount = scriptUrl.length,
completed = [],
failed = [];
var doCallback = function( success ) {
if ( callback ) {
if ( isString )
callback.call( scope, success );
else
callback.call( scope, completed, failed );
}
};
if ( scriptCount === 0 ) {
doCallback( true );
return;
}
var checkLoaded = function( url, success ) {
( success ? completed : failed ).push( url );
if ( --scriptCount <= 0 ) {
showBusy && CKEDITOR.document.getDocumentElement().removeStyle( 'cursor' );
doCallback( success );
}
};
var onLoad = function( url, success ) {
// Mark this script as loaded.
uniqueScripts[ url ] = 1;
// Get the list of callback checks waiting for this file.
var waitingInfo = waitingList[ url ];
delete waitingList[ url ];
// Check all callbacks waiting for this file.
for ( var i = 0; i < waitingInfo.length; i++ )
waitingInfo[ i ]( url, success );
};
var loadScript = function( url ) {
if ( uniqueScripts[ url ] ) {
checkLoaded( url, true );
return;
}
var waitingInfo = waitingList[ url ] || ( waitingList[ url ] = [] );
waitingInfo.push( checkLoaded );
// Load it only for the first request.
if ( waitingInfo.length > 1 )
return;
// Create the <script> element.
var script = new CKEDITOR.dom.element( 'script' );
script.setAttributes( {
type: 'text/javascript',
src: url } );
if ( callback ) {
if ( CKEDITOR.env.ie && CKEDITOR.env.version < 11 ) {
// FIXME: For IE, we are not able to return false on error (like 404).
script.$.onreadystatechange = function() {
if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' ) {
script.$.onreadystatechange = null;
onLoad( url, true );
}
};
} else {
script.$.onload = function() {
// Some browsers, such as Safari, may call the onLoad function
// immediately. Which will break the loading sequence. (#3661)
setTimeout( function() {
onLoad( url, true );
}, 0 );
};
// FIXME: Opera and Safari will not fire onerror.
script.$.onerror = function() {
onLoad( url, false );
};
}
}
// Append it to <head>.
script.appendTo( CKEDITOR.document.getHead() );
CKEDITOR.fire( 'download', url ); // %REMOVE_LINE%
};
showBusy && CKEDITOR.document.getDocumentElement().setStyle( 'cursor', 'wait' );
for ( var i = 0; i < scriptCount; i++ ) {
loadScript( scriptUrl[ i ] );
}
},
/**
* Loads a script in a queue, so only one is loaded at the same time.
*
* @since 4.1.2
* @param {String} scriptUrl URL pointing to the script to be loaded.
* @param {Function} [callback] A function to be called when the script
* is loaded and executed. A boolean parameter is passed to the callback,
* indicating the success of the load.
*
* @see CKEDITOR.scriptLoader#load
*/
queue: ( function() {
var pending = [];
// Loads the very first script from queue and removes it.
function loadNext() {
var script;
if ( ( script = pending[ 0 ] ) )
this.load( script.scriptUrl, script.callback, CKEDITOR, 0 );
}
return function( scriptUrl, callback ) {
var that = this;
// This callback calls the standard callback for the script
// and loads the very next script from pending list.
function callbackWrapper() {
callback && callback.apply( this, arguments );
// Removed the just loaded script from the queue.
pending.shift();
loadNext.call( that );
}
// Let's add this script to the queue
pending.push( { scriptUrl: scriptUrl, callback: callbackWrapper } );
// If the queue was empty, then start loading.
if ( pending.length == 1 )
loadNext.call( this );
};
} )()
};
} )();

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,335 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.skin} class that is used to manage skin parts.
*/
( function() {
var cssLoaded = {};
function getName() {
return CKEDITOR.skinName.split( ',' )[ 0 ];
}
function getConfigPath() {
return CKEDITOR.getUrl( CKEDITOR.skinName.split( ',' )[ 1 ] || ( 'skins/' + getName() + '/' ) );
}
/**
* Manages the loading of skin parts among all editor instances.
*
* @class
* @singleton
*/
CKEDITOR.skin = {
/**
* Returns the root path to the skin directory.
*
* @method
* @todo
*/
path: getConfigPath,
/**
* Loads a skin part into the page. Does nothing if the part has already been loaded.
*
* **Note:** The "editor" part is always auto loaded upon instance creation,
* thus this function is mainly used to **lazy load** other parts of the skin
* that do not have to be displayed until requested.
*
* // Load the dialog part.
* editor.skin.loadPart( 'dialog' );
*
* @param {String} part The name of the skin part CSS file that resides in the skin directory.
* @param {Function} fn The provided callback function which is invoked after the part is loaded.
*/
loadPart: function( part, fn ) {
if ( CKEDITOR.skin.name != getName() ) {
CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( getConfigPath() + 'skin.js' ), function() {
loadCss( part, fn );
} );
} else
loadCss( part, fn );
},
/**
* Retrieves the real URL of a (CSS) skin part.
*
* @param {String} part
*/
getPath: function( part ) {
return CKEDITOR.getUrl( getCssPath( part ) );
},
/**
* The list of registered icons. To add new icons to this list, use {@link #addIcon}.
*/
icons: {},
/**
* Registers an icon.
*
* @param {String} name The icon name.
* @param {String} path The path to the icon image file.
* @param {Number} [offset] The vertical offset position of the icon, if
* available inside a strip image.
* @param {String} [bgsize] The value of the CSS "background-size" property to
* use for this icon
*/
addIcon: function( name, path, offset, bgsize ) {
name = name.toLowerCase();
if ( !this.icons[ name ] ) {
this.icons[ name ] = {
path: path,
offset: offset || 0,
bgsize : bgsize || '16px'
};
}
},
/**
* Gets the CSS background styles to be used to render a specific icon.
*
* @param {String} name The icon name, as registered with {@link #addIcon}.
* @param {Boolean} [rtl] Indicates that the RTL version of the icon is
* to be used, if available.
* @param {String} [overridePath] The path to the icon image file. It
* overrides the path defined by the named icon, if available, and is
* used if the named icon was not registered.
* @param {Number} [overrideOffset] The vertical offset position of the
* icon. It overrides the offset defined by the named icon, if
* available, and is used if the named icon was not registered.
* @param {String} [overrideBgsize] The value of the CSS "background-size" property
* to use for the icon. It overrides the value defined by the named icon,
* if available, and is used if the named icon was not registered.
*/
getIconStyle: function( name, rtl, overridePath, overrideOffset, overrideBgsize ) {
var icon, path, offset, bgsize;
if ( name ) {
name = name.toLowerCase();
// If we're in RTL, try to get the RTL version of the icon.
if ( rtl )
icon = this.icons[ name + '-rtl' ];
// If not in LTR or no RTL version available, get the generic one.
if ( !icon )
icon = this.icons[ name ];
}
path = overridePath || ( icon && icon.path ) || '';
offset = overrideOffset || ( icon && icon.offset );
bgsize = overrideBgsize || ( icon && icon.bgsize ) || '16px';
return path &&
( 'background-image:url(' + CKEDITOR.getUrl( path ) + ');background-position:0 ' + offset + 'px;background-size:' + bgsize + ';' );
}
};
function getCssPath( part ) {
// Check for ua-specific version of skin part.
var uas = CKEDITOR.skin[ 'ua_' + part ], env = CKEDITOR.env;
if ( uas ) {
// Having versioned UA checked first.
uas = uas.split( ',' ).sort( function( a, b ) { return a > b ? -1 : 1; } );
// Loop through all ua entries, checking is any of them match the current ua.
for ( var i = 0, ua; i < uas.length; i++ ) {
ua = uas[ i ];
if ( env.ie ) {
if ( ( ua.replace( /^ie/, '' ) == env.version ) || ( env.quirks && ua == 'iequirks' ) )
ua = 'ie';
}
if ( env[ ua ] ) {
part += '_' + uas[ i ];
break;
}
}
}
return CKEDITOR.getUrl( getConfigPath() + part + '.css' );
}
function loadCss( part, callback ) {
// Avoid reload.
if ( !cssLoaded[ part ] ) {
CKEDITOR.document.appendStyleSheet( getCssPath( part ) );
cssLoaded[ part ] = 1;
}
// CSS loading should not be blocking.
callback && callback();
}
CKEDITOR.tools.extend( CKEDITOR.editor.prototype, {
/** Gets the color of the editor user interface.
*
* CKEDITOR.instances.editor1.getUiColor();
*
* @method
* @member CKEDITOR.editor
* @returns {String} uiColor The editor UI color or `undefined` if the UI color is not set.
*/
getUiColor: function() {
return this.uiColor;
},
/** Sets the color of the editor user interface. This method accepts a color value in
* hexadecimal notation, with a `#` character (e.g. #ffffff).
*
* CKEDITOR.instances.editor1.setUiColor( '#ff00ff' );
*
* @method
* @member CKEDITOR.editor
* @param {String} color The desired editor UI color in hexadecimal notation.
*/
setUiColor: function( color ) {
var uiStyle = getStylesheet( CKEDITOR.document );
return ( this.setUiColor = function( color ) {
var chameleon = CKEDITOR.skin.chameleon;
var replace = [ [ uiColorRegexp, color ] ];
this.uiColor = color;
// Update general style.
updateStylesheets( [ uiStyle ], chameleon( this, 'editor' ), replace );
// Update panel styles.
updateStylesheets( uiColorMenus, chameleon( this, 'panel' ), replace );
} ).call( this, color );
}
} );
var uiColorStylesheetId = 'cke_ui_color',
uiColorMenus = [],
uiColorRegexp = /\$color/g;
function getStylesheet( document ) {
var node = document.getById( uiColorStylesheetId );
if ( !node ) {
node = document.getHead().append( 'style' );
node.setAttribute( "id", uiColorStylesheetId );
node.setAttribute( "type", "text/css" );
}
return node;
}
function updateStylesheets( styleNodes, styleContent, replace ) {
var r, i, content;
// We have to split CSS declarations for webkit.
if ( CKEDITOR.env.webkit ) {
styleContent = styleContent.split( '}' ).slice( 0, -1 );
for ( i = 0; i < styleContent.length; i++ )
styleContent[ i ] = styleContent[ i ].split( '{' );
}
for ( var id = 0; id < styleNodes.length; id++ ) {
if ( CKEDITOR.env.webkit ) {
for ( i = 0; i < styleContent.length; i++ ) {
content = styleContent[ i ][ 1 ];
for ( r = 0; r < replace.length; r++ )
content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
styleNodes[ id ].$.sheet.addRule( styleContent[ i ][ 0 ], content );
}
} else {
content = styleContent;
for ( r = 0; r < replace.length; r++ )
content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
if ( CKEDITOR.env.ie && CKEDITOR.env.version < 11 )
styleNodes[ id ].$.styleSheet.cssText += content;
else
styleNodes[ id ].$.innerHTML += content;
}
}
}
CKEDITOR.on( 'instanceLoaded', function( evt ) {
// The chameleon feature is not for IE quirks.
if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )
return;
var editor = evt.editor,
showCallback = function( event ) {
var panel = event.data[ 0 ] || event.data;
var iframe = panel.element.getElementsByTag( 'iframe' ).getItem( 0 ).getFrameDocument();
// Add stylesheet if missing.
if ( !iframe.getById( 'cke_ui_color' ) ) {
var node = getStylesheet( iframe );
uiColorMenus.push( node );
var color = editor.getUiColor();
// Set uiColor for new panel.
if ( color )
updateStylesheets( [ node ], CKEDITOR.skin.chameleon( editor, 'panel' ), [ [ uiColorRegexp, color ] ] );
}
};
editor.on( 'panelShow', showCallback );
editor.on( 'menuShow', showCallback );
// Apply UI color if specified in config.
if ( editor.config.uiColor )
editor.setUiColor( editor.config.uiColor );
} );
} )();
/**
* The list of file names matching the browser user agent string from
* {@link CKEDITOR.env}. This is used to load the skin part file in addition
* to the "main" skin file for a particular browser.
*
* **Note:** For each of the defined skin parts the corresponding
* CSS file with the same name as the user agent must exist inside
* the skin directory.
*
* @property ua
* @todo type?
*/
/**
* The name of the skin that is currently used.
*
* @property {String} name
* @todo
*/
/**
* The editor skin name. Note that it is not possible to have editors with
* different skin settings in the same page. In such case just one of the
* skins will be used for all editors.
*
* This is a shortcut to {@link CKEDITOR#skinName}.
*
* It is possible to install skins outside the default `skin` folder in the
* editor installation. In that case, the absolute URL path to that folder
* should be provided, separated by a comma (`'skin_name,skin_path'`).
*
* config.skin = 'moono';
*
* config.skin = 'myskin,/customstuff/myskin/';
*
* @cfg {String} skin
* @member CKEDITOR.config
*/
/**
* A function that supports the chameleon (skin color switch) feature, providing
* the skin color style updates to be applied in runtime.
*
* **Note:** The embedded `$color` variable is to be substituted with a specific UI color.
*
* @method chameleon
* @param {String} editor The editor instance that the color changes apply to.
* @param {String} part The name of the skin part where the color changes take place.
*/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.template} class, which represents
* an UI template for an editor instance.
*/
( function() {
var cache = {},
rePlaceholder = /{([^}]+)}/g,
reQuote = /'/g,
reEscapableChars = /([\\'])/g,
reNewLine = /\n/g,
reCarriageReturn = /\r/g;
/**
* Lightweight template used to build the output string from variables.
*
* // HTML template for presenting a label UI.
* var tpl = new CKEDITOR.template( '<div class="{cls}">{label}</div>' );
* alert( tpl.output( { cls: 'cke-label', label: 'foo'} ) ); // '<div class="cke-label">foo</div>'
*
* @class
* @constructor Creates a template class instance.
* @param {String} source The template source.
*/
CKEDITOR.template = function( source ) {
// Builds an optimized function body for the output() method, focused on performance.
// For example, if we have this "source":
// '<div style="{style}">{editorName}</div>'
// ... the resulting function body will be (apart from the "buffer" handling):
// return [ '<div style="', data['style'] == undefined ? '{style}' : data['style'], '">', data['editorName'] == undefined ? '{editorName}' : data['editorName'], '</div>' ].join('');
// Try to read from the cache.
if ( cache[ source ] )
this.output = cache[ source ];
else {
var fn = source
// Escape chars like slash "\" or single quote "'".
.replace( reEscapableChars, '\\$1' )
.replace( reNewLine, '\\n' )
.replace( reCarriageReturn, '\\r' )
// Inject the template keys replacement.
.replace( rePlaceholder, function( m, key ) {
return "',data['" + key + "']==undefined?'{" + key + "}':data['" + key + "'],'";
} );
fn = "return buffer?buffer.push('" + fn + "'):['" + fn + "'].join('');";
this.output = cache[ source ] = Function( 'data', 'buffer', fn );
}
};
} )();
/**
* Processes the template, filling its variables with the provided data.
*
* @method output
* @param {Object} data An object containing properties which values will be
* used to fill the template variables. The property names must match the
* template variables names. Variables without matching properties will be
* kept untouched.
* @param {Array} [buffer] An array into which the output data will be pushed into.
* The number of entries appended to the array is unknown.
* @returns {String/Number} If `buffer` has not been provided, the processed
* template output data, otherwise the new length of `buffer`.
*/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,168 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* Contains UI features related to an editor instance.
*
* @class
* @mixins CKEDITOR.event
* @constructor Creates an ui class instance.
* @param {CKEDITOR.editor} editor The editor instance.
*/
CKEDITOR.ui = function( editor ) {
if ( editor.ui )
return editor.ui;
this.items = {};
this.instances = {};
this.editor = editor;
/**
* Object used to hold private stuff.
*
* @private
*/
this._ = {
handlers: {}
};
return this;
};
// PACKAGER_RENAME( CKEDITOR.ui )
CKEDITOR.ui.prototype = {
/**
* Adds a UI item to the items collection. These items can be later used in
* the interface.
*
* // Add a new button named 'MyBold'.
* editorInstance.ui.add( 'MyBold', CKEDITOR.UI_BUTTON, {
* label: 'My Bold',
* command: 'bold'
* } );
*
* @param {String} name The UI item name.
* @param {Object} type The item type.
* @param {Object} definition The item definition. The properties of this
* object depend on the item type.
*/
add: function( name, type, definition ) {
// Compensate the unique name of this ui item to definition.
definition.name = name.toLowerCase();
var item = this.items[ name ] = {
type: type,
// The name of {@link CKEDITOR.command} which associate with this UI.
command: definition.command || null,
args: Array.prototype.slice.call( arguments, 2 )
};
CKEDITOR.tools.extend( item, definition );
},
/**
* Retrieve the created ui objects by name.
*
* @param {String} name The name of the UI definition.
*/
get: function( name ) {
return this.instances[ name ];
},
/**
* Gets a UI object.
*
* @param {String} name The UI item hame.
* @returns {Object} The UI element.
*/
create: function( name ) {
var item = this.items[ name ],
handler = item && this._.handlers[ item.type ],
command = item && item.command && this.editor.getCommand( item.command );
var result = handler && handler.create.apply( this, item.args );
this.instances[ name ] = result;
// Add reference inside command object.
if ( command )
command.uiItems.push( result );
if ( result && !result.type )
result.type = item.type;
return result;
},
/**
* Adds a handler for a UI item type. The handler is responsible for
* transforming UI item definitions in UI objects.
*
* @param {Object} type The item type.
* @param {Object} handler The handler definition.
*/
addHandler: function( type, handler ) {
this._.handlers[ type ] = handler;
},
/**
* Returns the unique DOM element that represents one editor's UI part, as
* the editor UI is made completely decoupled from DOM (no DOM reference hold),
* this method is mainly used to retrieve the rendered DOM part by name.
*
* // Hide the bottom space in the UI.
* var bottom = editor.ui.getSpace( 'bottom' );
* bottom.setStyle( 'display', 'none' );
*
* @param {String} name The space name.
* @returns {CKEDITOR.dom.element} The element that represents the space.
*/
space: function( name ) {
return CKEDITOR.document.getById( this.spaceId( name ) );
},
/**
* Generate the HTML ID from a specific UI space name.
*
* @param name
* @todo param and return types?
*/
spaceId: function( name ) {
return this.editor.id + '_' + name;
}
};
CKEDITOR.event.implementOn( CKEDITOR.ui );
/**
* Internal event fired when a new UI element is ready.
*
* @event ready
* @param {Object} data The new element.
*/
/**
* Virtual class which just illustrates the features of handler objects to be
* passed to the {@link CKEDITOR.ui#addHandler} function.
* This class is not really part of the API, so don't call its constructor.
*
* @class CKEDITOR.ui.handlerDefinition
*/
/**
* Transforms an item definition into an UI item object.
*
* editorInstance.ui.addHandler( CKEDITOR.UI_BUTTON, {
* create: function( definition ) {
* return new CKEDITOR.ui.button( definition );
* }
* } );
*
* @method create
* @param {Object} definition The item definition.
* @returns {Object} The UI element.
* @todo We lack the "UI element" abstract super class.
*/

View File

@ -0,0 +1,63 @@
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
af.js Found: 62 Missing: 4
ar.js Found: 51 Missing: 15
bg.js Found: 58 Missing: 8
bn.js Found: 40 Missing: 26
bs.js Found: 29 Missing: 37
ca.js Found: 61 Missing: 5
cs.js Found: 66 Missing: 0
cy.js Found: 66 Missing: 0
da.js Found: 66 Missing: 0
de.js Found: 66 Missing: 0
el.js Found: 59 Missing: 7
en-au.js Found: 38 Missing: 28
en-ca.js Found: 37 Missing: 29
en-gb.js Found: 61 Missing: 5
eo.js Found: 66 Missing: 0
es.js Found: 66 Missing: 0
et.js Found: 66 Missing: 0
eu.js Found: 48 Missing: 18
fa.js Found: 66 Missing: 0
fi.js Found: 66 Missing: 0
fo.js Found: 66 Missing: 0
fr-ca.js Found: 42 Missing: 24
fr.js Found: 66 Missing: 0
gl.js Found: 40 Missing: 26
gu.js Found: 66 Missing: 0
he.js Found: 66 Missing: 0
hi.js Found: 43 Missing: 23
hr.js Found: 66 Missing: 0
hu.js Found: 63 Missing: 3
is.js Found: 41 Missing: 25
it.js Found: 66 Missing: 0
ja.js Found: 62 Missing: 4
ka.js Found: 62 Missing: 4
km.js Found: 40 Missing: 26
ko.js Found: 40 Missing: 26
lt.js Found: 66 Missing: 0
lv.js Found: 40 Missing: 26
mk.js Found: 0 Missing: 66
mn.js Found: 40 Missing: 26
ms.js Found: 39 Missing: 27
nb.js Found: 66 Missing: 0
nl.js Found: 65 Missing: 1
no.js Found: 66 Missing: 0
pl.js Found: 66 Missing: 0
pt-br.js Found: 66 Missing: 0
pt.js Found: 52 Missing: 14
ro.js Found: 61 Missing: 5
ru.js Found: 66 Missing: 0
sk.js Found: 49 Missing: 17
sl.js Found: 48 Missing: 18
sr-latn.js Found: 40 Missing: 26
sr.js Found: 40 Missing: 26
sv.js Found: 62 Missing: 4
th.js Found: 40 Missing: 26
tr.js Found: 66 Missing: 0
ug.js Found: 66 Missing: 0
uk.js Found: 66 Missing: 0
vi.js Found: 66 Missing: 0
zh-cn.js Found: 66 Missing: 0
zh.js Found: 58 Missing: 8

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Afrikaans language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'af' ] = {
// ARIA description.
editor: 'Teksverwerker',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Druk op ALT 0 vir hulp',
browseServer: 'Blaai op bediener',
url: 'URL',
protocol: 'Protokol',
upload: 'Oplaai',
uploadSubmit: 'Stuur na bediener',
image: 'Afbeelding',
flash: 'Flash',
form: 'Vorm',
checkbox: 'Merkhokkie',
radio: 'Radioknoppie',
textField: 'Teksveld',
textarea: 'Teks-area',
hiddenField: 'Blinde veld',
button: 'Knop',
select: 'Keuseveld',
imageButton: 'Afbeeldingsknop',
notSet: '<geen instelling>',
id: 'Id',
name: 'Naam',
langDir: 'Skryfrigting',
langDirLtr: 'Links na regs (LTR)',
langDirRtl: 'Regs na links (RTL)',
langCode: 'Taalkode',
longDescr: 'Lang beskrywing URL',
cssClass: 'CSS klasse',
advisoryTitle: 'Aanbevole titel',
cssStyle: 'Styl',
ok: 'OK',
cancel: 'Kanselleer',
close: 'Sluit',
preview: 'Voorbeeld',
resize: 'Sleep om te herskaal',
generalTab: 'Algemeen',
advancedTab: 'Gevorderd',
validateNumberFailed: 'Hierdie waarde is nie \'n getal nie.',
confirmNewPage: 'Alle wysiginge sal verlore gaan. Is u seker dat u \'n nuwe bladsy wil laai?',
confirmCancel: 'Sommige opsies is gewysig. Is u seker dat u hierdie dialoogvenster wil sluit?',
options: 'Opsies',
target: 'Doel',
targetNew: 'Nuwe venster (_blank)',
targetTop: 'Boonste venster (_top)',
targetSelf: 'Selfde venster (_self)',
targetParent: 'Oorspronklike venster (_parent)',
langDirLTR: 'Links na Regs (LTR)',
langDirRTL: 'Regs na Links (RTL)',
styles: 'Styl',
cssClasses: 'CSS klasse',
width: 'Breedte',
height: 'Hoogte',
align: 'Oplyn',
alignLeft: 'Links',
alignRight: 'Regs',
alignCenter: 'Sentreer',
alignTop: 'Bo',
alignMiddle: 'Middel',
alignBottom: 'Onder',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Hoogte moet \'n getal wees',
invalidWidth: 'Breedte moet \'n getal wees.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nie beskikbaar nie</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Arabic language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ar' ] = {
// ARIA description.
editor: 'محرر النص الغني',
editorPanel: 'لائحة محرر النص المنسق',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'إضغط على ALT + 0 للحصول على المساعدة.',
browseServer: 'تصفح',
url: 'الرابط',
protocol: 'البروتوكول',
upload: 'رفع',
uploadSubmit: 'أرسل',
image: 'صورة',
flash: 'فلاش',
form: 'نموذج',
checkbox: 'خانة إختيار',
radio: 'زر اختيار',
textField: 'مربع نص',
textarea: 'مساحة نصية',
hiddenField: 'إدراج حقل خفي',
button: 'زر ضغط',
select: 'اختار',
imageButton: 'زر صورة',
notSet: '<بدون تحديد>',
id: 'الرقم',
name: 'إسم',
langDir: 'إتجاه النص',
langDirLtr: 'اليسار لليمين (LTR)',
langDirRtl: 'اليمين لليسار (RTL)',
langCode: 'رمز اللغة',
longDescr: 'الوصف التفصيلى',
cssClass: 'فئات التنسيق',
advisoryTitle: 'عنوان التقرير',
cssStyle: 'نمط',
ok: 'موافق',
cancel: 'إلغاء الأمر',
close: 'أغلق',
preview: 'استعراض',
resize: 'تغيير الحجم',
generalTab: 'عام',
advancedTab: 'متقدم',
validateNumberFailed: 'لايوجد نتيجة',
confirmNewPage: 'ستفقد أي متغييرات اذا لم تقم بحفظها اولا. هل أنت متأكد أنك تريد صفحة جديدة؟',
confirmCancel: 'بعض الخيارات قد تغيرت. هل أنت متأكد من إغلاق مربع النص؟',
options: 'خيارات',
target: 'هدف الرابط',
targetNew: 'نافذة جديدة',
targetTop: 'النافذة الأعلى',
targetSelf: 'داخل النافذة',
targetParent: 'النافذة الأم',
langDirLTR: 'اليسار لليمين (LTR)',
langDirRTL: 'اليمين لليسار (RTL)',
styles: 'نمط',
cssClasses: 'فئات التنسيق',
width: 'العرض',
height: 'الإرتفاع',
align: 'محاذاة',
alignLeft: 'يسار',
alignRight: 'يمين',
alignCenter: 'وسط',
alignTop: 'أعلى',
alignMiddle: 'وسط',
alignBottom: 'أسفل',
invalidValue : 'قيمة غير مفبولة.',
invalidHeight: 'الارتفاع يجب أن يكون عدداً.',
invalidWidth: 'العرض يجب أن يكون عدداً.',
invalidCssLength: 'قيمة الخانة المخصصة لـ "%1" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة CSS قياس مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).',
invalidHtmlLength: 'قيمة الخانة المخصصة لـ "%1" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة HTML قياس مقبولة (px or %).',
invalidInlineStyle: 'قيمة الخانة المخصصة لـ Inline Style يجب أن تختوي على مجموع واحد أو أكثر بالشكل التالي: "name : value", مفصولة بفاصلة منقزطة.',
cssLengthTooltip: 'أدخل رقما للقيمة بالبكسل أو رقما بوحدة CSS مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, غير متاح</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Bulgarian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'bg' ] = {
// ARIA description.
editor: 'Текстов редактор за форматиран текст',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'натиснете ALT 0 за помощ',
browseServer: 'Избор от сървъра',
url: 'URL',
protocol: 'Протокол',
upload: 'Качване',
uploadSubmit: 'Изпращане към сървъра',
image: 'Снимка',
flash: 'Флаш',
form: 'Форма',
checkbox: 'Поле за избор',
radio: 'Радио бутон',
textField: 'Текстово поле',
textarea: 'Текстова зона',
hiddenField: 'Скрито поле',
button: 'Бутон',
select: 'Поле за избор',
imageButton: 'Бутон за снимка',
notSet: '<не е избрано>',
id: 'ID',
name: 'Име',
langDir: 'Посока на езика',
langDirLtr: 'Ляво на дясно (ЛнД)',
langDirRtl: 'Дясно на ляво (ДнЛ)',
langCode: 'Код на езика',
longDescr: 'Уеб адрес за дълго описание',
cssClass: 'Класове за CSS',
advisoryTitle: 'Препоръчително заглавие',
cssStyle: 'Стил',
ok: 'ОК',
cancel: 'Отказ',
close: 'Затвори',
preview: 'Преглед',
resize: 'Влачете за да оразмерите',
generalTab: 'Общи',
advancedTab: 'Разширено',
validateNumberFailed: 'Тази стойност не е число',
confirmNewPage: 'Всички незапазени промени ще бъдат изгубени. Сигурни ли сте, че желаете да заредите нова страница?',
confirmCancel: 'Някои от опциите са променени. Сигурни ли сте, че желаете да затворите прозореца?',
options: 'Опции',
target: 'Цел',
targetNew: 'Нов прозорец (_blank)',
targetTop: 'Горна позиция (_top)',
targetSelf: 'Текущия прозорец (_self)',
targetParent: 'Основен прозорец (_parent)',
langDirLTR: 'Ляво на дясно (ЛнД)',
langDirRTL: 'Дясно на ляво (ДнЛ)',
styles: 'Стил',
cssClasses: 'Класове за CSS',
width: 'Ширина',
height: 'Височина',
align: 'Подравняване',
alignLeft: 'Ляво',
alignRight: 'Дясно',
alignCenter: 'Център',
alignTop: 'Горе',
alignMiddle: 'По средата',
alignBottom: 'Долу',
invalidValue : 'Невалидна стойност.',
invalidHeight: 'Височината трябва да е число.',
invalidWidth: 'Ширина требе да е число.',
invalidCssLength: 'Стойността на полето "%1" трябва да бъде положително число с или без валидна CSS измервателна единица (px, %, in, cm, mm, em, ex, pt, или pc).',
invalidHtmlLength: 'Стойността на полето "%1" трябва да бъде положително число с или без валидна HTML измервателна единица (px или %).',
invalidInlineStyle: 'Стойността на стилa трябва да съдържат една или повече двойки във формат "name : value", разделени с двоеточие.',
cssLengthTooltip: 'Въведете числена стойност в пиксели или друга валидна CSS единица (px, %, in, cm, mm, em, ex, pt, или pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, недостъпно</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Bengali/Bangla language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'bn' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'ব্রাউজ সার্ভার',
url: 'URL',
protocol: 'প্রোটোকল',
upload: 'আপলোড',
uploadSubmit: 'ইহাকে সার্ভারে প্রেরন কর',
image: 'ছবির লেবেল যুক্ত কর',
flash: 'ফ্লাশ লেবেল যুক্ত কর',
form: 'ফর্ম',
checkbox: 'চেক বাক্স',
radio: 'রেডিও বাটন',
textField: 'টেক্সট ফীল্ড',
textarea: 'টেক্সট এরিয়া',
hiddenField: 'গুপ্ত ফীল্ড',
button: 'বাটন',
select: 'বাছাই ফীল্ড',
imageButton: 'ছবির বাটন',
notSet: '<সেট নেই>',
id: 'আইডি',
name: 'নাম',
langDir: 'ভাষা লেখার দিক',
langDirLtr: 'বাম থেকে ডান (LTR)',
langDirRtl: 'ডান থেকে বাম (RTL)',
langCode: 'ভাষা কোড',
longDescr: 'URL এর লম্বা বর্ণনা',
cssClass: 'স্টাইল-শীট ক্লাস',
advisoryTitle: 'পরামর্শ শীর্ষক',
cssStyle: 'স্টাইল',
ok: 'ওকে',
cancel: 'বাতিল',
close: 'Close', // MISSING
preview: 'প্রিভিউ',
resize: 'Resize', // MISSING
generalTab: 'General', // MISSING
advancedTab: 'এডভান্সড',
validateNumberFailed: 'This value is not a number.', // MISSING
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Options', // MISSING
target: 'টার্গেট',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'বাম থেকে ডান (LTR)',
langDirRTL: 'ডান থেকে বাম (RTL)',
styles: 'স্টাইল',
cssClasses: 'স্টাইল-শীট ক্লাস',
width: 'প্রস্থ',
height: 'দৈর্ঘ্য',
align: 'এলাইন',
alignLeft: 'বামে',
alignRight: 'ডানে',
alignCenter: 'মাঝখানে',
alignTop: 'উপর',
alignMiddle: 'মধ্য',
alignBottom: 'নীচে',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Bosnian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'bs' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Browse Server', // MISSING
url: 'URL',
protocol: 'Protokol',
upload: 'Šalji',
uploadSubmit: 'Šalji na server',
image: 'Slika',
flash: 'Flash', // MISSING
form: 'Form', // MISSING
checkbox: 'Checkbox', // MISSING
radio: 'Radio Button', // MISSING
textField: 'Text Field', // MISSING
textarea: 'Textarea', // MISSING
hiddenField: 'Hidden Field', // MISSING
button: 'Button',
select: 'Selection Field', // MISSING
imageButton: 'Image Button', // MISSING
notSet: '<nije podešeno>',
id: 'Id',
name: 'Naziv',
langDir: 'Smjer pisanja',
langDirLtr: 'S lijeva na desno (LTR)',
langDirRtl: 'S desna na lijevo (RTL)',
langCode: 'Jezièni kôd',
longDescr: 'Dugaèki opis URL-a',
cssClass: 'Klase CSS stilova',
advisoryTitle: 'Advisory title',
cssStyle: 'Stil',
ok: 'OK',
cancel: 'Odustani',
close: 'Close', // MISSING
preview: 'Prikaži',
resize: 'Resize', // MISSING
generalTab: 'General', // MISSING
advancedTab: 'Naprednije',
validateNumberFailed: 'This value is not a number.', // MISSING
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Options', // MISSING
target: 'Prozor',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'S lijeva na desno (LTR)',
langDirRTL: 'S desna na lijevo (RTL)',
styles: 'Stil',
cssClasses: 'Klase CSS stilova',
width: 'Širina',
height: 'Visina',
align: 'Poravnanje',
alignLeft: 'Lijevo',
alignRight: 'Desno',
alignCenter: 'Centar',
alignTop: 'Vrh',
alignMiddle: 'Sredina',
alignBottom: 'Dno',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Catalan language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ca' ] = {
// ARIA description.
editor: 'Editor de text enriquit',
editorPanel: 'Panell de l\'editor de text enriquit',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Premeu ALT 0 per ajuda',
browseServer: 'Veure servidor',
url: 'URL',
protocol: 'Protocol',
upload: 'Puja',
uploadSubmit: 'Envia-la al servidor',
image: 'Imatge',
flash: 'Flash',
form: 'Formulari',
checkbox: 'Casella de verificació',
radio: 'Botó d\'opció',
textField: 'Camp de text',
textarea: 'Àrea de text',
hiddenField: 'Camp ocult',
button: 'Botó',
select: 'Camp de selecció',
imageButton: 'Botó d\'imatge',
notSet: '<no definit>',
id: 'Id',
name: 'Nom',
langDir: 'Direcció de l\'idioma',
langDirLtr: 'D\'esquerra a dreta (LTR)',
langDirRtl: 'De dreta a esquerra (RTL)',
langCode: 'Codi d\'idioma',
longDescr: 'Descripció llarga de la URL',
cssClass: 'Classes del full d\'estil',
advisoryTitle: 'Títol consultiu',
cssStyle: 'Estil',
ok: 'D\'acord',
cancel: 'Cancel·la',
close: 'Tanca',
preview: 'Previsualitza',
resize: 'Arrossegueu per redimensionar',
generalTab: 'General',
advancedTab: 'Avançat',
validateNumberFailed: 'Aquest valor no és un número.',
confirmNewPage: 'Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pàgina nova?',
confirmCancel: 'Algunes opcions s\'han canviat. Esteu segur que voleu tancar el quadre de diàleg?',
options: 'Opcions',
target: 'Destí',
targetNew: 'Nova finestra (_blank)',
targetTop: 'Finestra superior (_top)',
targetSelf: 'Mateixa finestra (_self)',
targetParent: 'Finestra pare (_parent)',
langDirLTR: 'D\'esquerra a dreta (LTR)',
langDirRTL: 'De dreta a esquerra (RTL)',
styles: 'Estil',
cssClasses: 'Classes del full d\'estil',
width: 'Amplada',
height: 'Alçada',
align: 'Alineació',
alignLeft: 'Ajusta a l\'esquerra',
alignRight: 'Ajusta a la dreta',
alignCenter: 'Centre',
alignTop: 'Superior',
alignMiddle: 'Centre',
alignBottom: 'Inferior',
invalidValue : 'Valor no vàlid.',
invalidHeight: 'L\'alçada ha de ser un número.',
invalidWidth: 'L\'amplada ha de ser un número.',
invalidCssLength: 'El valor especificat per als "%1" camps ha de ser un número positiu amb o sense unitat de mesura vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
invalidHtmlLength: 'El valor especificat per als "%1" camps ha de ser un número positiu amb o sense unitat de mesura vàlida d\'HTML (px o %).',
invalidInlineStyle: 'El valor especificat per l\'estil en línia ha de constar d\'una o més tuples amb el format "name: value", separats per punt i coma.',
cssLengthTooltip: 'Introduïu un número per un valor en píxels o un número amb una unitat vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Czech language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'cs' ] = {
// ARIA description.
editor: 'Textový editor',
editorPanel: 'Panel textového editoru',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Stiskněte ALT 0 pro nápovědu',
browseServer: 'Vybrat na serveru',
url: 'URL',
protocol: 'Protokol',
upload: 'Odeslat',
uploadSubmit: 'Odeslat na server',
image: 'Obrázek',
flash: 'Flash',
form: 'Formulář',
checkbox: 'Zaškrtávací políčko',
radio: 'Přepínač',
textField: 'Textové pole',
textarea: 'Textová oblast',
hiddenField: 'Skryté pole',
button: 'Tlačítko',
select: 'Seznam',
imageButton: 'Obrázkové tlačítko',
notSet: '<nenastaveno>',
id: 'Id',
name: 'Jméno',
langDir: 'Směr jazyka',
langDirLtr: 'Zleva doprava (LTR)',
langDirRtl: 'Zprava doleva (RTL)',
langCode: 'Kód jazyka',
longDescr: 'Dlouhý popis URL',
cssClass: 'Třída stylu',
advisoryTitle: 'Pomocný titulek',
cssStyle: 'Styl',
ok: 'OK',
cancel: 'Zrušit',
close: 'Zavřít',
preview: 'Náhled',
resize: 'Uchopit pro změnu velikosti',
generalTab: 'Obecné',
advancedTab: 'Rozšířené',
validateNumberFailed: 'Zadaná hodnota není číselná.',
confirmNewPage: 'Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chcete otevřít novou stránku?',
confirmCancel: 'Některá z nastavení byla změněna. Skutečně chcete zavřít dialogové okno?',
options: 'Nastavení',
target: 'Cíl',
targetNew: 'Nové okno (_blank)',
targetTop: 'Okno nejvyšší úrovně (_top)',
targetSelf: 'Stejné okno (_self)',
targetParent: 'Rodičovské okno (_parent)',
langDirLTR: 'Zleva doprava (LTR)',
langDirRTL: 'Zprava doleva (RTL)',
styles: 'Styly',
cssClasses: 'Třídy stylů',
width: 'Šířka',
height: 'Výška',
align: 'Zarovnání',
alignLeft: 'Vlevo',
alignRight: 'Vpravo',
alignCenter: 'Na střed',
alignTop: 'Nahoru',
alignMiddle: 'Na střed',
alignBottom: 'Dolů',
invalidValue : 'Neplatná hodnota.',
invalidHeight: 'Zadaná výška musí být číslo.',
invalidWidth: 'Šířka musí být číslo.',
invalidCssLength: 'Hodnota určená pro pole "%1" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).',
invalidHtmlLength: 'Hodnota určená pro pole "%1" musí být kladné číslo bez nebo s platnou jednotkou míry HTML (px nebo %).',
invalidInlineStyle: 'Hodnota určená pro řádkový styl se musí skládat z jedné nebo více n-tic ve formátu "název : hodnota", oddělené středníky',
cssLengthTooltip: 'Zadejte číslo jako hodnotu v pixelech nebo číslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nedostupné</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Welsh language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'cy' ] = {
// ARIA description.
editor: 'Golygydd Testun Cyfoethog',
editorPanel: 'Panel Golygydd Testun Cyfoethog',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Gwasgwch ALT 0 am gymorth',
browseServer: 'Pori\'r Gweinydd',
url: 'URL',
protocol: 'Protocol',
upload: 'Lanlwytho',
uploadSubmit: 'Anfon i\'r Gweinydd',
image: 'Delwedd',
flash: 'Flash',
form: 'Ffurflen',
checkbox: 'Blwch ticio',
radio: 'Botwm Radio',
textField: 'Maes Testun',
textarea: 'Ardal Testun',
hiddenField: 'Maes Cudd',
button: 'Botwm',
select: 'Maes Dewis',
imageButton: 'Botwm Delwedd',
notSet: '<heb osod>',
id: 'Id',
name: 'Name',
langDir: 'Cyfeiriad Iaith',
langDirLtr: 'Chwith i\'r Dde (LTR)',
langDirRtl: 'Dde i\'r Chwith (RTL)',
langCode: 'Cod Iaith',
longDescr: 'URL Disgrifiad Hir',
cssClass: 'Dosbarthiadau Dalen Arddull',
advisoryTitle: 'Teitl Cynghorol',
cssStyle: 'Arddull',
ok: 'Iawn',
cancel: 'Diddymu',
close: 'Cau',
preview: 'Rhagolwg',
resize: 'Ailfeintio',
generalTab: 'Cyffredinol',
advancedTab: 'Uwch',
validateNumberFailed: '\'Dyw\'r gwerth hwn ddim yn rhif.',
confirmNewPage: 'Byddwch chi\'n colli unrhyw newidiadau i\'r cynnwys sydd heb eu cadw. Ydych am barhau i lwytho tudalen newydd?',
confirmCancel: 'Cafodd rhai o\'r opsiynau eu newid. Ydych chi wir am gau\'r deialog?',
options: 'Opsiynau',
target: 'Targed',
targetNew: 'Ffenest Newydd (_blank)',
targetTop: 'Ffenest ar y Brig (_top)',
targetSelf: 'Yr un Ffenest (_self)',
targetParent: 'Ffenest y Rhiant (_parent)',
langDirLTR: 'Chwith i\'r Dde (LTR)',
langDirRTL: 'Dde i\'r Chwith (RTL)',
styles: 'Arddull',
cssClasses: 'Dosbarthiadau Dalen Arddull',
width: 'Lled',
height: 'Uchder',
align: 'Alinio',
alignLeft: 'Chwith',
alignRight: 'Dde',
alignCenter: 'Canol',
alignTop: 'Brig',
alignMiddle: 'Canol',
alignBottom: 'Gwaelod',
invalidValue : 'Gwerth annilys.',
invalidHeight: 'Mae\'n rhaid i\'r uchder fod yn rhif.',
invalidWidth: 'Mae\'n rhaid i\'r lled fod yn rhif.',
invalidCssLength: 'Mae\'n rhaid i\'r gwerth ar gyfer maes "%1" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).',
invalidHtmlLength: 'Mae\'n rhaid i\'r gwerth ar gyfer maes "%1" fod yn rhif positif gyda neu heb uned fesuriad HTML dilys (px neu %).',
invalidInlineStyle: 'Mae\'n rhaid i\'r gwerth ar gyfer arddull mewn-llinell gynnwys un set neu fwy ar y fformat "enw : gwerth", wedi\'u gwahanu gyda hanner colon.',
cssLengthTooltip: 'Rhowch rif am werth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, ddim ar gael</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Danish language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'da' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Tryk ALT 0 for hjælp',
browseServer: 'Gennemse...',
url: 'URL',
protocol: 'Protokol',
upload: 'Upload',
uploadSubmit: 'Upload',
image: 'Indsæt billede',
flash: 'Indsæt Flash',
form: 'Indsæt formular',
checkbox: 'Indsæt afkrydsningsfelt',
radio: 'Indsæt alternativknap',
textField: 'Indsæt tekstfelt',
textarea: 'Indsæt tekstboks',
hiddenField: 'Indsæt skjult felt',
button: 'Indsæt knap',
select: 'Indsæt liste',
imageButton: 'Indsæt billedknap',
notSet: '<intet valgt>',
id: 'Id',
name: 'Navn',
langDir: 'Tekstretning',
langDirLtr: 'Fra venstre mod højre (LTR)',
langDirRtl: 'Fra højre mod venstre (RTL)',
langCode: 'Sprogkode',
longDescr: 'Udvidet beskrivelse',
cssClass: 'Typografiark (CSS)',
advisoryTitle: 'Titel',
cssStyle: 'Typografi (CSS)',
ok: 'OK',
cancel: 'Annullér',
close: 'Luk',
preview: 'Forhåndsvisning',
resize: 'Træk for at skalere',
generalTab: 'Generelt',
advancedTab: 'Avanceret',
validateNumberFailed: 'Værdien er ikke et tal.',
confirmNewPage: 'Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?',
confirmCancel: 'Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?',
options: 'Vis muligheder',
target: 'Mål',
targetNew: 'Nyt vindue (_blank)',
targetTop: 'Øverste vindue (_top)',
targetSelf: 'Samme vindue (_self)',
targetParent: 'Samme vindue (_parent)',
langDirLTR: 'Venstre til højre (LTR)',
langDirRTL: 'Højre til venstre (RTL)',
styles: 'Style',
cssClasses: 'Stylesheetklasser',
width: 'Bredde',
height: 'Højde',
align: 'Justering',
alignLeft: 'Venstre',
alignRight: 'Højre',
alignCenter: 'Centreret',
alignTop: 'Øverst',
alignMiddle: 'Centreret',
alignBottom: 'Nederst',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Højde skal være et tal.',
invalidWidth: 'Bredde skal være et tal.',
invalidCssLength: 'Værdien specificeret for "%1" feltet skal være et positivt nummer med eller uden en CSS måleenhed (px, %, in, cm, mm, em, ex, pt, eller pc).',
invalidHtmlLength: 'Værdien specificeret for "%1" feltet skal være et positivt nummer med eller uden en CSS måleenhed (px eller %).',
invalidInlineStyle: 'Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som "name:value", separeret af semikoloner',
cssLengthTooltip: 'Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, ikke tilgængelig</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* German language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'de' ] = {
// ARIA description.
editor: 'WYSIWYG-Editor',
editorPanel: 'WYSIWYG-Editor-Leiste',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Drücken Sie ALT 0 für Hilfe',
browseServer: 'Server durchsuchen',
url: 'URL',
protocol: 'Protokoll',
upload: 'Hochladen',
uploadSubmit: 'Zum Server senden',
image: 'Bild',
flash: 'Flash',
form: 'Formular',
checkbox: 'Checkbox',
radio: 'Radiobutton',
textField: 'Textfeld einzeilig',
textarea: 'Textfeld mehrzeilig',
hiddenField: 'Verstecktes Feld',
button: 'Klickbutton',
select: 'Auswahlfeld',
imageButton: 'Bildbutton',
notSet: '<nichts>',
id: 'ID',
name: 'Name',
langDir: 'Schreibrichtung',
langDirLtr: 'Links nach Rechts (LTR)',
langDirRtl: 'Rechts nach Links (RTL)',
langCode: 'Sprachenkürzel',
longDescr: 'Langform URL',
cssClass: 'Stylesheet Klasse',
advisoryTitle: 'Titel Beschreibung',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Abbrechen',
close: 'Schließen',
preview: 'Vorschau',
resize: 'Zum Vergrößern ziehen',
generalTab: 'Allgemein',
advancedTab: 'Erweitert',
validateNumberFailed: 'Dieser Wert ist keine Nummer.',
confirmNewPage: 'Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?',
confirmCancel: 'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?',
options: 'Optionen',
target: 'Zielseite',
targetNew: 'Neues Fenster (_blank)',
targetTop: 'Oberstes Fenster (_top)',
targetSelf: 'Gleiches Fenster (_self)',
targetParent: 'Oberes Fenster (_parent)',
langDirLTR: 'Links nach Rechts (LNR)',
langDirRTL: 'Rechts nach Links (RNL)',
styles: 'Style',
cssClasses: 'Stylesheet Klasse',
width: 'Breite',
height: 'Höhe',
align: 'Ausrichtung',
alignLeft: 'Links',
alignRight: 'Rechts',
alignCenter: 'Zentriert',
alignTop: 'Oben',
alignMiddle: 'Mitte',
alignBottom: 'Unten',
invalidValue : 'Ungültiger Wert.',
invalidHeight: 'Höhe muss eine Zahl sein.',
invalidWidth: 'Breite muss eine Zahl sein.',
invalidCssLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
invalidHtmlLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).',
invalidInlineStyle: 'Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format "Name : Wert" getrennt mit Semikolons.',
cssLengthTooltip: 'Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Greek language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'el' ] = {
// ARIA description.
editor: 'Επεξεργαστής Πλούσιου Κειμένου',
editorPanel: 'Πίνακας Επεξεργαστή Πλούσιου Κειμένου',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Πατήστε το ALT 0 για βοήθεια',
browseServer: 'Εξερεύνηση Διακομιστή',
url: 'URL',
protocol: 'Πρωτόκολλο',
upload: 'Αποστολή',
uploadSubmit: 'Αποστολή στον Διακομιστή',
image: 'Εικόνα',
flash: 'Flash',
form: 'Φόρμα',
checkbox: 'Κουτί Επιλογής',
radio: 'Κουμπί Επιλογής',
textField: 'Πεδίο Κειμένου',
textarea: 'Περιοχή Κειμένου',
hiddenField: 'Κρυφό Πεδίο',
button: 'Κουμπί',
select: 'Πεδίο Επιλογής',
imageButton: 'Κουμπί Εικόνας',
notSet: '<δεν έχει ρυθμιστεί>',
id: 'Id',
name: 'Όνομα',
langDir: 'Κατεύθυνση Κειμένου',
langDirLtr: 'Αριστερά προς Δεξιά (LTR)',
langDirRtl: 'Δεξιά προς Αριστερά (RTL)',
langCode: 'Κωδικός Γλώσσας',
longDescr: 'Αναλυτική Περιγραφή URL',
cssClass: 'Κλάσεις Φύλλων Στυλ',
advisoryTitle: 'Ενδεικτικός Τίτλος',
cssStyle: 'Μορφή Κειμένου',
ok: 'OK',
cancel: 'Ακύρωση',
close: 'Κλείσιμο',
preview: 'Προεπισκόπηση',
resize: 'Αλλαγή Μεγέθους',
generalTab: 'Γενικά',
advancedTab: 'Για Προχωρημένους',
validateNumberFailed: 'Αυτή η τιμή δεν είναι αριθμός.',
confirmNewPage: 'Οι όποιες αλλαγές στο περιεχόμενο θα χαθούν. Είσαστε σίγουροι ότι θέλετε να φορτώσετε μια νέα σελίδα;',
confirmCancel: 'Μερικές επιλογές έχουν αλλάξει. Είσαστε σίγουροι ότι θέλετε να κλείσετε το παράθυρο διαλόγου;',
options: 'Επιλογές',
target: 'Προορισμός',
targetNew: 'Νέο Παράθυρο (_blank)',
targetTop: 'Αρχική Περιοχή (_top)',
targetSelf: 'Ίδιο Παράθυρο (_self)',
targetParent: 'Γονεϊκό Παράθυρο (_parent)',
langDirLTR: 'Αριστερά προς Δεξιά (LTR)',
langDirRTL: 'Δεξιά προς Αριστερά (RTL)',
styles: 'Μορφή',
cssClasses: 'Κλάσεις Φύλλων Στυλ',
width: 'Πλάτος',
height: 'Ύψος',
align: 'Στοίχιση',
alignLeft: 'Αριστερά',
alignRight: 'Δεξιά',
alignCenter: 'Κέντρο',
alignTop: 'Πάνω',
alignMiddle: 'Μέση',
alignBottom: 'Κάτω',
invalidValue : 'Μη έγκυρη τιμή.',
invalidHeight: 'Το ύψος πρέπει να είναι ένας αριθμός.',
invalidWidth: 'Το πλάτος πρέπει να είναι ένας αριθμός.',
invalidCssLength: 'Η τιμή που ορίζεται για το πεδίο "%1" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
invalidHtmlLength: 'Η τιμή που ορίζεται για το πεδίο "%1" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης HTML (px ή %).',
invalidInlineStyle: 'Η τιμή για το εν σειρά στυλ πρέπει να περιέχει ένα ή περισσότερα ζεύγη με την μορφή "όνομα: τιμή" διαχωρισμένα με Ελληνικό ερωτηματικό.',
cssLengthTooltip: 'Εισάγεται μια τιμή σε pixel ή έναν αριθμό μαζί με μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, δεν είναι διαθέσιμο</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* English (Australia) language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'en-au' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Browse Server',
url: 'URL',
protocol: 'Protocol',
upload: 'Upload',
uploadSubmit: 'Send it to the Server',
image: 'Image',
flash: 'Flash',
form: 'Form',
checkbox: 'Checkbox',
radio: 'Radio Button',
textField: 'Text Field',
textarea: 'Textarea',
hiddenField: 'Hidden Field',
button: 'Button',
select: 'Selection Field',
imageButton: 'Image Button',
notSet: '<not set>',
id: 'Id',
name: 'Name',
langDir: 'Language Direction',
langDirLtr: 'Left to Right (LTR)',
langDirRtl: 'Right to Left (RTL)',
langCode: 'Language Code',
longDescr: 'Long Description URL',
cssClass: 'Stylesheet Classes',
advisoryTitle: 'Advisory Title',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Cancel',
close: 'Close', // MISSING
preview: 'Preview',
resize: 'Resize', // MISSING
generalTab: 'General',
advancedTab: 'Advanced',
validateNumberFailed: 'This value is not a number.',
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?',
options: 'Options', // MISSING
target: 'Target',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'Left to Right (LTR)',
langDirRTL: 'Right to Left (RTL)',
styles: 'Style',
cssClasses: 'Stylesheet Classes',
width: 'Width', // MISSING
height: 'Height', // MISSING
align: 'Align',
alignLeft: 'Left', // MISSING
alignRight: 'Right', // MISSING
alignCenter: 'Centre',
alignTop: 'Top', // MISSING
alignMiddle: 'Middle', // MISSING
alignBottom: 'Bottom', // MISSING
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* English (Canadian) language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'en-ca' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Browse Server',
url: 'URL',
protocol: 'Protocol',
upload: 'Upload',
uploadSubmit: 'Send it to the Server',
image: 'Image',
flash: 'Flash',
form: 'Form',
checkbox: 'Checkbox',
radio: 'Radio Button',
textField: 'Text Field',
textarea: 'Textarea',
hiddenField: 'Hidden Field',
button: 'Button',
select: 'Selection Field',
imageButton: 'Image Button',
notSet: '<not set>',
id: 'Id',
name: 'Name',
langDir: 'Language Direction',
langDirLtr: 'Left to Right (LTR)',
langDirRtl: 'Right to Left (RTL)',
langCode: 'Language Code',
longDescr: 'Long Description URL',
cssClass: 'Stylesheet Classes',
advisoryTitle: 'Advisory Title',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Cancel',
close: 'Close', // MISSING
preview: 'Preview',
resize: 'Resize', // MISSING
generalTab: 'General',
advancedTab: 'Advanced',
validateNumberFailed: 'This value is not a number.',
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?',
options: 'Options', // MISSING
target: 'Target',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'Left to Right (LTR)',
langDirRTL: 'Right to Left (RTL)',
styles: 'Style',
cssClasses: 'Stylesheet Classes',
width: 'Width', // MISSING
height: 'Height', // MISSING
align: 'Align',
alignLeft: 'Left', // MISSING
alignRight: 'Right', // MISSING
alignCenter: 'Centre',
alignTop: 'Top', // MISSING
alignMiddle: 'Middle', // MISSING
alignBottom: 'Bottom', // MISSING
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* English (United Kingdom) language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'en-gb' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help',
browseServer: 'Browse Server',
url: 'URL',
protocol: 'Protocol',
upload: 'Upload',
uploadSubmit: 'Send it to the Server',
image: 'Image',
flash: 'Flash',
form: 'Form',
checkbox: 'Checkbox',
radio: 'Radio Button',
textField: 'Text Field',
textarea: 'Textarea',
hiddenField: 'Hidden Field',
button: 'Button',
select: 'Selection Field',
imageButton: 'Image Button',
notSet: '<not set>',
id: 'Id',
name: 'Name',
langDir: 'Language Direction',
langDirLtr: 'Left to Right (LTR)',
langDirRtl: 'Right to Left (RTL)',
langCode: 'Language Code',
longDescr: 'Long Description URL',
cssClass: 'Stylesheet Classes',
advisoryTitle: 'Advisory Title',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Cancel',
close: 'Close',
preview: 'Preview',
resize: 'Drag to resize',
generalTab: 'General',
advancedTab: 'Advanced',
validateNumberFailed: 'This value is not a number.',
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
confirmCancel: 'You have changed some options. Are you sure you want to close the dialogue window?',
options: 'Options',
target: 'Target',
targetNew: 'New Window (_blank)',
targetTop: 'Topmost Window (_top)',
targetSelf: 'Same Window (_self)',
targetParent: 'Parent Window (_parent)',
langDirLTR: 'Left to Right (LTR)',
langDirRTL: 'Right to Left (RTL)',
styles: 'Style',
cssClasses: 'Stylesheet Classes',
width: 'Width',
height: 'Height',
align: 'Align',
alignLeft: 'Left',
alignRight: 'Right',
alignCenter: 'Centre',
alignTop: 'Top',
alignMiddle: 'Middle',
alignBottom: 'Bottom',
invalidValue : 'Invalid value.',
invalidHeight: 'Height must be a number.',
invalidWidth: 'Width must be a number.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).',
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.',
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object for the English
* language. This is the base file for all translations.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'en' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help',
browseServer: 'Browse Server',
url: 'URL',
protocol: 'Protocol',
upload: 'Upload',
uploadSubmit: 'Send it to the Server',
image: 'Image',
flash: 'Flash',
form: 'Form',
checkbox: 'Checkbox',
radio: 'Radio Button',
textField: 'Text Field',
textarea: 'Textarea',
hiddenField: 'Hidden Field',
button: 'Button',
select: 'Selection Field',
imageButton: 'Image Button',
notSet: '<not set>',
id: 'Id',
name: 'Name',
langDir: 'Language Direction',
langDirLtr: 'Left to Right (LTR)',
langDirRtl: 'Right to Left (RTL)',
langCode: 'Language Code',
longDescr: 'Long Description URL',
cssClass: 'Stylesheet Classes',
advisoryTitle: 'Advisory Title',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Cancel',
close: 'Close',
preview: 'Preview',
resize: 'Resize',
generalTab: 'General',
advancedTab: 'Advanced',
validateNumberFailed: 'This value is not a number.',
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?',
options: 'Options',
target: 'Target',
targetNew: 'New Window (_blank)',
targetTop: 'Topmost Window (_top)',
targetSelf: 'Same Window (_self)',
targetParent: 'Parent Window (_parent)',
langDirLTR: 'Left to Right (LTR)',
langDirRTL: 'Right to Left (RTL)',
styles: 'Style',
cssClasses: 'Stylesheet Classes',
width: 'Width',
height: 'Height',
align: 'Alignment',
alignLeft: 'Left',
alignRight: 'Right',
alignCenter: 'Center',
alignTop: 'Top',
alignMiddle: 'Middle',
alignBottom: 'Bottom',
invalidValue : 'Invalid value.',
invalidHeight: 'Height must be a number.',
invalidWidth: 'Width must be a number.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).',
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.',
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Esperanto language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'eo' ] = {
// ARIA description.
editor: 'Redaktilo por Riĉiga Teksto',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Premu ALT 0 por helpilo',
browseServer: 'Foliumi en la Servilo',
url: 'URL',
protocol: 'Protokolo',
upload: 'Alŝuti',
uploadSubmit: 'Sendu al Servilo',
image: 'Bildo',
flash: 'Flaŝo',
form: 'Formularo',
checkbox: 'Markobutono',
radio: 'Radiobutono',
textField: 'Teksta kampo',
textarea: 'Teksta Areo',
hiddenField: 'Kaŝita Kampo',
button: 'Butono',
select: 'Elekta Kampo',
imageButton: 'Bildbutono',
notSet: '<Defaŭlta>',
id: 'Id',
name: 'Nomo',
langDir: 'Skribdirekto',
langDirLtr: 'De maldekstro dekstren (LTR)',
langDirRtl: 'De dekstro maldekstren (RTL)',
langCode: 'Lingva Kodo',
longDescr: 'URL de Longa Priskribo',
cssClass: 'Klasoj de Stilfolioj',
advisoryTitle: 'Priskriba Titolo',
cssStyle: 'Stilo',
ok: 'Akcepti',
cancel: 'Rezigni',
close: 'Fermi',
preview: 'Vidigi Aspekton',
resize: 'Movigi por ŝanĝi la grandon',
generalTab: 'Ĝenerala',
advancedTab: 'Speciala',
validateNumberFailed: 'Tiu valoro ne estas nombro.',
confirmNewPage: 'La neregistritaj ŝanĝoj estas perdotaj. Ĉu vi certas, ke vi volas ŝargi novan paĝon?',
confirmCancel: 'Iuj opcioj esta ŝanĝitaj. Ĉu vi certas, ke vi volas fermi la dialogon?',
options: 'Opcioj',
target: 'Celo',
targetNew: 'Nova Fenestro (_blank)',
targetTop: 'Supra Fenestro (_top)',
targetSelf: 'Sama Fenestro (_self)',
targetParent: 'Patra Fenestro (_parent)',
langDirLTR: 'De maldekstro dekstren (LTR)',
langDirRTL: 'De dekstro maldekstren (RTL)',
styles: 'Stilo',
cssClasses: 'Stilfoliaj Klasoj',
width: 'Larĝo',
height: 'Alto',
align: 'Ĝisrandigo',
alignLeft: 'Maldekstre',
alignRight: 'Dekstre',
alignCenter: 'Centre',
alignTop: 'Supre',
alignMiddle: 'Centre',
alignBottom: 'Malsupre',
invalidValue : 'Nevalida Valoro',
invalidHeight: 'Alto devas esti nombro.',
invalidWidth: 'Larĝo devas esti nombro.',
invalidCssLength: 'La valoro indikita por la "%1" kampo devas esti pozitiva nombro kun aŭ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
invalidHtmlLength: 'La valoro indikita por la "%1" kampo devas esti pozitiva nombro kun aŭ sen valida HTMLmezurunuo (px or %).',
invalidInlineStyle: 'La valoro indikita por la enlinia stilo devas konsisti el unu aŭ pluraj elementoj kun la formato de "nomo : valoro", apartigitaj per punktokomoj.',
cssLengthTooltip: 'Entajpu nombron por rastrumera valoro aŭ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nehavebla</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Spanish language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'es' ] = {
// ARIA description.
editor: 'Editor de texto enriquecido',
editorPanel: 'Panel del Editor de Texto Enriquecido',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Pulse ALT 0 para ayuda',
browseServer: 'Ver Servidor',
url: 'URL',
protocol: 'Protocolo',
upload: 'Cargar',
uploadSubmit: 'Enviar al Servidor',
image: 'Imagen',
flash: 'Flash',
form: 'Formulario',
checkbox: 'Casilla de Verificación',
radio: 'Botones de Radio',
textField: 'Campo de Texto',
textarea: 'Area de Texto',
hiddenField: 'Campo Oculto',
button: 'Botón',
select: 'Campo de Selección',
imageButton: 'Botón Imagen',
notSet: '<No definido>',
id: 'Id',
name: 'Nombre',
langDir: 'Orientación',
langDirLtr: 'Izquierda a Derecha (LTR)',
langDirRtl: 'Derecha a Izquierda (RTL)',
langCode: 'Cód. de idioma',
longDescr: 'Descripción larga URL',
cssClass: 'Clases de hojas de estilo',
advisoryTitle: 'Título',
cssStyle: 'Estilo',
ok: 'Aceptar',
cancel: 'Cancelar',
close: 'Cerrar',
preview: 'Previsualización',
resize: 'Arrastre para redimensionar',
generalTab: 'General',
advancedTab: 'Avanzado',
validateNumberFailed: 'El valor no es un número.',
confirmNewPage: 'Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?',
confirmCancel: 'Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?',
options: 'Opciones',
target: 'Destino',
targetNew: 'Nueva ventana (_blank)',
targetTop: 'Ventana principal (_top)',
targetSelf: 'Misma ventana (_self)',
targetParent: 'Ventana padre (_parent)',
langDirLTR: 'Izquierda a derecha (LTR)',
langDirRTL: 'Derecha a izquierda (RTL)',
styles: 'Estilos',
cssClasses: 'Clase de la hoja de estilos',
width: 'Anchura',
height: 'Altura',
align: 'Alineación',
alignLeft: 'Izquierda',
alignRight: 'Derecha',
alignCenter: 'Centrado',
alignTop: 'Tope',
alignMiddle: 'Centro',
alignBottom: 'Pie',
invalidValue : 'Valor no válido',
invalidHeight: 'Altura debe ser un número.',
invalidWidth: 'Anchura debe ser un número.',
invalidCssLength: 'El valor especificado para el campo "%1" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
invalidHtmlLength: 'El valor especificado para el campo "%1" debe ser un número positivo, incluyendo optionalmente una unidad de medida HTML válida (px o %).',
invalidInlineStyle: 'El valor especificado para el estilo debe consistir en uno o más pares con el formato "nombre: valor", separados por punto y coma.',
cssLengthTooltip: 'Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Estonian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'et' ] = {
// ARIA description.
editor: 'Rikkalik tekstiredaktor',
editorPanel: 'Rikkaliku tekstiredaktori paneel',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Abi saamiseks vajuta ALT 0',
browseServer: 'Serveri sirvimine',
url: 'URL',
protocol: 'Protokoll',
upload: 'Laadi üles',
uploadSubmit: 'Saada serverisse',
image: 'Pilt',
flash: 'Flash',
form: 'Vorm',
checkbox: 'Märkeruut',
radio: 'Raadionupp',
textField: 'Tekstilahter',
textarea: 'Tekstiala',
hiddenField: 'Varjatud lahter',
button: 'Nupp',
select: 'Valiklahter',
imageButton: 'Piltnupp',
notSet: '<määramata>',
id: 'ID',
name: 'Nimi',
langDir: 'Keele suund',
langDirLtr: 'Vasakult paremale (LTR)',
langDirRtl: 'Paremalt vasakule (RTL)',
langCode: 'Keele kood',
longDescr: 'Pikk kirjeldus URL',
cssClass: 'Stiilistiku klassid',
advisoryTitle: 'Soovituslik pealkiri',
cssStyle: 'Laad',
ok: 'Olgu',
cancel: 'Loobu',
close: 'Sulge',
preview: 'Eelvaade',
resize: 'Suuruse muutmiseks lohista',
generalTab: 'Üldine',
advancedTab: 'Täpsemalt',
validateNumberFailed: 'See väärtus pole number.',
confirmNewPage: 'Kõik salvestamata muudatused lähevad kaotsi. Kas oled kindel, et tahad laadida uue lehe?',
confirmCancel: 'Mõned valikud on muudetud. Kas oled kindel, et tahad dialoogi sulgeda?',
options: 'Valikud',
target: 'Sihtkoht',
targetNew: 'Uus aken (_blank)',
targetTop: 'Kõige ülemine aken (_top)',
targetSelf: 'Sama aken (_self)',
targetParent: 'Vanemaken (_parent)',
langDirLTR: 'Vasakult paremale (LTR)',
langDirRTL: 'Paremalt vasakule (RTL)',
styles: 'Stiili',
cssClasses: 'Stiililehe klassid',
width: 'Laius',
height: 'Kõrgus',
align: 'Joondus',
alignLeft: 'Vasak',
alignRight: 'Paremale',
alignCenter: 'Kesk',
alignTop: 'Üles',
alignMiddle: 'Keskele',
alignBottom: 'Alla',
invalidValue : 'Vigane väärtus.',
invalidHeight: 'Kõrgus peab olema number.',
invalidWidth: 'Laius peab olema number.',
invalidCssLength: '"%1" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.',
invalidHtmlLength: '"%1" välja jaoks määratud väärtus peab olema positiivne täisarv HTML ühikuga (px või %) või ilma.',
invalidInlineStyle: 'Reasisese stiili määrangud peavad koosnema paarisväärtustest (tuples), mis on semikoolonitega eraldatult järgnevas vormingus: "nimi : väärtus".',
cssLengthTooltip: 'Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, pole saadaval</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Basque language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'eu' ] = {
// ARIA description.
editor: 'Testu Aberastuko Editorea',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'ALT 0 sakatu laguntza jasotzeko',
browseServer: 'Zerbitzaria arakatu',
url: 'URL',
protocol: 'Protokoloa',
upload: 'Gora kargatu',
uploadSubmit: 'Zerbitzarira bidali',
image: 'Irudia',
flash: 'Flasha',
form: 'Formularioa',
checkbox: 'Kontrol-laukia',
radio: 'Aukera-botoia',
textField: 'Testu Eremua',
textarea: 'Testu-area',
hiddenField: 'Ezkutuko Eremua',
button: 'Botoia',
select: 'Hautespen Eremua',
imageButton: 'Irudi Botoia',
notSet: '<Ezarri gabe>',
id: 'Id',
name: 'Izena',
langDir: 'Hizkuntzaren Norabidea',
langDirLtr: 'Ezkerretik Eskumara(LTR)',
langDirRtl: 'Eskumatik Ezkerrera (RTL)',
langCode: 'Hizkuntza Kodea',
longDescr: 'URL Deskribapen Luzea',
cssClass: 'Estilo-orriko Klaseak',
advisoryTitle: 'Izenburua',
cssStyle: 'Estiloa',
ok: 'Ados',
cancel: 'Utzi',
close: 'Itxi',
preview: 'Aurrebista',
resize: 'Arrastatu tamaina aldatzeko',
generalTab: 'Orokorra',
advancedTab: 'Aurreratua',
validateNumberFailed: 'Balio hau ez da zenbaki bat.',
confirmNewPage: 'Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?',
confirmCancel: 'Aukera batzuk aldatu egin dira. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?',
options: 'Aukerak',
target: 'Target (Helburua)',
targetNew: 'Leiho Berria (_blank)',
targetTop: 'Goieneko Leihoan (_top)',
targetSelf: 'Leiho Berdinean (_self)',
targetParent: 'Leiho Gurasoan (_parent)',
langDirLTR: 'Ezkerretik Eskumara(LTR)',
langDirRTL: 'Eskumatik Ezkerrera (RTL)',
styles: 'Estiloa',
cssClasses: 'Estilo-orriko Klaseak',
width: 'Zabalera',
height: 'Altuera',
align: 'Lerrokatu',
alignLeft: 'Ezkerrera',
alignRight: 'Eskuman',
alignCenter: 'Erdian',
alignTop: 'Goian',
alignMiddle: 'Erdian',
alignBottom: 'Behean',
invalidValue : 'Balio ezegokia.',
invalidHeight: 'Altuera zenbaki bat izan behar da.',
invalidWidth: 'Zabalera zenbaki bat izan behar da.',
invalidCssLength: '"%1" eremurako zehaztutako balioa zenbaki positibo bat izan behar du, aukeran CSS neurri unitate batekin (px, %, in, cm, mm, em, ex, pt edo pc).',
invalidHtmlLength: '"%1" eremurako zehaztutako balioa zenbaki positibo bat izan behar du, aukeran HTML neurri unitate batekin (px edo %).',
invalidInlineStyle: 'Lerroko estiloan zehazten dena tupla "name : value" formatuko eta puntu eta komaz bereiztutako tupla bat edo gehiago izan behar dira.',
cssLengthTooltip: 'Zenbakia bakarrik zehazten bada pixeletan egongo da. CSS neurri unitatea ere zehaztu ahal da (px, %, in, cm, mm, em, ex, pt, edo pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, erabilezina</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object for the
* Persian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'fa' ] = {
// ARIA description.
editor: 'ویرایشگر متن کامل',
editorPanel: 'پنل ویرایشگر متن غنی',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'کلید Alt+0 را برای راهنمایی بفشارید',
browseServer: 'فهرست​نمایی سرور',
url: 'URL',
protocol: 'پروتکل',
upload: 'آپلود',
uploadSubmit: 'به سرور بفرست',
image: 'تصویر',
flash: 'فلش',
form: 'فرم',
checkbox: 'چک‌باکس',
radio: 'دکمه‌ی رادیویی',
textField: 'فیلد متنی',
textarea: 'ناحیهٴ متنی',
hiddenField: 'فیلد پنهان',
button: 'دکمه',
select: 'فیلد انتخاب چند گزینه​ای',
imageButton: 'دکمه‌ی تصویری',
notSet: '<تعین نشده>',
id: 'شناسه',
name: 'نام',
langDir: 'جهت​نمای زبان',
langDirLtr: 'چپ به راست',
langDirRtl: 'راست به چپ',
langCode: 'کد زبان',
longDescr: 'URL توصیف طولانی',
cssClass: 'کلاس​های شیوه​نامه (Stylesheet)',
advisoryTitle: 'عنوان کمکی',
cssStyle: 'شیوه (style)',
ok: 'پذیرش',
cancel: 'انصراف',
close: 'بستن',
preview: 'پیش‌نمایش',
resize: 'تغییر اندازه',
generalTab: 'عمومی',
advancedTab: 'پیشرفته',
validateNumberFailed: 'این مقدار یک عدد نیست.',
confirmNewPage: 'هر تغییر ایجاد شده​ی ذخیره نشده از بین خواهد رفت. آیا اطمینان دارید که قصد بارگیری صفحه جدیدی را دارید؟',
confirmCancel: 'برخی از گزینه‌ها تغییر کرده‌اند. آیا واقعا قصد بستن این پنجره را دارید؟',
options: 'گزینه​ها',
target: 'نحوه باز کردن',
targetNew: 'پنجره جدید',
targetTop: 'بالاترین پنجره',
targetSelf: 'همان پنجره',
targetParent: 'پنجره والد',
langDirLTR: 'چپ به راست',
langDirRTL: 'راست به چپ',
styles: 'سبک',
cssClasses: 'کلاس‌های شیوه‌نامه',
width: 'عرض',
height: 'طول',
align: 'چینش',
alignLeft: 'چپ',
alignRight: 'راست',
alignCenter: 'مرکز',
alignTop: 'بالا',
alignMiddle: 'وسط',
alignBottom: 'پائین',
invalidValue : 'مقدار نامعتبر.',
invalidHeight: 'ارتفاع باید یک عدد باشد.',
invalidWidth: 'عرض باید یک عدد باشد.',
invalidCssLength: 'عدد تعیین شده برای فیلد "%1" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).',
invalidHtmlLength: 'عدد تعیین شده برای فیلد "%1" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری HTML معتبر باشد (px or %).',
invalidInlineStyle: 'عدد تعیین شده برای سبک درون​خطی -Inline Style- باید دارای یک یا چند چندتایی با شکلی شبیه "name : value" که باید با یک ";" از هم جدا شوند.',
cssLengthTooltip: 'یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">، غیر قابل دسترس</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object for the
* Finnish language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'fi' ] = {
// ARIA description.
editor: 'Rikastekstieditori',
editorPanel: 'Rikastekstieditoripaneeli',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Paina ALT 0 nähdäksesi ohjeen',
browseServer: 'Selaa palvelinta',
url: 'Osoite',
protocol: 'Protokolla',
upload: 'Lisää tiedosto',
uploadSubmit: 'Lähetä palvelimelle',
image: 'Kuva',
flash: 'Flash-animaatio',
form: 'Lomake',
checkbox: 'Valintaruutu',
radio: 'Radiopainike',
textField: 'Tekstikenttä',
textarea: 'Tekstilaatikko',
hiddenField: 'Piilokenttä',
button: 'Painike',
select: 'Valintakenttä',
imageButton: 'Kuvapainike',
notSet: '<ei asetettu>',
id: 'Tunniste',
name: 'Nimi',
langDir: 'Kielen suunta',
langDirLtr: 'Vasemmalta oikealle (LTR)',
langDirRtl: 'Oikealta vasemmalle (RTL)',
langCode: 'Kielikoodi',
longDescr: 'Pitkän kuvauksen URL',
cssClass: 'Tyyliluokat',
advisoryTitle: 'Avustava otsikko',
cssStyle: 'Tyyli',
ok: 'OK',
cancel: 'Peruuta',
close: 'Sulje',
preview: 'Esikatselu',
resize: 'Raahaa muuttaaksesi kokoa',
generalTab: 'Yleinen',
advancedTab: 'Lisäominaisuudet',
validateNumberFailed: 'Arvon pitää olla numero.',
confirmNewPage: 'Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?',
confirmCancel: 'Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?',
options: 'Asetukset',
target: 'Kohde',
targetNew: 'Uusi ikkuna (_blank)',
targetTop: 'Päällimmäinen ikkuna (_top)',
targetSelf: 'Sama ikkuna (_self)',
targetParent: 'Ylemmän tason ikkuna (_parent)',
langDirLTR: 'Vasemmalta oikealle (LTR)',
langDirRTL: 'Oikealta vasemmalle (RTL)',
styles: 'Tyyli',
cssClasses: 'Tyylitiedoston luokat',
width: 'Leveys',
height: 'Korkeus',
align: 'Kohdistus',
alignLeft: 'Vasemmalle',
alignRight: 'Oikealle',
alignCenter: 'Keskelle',
alignTop: 'Ylös',
alignMiddle: 'Keskelle',
alignBottom: 'Alas',
invalidValue : 'Virheellinen arvo.',
invalidHeight: 'Korkeuden täytyy olla numero.',
invalidWidth: 'Leveyden täytyy olla numero.',
invalidCssLength: 'Kentän "%1" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.',
invalidHtmlLength: 'Kentän "%1" arvon täytyy olla positiivinen luku HTML mittayksikön (px tai %) kanssa tai ilman.',
invalidInlineStyle: 'Tyylille annetun arvon täytyy koostua yhdestä tai useammasta "nimi : arvo" parista, jotka ovat eroteltuna toisistaan puolipisteillä.',
cssLengthTooltip: 'Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, ei saatavissa</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Faroese language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'fo' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Trýst ALT og 0 fyri vegleiðing',
browseServer: 'Ambætarakagi',
url: 'URL',
protocol: 'Protokoll',
upload: 'Send til ambætaran',
uploadSubmit: 'Send til ambætaran',
image: 'Myndir',
flash: 'Flash',
form: 'Formur',
checkbox: 'Flugubein',
radio: 'Radioknøttur',
textField: 'Tekstteigur',
textarea: 'Tekstumráði',
hiddenField: 'Fjaldur teigur',
button: 'Knøttur',
select: 'Valskrá',
imageButton: 'Myndaknøttur',
notSet: '<ikki sett>',
id: 'Id',
name: 'Navn',
langDir: 'Tekstkós',
langDirLtr: 'Frá vinstru til høgru (LTR)',
langDirRtl: 'Frá høgru til vinstru (RTL)',
langCode: 'Málkoda',
longDescr: 'Víðkað URL frágreiðing',
cssClass: 'Typografi klassar',
advisoryTitle: 'Vegleiðandi heiti',
cssStyle: 'Typografi',
ok: 'Góðkent',
cancel: 'Avlýst',
close: 'Lat aftur',
preview: 'Frumsýn',
resize: 'Drag fyri at broyta stødd',
generalTab: 'Generelt',
advancedTab: 'Fjølbroytt',
validateNumberFailed: 'Hetta er ikki eitt tal.',
confirmNewPage: 'Allar ikki goymdar broytingar í hesum innihaldið hvørva. Skal nýggj síða lesast kortini?',
confirmCancel: 'Nakrir valmøguleikar eru broyttir. Ert tú vísur í, at dialogurin skal latast aftur?',
options: 'Options',
target: 'Target',
targetNew: 'Nýtt vindeyga (_blank)',
targetTop: 'Vindeyga ovast (_top)',
targetSelf: 'Sama vindeyga (_self)',
targetParent: 'Upphavligt vindeyga (_parent)',
langDirLTR: 'Frá vinstru til høgru (LTR)',
langDirRTL: 'Frá høgru til vinstru (RTL)',
styles: 'Style',
cssClasses: 'Stylesheet Classes',
width: 'Breidd',
height: 'Hædd',
align: 'Justering',
alignLeft: 'Vinstra',
alignRight: 'Høgra',
alignCenter: 'Miðsett',
alignTop: 'Ovast',
alignMiddle: 'Miðja',
alignBottom: 'Botnur',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Hædd má vera eitt tal.',
invalidWidth: 'Breidd má vera eitt tal.',
invalidCssLength: 'Virðið sett í "%1" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).',
invalidHtmlLength: 'Virðið sett í "%1" feltiðield má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px ella %).',
invalidInlineStyle: 'Virði specifiserað fyri inline style má hava eitt ella fleiri pør (tuples) skrivað sum "name : value", hvørt parið sundurskilt við semi-colon.',
cssLengthTooltip: 'Skriva eitt tal fyri eitt virði í pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, ikki tøkt</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Canadian French language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'fr-ca' ] = {
// ARIA description.
editor: 'Éditeur de texte enrichi',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Appuyez sur 0 pour de l\'aide',
browseServer: 'Parcourir le serveur',
url: 'URL',
protocol: 'Protocole',
upload: 'Envoyer',
uploadSubmit: 'Envoyer au serveur',
image: 'Image',
flash: 'Animation Flash',
form: 'Formulaire',
checkbox: 'Case à cocher',
radio: 'Bouton radio',
textField: 'Champ texte',
textarea: 'Zone de texte',
hiddenField: 'Champ caché',
button: 'Bouton',
select: 'Liste déroulante',
imageButton: 'Bouton image',
notSet: '<Par défaut>',
id: 'Id',
name: 'Nom',
langDir: 'Sens d\'écriture',
langDirLtr: 'De gauche à droite (LTR)',
langDirRtl: 'De droite à gauche (RTL)',
langCode: 'Code langue',
longDescr: 'URL de description longue',
cssClass: 'Classes CSS',
advisoryTitle: 'Titre',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Annuler',
close: 'Fermer',
preview: 'Aperçu',
resize: 'Redimensionner',
generalTab: 'Général',
advancedTab: 'Avancé',
validateNumberFailed: 'Cette valeur n\'est pas un nombre.',
confirmNewPage: 'Les changements non sauvegardés seront perdus. Êtes-vous certain de vouloir charger une nouvelle page?',
confirmCancel: 'Certaines options ont été modifiées. Êtes-vous certain de vouloir fermer?',
options: 'Options',
target: 'Cible',
targetNew: 'Nouvelle fenêtre (_blank)',
targetTop: 'Fenêtre supérieur (_top)',
targetSelf: 'Cette fenêtre (_self)',
targetParent: 'Fenêtre parent (_parent)',
langDirLTR: 'De gauche à droite (LTR)',
langDirRTL: 'De droite à gauche (RTL)',
styles: 'Style',
cssClasses: 'Classe CSS',
width: 'Largeur',
height: 'Hauteur',
align: 'Alignement',
alignLeft: 'Gauche',
alignRight: 'Droite',
alignCenter: 'Centré',
alignTop: 'Haut',
alignMiddle: 'Milieu',
alignBottom: 'Bas',
invalidValue : 'Valeur invalide.',
invalidHeight: 'La hauteur doit être un nombre.',
invalidWidth: 'La largeur doit être un nombre.',
invalidCssLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
invalidHtmlLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
invalidInlineStyle: 'La valeur spécifiée pour le style intégré doit être composée d\'un ou plusieurs couples de valeur au format "nom : valeur", separés par des points-virgules.',
cssLengthTooltip: 'Entrer un nombre pour la valeur en pixel ou un nombre avec une unité CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, indisponible</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* French language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'fr' ] = {
// ARIA description.
editor: 'Éditeur de Texte Enrichi',
editorPanel: 'Tableau de bord de l\'éditeur de texte enrichi',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Appuyez sur ALT-0 pour l\'aide',
browseServer: 'Explorer le serveur',
url: 'URL',
protocol: 'Protocole',
upload: 'Envoyer',
uploadSubmit: 'Envoyer sur le serveur',
image: 'Image',
flash: 'Flash',
form: 'Formulaire',
checkbox: 'Case à cocher',
radio: 'Bouton Radio',
textField: 'Champ texte',
textarea: 'Zone de texte',
hiddenField: 'Champ caché',
button: 'Bouton',
select: 'Liste déroulante',
imageButton: 'Bouton image',
notSet: '<non défini>',
id: 'Id',
name: 'Nom',
langDir: 'Sens d\'écriture',
langDirLtr: 'Gauche à droite (LTR)',
langDirRtl: 'Droite à gauche (RTL)',
langCode: 'Code de langue',
longDescr: 'URL de description longue (longdesc => malvoyant)',
cssClass: 'Classe CSS',
advisoryTitle: 'Description (title)',
cssStyle: 'Style',
ok: 'OK',
cancel: 'Annuler',
close: 'Fermer',
preview: 'Aperçu',
resize: 'Déplacer pour modifier la taille',
generalTab: 'Général',
advancedTab: 'Avancé',
validateNumberFailed: 'Cette valeur n\'est pas un nombre.',
confirmNewPage: 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?',
confirmCancel: 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?',
options: 'Options',
target: 'Cible (Target)',
targetNew: 'Nouvelle fenêtre (_blank)',
targetTop: 'Fenêtre supérieure (_top)',
targetSelf: 'Même fenêtre (_self)',
targetParent: 'Fenêtre parent (_parent)',
langDirLTR: 'Gauche à Droite (LTR)',
langDirRTL: 'Droite à Gauche (RTL)',
styles: 'Style',
cssClasses: 'Classes de style',
width: 'Largeur',
height: 'Hauteur',
align: 'Alignement',
alignLeft: 'Gauche',
alignRight: 'Droite',
alignCenter: 'Centré',
alignTop: 'Haut',
alignMiddle: 'Milieu',
alignBottom: 'Bas',
invalidValue : 'Valeur incorrecte.',
invalidHeight: 'La hauteur doit être un nombre.',
invalidWidth: 'La largeur doit être un nombre.',
invalidCssLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
invalidHtmlLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
invalidInlineStyle: 'La valeur spécifiée pour le style inline doit être composée d\'un ou plusieurs couples de valeur au format "nom : valeur", separés par des points-virgules.',
cssLengthTooltip: 'Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, Indisponible</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Galician language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'gl' ] = {
// ARIA description.
editor: 'Editor de texto mellorado',
editorPanel: 'Panel do editor de texto mellorado',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Prema ALT 0 para obter axuda',
browseServer: 'Examinar o servidor',
url: 'URL',
protocol: 'Protocolo',
upload: 'Enviar',
uploadSubmit: 'Enviar ao servidor',
image: 'Imaxe',
flash: 'Flash',
form: 'Formulario',
checkbox: 'Caixa de selección',
radio: 'Botón de opción',
textField: 'Campo de texto',
textarea: 'Área de texto',
hiddenField: 'Campo agochado',
button: 'Botón',
select: 'Campo de selección',
imageButton: 'Botón de imaxe',
notSet: '<sen estabelecer>',
id: 'ID',
name: 'Nome',
langDir: 'Dirección de escritura do idioma',
langDirLtr: 'Esquerda a dereita (LTR)',
langDirRtl: 'Dereita a esquerda (RTL)',
langCode: 'Código do idioma',
longDescr: 'Descrición completa do URL',
cssClass: 'Clases da folla de estilos',
advisoryTitle: 'Título',
cssStyle: 'Estilo',
ok: 'Aceptar',
cancel: 'Cancelar',
close: 'Pechar',
preview: 'Vista previa',
resize: 'Redimensionar',
generalTab: 'Xeral',
advancedTab: 'Avanzado',
validateNumberFailed: 'Este valor non é un número.',
confirmNewPage: 'Calquera cambio que non gardara neste contido perderase.\r\nConfirma que quere cargar unha páxina nova?',
confirmCancel: 'Algunhas das opcións foron cambiadas.\r\nConfirma que quere pechar o diálogo?',
options: 'Opcións',
target: 'Destino',
targetNew: 'Nova xanela (_blank)',
targetTop: 'Xanela principal (_top)',
targetSelf: 'Mesma xanela (_self)',
targetParent: 'Xanela superior (_parent)',
langDirLTR: 'Esquerda a dereita (LTR)',
langDirRTL: 'Dereita a esquerda (RTL)',
styles: 'Estilo',
cssClasses: 'Clases da folla de estilos',
width: 'Largo',
height: 'Alto',
align: 'Aliñamento',
alignLeft: 'Esquerda',
alignRight: 'Dereita',
alignCenter: 'Centro',
alignTop: 'Arriba',
alignMiddle: 'Centro',
alignBottom: 'Abaixo',
invalidValue : 'Valor incorrecto.',
invalidHeight: 'O alto debe ser un número.',
invalidWidth: 'O largo debe ser un número.',
invalidCssLength: 'O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).',
invalidHtmlLength: 'O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida HTML correcta (px ou %).',
invalidInlineStyle: 'O valor especificado no estilo en liña debe consistir nunha ou máis tuplas co formato «nome : valor», separadas por punto e coma.',
cssLengthTooltip: 'Escriba un número para o valor en píxeles ou un número cunha unidade CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, non dispoñíbel</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Gujarati language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'gu' ] = {
// ARIA description.
editor: 'રીચ ટેક્ષ્ત્ એડીટર',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'પ્રેસ ALT 0 મદદ માટ',
browseServer: 'સર્વર બ્રાઉઝ કરો',
url: 'URL',
protocol: 'પ્રોટોકૉલ',
upload: 'અપલોડ',
uploadSubmit: 'આ સર્વરને મોકલવું',
image: 'ચિત્ર',
flash: 'ફ્લૅશ',
form: 'ફૉર્મ/પત્રક',
checkbox: 'ચેક બોક્સ',
radio: 'રેડિઓ બટન',
textField: 'ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્ર',
textarea: 'ટેક્સ્ટ એરિઆ, શબ્દ વિસ્તાર',
hiddenField: 'ગુપ્ત ક્ષેત્ર',
button: 'બટન',
select: 'પસંદગી ક્ષેત્ર',
imageButton: 'ચિત્ર બટન',
notSet: '<સેટ નથી>',
id: 'Id',
name: 'નામ',
langDir: 'ભાષા લેખવાની પદ્ધતિ',
langDirLtr: 'ડાબે થી જમણે (LTR)',
langDirRtl: 'જમણે થી ડાબે (RTL)',
langCode: 'ભાષા કોડ',
longDescr: 'વધારે માહિતી માટે URL',
cssClass: 'સ્ટાઇલ-શીટ ક્લાસ',
advisoryTitle: 'મુખ્ય મથાળું',
cssStyle: 'સ્ટાઇલ',
ok: 'ઠીક છે',
cancel: 'રદ કરવું',
close: 'બંધ કરવું',
preview: 'જોવું',
resize: 'ખેંચી ને યોગ્ય કરવું',
generalTab: 'જનરલ',
advancedTab: 'અડ્વાન્સડ',
validateNumberFailed: 'આ રકમ આકડો નથી.',
confirmNewPage: 'સવે કાર્ય વગરનું ફકરો ખોવાઈ જશે. તમને ખાતરી છે કે તમને નવું પાનું ખોલવું છે?',
confirmCancel: 'ઘણા વિકલ્પો બદલાયા છે. તમારે આ બોક્ષ્ બંધ કરવું છે?',
options: 'વિકલ્પો',
target: 'લક્ષ્ય',
targetNew: 'નવી વિન્ડો (_blank)',
targetTop: 'ઉપરની વિન્ડો (_top)',
targetSelf: 'એજ વિન્ડો (_self)',
targetParent: 'પેરનટ વિન્ડો (_parent)',
langDirLTR: 'ડાબે થી જમણે (LTR)',
langDirRTL: 'જમણે થી ડાબે (RTL)',
styles: 'શૈલી',
cssClasses: 'શૈલી કલાસીસ',
width: 'પહોળાઈ',
height: 'ઊંચાઈ',
align: 'લાઇનદોરીમાં ગોઠવવું',
alignLeft: 'ડાબી બાજુ ગોઠવવું',
alignRight: 'જમણી',
alignCenter: 'મધ્ય સેન્ટર',
alignTop: 'ઉપર',
alignMiddle: 'વચ્ચે',
alignBottom: 'નીચે',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'ઉંચાઈ એક આંકડો હોવો જોઈએ.',
invalidWidth: 'પોહળ ઈ એક આંકડો હોવો જોઈએ.',
invalidCssLength: '"%1" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વગર.',
invalidHtmlLength: '"%1" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા HTML measurement unit (px or %) વગર.',
invalidInlineStyle: 'ઈનલાઈન સ્ટાઈલ ની વેલ્યુ "name : value" ના ફોર્મેટ માં હોવી જોઈએ, વચ્ચે સેમી-કોલોન જોઈએ.',
cssLengthTooltip: 'પિક્ષ્લ્ નો આંકડો CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માં નાખો.',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, નથી મળતું</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Hebrew language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'he' ] = {
// ARIA description.
editor: 'עורך טקסט עשיר',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'לחץ אלט ALT + 0 לעזרה',
browseServer: 'סייר השרת',
url: 'כתובת (URL)',
protocol: 'פרוטוקול',
upload: 'העלאה',
uploadSubmit: 'שליחה לשרת',
image: 'תמונה',
flash: 'פלאש',
form: 'טופס',
checkbox: 'תיבת סימון',
radio: 'לחצן אפשרויות',
textField: 'שדה טקסט',
textarea: 'איזור טקסט',
hiddenField: 'שדה חבוי',
button: 'כפתור',
select: 'שדה בחירה',
imageButton: 'כפתור תמונה',
notSet: '<לא נקבע>',
id: 'זיהוי (ID)',
name: 'שם',
langDir: 'כיוון שפה',
langDirLtr: 'שמאל לימין (LTR)',
langDirRtl: 'ימין לשמאל (RTL)',
langCode: 'קוד שפה',
longDescr: 'קישור לתיאור מפורט',
cssClass: 'מחלקת עיצוב (CSS Class)',
advisoryTitle: 'כותרת מוצעת',
cssStyle: 'סגנון',
ok: 'אישור',
cancel: 'ביטול',
close: 'סגירה',
preview: 'תצוגה מקדימה',
resize: 'יש לגרור בכדי לשנות את הגודל',
generalTab: 'כללי',
advancedTab: 'אפשרויות מתקדמות',
validateNumberFailed: 'הערך חייב להיות מספרי.',
confirmNewPage: 'כל השינויים שלא נשמרו יאבדו. האם להעלות דף חדש?',
confirmCancel: 'חלק מהאפשרויות שונו, האם לסגור את הדיאלוג?',
options: 'אפשרויות',
target: 'מטרה',
targetNew: 'חלון חדש (_blank)',
targetTop: 'החלון העליון ביותר (_top)',
targetSelf: 'אותו חלון (_self)',
targetParent: 'חלון האב (_parent)',
langDirLTR: 'שמאל לימין (LTR)',
langDirRTL: 'ימין לשמאל (RTL)',
styles: 'סגנון',
cssClasses: 'מחלקות גליונות סגנון',
width: 'רוחב',
height: 'גובה',
align: 'יישור',
alignLeft: 'לשמאל',
alignRight: 'לימין',
alignCenter: 'מרכז',
alignTop: 'למעלה',
alignMiddle: 'לאמצע',
alignBottom: 'לתחתית',
invalidValue : 'ערך לא חוקי.',
invalidHeight: 'הגובה חייב להיות מספר.',
invalidWidth: 'הרוחב חייב להיות מספר.',
invalidCssLength: 'הערך שצוין לשדה "%1" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של CSS (px, %, in, cm, mm, em, ex, pt, או pc).',
invalidHtmlLength: 'הערך שצוין לשדה "%1" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של HTML (px או %).',
invalidInlineStyle: 'הערך שצויין לשדה הסגנון חייב להכיל זוג ערכים אחד או יותר בפורמט "שם : ערך", מופרדים על ידי נקודה-פסיק.',
cssLengthTooltip: 'יש להכניס מספר המייצג פיקסלים או מספר עם יחידת גליונות סגנון תקינה (px, %, in, cm, mm, em, ex, pt, או pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, לא זמין</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Hindi language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'hi' ] = {
// ARIA description.
editor: 'रिच टेक्स्ट एडिटर',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'मदद के लिये ALT 0 दबाए',
browseServer: 'सर्वर ब्राउज़ करें',
url: 'URL',
protocol: 'प्रोटोकॉल',
upload: 'अपलोड',
uploadSubmit: 'इसे सर्वर को भेजें',
image: 'तस्वीर',
flash: 'फ़्लैश',
form: 'फ़ॉर्म',
checkbox: 'चॅक बॉक्स',
radio: 'रेडिओ बटन',
textField: 'टेक्स्ट फ़ील्ड',
textarea: 'टेक्स्ट एरिया',
hiddenField: 'गुप्त फ़ील्ड',
button: 'बटन',
select: 'चुनाव फ़ील्ड',
imageButton: 'तस्वीर बटन',
notSet: '<सॅट नहीं>',
id: 'Id',
name: 'नाम',
langDir: 'भाषा लिखने की दिशा',
langDirLtr: 'बायें से दायें (LTR)',
langDirRtl: 'दायें से बायें (RTL)',
langCode: 'भाषा कोड',
longDescr: 'अधिक विवरण के लिए URL',
cssClass: 'स्टाइल-शीट क्लास',
advisoryTitle: 'परामर्श शीर्शक',
cssStyle: 'स्टाइल',
ok: 'ठीक है',
cancel: 'रद्द करें',
close: 'Close', // MISSING
preview: 'प्रीव्यू',
resize: 'Resize', // MISSING
generalTab: 'सामान्य',
advancedTab: 'ऍड्वान्स्ड',
validateNumberFailed: 'This value is not a number.', // MISSING
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Options', // MISSING
target: 'टार्गेट',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'बायें से दायें (LTR)',
langDirRTL: 'दायें से बायें (RTL)',
styles: 'स्टाइल',
cssClasses: 'स्टाइल-शीट क्लास',
width: 'चौड़ाई',
height: 'ऊँचाई',
align: 'ऍलाइन',
alignLeft: 'दायें',
alignRight: 'दायें',
alignCenter: 'बीच में',
alignTop: 'ऊपर',
alignMiddle: 'मध्य',
alignBottom: 'नीचे',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Croatian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'hr' ] = {
// ARIA description.
editor: 'Bogati uređivač teksta, %1',
editorPanel: 'Ploča Bogatog Uređivača Teksta',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Pritisni ALT 0 za pomoć',
browseServer: 'Pretraži server',
url: 'URL',
protocol: 'Protokol',
upload: 'Pošalji',
uploadSubmit: 'Pošalji na server',
image: 'Slika',
flash: 'Flash',
form: 'Forma',
checkbox: 'Checkbox',
radio: 'Radio Button',
textField: 'Text Field',
textarea: 'Textarea',
hiddenField: 'Hidden Field',
button: 'Button',
select: 'Selection Field',
imageButton: 'Image Button',
notSet: '<nije postavljeno>',
id: 'Id',
name: 'Naziv',
langDir: 'Smjer jezika',
langDirLtr: 'S lijeva na desno (LTR)',
langDirRtl: 'S desna na lijevo (RTL)',
langCode: 'Kôd jezika',
longDescr: 'Dugački opis URL',
cssClass: 'Klase stilova',
advisoryTitle: 'Advisory naslov',
cssStyle: 'Stil',
ok: 'OK',
cancel: 'Poništi',
close: 'Zatvori',
preview: 'Pregledaj',
resize: 'Povuci za promjenu veličine',
generalTab: 'Općenito',
advancedTab: 'Napredno',
validateNumberFailed: 'Ova vrijednost nije broj.',
confirmNewPage: 'Sve napravljene promjene će biti izgubljene ukoliko ih niste snimili. Sigurno želite učitati novu stranicu?',
confirmCancel: 'Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?',
options: 'Opcije',
target: 'Odredište',
targetNew: 'Novi prozor (_blank)',
targetTop: 'Vršni prozor (_top)',
targetSelf: 'Isti prozor (_self)',
targetParent: 'Roditeljski prozor (_parent)',
langDirLTR: 'S lijeva na desno (LTR)',
langDirRTL: 'S desna na lijevo (RTL)',
styles: 'Stil',
cssClasses: 'Klase stilova',
width: 'Širina',
height: 'Visina',
align: 'Poravnanje',
alignLeft: 'Lijevo',
alignRight: 'Desno',
alignCenter: 'Središnje',
alignTop: 'Vrh',
alignMiddle: 'Sredina',
alignBottom: 'Dolje',
invalidValue : 'Neispravna vrijednost.',
invalidHeight: 'Visina mora biti broj.',
invalidWidth: 'Širina mora biti broj.',
invalidCssLength: 'Vrijednost određena za "%1" polje mora biti pozitivni broj sa ili bez važećih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).',
invalidHtmlLength: 'Vrijednost određena za "%1" polje mora biti pozitivni broj sa ili bez važećih HTML mjernih jedinica (px ili %).',
invalidInlineStyle: 'Vrijednost za linijski stil mora sadržavati jednu ili više definicija s formatom "naziv:vrijednost", odvojenih točka-zarezom.',
cssLengthTooltip: 'Unesite broj za vrijednost u pikselima ili broj s važećim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nedostupno</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Hungarian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'hu' ] = {
// ARIA description.
editor: 'HTML szerkesztő',
editorPanel: 'Rich Text szerkesztő panel',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Segítségért nyomjon ALT 0',
browseServer: 'Böngészés a szerveren',
url: 'Hivatkozás',
protocol: 'Protokoll',
upload: 'Feltöltés',
uploadSubmit: 'Küldés a szerverre',
image: 'Kép',
flash: 'Flash',
form: 'Űrlap',
checkbox: 'Jelölőnégyzet',
radio: 'Választógomb',
textField: 'Szövegmező',
textarea: 'Szövegterület',
hiddenField: 'Rejtettmező',
button: 'Gomb',
select: 'Legördülő lista',
imageButton: 'Képgomb',
notSet: '<nincs beállítva>',
id: 'Azonosító',
name: 'Név',
langDir: 'Írás iránya',
langDirLtr: 'Balról jobbra',
langDirRtl: 'Jobbról balra',
langCode: 'Nyelv kódja',
longDescr: 'Részletes leírás webcíme',
cssClass: 'Stíluskészlet',
advisoryTitle: 'Súgócimke',
cssStyle: 'Stílus',
ok: 'Rendben',
cancel: 'Mégsem',
close: 'Bezárás',
preview: 'Előnézet',
resize: 'Húzza az átméretezéshez',
generalTab: 'Általános',
advancedTab: 'További opciók',
validateNumberFailed: 'A mezőbe csak számokat írhat.',
confirmNewPage: 'Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?',
confirmCancel: 'Az űrlap tartalma megváltozott, ám a változásokat nem rögzítette. Biztosan be szeretné zárni az űrlapot?',
options: 'Beállítások',
target: 'Cél',
targetNew: 'Új ablak (_blank)',
targetTop: 'Legfelső ablak (_top)',
targetSelf: 'Aktuális ablakban (_self)',
targetParent: 'Szülő ablak (_parent)',
langDirLTR: 'Balról jobbra (LTR)',
langDirRTL: 'Jobbról balra (RTL)',
styles: 'Stílus',
cssClasses: 'Stíluslap osztály',
width: 'Szélesség',
height: 'Magasság',
align: 'Igazítás',
alignLeft: 'Bal',
alignRight: 'Jobbra',
alignCenter: 'Középre',
alignTop: 'Tetejére',
alignMiddle: 'Középre',
alignBottom: 'Aljára',
invalidValue : 'Érvénytelen érték.',
invalidHeight: 'A magasság mezőbe csak számokat írhat.',
invalidWidth: 'A szélesség mezőbe csak számokat írhat.',
invalidCssLength: '"%1"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).',
invalidHtmlLength: '"%1"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes HTML egységgel megjelölve(px vagy %).',
invalidInlineStyle: 'Az inline stílusnak megadott értéknek tartalmaznia kell egy vagy több rekordot a "name : value" formátumban, pontosvesszővel elválasztva.',
cssLengthTooltip: 'Adjon meg egy számot értéknek pixelekben vagy egy számot érvényes CSS mértékegységben (px, %, in, cm, mm, em, ex, pt, vagy pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nem elérhető</span>'
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'id' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Tekan ALT 0 untuk bantuan.',
browseServer: 'Jelajah Server',
url: 'URL',
protocol: 'Protokol',
upload: 'Unggah',
uploadSubmit: 'Kirim ke Server',
image: 'Gambar',
flash: 'Flash',
form: 'Formulir',
checkbox: 'Kotak Cek',
radio: 'Tombol Radio',
textField: 'Kolom Teks',
textarea: 'Area Teks',
hiddenField: 'Kolom Tersembunyi',
button: 'Tombol',
select: 'Kolom Seleksi',
imageButton: 'Tombol Gambar',
notSet: '<tidak diatur>',
id: 'Id',
name: 'Nama',
langDir: 'Arah Bahasa',
langDirLtr: 'Kiri ke Kanan (LTR)',
langDirRtl: 'Kanan ke Kiri',
langCode: 'Kode Bahasa',
longDescr: 'Deskripsi URL Panjang',
cssClass: 'Kelas Stylesheet',
advisoryTitle: 'Penasehat Judul',
cssStyle: 'Gaya',
ok: 'OK',
cancel: 'Batal',
close: 'Tutup',
preview: 'Pratinjau',
resize: 'Ubah ukuran',
generalTab: 'Umum',
advancedTab: 'Advanced', // MISSING
validateNumberFailed: 'Nilai ini tidak sebuah angka',
confirmNewPage: 'Semua perubahan yang tidak disimpan di konten ini akan hilang. Apakah anda yakin ingin memuat halaman baru?',
confirmCancel: 'Beberapa opsi telah berubah. Apakah anda yakin ingin menutup dialog?',
options: 'Opsi',
target: 'Sasaran',
targetNew: 'Jendela Baru (_blank)',
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Jendela yang Sama (_self)',
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'Kiri ke Kanan (LTR)',
langDirRTL: 'Kanan ke Kiri (RTL)',
styles: 'Gaya',
cssClasses: 'Kelas Stylesheet',
width: 'Lebar',
height: 'Tinggi',
align: 'Penjajaran',
alignLeft: 'Kiri',
alignRight: 'Kanan',
alignCenter: 'Tengah',
alignTop: 'Atas',
alignMiddle: 'Tengah',
alignBottom: 'Bawah',
invalidValue : 'Nilai tidak sah.',
invalidHeight: 'Tinggi harus sebuah angka.',
invalidWidth: 'Lebar harus sebuah angka.',
invalidCssLength: 'Nilai untuk "%1" harus sebuah angkat positif dengan atau tanpa pengukuran unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).',
invalidHtmlLength: 'Nilai yang dispesifikasian untuk kolom "%1" harus sebuah angka positif dengan atau tanpa sebuah unit pengukuran HTML (px atau %) yang valid.',
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Masukkan sebuah angka untuk sebuah nilai dalam pixel atau sebuah angka dengan unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, tidak tersedia</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Icelandic language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'is' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Fletta í skjalasafni',
url: 'Vefslóð',
protocol: 'Samskiptastaðall',
upload: 'Senda upp',
uploadSubmit: 'Hlaða upp',
image: 'Setja inn mynd',
flash: 'Flash',
form: 'Setja inn innsláttarform',
checkbox: 'Setja inn hökunarreit',
radio: 'Setja inn valhnapp',
textField: 'Setja inn textareit',
textarea: 'Setja inn textasvæði',
hiddenField: 'Setja inn falið svæði',
button: 'Setja inn hnapp',
select: 'Setja inn lista',
imageButton: 'Setja inn myndahnapp',
notSet: '<ekkert valið>',
id: 'Auðkenni',
name: 'Nafn',
langDir: 'Lesstefna',
langDirLtr: 'Frá vinstri til hægri (LTR)',
langDirRtl: 'Frá hægri til vinstri (RTL)',
langCode: 'Tungumálakóði',
longDescr: 'Nánari lýsing',
cssClass: 'Stílsniðsflokkur',
advisoryTitle: 'Titill',
cssStyle: 'Stíll',
ok: 'Í lagi',
cancel: 'Hætta við',
close: 'Close', // MISSING
preview: 'Forskoða',
resize: 'Resize', // MISSING
generalTab: 'Almennt',
advancedTab: 'Tæknilegt',
validateNumberFailed: 'This value is not a number.', // MISSING
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Options', // MISSING
target: 'Mark',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'Frá vinstri til hægri (LTR)',
langDirRTL: 'Frá hægri til vinstri (RTL)',
styles: 'Stíll',
cssClasses: 'Stílsniðsflokkur',
width: 'Breidd',
height: 'Hæð',
align: 'Jöfnun',
alignLeft: 'Vinstri',
alignRight: 'Hægri',
alignCenter: 'Miðjað',
alignTop: 'Efst',
alignMiddle: 'Miðjuð',
alignBottom: 'Neðst',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Italian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'it' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Pannello Rich Text Editor',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Premi ALT 0 per aiuto',
browseServer: 'Cerca sul server',
url: 'URL',
protocol: 'Protocollo',
upload: 'Carica',
uploadSubmit: 'Invia al server',
image: 'Immagine',
flash: 'Oggetto Flash',
form: 'Modulo',
checkbox: 'Checkbox',
radio: 'Radio Button',
textField: 'Campo di testo',
textarea: 'Area di testo',
hiddenField: 'Campo nascosto',
button: 'Bottone',
select: 'Menu di selezione',
imageButton: 'Bottone immagine',
notSet: '<non impostato>',
id: 'Id',
name: 'Nome',
langDir: 'Direzione scrittura',
langDirLtr: 'Da Sinistra a Destra (LTR)',
langDirRtl: 'Da Destra a Sinistra (RTL)',
langCode: 'Codice Lingua',
longDescr: 'URL descrizione estesa',
cssClass: 'Nome classe CSS',
advisoryTitle: 'Titolo',
cssStyle: 'Stile',
ok: 'OK',
cancel: 'Annulla',
close: 'Chiudi',
preview: 'Anteprima',
resize: 'Trascina per ridimensionare',
generalTab: 'Generale',
advancedTab: 'Avanzate',
validateNumberFailed: 'Il valore inserito non è un numero.',
confirmNewPage: 'Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?',
confirmCancel: 'Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?',
options: 'Opzioni',
target: 'Destinazione',
targetNew: 'Nuova finestra (_blank)',
targetTop: 'Finestra in primo piano (_top)',
targetSelf: 'Stessa finestra (_self)',
targetParent: 'Finestra Padre (_parent)',
langDirLTR: 'Da sinistra a destra (LTR)',
langDirRTL: 'Da destra a sinistra (RTL)',
styles: 'Stile',
cssClasses: 'Classi di stile',
width: 'Larghezza',
height: 'Altezza',
align: 'Allineamento',
alignLeft: 'Sinistra',
alignRight: 'Destra',
alignCenter: 'Centrato',
alignTop: 'In Alto',
alignMiddle: 'Centrato',
alignBottom: 'In Basso',
invalidValue : 'Valore non valido.',
invalidHeight: 'L\'altezza dev\'essere un numero',
invalidWidth: 'La Larghezza dev\'essere un numero',
invalidCssLength: 'Il valore indicato per il campo "%1" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).',
invalidHtmlLength: 'Il valore indicato per il campo "%1" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le pagine HTML (px o %).',
invalidInlineStyle: 'Il valore specificato per lo stile inline deve consistere in una o più tuple con il formato di "name : value", separati da semicolonne.',
cssLengthTooltip: 'Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, non disponibile</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Japanese language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ja' ] = {
// ARIA description.
editor: 'リッチテキストエディタ',
editorPanel: 'リッチテキストエディタパネル',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'ヘルプは ALT 0 を押してください',
browseServer: 'サーバブラウザ',
url: 'URL',
protocol: 'プロトコル',
upload: 'アップロード',
uploadSubmit: 'サーバーに送信',
image: 'イメージ',
flash: 'Flash',
form: 'フォーム',
checkbox: 'チェックボックス',
radio: 'ラジオボタン',
textField: '1行テキスト',
textarea: 'テキストエリア',
hiddenField: '不可視フィールド',
button: 'ボタン',
select: '選択フィールド',
imageButton: '画像ボタン',
notSet: '<なし>',
id: 'Id',
name: 'Name属性',
langDir: '文字表記の方向',
langDirLtr: '左から右 (LTR)',
langDirRtl: '右から左 (RTL)',
langCode: '言語コード',
longDescr: 'longdesc属性(長文説明)',
cssClass: 'スタイルシートクラス',
advisoryTitle: 'Title属性',
cssStyle: 'スタイルシート',
ok: 'OK',
cancel: 'キャンセル',
close: '閉じる',
preview: 'プレビュー',
resize: 'ドラッグしてリサイズ',
generalTab: '全般',
advancedTab: '高度な設定',
validateNumberFailed: '値が数ではありません',
confirmNewPage: '変更内容を保存せず、 新しいページを開いてもよろしいでしょうか?',
confirmCancel: 'オプション設定を変更しました。ダイアログを閉じてもよろしいでしょうか?',
options: 'オプション',
target: 'ターゲット',
targetNew: '新しいウインドウ (_blank)',
targetTop: '最上部ウィンドウ (_top)',
targetSelf: '同じウィンドウ (_self)',
targetParent: '親ウィンドウ (_parent)',
langDirLTR: '左から右 (LTR)',
langDirRTL: '右から左 (RTL)',
styles: 'スタイル',
cssClasses: 'スタイルシートクラス',
width: '幅',
height: '高さ',
align: '行揃え',
alignLeft: '左',
alignRight: '右',
alignCenter: '中央',
alignTop: '上',
alignMiddle: '中央',
alignBottom: '下',
invalidValue : '不正な値です。',
invalidHeight: '高さは数値で入力してください。',
invalidWidth: '幅は数値で入力してください。',
invalidCssLength: '入力された "%1" 項目の値は、CSSの大きさ(px, %, in, cm, mm, em, ex, pt, または pc)が正しいものである/ないに関わらず、正の値である必要があります。',
invalidHtmlLength: '入力された "%1" 項目の値は、HTMLの大きさ(px または %)が正しいものである/ないに関わらず、正の値である必要があります。',
invalidInlineStyle: '入力されたインラインスタイルの値は、"名前 : 値" のフォーマットのセットで、複数の場合はセミコロンで区切られている形式である必要があります。',
cssLengthTooltip: 'ピクセル数もしくはCSSにセットできる数値を入力してください。(px,%,in,cm,mm,em,ex,pt,or pc)',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, 利用不可能</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the Georgian
* language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ka' ] = {
// ARIA description.
editor: 'ტექსტის რედაქტორი',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'დააჭირეთ ALT 0-ს დახმარების მისაღებად',
browseServer: 'სერვერზე დათვალიერება',
url: 'URL',
protocol: 'პროტოკოლი',
upload: 'ატვირთვა',
uploadSubmit: 'სერვერზე გაგზავნა',
image: 'სურათი',
flash: 'Flash',
form: 'ფორმა',
checkbox: 'მონიშვნის ღილაკი',
radio: 'ამორჩევის ღილაკი',
textField: 'ტექსტური ველი',
textarea: 'ტექსტური არე',
hiddenField: 'მალული ველი',
button: 'ღილაკი',
select: 'არჩევის ველი',
imageButton: 'სურათიანი ღილაკი',
notSet: '<არაფერი>',
id: 'Id',
name: 'სახელი',
langDir: 'ენის მიმართულება',
langDirLtr: 'მარცხნიდან მარჯვნივ (LTR)',
langDirRtl: 'მარჯვნიდან მარცხნივ (RTL)',
langCode: 'ენის კოდი',
longDescr: 'დიდი აღწერის URL',
cssClass: 'CSS კლასი',
advisoryTitle: 'სათაური',
cssStyle: 'CSS სტილი',
ok: 'დიახ',
cancel: 'გაუქმება',
close: 'დახურვა',
preview: 'გადახედვა',
resize: 'გაწიე ზომის შესაცვლელად',
generalTab: 'ინფორმაცია',
advancedTab: 'გაფართოებული',
validateNumberFailed: 'ეს მნიშვნელობა არაა რიცხვი.',
confirmNewPage: 'ამ დოკუმენტში ყველა ჩაუწერელი ცვლილება დაიკარგება. დარწმუნებული ხართ რომ ახალი გვერდის ჩატვირთვა გინდათ?',
confirmCancel: 'ზოგიერთი პარამეტრი შეცვლილია, დარწმუნებულილ ხართ რომ ფანჯრის დახურვა გსურთ?',
options: 'პარამეტრები',
target: 'გახსნის ადგილი',
targetNew: 'ახალი ფანჯარა (_blank)',
targetTop: 'ზედა ფანჯარა (_top)',
targetSelf: 'იგივე ფანჯარა (_self)',
targetParent: 'მშობელი ფანჯარა (_parent)',
langDirLTR: 'მარცხნიდან მარჯვნივ (LTR)',
langDirRTL: 'მარჯვნიდან მარცხნივ (RTL)',
styles: 'სტილი',
cssClasses: 'CSS კლასი',
width: 'სიგანე',
height: 'სიმაღლე',
align: 'სწორება',
alignLeft: 'მარცხენა',
alignRight: 'მარჯვენა',
alignCenter: 'შუა',
alignTop: 'ზემოთა',
alignMiddle: 'შუა',
alignBottom: 'ქვემოთა',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.',
invalidWidth: 'სიგანე რიცხვით უნდა იყოს წარმოდგენილი.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, მიუწვდომელია</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Khmer language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'km' ] = {
// ARIA description.
editor: 'ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប',
editorPanel: 'ផ្ទាំង​ឧបករណ៍​សរសេរ​អត្ថបទ​សម្បូរ​បែប',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'ចុច ALT 0 សម្រាប់​ជំនួយ',
browseServer: 'រក​មើល​ក្នុង​ម៉ាស៊ីន​បម្រើ',
url: 'URL',
protocol: 'ពិធីការ',
upload: 'ផ្ទុក​ឡើង',
uploadSubmit: 'បញ្ជូនទៅកាន់ម៉ាស៊ីន​បម្រើ',
image: 'រូបភាព',
flash: 'Flash',
form: 'បែបបទ',
checkbox: 'ប្រអប់​ធីក',
radio: 'ប៊ូតុង​មូល',
textField: 'វាល​អត្ថបទ',
textarea: 'Textarea',
hiddenField: 'វាល​កំបាំង',
button: 'ប៊ូតុង',
select: 'វាល​ជម្រើស',
imageButton: 'ប៊ូតុង​រូបភាព',
notSet: '<មិនកំណត់>',
id: 'Id',
name: 'ឈ្មោះ',
langDir: 'ទិសដៅភាសា',
langDirLtr: 'ពីឆ្វេងទៅស្តាំ (LTR)',
langDirRtl: 'ពីស្តាំទៅឆ្វេង (RTL)',
langCode: 'លេខ​កូដ​ភាសា',
longDescr: 'URL អធិប្បាយ​វែង',
cssClass: 'Stylesheet Classes',
advisoryTitle: 'ចំណង​ជើង​ណែនាំ',
cssStyle: 'រចនាបថ',
ok: 'ព្រម',
cancel: 'បោះបង់',
close: 'បិទ',
preview: 'មើល​ជា​មុន',
resize: 'ប្ដូរ​ទំហំ',
generalTab: 'ទូទៅ',
advancedTab: 'កម្រិត​ខ្ពស់',
validateNumberFailed: 'តម្លៃ​នេះ​ពុំ​មែន​ជា​លេខ​ទេ។',
confirmNewPage: 'រាល់​បន្លាស់​ប្ដូរ​នានា​ដែល​មិន​ទាន់​រក្សា​ទុក​ក្នុង​មាតិកា​នេះ នឹង​ត្រូវ​បាត់​បង់។ តើ​អ្នក​ពិត​ជា​ចង់​ផ្ទុក​ទំព័រ​ថ្មី​មែនទេ?',
confirmCancel: 'ការ​កំណត់​មួយ​ចំនួន​ត្រូ​វ​បាន​ផ្លាស់​ប្ដូរ។ តើ​អ្នក​ពិត​ជា​ចង់​បិទ​ប្រអប់​នេះ​មែនទេ?',
options: 'ការ​កំណត់',
target: 'គោលដៅ',
targetNew: 'វីនដូ​ថ្មី (_blank)',
targetTop: 'វីនដូ​លើ​គេ (_top)',
targetSelf: 'វីនដូ​ដូច​គ្នា (_self)',
targetParent: 'វីនដូ​មេ (_parent)',
langDirLTR: 'ពីឆ្វេងទៅស្តាំ(LTR)',
langDirRTL: 'ពីស្តាំទៅឆ្វេង(RTL)',
styles: 'រចនាបថ',
cssClasses: 'Stylesheet Classes',
width: 'ទទឹង',
height: 'កំពស់',
align: 'កំណត់​ទីតាំង',
alignLeft: 'ខាងឆ្វង',
alignRight: 'ខាងស្តាំ',
alignCenter: 'កណ្តាល',
alignTop: 'ខាងលើ',
alignMiddle: 'កណ្តាល',
alignBottom: 'ខាងក្រោម',
invalidValue : 'តម្លៃ​មិន​ត្រឹម​ត្រូវ។',
invalidHeight: 'តម្លៃ​កំពស់​ត្រូវ​តែ​ជា​លេខ។',
invalidWidth: 'តម្លៃ​ទទឹង​ត្រូវ​តែ​ជា​លេខ។',
invalidCssLength: 'តម្លៃ​កំណត់​សម្រាប់​វាល "%1" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន​ ដោយ​ភ្ជាប់ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។',
invalidHtmlLength: 'តម្លៃ​កំណត់​សម្រាប់​វាល "%1" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន ដោយ​ភ្ជាប់​ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ HTML (px ឬ %) ។',
invalidInlineStyle: 'តម្លៃ​កំណត់​សម្រាប់​រចនាបថ​ក្នុង​តួ ត្រូវ​តែ​មាន​មួយ​ឬ​ធាតុ​ច្រើន​ដោយ​មាន​ទ្រង់ទ្រាយ​ជា "ឈ្មោះ : តម្លៃ" ហើយ​ញែក​ចេញ​ពី​គ្នា​ដោយ​ចុច​ក្បៀស។',
cssLengthTooltip: 'បញ្ចូល​លេខ​សម្រាប់​តម្លៃ​ជា​ភិចសែល ឬ​លេខ​ដែល​មាន​ឯកតា​ត្រឹមត្រូវ​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, មិន​មាន</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Korean language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ko' ] = {
// ARIA description.
editor: '리치 텍스트 편집기',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: '도움이 필요하시면 ALT 0 을 누르세요',
browseServer: '서버 보기',
url: 'URL',
protocol: '프로토콜',
upload: '업로드',
uploadSubmit: '서버로 전송',
image: '이미지',
flash: '플래쉬',
form: '폼',
checkbox: '체크박스',
radio: '라디오버튼',
textField: '입력필드',
textarea: '입력영역',
hiddenField: '숨김필드',
button: '버튼',
select: '펼침목록',
imageButton: '이미지버튼',
notSet: '<설정되지 않음>',
id: 'ID',
name: 'Name',
langDir: '쓰기 방향',
langDirLtr: '왼쪽에서 오른쪽 (LTR)',
langDirRtl: '오른쪽에서 왼쪽 (RTL)',
langCode: '언어 코드',
longDescr: 'URL 설명',
cssClass: 'Stylesheet Classes',
advisoryTitle: 'Advisory Title',
cssStyle: 'Style',
ok: '예',
cancel: '아니오',
close: '닫기',
preview: '미리보기',
resize: '크기 조절',
generalTab: '일반',
advancedTab: '자세히',
validateNumberFailed: '이 값은 숫자가 아닙니다.',
confirmNewPage: '저장하지 않은 모든 변경사항은 유실됩니다. 정말로 새로운 페이지를 부르겠습니까?',
confirmCancel: '몇몇개의 옵션이 바꼈습니다. 정말로 창을 닫으시겠습니까?',
options: '옵션',
target: '타겟',
targetNew: '새로운 창 (_blank)',
targetTop: '최상위 창 (_top)',
targetSelf: '같은 창 (_self)',
targetParent: '부모 창 (_parent)',
langDirLTR: '왼쪽에서 오른쪽 (LTR)',
langDirRTL: '오른쪽에서 왼쪽 (RTL)',
styles: 'Style',
cssClasses: 'Stylesheet Classes',
width: '너비',
height: '높이',
align: '정렬',
alignLeft: '왼쪽',
alignRight: '오른쪽',
alignCenter: '가운데',
alignTop: '위',
alignMiddle: '중간',
alignBottom: '아래',
invalidValue : '잘못된 값.',
invalidHeight: '높이는 숫자여야 합니다.',
invalidWidth: '넓이는 숫자여야 합니다.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, 사용할 수 없음</span>'
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ku' ] = {
// ARIA description.
editor: 'سەرنووسەی دەقی بە پیت',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'کلیکی ALT لەگەڵ 0 بکه‌ بۆ یارمەتی',
browseServer: 'هێنانی ڕاژە',
url: 'ناونیشانی بەستەر',
protocol: 'پڕۆتۆکۆڵ',
upload: 'بارکردن',
uploadSubmit: 'ناردنی بۆ ڕاژە',
image: 'وێنە',
flash: 'فلاش',
form: 'داڕشتە',
checkbox: 'خانەی نیشانکردن',
radio: 'جێگرەوەی دوگمە',
textField: 'خانەی دەق',
textarea: 'ڕووبەری دەق',
hiddenField: 'شاردنەوی خانە',
button: 'دوگمە',
select: 'هەڵبژاردەی خانە',
imageButton: 'دوگمەی وێنە',
notSet: '<هیچ دانەدراوە>',
id: 'ناسنامە',
name: 'ناو',
langDir: 'ئاراستەی زمان',
langDirLtr: 'چەپ بۆ ڕاست (LTR)',
langDirRtl: 'ڕاست بۆ چەپ (RTL)',
langCode: 'هێمای زمان',
longDescr: 'پێناسەی درێژی بەستەر',
cssClass: 'شێوازی چینی په‌ڕە',
advisoryTitle: 'ڕاوێژکاری سەردێڕ',
cssStyle: 'شێواز',
ok: 'باشە',
cancel: 'هەڵوەشاندن',
close: 'داخستن',
preview: 'پێشبینین',
resize: 'گۆڕینی ئەندازە',
generalTab: 'گشتی',
advancedTab: 'پەرەسەندوو',
validateNumberFailed: 'ئەم نرخە ژمارە نیە، تکایە نرخێکی ژمارە بنووسە.',
confirmNewPage: 'سەرجەم گۆڕانکاریەکان و پێکهاتەکانی ناووەوە لەدەست دەدەی گەر بێتوو پاشکەوتی نەکەی یەکەم جار، تۆ هەر دڵنیایی لەکردنەوەی پەنجەرەکی نوێ؟',
confirmCancel: 'هەندێك هەڵبژاردە گۆڕدراوە. تۆ دڵنیایی لە داخستنی ئەم دیالۆگە؟',
options: 'هەڵبژاردەکان',
target: 'ئامانج',
targetNew: 'پەنجەرەیەکی نوێ (_blank)',
targetTop: 'لووتکەی پەنجەرە (_top)',
targetSelf: 'لەهەمان پەنجەرە (_self)',
targetParent: 'پەنجەرەی باوان (_parent)',
langDirLTR: 'چەپ بۆ ڕاست (LTR)',
langDirRTL: 'ڕاست بۆ چەپ (RTL)',
styles: 'شێواز',
cssClasses: 'شێوازی چینی پەڕە',
width: 'پانی',
height: 'درێژی',
align: 'ڕێککەرەوە',
alignLeft: 'چەپ',
alignRight: 'ڕاست',
alignCenter: 'ناوەڕاست',
alignTop: 'سەرەوە',
alignMiddle: 'ناوەند',
alignBottom: 'ژێرەوە',
invalidValue : 'نرخێکی نادرووست.',
invalidHeight: 'درێژی دەبێت ژمارە بێت.',
invalidWidth: 'پانی دەبێت ژمارە بێت.',
invalidCssLength: 'ئەم نرخەی دراوە بۆ خانەی "%1" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی (px, %, in, cm, mm, em, ex, pt, یان pc).',
invalidHtmlLength: 'ئەم نرخەی دراوە بۆ خانەی "%1" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی HTML (px یان %).',
invalidInlineStyle: 'دانەی نرخی شێوازی ناوهێڵ دەبێت پێکهاتبێت لەیەك یان زیاتری داڕشتە "ناو : نرخ", جیاکردنەوەی بە فاریزە و خاڵ',
cssLengthTooltip: 'ژمارەیەك بنووسه‌ بۆ نرخی piksel یان ئامرازێکی درووستی CSS (px, %, in, cm, mm, em, ex, pt, یان pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, ئامادە نیە</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object for the
* Lithuanian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'lt' ] = {
// ARIA description.
editor: 'Pilnas redaktorius',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Spauskite ALT 0 dėl pagalbos',
browseServer: 'Naršyti po serverį',
url: 'URL',
protocol: 'Protokolas',
upload: 'Siųsti',
uploadSubmit: 'Siųsti į serverį',
image: 'Vaizdas',
flash: 'Flash',
form: 'Forma',
checkbox: 'Žymimasis langelis',
radio: 'Žymimoji akutė',
textField: 'Teksto laukas',
textarea: 'Teksto sritis',
hiddenField: 'Nerodomas laukas',
button: 'Mygtukas',
select: 'Atrankos laukas',
imageButton: 'Vaizdinis mygtukas',
notSet: '<nėra nustatyta>',
id: 'Id',
name: 'Vardas',
langDir: 'Teksto kryptis',
langDirLtr: 'Iš kairės į dešinę (LTR)',
langDirRtl: 'Iš dešinės į kairę (RTL)',
langCode: 'Kalbos kodas',
longDescr: 'Ilgas aprašymas URL',
cssClass: 'Stilių lentelės klasės',
advisoryTitle: 'Konsultacinė antraštė',
cssStyle: 'Stilius',
ok: 'OK',
cancel: 'Nutraukti',
close: 'Uždaryti',
preview: 'Peržiūrėti',
resize: 'Pavilkite, kad pakeistumėte dydį',
generalTab: 'Bendros savybės',
advancedTab: 'Papildomas',
validateNumberFailed: 'Ši reikšmė nėra skaičius.',
confirmNewPage: 'Visas neišsaugotas turinys bus prarastas. Ar tikrai norite įkrauti naują puslapį?',
confirmCancel: 'Kai kurie parametrai pasikeitė. Ar tikrai norite užverti langą?',
options: 'Parametrai',
target: 'Tikslinė nuoroda',
targetNew: 'Naujas langas (_blank)',
targetTop: 'Viršutinis langas (_top)',
targetSelf: 'Esamas langas (_self)',
targetParent: 'Paskutinis langas (_parent)',
langDirLTR: 'Iš kairės į dešinę (LTR)',
langDirRTL: 'Iš dešinės į kairę (RTL)',
styles: 'Stilius',
cssClasses: 'Stilių klasės',
width: 'Plotis',
height: 'Aukštis',
align: 'Lygiuoti',
alignLeft: 'Kairę',
alignRight: 'Dešinę',
alignCenter: 'Centrą',
alignTop: 'Viršūnę',
alignMiddle: 'Vidurį',
alignBottom: 'Apačią',
invalidValue : 'Neteisinga reikšmė.',
invalidHeight: 'Aukštis turi būti nurodytas skaičiais.',
invalidWidth: 'Plotis turi būti nurodytas skaičiais.',
invalidCssLength: 'Reikšmė nurodyta "%1" laukui, turi būti teigiamas skaičius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).',
invalidHtmlLength: 'Reikšmė nurodyta "%1" laukui, turi būti teigiamas skaičius su arba be tinkamo HTML matavimo vieneto (px arba %).',
invalidInlineStyle: 'Reikšmė nurodyta vidiniame stiliuje turi būti sudaryta iš vieno šių reikšmių "vardas : reikšmė", atskirta kabliataškiais.',
cssLengthTooltip: 'Įveskite reikšmę pikseliais arba skaičiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, netinkamas</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Latvian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'lv' ] = {
// ARIA description.
editor: 'Bagātinātā teksta redaktors',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Palīdzībai, nospiediet ALT 0 ',
browseServer: 'Skatīt servera saturu',
url: 'URL',
protocol: 'Protokols',
upload: 'Augšupielādēt',
uploadSubmit: 'Nosūtīt serverim',
image: 'Attēls',
flash: 'Flash',
form: 'Forma',
checkbox: 'Atzīmēšanas kastīte',
radio: 'Izvēles poga',
textField: 'Teksta rinda',
textarea: 'Teksta laukums',
hiddenField: 'Paslēpta teksta rinda',
button: 'Poga',
select: 'Iezīmēšanas lauks',
imageButton: 'Attēlpoga',
notSet: '<nav iestatīts>',
id: 'Id',
name: 'Nosaukums',
langDir: 'Valodas lasīšanas virziens',
langDirLtr: 'No kreisās uz labo (LTR)',
langDirRtl: 'No labās uz kreiso (RTL)',
langCode: 'Valodas kods',
longDescr: 'Gara apraksta Hipersaite',
cssClass: 'Stilu saraksta klases',
advisoryTitle: 'Konsultatīvs virsraksts',
cssStyle: 'Stils',
ok: 'Darīts!',
cancel: 'Atcelt',
close: 'Aizvērt',
preview: 'Priekšskatījums',
resize: 'Mērogot',
generalTab: 'Vispārīgi',
advancedTab: 'Izvērstais',
validateNumberFailed: 'Šī vērtība nav skaitlis',
confirmNewPage: 'Jebkuras nesaglabātās izmaiņas tiks zaudētas. Vai tiešām vēlaties atvērt jaunu lapu?',
confirmCancel: 'Daži no uzstādījumiem ir mainīti. Vai tiešām vēlaties aizvērt šo dialogu?',
options: 'Uzstādījumi',
target: 'Mērķis',
targetNew: 'Jauns logs (_blank)',
targetTop: 'Virsējais logs (_top)',
targetSelf: 'Tas pats logs (_self)',
targetParent: 'Avota logs (_parent)',
langDirLTR: 'Kreisais uz Labo (LTR)',
langDirRTL: 'Labais uz Kreiso (RTL)',
styles: 'Stils',
cssClasses: 'Stilu klases',
width: 'Platums',
height: 'Augstums',
align: 'Nolīdzināt',
alignLeft: 'Pa kreisi',
alignRight: 'Pa labi',
alignCenter: 'Centrēti',
alignTop: 'Augšā',
alignMiddle: 'Vertikāli centrēts',
alignBottom: 'Apakšā',
invalidValue : 'Nekorekta vērtība',
invalidHeight: 'Augstumam jābūt skaitlim.',
invalidWidth: 'Platumam jābūt skaitlim',
invalidCssLength: 'Laukam "%1" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām CSS mērvienībām (px, %, in, cm, mm, em, ex, pt, vai pc).',
invalidHtmlLength: 'Laukam "%1" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām HTML mērvienībām (px vai %).',
invalidInlineStyle: 'Iekļautajā stilā norādītajai vērtībai jāsastāv no viena vai vairākiem pāriem pēc forma\'ta "nosaukums: vērtība", atdalītiem ar semikolu.',
cssLengthTooltip: 'Ievadiet vērtību pikseļos vai skaitli ar derīgu CSS mērvienību (px, %, in, cm, mm, em, ex, pt, vai pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nav pieejams</span>'
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'mk' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Browse Server', // MISSING
url: 'URL', // MISSING
protocol: 'Protocol', // MISSING
upload: 'Upload', // MISSING
uploadSubmit: 'Send it to the Server', // MISSING
image: 'Image', // MISSING
flash: 'Flash', // MISSING
form: 'Form', // MISSING
checkbox: 'Checkbox', // MISSING
radio: 'Radio Button', // MISSING
textField: 'Text Field', // MISSING
textarea: 'Textarea', // MISSING
hiddenField: 'Hidden Field', // MISSING
button: 'Button',
select: 'Selection Field', // MISSING
imageButton: 'Image Button', // MISSING
notSet: '<not set>',
id: 'Id', // MISSING
name: 'Name',
langDir: 'Language Direction', // MISSING
langDirLtr: 'Left to Right (LTR)', // MISSING
langDirRtl: 'Right to Left (RTL)', // MISSING
langCode: 'Language Code', // MISSING
longDescr: 'Long Description URL', // MISSING
cssClass: 'Stylesheet Classes', // MISSING
advisoryTitle: 'Advisory Title', // MISSING
cssStyle: 'Style', // MISSING
ok: 'OK', // MISSING
cancel: 'Cancel', // MISSING
close: 'Close', // MISSING
preview: 'Preview', // MISSING
resize: 'Resize', // MISSING
generalTab: 'Општо',
advancedTab: 'Advanced', // MISSING
validateNumberFailed: 'This value is not a number.', // MISSING
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Options', // MISSING
target: 'Target', // MISSING
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'Left to Right (LTR)', // MISSING
langDirRTL: 'Right to Left (RTL)', // MISSING
styles: 'Style', // MISSING
cssClasses: 'Stylesheet Classes', // MISSING
width: 'Width', // MISSING
height: 'Height', // MISSING
align: 'Alignment', // MISSING
alignLeft: 'Left', // MISSING
alignRight: 'Right', // MISSING
alignCenter: 'Center', // MISSING
alignTop: 'Top', // MISSING
alignMiddle: 'Middle', // MISSING
alignBottom: 'Bottom', // MISSING
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Mongolian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'mn' ] = {
// ARIA description.
editor: 'Хэлбэрт бичвэр боловсруулагч',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Үйлчлэгч тооцоолуур (сервэр)-ийг үзэх',
url: 'цахим хуудасны хаяг (URL)',
protocol: 'Протокол',
upload: 'Илгээж ачаалах',
uploadSubmit: 'Үүнийг үйлчлэгч тооцоолуур (сервер) лүү илгээх',
image: 'Зураг',
flash: 'Флаш хөдөлгөөнтэй зураг',
form: 'Маягт',
checkbox: 'Тэмдэглээний нүд',
radio: 'Радио товчлуур',
textField: 'Бичвэрийн талбар',
textarea: 'Бичвэрийн зай',
hiddenField: 'Далд талбар',
button: 'Товчлуур',
select: 'Сонголтын талбар',
imageButton: 'Зургий товчуур',
notSet: '<тохируулаагүй>',
id: 'Id (техникийн нэр)',
name: 'Нэр',
langDir: 'Хэлний чиглэл',
langDirLtr: 'Зүүнээс баруун (LTR)',
langDirRtl: 'Баруунаас зүүн (RTL)',
langCode: 'Хэлний код',
longDescr: 'Урт тайлбарын вэб хаяг',
cssClass: 'Хэлбэрийн хуудасны ангиуд',
advisoryTitle: 'Зөвлөх гарчиг',
cssStyle: 'Загвар',
ok: 'За',
cancel: 'Болих',
close: 'Хаах',
preview: 'Урьдчилан харах',
resize: 'Resize', // MISSING
generalTab: 'Ерөнхий',
advancedTab: 'Гүнзгий',
validateNumberFailed: 'This value is not a number.', // MISSING
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Сонголт',
target: 'Бай',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'Зүүн талаас баруун тийшээ (LTR)',
langDirRTL: 'Баруун талаас зүүн тийшээ (RTL)',
styles: 'Загвар',
cssClasses: 'Хэлбэрийн хуудасны ангиуд',
width: 'Өргөн',
height: 'Өндөр',
align: 'Эгнээ',
alignLeft: 'Зүүн',
alignRight: 'Баруун',
alignCenter: 'Төвд',
alignTop: 'Дээд талд',
alignMiddle: 'Дунд',
alignBottom: 'Доод талд',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Өндөр нь тоо байх ёстой.',
invalidWidth: 'Өргөн нь тоо байх ёстой.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Malay language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ms' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Browse Server',
url: 'URL',
protocol: 'Protokol',
upload: 'Muat Naik',
uploadSubmit: 'Hantar ke Server',
image: 'Gambar',
flash: 'Flash', // MISSING
form: 'Borang',
checkbox: 'Checkbox',
radio: 'Butang Radio',
textField: 'Text Field',
textarea: 'Textarea',
hiddenField: 'Field Tersembunyi',
button: 'Butang',
select: 'Field Pilihan',
imageButton: 'Butang Bergambar',
notSet: '<tidak di set>',
id: 'Id',
name: 'Nama',
langDir: 'Arah Tulisan',
langDirLtr: 'Kiri ke Kanan (LTR)',
langDirRtl: 'Kanan ke Kiri (RTL)',
langCode: 'Kod Bahasa',
longDescr: 'Butiran Panjang URL',
cssClass: 'Kelas-kelas Stylesheet',
advisoryTitle: 'Tajuk Makluman',
cssStyle: 'Stail',
ok: 'OK',
cancel: 'Batal',
close: 'Close', // MISSING
preview: 'Prebiu',
resize: 'Resize', // MISSING
generalTab: 'General', // MISSING
advancedTab: 'Advanced',
validateNumberFailed: 'This value is not a number.', // MISSING
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Options', // MISSING
target: 'Sasaran',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'Kiri ke Kanan (LTR)',
langDirRTL: 'Kanan ke Kiri (RTL)',
styles: 'Stail',
cssClasses: 'Kelas-kelas Stylesheet',
width: 'Lebar',
height: 'Tinggi',
align: 'Jajaran',
alignLeft: 'Kiri',
alignRight: 'Kanan',
alignCenter: 'Tengah',
alignTop: 'Atas',
alignMiddle: 'Pertengahan',
alignBottom: 'Bawah',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Norwegian Bokmål language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'nb' ] = {
// ARIA description.
editor: 'Rikteksteditor',
editorPanel: 'Panel for rikteksteditor',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Trykk ALT 0 for hjelp',
browseServer: 'Bla igjennom server',
url: 'URL',
protocol: 'Protokoll',
upload: 'Last opp',
uploadSubmit: 'Send det til serveren',
image: 'Bilde',
flash: 'Flash',
form: 'Skjema',
checkbox: 'Avmerkingsboks',
radio: 'Alternativknapp',
textField: 'Tekstboks',
textarea: 'Tekstområde',
hiddenField: 'Skjult felt',
button: 'Knapp',
select: 'Rullegardinliste',
imageButton: 'Bildeknapp',
notSet: '<ikke satt>',
id: 'Id',
name: 'Navn',
langDir: 'Språkretning',
langDirLtr: 'Venstre til høyre (VTH)',
langDirRtl: 'Høyre til venstre (HTV)',
langCode: 'Språkkode',
longDescr: 'Utvidet beskrivelse',
cssClass: 'Stilarkklasser',
advisoryTitle: 'Tittel',
cssStyle: 'Stil',
ok: 'OK',
cancel: 'Avbryt',
close: 'Lukk',
preview: 'Forhåndsvis',
resize: 'Dra for å skalere',
generalTab: 'Generelt',
advancedTab: 'Avansert',
validateNumberFailed: 'Denne verdien er ikke et tall.',
confirmNewPage: 'Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
confirmCancel: 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
options: 'Valg',
target: 'Mål',
targetNew: 'Nytt vindu (_blank)',
targetTop: 'Hele vindu (_top)',
targetSelf: 'Samme vindu (_self)',
targetParent: 'Foreldrevindu (_parent)',
langDirLTR: 'Venstre til høyre (VTH)',
langDirRTL: 'Høyre til venstre (HTV)',
styles: 'Stil',
cssClasses: 'Stilarkklasser',
width: 'Bredde',
height: 'Høyde',
align: 'Juster',
alignLeft: 'Venstre',
alignRight: 'Høyre',
alignCenter: 'Midtjuster',
alignTop: 'Topp',
alignMiddle: 'Midten',
alignBottom: 'Bunn',
invalidValue : 'Ugyldig verdi.',
invalidHeight: 'Høyde må være et tall.',
invalidWidth: 'Bredde må være et tall.',
invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
invalidHtmlLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).',
invalidInlineStyle: 'Verdi angitt for inline stil må bestå av en eller flere sett med formatet "navn : verdi", separert med semikolon',
cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object for the
* Dutch language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'nl' ] = {
// ARIA description.
editor: 'Tekstverwerker',
editorPanel: 'Tekstverwerker beheerpaneel',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Druk ALT 0 voor hulp',
browseServer: 'Bladeren op server',
url: 'URL',
protocol: 'Protocol',
upload: 'Upload',
uploadSubmit: 'Naar server verzenden',
image: 'Afbeelding',
flash: 'Flash',
form: 'Formulier',
checkbox: 'Selectievinkje',
radio: 'Keuzerondje',
textField: 'Tekstveld',
textarea: 'Tekstvak',
hiddenField: 'Verborgen veld',
button: 'Knop',
select: 'Selectieveld',
imageButton: 'Afbeeldingsknop',
notSet: '<niet ingevuld>',
id: 'Id',
name: 'Naam',
langDir: 'Schrijfrichting',
langDirLtr: 'Links naar rechts (LTR)',
langDirRtl: 'Rechts naar links (RTL)',
langCode: 'Taalcode',
longDescr: 'Lange URL-omschrijving',
cssClass: 'Stylesheet-klassen',
advisoryTitle: 'Adviserende titel',
cssStyle: 'Stijl',
ok: 'OK',
cancel: 'Annuleren',
close: 'Sluiten',
preview: 'Voorbeeld',
resize: 'Sleep om te herschalen',
generalTab: 'Algemeen',
advancedTab: 'Geavanceerd',
validateNumberFailed: 'Deze waarde is geen geldig getal.',
confirmNewPage: 'Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?',
confirmCancel: 'Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?',
options: 'Opties',
target: 'Doelvenster',
targetNew: 'Nieuw venster (_blank)',
targetTop: 'Hele venster (_top)',
targetSelf: 'Zelfde venster (_self)',
targetParent: 'Origineel venster (_parent)',
langDirLTR: 'Links naar rechts (LTR)',
langDirRTL: 'Rechts naar links (RTL)',
styles: 'Stijl',
cssClasses: 'Stylesheet-klassen',
width: 'Breedte',
height: 'Hoogte',
align: 'Uitlijning',
alignLeft: 'Links',
alignRight: 'Rechts',
alignCenter: 'Centreren',
alignTop: 'Boven',
alignMiddle: 'Midden',
alignBottom: 'Onder',
invalidValue : 'Ongeldige waarde.',
invalidHeight: 'De hoogte moet een getal zijn.',
invalidWidth: 'De breedte moet een getal zijn.',
invalidCssLength: 'Waarde in veld "%1" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).',
invalidHtmlLength: 'Waarde in veld "%1" moet een positief nummer zijn, met of zonder een geldige HTML meeteenheid (px of %).',
invalidInlineStyle: 'Waarde voor de online stijl moet bestaan uit een of meerdere tupels met het formaat "naam : waarde", gescheiden door puntkomma\'s.',
cssLengthTooltip: 'Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, niet beschikbaar</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Norwegian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'no' ] = {
// ARIA description.
editor: 'Rikteksteditor',
editorPanel: 'Panel for rikteksteditor',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Trykk ALT 0 for hjelp',
browseServer: 'Bla igjennom server',
url: 'URL',
protocol: 'Protokoll',
upload: 'Last opp',
uploadSubmit: 'Send det til serveren',
image: 'Bilde',
flash: 'Flash',
form: 'Skjema',
checkbox: 'Avmerkingsboks',
radio: 'Alternativknapp',
textField: 'Tekstboks',
textarea: 'Tekstområde',
hiddenField: 'Skjult felt',
button: 'Knapp',
select: 'Rullegardinliste',
imageButton: 'Bildeknapp',
notSet: '<ikke satt>',
id: 'Id',
name: 'Navn',
langDir: 'Språkretning',
langDirLtr: 'Venstre til høyre (VTH)',
langDirRtl: 'Høyre til venstre (HTV)',
langCode: 'Språkkode',
longDescr: 'Utvidet beskrivelse',
cssClass: 'Stilarkklasser',
advisoryTitle: 'Tittel',
cssStyle: 'Stil',
ok: 'OK',
cancel: 'Avbryt',
close: 'Lukk',
preview: 'Forhåndsvis',
resize: 'Dra for å skalere',
generalTab: 'Generelt',
advancedTab: 'Avansert',
validateNumberFailed: 'Denne verdien er ikke et tall.',
confirmNewPage: 'Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
confirmCancel: 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
options: 'Valg',
target: 'Mål',
targetNew: 'Nytt vindu (_blank)',
targetTop: 'Hele vindu (_top)',
targetSelf: 'Samme vindu (_self)',
targetParent: 'Foreldrevindu (_parent)',
langDirLTR: 'Venstre til høyre (VTH)',
langDirRTL: 'Høyre til venstre (HTV)',
styles: 'Stil',
cssClasses: 'Stilarkklasser',
width: 'Bredde',
height: 'Høyde',
align: 'Juster',
alignLeft: 'Venstre',
alignRight: 'Høyre',
alignCenter: 'Midtjuster',
alignTop: 'Topp',
alignMiddle: 'Midten',
alignBottom: 'Bunn',
invalidValue : 'Ugyldig verdi.',
invalidHeight: 'Høyde må være et tall.',
invalidWidth: 'Bredde må være et tall.',
invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
invalidHtmlLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).',
invalidInlineStyle: 'Verdi angitt for inline stil må bestå av en eller flere sett med formatet "navn : verdi", separert med semikolon',
cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object for the
* Polish language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'pl' ] = {
// ARIA description.
editor: 'Edytor tekstu sformatowanego',
editorPanel: 'Panel edytora tekstu sformatowanego',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'W celu uzyskania pomocy naciśnij ALT 0',
browseServer: 'Przeglądaj',
url: 'Adres URL',
protocol: 'Protokół',
upload: 'Wyślij',
uploadSubmit: 'Wyślij',
image: 'Obrazek',
flash: 'Flash',
form: 'Formularz',
checkbox: 'Pole wyboru (checkbox)',
radio: 'Przycisk opcji (radio)',
textField: 'Pole tekstowe',
textarea: 'Obszar tekstowy',
hiddenField: 'Pole ukryte',
button: 'Przycisk',
select: 'Lista wyboru',
imageButton: 'Przycisk graficzny',
notSet: '<nie ustawiono>',
id: 'Id',
name: 'Nazwa',
langDir: 'Kierunek tekstu',
langDirLtr: 'Od lewej do prawej (LTR)',
langDirRtl: 'Od prawej do lewej (RTL)',
langCode: 'Kod języka',
longDescr: 'Adres URL długiego opisu',
cssClass: 'Nazwa klasy CSS',
advisoryTitle: 'Opis obiektu docelowego',
cssStyle: 'Styl',
ok: 'OK',
cancel: 'Anuluj',
close: 'Zamknij',
preview: 'Podgląd',
resize: 'Przeciągnij, aby zmienić rozmiar',
generalTab: 'Ogólne',
advancedTab: 'Zaawansowane',
validateNumberFailed: 'Ta wartość nie jest liczbą.',
confirmNewPage: 'Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę?',
confirmCancel: 'Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe?',
options: 'Opcje',
target: 'Obiekt docelowy',
targetNew: 'Nowe okno (_blank)',
targetTop: 'Okno najwyżej w hierarchii (_top)',
targetSelf: 'To samo okno (_self)',
targetParent: 'Okno nadrzędne (_parent)',
langDirLTR: 'Od lewej do prawej (LTR)',
langDirRTL: 'Od prawej do lewej (RTL)',
styles: 'Style',
cssClasses: 'Klasy arkusza stylów',
width: 'Szerokość',
height: 'Wysokość',
align: 'Wyrównaj',
alignLeft: 'Do lewej',
alignRight: 'Do prawej',
alignCenter: 'Do środka',
alignTop: 'Do góry',
alignMiddle: 'Do środka',
alignBottom: 'Do dołu',
invalidValue : 'Nieprawidłowa wartość.',
invalidHeight: 'Wysokość musi być liczbą.',
invalidWidth: 'Szerokość musi być liczbą.',
invalidCssLength: 'Wartość podana dla pola "%1" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
invalidHtmlLength: 'Wartość podana dla pola "%1" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z HTML (px lub %).',
invalidInlineStyle: 'Wartość podana dla stylu musi składać się z jednej lub większej liczby krotek w formacie "nazwa : wartość", rozdzielonych średnikami.',
cssLengthTooltip: 'Wpisz liczbę dla wartości w pikselach lub liczbę wraz z jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, niedostępne</span>'
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'pt-br' ] = {
// ARIA description.
editor: 'Editor de Rich Text',
editorPanel: 'Painel do editor de Rich Text',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Pressione ALT+0 para ajuda',
browseServer: 'Localizar no Servidor',
url: 'URL',
protocol: 'Protocolo',
upload: 'Enviar ao Servidor',
uploadSubmit: 'Enviar para o Servidor',
image: 'Imagem',
flash: 'Flash',
form: 'Formulário',
checkbox: 'Caixa de Seleção',
radio: 'Botão de Opção',
textField: 'Caixa de Texto',
textarea: 'Área de Texto',
hiddenField: 'Campo Oculto',
button: 'Botão',
select: 'Caixa de Listagem',
imageButton: 'Botão de Imagem',
notSet: '<não ajustado>',
id: 'Id',
name: 'Nome',
langDir: 'Direção do idioma',
langDirLtr: 'Esquerda para Direita (LTR)',
langDirRtl: 'Direita para Esquerda (RTL)',
langCode: 'Idioma',
longDescr: 'Descrição da URL',
cssClass: 'Classe de CSS',
advisoryTitle: 'Título',
cssStyle: 'Estilos',
ok: 'OK',
cancel: 'Cancelar',
close: 'Fechar',
preview: 'Visualizar',
resize: 'Arraste para redimensionar',
generalTab: 'Geral',
advancedTab: 'Avançado',
validateNumberFailed: 'Este valor não é um número.',
confirmNewPage: 'Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?',
confirmCancel: 'Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?',
options: 'Opções',
target: 'Destino',
targetNew: 'Nova Janela (_blank)',
targetTop: 'Janela de Cima (_top)',
targetSelf: 'Mesma Janela (_self)',
targetParent: 'Janela Pai (_parent)',
langDirLTR: 'Esquerda para Direita (LTR)',
langDirRTL: 'Direita para Esquerda (RTL)',
styles: 'Estilo',
cssClasses: 'Classes',
width: 'Largura',
height: 'Altura',
align: 'Alinhamento',
alignLeft: 'Esquerda',
alignRight: 'Direita',
alignCenter: 'Centralizado',
alignTop: 'Superior',
alignMiddle: 'Centralizado',
alignBottom: 'Inferior',
invalidValue : 'Valor inválido.',
invalidHeight: 'A altura tem que ser um número',
invalidWidth: 'A largura tem que ser um número.',
invalidCssLength: 'O valor do campo "%1" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).',
invalidHtmlLength: 'O valor do campo "%1" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px ou %).',
invalidInlineStyle: 'O valor válido para estilo deve conter uma ou mais tuplas no formato "nome : valor", separados por ponto e vírgula.',
cssLengthTooltip: 'Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, indisponível</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Portuguese language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'pt' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Painel do Rich Text Editor',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Pressione ALT+0 para ajuda',
browseServer: 'Explorar Servidor',
url: 'URL',
protocol: 'Protocolo',
upload: 'Enviar',
uploadSubmit: 'Enviá-lo para o Servidor',
image: 'Imagem',
flash: 'Flash',
form: 'Formulário',
checkbox: 'Caixa de Seleção',
radio: 'Botão',
textField: 'Campo do Texto',
textarea: 'Área do Texto',
hiddenField: 'Campo Ocultado',
button: 'Botão',
select: 'Campo da Seleção',
imageButton: 'Botão da Imagem',
notSet: '<Não definido>',
id: 'Id.',
name: 'Nome',
langDir: 'Direção do Idioma',
langDirLtr: 'Esquerda para a Direita (EPD)',
langDirRtl: 'Direita para a Esquerda (DPE)',
langCode: 'Código do Idioma',
longDescr: 'Descrição Completa do URL',
cssClass: 'Classes de Estilo de Folhas',
advisoryTitle: 'Título Consultivo',
cssStyle: 'Estilo',
ok: 'CONFIRMAR',
cancel: 'Cancelar',
close: 'Fechar',
preview: 'Pré-visualização',
resize: 'Redimensionar',
generalTab: 'Geral',
advancedTab: 'Avançado',
validateNumberFailed: 'Este valor não é um numero.',
confirmNewPage: 'Irão ser perdidas quaisquer alterações não guardadas. Tem certeza que deseja carregar a página nova?',
confirmCancel: 'Foram alteradas algumas das opções. Tem a certeza que deseja fechar a janela?',
options: 'Opções',
target: 'Destino',
targetNew: 'Nova Janela (_blank)',
targetTop: 'Janela Superior (_top)',
targetSelf: 'Mesma Janela (_self)',
targetParent: 'Janela Parente (_parent)',
langDirLTR: 'Esquerda para a Direita (EPD)',
langDirRTL: 'Direita para a Esquerda (DPE)',
styles: 'Estilo',
cssClasses: 'Classes de Estilo de Folhas',
width: 'Largura',
height: 'Altura',
align: 'Alinhamento',
alignLeft: 'Esquerda',
alignRight: 'Direita',
alignCenter: 'Centrado',
alignTop: 'Topo',
alignMiddle: 'Centro',
alignBottom: 'Base',
invalidValue : 'Valor inválido.',
invalidHeight: 'A altura deve ser um número.',
invalidWidth: 'A largura deve ser um número. ',
invalidCssLength: 'O valor especificado para o campo "1%" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
invalidHtmlLength: 'O valor especificado para o campo "1%" deve ser um número positivo, com ou sem uma unidade de medida HTML válida (px ou %).',
invalidInlineStyle: 'O valor especificado para o estilo em linha deve constituir um ou mais conjuntos de valores com o formato de "nome : valor", separados por ponto e vírgula.',
cssLengthTooltip: 'Insira um número para um valor em pontos ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, indisponível</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Romanian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ro' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Apasă ALT 0 pentru ajutor',
browseServer: 'Răsfoieşte server',
url: 'URL',
protocol: 'Protocol',
upload: 'Încarcă',
uploadSubmit: 'Trimite la server',
image: 'Imagine',
flash: 'Flash',
form: 'Formular (Form)',
checkbox: 'Bifă (Checkbox)',
radio: 'Buton radio (RadioButton)',
textField: 'Câmp text (TextField)',
textarea: 'Suprafaţă text (Textarea)',
hiddenField: 'Câmp ascuns (HiddenField)',
button: 'Buton',
select: 'Câmp selecţie (SelectionField)',
imageButton: 'Buton imagine (ImageButton)',
notSet: '<nesetat>',
id: 'Id',
name: 'Nume',
langDir: 'Direcţia cuvintelor',
langDirLtr: 'stânga-dreapta (LTR)',
langDirRtl: 'dreapta-stânga (RTL)',
langCode: 'Codul limbii',
longDescr: 'Descrierea lungă URL',
cssClass: 'Clasele cu stilul paginii (CSS)',
advisoryTitle: 'Titlul consultativ',
cssStyle: 'Stil',
ok: 'OK',
cancel: 'Anulare',
close: 'Închide',
preview: 'Previzualizare',
resize: 'Trage pentru a redimensiona',
generalTab: 'General',
advancedTab: 'Avansat',
validateNumberFailed: 'Această valoare nu este un număr.',
confirmNewPage: 'Orice modificări nesalvate ale acestui conținut, vor fi pierdute. Sigur doriți încărcarea unei noi pagini?',
confirmCancel: 'Câteva opțiuni au fost schimbate. Sigur doriți să închideți dialogul?',
options: 'Opțiuni',
target: 'Țintă',
targetNew: 'Fereastră nouă (_blank)',
targetTop: 'Topmost Window (_top)',
targetSelf: 'În aceeași fereastră (_self)',
targetParent: 'Parent Window (_parent)',
langDirLTR: 'Stânga spre Dreapta (LTR)',
langDirRTL: 'Dreapta spre Stânga (RTL)',
styles: 'Stil',
cssClasses: 'Stylesheet Classes',
width: 'Lăţime',
height: 'Înălţime',
align: 'Aliniere',
alignLeft: 'Mărește Bara',
alignRight: 'Dreapta',
alignCenter: 'Centru',
alignTop: 'Sus',
alignMiddle: 'Mijloc',
alignBottom: 'Jos',
invalidValue : 'Varloare invalida',
invalidHeight: 'Înălțimea trebuie să fie un număr.',
invalidWidth: 'Lățimea trebuie să fie un număr.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nu este disponibil</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object for the
* Russian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ru' ] = {
// ARIA description.
editor: 'Визуальный текстовый редактор',
editorPanel: 'Визуальный редактор текста',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Нажмите ALT-0 для открытия справки',
browseServer: 'Выбор на сервере',
url: 'Ссылка',
protocol: 'Протокол',
upload: 'Загрузка файла',
uploadSubmit: 'Загрузить на сервер',
image: 'Изображение',
flash: 'Flash',
form: 'Форма',
checkbox: 'Чекбокс',
radio: 'Радиокнопка',
textField: 'Текстовое поле',
textarea: 'Многострочное текстовое поле',
hiddenField: 'Скрытое поле',
button: 'Кнопка',
select: 'Выпадающий список',
imageButton: 'Кнопка-изображение',
notSet: '<не указано>',
id: 'Идентификатор',
name: 'Имя',
langDir: 'Направление текста',
langDirLtr: 'Слева направо (LTR)',
langDirRtl: 'Справа налево (RTL)',
langCode: 'Код языка',
longDescr: 'Длинное описание ссылки',
cssClass: 'Класс CSS',
advisoryTitle: 'Заголовок',
cssStyle: 'Стиль',
ok: 'ОК',
cancel: 'Отмена',
close: 'Закрыть',
preview: 'Предпросмотр',
resize: 'Перетащите для изменения размера',
generalTab: 'Основное',
advancedTab: 'Дополнительно',
validateNumberFailed: 'Это значение не является числом.',
confirmNewPage: 'Несохранённые изменения будут потеряны! Вы действительно желаете перейти на другую страницу?',
confirmCancel: 'Некоторые параметры были изменены. Вы уверены, что желаете закрыть без сохранения?',
options: 'Параметры',
target: 'Цель',
targetNew: 'Новое окно (_blank)',
targetTop: 'Главное окно (_top)',
targetSelf: 'Текущее окно (_self)',
targetParent: 'Родительское окно (_parent)',
langDirLTR: 'Слева направо (LTR)',
langDirRTL: 'Справа налево (RTL)',
styles: 'Стиль',
cssClasses: 'CSS классы',
width: 'Ширина',
height: 'Высота',
align: 'Выравнивание',
alignLeft: 'По левому краю',
alignRight: 'По правому краю',
alignCenter: 'По центру',
alignTop: 'Поверху',
alignMiddle: 'Посередине',
alignBottom: 'Понизу',
invalidValue : 'Недопустимое значение.',
invalidHeight: 'Высота задается числом.',
invalidWidth: 'Ширина задается числом.',
invalidCssLength: 'Значение, указанное в поле "%1", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).',
invalidHtmlLength: 'Значение, указанное в поле "%1", должно быть положительным целым числом. Допускается указание единиц меры HTML (px или %).',
invalidInlineStyle: 'Значение, указанное для стиля элемента, должно состоять из одной или нескольких пар данных в формате "параметр : значение", разделённых точкой с запятой.',
cssLengthTooltip: 'Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, недоступно</span>'
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'si' ] = {
// ARIA description.
editor: 'පොහොසත් වචන සංස්කරණ',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'උදව් ලබා ගැනීමට ALT බොත්තම ඔබන්න',
browseServer: 'සෙවුම් සේවාදායකය',
url: 'URL',
protocol: 'මුලාපත්‍රය',
upload: 'උඩුගතකිරීම',
uploadSubmit: 'සේවාදායකය වෙත යොමුකිරිම',
image: 'රුපය',
flash: 'දීප්තිය',
form: 'පෝරමය',
checkbox: 'ලකුණුකිරීමේ කොටුව',
radio: 'තේරීම් ',
textField: 'ලියන ප්‍රදේශය',
textarea: 'අකුරු ',
hiddenField: 'සැඟවුණු ප්‍රදේශය',
button: 'බොත්තම',
select: 'තෝරන්න ',
imageButton: 'රුප ',
notSet: '<යොදා >',
id: 'අංකය',
name: 'නම',
langDir: 'භාෂා දිශාව',
langDirLtr: 'වමේසිට දකුණුට',
langDirRtl: 'දකුණේ සිට වමට',
langCode: 'භාෂා කේතය',
longDescr: 'සම්පුර්න පැහැදිලි කිරීම',
cssClass: 'විලාශ පත්‍ර පන්තිය',
advisoryTitle: 'උපදෙස් ',
cssStyle: 'විලාසය',
ok: 'නිරදි',
cancel: 'අවලංගු කිරීම',
close: 'වැසීම',
preview: 'නැවත ',
resize: 'විශාලත්වය නැවත වෙනස් කිරීම',
generalTab: 'පොදු කරුණු.',
advancedTab: 'දීය',
validateNumberFailed: 'මෙම වටිනාකම අංකයක් නොවේ',
confirmNewPage: 'ආරක්ෂා නොකළ සියලුම දත්තයන් මැකියනුලැබේ. ඔබට නව පිටුවක් ලබා ගැනීමට අවශ්‍යද?',
confirmCancel: 'ඇතම් විකල්පයන් වෙනස් කර ඇත. ඔබට මින් නික්මීමට අවශ්‍යද?',
options: ' විකල්ප',
target: 'අරමුණ',
targetNew: 'නව කව්ළුව',
targetTop: 'වැදගත් කව්ළුව',
targetSelf: 'එම කව්ළුව(_තම\\\\)',
targetParent: 'මව් කව්ළුව(_)',
langDirLTR: 'වමේසිට දකුණුට',
langDirRTL: 'දකුණේ සිට වමට',
styles: 'විලාසය',
cssClasses: 'විලාසපත්‍ර පන්තිය',
width: 'පළල',
height: 'උස',
align: 'ගැලපුම',
alignLeft: 'වම',
alignRight: 'දකුණ',
alignCenter: 'මධ්‍ය',
alignTop: 'ඉ',
alignMiddle: 'මැද',
alignBottom: 'පහල',
invalidValue : 'වැරදී වටිනාකමකි',
invalidHeight: 'උස අංකයක් විය යුතුය',
invalidWidth: 'පළල අංකයක් විය යුතුය',
invalidCssLength: 'වටිනාකමක් නිරූපණය කිරීම "%1" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ නිවරදි නොවන CSS මිනුම් එකක(px, %, in, cm, mm, em, ex, pt, pc)',
invalidHtmlLength: 'වටිනාකමක් නිරූපණය කිරීම "%1" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ නිවරදි නොවන HTML මිනුම් එකක (px හෝ %).',
invalidInlineStyle: 'වටිනාකමක් නිරූපණය කිරීම පේළි විලාසයයට ආකෘතිය අනතර්ග විය යුතය "නම : වටිනාකම", තිත් කොමාවකින් වෙන් වෙන ලද.',
cssLengthTooltip: 'සංක්‍යා ඇතුලත් කිරීමේදී වටිනාකම තිත් ප්‍රමාණය නිවරදි CSS ඒකක(තිත්, %, අඟල්,සෙමි, mm, em, ex, pt, pc)',
// Put the voice-only part of the label in the span.
unavailable: '%1<span පන්තිය="ළඟා වියහැකි ද බලන්න">, නොමැතිනම්</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Slovak language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'sk' ] = {
// ARIA description.
editor: 'Editor formátovaného textu',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Stlačte ALT 0 pre nápovedu',
browseServer: 'Prechádzať server',
url: 'URL',
protocol: 'Protokol',
upload: 'Odoslať',
uploadSubmit: 'Odoslať na server',
image: 'Obrázok',
flash: 'Flash',
form: 'Formulár',
checkbox: 'Zaškrtávacie políčko',
radio: 'Prepínač',
textField: 'Textové pole',
textarea: 'Textová oblasť',
hiddenField: 'Skryté pole',
button: 'Tlačidlo',
select: 'Rozbaľovací zoznam',
imageButton: 'Obrázkové tlačidlo',
notSet: '<nenastavené>',
id: 'Id',
name: 'Meno',
langDir: 'Orientácia jazyka',
langDirLtr: 'Zľava doprava (LTR)',
langDirRtl: 'Sprava doľava (RTL)',
langCode: 'Kód jazyka',
longDescr: 'Dlhý popis URL',
cssClass: 'Trieda štýlu',
advisoryTitle: 'Pomocný titulok',
cssStyle: 'Štýl',
ok: 'OK',
cancel: 'Zrušiť',
close: 'Zatvorit',
preview: 'Náhľad',
resize: 'Zmeniť veľkosť',
generalTab: 'Hlavné',
advancedTab: 'Rozšírené',
validateNumberFailed: 'Hodnota nieje číslo.',
confirmNewPage: 'Prajete si načítat novú stránku? Všetky neuložené zmeny budú stratené. ',
confirmCancel: 'Niektore možnosti boli zmenené. Naozaj chcete zavrieť okno?',
options: 'Možnosti',
target: 'Cieľ',
targetNew: 'Nové okno (_blank)',
targetTop: 'Najvrchnejšie okno (_top)',
targetSelf: 'To isté okno (_self)',
targetParent: 'Rodičovské okno (_parent)',
langDirLTR: 'Zľava doprava (LTR)',
langDirRTL: 'Sprava doľava (RTL)',
styles: 'Štýl',
cssClasses: 'Triedy štýlu',
width: 'Šírka',
height: 'Výška',
align: 'Zarovnanie',
alignLeft: 'Vľavo',
alignRight: 'Vpravo',
alignCenter: 'Na stred',
alignTop: 'Nahor',
alignMiddle: 'Na stred',
alignBottom: 'Dole',
invalidValue : 'Neplatná hodnota.',
invalidHeight: 'Výška musí byť číslo.',
invalidWidth: 'Šírka musí byť číslo.',
invalidCssLength: 'Špecifikovaná hodnota pre pole "%1" musí byť kladné číslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).',
invalidHtmlLength: 'Špecifikovaná hodnota pre pole "%1" musí byť kladné číslo s alebo bez platnej HTML mernej jednotky (px alebo %).',
invalidInlineStyle: 'Zadaná hodnota pre inline štýl musí pozostávať s jedného, alebo viac dvojíc formátu "názov: hodnota", oddelených bodkočiarkou.',
cssLengthTooltip: 'Vložte číslo pre hodnotu v pixeloch alebo číslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt alebo pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nedostupný</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Slovenian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'sl' ] = {
// ARIA description.
editor: 'Bogat Urejevalnik Besedila',
editorPanel: 'Rich Text Editor plošča',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Pritisnite ALT 0 za pomoč',
browseServer: 'Prebrskaj na strežniku',
url: 'URL',
protocol: 'Protokol',
upload: 'Naloži',
uploadSubmit: 'Pošlji na strežnik',
image: 'Slika',
flash: 'Flash',
form: 'Obrazec',
checkbox: 'Potrditveno polje',
radio: 'Izbirno polje',
textField: 'Vnosno polje',
textarea: 'Vnosno območje',
hiddenField: 'Skrito polje',
button: 'Gumb',
select: 'Spustno Polje',
imageButton: 'Slikovni Gumb',
notSet: '<ni določen>',
id: 'Id',
name: 'Ime',
langDir: 'Smer jezika',
langDirLtr: 'Od leve proti desni (LTR)',
langDirRtl: 'Od desne proti levi (RTL)',
langCode: 'Koda Jezika',
longDescr: 'Dolg opis URL-ja',
cssClass: 'Razred stilne predloge',
advisoryTitle: 'Predlagani naslov',
cssStyle: 'Slog',
ok: 'V redu',
cancel: 'Prekliči',
close: 'Zapri',
preview: 'Predogled',
resize: 'Potegni za spremembo velikosti',
generalTab: 'Splošno',
advancedTab: 'Napredno',
validateNumberFailed: 'Ta vrednost ni število.',
confirmNewPage: 'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
confirmCancel: 'Nekaj možnosti je bilo spremenjenih. Ali res želite zapreti okno?',
options: 'Možnosti',
target: 'Cilj',
targetNew: 'Novo Okno (_blank)',
targetTop: 'Vrhovno Okno (_top)',
targetSelf: 'Enako Okno (_self)',
targetParent: 'Matično Okno (_parent)',
langDirLTR: 'Od leve proti desni (LTR)',
langDirRTL: 'Od desne proti levi (RTL)',
styles: 'Slog',
cssClasses: 'Razred stilne predloge',
width: 'Širina',
height: 'Višina',
align: 'Poravnava',
alignLeft: 'Levo',
alignRight: 'Desno',
alignCenter: 'Sredinsko',
alignTop: 'Na vrh',
alignMiddle: 'V sredino',
alignBottom: 'Na dno',
invalidValue : 'Neveljavna vrednost.',
invalidHeight: 'Višina mora biti število.',
invalidWidth: 'Širina mora biti število.',
invalidCssLength: 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne CSS enote za merjenje (px, %, in, cm, mm, em, ex, pt, ali pc).',
invalidHtmlLength: 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne HTML enote za merjenje (px ali %).',
invalidInlineStyle: 'Vrednost določena za inline slog mora biti sestavljena iz ene ali več tork (tuples) z obliko "ime : vrednost", ločenih z podpičji.',
cssLengthTooltip: 'Vnesite številko za vrednost v slikovnih pikah (pixels) ali številko z veljavno CSS enoto (px, %, in, cm, mm, em, ex, pt, ali pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, nedosegljiv</span>'
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'sq' ] = {
// ARIA description.
editor: 'Redaktues i Pasur Teksti',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Shtyp ALT 0 për ndihmë',
browseServer: 'Shfleto në Server',
url: 'URL',
protocol: 'Protokolli',
upload: 'Ngarko',
uploadSubmit: 'Dërgo në server',
image: 'Imazh',
flash: 'Objekt flash',
form: 'Formular',
checkbox: 'Checkbox',
radio: 'Buton radio',
textField: 'Fushë tekst',
textarea: 'Hapësirë tekst',
hiddenField: 'Fushë e fshehur',
button: 'Buton',
select: 'Menu zgjedhjeje',
imageButton: 'Buton imazhi',
notSet: '<e pazgjedhur>',
id: 'Id',
name: 'Emër',
langDir: 'Kod gjuhe',
langDirLtr: 'Nga e majta në të djathtë (LTR)',
langDirRtl: 'Nga e djathta në të majtë (RTL)',
langCode: 'Kod gjuhe',
longDescr: 'Përshkrim i hollësishëm',
cssClass: 'Klasa stili CSS',
advisoryTitle: 'Titull',
cssStyle: 'Stil',
ok: 'OK',
cancel: 'Anulo',
close: 'Mbyll',
preview: 'Parashiko',
resize: 'Ripërmaso',
generalTab: 'Të përgjithshme',
advancedTab: 'Të përparuara',
validateNumberFailed: 'Vlera e futur nuk është një numër',
confirmNewPage: 'Çdo ndryshim që nuk është ruajtur do humbasë. Je i sigurtë që dëshiron të krijosh një faqe të re?',
confirmCancel: 'Disa opsione kanë ndryshuar. Je i sigurtë që dëshiron ta mbyllësh dritaren?',
options: 'Opsione',
target: 'Objektivi',
targetNew: 'Dritare e re (_blank)',
targetTop: 'Dritare në plan të parë (_top)',
targetSelf: 'E njëjta dritare (_self)',
targetParent: 'Dritarja prind (_parent)',
langDirLTR: 'Nga e majta në të djathë (LTR)',
langDirRTL: 'Nga e djathta në të majtë (RTL)',
styles: 'Stil',
cssClasses: 'Klasa Stili CSS',
width: 'Gjerësi',
height: 'Lartësi',
align: 'Rreshtim',
alignLeft: 'Majtas',
alignRight: 'Djathtas',
alignCenter: 'Qendër',
alignTop: 'Lart',
alignMiddle: 'Në mes',
alignBottom: 'Poshtë',
invalidValue : 'Vlerë e pavlefshme',
invalidHeight: 'Lartësia duhet të jetë një numër',
invalidWidth: 'Gjerësia duhet të jetë një numër',
invalidCssLength: 'Vlera e fushës "%1" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme CSS (px, %, in, cm, mm, em, ex, pt ose pc).',
invalidHtmlLength: 'Vlera e fushës "%1" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme HTML (px ose %)',
invalidInlineStyle: 'Stili inline duhet të jetë një apo disa vlera të formatit "emër: vlerë", ndarë nga pikëpresje.',
cssLengthTooltip: 'Fut një numër për vlerën në pixel apo një numër me një njësi të vlefshme CSS (px, %, in, cm, mm, ex, pt, ose pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, i padisponueshëm</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Serbian (Latin) language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'sr-latn' ] = {
// ARIA description.
editor: 'Bogati uređivač teksta',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Pretraži server',
url: 'URL',
protocol: 'Protokol',
upload: 'Pošalji',
uploadSubmit: 'Pošalji na server',
image: 'Slika',
flash: 'Fleš',
form: 'Forma',
checkbox: 'Polje za potvrdu',
radio: 'Radio-dugme',
textField: 'Tekstualno polje',
textarea: 'Zona teksta',
hiddenField: 'Skriveno polje',
button: 'Dugme',
select: 'Izborno polje',
imageButton: 'Dugme sa slikom',
notSet: '<nije postavljeno>',
id: 'Id',
name: 'Naziv',
langDir: 'Smer jezika',
langDirLtr: 'S leva na desno (LTR)',
langDirRtl: 'S desna na levo (RTL)',
langCode: 'Kôd jezika',
longDescr: 'Pun opis URL',
cssClass: 'Stylesheet klase',
advisoryTitle: 'Advisory naslov',
cssStyle: 'Stil',
ok: 'OK',
cancel: 'Otkaži',
close: 'Zatvori',
preview: 'Izgled stranice',
resize: 'Resize', // MISSING
generalTab: 'Opšte',
advancedTab: 'Napredni tagovi',
validateNumberFailed: 'Ova vrednost nije broj.',
confirmNewPage: 'Nesačuvane promene ovog sadržaja će biti izgubljene. Jeste li sigurni da želita da učitate novu stranu?',
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Opcije',
target: 'Meta',
targetNew: 'Novi prozor (_blank)',
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Isti prozor (_self)',
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'S leva na desno (LTR)',
langDirRTL: 'S desna na levo (RTL)',
styles: 'Stil',
cssClasses: 'Stylesheet klase',
width: 'Širina',
height: 'Visina',
align: 'Ravnanje',
alignLeft: 'Levo',
alignRight: 'Desno',
alignCenter: 'Sredina',
alignTop: 'Vrh',
alignMiddle: 'Sredina',
alignBottom: 'Dole',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Visina mora biti broj.',
invalidWidth: 'Širina mora biti broj.',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Serbian (Cyrillic) language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'sr' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Press ALT 0 for help', // MISSING
browseServer: 'Претражи сервер',
url: 'УРЛ',
protocol: 'Протокол',
upload: 'Пошаљи',
uploadSubmit: 'Пошаљи на сервер',
image: 'Слика',
flash: 'Флеш елемент',
form: 'Форма',
checkbox: 'Поље за потврду',
radio: 'Радио-дугме',
textField: 'Текстуално поље',
textarea: 'Зона текста',
hiddenField: 'Скривено поље',
button: 'Дугме',
select: 'Изборно поље',
imageButton: 'Дугме са сликом',
notSet: '<није постављено>',
id: 'Ид',
name: 'Назив',
langDir: 'Смер језика',
langDirLtr: 'С лева на десно (LTR)',
langDirRtl: 'С десна на лево (RTL)',
langCode: 'Kôд језика',
longDescr: 'Пун опис УРЛ',
cssClass: 'Stylesheet класе',
advisoryTitle: 'Advisory наслов',
cssStyle: 'Стил',
ok: 'OK',
cancel: 'Oткажи',
close: 'Затвори',
preview: 'Изглед странице',
resize: 'Resize', // MISSING
generalTab: 'Опште',
advancedTab: 'Напредни тагови',
validateNumberFailed: 'Ова вредност није цигра.',
confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
confirmCancel: 'You have changed some options. Are you sure you want to close the dialog window?', // MISSING
options: 'Опције',
target: 'Meтa',
targetNew: 'New Window (_blank)', // MISSING
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'Same Window (_self)', // MISSING
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'С лева на десно (LTR)',
langDirRTL: 'С десна на лево (RTL)',
styles: 'Стил',
cssClasses: 'Stylesheet класе',
width: 'Ширина',
height: 'Висина',
align: 'Равнање',
alignLeft: 'Лево',
alignRight: 'Десно',
alignCenter: 'Средина',
alignTop: 'Врх',
alignMiddle: 'Средина',
alignBottom: 'Доле',
invalidValue : 'Invalid value.', // MISSING
invalidHeight: 'Height must be a number.', // MISSING
invalidWidth: 'Width must be a number.', // MISSING
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'sv' ] = {
// ARIA description.
editor: 'Rich Text Editor',
editorPanel: 'Rich Text Editor panel',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Tryck ALT 0 för hjälp',
browseServer: 'Bläddra på server',
url: 'URL',
protocol: 'Protokoll',
upload: 'Ladda upp',
uploadSubmit: 'Skicka till server',
image: 'Bild',
flash: 'Flash',
form: 'Formulär',
checkbox: 'Kryssruta',
radio: 'Alternativknapp',
textField: 'Textfält',
textarea: 'Textruta',
hiddenField: 'Dolt fält',
button: 'Knapp',
select: 'Flervalslista',
imageButton: 'Bildknapp',
notSet: '<ej angivet>',
id: 'Id',
name: 'Namn',
langDir: 'Språkriktning',
langDirLtr: 'Vänster till Höger (VTH)',
langDirRtl: 'Höger till Vänster (HTV)',
langCode: 'Språkkod',
longDescr: 'URL-beskrivning',
cssClass: 'Stilmall',
advisoryTitle: 'Titel',
cssStyle: 'Stilmall',
ok: 'OK',
cancel: 'Avbryt',
close: 'Stäng',
preview: 'Förhandsgranska',
resize: 'Dra för att ändra storlek',
generalTab: 'Allmänt',
advancedTab: 'Avancerad',
validateNumberFailed: 'Värdet är inte ett nummer.',
confirmNewPage: 'Alla ändringar i innehållet kommer att förloras. Är du säker på att du vill ladda en ny sida?',
confirmCancel: 'Några av alternativen har ändrats. Är du säker på att du vill stänga dialogrutan?',
options: 'Alternativ',
target: 'Mål',
targetNew: 'Nytt fönster (_blank)',
targetTop: 'Översta fönstret (_top)',
targetSelf: 'Samma fönster (_self)',
targetParent: 'Föregående fönster (_parent)',
langDirLTR: 'Vänster till höger (LTR)',
langDirRTL: 'Höger till vänster (RTL)',
styles: 'Stil',
cssClasses: 'Stilmallar',
width: 'Bredd',
height: 'Höjd',
align: 'Justering',
alignLeft: 'Vänster',
alignRight: 'Höger',
alignCenter: 'Centrerad',
alignTop: 'Överkant',
alignMiddle: 'Mitten',
alignBottom: 'Nederkant',
invalidValue : 'Felaktigt värde.',
invalidHeight: 'Höjd måste vara ett nummer.',
invalidWidth: 'Bredd måste vara ett nummer.',
invalidCssLength: 'Värdet för fältet "%1" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).',
invalidHtmlLength: 'Värdet för fältet "%1" måste vara ett positivt nummer med eller utan godkända HTML-mätenheter (px eller %).',
invalidInlineStyle: 'Det angivna värdet för style måste innehålla en eller flera tupler separerade med semikolon i följande format: "name : value"',
cssLengthTooltip: 'Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, Ej tillgänglig</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Thai language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'th' ] = {
// ARIA description.
editor: 'Rich Text Editor', // MISSING
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'กด ALT 0 หากต้องการความช่วยเหลือ',
browseServer: 'เปิดหน้าต่างจัดการไฟล์อัพโหลด',
url: 'ที่อยู่อ้างอิง URL',
protocol: 'โปรโตคอล',
upload: 'อัพโหลดไฟล์',
uploadSubmit: 'อัพโหลดไฟล์ไปเก็บไว้ที่เครื่องแม่ข่าย (เซิร์ฟเวอร์)',
image: 'รูปภาพ',
flash: 'ไฟล์ Flash',
form: 'แบบฟอร์ม',
checkbox: 'เช็คบ๊อก',
radio: 'เรดิโอบัตตอน',
textField: 'เท็กซ์ฟิลด์',
textarea: 'เท็กซ์แอเรีย',
hiddenField: 'ฮิดเดนฟิลด์',
button: 'ปุ่ม',
select: 'แถบตัวเลือก',
imageButton: 'ปุ่มแบบรูปภาพ',
notSet: '<ไม่ระบุ>',
id: 'ไอดี',
name: 'ชื่อ',
langDir: 'การเขียน-อ่านภาษา',
langDirLtr: 'จากซ้ายไปขวา (LTR)',
langDirRtl: 'จากขวามาซ้าย (RTL)',
langCode: 'รหัสภาษา',
longDescr: 'คำอธิบายประกอบ URL',
cssClass: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',
advisoryTitle: 'คำเกริ่นนำ',
cssStyle: 'ลักษณะการแสดงผล',
ok: 'ตกลง',
cancel: 'ยกเลิก',
close: 'ปิด',
preview: 'ดูหน้าเอกสารตัวอย่าง',
resize: 'ปรับขนาด',
generalTab: 'ทั่วไป',
advancedTab: 'ขั้นสูง',
validateNumberFailed: 'ค่านี้ไม่ใช่ตัวเลข',
confirmNewPage: 'การเปลี่ยนแปลงใดๆ ในเนื้อหานี้ ที่ไม่ได้ถูกบันทึกไว้ จะสูญหายทั้งหมด คุณแน่ใจว่าจะเรียกหน้าใหม่?',
confirmCancel: 'ตัวเลือกบางตัวมีการเปลี่ยนแปลง คุณแน่ใจว่าจะปิดกล่องโต้ตอบนี้?',
options: 'ตัวเลือก',
target: 'การเปิดหน้าลิงค์',
targetNew: 'หน้าต่างใหม่ (_blank)',
targetTop: 'Topmost Window (_top)', // MISSING
targetSelf: 'หน้าต่างเดียวกัน (_self)',
targetParent: 'Parent Window (_parent)', // MISSING
langDirLTR: 'จากซ้ายไปขวา (LTR)',
langDirRTL: 'จากขวามาซ้าย (RTL)',
styles: 'ลักษณะการแสดงผล',
cssClasses: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',
width: 'ความกว้าง',
height: 'ความสูง',
align: 'การจัดวาง',
alignLeft: 'ชิดซ้าย',
alignRight: 'ชิดขวา',
alignCenter: 'กึ่งกลาง',
alignTop: 'บนสุด',
alignMiddle: 'กึ่งกลางแนวตั้ง',
alignBottom: 'ชิดด้านล่าง',
invalidValue : 'ค่าไม่ถูกต้อง',
invalidHeight: 'ความสูงต้องเป็นตัวเลข',
invalidWidth: 'ความกว้างต้องเป็นตัวเลข',
invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'tr' ] = {
// ARIA description.
editor: 'Zengin Metin Editörü',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Yardım için ALT 0 tuşlarına basın',
browseServer: 'Sunucuya Gözat',
url: 'URL',
protocol: 'Protokol',
upload: 'Karşıya Yükle',
uploadSubmit: 'Sunucuya Gönder',
image: 'Resim',
flash: 'Flash',
form: 'Form',
checkbox: 'Onay Kutusu',
radio: 'Seçenek Düğmesi',
textField: 'Metin Kutusu',
textarea: 'Metin Alanı',
hiddenField: 'Gizli Alan',
button: 'Düğme',
select: 'Seçme Alanı',
imageButton: 'Resim Düğmesi',
notSet: '<tanımlanmamış>',
id: 'Kimlik',
name: 'İsim',
langDir: 'Dil Yönü',
langDirLtr: 'Soldan Sağa (LTR)',
langDirRtl: 'Sağdan Sola (RTL)',
langCode: 'Dil Kodlaması',
longDescr: 'Uzun Tanımlı URL',
cssClass: 'Biçem Sayfası Sınıfları',
advisoryTitle: 'Öneri Başlığı',
cssStyle: 'Biçem',
ok: 'Tamam',
cancel: 'İptal',
close: 'Kapat',
preview: 'Önizleme',
resize: 'Yeniden Boyutlandır',
generalTab: 'Genel',
advancedTab: 'Gelişmiş',
validateNumberFailed: 'Bu değer bir sayı değildir.',
confirmNewPage: 'Bu içerikle ilgili kaydedilmemiş tüm bilgiler kaybolacaktır. Yeni bir sayfa yüklemek istediğinizden emin misiniz?',
confirmCancel: 'Bazı seçenekleri değiştirdiniz. İletişim penceresini kapatmak istediğinizden emin misiniz?',
options: 'Seçenekler',
target: 'Hedef',
targetNew: 'Yeni Pencere (_blank)',
targetTop: 'En Üstteki Pencere (_top)',
targetSelf: 'Aynı Pencere (_self)',
targetParent: 'Üst Pencere (_parent)',
langDirLTR: 'Soldan Sağa (LTR)',
langDirRTL: 'Sağdan Sola (RTL)',
styles: 'Biçem',
cssClasses: 'Biçem Sayfası Sınıfları',
width: 'Genişlik',
height: 'Yükseklik',
align: 'Hizalama',
alignLeft: 'Sol',
alignRight: 'Sağ',
alignCenter: 'Ortala',
alignTop: 'Üst',
alignMiddle: 'Orta',
alignBottom: 'Alt',
invalidValue : 'Geçersiz değer.',
invalidHeight: 'Yükseklik değeri bir sayı olmalıdır.',
invalidWidth: 'Genişlik değeri bir sayı olmalıdır.',
invalidCssLength: '"%1" alanı için verilen değer, geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt, veya pc) içeren veya içermeyen pozitif bir sayı olmalıdır.',
invalidHtmlLength: 'Belirttiğiniz sayı "%1" alanı için pozitif bir sayı HTML birim değeri olmalıdır (px veya %).',
invalidInlineStyle: 'Satıriçi biçem için verilen değer, "isim : değer" biçiminde birbirinden noktalı virgüllerle ayrılan bir veya daha fazla değişkenler grubundan oluşmalıdır.',
cssLengthTooltip: 'Piksel türünde bir sayı veya geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt veya pc) içeren bir sayı girin.',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, kullanılamaz</span>'
}
};

View File

@ -0,0 +1,97 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'ug' ] = {
// ARIA description.
editor: 'تەھرىرلىگۈچ',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'ALT+0 نى بېسىپ ياردەمنى كۆرۈڭ',
browseServer: 'كۆرسىتىش مۇلازىمېتىر',
url: 'ئەسلى ھۆججەت',
protocol: 'كېلىشىم',
upload: 'يۈكلە',
uploadSubmit: 'مۇلازىمېتىرغا يۈكلە',
image: 'سۈرەت',
flash: 'Flash',
form: 'جەدۋەل',
checkbox: 'كۆپ تاللاش رامكىسى',
radio: 'يەككە تاللاش توپچىسى',
textField: 'يەككە قۇر تېكىست',
textarea: 'كۆپ قۇر تېكىست',
hiddenField: 'يوشۇرۇن دائىرە',
button: 'توپچا',
select: 'تىزىم/تىزىملىك',
imageButton: 'سۈرەت دائىرە',
notSet: '‹تەڭشەلمىگەن›',
id: 'ID',
name: 'ئات',
langDir: 'تىل يۆنىلىشى',
langDirLtr: 'سولدىن ئوڭغا (LTR)',
langDirRtl: 'ئوڭدىن سولغا (RTL)',
langCode: 'تىل كودى',
longDescr: 'تەپسىلىي چۈشەندۈرۈش ئادرېسى',
cssClass: 'ئۇسلۇب خىلىنىڭ ئاتى',
advisoryTitle: 'ماۋزۇ',
cssStyle: 'قۇر ئىچىدىكى ئۇسلۇبى',
ok: 'جەزملە',
cancel: 'ۋاز كەچ',
close: 'تاقا',
preview: 'ئالدىن كۆزەت',
resize: 'چوڭلۇقىنى ئۆزگەرت',
generalTab: 'ئادەتتىكى',
advancedTab: 'ئالىي',
validateNumberFailed: 'سان پىچىمىدا كىرگۈزۈش زۆرۈر',
confirmNewPage: 'نۆۋەتتىكى پۈتۈك مەزمۇنى ساقلانمىدى، يېڭى پۈتۈك قۇرامسىز؟',
confirmCancel: 'قىسمەن ئۆزگەرتىش ساقلانمىدى، بۇ سۆزلەشكۈنى تاقامسىز؟',
options: 'تاللانما',
target: 'نىشان كۆزنەك',
targetNew: 'يېڭى كۆزنەك (_blank)',
targetTop: 'پۈتۈن بەت (_top)',
targetSelf: 'مەزكۇر كۆزنەك (_self)',
targetParent: 'ئاتا كۆزنەك (_parent)',
langDirLTR: 'سولدىن ئوڭغا (LTR)',
langDirRTL: 'ئوڭدىن سولغا (RTL)',
styles: 'ئۇسلۇبلار',
cssClasses: 'ئۇسلۇب خىللىرى',
width: 'كەڭلىك',
height: 'ئېگىزلىك',
align: 'توغرىلىنىشى',
alignLeft: 'سول',
alignRight: 'ئوڭ',
alignCenter: 'ئوتتۇرا',
alignTop: 'ئۈستى',
alignMiddle: 'ئوتتۇرا',
alignBottom: 'ئاستى',
invalidValue : 'ئىناۋەتسىز قىممەت.',
invalidHeight: 'ئېگىزلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر',
invalidWidth: 'كەڭلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر',
invalidCssLength: 'بۇ سۆز بۆلىكى چوقۇم مۇۋاپىق بولغان CSS ئۇزۇنلۇق قىممىتى بولۇشى زۆرۈر، بىرلىكى (px, %, in, cm, mm, em, ex, pt ياكى pc)',
invalidHtmlLength: 'بۇ سۆز بۆلىكى چوقۇم بىرىكمە HTML ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px ياكى %)',
invalidInlineStyle: 'ئىچكى باغلانما ئۇسلۇبى چوقۇم چېكىتلىك پەش بىلەن ئايرىلغان بىر ياكى كۆپ «خاسلىق ئاتى:خاسلىق قىممىتى» پىچىمىدا بولۇشى لازىم',
cssLengthTooltip: 'بۇ سۆز بۆلىكى بىرىكمە CSS ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px, %, in, cm, mm, em, ex, pt ياكى pc)',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class=\\\\"cke_accessibility\\\\">، ئىشلەتكىلى بولمايدۇ</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Ukrainian language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'uk' ] = {
// ARIA description.
editor: 'Текстовий редактор',
editorPanel: 'Панель текстового редактора',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'натисніть ALT 0 для довідки',
browseServer: 'Огляд Сервера',
url: 'URL',
protocol: 'Протокол',
upload: 'Надіслати',
uploadSubmit: 'Надіслати на сервер',
image: 'Зображення',
flash: 'Flash',
form: 'Форма',
checkbox: 'Галочка',
radio: 'Кнопка вибору',
textField: 'Текстове поле',
textarea: 'Текстова область',
hiddenField: 'Приховане поле',
button: 'Кнопка',
select: 'Список',
imageButton: 'Кнопка із зображенням',
notSet: '<не визначено>',
id: 'Ідентифікатор',
name: 'Ім\'я',
langDir: 'Напрямок мови',
langDirLtr: 'Зліва направо (LTR)',
langDirRtl: 'Справа наліво (RTL)',
langCode: 'Код мови',
longDescr: 'Довгий опис URL',
cssClass: 'Клас CSS',
advisoryTitle: 'Заголовок',
cssStyle: 'Стиль CSS',
ok: 'ОК',
cancel: 'Скасувати',
close: 'Закрити',
preview: 'Попередній перегляд',
resize: 'Потягніть для зміни розмірів',
generalTab: 'Основне',
advancedTab: 'Додаткове',
validateNumberFailed: 'Значення не є цілим числом.',
confirmNewPage: 'Всі незбережені зміни будуть втрачені. Ви впевнені, що хочете завантажити нову сторінку?',
confirmCancel: 'Деякі опції змінено. Закрити вікно без збереження змін?',
options: 'Опції',
target: 'Ціль',
targetNew: 'Нове вікно (_blank)',
targetTop: 'Поточне вікно (_top)',
targetSelf: 'Поточний фрейм/вікно (_self)',
targetParent: 'Батьківський фрейм/вікно (_parent)',
langDirLTR: 'Зліва направо (LTR)',
langDirRTL: 'Справа наліво (RTL)',
styles: 'Стиль CSS',
cssClasses: 'Клас CSS',
width: 'Ширина',
height: 'Висота',
align: 'Вирівнювання',
alignLeft: 'По лівому краю',
alignRight: 'По правому краю',
alignCenter: 'По центру',
alignTop: 'По верхньому краю',
alignMiddle: 'По середині',
alignBottom: 'По нижньому краю',
invalidValue : 'Невірне значення.',
invalidHeight: 'Висота повинна бути цілим числом.',
invalidWidth: 'Ширина повинна бути цілим числом.',
invalidCssLength: 'Значення, вказане для "%1" в полі повинно бути позитивним числом або без дійсного виміру CSS блоку (px, %, in, cm, mm, em, ex, pt або pc).',
invalidHtmlLength: 'Значення, вказане для "%1" в полі повинно бути позитивним числом або без дійсного виміру HTML блоку (px або %).',
invalidInlineStyle: 'Значення, вказане для вбудованого стилю повинне складатися з одного чи кількох кортежів у форматі "ім\'я : значення", розділених крапкою з комою.',
cssLengthTooltip: 'Введіть номер значення в пікселях або число з дійсною одиниці CSS (px, %, in, cm, mm, em, ex, pt або pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, не доступне</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Vietnamese language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'vi' ] = {
// ARIA description.
editor: 'Bộ soạn thảo văn bản có định dạng',
editorPanel: 'Rich Text Editor panel', // MISSING
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: 'Nhấn ALT + 0 để được giúp đỡ',
browseServer: 'Duyệt máy chủ',
url: 'URL',
protocol: 'Giao thức',
upload: 'Tải lên',
uploadSubmit: 'Tải lên máy chủ',
image: 'Hình ảnh',
flash: 'Flash',
form: 'Biểu mẫu',
checkbox: 'Nút kiểm',
radio: 'Nút chọn',
textField: 'Trường văn bản',
textarea: 'Vùng văn bản',
hiddenField: 'Trường ẩn',
button: 'Nút',
select: 'Ô chọn',
imageButton: 'Nút hình ảnh',
notSet: '<không thiết lập>',
id: 'Định danh',
name: 'Tên',
langDir: 'Hướng ngôn ngữ',
langDirLtr: 'Trái sang phải (LTR)',
langDirRtl: 'Phải sang trái (RTL)',
langCode: 'Mã ngôn ngữ',
longDescr: 'Mô tả URL',
cssClass: 'Lớp Stylesheet',
advisoryTitle: 'Nhan đề hướng dẫn',
cssStyle: 'Kiểu (style)',
ok: 'Đồng ý',
cancel: 'Bỏ qua',
close: 'Đóng',
preview: 'Xem trước',
resize: 'Kéo rê để thay đổi kích cỡ',
generalTab: 'Tab chung',
advancedTab: 'Tab mở rộng',
validateNumberFailed: 'Giá trị này không phải là số.',
confirmNewPage: 'Mọi thay đổi không được lưu lại, nội dung này sẽ bị mất. Bạn có chắc chắn muốn tải một trang mới?',
confirmCancel: 'Một vài tùy chọn đã bị thay đổi. Bạn có chắc chắn muốn đóng hộp thoại?',
options: 'Tùy chọn',
target: 'Đích đến',
targetNew: 'Cửa sổ mới (_blank)',
targetTop: 'Cửa sổ trên cùng (_top)',
targetSelf: 'Tại trang (_self)',
targetParent: 'Cửa sổ cha (_parent)',
langDirLTR: 'Trái sang phải (LTR)',
langDirRTL: 'Phải sang trái (RTL)',
styles: 'Kiểu',
cssClasses: 'Lớp CSS',
width: 'Chiều rộng',
height: 'chiều cao',
align: 'Vị trí',
alignLeft: 'Trái',
alignRight: 'Phải',
alignCenter: 'Giữa',
alignTop: 'Trên',
alignMiddle: 'Giữa',
alignBottom: 'Dưới',
invalidValue : 'Giá trị không hợp lệ.',
invalidHeight: 'Chiều cao phải là số nguyên.',
invalidWidth: 'Chiều rộng phải là số nguyên.',
invalidCssLength: 'Giá trị quy định cho trường "%1" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
invalidHtmlLength: 'Giá trị quy định cho trường "%1" phải là một số dương có hoặc không có một đơn vị đo HTML hợp lệ (px hoặc %).',
invalidInlineStyle: 'Giá trị quy định cho kiểu nội tuyến phải bao gồm một hoặc nhiều dữ liệu với định dạng "tên:giá trị", cách nhau bằng dấu chấm phẩy.',
cssLengthTooltip: 'Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, không có</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Chinese Simplified language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'zh-cn' ] = {
// ARIA description.
editor: '所见即所得编辑器',
editorPanel: '所见即所得编辑器面板',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: '按 ALT+0 获得帮助',
browseServer: '浏览服务器',
url: 'URL',
protocol: '协议',
upload: '上传',
uploadSubmit: '上传到服务器',
image: '图像',
flash: 'Flash',
form: '表单',
checkbox: '复选框',
radio: '单选按钮',
textField: '单行文本',
textarea: '多行文本',
hiddenField: '隐藏域',
button: '按钮',
select: '列表/菜单',
imageButton: '图像按钮',
notSet: '<没有设置>',
id: 'ID',
name: '名称',
langDir: '语言方向',
langDirLtr: '从左到右 (LTR)',
langDirRtl: '从右到左 (RTL)',
langCode: '语言代码',
longDescr: '详细说明 URL',
cssClass: '样式类名称',
advisoryTitle: '标题',
cssStyle: '行内样式',
ok: '确定',
cancel: '取消',
close: '关闭',
preview: '预览',
resize: '拖拽以改变大小',
generalTab: '常规',
advancedTab: '高级',
validateNumberFailed: '需要输入数字格式',
confirmNewPage: '当前文档内容未保存,是否确认新建文档?',
confirmCancel: '部分修改尚未保存,是否确认关闭对话框?',
options: '选项',
target: '目标窗口',
targetNew: '新窗口 (_blank)',
targetTop: '整页 (_top)',
targetSelf: '本窗口 (_self)',
targetParent: '父窗口 (_parent)',
langDirLTR: '从左到右 (LTR)',
langDirRTL: '从右到左 (RTL)',
styles: '样式',
cssClasses: '样式类',
width: '宽度',
height: '高度',
align: '对齐方式',
alignLeft: '左对齐',
alignRight: '右对齐',
alignCenter: '居中',
alignTop: '顶端',
alignMiddle: '居中',
alignBottom: '底部',
invalidValue : '无效的值。',
invalidHeight: '高度必须为数字格式',
invalidWidth: '宽度必须为数字格式',
invalidCssLength: '此“%1”字段的值必须为正数可以包含或不包含一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)',
invalidHtmlLength: '此“%1”字段的值必须为正数可以包含或不包含一个有效的 HTML 长度单位(px 或 %)',
invalidInlineStyle: '内联样式必须为格式是以分号分隔的一个或多个“属性名 : 属性值”。',
cssLengthTooltip: '输入一个表示像素值的数字,或加上一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)。',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">,不可用</span>'
}
};

View File

@ -0,0 +1,98 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.lang} object, for the
* Chinese Traditional language.
*/
/**#@+
@type String
@example
*/
/**
* Contains the dictionary of language entries.
* @namespace
*/
CKEDITOR.lang[ 'zh' ] = {
// ARIA description.
editor: 'RTF 編輯器',
editorPanel: 'RTF 編輯器面板',
// Common messages and labels.
common: {
// Screenreader titles. Please note that screenreaders are not always capable
// of reading non-English words. So be careful while translating it.
editorHelp: '按下 ALT 0 取得說明。',
browseServer: '瀏覽伺服器',
url: 'URL',
protocol: '通訊協定',
upload: '上傳',
uploadSubmit: '傳送至伺服器',
image: '圖片',
flash: 'Flash',
form: '表格',
checkbox: '核取方塊',
radio: '選項按鈕',
textField: '文字欄位',
textarea: '文字區域',
hiddenField: '隱藏欄位',
button: '按鈕',
select: '選取欄位',
imageButton: '影像按鈕',
notSet: '<未設定>',
id: 'ID',
name: '名稱',
langDir: '語言方向',
langDirLtr: '從左至右 (LTR)',
langDirRtl: '從右至左 (RTL)',
langCode: '語言代碼',
longDescr: '完整描述 URL',
cssClass: '樣式表類別',
advisoryTitle: '標題',
cssStyle: '樣式',
ok: '確定',
cancel: '取消',
close: '關閉',
preview: '預覽',
resize: '調整大小',
generalTab: '一般',
advancedTab: '進階',
validateNumberFailed: '此值不是數值。',
confirmNewPage: '現存的修改尚未儲存,要開新檔案?',
confirmCancel: '部份選項尚未儲存,要關閉對話框?',
options: '選項',
target: '目標',
targetNew: '開新視窗 (_blank)',
targetTop: '最上層視窗 (_top)',
targetSelf: '相同視窗 (_self)',
targetParent: '父視窗 (_parent)',
langDirLTR: '由左至右 (LTR)',
langDirRTL: '由右至左 (RTL)',
styles: '樣式',
cssClasses: '樣式表類別',
width: '寬度',
height: '高度',
align: '對齊方式',
alignLeft: '靠左對齊',
alignRight: '靠右對齊',
alignCenter: '置中對齊',
alignTop: '頂端',
alignMiddle: '中間對齊',
alignBottom: '底端',
invalidValue : '無效值。',
invalidHeight: '高度必須為數字。',
invalidWidth: '寬度必須為數字。',
invalidCssLength: '「%1」的值應為正數並可包含有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。',
invalidHtmlLength: '「%1」的值應為正數並可包含有效的 HTML 單位 (px 或 %)。',
invalidInlineStyle: '行內樣式的值應包含一個以上的變數值組,其格式如「名稱:值」,並以分號區隔之。',
cssLengthTooltip: '請輸入數值,單位是像素或有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。',
// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">,無法使用</span>'
}
};