aboutsummaryrefslogtreecommitdiff
path: root/sources/plugins/forms
diff options
context:
space:
mode:
Diffstat (limited to 'sources/plugins/forms')
-rw-r--r--sources/plugins/forms/dialogs/button.js100
-rw-r--r--sources/plugins/forms/dialogs/checkbox.js146
-rw-r--r--sources/plugins/forms/dialogs/form.js145
-rw-r--r--sources/plugins/forms/dialogs/hiddenfield.js83
-rw-r--r--sources/plugins/forms/dialogs/radio.js129
-rw-r--r--sources/plugins/forms/dialogs/select.js505
-rw-r--r--sources/plugins/forms/dialogs/textarea.js128
-rw-r--r--sources/plugins/forms/dialogs/textfield.js193
-rw-r--r--sources/plugins/forms/icons/button.pngbin0 -> 528 bytes
-rw-r--r--sources/plugins/forms/icons/checkbox.pngbin0 -> 756 bytes
-rw-r--r--sources/plugins/forms/icons/form.pngbin0 -> 590 bytes
-rw-r--r--sources/plugins/forms/icons/hiddenfield.pngbin0 -> 239 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/button.pngbin0 -> 933 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/checkbox.pngbin0 -> 1780 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/form.pngbin0 -> 1348 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/hiddenfield.pngbin0 -> 2166 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/imagebutton.pngbin0 -> 1398 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/radio.pngbin0 -> 2435 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/select-rtl.pngbin0 -> 1451 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/select.pngbin0 -> 1452 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/textarea-rtl.pngbin0 -> 1732 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/textarea.pngbin0 -> 1680 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/textfield-rtl.pngbin0 -> 1324 bytes
-rw-r--r--sources/plugins/forms/icons/hidpi/textfield.pngbin0 -> 1324 bytes
-rw-r--r--sources/plugins/forms/icons/imagebutton.pngbin0 -> 680 bytes
-rw-r--r--sources/plugins/forms/icons/radio.pngbin0 -> 874 bytes
-rw-r--r--sources/plugins/forms/icons/select-rtl.pngbin0 -> 617 bytes
-rw-r--r--sources/plugins/forms/icons/select.pngbin0 -> 616 bytes
-rw-r--r--sources/plugins/forms/icons/textarea-rtl.pngbin0 -> 706 bytes
-rw-r--r--sources/plugins/forms/icons/textarea.pngbin0 -> 677 bytes
-rw-r--r--sources/plugins/forms/icons/textfield-rtl.pngbin0 -> 588 bytes
-rw-r--r--sources/plugins/forms/icons/textfield.pngbin0 -> 588 bytes
-rw-r--r--sources/plugins/forms/images/hiddenfield.gifbin0 -> 178 bytes
-rw-r--r--sources/plugins/forms/lang/af.js71
-rw-r--r--sources/plugins/forms/lang/ar.js71
-rw-r--r--sources/plugins/forms/lang/bg.js71
-rw-r--r--sources/plugins/forms/lang/bn.js71
-rw-r--r--sources/plugins/forms/lang/bs.js71
-rw-r--r--sources/plugins/forms/lang/ca.js71
-rw-r--r--sources/plugins/forms/lang/cs.js71
-rw-r--r--sources/plugins/forms/lang/cy.js71
-rw-r--r--sources/plugins/forms/lang/da.js71
-rw-r--r--sources/plugins/forms/lang/de.js71
-rw-r--r--sources/plugins/forms/lang/el.js71
-rw-r--r--sources/plugins/forms/lang/en-au.js71
-rw-r--r--sources/plugins/forms/lang/en-ca.js71
-rw-r--r--sources/plugins/forms/lang/en-gb.js71
-rw-r--r--sources/plugins/forms/lang/en.js71
-rw-r--r--sources/plugins/forms/lang/eo.js71
-rw-r--r--sources/plugins/forms/lang/es.js71
-rw-r--r--sources/plugins/forms/lang/et.js71
-rw-r--r--sources/plugins/forms/lang/eu.js71
-rw-r--r--sources/plugins/forms/lang/fa.js71
-rw-r--r--sources/plugins/forms/lang/fi.js71
-rw-r--r--sources/plugins/forms/lang/fo.js71
-rw-r--r--sources/plugins/forms/lang/fr-ca.js71
-rw-r--r--sources/plugins/forms/lang/fr.js71
-rw-r--r--sources/plugins/forms/lang/gl.js71
-rw-r--r--sources/plugins/forms/lang/gu.js71
-rw-r--r--sources/plugins/forms/lang/he.js71
-rw-r--r--sources/plugins/forms/lang/hi.js71
-rw-r--r--sources/plugins/forms/lang/hr.js71
-rw-r--r--sources/plugins/forms/lang/hu.js71
-rw-r--r--sources/plugins/forms/lang/id.js71
-rw-r--r--sources/plugins/forms/lang/is.js71
-rw-r--r--sources/plugins/forms/lang/it.js71
-rw-r--r--sources/plugins/forms/lang/ja.js71
-rw-r--r--sources/plugins/forms/lang/ka.js71
-rw-r--r--sources/plugins/forms/lang/km.js71
-rw-r--r--sources/plugins/forms/lang/ko.js71
-rw-r--r--sources/plugins/forms/lang/ku.js71
-rw-r--r--sources/plugins/forms/lang/lt.js71
-rw-r--r--sources/plugins/forms/lang/lv.js71
-rw-r--r--sources/plugins/forms/lang/mk.js71
-rw-r--r--sources/plugins/forms/lang/mn.js71
-rw-r--r--sources/plugins/forms/lang/ms.js71
-rw-r--r--sources/plugins/forms/lang/nb.js71
-rw-r--r--sources/plugins/forms/lang/nl.js71
-rw-r--r--sources/plugins/forms/lang/no.js71
-rw-r--r--sources/plugins/forms/lang/pl.js71
-rw-r--r--sources/plugins/forms/lang/pt-br.js71
-rw-r--r--sources/plugins/forms/lang/pt.js71
-rw-r--r--sources/plugins/forms/lang/ro.js71
-rw-r--r--sources/plugins/forms/lang/ru.js71
-rw-r--r--sources/plugins/forms/lang/si.js71
-rw-r--r--sources/plugins/forms/lang/sk.js71
-rw-r--r--sources/plugins/forms/lang/sl.js71
-rw-r--r--sources/plugins/forms/lang/sq.js71
-rw-r--r--sources/plugins/forms/lang/sr-latn.js71
-rw-r--r--sources/plugins/forms/lang/sr.js71
-rw-r--r--sources/plugins/forms/lang/sv.js71
-rw-r--r--sources/plugins/forms/lang/th.js71
-rw-r--r--sources/plugins/forms/lang/tr.js71
-rw-r--r--sources/plugins/forms/lang/tt.js71
-rw-r--r--sources/plugins/forms/lang/ug.js71
-rw-r--r--sources/plugins/forms/lang/uk.js71
-rw-r--r--sources/plugins/forms/lang/vi.js71
-rw-r--r--sources/plugins/forms/lang/zh-cn.js71
-rw-r--r--sources/plugins/forms/lang/zh.js71
-rw-r--r--sources/plugins/forms/plugin.js279
100 files changed, 6394 insertions, 0 deletions
diff --git a/sources/plugins/forms/dialogs/button.js b/sources/plugins/forms/dialogs/button.js
new file mode 100644
index 00000000..b0dd161c
--- /dev/null
+++ b/sources/plugins/forms/dialogs/button.js
@@ -0,0 +1,100 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5
6CKEDITOR.dialog.add( 'button', function( editor ) {
7 function commitAttributes( element ) {
8 var val = this.getValue();
9 if ( val ) {
10 element.attributes[ this.id ] = val;
11 if ( this.id == 'name' )
12 element.attributes[ 'data-cke-saved-name' ] = val;
13 } else {
14 delete element.attributes[ this.id ];
15 if ( this.id == 'name' )
16 delete element.attributes[ 'data-cke-saved-name' ];
17 }
18 }
19
20 return {
21 title: editor.lang.forms.button.title,
22 minWidth: 350,
23 minHeight: 150,
24 onShow: function() {
25 delete this.button;
26 var element = this.getParentEditor().getSelection().getSelectedElement();
27 if ( element && element.is( 'input' ) ) {
28 var type = element.getAttribute( 'type' );
29 if ( type in { button: 1, reset: 1, submit: 1 } ) {
30 this.button = element;
31 this.setupContent( element );
32 }
33 }
34 },
35 onOk: function() {
36 var editor = this.getParentEditor(),
37 element = this.button,
38 isInsertMode = !element;
39
40 var fake = element ? CKEDITOR.htmlParser.fragment.fromHtml( element.getOuterHtml() ).children[ 0 ] : new CKEDITOR.htmlParser.element( 'input' );
41 this.commitContent( fake );
42
43 var writer = new CKEDITOR.htmlParser.basicWriter();
44 fake.writeHtml( writer );
45 var newElement = CKEDITOR.dom.element.createFromHtml( writer.getHtml(), editor.document );
46
47 if ( isInsertMode )
48 editor.insertElement( newElement );
49 else {
50 newElement.replace( element );
51 editor.getSelection().selectElement( newElement );
52 }
53 },
54 contents: [ {
55 id: 'info',
56 label: editor.lang.forms.button.title,
57 title: editor.lang.forms.button.title,
58 elements: [
59 {
60 id: 'name',
61 type: 'text',
62 bidi: true,
63 label: editor.lang.common.name,
64 'default': '',
65 setup: function( element ) {
66 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
67 },
68 commit: commitAttributes
69 },
70 {
71 id: 'value',
72 type: 'text',
73 label: editor.lang.forms.button.text,
74 accessKey: 'V',
75 'default': '',
76 setup: function( element ) {
77 this.setValue( element.getAttribute( 'value' ) || '' );
78 },
79 commit: commitAttributes
80 },
81 {
82 id: 'type',
83 type: 'select',
84 label: editor.lang.forms.button.type,
85 'default': 'button',
86 accessKey: 'T',
87 items: [
88 [ editor.lang.forms.button.typeBtn, 'button' ],
89 [ editor.lang.forms.button.typeSbm, 'submit' ],
90 [ editor.lang.forms.button.typeRst, 'reset' ]
91 ],
92 setup: function( element ) {
93 this.setValue( element.getAttribute( 'type' ) || '' );
94 },
95 commit: commitAttributes
96 }
97 ]
98 } ]
99 };
100} );
diff --git a/sources/plugins/forms/dialogs/checkbox.js b/sources/plugins/forms/dialogs/checkbox.js
new file mode 100644
index 00000000..0bfda9ba
--- /dev/null
+++ b/sources/plugins/forms/dialogs/checkbox.js
@@ -0,0 +1,146 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5
6CKEDITOR.dialog.add( 'checkbox', function( editor ) {
7 return {
8 title: editor.lang.forms.checkboxAndRadio.checkboxTitle,
9 minWidth: 350,
10 minHeight: 140,
11 onShow: function() {
12 delete this.checkbox;
13
14 var element = this.getParentEditor().getSelection().getSelectedElement();
15
16 if ( element && element.getAttribute( 'type' ) == 'checkbox' ) {
17 this.checkbox = element;
18 this.setupContent( element );
19 }
20 },
21 onOk: function() {
22 var editor,
23 element = this.checkbox,
24 isInsertMode = !element;
25
26 if ( isInsertMode ) {
27 editor = this.getParentEditor();
28 element = editor.document.createElement( 'input' );
29 element.setAttribute( 'type', 'checkbox' );
30 editor.insertElement( element );
31 }
32 this.commitContent( { element: element } );
33 },
34 contents: [ {
35 id: 'info',
36 label: editor.lang.forms.checkboxAndRadio.checkboxTitle,
37 title: editor.lang.forms.checkboxAndRadio.checkboxTitle,
38 startupFocus: 'txtName',
39 elements: [ {
40 id: 'txtName',
41 type: 'text',
42 label: editor.lang.common.name,
43 'default': '',
44 accessKey: 'N',
45 setup: function( element ) {
46 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
47 },
48 commit: function( data ) {
49 var element = data.element;
50
51 // IE failed to update 'name' property on input elements, protect it now.
52 if ( this.getValue() )
53 element.data( 'cke-saved-name', this.getValue() );
54 else {
55 element.data( 'cke-saved-name', false );
56 element.removeAttribute( 'name' );
57 }
58 }
59 },
60 {
61 id: 'txtValue',
62 type: 'text',
63 label: editor.lang.forms.checkboxAndRadio.value,
64 'default': '',
65 accessKey: 'V',
66 setup: function( element ) {
67 var value = element.getAttribute( 'value' );
68 // IE Return 'on' as default attr value.
69 this.setValue( CKEDITOR.env.ie && value == 'on' ? '' : value );
70 },
71 commit: function( data ) {
72 var element = data.element,
73 value = this.getValue();
74
75 if ( value && !( CKEDITOR.env.ie && value == 'on' ) )
76 element.setAttribute( 'value', value );
77 else {
78 if ( CKEDITOR.env.ie ) {
79 // Remove attribute 'value' of checkbox (#4721).
80 var checkbox = new CKEDITOR.dom.element( 'input', element.getDocument() );
81 element.copyAttributes( checkbox, { value: 1 } );
82 checkbox.replace( element );
83 editor.getSelection().selectElement( checkbox );
84 data.element = checkbox;
85 } else {
86 element.removeAttribute( 'value' );
87 }
88 }
89 }
90 },
91 {
92 id: 'cmbSelected',
93 type: 'checkbox',
94 label: editor.lang.forms.checkboxAndRadio.selected,
95 'default': '',
96 accessKey: 'S',
97 value: 'checked',
98 setup: function( element ) {
99 this.setValue( element.getAttribute( 'checked' ) );
100 },
101 commit: function( data ) {
102 var element = data.element;
103
104 if ( CKEDITOR.env.ie ) {
105 var isElementChecked = !!element.getAttribute( 'checked' ),
106 isChecked = !!this.getValue();
107
108 if ( isElementChecked != isChecked ) {
109 var replace = CKEDITOR.dom.element.createFromHtml( '<input type="checkbox"' + ( isChecked ? ' checked="checked"' : '' ) +
110 '/>', editor.document );
111
112 element.copyAttributes( replace, { type: 1, checked: 1 } );
113 replace.replace( element );
114 editor.getSelection().selectElement( replace );
115 data.element = replace;
116 }
117 } else {
118 var value = this.getValue();
119 if ( value )
120 element.setAttribute( 'checked', 'checked' );
121 else
122 element.removeAttribute( 'checked' );
123 }
124 }
125 },
126 {
127 id: 'required',
128 type: 'checkbox',
129 label: editor.lang.forms.checkboxAndRadio.required,
130 'default': '',
131 accessKey: 'Q',
132 value: 'required',
133 setup: function( element ) {
134 this.setValue( element.getAttribute( 'required' ) );
135 },
136 commit: function( data ) {
137 var element = data.element;
138 if ( this.getValue() )
139 element.setAttribute( 'required', 'required' );
140 else
141 element.removeAttribute( 'required' );
142 }
143 } ]
144 } ]
145 };
146} );
diff --git a/sources/plugins/forms/dialogs/form.js b/sources/plugins/forms/dialogs/form.js
new file mode 100644
index 00000000..256b0544
--- /dev/null
+++ b/sources/plugins/forms/dialogs/form.js
@@ -0,0 +1,145 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5
6CKEDITOR.dialog.add( 'form', function( editor ) {
7 var autoAttributes = { action: 1, id: 1, method: 1, enctype: 1, target: 1 };
8
9 return {
10 title: editor.lang.forms.form.title,
11 minWidth: 350,
12 minHeight: 200,
13 onShow: function() {
14 delete this.form;
15
16 var path = this.getParentEditor().elementPath(),
17 form = path.contains( 'form', 1 );
18
19 if ( form ) {
20 this.form = form;
21 this.setupContent( form );
22 }
23 },
24 onOk: function() {
25 var editor,
26 element = this.form,
27 isInsertMode = !element;
28
29 if ( isInsertMode ) {
30 editor = this.getParentEditor();
31 element = editor.document.createElement( 'form' );
32 element.appendBogus();
33 }
34
35 if ( isInsertMode )
36 editor.insertElement( element );
37 this.commitContent( element );
38 },
39 onLoad: function() {
40 function autoSetup( element ) {
41 this.setValue( element.getAttribute( this.id ) || '' );
42 }
43
44 function autoCommit( element ) {
45 if ( this.getValue() )
46 element.setAttribute( this.id, this.getValue() );
47 else
48 element.removeAttribute( this.id );
49 }
50
51 this.foreach( function( contentObj ) {
52 if ( autoAttributes[ contentObj.id ] ) {
53 contentObj.setup = autoSetup;
54 contentObj.commit = autoCommit;
55 }
56 } );
57 },
58 contents: [ {
59 id: 'info',
60 label: editor.lang.forms.form.title,
61 title: editor.lang.forms.form.title,
62 elements: [ {
63 id: 'txtName',
64 bidi: true,
65 type: 'text',
66 label: editor.lang.common.name,
67 'default': '',
68 accessKey: 'N',
69 setup: function( element ) {
70 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
71 },
72 commit: function( element ) {
73 if ( this.getValue() )
74 element.data( 'cke-saved-name', this.getValue() );
75 else {
76 element.data( 'cke-saved-name', false );
77 element.removeAttribute( 'name' );
78 }
79 }
80 },
81 {
82 id: 'action',
83 type: 'text',
84 label: editor.lang.forms.form.action,
85 'default': '',
86 accessKey: 'T'
87 },
88 {
89 type: 'hbox',
90 widths: [ '45%', '55%' ],
91 children: [ {
92 id: 'id',
93 type: 'text',
94 label: editor.lang.common.id,
95 'default': '',
96 accessKey: 'I'
97 },
98 {
99 id: 'enctype',
100 type: 'select',
101 label: editor.lang.forms.form.encoding,
102 style: 'width:100%',
103 accessKey: 'E',
104 'default': '',
105 items: [
106 [ '' ],
107 [ 'text/plain' ],
108 [ 'multipart/form-data' ],
109 [ 'application/x-www-form-urlencoded' ]
110 ]
111 } ]
112 },
113 {
114 type: 'hbox',
115 widths: [ '45%', '55%' ],
116 children: [ {
117 id: 'target',
118 type: 'select',
119 label: editor.lang.common.target,
120 style: 'width:100%',
121 accessKey: 'M',
122 'default': '',
123 items: [
124 [ editor.lang.common.notSet, '' ],
125 [ editor.lang.common.targetNew, '_blank' ],
126 [ editor.lang.common.targetTop, '_top' ],
127 [ editor.lang.common.targetSelf, '_self' ],
128 [ editor.lang.common.targetParent, '_parent' ]
129 ]
130 },
131 {
132 id: 'method',
133 type: 'select',
134 label: editor.lang.forms.form.method,
135 accessKey: 'M',
136 'default': 'GET',
137 items: [
138 [ 'GET', 'get' ],
139 [ 'POST', 'post' ]
140 ]
141 } ]
142 } ]
143 } ]
144 };
145} );
diff --git a/sources/plugins/forms/dialogs/hiddenfield.js b/sources/plugins/forms/dialogs/hiddenfield.js
new file mode 100644
index 00000000..b4e0fe3b
--- /dev/null
+++ b/sources/plugins/forms/dialogs/hiddenfield.js
@@ -0,0 +1,83 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5
6CKEDITOR.dialog.add( 'hiddenfield', function( editor ) {
7 return {
8 title: editor.lang.forms.hidden.title,
9 hiddenField: null,
10 minWidth: 350,
11 minHeight: 110,
12 onShow: function() {
13 delete this.hiddenField;
14
15 var editor = this.getParentEditor(),
16 selection = editor.getSelection(),
17 element = selection.getSelectedElement();
18
19 if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' ) {
20 this.hiddenField = element;
21 element = editor.restoreRealElement( this.hiddenField );
22 this.setupContent( element );
23 selection.selectElement( this.hiddenField );
24 }
25 },
26 onOk: function() {
27 var name = this.getValueOf( 'info', '_cke_saved_name' ),
28 editor = this.getParentEditor(),
29 element = CKEDITOR.env.ie && CKEDITOR.document.$.documentMode < 8 ?
30 editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) :
31 editor.document.createElement( 'input' );
32
33 element.setAttribute( 'type', 'hidden' );
34 this.commitContent( element );
35 var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' );
36 if ( !this.hiddenField )
37 editor.insertElement( fakeElement );
38 else {
39 fakeElement.replace( this.hiddenField );
40 editor.getSelection().selectElement( fakeElement );
41 }
42 return true;
43 },
44 contents: [ {
45 id: 'info',
46 label: editor.lang.forms.hidden.title,
47 title: editor.lang.forms.hidden.title,
48 elements: [ {
49 id: '_cke_saved_name',
50 type: 'text',
51 label: editor.lang.forms.hidden.name,
52 'default': '',
53 accessKey: 'N',
54 setup: function( element ) {
55 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
56 },
57 commit: function( element ) {
58 if ( this.getValue() )
59 element.setAttribute( 'name', this.getValue() );
60 else
61 element.removeAttribute( 'name' );
62
63 }
64 },
65 {
66 id: 'value',
67 type: 'text',
68 label: editor.lang.forms.hidden.value,
69 'default': '',
70 accessKey: 'V',
71 setup: function( element ) {
72 this.setValue( element.getAttribute( 'value' ) || '' );
73 },
74 commit: function( element ) {
75 if ( this.getValue() )
76 element.setAttribute( 'value', this.getValue() );
77 else
78 element.removeAttribute( 'value' );
79 }
80 } ]
81 } ]
82 };
83} );
diff --git a/sources/plugins/forms/dialogs/radio.js b/sources/plugins/forms/dialogs/radio.js
new file mode 100644
index 00000000..a9214e41
--- /dev/null
+++ b/sources/plugins/forms/dialogs/radio.js
@@ -0,0 +1,129 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5CKEDITOR.dialog.add( 'radio', function( editor ) {
6 return {
7 title: editor.lang.forms.checkboxAndRadio.radioTitle,
8 minWidth: 350,
9 minHeight: 140,
10 onShow: function() {
11 delete this.radioButton;
12
13 var element = this.getParentEditor().getSelection().getSelectedElement();
14 if ( element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'radio' ) {
15 this.radioButton = element;
16 this.setupContent( element );
17 }
18 },
19 onOk: function() {
20 var editor,
21 element = this.radioButton,
22 isInsertMode = !element;
23
24 if ( isInsertMode ) {
25 editor = this.getParentEditor();
26 element = editor.document.createElement( 'input' );
27 element.setAttribute( 'type', 'radio' );
28 }
29
30 if ( isInsertMode )
31 editor.insertElement( element );
32 this.commitContent( { element: element } );
33 },
34 contents: [ {
35 id: 'info',
36 label: editor.lang.forms.checkboxAndRadio.radioTitle,
37 title: editor.lang.forms.checkboxAndRadio.radioTitle,
38 elements: [ {
39 id: 'name',
40 type: 'text',
41 label: editor.lang.common.name,
42 'default': '',
43 accessKey: 'N',
44 setup: function( element ) {
45 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
46 },
47 commit: function( data ) {
48 var element = data.element;
49
50 if ( this.getValue() )
51 element.data( 'cke-saved-name', this.getValue() );
52 else {
53 element.data( 'cke-saved-name', false );
54 element.removeAttribute( 'name' );
55 }
56 }
57 },
58 {
59 id: 'value',
60 type: 'text',
61 label: editor.lang.forms.checkboxAndRadio.value,
62 'default': '',
63 accessKey: 'V',
64 setup: function( element ) {
65 this.setValue( element.getAttribute( 'value' ) || '' );
66 },
67 commit: function( data ) {
68 var element = data.element;
69
70 if ( this.getValue() )
71 element.setAttribute( 'value', this.getValue() );
72 else
73 element.removeAttribute( 'value' );
74 }
75 },
76 {
77 id: 'checked',
78 type: 'checkbox',
79 label: editor.lang.forms.checkboxAndRadio.selected,
80 'default': '',
81 accessKey: 'S',
82 value: 'checked',
83 setup: function( element ) {
84 this.setValue( element.getAttribute( 'checked' ) );
85 },
86 commit: function( data ) {
87 var element = data.element;
88
89 if ( !CKEDITOR.env.ie ) {
90 if ( this.getValue() )
91 element.setAttribute( 'checked', 'checked' );
92 else
93 element.removeAttribute( 'checked' );
94 } else {
95 var isElementChecked = element.getAttribute( 'checked' );
96 var isChecked = !!this.getValue();
97
98 if ( isElementChecked != isChecked ) {
99 var replace = CKEDITOR.dom.element.createFromHtml( '<input type="radio"' + ( isChecked ? ' checked="checked"' : '' ) +
100 '></input>', editor.document );
101 element.copyAttributes( replace, { type: 1, checked: 1 } );
102 replace.replace( element );
103 editor.getSelection().selectElement( replace );
104 data.element = replace;
105 }
106 }
107 }
108 },
109 {
110 id: 'required',
111 type: 'checkbox',
112 label: editor.lang.forms.checkboxAndRadio.required,
113 'default': '',
114 accessKey: 'Q',
115 value: 'required',
116 setup: function( element ) {
117 this.setValue( element.getAttribute( 'required' ) );
118 },
119 commit: function( data ) {
120 var element = data.element;
121 if ( this.getValue() )
122 element.setAttribute( 'required', 'required' );
123 else
124 element.removeAttribute( 'required' );
125 }
126 } ]
127 } ]
128 };
129} );
diff --git a/sources/plugins/forms/dialogs/select.js b/sources/plugins/forms/dialogs/select.js
new file mode 100644
index 00000000..38842c20
--- /dev/null
+++ b/sources/plugins/forms/dialogs/select.js
@@ -0,0 +1,505 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5CKEDITOR.dialog.add( 'select', function( editor ) {
6 // Add a new option to a SELECT object (combo or list).
7 function addOption( combo, optionText, optionValue, documentObject, index ) {
8 combo = getSelect( combo );
9 var oOption;
10 if ( documentObject )
11 oOption = documentObject.createElement( 'OPTION' );
12 else
13 oOption = document.createElement( 'OPTION' );
14
15 if ( combo && oOption && oOption.getName() == 'option' ) {
16 if ( CKEDITOR.env.ie ) {
17 if ( !isNaN( parseInt( index, 10 ) ) )
18 combo.$.options.add( oOption.$, index );
19 else
20 combo.$.options.add( oOption.$ );
21
22 oOption.$.innerHTML = optionText.length > 0 ? optionText : '';
23 oOption.$.value = optionValue;
24 } else {
25 if ( index !== null && index < combo.getChildCount() )
26 combo.getChild( index < 0 ? 0 : index ).insertBeforeMe( oOption );
27 else
28 combo.append( oOption );
29
30 oOption.setText( optionText.length > 0 ? optionText : '' );
31 oOption.setValue( optionValue );
32 }
33 } else {
34 return false;
35 }
36
37 return oOption;
38 }
39 // Remove all selected options from a SELECT object.
40 function removeSelectedOptions( combo ) {
41 combo = getSelect( combo );
42
43 // Save the selected index
44 var iSelectedIndex = getSelectedIndex( combo );
45
46 // Remove all selected options.
47 for ( var i = combo.getChildren().count() - 1; i >= 0; i-- ) {
48 if ( combo.getChild( i ).$.selected )
49 combo.getChild( i ).remove();
50 }
51
52 // Reset the selection based on the original selected index.
53 setSelectedIndex( combo, iSelectedIndex );
54 }
55 //Modify option from a SELECT object.
56 function modifyOption( combo, index, title, value ) {
57 combo = getSelect( combo );
58 if ( index < 0 )
59 return false;
60 var child = combo.getChild( index );
61 child.setText( title );
62 child.setValue( value );
63 return child;
64 }
65
66 function removeAllOptions( combo ) {
67 combo = getSelect( combo );
68 while ( combo.getChild( 0 ) && combo.getChild( 0 ).remove() ) {
69
70 }
71 }
72 // Moves the selected option by a number of steps (also negative).
73 function changeOptionPosition( combo, steps, documentObject ) {
74 combo = getSelect( combo );
75 var iActualIndex = getSelectedIndex( combo );
76 if ( iActualIndex < 0 )
77 return false;
78
79 var iFinalIndex = iActualIndex + steps;
80 iFinalIndex = ( iFinalIndex < 0 ) ? 0 : iFinalIndex;
81 iFinalIndex = ( iFinalIndex >= combo.getChildCount() ) ? combo.getChildCount() - 1 : iFinalIndex;
82
83 if ( iActualIndex == iFinalIndex )
84 return false;
85
86 var oOption = combo.getChild( iActualIndex ),
87 sText = oOption.getText(),
88 sValue = oOption.getValue();
89
90 oOption.remove();
91
92 oOption = addOption( combo, sText, sValue, ( !documentObject ) ? null : documentObject, iFinalIndex );
93 setSelectedIndex( combo, iFinalIndex );
94 return oOption;
95 }
96
97 function getSelectedIndex( combo ) {
98 combo = getSelect( combo );
99 return combo ? combo.$.selectedIndex : -1;
100 }
101
102 function setSelectedIndex( combo, index ) {
103 combo = getSelect( combo );
104 if ( index < 0 )
105 return null;
106 var count = combo.getChildren().count();
107 combo.$.selectedIndex = ( index >= count ) ? ( count - 1 ) : index;
108 return combo;
109 }
110
111 function getOptions( combo ) {
112 combo = getSelect( combo );
113 return combo ? combo.getChildren() : false;
114 }
115
116 function getSelect( obj ) {
117 if ( obj && obj.domId && obj.getInputElement().$ ) // Dialog element.
118 return obj.getInputElement();
119 else if ( obj && obj.$ )
120 return obj;
121 return false;
122 }
123
124 return {
125 title: editor.lang.forms.select.title,
126 minWidth: CKEDITOR.env.ie ? 460 : 395,
127 minHeight: CKEDITOR.env.ie ? 320 : 300,
128 onShow: function() {
129 delete this.selectBox;
130 this.setupContent( 'clear' );
131 var element = this.getParentEditor().getSelection().getSelectedElement();
132 if ( element && element.getName() == 'select' ) {
133 this.selectBox = element;
134 this.setupContent( element.getName(), element );
135
136 // Load Options into dialog.
137 var objOptions = getOptions( element );
138 for ( var i = 0; i < objOptions.count(); i++ )
139 this.setupContent( 'option', objOptions.getItem( i ) );
140 }
141 },
142 onOk: function() {
143 var editor = this.getParentEditor(),
144 element = this.selectBox,
145 isInsertMode = !element;
146
147 if ( isInsertMode )
148 element = editor.document.createElement( 'select' );
149 this.commitContent( element );
150
151 if ( isInsertMode ) {
152 editor.insertElement( element );
153 if ( CKEDITOR.env.ie ) {
154 var sel = editor.getSelection(),
155 bms = sel.createBookmarks();
156 setTimeout( function() {
157 sel.selectBookmarks( bms );
158 }, 0 );
159 }
160 }
161 },
162 contents: [ {
163 id: 'info',
164 label: editor.lang.forms.select.selectInfo,
165 title: editor.lang.forms.select.selectInfo,
166 accessKey: '',
167 elements: [ {
168 id: 'txtName',
169 type: 'text',
170 widths: [ '25%', '75%' ],
171 labelLayout: 'horizontal',
172 label: editor.lang.common.name,
173 'default': '',
174 accessKey: 'N',
175 style: 'width:350px',
176 setup: function( name, element ) {
177 if ( name == 'clear' )
178 this.setValue( this[ 'default' ] || '' );
179 else if ( name == 'select' )
180 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
181
182 },
183 commit: function( element ) {
184 if ( this.getValue() )
185 element.data( 'cke-saved-name', this.getValue() );
186 else {
187 element.data( 'cke-saved-name', false );
188 element.removeAttribute( 'name' );
189 }
190 }
191 },
192 {
193 id: 'txtValue',
194 type: 'text',
195 widths: [ '25%', '75%' ],
196 labelLayout: 'horizontal',
197 label: editor.lang.forms.select.value,
198 style: 'width:350px',
199 'default': '',
200 className: 'cke_disabled',
201 onLoad: function() {
202 this.getInputElement().setAttribute( 'readOnly', true );
203 },
204 setup: function( name, element ) {
205 if ( name == 'clear' )
206 this.setValue( '' );
207 else if ( name == 'option' && element.getAttribute( 'selected' ) )
208 this.setValue( element.$.value );
209 }
210 },
211 {
212 type: 'hbox',
213 widths: [ '175px', '170px' ],
214 children: [ {
215 id: 'txtSize',
216 type: 'text',
217 labelLayout: 'horizontal',
218 label: editor.lang.forms.select.size,
219 'default': '',
220 accessKey: 'S',
221 style: 'width:175px',
222 validate: function() {
223 var func = CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed );
224 return ( ( this.getValue() === '' ) || func.apply( this ) );
225 },
226 setup: function( name, element ) {
227 if ( name == 'select' )
228 this.setValue( element.getAttribute( 'size' ) || '' );
229 if ( CKEDITOR.env.webkit )
230 this.getInputElement().setStyle( 'width', '86px' );
231 },
232 commit: function( element ) {
233 if ( this.getValue() )
234 element.setAttribute( 'size', this.getValue() );
235 else
236 element.removeAttribute( 'size' );
237 }
238 },
239 {
240 type: 'html',
241 html: '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.forms.select.lines ) + '</span>'
242 } ]
243 },
244 {
245 type: 'html',
246 html: '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.forms.select.opAvail ) + '</span>'
247 },
248 {
249 type: 'hbox',
250 widths: [ '115px', '115px', '100px' ],
251 children: [ {
252 type: 'vbox',
253 children: [ {
254 id: 'txtOptName',
255 type: 'text',
256 label: editor.lang.forms.select.opText,
257 style: 'width:115px',
258 setup: function( name ) {
259 if ( name == 'clear' )
260 this.setValue( '' );
261 }
262 },
263 {
264 type: 'select',
265 id: 'cmbName',
266 label: '',
267 title: '',
268 size: 5,
269 style: 'width:115px;height:75px',
270 items: [],
271 onChange: function() {
272 var dialog = this.getDialog(),
273 values = dialog.getContentElement( 'info', 'cmbValue' ),
274 optName = dialog.getContentElement( 'info', 'txtOptName' ),
275 optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
276 iIndex = getSelectedIndex( this );
277
278 setSelectedIndex( values, iIndex );
279 optName.setValue( this.getValue() );
280 optValue.setValue( values.getValue() );
281 },
282 setup: function( name, element ) {
283 if ( name == 'clear' )
284 removeAllOptions( this );
285 else if ( name == 'option' )
286 addOption( this, element.getText(), element.getText(), this.getDialog().getParentEditor().document );
287 },
288 commit: function( element ) {
289 var dialog = this.getDialog(),
290 optionsNames = getOptions( this ),
291 optionsValues = getOptions( dialog.getContentElement( 'info', 'cmbValue' ) ),
292 selectValue = dialog.getContentElement( 'info', 'txtValue' ).getValue();
293
294 removeAllOptions( element );
295
296 for ( var i = 0; i < optionsNames.count(); i++ ) {
297 var oOption = addOption( element, optionsNames.getItem( i ).getValue(), optionsValues.getItem( i ).getValue(), dialog.getParentEditor().document );
298 if ( optionsValues.getItem( i ).getValue() == selectValue ) {
299 oOption.setAttribute( 'selected', 'selected' );
300 oOption.selected = true;
301 }
302 }
303 }
304 } ]
305 },
306 {
307 type: 'vbox',
308 children: [ {
309 id: 'txtOptValue',
310 type: 'text',
311 label: editor.lang.forms.select.opValue,
312 style: 'width:115px',
313 setup: function( name ) {
314 if ( name == 'clear' )
315 this.setValue( '' );
316 }
317 },
318 {
319 type: 'select',
320 id: 'cmbValue',
321 label: '',
322 size: 5,
323 style: 'width:115px;height:75px',
324 items: [],
325 onChange: function() {
326 var dialog = this.getDialog(),
327 names = dialog.getContentElement( 'info', 'cmbName' ),
328 optName = dialog.getContentElement( 'info', 'txtOptName' ),
329 optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
330 iIndex = getSelectedIndex( this );
331
332 setSelectedIndex( names, iIndex );
333 optName.setValue( names.getValue() );
334 optValue.setValue( this.getValue() );
335 },
336 setup: function( name, element ) {
337 if ( name == 'clear' )
338 removeAllOptions( this );
339 else if ( name == 'option' ) {
340 var oValue = element.getValue();
341 addOption( this, oValue, oValue, this.getDialog().getParentEditor().document );
342 if ( element.getAttribute( 'selected' ) == 'selected' )
343 this.getDialog().getContentElement( 'info', 'txtValue' ).setValue( oValue );
344 }
345 }
346 } ]
347 },
348 {
349 type: 'vbox',
350 padding: 5,
351 children: [ {
352 type: 'button',
353 id: 'btnAdd',
354 label: editor.lang.forms.select.btnAdd,
355 title: editor.lang.forms.select.btnAdd,
356 style: 'width:100%;',
357 onClick: function() {
358 //Add new option.
359 var dialog = this.getDialog(),
360 optName = dialog.getContentElement( 'info', 'txtOptName' ),
361 optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
362 names = dialog.getContentElement( 'info', 'cmbName' ),
363 values = dialog.getContentElement( 'info', 'cmbValue' );
364
365 addOption( names, optName.getValue(), optName.getValue(), dialog.getParentEditor().document );
366 addOption( values, optValue.getValue(), optValue.getValue(), dialog.getParentEditor().document );
367
368 optName.setValue( '' );
369 optValue.setValue( '' );
370 }
371 },
372 {
373 type: 'button',
374 id: 'btnModify',
375 label: editor.lang.forms.select.btnModify,
376 title: editor.lang.forms.select.btnModify,
377 style: 'width:100%;',
378 onClick: function() {
379 //Modify selected option.
380 var dialog = this.getDialog(),
381 optName = dialog.getContentElement( 'info', 'txtOptName' ),
382 optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
383 names = dialog.getContentElement( 'info', 'cmbName' ),
384 values = dialog.getContentElement( 'info', 'cmbValue' ),
385 iIndex = getSelectedIndex( names );
386
387 if ( iIndex >= 0 ) {
388 modifyOption( names, iIndex, optName.getValue(), optName.getValue() );
389 modifyOption( values, iIndex, optValue.getValue(), optValue.getValue() );
390 }
391 }
392 },
393 {
394 type: 'button',
395 id: 'btnUp',
396 style: 'width:100%;',
397 label: editor.lang.forms.select.btnUp,
398 title: editor.lang.forms.select.btnUp,
399 onClick: function() {
400 //Move up.
401 var dialog = this.getDialog(),
402 names = dialog.getContentElement( 'info', 'cmbName' ),
403 values = dialog.getContentElement( 'info', 'cmbValue' );
404
405 changeOptionPosition( names, -1, dialog.getParentEditor().document );
406 changeOptionPosition( values, -1, dialog.getParentEditor().document );
407 }
408 },
409 {
410 type: 'button',
411 id: 'btnDown',
412 style: 'width:100%;',
413 label: editor.lang.forms.select.btnDown,
414 title: editor.lang.forms.select.btnDown,
415 onClick: function() {
416 //Move down.
417 var dialog = this.getDialog(),
418 names = dialog.getContentElement( 'info', 'cmbName' ),
419 values = dialog.getContentElement( 'info', 'cmbValue' );
420
421 changeOptionPosition( names, 1, dialog.getParentEditor().document );
422 changeOptionPosition( values, 1, dialog.getParentEditor().document );
423 }
424 } ]
425 } ]
426 },
427 {
428 type: 'hbox',
429 widths: [ '40%', '20%', '40%' ],
430 children: [ {
431 type: 'button',
432 id: 'btnSetValue',
433 label: editor.lang.forms.select.btnSetValue,
434 title: editor.lang.forms.select.btnSetValue,
435 onClick: function() {
436 //Set as default value.
437 var dialog = this.getDialog(),
438 values = dialog.getContentElement( 'info', 'cmbValue' ),
439 txtValue = dialog.getContentElement( 'info', 'txtValue' );
440 txtValue.setValue( values.getValue() );
441 }
442 },
443 {
444 type: 'button',
445 id: 'btnDelete',
446 label: editor.lang.forms.select.btnDelete,
447 title: editor.lang.forms.select.btnDelete,
448 onClick: function() {
449 // Delete option.
450 var dialog = this.getDialog(),
451 names = dialog.getContentElement( 'info', 'cmbName' ),
452 values = dialog.getContentElement( 'info', 'cmbValue' ),
453 optName = dialog.getContentElement( 'info', 'txtOptName' ),
454 optValue = dialog.getContentElement( 'info', 'txtOptValue' );
455
456 removeSelectedOptions( names );
457 removeSelectedOptions( values );
458
459 optName.setValue( '' );
460 optValue.setValue( '' );
461 }
462 },
463 {
464 type: 'vbox',
465 children: [ {
466 id: 'chkMulti',
467 type: 'checkbox',
468 label: editor.lang.forms.select.chkMulti,
469 'default': '',
470 accessKey: 'M',
471 value: 'checked',
472 setup: function( name, element ) {
473 if ( name == 'select' )
474 this.setValue( element.getAttribute( 'multiple' ) );
475 },
476 commit: function( element ) {
477 if ( this.getValue() )
478 element.setAttribute( 'multiple', this.getValue() );
479 else
480 element.removeAttribute( 'multiple' );
481 }
482 },
483 {
484 id: 'required',
485 type: 'checkbox',
486 label: editor.lang.forms.select.required,
487 'default': '',
488 accessKey: 'Q',
489 value: 'checked',
490 setup: function( name, element ) {
491 if ( name == 'select' )
492 this.setValue( element.getAttribute( 'required' ) );
493 },
494 commit: function( element ) {
495 if ( this.getValue() )
496 element.setAttribute( 'required', 'required' );
497 else
498 element.removeAttribute( 'required' );
499 }
500 } ]
501 } ]
502 } ]
503 } ]
504 };
505} );
diff --git a/sources/plugins/forms/dialogs/textarea.js b/sources/plugins/forms/dialogs/textarea.js
new file mode 100644
index 00000000..4370955e
--- /dev/null
+++ b/sources/plugins/forms/dialogs/textarea.js
@@ -0,0 +1,128 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5CKEDITOR.dialog.add( 'textarea', function( editor ) {
6 return {
7 title: editor.lang.forms.textarea.title,
8 minWidth: 350,
9 minHeight: 220,
10 onShow: function() {
11 delete this.textarea;
12
13 var element = this.getParentEditor().getSelection().getSelectedElement();
14 if ( element && element.getName() == 'textarea' ) {
15 this.textarea = element;
16 this.setupContent( element );
17 }
18 },
19 onOk: function() {
20 var editor,
21 element = this.textarea,
22 isInsertMode = !element;
23
24 if ( isInsertMode ) {
25 editor = this.getParentEditor();
26 element = editor.document.createElement( 'textarea' );
27 }
28 this.commitContent( element );
29
30 if ( isInsertMode )
31 editor.insertElement( element );
32 },
33 contents: [ {
34 id: 'info',
35 label: editor.lang.forms.textarea.title,
36 title: editor.lang.forms.textarea.title,
37 elements: [ {
38 id: '_cke_saved_name',
39 type: 'text',
40 label: editor.lang.common.name,
41 'default': '',
42 accessKey: 'N',
43 setup: function( element ) {
44 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
45 },
46 commit: function( element ) {
47 if ( this.getValue() )
48 element.data( 'cke-saved-name', this.getValue() );
49 else {
50 element.data( 'cke-saved-name', false );
51 element.removeAttribute( 'name' );
52 }
53 }
54 },
55 {
56 type: 'hbox',
57 widths: [ '50%', '50%' ],
58 children: [ {
59 id: 'cols',
60 type: 'text',
61 label: editor.lang.forms.textarea.cols,
62 'default': '',
63 accessKey: 'C',
64 style: 'width:50px',
65 validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
66 setup: function( element ) {
67 var value = element.hasAttribute( 'cols' ) && element.getAttribute( 'cols' );
68 this.setValue( value || '' );
69 },
70 commit: function( element ) {
71 if ( this.getValue() )
72 element.setAttribute( 'cols', this.getValue() );
73 else
74 element.removeAttribute( 'cols' );
75 }
76 },
77 {
78 id: 'rows',
79 type: 'text',
80 label: editor.lang.forms.textarea.rows,
81 'default': '',
82 accessKey: 'R',
83 style: 'width:50px',
84 validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
85 setup: function( element ) {
86 var value = element.hasAttribute( 'rows' ) && element.getAttribute( 'rows' );
87 this.setValue( value || '' );
88 },
89 commit: function( element ) {
90 if ( this.getValue() )
91 element.setAttribute( 'rows', this.getValue() );
92 else
93 element.removeAttribute( 'rows' );
94 }
95 } ]
96 },
97 {
98 id: 'value',
99 type: 'textarea',
100 label: editor.lang.forms.textfield.value,
101 'default': '',
102 setup: function( element ) {
103 this.setValue( element.$.defaultValue );
104 },
105 commit: function( element ) {
106 element.$.value = element.$.defaultValue = this.getValue();
107 }
108 },
109 {
110 id: 'required',
111 type: 'checkbox',
112 label: editor.lang.forms.textfield.required,
113 'default': '',
114 accessKey: 'Q',
115 value: 'required',
116 setup: function( element ) {
117 this.setValue( element.getAttribute( 'required' ) );
118 },
119 commit: function( element ) {
120 if ( this.getValue() )
121 element.setAttribute( 'required', 'required' );
122 else
123 element.removeAttribute( 'required' );
124 }
125 } ]
126 } ]
127 };
128} );
diff --git a/sources/plugins/forms/dialogs/textfield.js b/sources/plugins/forms/dialogs/textfield.js
new file mode 100644
index 00000000..5b601b31
--- /dev/null
+++ b/sources/plugins/forms/dialogs/textfield.js
@@ -0,0 +1,193 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5CKEDITOR.dialog.add( 'textfield', function( editor ) {
6
7 var acceptedTypes = { email: 1, password: 1, search: 1, tel: 1, text: 1, url: 1 };
8
9 function autoCommit( data ) {
10 var element = data.element;
11 var value = this.getValue();
12
13 value ? element.setAttribute( this.id, value ) : element.removeAttribute( this.id );
14 }
15
16 function autoSetup( element ) {
17 var value = element.hasAttribute( this.id ) && element.getAttribute( this.id );
18 this.setValue( value || '' );
19 }
20
21 return {
22 title: editor.lang.forms.textfield.title,
23 minWidth: 350,
24 minHeight: 150,
25 onShow: function() {
26 delete this.textField;
27
28 var element = this.getParentEditor().getSelection().getSelectedElement();
29 if ( element && element.getName() == 'input' && ( acceptedTypes[ element.getAttribute( 'type' ) ] || !element.getAttribute( 'type' ) ) ) {
30 this.textField = element;
31 this.setupContent( element );
32 }
33 },
34 onOk: function() {
35 var editor = this.getParentEditor(),
36 element = this.textField,
37 isInsertMode = !element;
38
39 if ( isInsertMode ) {
40 element = editor.document.createElement( 'input' );
41 element.setAttribute( 'type', 'text' );
42 }
43
44 var data = { element: element };
45
46 if ( isInsertMode )
47 editor.insertElement( data.element );
48
49 this.commitContent( data );
50
51 // Element might be replaced by commitment.
52 if ( !isInsertMode )
53 editor.getSelection().selectElement( data.element );
54 },
55 onLoad: function() {
56 this.foreach( function( contentObj ) {
57 if ( contentObj.getValue ) {
58 if ( !contentObj.setup )
59 contentObj.setup = autoSetup;
60 if ( !contentObj.commit )
61 contentObj.commit = autoCommit;
62 }
63 } );
64 },
65 contents: [ {
66 id: 'info',
67 label: editor.lang.forms.textfield.title,
68 title: editor.lang.forms.textfield.title,
69 elements: [ {
70 type: 'hbox',
71 widths: [ '50%', '50%' ],
72 children: [ {
73 id: '_cke_saved_name',
74 type: 'text',
75 label: editor.lang.forms.textfield.name,
76 'default': '',
77 accessKey: 'N',
78 setup: function( element ) {
79 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
80 },
81 commit: function( data ) {
82 var element = data.element;
83
84 if ( this.getValue() )
85 element.data( 'cke-saved-name', this.getValue() );
86 else {
87 element.data( 'cke-saved-name', false );
88 element.removeAttribute( 'name' );
89 }
90 }
91 },
92 {
93 id: 'value',
94 type: 'text',
95 label: editor.lang.forms.textfield.value,
96 'default': '',
97 accessKey: 'V',
98 commit: function( data ) {
99 if ( CKEDITOR.env.ie && !this.getValue() ) {
100 var element = data.element,
101 fresh = new CKEDITOR.dom.element( 'input', editor.document );
102 element.copyAttributes( fresh, { value: 1 } );
103 fresh.replace( element );
104 data.element = fresh;
105 } else {
106 autoCommit.call( this, data );
107 }
108 }
109 } ]
110 },
111 {
112 type: 'hbox',
113 widths: [ '50%', '50%' ],
114 children: [ {
115 id: 'size',
116 type: 'text',
117 label: editor.lang.forms.textfield.charWidth,
118 'default': '',
119 accessKey: 'C',
120 style: 'width:50px',
121 validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
122 },
123 {
124 id: 'maxLength',
125 type: 'text',
126 label: editor.lang.forms.textfield.maxChars,
127 'default': '',
128 accessKey: 'M',
129 style: 'width:50px',
130 validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
131 } ],
132 onLoad: function() {
133 // Repaint the style for IE7 (#6068)
134 if ( CKEDITOR.env.ie7Compat )
135 this.getElement().setStyle( 'zoom', '100%' );
136 }
137 },
138 {
139 id: 'type',
140 type: 'select',
141 label: editor.lang.forms.textfield.type,
142 'default': 'text',
143 accessKey: 'M',
144 items: [
145 [ editor.lang.forms.textfield.typeEmail, 'email' ],
146 [ editor.lang.forms.textfield.typePass, 'password' ],
147 [ editor.lang.forms.textfield.typeSearch, 'search' ],
148 [ editor.lang.forms.textfield.typeTel, 'tel' ],
149 [ editor.lang.forms.textfield.typeText, 'text' ],
150 [ editor.lang.forms.textfield.typeUrl, 'url' ]
151 ],
152 setup: function( element ) {
153 this.setValue( element.getAttribute( 'type' ) );
154 },
155 commit: function( data ) {
156 var element = data.element;
157
158 if ( CKEDITOR.env.ie ) {
159 var elementType = element.getAttribute( 'type' );
160 var myType = this.getValue();
161
162 if ( elementType != myType ) {
163 var replace = CKEDITOR.dom.element.createFromHtml( '<input type="' + myType + '"></input>', editor.document );
164 element.copyAttributes( replace, { type: 1 } );
165 replace.replace( element );
166 data.element = replace;
167 }
168 } else {
169 element.setAttribute( 'type', this.getValue() );
170 }
171 }
172 },
173 {
174 id: 'required',
175 type: 'checkbox',
176 label: editor.lang.forms.textfield.required,
177 'default': '',
178 accessKey: 'Q',
179 value: 'required',
180 setup: function( element ) {
181 this.setValue( element.getAttribute( 'required' ) );
182 },
183 commit: function( data ) {
184 var element = data.element;
185 if ( this.getValue() )
186 element.setAttribute( 'required', 'required' );
187 else
188 element.removeAttribute( 'required' );
189 }
190 } ]
191 } ]
192 };
193} );
diff --git a/sources/plugins/forms/icons/button.png b/sources/plugins/forms/icons/button.png
new file mode 100644
index 00000000..0bf68caa
--- /dev/null
+++ b/sources/plugins/forms/icons/button.png
Binary files differ
diff --git a/sources/plugins/forms/icons/checkbox.png b/sources/plugins/forms/icons/checkbox.png
new file mode 100644
index 00000000..2f4eb2f4
--- /dev/null
+++ b/sources/plugins/forms/icons/checkbox.png
Binary files differ
diff --git a/sources/plugins/forms/icons/form.png b/sources/plugins/forms/icons/form.png
new file mode 100644
index 00000000..08416674
--- /dev/null
+++ b/sources/plugins/forms/icons/form.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hiddenfield.png b/sources/plugins/forms/icons/hiddenfield.png
new file mode 100644
index 00000000..0cfab97a
--- /dev/null
+++ b/sources/plugins/forms/icons/hiddenfield.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/button.png b/sources/plugins/forms/icons/hidpi/button.png
new file mode 100644
index 00000000..bd92b165
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/button.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/checkbox.png b/sources/plugins/forms/icons/hidpi/checkbox.png
new file mode 100644
index 00000000..36be4aa0
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/checkbox.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/form.png b/sources/plugins/forms/icons/hidpi/form.png
new file mode 100644
index 00000000..4a02649c
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/form.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/hiddenfield.png b/sources/plugins/forms/icons/hidpi/hiddenfield.png
new file mode 100644
index 00000000..cd5f3186
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/hiddenfield.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/imagebutton.png b/sources/plugins/forms/icons/hidpi/imagebutton.png
new file mode 100644
index 00000000..d2737963
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/imagebutton.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/radio.png b/sources/plugins/forms/icons/hidpi/radio.png
new file mode 100644
index 00000000..2f0c72d6
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/radio.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/select-rtl.png b/sources/plugins/forms/icons/hidpi/select-rtl.png
new file mode 100644
index 00000000..42452e19
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/select-rtl.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/select.png b/sources/plugins/forms/icons/hidpi/select.png
new file mode 100644
index 00000000..da2b066b
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/select.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/textarea-rtl.png b/sources/plugins/forms/icons/hidpi/textarea-rtl.png
new file mode 100644
index 00000000..60618a5b
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/textarea-rtl.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/textarea.png b/sources/plugins/forms/icons/hidpi/textarea.png
new file mode 100644
index 00000000..87073d22
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/textarea.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/textfield-rtl.png b/sources/plugins/forms/icons/hidpi/textfield-rtl.png
new file mode 100644
index 00000000..d3c13582
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/textfield-rtl.png
Binary files differ
diff --git a/sources/plugins/forms/icons/hidpi/textfield.png b/sources/plugins/forms/icons/hidpi/textfield.png
new file mode 100644
index 00000000..d3c13582
--- /dev/null
+++ b/sources/plugins/forms/icons/hidpi/textfield.png
Binary files differ
diff --git a/sources/plugins/forms/icons/imagebutton.png b/sources/plugins/forms/icons/imagebutton.png
new file mode 100644
index 00000000..162df9a3
--- /dev/null
+++ b/sources/plugins/forms/icons/imagebutton.png
Binary files differ
diff --git a/sources/plugins/forms/icons/radio.png b/sources/plugins/forms/icons/radio.png
new file mode 100644
index 00000000..aaad523f
--- /dev/null
+++ b/sources/plugins/forms/icons/radio.png
Binary files differ
diff --git a/sources/plugins/forms/icons/select-rtl.png b/sources/plugins/forms/icons/select-rtl.png
new file mode 100644
index 00000000..029a0d22
--- /dev/null
+++ b/sources/plugins/forms/icons/select-rtl.png
Binary files differ
diff --git a/sources/plugins/forms/icons/select.png b/sources/plugins/forms/icons/select.png
new file mode 100644
index 00000000..44b02b9d
--- /dev/null
+++ b/sources/plugins/forms/icons/select.png
Binary files differ
diff --git a/sources/plugins/forms/icons/textarea-rtl.png b/sources/plugins/forms/icons/textarea-rtl.png
new file mode 100644
index 00000000..8a15d688
--- /dev/null
+++ b/sources/plugins/forms/icons/textarea-rtl.png
Binary files differ
diff --git a/sources/plugins/forms/icons/textarea.png b/sources/plugins/forms/icons/textarea.png
new file mode 100644
index 00000000..58e0fa02
--- /dev/null
+++ b/sources/plugins/forms/icons/textarea.png
Binary files differ
diff --git a/sources/plugins/forms/icons/textfield-rtl.png b/sources/plugins/forms/icons/textfield-rtl.png
new file mode 100644
index 00000000..054aab56
--- /dev/null
+++ b/sources/plugins/forms/icons/textfield-rtl.png
Binary files differ
diff --git a/sources/plugins/forms/icons/textfield.png b/sources/plugins/forms/icons/textfield.png
new file mode 100644
index 00000000..054aab56
--- /dev/null
+++ b/sources/plugins/forms/icons/textfield.png
Binary files differ
diff --git a/sources/plugins/forms/images/hiddenfield.gif b/sources/plugins/forms/images/hiddenfield.gif
new file mode 100644
index 00000000..988d9565
--- /dev/null
+++ b/sources/plugins/forms/images/hiddenfield.gif
Binary files differ
diff --git a/sources/plugins/forms/lang/af.js b/sources/plugins/forms/lang/af.js
new file mode 100644
index 00000000..cef21a56
--- /dev/null
+++ b/sources/plugins/forms/lang/af.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'af', {
6 button: {
7 title: 'Knop eienskappe',
8 text: 'Teks (Waarde)',
9 type: 'Soort',
10 typeBtn: 'Knop',
11 typeSbm: 'Stuur',
12 typeRst: 'Maak leeg'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Merkhokkie eienskappe',
16 radioTitle: 'Radioknoppie eienskappe',
17 value: 'Waarde',
18 selected: 'Geselekteer',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Vorm eienskappe',
23 menu: 'Vorm eienskappe',
24 action: 'Aksie',
25 method: 'Metode',
26 encoding: 'Kodering'
27 },
28 hidden: {
29 title: 'Verborge veld eienskappe',
30 name: 'Naam',
31 value: 'Waarde'
32 },
33 select: {
34 title: 'Keuseveld eienskappe',
35 selectInfo: 'Info',
36 opAvail: 'Beskikbare opsies',
37 value: 'Waarde',
38 size: 'Grootte',
39 lines: 'Lyne',
40 chkMulti: 'Laat meer as een keuse toe',
41 required: 'Required', // MISSING
42 opText: 'Teks',
43 opValue: 'Waarde',
44 btnAdd: 'Byvoeg',
45 btnModify: 'Wysig',
46 btnUp: 'Op',
47 btnDown: 'Af',
48 btnSetValue: 'Stel as geselekteerde waarde',
49 btnDelete: 'Verwyder'
50 },
51 textarea: {
52 title: 'Teks-area eienskappe',
53 cols: 'Kolomme',
54 rows: 'Rye'
55 },
56 textfield: {
57 title: 'Teksveld eienskappe',
58 name: 'Naam',
59 value: 'Waarde',
60 charWidth: 'Breedte (karakters)',
61 maxChars: 'Maksimum karakters',
62 required: 'Required', // MISSING
63 type: 'Soort',
64 typeText: 'Teks',
65 typePass: 'Wagwoord',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ar.js b/sources/plugins/forms/lang/ar.js
new file mode 100644
index 00000000..bb9fb296
--- /dev/null
+++ b/sources/plugins/forms/lang/ar.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ar', {
6 button: {
7 title: 'خصائص زر الضغط',
8 text: 'القيمة/التسمية',
9 type: 'نوع الزر',
10 typeBtn: 'زر',
11 typeSbm: 'إرسال',
12 typeRst: 'إعادة تعيين'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'خصائص خانة الإختيار',
16 radioTitle: 'خصائص زر الخيار',
17 value: 'القيمة',
18 selected: 'محدد',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'خصائص النموذج',
23 menu: 'خصائص النموذج',
24 action: 'اسم الملف',
25 method: 'الأسلوب',
26 encoding: 'تشفير'
27 },
28 hidden: {
29 title: 'خصائص الحقل المخفي',
30 name: 'الاسم',
31 value: 'القيمة'
32 },
33 select: {
34 title: 'خصائص اختيار الحقل',
35 selectInfo: 'اختار معلومات',
36 opAvail: 'الخيارات المتاحة',
37 value: 'القيمة',
38 size: 'الحجم',
39 lines: 'الأسطر',
40 chkMulti: 'السماح بتحديدات متعددة',
41 required: 'Required', // MISSING
42 opText: 'النص',
43 opValue: 'القيمة',
44 btnAdd: 'إضافة',
45 btnModify: 'تعديل',
46 btnUp: 'أعلى',
47 btnDown: 'أسفل',
48 btnSetValue: 'إجعلها محددة',
49 btnDelete: 'إزالة'
50 },
51 textarea: {
52 title: 'خصائص مساحة النص',
53 cols: 'الأعمدة',
54 rows: 'الصفوف'
55 },
56 textfield: {
57 title: 'خصائص مربع النص',
58 name: 'الاسم',
59 value: 'القيمة',
60 charWidth: 'عرض السمات',
61 maxChars: 'اقصى عدد للسمات',
62 required: 'Required', // MISSING
63 type: 'نوع المحتوى',
64 typeText: 'نص',
65 typePass: 'كلمة مرور',
66 typeEmail: 'بريد إلكتروني',
67 typeSearch: 'بحث',
68 typeTel: 'رقم الهاتف',
69 typeUrl: 'الرابط'
70 }
71} );
diff --git a/sources/plugins/forms/lang/bg.js b/sources/plugins/forms/lang/bg.js
new file mode 100644
index 00000000..bf46fd15
--- /dev/null
+++ b/sources/plugins/forms/lang/bg.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'bg', {
6 button: {
7 title: 'Настройки на бутона',
8 text: 'Текст (стойност)',
9 type: 'Тип',
10 typeBtn: 'Бутон',
11 typeSbm: 'Добави',
12 typeRst: 'Нулиране'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties',
16 radioTitle: 'Настройки на радиобутон',
17 value: 'Стойност',
18 selected: 'Избрано',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Настройки на формата',
23 menu: 'Настройки на формата',
24 action: 'Действие',
25 method: 'Метод',
26 encoding: 'Кодиране'
27 },
28 hidden: {
29 title: 'Настройки за скрито поле',
30 name: 'Име',
31 value: 'Стойност'
32 },
33 select: {
34 title: 'Selection Field Properties',
35 selectInfo: 'Select Info',
36 opAvail: 'Налични опции',
37 value: 'Стойност',
38 size: 'Размер',
39 lines: 'линии',
40 chkMulti: 'Allow multiple selections',
41 required: 'Required', // MISSING
42 opText: 'Текст',
43 opValue: 'Стойност',
44 btnAdd: 'Добави',
45 btnModify: 'Промени',
46 btnUp: 'На горе',
47 btnDown: 'На долу',
48 btnSetValue: 'Set as selected value',
49 btnDelete: 'Изтриване'
50 },
51 textarea: {
52 title: 'Опции за текстовата зона',
53 cols: 'Колони',
54 rows: 'Редове'
55 },
56 textfield: {
57 title: 'Настройки за текстово поле',
58 name: 'Име',
59 value: 'Стойност',
60 charWidth: 'Ширина на знаците',
61 maxChars: 'Макс. знаци',
62 required: 'Required', // MISSING
63 type: 'Тип',
64 typeText: 'Текст',
65 typePass: 'Парола',
66 typeEmail: 'Email',
67 typeSearch: 'Търсене',
68 typeTel: 'Телефонен номер',
69 typeUrl: 'Уеб адрес'
70 }
71} );
diff --git a/sources/plugins/forms/lang/bn.js b/sources/plugins/forms/lang/bn.js
new file mode 100644
index 00000000..34674ae3
--- /dev/null
+++ b/sources/plugins/forms/lang/bn.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'bn', {
6 button: {
7 title: 'বাটন প্রোপার্টি',
8 text: 'টেক্সট (ভ্যালু)',
9 type: 'প্রকার',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'চেক বক্স প্রোপার্টি',
16 radioTitle: 'রেডিও বাটন প্রোপার্টি',
17 value: 'ভ্যালু',
18 selected: 'সিলেক্টেড',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'ফর্ম প্রোপার্টি',
23 menu: 'ফর্ম প্রোপার্টি',
24 action: 'একশ্যন',
25 method: 'পদ্ধতি',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'গুপ্ত ফীল্ড প্রোপার্টি',
30 name: 'নাম',
31 value: 'ভ্যালু'
32 },
33 select: {
34 title: 'বাছাই ফীল্ড প্রোপার্টি',
35 selectInfo: 'তথ্য',
36 opAvail: 'অন্যান্য বিকল্প',
37 value: 'ভ্যালু',
38 size: 'সাইজ',
39 lines: 'লাইন সমূহ',
40 chkMulti: 'একাধিক সিলেকশন এলাউ কর',
41 required: 'Required', // MISSING
42 opText: 'টেক্সট',
43 opValue: 'ভ্যালু',
44 btnAdd: 'যুক্ত',
45 btnModify: 'বদলে দাও',
46 btnUp: 'উপর',
47 btnDown: 'নীচে',
48 btnSetValue: 'বাছাই করা ভ্যালু হিসেবে সেট কর',
49 btnDelete: 'ডিলীট'
50 },
51 textarea: {
52 title: 'টেক্সট এরিয়া প্রোপার্টি',
53 cols: 'কলাম',
54 rows: 'রো'
55 },
56 textfield: {
57 title: 'টেক্সট ফীল্ড প্রোপার্টি',
58 name: 'নাম',
59 value: 'ভ্যালু',
60 charWidth: 'ক্যারেক্টার প্রশস্ততা',
61 maxChars: 'সর্বাধিক ক্যারেক্টার',
62 required: 'Required', // MISSING
63 type: 'টাইপ',
64 typeText: 'টেক্সট',
65 typePass: 'পাসওয়ার্ড',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/bs.js b/sources/plugins/forms/lang/bs.js
new file mode 100644
index 00000000..206339d7
--- /dev/null
+++ b/sources/plugins/forms/lang/bs.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'bs', {
6 button: {
7 title: 'Button Properties',
8 text: 'Text (Value)',
9 type: 'Type',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties',
16 radioTitle: 'Radio Button Properties',
17 value: 'Value',
18 selected: 'Selected',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Form Properties',
23 menu: 'Form Properties',
24 action: 'Action',
25 method: 'Method',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Hidden Field Properties',
30 name: 'Name',
31 value: 'Value'
32 },
33 select: {
34 title: 'Selection Field Properties',
35 selectInfo: 'Select Info',
36 opAvail: 'Available Options',
37 value: 'Value',
38 size: 'Size',
39 lines: 'lines',
40 chkMulti: 'Allow multiple selections',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Value',
44 btnAdd: 'Add',
45 btnModify: 'Modify',
46 btnUp: 'Up',
47 btnDown: 'Down',
48 btnSetValue: 'Set as selected value',
49 btnDelete: 'Delete'
50 },
51 textarea: {
52 title: 'Textarea Properties',
53 cols: 'Columns',
54 rows: 'Rows'
55 },
56 textfield: {
57 title: 'Text Field Properties',
58 name: 'Name',
59 value: 'Value',
60 charWidth: 'Character Width',
61 maxChars: 'Maximum Characters',
62 required: 'Required', // MISSING
63 type: 'Type',
64 typeText: 'Text',
65 typePass: 'Password',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ca.js b/sources/plugins/forms/lang/ca.js
new file mode 100644
index 00000000..6b287286
--- /dev/null
+++ b/sources/plugins/forms/lang/ca.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ca', {
6 button: {
7 title: 'Propietats del botó',
8 text: 'Text (Valor)',
9 type: 'Tipus',
10 typeBtn: 'Botó',
11 typeSbm: 'Transmet formulari',
12 typeRst: 'Reinicia formulari'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Propietats de la casella de verificació',
16 radioTitle: 'Propietats del botó d\'opció',
17 value: 'Valor',
18 selected: 'Seleccionat',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Propietats del formulari',
23 menu: 'Propietats del formulari',
24 action: 'Acció',
25 method: 'Mètode',
26 encoding: 'Codificació'
27 },
28 hidden: {
29 title: 'Propietats del camp ocult',
30 name: 'Nom',
31 value: 'Valor'
32 },
33 select: {
34 title: 'Propietats del camp de selecció',
35 selectInfo: 'Info',
36 opAvail: 'Opcions disponibles',
37 value: 'Valor',
38 size: 'Mida',
39 lines: 'Línies',
40 chkMulti: 'Permet múltiples seleccions',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Valor',
44 btnAdd: 'Afegeix',
45 btnModify: 'Modifica',
46 btnUp: 'Amunt',
47 btnDown: 'Avall',
48 btnSetValue: 'Selecciona per defecte',
49 btnDelete: 'Elimina'
50 },
51 textarea: {
52 title: 'Propietats de l\'àrea de text',
53 cols: 'Columnes',
54 rows: 'Files'
55 },
56 textfield: {
57 title: 'Propietats del camp de text',
58 name: 'Nom',
59 value: 'Valor',
60 charWidth: 'Amplada',
61 maxChars: 'Nombre màxim de caràcters',
62 required: 'Required', // MISSING
63 type: 'Tipus',
64 typeText: 'Text',
65 typePass: 'Contrasenya',
66 typeEmail: 'Correu electrònic',
67 typeSearch: 'Cercar',
68 typeTel: 'Número de telèfon',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/cs.js b/sources/plugins/forms/lang/cs.js
new file mode 100644
index 00000000..ea529dae
--- /dev/null
+++ b/sources/plugins/forms/lang/cs.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'cs', {
6 button: {
7 title: 'Vlastnosti tlačítka',
8 text: 'Popisek',
9 type: 'Typ',
10 typeBtn: 'Tlačítko',
11 typeSbm: 'Odeslat',
12 typeRst: 'Obnovit'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Vlastnosti zaškrtávacího políčka',
16 radioTitle: 'Vlastnosti přepínače',
17 value: 'Hodnota',
18 selected: 'Zaškrtnuto',
19 required: 'Vyžadováno'
20 },
21 form: {
22 title: 'Vlastnosti formuláře',
23 menu: 'Vlastnosti formuláře',
24 action: 'Akce',
25 method: 'Metoda',
26 encoding: 'Kódování'
27 },
28 hidden: {
29 title: 'Vlastnosti skrytého pole',
30 name: 'Název',
31 value: 'Hodnota'
32 },
33 select: {
34 title: 'Vlastnosti seznamu',
35 selectInfo: 'Info',
36 opAvail: 'Dostupná nastavení',
37 value: 'Hodnota',
38 size: 'Velikost',
39 lines: 'Řádků',
40 chkMulti: 'Povolit mnohonásobné výběry',
41 required: 'Vyžadováno',
42 opText: 'Text',
43 opValue: 'Hodnota',
44 btnAdd: 'Přidat',
45 btnModify: 'Změnit',
46 btnUp: 'Nahoru',
47 btnDown: 'Dolů',
48 btnSetValue: 'Nastavit jako vybranou hodnotu',
49 btnDelete: 'Smazat'
50 },
51 textarea: {
52 title: 'Vlastnosti textové oblasti',
53 cols: 'Sloupců',
54 rows: 'Řádků'
55 },
56 textfield: {
57 title: 'Vlastnosti textového pole',
58 name: 'Název',
59 value: 'Hodnota',
60 charWidth: 'Šířka ve znacích',
61 maxChars: 'Maximální počet znaků',
62 required: 'Vyžadováno',
63 type: 'Typ',
64 typeText: 'Text',
65 typePass: 'Heslo',
66 typeEmail: 'Email',
67 typeSearch: 'Hledat',
68 typeTel: 'Telefonní číslo',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/cy.js b/sources/plugins/forms/lang/cy.js
new file mode 100644
index 00000000..6fb1e19f
--- /dev/null
+++ b/sources/plugins/forms/lang/cy.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'cy', {
6 button: {
7 title: 'Priodweddau Botymau',
8 text: 'Testun (Gwerth)',
9 type: 'Math',
10 typeBtn: 'Botwm',
11 typeSbm: 'Anfon',
12 typeRst: 'Ailosod'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Priodweddau Blwch Ticio',
16 radioTitle: 'Priodweddau Botwm Radio',
17 value: 'Gwerth',
18 selected: 'Dewiswyd',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Priodweddau Ffurflen',
23 menu: 'Priodweddau Ffurflen',
24 action: 'Gweithred',
25 method: 'Dull',
26 encoding: 'Amgodio'
27 },
28 hidden: {
29 title: 'Priodweddau Maes Cudd',
30 name: 'Enw',
31 value: 'Gwerth'
32 },
33 select: {
34 title: 'Priodweddau Maes Dewis',
35 selectInfo: 'Gwyb Dewis',
36 opAvail: 'Opsiynau ar Gael',
37 value: 'Gwerth',
38 size: 'Maint',
39 lines: 'llinellau',
40 chkMulti: 'Caniatàu aml-ddewisiadau',
41 required: 'Required', // MISSING
42 opText: 'Testun',
43 opValue: 'Gwerth',
44 btnAdd: 'Ychwanegu',
45 btnModify: 'Newid',
46 btnUp: 'Lan',
47 btnDown: 'Lawr',
48 btnSetValue: 'Gosod fel gwerth a ddewiswyd',
49 btnDelete: 'Dileu'
50 },
51 textarea: {
52 title: 'Priodweddau Ardal Testun',
53 cols: 'Colofnau',
54 rows: 'Rhesi'
55 },
56 textfield: {
57 title: 'Priodweddau Maes Testun',
58 name: 'Enw',
59 value: 'Gwerth',
60 charWidth: 'Lled Nod',
61 maxChars: 'Uchafswm y Nodau',
62 required: 'Required', // MISSING
63 type: 'Math',
64 typeText: 'Testun',
65 typePass: 'Cyfrinair',
66 typeEmail: 'Ebost',
67 typeSearch: 'Chwilio',
68 typeTel: 'Rhif Ffôn',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/da.js b/sources/plugins/forms/lang/da.js
new file mode 100644
index 00000000..8fe4a68b
--- /dev/null
+++ b/sources/plugins/forms/lang/da.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'da', {
6 button: {
7 title: 'Egenskaber for knap',
8 text: 'Tekst',
9 type: 'Type',
10 typeBtn: 'Knap',
11 typeSbm: 'Send',
12 typeRst: 'Nulstil'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Egenskaber for afkrydsningsfelt',
16 radioTitle: 'Egenskaber for alternativknap',
17 value: 'Værdi',
18 selected: 'Valgt',
19 required: 'Påkrævet'
20 },
21 form: {
22 title: 'Egenskaber for formular',
23 menu: 'Egenskaber for formular',
24 action: 'Handling',
25 method: 'Metode',
26 encoding: 'Kodning (encoding)'
27 },
28 hidden: {
29 title: 'Egenskaber for skjult felt',
30 name: 'Navn',
31 value: 'Værdi'
32 },
33 select: {
34 title: 'Egenskaber for liste',
35 selectInfo: 'Generelt',
36 opAvail: 'Valgmuligheder',
37 value: 'Værdi',
38 size: 'Størrelse',
39 lines: 'Linjer',
40 chkMulti: 'Tillad flere valg',
41 required: 'Påkrævet',
42 opText: 'Tekst',
43 opValue: 'Værdi',
44 btnAdd: 'Tilføj',
45 btnModify: 'Redigér',
46 btnUp: 'Op',
47 btnDown: 'Ned',
48 btnSetValue: 'Sæt som valgt',
49 btnDelete: 'Slet'
50 },
51 textarea: {
52 title: 'Egenskaber for tekstboks',
53 cols: 'Kolonner',
54 rows: 'Rækker'
55 },
56 textfield: {
57 title: 'Egenskaber for tekstfelt',
58 name: 'Navn',
59 value: 'Værdi',
60 charWidth: 'Bredde (tegn)',
61 maxChars: 'Max. antal tegn',
62 required: 'Påkrævet',
63 type: 'Type',
64 typeText: 'Tekst',
65 typePass: 'Adgangskode',
66 typeEmail: 'E-mail',
67 typeSearch: 'Søg',
68 typeTel: 'Telefon nummer',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/de.js b/sources/plugins/forms/lang/de.js
new file mode 100644
index 00000000..41f64c16
--- /dev/null
+++ b/sources/plugins/forms/lang/de.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'de', {
6 button: {
7 title: 'Schaltflächeneigenschaften',
8 text: 'Text (Wert)',
9 type: 'Typ',
10 typeBtn: 'Button',
11 typeSbm: 'Absenden',
12 typeRst: 'Zurücksetzen'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Kontrollboxeigenschaften',
16 radioTitle: 'Optionsfeldeigenschaften',
17 value: 'Wert',
18 selected: 'Ausgewählt',
19 required: 'Erforderlich'
20 },
21 form: {
22 title: 'Formulareigenschaften',
23 menu: 'Formulareigenschaften',
24 action: 'Aktion',
25 method: 'Methode',
26 encoding: 'Kodierung'
27 },
28 hidden: {
29 title: 'Versteckte Feldeigenschaften',
30 name: 'Name',
31 value: 'Wert'
32 },
33 select: {
34 title: 'Auswahlfeldeigenschaften',
35 selectInfo: 'Info auswählen',
36 opAvail: 'Verfügbare Optionen',
37 value: 'Wert',
38 size: 'Größe',
39 lines: 'Linien',
40 chkMulti: 'Mehrfachauswahl erlauben',
41 required: 'Erforderlich',
42 opText: 'Text',
43 opValue: 'Wert',
44 btnAdd: 'Hinzufügen',
45 btnModify: 'Ändern',
46 btnUp: 'Hoch',
47 btnDown: 'Runter',
48 btnSetValue: 'Als ausgewählten Wert festlegen',
49 btnDelete: 'Entfernen'
50 },
51 textarea: {
52 title: 'Textfeldeigenschaften',
53 cols: 'Spalten',
54 rows: 'Reihen'
55 },
56 textfield: {
57 title: 'Textfeldeigenschaften',
58 name: 'Name',
59 value: 'Wert',
60 charWidth: 'Zeichenbreite',
61 maxChars: 'Max. Zeichen',
62 required: 'Erforderlich',
63 type: 'Typ',
64 typeText: 'Text',
65 typePass: 'Passwort',
66 typeEmail: 'E-mail',
67 typeSearch: 'Suche',
68 typeTel: 'Telefonnummer',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/el.js b/sources/plugins/forms/lang/el.js
new file mode 100644
index 00000000..35a8c230
--- /dev/null
+++ b/sources/plugins/forms/lang/el.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'el', {
6 button: {
7 title: 'Ιδιότητες Κουμπιού',
8 text: 'Κείμενο (Τιμή)',
9 type: 'Τύπος',
10 typeBtn: 'Κουμπί',
11 typeSbm: 'Υποβολή',
12 typeRst: 'Επαναφορά'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Ιδιότητες Κουτιού Επιλογής',
16 radioTitle: 'Ιδιότητες Κουμπιού Επιλογής',
17 value: 'Τιμή',
18 selected: 'Επιλεγμένο',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Ιδιότητες Φόρμας',
23 menu: 'Ιδιότητες Φόρμας',
24 action: 'Ενέργεια',
25 method: 'Μέθοδος',
26 encoding: 'Κωδικοποίηση'
27 },
28 hidden: {
29 title: 'Ιδιότητες Κρυφού Πεδίου',
30 name: 'Όνομα',
31 value: 'Τιμή'
32 },
33 select: {
34 title: 'Ιδιότητες Πεδίου Επιλογής',
35 selectInfo: 'Πληροφορίες Πεδίου Επιλογής',
36 opAvail: 'Διαθέσιμες Επιλογές',
37 value: 'Τιμή',
38 size: 'Μέγεθος',
39 lines: 'γραμμές',
40 chkMulti: 'Να επιτρέπονται οι πολλαπλές επιλογές',
41 required: 'Required', // MISSING
42 opText: 'Κείμενο',
43 opValue: 'Τιμή',
44 btnAdd: 'Προσθήκη',
45 btnModify: 'Τροποποίηση',
46 btnUp: 'Πάνω',
47 btnDown: 'Κάτω',
48 btnSetValue: 'Θέση ως προεπιλογή',
49 btnDelete: 'Διαγραφή'
50 },
51 textarea: {
52 title: 'Ιδιότητες Περιοχής Κειμένου',
53 cols: 'Στήλες',
54 rows: 'Σειρές'
55 },
56 textfield: {
57 title: 'Ιδιότητες Πεδίου Κειμένου',
58 name: 'Όνομα',
59 value: 'Τιμή',
60 charWidth: 'Πλάτος Χαρακτήρων',
61 maxChars: 'Μέγιστοι χαρακτήρες',
62 required: 'Required', // MISSING
63 type: 'Τύπος',
64 typeText: 'Κείμενο',
65 typePass: 'Κωδικός',
66 typeEmail: 'Email',
67 typeSearch: 'Αναζήτηση',
68 typeTel: 'Αριθμός Τηλεφώνου',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/en-au.js b/sources/plugins/forms/lang/en-au.js
new file mode 100644
index 00000000..f424f182
--- /dev/null
+++ b/sources/plugins/forms/lang/en-au.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'en-au', {
6 button: {
7 title: 'Button Properties',
8 text: 'Text (Value)',
9 type: 'Type',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties',
16 radioTitle: 'Radio Button Properties',
17 value: 'Value',
18 selected: 'Selected',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Form Properties',
23 menu: 'Form Properties',
24 action: 'Action',
25 method: 'Method',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Hidden Field Properties',
30 name: 'Name',
31 value: 'Value'
32 },
33 select: {
34 title: 'Selection Field Properties',
35 selectInfo: 'Select Info',
36 opAvail: 'Available Options',
37 value: 'Value',
38 size: 'Size',
39 lines: 'lines',
40 chkMulti: 'Allow multiple selections',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Value',
44 btnAdd: 'Add',
45 btnModify: 'Modify',
46 btnUp: 'Up',
47 btnDown: 'Down',
48 btnSetValue: 'Set as selected value',
49 btnDelete: 'Delete'
50 },
51 textarea: {
52 title: 'Textarea Properties',
53 cols: 'Columns',
54 rows: 'Rows'
55 },
56 textfield: {
57 title: 'Text Field Properties',
58 name: 'Name',
59 value: 'Value',
60 charWidth: 'Character Width',
61 maxChars: 'Maximum Characters',
62 required: 'Required', // MISSING
63 type: 'Type',
64 typeText: 'Text',
65 typePass: 'Password',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/en-ca.js b/sources/plugins/forms/lang/en-ca.js
new file mode 100644
index 00000000..fa8b3042
--- /dev/null
+++ b/sources/plugins/forms/lang/en-ca.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'en-ca', {
6 button: {
7 title: 'Button Properties',
8 text: 'Text (Value)',
9 type: 'Type',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties',
16 radioTitle: 'Radio Button Properties',
17 value: 'Value',
18 selected: 'Selected',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Form Properties',
23 menu: 'Form Properties',
24 action: 'Action',
25 method: 'Method',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Hidden Field Properties',
30 name: 'Name',
31 value: 'Value'
32 },
33 select: {
34 title: 'Selection Field Properties',
35 selectInfo: 'Select Info',
36 opAvail: 'Available Options',
37 value: 'Value',
38 size: 'Size',
39 lines: 'lines',
40 chkMulti: 'Allow multiple selections',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Value',
44 btnAdd: 'Add',
45 btnModify: 'Modify',
46 btnUp: 'Up',
47 btnDown: 'Down',
48 btnSetValue: 'Set as selected value',
49 btnDelete: 'Delete'
50 },
51 textarea: {
52 title: 'Textarea Properties',
53 cols: 'Columns',
54 rows: 'Rows'
55 },
56 textfield: {
57 title: 'Text Field Properties',
58 name: 'Name',
59 value: 'Value',
60 charWidth: 'Character Width',
61 maxChars: 'Maximum Characters',
62 required: 'Required', // MISSING
63 type: 'Type',
64 typeText: 'Text',
65 typePass: 'Password',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/en-gb.js b/sources/plugins/forms/lang/en-gb.js
new file mode 100644
index 00000000..b5c978c2
--- /dev/null
+++ b/sources/plugins/forms/lang/en-gb.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'en-gb', {
6 button: {
7 title: 'Button Properties',
8 text: 'Text (Value)',
9 type: 'Type',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties',
16 radioTitle: 'Radio Button Properties',
17 value: 'Value',
18 selected: 'Selected',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Form Properties',
23 menu: 'Form Properties',
24 action: 'Action',
25 method: 'Method',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Hidden Field Properties',
30 name: 'Name',
31 value: 'Value'
32 },
33 select: {
34 title: 'Selection Field Properties',
35 selectInfo: 'Select Info',
36 opAvail: 'Available Options',
37 value: 'Value',
38 size: 'Size',
39 lines: 'lines',
40 chkMulti: 'Allow multiple selections',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Value',
44 btnAdd: 'Add',
45 btnModify: 'Modify',
46 btnUp: 'Up',
47 btnDown: 'Down',
48 btnSetValue: 'Set as selected value',
49 btnDelete: 'Delete'
50 },
51 textarea: {
52 title: 'Textarea Properties',
53 cols: 'Columns',
54 rows: 'Rows'
55 },
56 textfield: {
57 title: 'Text Field Properties',
58 name: 'Name',
59 value: 'Value',
60 charWidth: 'Character Width',
61 maxChars: 'Maximum Characters',
62 required: 'Required', // MISSING
63 type: 'Type',
64 typeText: 'Text',
65 typePass: 'Password',
66 typeEmail: 'E-mail',
67 typeSearch: 'Search',
68 typeTel: 'Telephone Number',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/en.js b/sources/plugins/forms/lang/en.js
new file mode 100644
index 00000000..e094ee9d
--- /dev/null
+++ b/sources/plugins/forms/lang/en.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'en', {
6 button: {
7 title: 'Button Properties',
8 text: 'Text (Value)',
9 type: 'Type',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties',
16 radioTitle: 'Radio Button Properties',
17 value: 'Value',
18 selected: 'Selected',
19 required: 'Required'
20 },
21 form: {
22 title: 'Form Properties',
23 menu: 'Form Properties',
24 action: 'Action',
25 method: 'Method',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Hidden Field Properties',
30 name: 'Name',
31 value: 'Value'
32 },
33 select: {
34 title: 'Selection Field Properties',
35 selectInfo: 'Select Info',
36 opAvail: 'Available Options',
37 value: 'Value',
38 size: 'Size',
39 lines: 'lines',
40 chkMulti: 'Allow multiple selections',
41 required: 'Required',
42 opText: 'Text',
43 opValue: 'Value',
44 btnAdd: 'Add',
45 btnModify: 'Modify',
46 btnUp: 'Up',
47 btnDown: 'Down',
48 btnSetValue: 'Set as selected value',
49 btnDelete: 'Delete'
50 },
51 textarea: {
52 title: 'Textarea Properties',
53 cols: 'Columns',
54 rows: 'Rows'
55 },
56 textfield: {
57 title: 'Text Field Properties',
58 name: 'Name',
59 value: 'Value',
60 charWidth: 'Character Width',
61 maxChars: 'Maximum Characters',
62 required: 'Required',
63 type: 'Type',
64 typeText: 'Text',
65 typePass: 'Password',
66 typeEmail: 'Email',
67 typeSearch: 'Search',
68 typeTel: 'Telephone Number',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/eo.js b/sources/plugins/forms/lang/eo.js
new file mode 100644
index 00000000..6858a481
--- /dev/null
+++ b/sources/plugins/forms/lang/eo.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'eo', {
6 button: {
7 title: 'Butonaj atributoj',
8 text: 'Teksto (Valoro)',
9 type: 'Tipo',
10 typeBtn: 'Butono',
11 typeSbm: 'Validigi (submit)',
12 typeRst: 'Remeti en la originstaton (Reset)'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Markobutonaj Atributoj',
16 radioTitle: 'Radiobutonaj Atributoj',
17 value: 'Valoro',
18 selected: 'Selektita',
19 required: 'Postulata'
20 },
21 form: {
22 title: 'Formularaj Atributoj',
23 menu: 'Formularaj Atributoj',
24 action: 'Ago',
25 method: 'Metodo',
26 encoding: 'Kodoprezento'
27 },
28 hidden: {
29 title: 'Atributoj de Kaŝita Kampo',
30 name: 'Nomo',
31 value: 'Valoro'
32 },
33 select: {
34 title: 'Atributoj de Elekta Kampo',
35 selectInfo: 'Informoj pri la rulummenuo',
36 opAvail: 'Elektoj Disponeblaj',
37 value: 'Valoro',
38 size: 'Grando',
39 lines: 'Linioj',
40 chkMulti: 'Permesi Plurajn Elektojn',
41 required: 'Postulata',
42 opText: 'Teksto',
43 opValue: 'Valoro',
44 btnAdd: 'Aldoni',
45 btnModify: 'Modifi',
46 btnUp: 'Supren',
47 btnDown: 'Malsupren',
48 btnSetValue: 'Agordi kiel Elektitan Valoron',
49 btnDelete: 'Forigi'
50 },
51 textarea: {
52 title: 'Atributoj de Teksta Areo',
53 cols: 'Kolumnoj',
54 rows: 'Linioj'
55 },
56 textfield: {
57 title: 'Atributoj de Teksta Kampo',
58 name: 'Nomo',
59 value: 'Valoro',
60 charWidth: 'Signolarĝo',
61 maxChars: 'Maksimuma Nombro da Signoj',
62 required: 'Postulata',
63 type: 'Tipo',
64 typeText: 'Teksto',
65 typePass: 'Pasvorto',
66 typeEmail: 'retpoŝtadreso',
67 typeSearch: 'Serĉi',
68 typeTel: 'Telefonnumero',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/es.js b/sources/plugins/forms/lang/es.js
new file mode 100644
index 00000000..0a59faa8
--- /dev/null
+++ b/sources/plugins/forms/lang/es.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'es', {
6 button: {
7 title: 'Propiedades de Botón',
8 text: 'Texto (Valor)',
9 type: 'Tipo',
10 typeBtn: 'Boton',
11 typeSbm: 'Enviar',
12 typeRst: 'Reestablecer'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Propiedades de Casilla',
16 radioTitle: 'Propiedades de Botón de Radio',
17 value: 'Valor',
18 selected: 'Seleccionado',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Propiedades de Formulario',
23 menu: 'Propiedades de Formulario',
24 action: 'Acción',
25 method: 'Método',
26 encoding: 'Codificación'
27 },
28 hidden: {
29 title: 'Propiedades de Campo Oculto',
30 name: 'Nombre',
31 value: 'Valor'
32 },
33 select: {
34 title: 'Propiedades de Campo de Selección',
35 selectInfo: 'Información',
36 opAvail: 'Opciones disponibles',
37 value: 'Valor',
38 size: 'Tamaño',
39 lines: 'Lineas',
40 chkMulti: 'Permitir múltiple selección',
41 required: 'Required', // MISSING
42 opText: 'Texto',
43 opValue: 'Valor',
44 btnAdd: 'Agregar',
45 btnModify: 'Modificar',
46 btnUp: 'Subir',
47 btnDown: 'Bajar',
48 btnSetValue: 'Establecer como predeterminado',
49 btnDelete: 'Eliminar'
50 },
51 textarea: {
52 title: 'Propiedades de Area de Texto',
53 cols: 'Columnas',
54 rows: 'Filas'
55 },
56 textfield: {
57 title: 'Propiedades de Campo de Texto',
58 name: 'Nombre',
59 value: 'Valor',
60 charWidth: 'Caracteres de ancho',
61 maxChars: 'Máximo caracteres',
62 required: 'Required', // MISSING
63 type: 'Tipo',
64 typeText: 'Texto',
65 typePass: 'Contraseña',
66 typeEmail: 'Correo electrónico',
67 typeSearch: 'Buscar',
68 typeTel: 'Número de teléfono',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/et.js b/sources/plugins/forms/lang/et.js
new file mode 100644
index 00000000..a00a4f0c
--- /dev/null
+++ b/sources/plugins/forms/lang/et.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'et', {
6 button: {
7 title: 'Nupu omadused',
8 text: 'Tekst (väärtus)',
9 type: 'Liik',
10 typeBtn: 'Nupp',
11 typeSbm: 'Saada',
12 typeRst: 'Lähtesta'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Märkeruudu omadused',
16 radioTitle: 'Raadionupu omadused',
17 value: 'Väärtus',
18 selected: 'Märgitud',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Vormi omadused',
23 menu: 'Vormi omadused',
24 action: 'Toiming',
25 method: 'Meetod',
26 encoding: 'Kodeering'
27 },
28 hidden: {
29 title: 'Varjatud lahtri omadused',
30 name: 'Nimi',
31 value: 'Väärtus'
32 },
33 select: {
34 title: 'Valiklahtri omadused',
35 selectInfo: 'Info',
36 opAvail: 'Võimalikud valikud:',
37 value: 'Väärtus',
38 size: 'Suurus',
39 lines: 'ridu',
40 chkMulti: 'Võimalik mitu valikut',
41 required: 'Required', // MISSING
42 opText: 'Tekst',
43 opValue: 'Väärtus',
44 btnAdd: 'Lisa',
45 btnModify: 'Muuda',
46 btnUp: 'Üles',
47 btnDown: 'Alla',
48 btnSetValue: 'Määra vaikimisi',
49 btnDelete: 'Kustuta'
50 },
51 textarea: {
52 title: 'Tekstiala omadused',
53 cols: 'Veerge',
54 rows: 'Ridu'
55 },
56 textfield: {
57 title: 'Tekstilahtri omadused',
58 name: 'Nimi',
59 value: 'Väärtus',
60 charWidth: 'Laius (tähemärkides)',
61 maxChars: 'Maksimaalselt tähemärke',
62 required: 'Required', // MISSING
63 type: 'Liik',
64 typeText: 'Tekst',
65 typePass: 'Parool',
66 typeEmail: 'E-mail',
67 typeSearch: 'Otsi',
68 typeTel: 'Telefon',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/eu.js b/sources/plugins/forms/lang/eu.js
new file mode 100644
index 00000000..684ad400
--- /dev/null
+++ b/sources/plugins/forms/lang/eu.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'eu', {
6 button: {
7 title: 'Botoiaren ezaugarriak',
8 text: 'Testua (balioa)',
9 type: 'Mota',
10 typeBtn: 'Botoia',
11 typeSbm: 'Bidali',
12 typeRst: 'Berrezarri'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Kontrol-laukiaren propietateak',
16 radioTitle: 'Aukera-botoiaren propietateak',
17 value: 'Balioa',
18 selected: 'Hautatuta',
19 required: 'Beharrezkoa'
20 },
21 form: {
22 title: 'Formularioaren propietateak',
23 menu: 'Formularioaren propietateak',
24 action: 'Ekintza',
25 method: 'Metodoa',
26 encoding: 'Kodeketa'
27 },
28 hidden: {
29 title: 'Ezkutuko eremuaren propietateak',
30 name: 'Izena',
31 value: 'Balioa'
32 },
33 select: {
34 title: 'Hautespen eremuaren propietateak',
35 selectInfo: 'Hautatu informazioa',
36 opAvail: 'Erabilgarri dauden aukerak',
37 value: 'Balioa',
38 size: 'Tamaina',
39 lines: 'lerro kopurua',
40 chkMulti: 'baimendu hautapen anitzak',
41 required: 'Beharrezkoa',
42 opText: 'Testua',
43 opValue: 'Balioa',
44 btnAdd: 'Gehitu',
45 btnModify: 'Aldatu',
46 btnUp: 'Gora',
47 btnDown: 'Behera',
48 btnSetValue: 'Ezarri hautatutako balio bezala',
49 btnDelete: 'Ezabatu'
50 },
51 textarea: {
52 title: 'Testu-arearen propietateak',
53 cols: 'Zutabeak',
54 rows: 'Errenkadak'
55 },
56 textfield: {
57 title: 'Testu-eremuaren propietateak',
58 name: 'Izena',
59 value: 'Balioa',
60 charWidth: 'Karaktere-zabalera',
61 maxChars: 'Gehienezko karaktereak',
62 required: 'Beharrezkoa',
63 type: 'Mota',
64 typeText: 'Testua',
65 typePass: 'Pasahitza',
66 typeEmail: 'E-posta',
67 typeSearch: 'Bilatu',
68 typeTel: 'Telefono zenbakia',
69 typeUrl: 'URLa'
70 }
71} );
diff --git a/sources/plugins/forms/lang/fa.js b/sources/plugins/forms/lang/fa.js
new file mode 100644
index 00000000..f2b1d7d7
--- /dev/null
+++ b/sources/plugins/forms/lang/fa.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'fa', {
6 button: {
7 title: 'ویژگی​های دکمه',
8 text: 'متن (مقدار)',
9 type: 'نوع',
10 typeBtn: 'دکمه',
11 typeSbm: 'ثبت',
12 typeRst: 'بازنشانی (Reset)'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'ویژگی​های خانهٴ گزینه​ای',
16 radioTitle: 'ویژگی​های دکمهٴ رادیویی',
17 value: 'مقدار',
18 selected: 'برگزیده',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'ویژگی​های فرم',
23 menu: 'ویژگی​های فرم',
24 action: 'رویداد',
25 method: 'متد',
26 encoding: 'رمزنگاری'
27 },
28 hidden: {
29 title: 'ویژگی​های فیلد پنهان',
30 name: 'نام',
31 value: 'مقدار'
32 },
33 select: {
34 title: 'ویژگی​های فیلد چندگزینه​ای',
35 selectInfo: 'اطلاعات',
36 opAvail: 'گزینه​های دردسترس',
37 value: 'مقدار',
38 size: 'اندازه',
39 lines: 'خطوط',
40 chkMulti: 'گزینش چندگانه فراهم باشد',
41 required: 'Required', // MISSING
42 opText: 'متن',
43 opValue: 'مقدار',
44 btnAdd: 'افزودن',
45 btnModify: 'ویرایش',
46 btnUp: 'بالا',
47 btnDown: 'پائین',
48 btnSetValue: 'تنظیم به عنوان مقدار برگزیده',
49 btnDelete: 'پاککردن'
50 },
51 textarea: {
52 title: 'ویژگی​های ناحیهٴ متنی',
53 cols: 'ستون​ها',
54 rows: 'سطرها'
55 },
56 textfield: {
57 title: 'ویژگی​های فیلد متنی',
58 name: 'نام',
59 value: 'مقدار',
60 charWidth: 'پهنای نویسه',
61 maxChars: 'بیشینهٴ نویسه​ها',
62 required: 'Required', // MISSING
63 type: 'نوع',
64 typeText: 'متن',
65 typePass: 'گذرواژه',
66 typeEmail: 'ایمیل',
67 typeSearch: 'جستجو',
68 typeTel: 'شماره تلفن',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/fi.js b/sources/plugins/forms/lang/fi.js
new file mode 100644
index 00000000..cf5ccead
--- /dev/null
+++ b/sources/plugins/forms/lang/fi.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'fi', {
6 button: {
7 title: 'Painikkeen ominaisuudet',
8 text: 'Teksti (arvo)',
9 type: 'Tyyppi',
10 typeBtn: 'Painike',
11 typeSbm: 'Lähetä',
12 typeRst: 'Tyhjennä'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Valintaruudun ominaisuudet',
16 radioTitle: 'Radiopainikkeen ominaisuudet',
17 value: 'Arvo',
18 selected: 'Valittu',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Lomakkeen ominaisuudet',
23 menu: 'Lomakkeen ominaisuudet',
24 action: 'Toiminto',
25 method: 'Tapa',
26 encoding: 'Enkoodaus'
27 },
28 hidden: {
29 title: 'Piilokentän ominaisuudet',
30 name: 'Nimi',
31 value: 'Arvo'
32 },
33 select: {
34 title: 'Valintakentän ominaisuudet',
35 selectInfo: 'Info',
36 opAvail: 'Ominaisuudet',
37 value: 'Arvo',
38 size: 'Koko',
39 lines: 'Rivit',
40 chkMulti: 'Salli usea valinta',
41 required: 'Required', // MISSING
42 opText: 'Teksti',
43 opValue: 'Arvo',
44 btnAdd: 'Lisää',
45 btnModify: 'Muuta',
46 btnUp: 'Ylös',
47 btnDown: 'Alas',
48 btnSetValue: 'Aseta valituksi',
49 btnDelete: 'Poista'
50 },
51 textarea: {
52 title: 'Tekstilaatikon ominaisuudet',
53 cols: 'Sarakkeita',
54 rows: 'Rivejä'
55 },
56 textfield: {
57 title: 'Tekstikentän ominaisuudet',
58 name: 'Nimi',
59 value: 'Arvo',
60 charWidth: 'Leveys',
61 maxChars: 'Maksimi merkkimäärä',
62 required: 'Required', // MISSING
63 type: 'Tyyppi',
64 typeText: 'Teksti',
65 typePass: 'Salasana',
66 typeEmail: 'Sähköposti',
67 typeSearch: 'Haku',
68 typeTel: 'Puhelinnumero',
69 typeUrl: 'Osoite'
70 }
71} );
diff --git a/sources/plugins/forms/lang/fo.js b/sources/plugins/forms/lang/fo.js
new file mode 100644
index 00000000..430e56a9
--- /dev/null
+++ b/sources/plugins/forms/lang/fo.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'fo', {
6 button: {
7 title: 'Eginleikar fyri knøtt',
8 text: 'Tekstur',
9 type: 'Slag',
10 typeBtn: 'Knøttur',
11 typeSbm: 'Send',
12 typeRst: 'Nullstilla'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Eginleikar fyri flugubein',
16 radioTitle: 'Eginleikar fyri radioknøtt',
17 value: 'Virði',
18 selected: 'Valt',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Eginleikar fyri Form',
23 menu: 'Eginleikar fyri Form',
24 action: 'Hending',
25 method: 'Háttur',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Eginleikar fyri fjaldan teig',
30 name: 'Navn',
31 value: 'Virði'
32 },
33 select: {
34 title: 'Eginleikar fyri valskrá',
35 selectInfo: 'Upplýsingar',
36 opAvail: 'Tøkir møguleikar',
37 value: 'Virði',
38 size: 'Stødd',
39 lines: 'Linjur',
40 chkMulti: 'Loyv fleiri valmøguleikum samstundis',
41 required: 'Required', // MISSING
42 opText: 'Tekstur',
43 opValue: 'Virði',
44 btnAdd: 'Legg afturat',
45 btnModify: 'Broyt',
46 btnUp: 'Upp',
47 btnDown: 'Niður',
48 btnSetValue: 'Set sum valt virði',
49 btnDelete: 'Strika'
50 },
51 textarea: {
52 title: 'Eginleikar fyri tekstumráði',
53 cols: 'kolonnur',
54 rows: 'røðir'
55 },
56 textfield: {
57 title: 'Eginleikar fyri tekstteig',
58 name: 'Navn',
59 value: 'Virði',
60 charWidth: 'Breidd (sjónlig tekn)',
61 maxChars: 'Mest loyvdu tekn',
62 required: 'Required', // MISSING
63 type: 'Slag',
64 typeText: 'Tekstur',
65 typePass: 'Loyniorð',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/fr-ca.js b/sources/plugins/forms/lang/fr-ca.js
new file mode 100644
index 00000000..a468bd0c
--- /dev/null
+++ b/sources/plugins/forms/lang/fr-ca.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'fr-ca', {
6 button: {
7 title: 'Propriétés du bouton',
8 text: 'Texte (Valeur)',
9 type: 'Type',
10 typeBtn: 'Bouton',
11 typeSbm: 'Soumettre',
12 typeRst: 'Réinitialiser'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Propriétés de la case à cocher',
16 radioTitle: 'Propriétés du bouton radio',
17 value: 'Valeur',
18 selected: 'Sélectionné',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Propriétés du formulaire',
23 menu: 'Propriétés du formulaire',
24 action: 'Action',
25 method: 'Méthode',
26 encoding: 'Encodage'
27 },
28 hidden: {
29 title: 'Propriétés du champ caché',
30 name: 'Nom',
31 value: 'Valeur'
32 },
33 select: {
34 title: 'Propriétés du champ de sélection',
35 selectInfo: 'Info',
36 opAvail: 'Options disponibles',
37 value: 'Valeur',
38 size: 'Taille',
39 lines: 'lignes',
40 chkMulti: 'Permettre les sélections multiples',
41 required: 'Required', // MISSING
42 opText: 'Texte',
43 opValue: 'Valeur',
44 btnAdd: 'Ajouter',
45 btnModify: 'Modifier',
46 btnUp: 'Monter',
47 btnDown: 'Descendre',
48 btnSetValue: 'Valeur sélectionnée',
49 btnDelete: 'Supprimer'
50 },
51 textarea: {
52 title: 'Propriétés de la zone de texte',
53 cols: 'Colonnes',
54 rows: 'Lignes'
55 },
56 textfield: {
57 title: 'Propriétés du champ texte',
58 name: 'Nom',
59 value: 'Valeur',
60 charWidth: 'Largeur de caractères',
61 maxChars: 'Nombre maximum de caractères',
62 required: 'Required', // MISSING
63 type: 'Type',
64 typeText: 'Texte',
65 typePass: 'Mot de passe',
66 typeEmail: 'Courriel',
67 typeSearch: 'Recherche',
68 typeTel: 'Numéro de téléphone',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/fr.js b/sources/plugins/forms/lang/fr.js
new file mode 100644
index 00000000..d4024ed1
--- /dev/null
+++ b/sources/plugins/forms/lang/fr.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'fr', {
6 button: {
7 title: 'Propriétés du bouton',
8 text: 'Texte (Value)',
9 type: 'Type',
10 typeBtn: 'Bouton',
11 typeSbm: 'Validation (submit)',
12 typeRst: 'Remise à zéro'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Propriétés de la case à cocher',
16 radioTitle: 'Propriétés du bouton Radio',
17 value: 'Valeur',
18 selected: 'Sélectionné',
19 required: 'Requis'
20 },
21 form: {
22 title: 'Propriétés du formulaire',
23 menu: 'Propriétés du formulaire',
24 action: 'Action',
25 method: 'Méthode',
26 encoding: 'Encodage'
27 },
28 hidden: {
29 title: 'Propriétés du champ caché',
30 name: 'Nom',
31 value: 'Valeur'
32 },
33 select: {
34 title: 'Propriétés du menu déroulant',
35 selectInfo: 'Informations sur le menu déroulant',
36 opAvail: 'Options disponibles',
37 value: 'Valeur',
38 size: 'Taille',
39 lines: 'Lignes',
40 chkMulti: 'Permettre les sélections multiples',
41 required: 'Requis',
42 opText: 'Texte',
43 opValue: 'Valeur',
44 btnAdd: 'Ajouter',
45 btnModify: 'Modifier',
46 btnUp: 'Haut',
47 btnDown: 'Bas',
48 btnSetValue: 'Définir comme valeur sélectionnée',
49 btnDelete: 'Supprimer'
50 },
51 textarea: {
52 title: 'Propriétés de la zone de texte',
53 cols: 'Colonnes',
54 rows: 'Lignes'
55 },
56 textfield: {
57 title: 'Propriétés du champ texte',
58 name: 'Nom',
59 value: 'Valeur',
60 charWidth: 'Taille des caractères',
61 maxChars: 'Nombre maximum de caractères',
62 required: 'Requis',
63 type: 'Type',
64 typeText: 'Texte',
65 typePass: 'Mot de passe',
66 typeEmail: 'E-mail',
67 typeSearch: 'Rechercher',
68 typeTel: 'Numéro de téléphone',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/gl.js b/sources/plugins/forms/lang/gl.js
new file mode 100644
index 00000000..efe96d93
--- /dev/null
+++ b/sources/plugins/forms/lang/gl.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'gl', {
6 button: {
7 title: 'Propiedades do botón',
8 text: 'Texto (Valor)',
9 type: 'Tipo',
10 typeBtn: 'Botón',
11 typeSbm: 'Enviar',
12 typeRst: 'Restabelever'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Propiedades da caixa de selección',
16 radioTitle: 'Propiedades do botón de opción',
17 value: 'Valor',
18 selected: 'Seleccionado',
19 required: 'Requirido'
20 },
21 form: {
22 title: 'Propiedades do formulario',
23 menu: 'Propiedades do formulario',
24 action: 'Acción',
25 method: 'Método',
26 encoding: 'Codificación'
27 },
28 hidden: {
29 title: 'Propiedades do campo agochado',
30 name: 'Nome',
31 value: 'Valor'
32 },
33 select: {
34 title: 'Propiedades do campo de selección',
35 selectInfo: 'Información',
36 opAvail: 'Opcións dispoñíbeis',
37 value: 'Valor',
38 size: 'Tamaño',
39 lines: 'liñas',
40 chkMulti: 'Permitir múltiplas seleccións',
41 required: 'Requirido',
42 opText: 'Texto',
43 opValue: 'Valor',
44 btnAdd: 'Engadir',
45 btnModify: 'Modificar',
46 btnUp: 'Subir',
47 btnDown: 'Baixar',
48 btnSetValue: 'Estabelecer como valor seleccionado',
49 btnDelete: 'Eliminar'
50 },
51 textarea: {
52 title: 'Propiedades da área de texto',
53 cols: 'Columnas',
54 rows: 'Filas'
55 },
56 textfield: {
57 title: 'Propiedades do campo de texto',
58 name: 'Nome',
59 value: 'Valor',
60 charWidth: 'Largo do carácter',
61 maxChars: 'Núm. máximo de caracteres',
62 required: 'Requirido',
63 type: 'Tipo',
64 typeText: 'Texto',
65 typePass: 'Contrasinal',
66 typeEmail: 'Correo',
67 typeSearch: 'Buscar',
68 typeTel: 'Número de teléfono',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/gu.js b/sources/plugins/forms/lang/gu.js
new file mode 100644
index 00000000..e02d7ac0
--- /dev/null
+++ b/sources/plugins/forms/lang/gu.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'gu', {
6 button: {
7 title: 'બટનના ગુણ',
8 text: 'ટેક્સ્ટ (વૅલ્યૂ)',
9 type: 'પ્રકાર',
10 typeBtn: 'બટન',
11 typeSbm: 'સબ્મિટ',
12 typeRst: 'રિસેટ'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'ચેક બોક્સ ગુણ',
16 radioTitle: 'રેડિઓ બટનના ગુણ',
17 value: 'વૅલ્યૂ',
18 selected: 'સિલેક્ટેડ',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'ફૉર્મ/પત્રકના ગુણ',
23 menu: 'ફૉર્મ/પત્રકના ગુણ',
24 action: 'ક્રિયા',
25 method: 'પદ્ધતિ',
26 encoding: 'અન્કોડીન્ગ'
27 },
28 hidden: {
29 title: 'ગુપ્ત ક્ષેત્રના ગુણ',
30 name: 'નામ',
31 value: 'વૅલ્યૂ'
32 },
33 select: {
34 title: 'પસંદગી ક્ષેત્રના ગુણ',
35 selectInfo: 'સૂચના',
36 opAvail: 'ઉપલબ્ધ વિકલ્પ',
37 value: 'વૅલ્યૂ',
38 size: 'સાઇઝ',
39 lines: 'લીટીઓ',
40 chkMulti: 'એકથી વધારે પસંદ કરી શકો',
41 required: 'Required', // MISSING
42 opText: 'ટેક્સ્ટ',
43 opValue: 'વૅલ્યૂ',
44 btnAdd: 'ઉમેરવું',
45 btnModify: 'બદલવું',
46 btnUp: 'ઉપર',
47 btnDown: 'નીચે',
48 btnSetValue: 'પસંદ કરલી વૅલ્યૂ સેટ કરો',
49 btnDelete: 'રદ કરવું'
50 },
51 textarea: {
52 title: 'ટેક્સ્ટ એઅરિઆ, શબ્દ વિસ્તારના ગુણ',
53 cols: 'કૉલમ/ઊભી કટાર',
54 rows: 'પંક્તિઓ'
55 },
56 textfield: {
57 title: 'ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્રના ગુણ',
58 name: 'નામ',
59 value: 'વૅલ્યૂ',
60 charWidth: 'કેરેક્ટરની પહોળાઈ',
61 maxChars: 'અધિકતમ કેરેક્ટર',
62 required: 'Required', // MISSING
63 type: 'ટાઇપ',
64 typeText: 'ટેક્સ્ટ',
65 typePass: 'પાસવર્ડ',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/he.js b/sources/plugins/forms/lang/he.js
new file mode 100644
index 00000000..7b0222e5
--- /dev/null
+++ b/sources/plugins/forms/lang/he.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'he', {
6 button: {
7 title: 'מאפייני כפתור',
8 text: 'טקסט (ערך)',
9 type: 'סוג',
10 typeBtn: 'כפתור',
11 typeSbm: 'שליחה',
12 typeRst: 'איפוס'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'מאפייני תיבת סימון',
16 radioTitle: 'מאפייני לחצן אפשרויות',
17 value: 'ערך',
18 selected: 'מסומן',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'מאפיני טופס',
23 menu: 'מאפיני טופס',
24 action: 'שלח אל',
25 method: 'סוג שליחה',
26 encoding: 'קידוד'
27 },
28 hidden: {
29 title: 'מאפיני שדה חבוי',
30 name: 'שם',
31 value: 'ערך'
32 },
33 select: {
34 title: 'מאפייני שדה בחירה',
35 selectInfo: 'מידע',
36 opAvail: 'אפשרויות זמינות',
37 value: 'ערך',
38 size: 'גודל',
39 lines: 'שורות',
40 chkMulti: 'איפשור בחירות מרובות',
41 required: 'Required', // MISSING
42 opText: 'טקסט',
43 opValue: 'ערך',
44 btnAdd: 'הוספה',
45 btnModify: 'שינוי',
46 btnUp: 'למעלה',
47 btnDown: 'למטה',
48 btnSetValue: 'קביעה כברירת מחדל',
49 btnDelete: 'מחיקה'
50 },
51 textarea: {
52 title: 'מאפייני איזור טקסט',
53 cols: 'עמודות',
54 rows: 'שורות'
55 },
56 textfield: {
57 title: 'מאפייני שדה טקסט',
58 name: 'שם',
59 value: 'ערך',
60 charWidth: 'רוחב לפי תווים',
61 maxChars: 'מקסימום תווים',
62 required: 'Required', // MISSING
63 type: 'סוג',
64 typeText: 'טקסט',
65 typePass: 'סיסמה',
66 typeEmail: 'דוא"ל',
67 typeSearch: 'חיפוש',
68 typeTel: 'מספר טלפון',
69 typeUrl: 'כתובת (URL)'
70 }
71} );
diff --git a/sources/plugins/forms/lang/hi.js b/sources/plugins/forms/lang/hi.js
new file mode 100644
index 00000000..32134b6f
--- /dev/null
+++ b/sources/plugins/forms/lang/hi.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'hi', {
6 button: {
7 title: 'बटन प्रॉपर्टीज़',
8 text: 'टेक्स्ट (वैल्यू)',
9 type: 'प्रकार',
10 typeBtn: 'बटन',
11 typeSbm: 'सब्मिट',
12 typeRst: 'रिसेट'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'चॅक बॉक्स प्रॉपर्टीज़',
16 radioTitle: 'रेडिओ बटन प्रॉपर्टीज़',
17 value: 'वैल्यू',
18 selected: 'सॅलॅक्टॅड',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'फ़ॉर्म प्रॉपर्टीज़',
23 menu: 'फ़ॉर्म प्रॉपर्टीज़',
24 action: 'क्रिया',
25 method: 'तरीका',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'गुप्त फ़ील्ड प्रॉपर्टीज़',
30 name: 'नाम',
31 value: 'वैल्यू'
32 },
33 select: {
34 title: 'चुनाव फ़ील्ड प्रॉपर्टीज़',
35 selectInfo: 'सूचना',
36 opAvail: 'उपलब्ध विकल्प',
37 value: 'वैल्यू',
38 size: 'साइज़',
39 lines: 'पंक्तियाँ',
40 chkMulti: 'एक से ज्यादा विकल्प चुनने दें',
41 required: 'Required', // MISSING
42 opText: 'टेक्स्ट',
43 opValue: 'वैल्यू',
44 btnAdd: 'जोड़ें',
45 btnModify: 'बदलें',
46 btnUp: 'ऊपर',
47 btnDown: 'नीचे',
48 btnSetValue: 'चुनी गई वैल्यू सॅट करें',
49 btnDelete: 'डिलीट'
50 },
51 textarea: {
52 title: 'टेक्स्त एरिया प्रॉपर्टीज़',
53 cols: 'कालम',
54 rows: 'पंक्तियां'
55 },
56 textfield: {
57 title: 'टेक्स्ट फ़ील्ड प्रॉपर्टीज़',
58 name: 'नाम',
59 value: 'वैल्यू',
60 charWidth: 'करॅक्टर की चौढ़ाई',
61 maxChars: 'अधिकतम करॅक्टर',
62 required: 'Required', // MISSING
63 type: 'टाइप',
64 typeText: 'टेक्स्ट',
65 typePass: 'पास्वर्ड',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/hr.js b/sources/plugins/forms/lang/hr.js
new file mode 100644
index 00000000..0fee02ec
--- /dev/null
+++ b/sources/plugins/forms/lang/hr.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'hr', {
6 button: {
7 title: 'Button svojstva',
8 text: 'Tekst (vrijednost)',
9 type: 'Vrsta',
10 typeBtn: 'Gumb',
11 typeSbm: 'Pošalji',
12 typeRst: 'Poništi'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox svojstva',
16 radioTitle: 'Radio Button svojstva',
17 value: 'Vrijednost',
18 selected: 'Odabrano',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Form svojstva',
23 menu: 'Form svojstva',
24 action: 'Akcija',
25 method: 'Metoda',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Hidden Field svojstva',
30 name: 'Ime',
31 value: 'Vrijednost'
32 },
33 select: {
34 title: 'Selection svojstva',
35 selectInfo: 'Info',
36 opAvail: 'Dostupne opcije',
37 value: 'Vrijednost',
38 size: 'Veličina',
39 lines: 'linija',
40 chkMulti: 'Dozvoli višestruki odabir',
41 required: 'Required', // MISSING
42 opText: 'Tekst',
43 opValue: 'Vrijednost',
44 btnAdd: 'Dodaj',
45 btnModify: 'Promijeni',
46 btnUp: 'Gore',
47 btnDown: 'Dolje',
48 btnSetValue: 'Postavi kao odabranu vrijednost',
49 btnDelete: 'Obriši'
50 },
51 textarea: {
52 title: 'Textarea svojstva',
53 cols: 'Kolona',
54 rows: 'Redova'
55 },
56 textfield: {
57 title: 'Text Field svojstva',
58 name: 'Ime',
59 value: 'Vrijednost',
60 charWidth: 'Širina',
61 maxChars: 'Najviše karaktera',
62 required: 'Required', // MISSING
63 type: 'Vrsta',
64 typeText: 'Tekst',
65 typePass: 'Šifra',
66 typeEmail: 'Email',
67 typeSearch: 'Traži',
68 typeTel: 'Broj telefona',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/hu.js b/sources/plugins/forms/lang/hu.js
new file mode 100644
index 00000000..aa5893af
--- /dev/null
+++ b/sources/plugins/forms/lang/hu.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'hu', {
6 button: {
7 title: 'Gomb tulajdonságai',
8 text: 'Szöveg (Érték)',
9 type: 'Típus',
10 typeBtn: 'Gomb',
11 typeSbm: 'Küldés',
12 typeRst: 'Alaphelyzet'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Jelölőnégyzet tulajdonságai',
16 radioTitle: 'Választógomb tulajdonságai',
17 value: 'Érték',
18 selected: 'Kiválasztott',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Űrlap tulajdonságai',
23 menu: 'Űrlap tulajdonságai',
24 action: 'Adatfeldolgozást végző hivatkozás',
25 method: 'Adatküldés módja',
26 encoding: 'Kódolás'
27 },
28 hidden: {
29 title: 'Rejtett mező tulajdonságai',
30 name: 'Név',
31 value: 'Érték'
32 },
33 select: {
34 title: 'Legördülő lista tulajdonságai',
35 selectInfo: 'Alaptulajdonságok',
36 opAvail: 'Elérhető opciók',
37 value: 'Érték',
38 size: 'Méret',
39 lines: 'sor',
40 chkMulti: 'több sor is kiválasztható',
41 required: 'Required', // MISSING
42 opText: 'Szöveg',
43 opValue: 'Érték',
44 btnAdd: 'Hozzáad',
45 btnModify: 'Módosít',
46 btnUp: 'Fel',
47 btnDown: 'Le',
48 btnSetValue: 'Legyen az alapértelmezett érték',
49 btnDelete: 'Töröl'
50 },
51 textarea: {
52 title: 'Szövegterület tulajdonságai',
53 cols: 'Karakterek száma egy sorban',
54 rows: 'Sorok száma'
55 },
56 textfield: {
57 title: 'Szövegmező tulajdonságai',
58 name: 'Név',
59 value: 'Érték',
60 charWidth: 'Megjelenített karakterek száma',
61 maxChars: 'Maximális karakterszám',
62 required: 'Required', // MISSING
63 type: 'Típus',
64 typeText: 'Szöveg',
65 typePass: 'Jelszó',
66 typeEmail: 'Ímél',
67 typeSearch: 'Keresés',
68 typeTel: 'Telefonszám',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/id.js b/sources/plugins/forms/lang/id.js
new file mode 100644
index 00000000..f70162eb
--- /dev/null
+++ b/sources/plugins/forms/lang/id.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'id', {
6 button: {
7 title: 'Properti Tombol',
8 text: 'Teks (Nilai)',
9 type: 'Tipe',
10 typeBtn: 'Tombol',
11 typeSbm: 'Menyerahkan',
12 typeRst: 'Atur Ulang'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties', // MISSING
16 radioTitle: 'Radio Button Properties', // MISSING
17 value: 'Nilai',
18 selected: 'Terpilih',
19 required: 'Wajib'
20 },
21 form: {
22 title: 'Form Properties', // MISSING
23 menu: 'Form Properties', // MISSING
24 action: 'Aksi',
25 method: 'Metode',
26 encoding: 'Encoding' // MISSING
27 },
28 hidden: {
29 title: 'Hidden Field Properties', // MISSING
30 name: 'Nama',
31 value: 'Nilai'
32 },
33 select: {
34 title: 'Selection Field Properties', // MISSING
35 selectInfo: 'Select Info', // MISSING
36 opAvail: 'Available Options', // MISSING
37 value: 'Nilai',
38 size: 'Ukuran',
39 lines: 'garis',
40 chkMulti: 'Izinkan pemilihan ganda',
41 required: 'Wajib',
42 opText: 'Teks',
43 opValue: 'Nilai',
44 btnAdd: 'Tambah',
45 btnModify: 'Modifikasi',
46 btnUp: 'Atas',
47 btnDown: 'Bawah',
48 btnSetValue: 'Atur sebagai nilai yang dipilih',
49 btnDelete: 'Hapus'
50 },
51 textarea: {
52 title: 'Textarea Properties', // MISSING
53 cols: 'Kolom',
54 rows: 'Baris'
55 },
56 textfield: {
57 title: 'Text Field Properties', // MISSING
58 name: 'Name',
59 value: 'Nilai',
60 charWidth: 'Character Width', // MISSING
61 maxChars: 'Maximum Characters', // MISSING
62 required: 'Wajib',
63 type: 'Tipe',
64 typeText: 'Teks',
65 typePass: 'Kata kunci',
66 typeEmail: 'Surel',
67 typeSearch: 'Cari',
68 typeTel: 'Nomor Telepon',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/is.js b/sources/plugins/forms/lang/is.js
new file mode 100644
index 00000000..d94d35fb
--- /dev/null
+++ b/sources/plugins/forms/lang/is.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'is', {
6 button: {
7 title: 'Eigindi hnapps',
8 text: 'Texti',
9 type: 'Gerð',
10 typeBtn: 'Hnappur',
11 typeSbm: 'Staðfesta',
12 typeRst: 'Hreinsa'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Eigindi markreits',
16 radioTitle: 'Eigindi valhnapps',
17 value: 'Gildi',
18 selected: 'Valið',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Eigindi innsláttarforms',
23 menu: 'Eigindi innsláttarforms',
24 action: 'Aðgerð',
25 method: 'Aðferð',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Eigindi falins svæðis',
30 name: 'Nafn',
31 value: 'Gildi'
32 },
33 select: {
34 title: 'Eigindi lista',
35 selectInfo: 'Upplýsingar',
36 opAvail: 'Kostir',
37 value: 'Gildi',
38 size: 'Stærð',
39 lines: 'línur',
40 chkMulti: 'Leyfa fleiri kosti',
41 required: 'Required', // MISSING
42 opText: 'Texti',
43 opValue: 'Gildi',
44 btnAdd: 'Bæta við',
45 btnModify: 'Breyta',
46 btnUp: 'Upp',
47 btnDown: 'Niður',
48 btnSetValue: 'Merkja sem valið',
49 btnDelete: 'Eyða'
50 },
51 textarea: {
52 title: 'Eigindi textasvæðis',
53 cols: 'Dálkar',
54 rows: 'Línur'
55 },
56 textfield: {
57 title: 'Eigindi textareits',
58 name: 'Nafn',
59 value: 'Gildi',
60 charWidth: 'Breidd (leturtákn)',
61 maxChars: 'Hámarksfjöldi leturtákna',
62 required: 'Required', // MISSING
63 type: 'Gerð',
64 typeText: 'Texti',
65 typePass: 'Lykilorð',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'Vefslóð'
70 }
71} );
diff --git a/sources/plugins/forms/lang/it.js b/sources/plugins/forms/lang/it.js
new file mode 100644
index 00000000..491ae0f7
--- /dev/null
+++ b/sources/plugins/forms/lang/it.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'it', {
6 button: {
7 title: 'Proprietà bottone',
8 text: 'Testo (Valore)',
9 type: 'Tipo',
10 typeBtn: 'Bottone',
11 typeSbm: 'Invio',
12 typeRst: 'Annulla'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Proprietà checkbox',
16 radioTitle: 'Proprietà radio button',
17 value: 'Valore',
18 selected: 'Selezionato',
19 required: 'Richiesto'
20 },
21 form: {
22 title: 'Proprietà modulo',
23 menu: 'Proprietà modulo',
24 action: 'Azione',
25 method: 'Metodo',
26 encoding: 'Codifica'
27 },
28 hidden: {
29 title: 'Proprietà campo nascosto',
30 name: 'Nome',
31 value: 'Valore'
32 },
33 select: {
34 title: 'Proprietà menu di selezione',
35 selectInfo: 'Info',
36 opAvail: 'Opzioni disponibili',
37 value: 'Valore',
38 size: 'Dimensione',
39 lines: 'righe',
40 chkMulti: 'Permetti selezione multipla',
41 required: 'Richiesto',
42 opText: 'Testo',
43 opValue: 'Valore',
44 btnAdd: 'Aggiungi',
45 btnModify: 'Modifica',
46 btnUp: 'Su',
47 btnDown: 'Gi',
48 btnSetValue: 'Imposta come predefinito',
49 btnDelete: 'Rimuovi'
50 },
51 textarea: {
52 title: 'Proprietà area di testo',
53 cols: 'Colonne',
54 rows: 'Righe'
55 },
56 textfield: {
57 title: 'Proprietà campo di testo',
58 name: 'Nome',
59 value: 'Valore',
60 charWidth: 'Larghezza',
61 maxChars: 'Numero massimo di caratteri',
62 required: 'Richiesto',
63 type: 'Tipo',
64 typeText: 'Testo',
65 typePass: 'Password',
66 typeEmail: 'Email',
67 typeSearch: 'Cerca',
68 typeTel: 'Numero di telefono',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ja.js b/sources/plugins/forms/lang/ja.js
new file mode 100644
index 00000000..6b878901
--- /dev/null
+++ b/sources/plugins/forms/lang/ja.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ja', {
6 button: {
7 title: 'ボタン プロパティ',
8 text: 'テキスト (値)',
9 type: 'タイプ',
10 typeBtn: 'ボタン',
11 typeSbm: '送信',
12 typeRst: 'リセット'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'チェックボックスのプロパティ',
16 radioTitle: 'ラジオボタンのプロパティ',
17 value: '値',
18 selected: '選択済み',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'フォームのプロパティ',
23 menu: 'フォームのプロパティ',
24 action: 'アクション (action)',
25 method: 'メソッド (method)',
26 encoding: 'エンコード方式 (encoding)'
27 },
28 hidden: {
29 title: '不可視フィールド プロパティ',
30 name: '名前 (name)',
31 value: '値 (value)'
32 },
33 select: {
34 title: '選択フィールドのプロパティ',
35 selectInfo: '情報',
36 opAvail: '利用可能なオプション',
37 value: '選択項目値',
38 size: 'サイズ',
39 lines: '行',
40 chkMulti: '複数選択を許可',
41 required: 'Required', // MISSING
42 opText: '選択項目名',
43 opValue: '値',
44 btnAdd: '追加',
45 btnModify: '編集',
46 btnUp: '上へ',
47 btnDown: '下へ',
48 btnSetValue: '選択した値を設定',
49 btnDelete: '削除'
50 },
51 textarea: {
52 title: 'テキストエリア プロパティ',
53 cols: '列',
54 rows: '行'
55 },
56 textfield: {
57 title: '1行テキスト プロパティ',
58 name: '名前',
59 value: '値',
60 charWidth: 'サイズ',
61 maxChars: '最大長',
62 required: 'Required', // MISSING
63 type: 'タイプ',
64 typeText: 'テキスト',
65 typePass: 'パスワード入力',
66 typeEmail: 'メール',
67 typeSearch: '検索',
68 typeTel: '電話番号',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ka.js b/sources/plugins/forms/lang/ka.js
new file mode 100644
index 00000000..2f9e0975
--- /dev/null
+++ b/sources/plugins/forms/lang/ka.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ka', {
6 button: {
7 title: 'ღილაკის პარამეტრები',
8 text: 'ტექსტი',
9 type: 'ტიპი',
10 typeBtn: 'ღილაკი',
11 typeSbm: 'გაგზავნა',
12 typeRst: 'გასუფთავება'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'მონიშვნის ღილაკის (Checkbox) პარამეტრები',
16 radioTitle: 'ასარჩევი ღილაკის (Radio) პარამეტრები',
17 value: 'ტექსტი',
18 selected: 'არჩეული',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'ფორმის პარამეტრები',
23 menu: 'ფორმის პარამეტრები',
24 action: 'ქმედება',
25 method: 'მეთოდი',
26 encoding: 'კოდირება'
27 },
28 hidden: {
29 title: 'მალული ველის პარამეტრები',
30 name: 'სახელი',
31 value: 'მნიშვნელობა'
32 },
33 select: {
34 title: 'არჩევის ველის პარამეტრები',
35 selectInfo: 'ინფორმაცია',
36 opAvail: 'შესაძლებელი ვარიანტები',
37 value: 'მნიშვნელობა',
38 size: 'ზომა',
39 lines: 'ხაზები',
40 chkMulti: 'მრავლობითი არჩევანის საშუალება',
41 required: 'Required', // MISSING
42 opText: 'ტექსტი',
43 opValue: 'მნიშვნელობა',
44 btnAdd: 'დამატება',
45 btnModify: 'შეცვლა',
46 btnUp: 'ზემოთ',
47 btnDown: 'ქვემოთ',
48 btnSetValue: 'ამორჩეულ მნიშვნელოვნად დაყენება',
49 btnDelete: 'წაშლა'
50 },
51 textarea: {
52 title: 'ტექსტური არის პარამეტრები',
53 cols: 'სვეტები',
54 rows: 'სტრიქონები'
55 },
56 textfield: {
57 title: 'ტექსტური ველის პარამეტრები',
58 name: 'სახელი',
59 value: 'მნიშვნელობა',
60 charWidth: 'სიმბოლოს ზომა',
61 maxChars: 'ასოების მაქსიმალური ოდენობა',
62 required: 'Required', // MISSING
63 type: 'ტიპი',
64 typeText: 'ტექსტი',
65 typePass: 'პაროლი',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/km.js b/sources/plugins/forms/lang/km.js
new file mode 100644
index 00000000..696d2cd7
--- /dev/null
+++ b/sources/plugins/forms/lang/km.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'km', {
6 button: {
7 title: 'លក្ខណៈ​ប៊ូតុង',
8 text: 'អត្ថបទ (តម្លៃ)',
9 type: 'ប្រភេទ',
10 typeBtn: 'ប៊ូតុង',
11 typeSbm: 'ដាក់ស្នើ',
12 typeRst: 'កំណត់​ឡើង​វិញ'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'លក្ខណៈ​ប្រអប់​ធីក',
16 radioTitle: 'លក្ខនៈ​ប៊ូតុង​មូល',
17 value: 'តម្លៃ',
18 selected: 'បាន​ជ្រើស',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'លក្ខណៈ​បែបបទ',
23 menu: 'លក្ខណៈ​បែបបទ',
24 action: 'សកម្មភាព',
25 method: 'វិធីសាស្ត្រ',
26 encoding: 'ការ​អ៊ិនកូដ'
27 },
28 hidden: {
29 title: 'លក្ខណៈ​វាល​កំបាំង',
30 name: 'ឈ្មោះ',
31 value: 'តម្លៃ'
32 },
33 select: {
34 title: 'លក្ខណៈ​វាល​ជម្រើស',
35 selectInfo: 'ព័ត៌មាន​ជម្រើស',
36 opAvail: 'ជម្រើស​ដែល​មាន',
37 value: 'តម្លៃ',
38 size: 'ទំហំ',
39 lines: 'បន្ទាត់',
40 chkMulti: 'អនុញ្ញាត​ពហុ​ជម្រើស',
41 required: 'Required', // MISSING
42 opText: 'អត្ថបទ',
43 opValue: 'តម្លៃ',
44 btnAdd: 'បន្ថែម',
45 btnModify: 'ផ្លាស់ប្តូរ',
46 btnUp: 'លើ',
47 btnDown: 'ក្រោម',
48 btnSetValue: 'កំណត់​ជា​តម្លៃ​ដែល​បាន​ជ្រើស',
49 btnDelete: 'លុប'
50 },
51 textarea: {
52 title: 'លក្ខណៈ​ប្រអប់​អត្ថបទ',
53 cols: 'ជួរឈរ',
54 rows: 'ជួរដេក'
55 },
56 textfield: {
57 title: 'លក្ខណៈ​វាល​អត្ថបទ',
58 name: 'ឈ្មោះ',
59 value: 'តម្លៃ',
60 charWidth: 'ទទឹង​តួ​អក្សរ',
61 maxChars: 'អក្សរអតិបរិមា',
62 required: 'Required', // MISSING
63 type: 'ប្រភេទ',
64 typeText: 'អត្ថបទ',
65 typePass: 'ពាក្យសម្ងាត់',
66 typeEmail: 'អ៊ីមែល',
67 typeSearch: 'ស្វែង​រក',
68 typeTel: 'លេខ​ទូរសព្ទ',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ko.js b/sources/plugins/forms/lang/ko.js
new file mode 100644
index 00000000..03ff2050
--- /dev/null
+++ b/sources/plugins/forms/lang/ko.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ko', {
6 button: {
7 title: '버튼 속성',
8 text: '글자 (값)',
9 type: '종류',
10 typeBtn: '버튼',
11 typeSbm: '제출',
12 typeRst: '재설정'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: '체크 박스 속성',
16 radioTitle: '라디오 버튼 속성',
17 value: '값',
18 selected: '선택됨',
19 required: '필수 항목'
20 },
21 form: {
22 title: '폼 속성',
23 menu: '폼 속성',
24 action: '실행 경로(Action)',
25 method: '방법(Method)',
26 encoding: '인코딩'
27 },
28 hidden: {
29 title: '숨은 입력 칸 속성',
30 name: '이름',
31 value: '값'
32 },
33 select: {
34 title: '선택 목록 속성',
35 selectInfo: '선택 정보',
36 opAvail: '옵션',
37 value: '값',
38 size: '크기',
39 lines: '줄',
40 chkMulti: '여러 항목 선택 허용',
41 required: '필수 항목',
42 opText: '이름',
43 opValue: '값',
44 btnAdd: '추가',
45 btnModify: '수정',
46 btnUp: '위',
47 btnDown: '아래',
48 btnSetValue: '선택된 것으로 설정',
49 btnDelete: '삭제'
50 },
51 textarea: {
52 title: '여러 줄 입력 칸 속성',
53 cols: '칸 수',
54 rows: '줄 수'
55 },
56 textfield: {
57 title: '한 줄 입력 칸 속성',
58 name: '이름',
59 value: '값',
60 charWidth: '글자 너비',
61 maxChars: '최대 글자 수',
62 required: '필수 항목',
63 type: '형식',
64 typeText: '문자열',
65 typePass: '비밀번호',
66 typeEmail: '이메일',
67 typeSearch: '검색',
68 typeTel: '전화번호',
69 typeUrl: '웹 주소(URL)'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ku.js b/sources/plugins/forms/lang/ku.js
new file mode 100644
index 00000000..55556131
--- /dev/null
+++ b/sources/plugins/forms/lang/ku.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ku', {
6 button: {
7 title: 'خاسیەتی دوگمە',
8 text: '(نرخی) دەق',
9 type: 'جۆر',
10 typeBtn: 'دوگمە',
11 typeSbm: 'بنێرە',
12 typeRst: 'ڕێکخستنەوە'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'خاسیەتی چووارگۆشی پشکنین',
16 radioTitle: 'خاسیەتی جێگرەوەی دوگمە',
17 value: 'نرخ',
18 selected: 'هەڵبژاردرا',
19 required: 'پێویستە'
20 },
21 form: {
22 title: 'خاسیەتی داڕشتە',
23 menu: 'خاسیەتی داڕشتە',
24 action: 'کردار',
25 method: 'ڕێگە',
26 encoding: 'بەکۆدکەر'
27 },
28 hidden: {
29 title: 'خاسیەتی خانەی شاردراوە',
30 name: 'ناو',
31 value: 'نرخ'
32 },
33 select: {
34 title: 'هەڵبژاردەی خاسیەتی خانە',
35 selectInfo: 'زانیاری',
36 opAvail: 'هەڵبژاردەی لەبەردەستدابوون',
37 value: 'نرخ',
38 size: 'گەورەیی',
39 lines: 'هێڵەکان',
40 chkMulti: 'ڕێدان بەفره هەڵبژارده',
41 required: 'پێویستە',
42 opText: 'دەق',
43 opValue: 'نرخ',
44 btnAdd: 'زیادکردن',
45 btnModify: 'گۆڕانکاری',
46 btnUp: 'سەرەوه',
47 btnDown: 'خوارەوە',
48 btnSetValue: 'دابنێ وەك نرخێکی هەڵبژێردراو',
49 btnDelete: 'سڕینەوه'
50 },
51 textarea: {
52 title: 'خاسیەتی ڕووبەری دەق',
53 cols: 'ستوونەکان',
54 rows: 'ڕیزەکان'
55 },
56 textfield: {
57 title: 'خاسیەتی خانەی دەق',
58 name: 'ناو',
59 value: 'نرخ',
60 charWidth: 'پانی نووسە',
61 maxChars: 'ئەوپەڕی نووسە',
62 required: 'پێویستە',
63 type: 'جۆر',
64 typeText: 'دەق',
65 typePass: 'پێپەڕەوشە',
66 typeEmail: 'ئیمەیل',
67 typeSearch: 'گەڕان',
68 typeTel: 'ژمارەی تەلەفۆن',
69 typeUrl: 'ناونیشانی بەستەر'
70 }
71} );
diff --git a/sources/plugins/forms/lang/lt.js b/sources/plugins/forms/lang/lt.js
new file mode 100644
index 00000000..88efbeea
--- /dev/null
+++ b/sources/plugins/forms/lang/lt.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'lt', {
6 button: {
7 title: 'Mygtuko savybės',
8 text: 'Tekstas (Reikšmė)',
9 type: 'Tipas',
10 typeBtn: 'Mygtukas',
11 typeSbm: 'Siųsti',
12 typeRst: 'Išvalyti'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Žymimojo langelio savybės',
16 radioTitle: 'Žymimosios akutės savybės',
17 value: 'Reikšmė',
18 selected: 'Pažymėtas',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Formos savybės',
23 menu: 'Formos savybės',
24 action: 'Veiksmas',
25 method: 'Metodas',
26 encoding: 'Kodavimas'
27 },
28 hidden: {
29 title: 'Nerodomo lauko savybės',
30 name: 'Vardas',
31 value: 'Reikšmė'
32 },
33 select: {
34 title: 'Atrankos lauko savybės',
35 selectInfo: 'Informacija',
36 opAvail: 'Galimos parinktys',
37 value: 'Reikšmė',
38 size: 'Dydis',
39 lines: 'eilučių',
40 chkMulti: 'Leisti daugeriopą atranką',
41 required: 'Required', // MISSING
42 opText: 'Tekstas',
43 opValue: 'Reikšmė',
44 btnAdd: 'Įtraukti',
45 btnModify: 'Modifikuoti',
46 btnUp: 'Aukštyn',
47 btnDown: 'Žemyn',
48 btnSetValue: 'Laikyti pažymėta reikšme',
49 btnDelete: 'Trinti'
50 },
51 textarea: {
52 title: 'Teksto srities savybės',
53 cols: 'Ilgis',
54 rows: 'Plotis'
55 },
56 textfield: {
57 title: 'Teksto lauko savybės',
58 name: 'Vardas',
59 value: 'Reikšmė',
60 charWidth: 'Ilgis simboliais',
61 maxChars: 'Maksimalus simbolių skaičius',
62 required: 'Required', // MISSING
63 type: 'Tipas',
64 typeText: 'Tekstas',
65 typePass: 'Slaptažodis',
66 typeEmail: 'El. paštas',
67 typeSearch: 'Paieška',
68 typeTel: 'Telefono numeris',
69 typeUrl: 'Nuoroda'
70 }
71} );
diff --git a/sources/plugins/forms/lang/lv.js b/sources/plugins/forms/lang/lv.js
new file mode 100644
index 00000000..013b1ac7
--- /dev/null
+++ b/sources/plugins/forms/lang/lv.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'lv', {
6 button: {
7 title: 'Pogas īpašības',
8 text: 'Teksts (vērtība)',
9 type: 'Tips',
10 typeBtn: 'Poga',
11 typeSbm: 'Nosūtīt',
12 typeRst: 'Atcelt'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Atzīmēšanas kastītes īpašības',
16 radioTitle: 'Izvēles poga īpašības',
17 value: 'Vērtība',
18 selected: 'Iezīmēts',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Formas īpašības',
23 menu: 'Formas īpašības',
24 action: 'Darbība',
25 method: 'Metode',
26 encoding: 'Kodējums'
27 },
28 hidden: {
29 title: 'Paslēptās teksta rindas īpašības',
30 name: 'Nosaukums',
31 value: 'Vērtība'
32 },
33 select: {
34 title: 'Iezīmēšanas lauka īpašības',
35 selectInfo: 'Informācija',
36 opAvail: 'Pieejamās iespējas',
37 value: 'Vērtība',
38 size: 'Izmērs',
39 lines: 'rindas',
40 chkMulti: 'Atļaut vairākus iezīmējumus',
41 required: 'Required', // MISSING
42 opText: 'Teksts',
43 opValue: 'Vērtība',
44 btnAdd: 'Pievienot',
45 btnModify: 'Veikt izmaiņas',
46 btnUp: 'Augšup',
47 btnDown: 'Lejup',
48 btnSetValue: 'Noteikt kā iezīmēto vērtību',
49 btnDelete: 'Dzēst'
50 },
51 textarea: {
52 title: 'Teksta laukuma īpašības',
53 cols: 'Kolonnas',
54 rows: 'Rindas'
55 },
56 textfield: {
57 title: 'Teksta rindas īpašības',
58 name: 'Nosaukums',
59 value: 'Vērtība',
60 charWidth: 'Simbolu platums',
61 maxChars: 'Simbolu maksimālais daudzums',
62 required: 'Required', // MISSING
63 type: 'Tips',
64 typeText: 'Teksts',
65 typePass: 'Parole',
66 typeEmail: 'Epasts',
67 typeSearch: 'Meklēt',
68 typeTel: 'Tālruņa numurs',
69 typeUrl: 'Adrese'
70 }
71} );
diff --git a/sources/plugins/forms/lang/mk.js b/sources/plugins/forms/lang/mk.js
new file mode 100644
index 00000000..e648cd4f
--- /dev/null
+++ b/sources/plugins/forms/lang/mk.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'mk', {
6 button: {
7 title: 'Button Properties',
8 text: 'Text (Value)',
9 type: 'Type',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties',
16 radioTitle: 'Radio Button Properties',
17 value: 'Value',
18 selected: 'Selected',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Form Properties',
23 menu: 'Form Properties',
24 action: 'Action',
25 method: 'Method',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Hidden Field Properties',
30 name: 'Name',
31 value: 'Value'
32 },
33 select: {
34 title: 'Selection Field Properties',
35 selectInfo: 'Select Info',
36 opAvail: 'Available Options',
37 value: 'Value',
38 size: 'Size',
39 lines: 'lines',
40 chkMulti: 'Allow multiple selections',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Value',
44 btnAdd: 'Add',
45 btnModify: 'Modify',
46 btnUp: 'Up',
47 btnDown: 'Down',
48 btnSetValue: 'Set as selected value',
49 btnDelete: 'Delete'
50 },
51 textarea: {
52 title: 'Textarea Properties',
53 cols: 'Columns',
54 rows: 'Rows'
55 },
56 textfield: {
57 title: 'Text Field Properties',
58 name: 'Name',
59 value: 'Value',
60 charWidth: 'Character Width',
61 maxChars: 'Maximum Characters',
62 required: 'Required', // MISSING
63 type: 'Type',
64 typeText: 'Text',
65 typePass: 'Password',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL' // MISSING
70 }
71} );
diff --git a/sources/plugins/forms/lang/mn.js b/sources/plugins/forms/lang/mn.js
new file mode 100644
index 00000000..081b62ea
--- /dev/null
+++ b/sources/plugins/forms/lang/mn.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'mn', {
6 button: {
7 title: 'Товчны шинж чанар',
8 text: 'Тэкст (Утга)',
9 type: 'Төрөл',
10 typeBtn: 'Товч',
11 typeSbm: 'Submit',
12 typeRst: 'Болих'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Чекбоксны шинж чанар',
16 radioTitle: 'Радио товчны шинж чанар',
17 value: 'Утга',
18 selected: 'Сонгогдсон',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Форм шинж чанар',
23 menu: 'Форм шинж чанар',
24 action: 'Үйлдэл',
25 method: 'Арга',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Нууц талбарын шинж чанар',
30 name: 'Нэр',
31 value: 'Утга'
32 },
33 select: {
34 title: 'Согогч талбарын шинж чанар',
35 selectInfo: 'Мэдээлэл',
36 opAvail: 'Идвэхтэй сонголт',
37 value: 'Утга',
38 size: 'Хэмжээ',
39 lines: 'Мөр',
40 chkMulti: 'Олон зүйл зэрэг сонгохыг зөвшөөрөх',
41 required: 'Required', // MISSING
42 opText: 'Тэкст',
43 opValue: 'Утга',
44 btnAdd: 'Нэмэх',
45 btnModify: 'Өөрчлөх',
46 btnUp: 'Дээш',
47 btnDown: 'Доош',
48 btnSetValue: 'Сонгогдсан утга оноох',
49 btnDelete: 'Устгах'
50 },
51 textarea: {
52 title: 'Текст орчны шинж чанар',
53 cols: 'Багана',
54 rows: 'Мөр'
55 },
56 textfield: {
57 title: 'Текст талбарын шинж чанар',
58 name: 'Нэр',
59 value: 'Утга',
60 charWidth: 'Тэмдэгтын өргөн',
61 maxChars: 'Хамгийн их тэмдэгт',
62 required: 'Required', // MISSING
63 type: 'Төрөл',
64 typeText: 'Текст',
65 typePass: 'Нууц үг',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'цахим хуудасны хаяг (URL)'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ms.js b/sources/plugins/forms/lang/ms.js
new file mode 100644
index 00000000..3118f475
--- /dev/null
+++ b/sources/plugins/forms/lang/ms.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ms', {
6 button: {
7 title: 'Ciri-ciri Butang',
8 text: 'Teks (Nilai)',
9 type: 'Jenis',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Ciri-ciri Checkbox',
16 radioTitle: 'Ciri-ciri Butang Radio',
17 value: 'Nilai',
18 selected: 'Dipilih',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Ciri-ciri Borang',
23 menu: 'Ciri-ciri Borang',
24 action: 'Tindakan borang',
25 method: 'Cara borang dihantar',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Ciri-ciri Field Tersembunyi',
30 name: 'Nama',
31 value: 'Nilai'
32 },
33 select: {
34 title: 'Ciri-ciri Selection Field',
35 selectInfo: 'Select Info',
36 opAvail: 'Pilihan sediada',
37 value: 'Nilai',
38 size: 'Saiz',
39 lines: 'garisan',
40 chkMulti: 'Benarkan pilihan pelbagai',
41 required: 'Required', // MISSING
42 opText: 'Teks',
43 opValue: 'Nilai',
44 btnAdd: 'Tambah Pilihan',
45 btnModify: 'Ubah Pilihan',
46 btnUp: 'Naik ke atas',
47 btnDown: 'Turun ke bawah',
48 btnSetValue: 'Set sebagai nilai terpilih',
49 btnDelete: 'Padam'
50 },
51 textarea: {
52 title: 'Ciri-ciri Textarea',
53 cols: 'Lajur',
54 rows: 'Baris'
55 },
56 textfield: {
57 title: 'Ciri-ciri Text Field',
58 name: 'Nama',
59 value: 'Nilai',
60 charWidth: 'Lebar isian',
61 maxChars: 'Isian Maksimum',
62 required: 'Required', // MISSING
63 type: 'Jenis',
64 typeText: 'Teks',
65 typePass: 'Kata Laluan',
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/nb.js b/sources/plugins/forms/lang/nb.js
new file mode 100644
index 00000000..d819af52
--- /dev/null
+++ b/sources/plugins/forms/lang/nb.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'nb', {
6 button: {
7 title: 'Egenskaper for knapp',
8 text: 'Tekst (verdi)',
9 type: 'Type',
10 typeBtn: 'Knapp',
11 typeSbm: 'Send',
12 typeRst: 'Nullstill'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Egenskaper for avmerkingsboks',
16 radioTitle: 'Egenskaper for alternativknapp',
17 value: 'Verdi',
18 selected: 'Valgt',
19 required: 'Påkrevd'
20 },
21 form: {
22 title: 'Egenskaper for skjema',
23 menu: 'Egenskaper for skjema',
24 action: 'Handling',
25 method: 'Metode',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Egenskaper for skjult felt',
30 name: 'Navn',
31 value: 'Verdi'
32 },
33 select: {
34 title: 'Egenskaper for rullegardinliste',
35 selectInfo: 'Info',
36 opAvail: 'Tilgjenglige alternativer',
37 value: 'Verdi',
38 size: 'Størrelse',
39 lines: 'Linjer',
40 chkMulti: 'Tillat flervalg',
41 required: 'Påkrevd',
42 opText: 'Tekst',
43 opValue: 'Verdi',
44 btnAdd: 'Legg til',
45 btnModify: 'Endre',
46 btnUp: 'Opp',
47 btnDown: 'Ned',
48 btnSetValue: 'Sett som valgt',
49 btnDelete: 'Slett'
50 },
51 textarea: {
52 title: 'Egenskaper for tekstområde',
53 cols: 'Kolonner',
54 rows: 'Rader'
55 },
56 textfield: {
57 title: 'Egenskaper for tekstfelt',
58 name: 'Navn',
59 value: 'Verdi',
60 charWidth: 'Tegnbredde',
61 maxChars: 'Maks antall tegn',
62 required: 'Påkrevd',
63 type: 'Type',
64 typeText: 'Tekst',
65 typePass: 'Passord',
66 typeEmail: 'Epost',
67 typeSearch: 'Søk',
68 typeTel: 'Telefonnummer',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/nl.js b/sources/plugins/forms/lang/nl.js
new file mode 100644
index 00000000..c5464dcb
--- /dev/null
+++ b/sources/plugins/forms/lang/nl.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'nl', {
6 button: {
7 title: 'Eigenschappen knop',
8 text: 'Tekst (waarde)',
9 type: 'Soort',
10 typeBtn: 'Knop',
11 typeSbm: 'Versturen',
12 typeRst: 'Leegmaken'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Eigenschappen aanvinkvakje',
16 radioTitle: 'Eigenschappen selectievakje',
17 value: 'Waarde',
18 selected: 'Geselecteerd',
19 required: 'Vereist'
20 },
21 form: {
22 title: 'Eigenschappen formulier',
23 menu: 'Eigenschappen formulier',
24 action: 'Actie',
25 method: 'Methode',
26 encoding: 'Codering'
27 },
28 hidden: {
29 title: 'Eigenschappen verborgen veld',
30 name: 'Naam',
31 value: 'Waarde'
32 },
33 select: {
34 title: 'Eigenschappen selectieveld',
35 selectInfo: 'Informatie',
36 opAvail: 'Beschikbare opties',
37 value: 'Waarde',
38 size: 'Grootte',
39 lines: 'Regels',
40 chkMulti: 'Gecombineerde selecties toestaan',
41 required: 'Vereist',
42 opText: 'Tekst',
43 opValue: 'Waarde',
44 btnAdd: 'Toevoegen',
45 btnModify: 'Wijzigen',
46 btnUp: 'Omhoog',
47 btnDown: 'Omlaag',
48 btnSetValue: 'Als geselecteerde waarde instellen',
49 btnDelete: 'Verwijderen'
50 },
51 textarea: {
52 title: 'Eigenschappen tekstvak',
53 cols: 'Kolommen',
54 rows: 'Rijen'
55 },
56 textfield: {
57 title: 'Eigenschappen tekstveld',
58 name: 'Naam',
59 value: 'Waarde',
60 charWidth: 'Breedte (tekens)',
61 maxChars: 'Maximum aantal tekens',
62 required: 'Vereist',
63 type: 'Soort',
64 typeText: 'Tekst',
65 typePass: 'Wachtwoord',
66 typeEmail: 'E-mail',
67 typeSearch: 'Zoeken',
68 typeTel: 'Telefoonnummer',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/no.js b/sources/plugins/forms/lang/no.js
new file mode 100644
index 00000000..11a18d71
--- /dev/null
+++ b/sources/plugins/forms/lang/no.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'no', {
6 button: {
7 title: 'Egenskaper for knapp',
8 text: 'Tekst (verdi)',
9 type: 'Type',
10 typeBtn: 'Knapp',
11 typeSbm: 'Send',
12 typeRst: 'Nullstill'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Egenskaper for avmerkingsboks',
16 radioTitle: 'Egenskaper for alternativknapp',
17 value: 'Verdi',
18 selected: 'Valgt',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Egenskaper for skjema',
23 menu: 'Egenskaper for skjema',
24 action: 'Handling',
25 method: 'Metode',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Egenskaper for skjult felt',
30 name: 'Navn',
31 value: 'Verdi'
32 },
33 select: {
34 title: 'Egenskaper for rullegardinliste',
35 selectInfo: 'Info',
36 opAvail: 'Tilgjenglige alternativer',
37 value: 'Verdi',
38 size: 'Størrelse',
39 lines: 'Linjer',
40 chkMulti: 'Tillat flervalg',
41 required: 'Required', // MISSING
42 opText: 'Tekst',
43 opValue: 'Verdi',
44 btnAdd: 'Legg til',
45 btnModify: 'Endre',
46 btnUp: 'Opp',
47 btnDown: 'Ned',
48 btnSetValue: 'Sett som valgt',
49 btnDelete: 'Slett'
50 },
51 textarea: {
52 title: 'Egenskaper for tekstområde',
53 cols: 'Kolonner',
54 rows: 'Rader'
55 },
56 textfield: {
57 title: 'Egenskaper for tekstfelt',
58 name: 'Navn',
59 value: 'Verdi',
60 charWidth: 'Tegnbredde',
61 maxChars: 'Maks antall tegn',
62 required: 'Required', // MISSING
63 type: 'Type',
64 typeText: 'Tekst',
65 typePass: 'Passord',
66 typeEmail: 'Epost',
67 typeSearch: 'Søk',
68 typeTel: 'Telefonnummer',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/pl.js b/sources/plugins/forms/lang/pl.js
new file mode 100644
index 00000000..856300c4
--- /dev/null
+++ b/sources/plugins/forms/lang/pl.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'pl', {
6 button: {
7 title: 'Właściwości przycisku',
8 text: 'Tekst (Wartość)',
9 type: 'Typ',
10 typeBtn: 'Przycisk',
11 typeSbm: 'Wyślij',
12 typeRst: 'Wyczyść'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Właściwości pola wyboru (checkbox)',
16 radioTitle: 'Właściwości przycisku opcji (radio)',
17 value: 'Wartość',
18 selected: 'Zaznaczone',
19 required: 'Wymagane'
20 },
21 form: {
22 title: 'Właściwości formularza',
23 menu: 'Właściwości formularza',
24 action: 'Akcja',
25 method: 'Metoda',
26 encoding: 'Kodowanie'
27 },
28 hidden: {
29 title: 'Właściwości pola ukrytego',
30 name: 'Nazwa',
31 value: 'Wartość'
32 },
33 select: {
34 title: 'Właściwości listy wyboru',
35 selectInfo: 'Informacje',
36 opAvail: 'Dostępne opcje',
37 value: 'Wartość',
38 size: 'Rozmiar',
39 lines: 'wierszy',
40 chkMulti: 'Wielokrotny wybór',
41 required: 'Wymagane',
42 opText: 'Tekst',
43 opValue: 'Wartość',
44 btnAdd: 'Dodaj',
45 btnModify: 'Zmień',
46 btnUp: 'Do góry',
47 btnDown: 'Do dołu',
48 btnSetValue: 'Ustaw jako zaznaczoną',
49 btnDelete: 'Usuń'
50 },
51 textarea: {
52 title: 'Właściwości obszaru tekstowego',
53 cols: 'Liczba kolumn',
54 rows: 'Liczba wierszy'
55 },
56 textfield: {
57 title: 'Właściwości pola tekstowego',
58 name: 'Nazwa',
59 value: 'Wartość',
60 charWidth: 'Szerokość w znakach',
61 maxChars: 'Szerokość maksymalna',
62 required: 'Wymagane',
63 type: 'Typ',
64 typeText: 'Tekst',
65 typePass: 'Hasło',
66 typeEmail: 'Email',
67 typeSearch: 'Szukaj',
68 typeTel: 'Numer telefonu',
69 typeUrl: 'Adres URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/pt-br.js b/sources/plugins/forms/lang/pt-br.js
new file mode 100644
index 00000000..d9fd77d2
--- /dev/null
+++ b/sources/plugins/forms/lang/pt-br.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'pt-br', {
6 button: {
7 title: 'Formatar Botão',
8 text: 'Texto (Valor)',
9 type: 'Tipo',
10 typeBtn: 'Botão',
11 typeSbm: 'Enviar',
12 typeRst: 'Limpar'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Formatar Caixa de Seleção',
16 radioTitle: 'Formatar Botão de Opção',
17 value: 'Valor',
18 selected: 'Selecionado',
19 required: 'Obrigatório'
20 },
21 form: {
22 title: 'Formatar Formulário',
23 menu: 'Formatar Formulário',
24 action: 'Ação',
25 method: 'Método',
26 encoding: 'Codificação'
27 },
28 hidden: {
29 title: 'Formatar Campo Oculto',
30 name: 'Nome',
31 value: 'Valor'
32 },
33 select: {
34 title: 'Formatar Caixa de Listagem',
35 selectInfo: 'Informações',
36 opAvail: 'Opções disponíveis',
37 value: 'Valor',
38 size: 'Tamanho',
39 lines: 'linhas',
40 chkMulti: 'Permitir múltiplas seleções',
41 required: 'Obrigatório',
42 opText: 'Texto',
43 opValue: 'Valor',
44 btnAdd: 'Adicionar',
45 btnModify: 'Modificar',
46 btnUp: 'Para cima',
47 btnDown: 'Para baixo',
48 btnSetValue: 'Definir como selecionado',
49 btnDelete: 'Remover'
50 },
51 textarea: {
52 title: 'Formatar Área de Texto',
53 cols: 'Colunas',
54 rows: 'Linhas'
55 },
56 textfield: {
57 title: 'Formatar Caixa de Texto',
58 name: 'Nome',
59 value: 'Valor',
60 charWidth: 'Comprimento (em caracteres)',
61 maxChars: 'Número Máximo de Caracteres',
62 required: 'Obrigatório',
63 type: 'Tipo',
64 typeText: 'Texto',
65 typePass: 'Senha',
66 typeEmail: 'Email',
67 typeSearch: 'Busca',
68 typeTel: 'Número de Telefone',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/pt.js b/sources/plugins/forms/lang/pt.js
new file mode 100644
index 00000000..192ff8fc
--- /dev/null
+++ b/sources/plugins/forms/lang/pt.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'pt', {
6 button: {
7 title: 'Propriedades do Botão',
8 text: 'Texto (Valor)',
9 type: 'Tipo',
10 typeBtn: 'Botão',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Propriedades da Caixa de Verificação',
16 radioTitle: 'Propriedades do Botão de Opção',
17 value: 'Valor',
18 selected: 'Seleccionado',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Propriedades do Formulário',
23 menu: 'Propriedades do Formulário',
24 action: 'Acção',
25 method: 'Método',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Propriedades do Campo Escondido',
30 name: 'Nome',
31 value: 'Valor'
32 },
33 select: {
34 title: 'Propriedades da Caixa de Combinação',
35 selectInfo: 'Informação',
36 opAvail: 'Opções Possíveis',
37 value: 'Valor',
38 size: 'Tamanho',
39 lines: 'linhas',
40 chkMulti: 'Permitir selecções múltiplas',
41 required: 'Required', // MISSING
42 opText: 'Texto',
43 opValue: 'Valor',
44 btnAdd: 'Adicionar',
45 btnModify: 'Modificar',
46 btnUp: 'Para cima',
47 btnDown: 'Para baixo',
48 btnSetValue: 'Definir um valor por defeito',
49 btnDelete: 'Apagar'
50 },
51 textarea: {
52 title: 'Propriedades da Área de Texto',
53 cols: 'Colunas',
54 rows: 'Linhas'
55 },
56 textfield: {
57 title: 'Propriedades do Campo de Texto',
58 name: 'Nome',
59 value: 'Valor',
60 charWidth: 'Tamanho do caracter',
61 maxChars: 'Nr. Máximo de Caracteres',
62 required: 'Required', // MISSING
63 type: 'Tipo',
64 typeText: 'Texto',
65 typePass: 'Senha',
66 typeEmail: 'Email',
67 typeSearch: 'Pesquisar',
68 typeTel: 'Telefone',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ro.js b/sources/plugins/forms/lang/ro.js
new file mode 100644
index 00000000..9bf69bb1
--- /dev/null
+++ b/sources/plugins/forms/lang/ro.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ro', {
6 button: {
7 title: 'Proprietăţi buton',
8 text: 'Text (Valoare)',
9 type: 'Tip',
10 typeBtn: 'Buton',
11 typeSbm: 'Trimite',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Proprietăţi bifă (Checkbox)',
16 radioTitle: 'Proprietăţi buton radio (Radio Button)',
17 value: 'Valoare',
18 selected: 'Selectat',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Proprietăţi formular (Form)',
23 menu: 'Proprietăţi formular (Form)',
24 action: 'Acţiune',
25 method: 'Metodă',
26 encoding: 'Encodare'
27 },
28 hidden: {
29 title: 'Proprietăţi câmp ascuns (Hidden Field)',
30 name: 'Nume',
31 value: 'Valoare'
32 },
33 select: {
34 title: 'Proprietăţi câmp selecţie (Selection Field)',
35 selectInfo: 'Informaţii',
36 opAvail: 'Opţiuni disponibile',
37 value: 'Valoare',
38 size: 'Mărime',
39 lines: 'linii',
40 chkMulti: 'Permite selecţii multiple',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Valoare',
44 btnAdd: 'Adaugă',
45 btnModify: 'Modifică',
46 btnUp: 'Sus',
47 btnDown: 'Jos',
48 btnSetValue: 'Setează ca valoare selectată',
49 btnDelete: 'Şterge'
50 },
51 textarea: {
52 title: 'Proprietăţi suprafaţă text (Textarea)',
53 cols: 'Coloane',
54 rows: 'Linii'
55 },
56 textfield: {
57 title: 'Proprietăţi câmp text (Text Field)',
58 name: 'Nume',
59 value: 'Valoare',
60 charWidth: 'Lărgimea caracterului',
61 maxChars: 'Caractere maxime',
62 required: 'Required', // MISSING
63 type: 'Tip',
64 typeText: 'Text',
65 typePass: 'Parolă',
66 typeEmail: 'Email',
67 typeSearch: 'Cauta',
68 typeTel: 'Numar de telefon',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ru.js b/sources/plugins/forms/lang/ru.js
new file mode 100644
index 00000000..be9bacda
--- /dev/null
+++ b/sources/plugins/forms/lang/ru.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ru', {
6 button: {
7 title: 'Свойства кнопки',
8 text: 'Текст (Значение)',
9 type: 'Тип',
10 typeBtn: 'Кнопка',
11 typeSbm: 'Отправка',
12 typeRst: 'Сброс'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Свойства флаговой кнопки',
16 radioTitle: 'Свойства кнопки выбора',
17 value: 'Значение',
18 selected: 'Выбрано',
19 required: 'Обязательное поле'
20 },
21 form: {
22 title: 'Свойства формы',
23 menu: 'Свойства формы',
24 action: 'Действие',
25 method: 'Метод',
26 encoding: 'Кодировка'
27 },
28 hidden: {
29 title: 'Свойства скрытого поля',
30 name: 'Имя',
31 value: 'Значение'
32 },
33 select: {
34 title: 'Свойства списка выбора',
35 selectInfo: 'Информация о списке выбора',
36 opAvail: 'Доступные варианты',
37 value: 'Значение',
38 size: 'Размер',
39 lines: 'строк(и)',
40 chkMulti: 'Разрешить выбор нескольких вариантов',
41 required: 'Обязательное поле',
42 opText: 'Текст',
43 opValue: 'Значение',
44 btnAdd: 'Добавить',
45 btnModify: 'Изменить',
46 btnUp: 'Поднять',
47 btnDown: 'Опустить',
48 btnSetValue: 'Пометить как выбранное',
49 btnDelete: 'Удалить'
50 },
51 textarea: {
52 title: 'Свойства многострочного текстового поля',
53 cols: 'Колонок',
54 rows: 'Строк'
55 },
56 textfield: {
57 title: 'Свойства текстового поля',
58 name: 'Имя',
59 value: 'Значение',
60 charWidth: 'Ширина поля (в символах)',
61 maxChars: 'Макс. количество символов',
62 required: 'Обязательное поле',
63 type: 'Тип содержимого',
64 typeText: 'Текст',
65 typePass: 'Пароль',
66 typeEmail: 'Email',
67 typeSearch: 'Поиск',
68 typeTel: 'Номер телефона',
69 typeUrl: 'Ссылка'
70 }
71} );
diff --git a/sources/plugins/forms/lang/si.js b/sources/plugins/forms/lang/si.js
new file mode 100644
index 00000000..436b81b6
--- /dev/null
+++ b/sources/plugins/forms/lang/si.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'si', {
6 button: {
7 title: 'බොත්තම් ගුණ',
8 text: 'වගන්තිය(වටිනාකම)',
9 type: 'වර්ගය',
10 typeBtn: 'බොත්තම',
11 typeSbm: 'යොමුකරනවා',
12 typeRst: 'නැවත ආරම්භකතත්වයට පත් කරනවා'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'ලකුණු කිරීමේ කොටුවේ ලක්ෂණ',
16 radioTitle: 'Radio Button Properties', // MISSING
17 value: 'Value', // MISSING
18 selected: 'Selected', // MISSING
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'පෝරමයේ ',
23 menu: 'පෝරමයේ ගුණ/',
24 action: 'ගන්නා පියවර',
25 method: 'ක්‍රමය',
26 encoding: 'කේතීකරණය'
27 },
28 hidden: {
29 title: 'සැඟවුණු ප්‍රදේශයේ ',
30 name: 'නම',
31 value: 'Value' // MISSING
32 },
33 select: {
34 title: 'තේරීම් ප්‍රදේශයේ ',
35 selectInfo: 'විස්තර තෝරන්න',
36 opAvail: 'ඉතුරුවී ඇති වීකල්ප',
37 value: 'Value', // MISSING
38 size: 'විශාලත්වය',
39 lines: 'lines', // MISSING
40 chkMulti: 'Allow multiple selections', // MISSING
41 required: 'Required', // MISSING
42 opText: 'Text', // MISSING
43 opValue: 'Value', // MISSING
44 btnAdd: 'Add', // MISSING
45 btnModify: 'Modify', // MISSING
46 btnUp: 'Up', // MISSING
47 btnDown: 'Down', // MISSING
48 btnSetValue: 'Set as selected value', // MISSING
49 btnDelete: 'මකා දැම්ම'
50 },
51 textarea: {
52 title: 'Textarea Properties', // MISSING
53 cols: 'සිරස් ',
54 rows: 'Rows' // MISSING
55 },
56 textfield: {
57 title: 'Text Field Properties', // MISSING
58 name: 'නම',
59 value: 'Value', // MISSING
60 charWidth: 'Character Width', // MISSING
61 maxChars: 'Maximum Characters', // MISSING
62 required: 'Required', // MISSING
63 type: 'වර්ගය',
64 typeText: 'Text', // MISSING
65 typePass: 'Password', // MISSING
66 typeEmail: 'Email', // MISSING
67 typeSearch: 'Search', // MISSING
68 typeTel: 'Telephone Number', // MISSING
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/sk.js b/sources/plugins/forms/lang/sk.js
new file mode 100644
index 00000000..0bb4507d
--- /dev/null
+++ b/sources/plugins/forms/lang/sk.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'sk', {
6 button: {
7 title: 'Vlastnosti tlačidla',
8 text: 'Text (Hodnota)',
9 type: 'Typ',
10 typeBtn: 'Tlačidlo',
11 typeSbm: 'Odoslať',
12 typeRst: 'Resetovať'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Vlastnosti zaškrtávacieho políčka',
16 radioTitle: 'Vlastnosti prepínača (radio button)',
17 value: 'Hodnota',
18 selected: 'Vybrané (selected)',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Vlastnosti formulára',
23 menu: 'Vlastnosti formulára',
24 action: 'Akcia (action)',
25 method: 'Metóda (method)',
26 encoding: 'Kódovanie (encoding)'
27 },
28 hidden: {
29 title: 'Vlastnosti skrytého poľa',
30 name: 'Názov (name)',
31 value: 'Hodnota'
32 },
33 select: {
34 title: 'Vlastnosti rozbaľovacieho zoznamu',
35 selectInfo: 'Informácie o výbere',
36 opAvail: 'Dostupné možnosti',
37 value: 'Hodnota',
38 size: 'Veľkosť',
39 lines: 'riadkov',
40 chkMulti: 'Povoliť viacnásobný výber',
41 required: 'Required', // MISSING
42 opText: 'Text',
43 opValue: 'Hodnota',
44 btnAdd: 'Pridať',
45 btnModify: 'Upraviť',
46 btnUp: 'Hore',
47 btnDown: 'Dole',
48 btnSetValue: 'Nastaviť ako vybranú hodnotu',
49 btnDelete: 'Vymazať'
50 },
51 textarea: {
52 title: 'Vlastnosti textovej oblasti (textarea)',
53 cols: 'Stĺpcov',
54 rows: 'Riadkov'
55 },
56 textfield: {
57 title: 'Vlastnosti textového poľa',
58 name: 'Názov (name)',
59 value: 'Hodnota',
60 charWidth: 'Šírka poľa (podľa znakov)',
61 maxChars: 'Maximálny počet znakov',
62 required: 'Required', // MISSING
63 type: 'Typ',
64 typeText: 'Text',
65 typePass: 'Heslo',
66 typeEmail: 'Email',
67 typeSearch: 'Hľadať',
68 typeTel: 'Telefónne číslo',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/sl.js b/sources/plugins/forms/lang/sl.js
new file mode 100644
index 00000000..ed520f6e
--- /dev/null
+++ b/sources/plugins/forms/lang/sl.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'sl', {
6 button: {
7 title: 'Lastnosti gumba',
8 text: 'Besedilo (Vrednost)',
9 type: 'Tip',
10 typeBtn: 'Gumb',
11 typeSbm: 'Potrdi',
12 typeRst: 'Ponastavi'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Lastnosti potrditvenega polja',
16 radioTitle: 'Lastnosti izbirnega polja',
17 value: 'Vrednost',
18 selected: 'Izbrano',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Lastnosti obrazca',
23 menu: 'Lastnosti obrazca',
24 action: 'Akcija',
25 method: 'Metoda',
26 encoding: 'Kodiranje znakov'
27 },
28 hidden: {
29 title: 'Lastnosti skritega polja',
30 name: 'Ime',
31 value: 'Vrednost'
32 },
33 select: {
34 title: 'Lastnosti spustnega seznama',
35 selectInfo: 'Podatki',
36 opAvail: 'Razpoložljive izbire',
37 value: 'Vrednost',
38 size: 'Velikost',
39 lines: 'vrstic',
40 chkMulti: 'Dovoli izbor večih vrstic',
41 required: 'Required', // MISSING
42 opText: 'Besedilo',
43 opValue: 'Vrednost',
44 btnAdd: 'Dodaj',
45 btnModify: 'Spremeni',
46 btnUp: 'Gor',
47 btnDown: 'Dol',
48 btnSetValue: 'Postavi kot privzeto izbiro',
49 btnDelete: 'Izbriši'
50 },
51 textarea: {
52 title: 'Lastnosti vnosnega območja',
53 cols: 'Stolpcev',
54 rows: 'Vrstic'
55 },
56 textfield: {
57 title: 'Lastnosti vnosnega polja',
58 name: 'Ime',
59 value: 'Vrednost',
60 charWidth: 'Dolžina',
61 maxChars: 'Največje število znakov',
62 required: 'Required', // MISSING
63 type: 'Tip',
64 typeText: 'Besedilo',
65 typePass: 'Geslo',
66 typeEmail: 'E-pošta',
67 typeSearch: 'Iskanje',
68 typeTel: 'Telefonska Številka',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/sq.js b/sources/plugins/forms/lang/sq.js
new file mode 100644
index 00000000..bf228b62
--- /dev/null
+++ b/sources/plugins/forms/lang/sq.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'sq', {
6 button: {
7 title: 'Rekuizitat e Pullës',
8 text: 'Teskti (Vlera)',
9 type: 'LLoji',
10 typeBtn: 'Buton',
11 typeSbm: 'Dërgo',
12 typeRst: 'Rikthe'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Rekuizitat e Kutizë Përzgjedhëse',
16 radioTitle: 'Rekuizitat e Pullës',
17 value: 'Vlera',
18 selected: 'Përzgjedhur',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Rekuizitat e Formës',
23 menu: 'Rekuizitat e Formës',
24 action: 'Veprim',
25 method: 'Metoda',
26 encoding: 'Kodimi'
27 },
28 hidden: {
29 title: 'Rekuizitat e Fushës së Fshehur',
30 name: 'Emër',
31 value: 'Vlera'
32 },
33 select: {
34 title: 'Rekuizitat e Fushës së Përzgjedhur',
35 selectInfo: 'Përzgjidh Informacionin',
36 opAvail: 'Opsionet e Mundshme',
37 value: 'Vlera',
38 size: 'Madhësia',
39 lines: 'rreshtat',
40 chkMulti: 'Lejo përzgjidhje të shumëfishta',
41 required: 'Required', // MISSING
42 opText: 'Teksti',
43 opValue: 'Vlera',
44 btnAdd: 'Vendos',
45 btnModify: 'Ndrysho',
46 btnUp: 'Sipër',
47 btnDown: 'Poshtë',
48 btnSetValue: 'Bëje si vlerë të përzgjedhur',
49 btnDelete: 'Grise'
50 },
51 textarea: {
52 title: 'Rekuzitat e Fushës së Tekstit',
53 cols: 'Kolonat',
54 rows: 'Rreshtat'
55 },
56 textfield: {
57 title: 'Rekuizitat e Fushës së Tekstit',
58 name: 'Emër',
59 value: 'Vlera',
60 charWidth: 'Gjerësia e Karakterit',
61 maxChars: 'Numri maksimal i karaktereve',
62 required: 'Required', // MISSING
63 type: 'LLoji',
64 typeText: 'Teksti',
65 typePass: 'Fjalëkalimi',
66 typeEmail: 'Posta Elektronike',
67 typeSearch: 'Kërko',
68 typeTel: 'Numri i Telefonit',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/sr-latn.js b/sources/plugins/forms/lang/sr-latn.js
new file mode 100644
index 00000000..35d04e55
--- /dev/null
+++ b/sources/plugins/forms/lang/sr-latn.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'sr-latn', {
6 button: {
7 title: 'Osobine dugmeta',
8 text: 'Tekst (vrednost)',
9 type: 'Tip',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Osobine polja za potvrdu',
16 radioTitle: 'Osobine radio-dugmeta',
17 value: 'Vrednost',
18 selected: 'Označeno',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Osobine forme',
23 menu: 'Osobine forme',
24 action: 'Akcija',
25 method: 'Metoda',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Osobine skrivenog polja',
30 name: 'Naziv',
31 value: 'Vrednost'
32 },
33 select: {
34 title: 'Osobine izbornog polja',
35 selectInfo: 'Info',
36 opAvail: 'Dostupne opcije',
37 value: 'Vrednost',
38 size: 'Veličina',
39 lines: 'linija',
40 chkMulti: 'Dozvoli višestruku selekciju',
41 required: 'Required', // MISSING
42 opText: 'Tekst',
43 opValue: 'Vrednost',
44 btnAdd: 'Dodaj',
45 btnModify: 'Izmeni',
46 btnUp: 'Gore',
47 btnDown: 'Dole',
48 btnSetValue: 'Podesi kao označenu vrednost',
49 btnDelete: 'Obriši'
50 },
51 textarea: {
52 title: 'Osobine zone teksta',
53 cols: 'Broj kolona',
54 rows: 'Broj redova'
55 },
56 textfield: {
57 title: 'Osobine tekstualnog polja',
58 name: 'Naziv',
59 value: 'Vrednost',
60 charWidth: 'Širina (karaktera)',
61 maxChars: 'Maksimalno karaktera',
62 required: 'Required', // MISSING
63 type: 'Tip',
64 typeText: 'Tekst',
65 typePass: 'Lozinka',
66 typeEmail: 'Email',
67 typeSearch: 'Pretraži',
68 typeTel: 'Broj telefona',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/sr.js b/sources/plugins/forms/lang/sr.js
new file mode 100644
index 00000000..b68bb596
--- /dev/null
+++ b/sources/plugins/forms/lang/sr.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'sr', {
6 button: {
7 title: 'Особине дугмета',
8 text: 'Текст (вредност)',
9 type: 'Tип',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Особине поља за потврду',
16 radioTitle: 'Особине радио-дугмета',
17 value: 'Вредност',
18 selected: 'Означено',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Особине форме',
23 menu: 'Особине форме',
24 action: 'Aкција',
25 method: 'Mетода',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'Особине скривеног поља',
30 name: 'Назив',
31 value: 'Вредност'
32 },
33 select: {
34 title: 'Особине изборног поља',
35 selectInfo: 'Инфо',
36 opAvail: 'Доступне опције',
37 value: 'Вредност',
38 size: 'Величина',
39 lines: 'линија',
40 chkMulti: 'Дозволи вишеструку селекцију',
41 required: 'Required', // MISSING
42 opText: 'Текст',
43 opValue: 'Вредност',
44 btnAdd: 'Додај',
45 btnModify: 'Измени',
46 btnUp: 'Горе',
47 btnDown: 'Доле',
48 btnSetValue: 'Подеси као означену вредност',
49 btnDelete: 'Обриши'
50 },
51 textarea: {
52 title: 'Особине зоне текста',
53 cols: 'Број колона',
54 rows: 'Број редова'
55 },
56 textfield: {
57 title: 'Особине текстуалног поља',
58 name: 'Назив',
59 value: 'Вредност',
60 charWidth: 'Ширина (карактера)',
61 maxChars: 'Максимално карактера',
62 required: 'Required', // MISSING
63 type: 'Тип',
64 typeText: 'Текст',
65 typePass: 'Лозинка',
66 typeEmail: 'Е-пошта',
67 typeSearch: 'Претрага',
68 typeTel: 'Број телефона',
69 typeUrl: 'УРЛ'
70 }
71} );
diff --git a/sources/plugins/forms/lang/sv.js b/sources/plugins/forms/lang/sv.js
new file mode 100644
index 00000000..baed9d06
--- /dev/null
+++ b/sources/plugins/forms/lang/sv.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'sv', {
6 button: {
7 title: 'Egenskaper för knapp',
8 text: 'Text (värde)',
9 type: 'Typ',
10 typeBtn: 'Knapp',
11 typeSbm: 'Skicka',
12 typeRst: 'Återställ'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Egenskaper för kryssruta',
16 radioTitle: 'Egenskaper för alternativknapp',
17 value: 'Värde',
18 selected: 'Vald',
19 required: 'Krävs'
20 },
21 form: {
22 title: 'Egenskaper för formulär',
23 menu: 'Egenskaper för formulär',
24 action: 'Funktion',
25 method: 'Metod',
26 encoding: 'Kodning'
27 },
28 hidden: {
29 title: 'Egenskaper för dolt fält',
30 name: 'Namn',
31 value: 'Värde'
32 },
33 select: {
34 title: 'Egenskaper för flervalslista',
35 selectInfo: 'Information',
36 opAvail: 'Befintliga val',
37 value: 'Värde',
38 size: 'Storlek',
39 lines: 'Linjer',
40 chkMulti: 'Tillåt flerval',
41 required: 'Krävs',
42 opText: 'Text',
43 opValue: 'Värde',
44 btnAdd: 'Lägg till',
45 btnModify: 'Redigera',
46 btnUp: 'Upp',
47 btnDown: 'Ner',
48 btnSetValue: 'Markera som valt värde',
49 btnDelete: 'Radera'
50 },
51 textarea: {
52 title: 'Egenskaper för textruta',
53 cols: 'Kolumner',
54 rows: 'Rader'
55 },
56 textfield: {
57 title: 'Egenskaper för textfält',
58 name: 'Namn',
59 value: 'Värde',
60 charWidth: 'Teckenbredd',
61 maxChars: 'Max antal tecken',
62 required: 'Krävs',
63 type: 'Typ',
64 typeText: 'Text',
65 typePass: 'Lösenord',
66 typeEmail: 'E-post',
67 typeSearch: 'Sök',
68 typeTel: 'Telefonnummer',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/th.js b/sources/plugins/forms/lang/th.js
new file mode 100644
index 00000000..f5b06922
--- /dev/null
+++ b/sources/plugins/forms/lang/th.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'th', {
6 button: {
7 title: 'รายละเอียดของ ปุ่ม',
8 text: 'ข้อความ (ค่าตัวแปร)',
9 type: 'ข้อความ',
10 typeBtn: 'Button',
11 typeSbm: 'Submit',
12 typeRst: 'Reset'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'คุณสมบัติของ เช็คบ๊อก',
16 radioTitle: 'คุณสมบัติของ เรดิโอบัตตอน',
17 value: 'ค่าตัวแปร',
18 selected: 'เลือกเป็นค่าเริ่มต้น',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'คุณสมบัติของ แบบฟอร์ม',
23 menu: 'คุณสมบัติของ แบบฟอร์ม',
24 action: 'แอคชั่น',
25 method: 'เมธอด',
26 encoding: 'Encoding'
27 },
28 hidden: {
29 title: 'คุณสมบัติของ ฮิดเดนฟิลด์',
30 name: 'ชื่อ',
31 value: 'ค่าตัวแปร'
32 },
33 select: {
34 title: 'คุณสมบัติของ แถบตัวเลือก',
35 selectInfo: 'อินโฟ',
36 opAvail: 'รายการตัวเลือก',
37 value: 'ค่าตัวแปร',
38 size: 'ขนาด',
39 lines: 'บรรทัด',
40 chkMulti: 'เลือกหลายค่าได้',
41 required: 'Required', // MISSING
42 opText: 'ข้อความ',
43 opValue: 'ค่าตัวแปร',
44 btnAdd: 'เพิ่ม',
45 btnModify: 'แก้ไข',
46 btnUp: 'บน',
47 btnDown: 'ล่าง',
48 btnSetValue: 'เลือกเป็นค่าเริ่มต้น',
49 btnDelete: 'ลบ'
50 },
51 textarea: {
52 title: 'คุณสมบัติของ เท็กแอเรีย',
53 cols: 'สดมภ์',
54 rows: 'แถว'
55 },
56 textfield: {
57 title: 'คุณสมบัติของ เท็กซ์ฟิลด์',
58 name: 'ชื่อ',
59 value: 'ค่าตัวแปร',
60 charWidth: 'ความกว้าง',
61 maxChars: 'จำนวนตัวอักษรสูงสุด',
62 required: 'Required', // MISSING
63 type: 'ชนิด',
64 typeText: 'ข้อความ',
65 typePass: 'รหัสผ่าน',
66 typeEmail: 'อีเมล',
67 typeSearch: 'ค้นหาก',
68 typeTel: 'หมายเลขโทรศัพท์',
69 typeUrl: 'ที่อยู่อ้างอิง URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/tr.js b/sources/plugins/forms/lang/tr.js
new file mode 100644
index 00000000..99c6c737
--- /dev/null
+++ b/sources/plugins/forms/lang/tr.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'tr', {
6 button: {
7 title: 'Düğme Özellikleri',
8 text: 'Metin (Değer)',
9 type: 'Tip',
10 typeBtn: 'Düğme',
11 typeSbm: 'Gönder',
12 typeRst: 'Sıfırla'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Onay Kutusu Özellikleri',
16 radioTitle: 'Seçenek Düğmesi Özellikleri',
17 value: 'Değer',
18 selected: 'Seçili',
19 required: 'Zorunlu'
20 },
21 form: {
22 title: 'Form Özellikleri',
23 menu: 'Form Özellikleri',
24 action: 'İşlem',
25 method: 'Yöntem',
26 encoding: 'Kodlama'
27 },
28 hidden: {
29 title: 'Gizli Veri Özellikleri',
30 name: 'Ad',
31 value: 'Değer'
32 },
33 select: {
34 title: 'Seçim Menüsü Özellikleri',
35 selectInfo: 'Bilgi',
36 opAvail: 'Mevcut Seçenekler',
37 value: 'Değer',
38 size: 'Boyut',
39 lines: 'satır',
40 chkMulti: 'Çoklu seçime izin ver',
41 required: 'Zorunlu',
42 opText: 'Metin',
43 opValue: 'Değer',
44 btnAdd: 'Ekle',
45 btnModify: 'Düzenle',
46 btnUp: 'Yukarı',
47 btnDown: 'Aşağı',
48 btnSetValue: 'Seçili değer olarak ata',
49 btnDelete: 'Sil'
50 },
51 textarea: {
52 title: 'Çok Satırlı Metin Özellikleri',
53 cols: 'Sütunlar',
54 rows: 'Satırlar'
55 },
56 textfield: {
57 title: 'Metin Girişi Özellikleri',
58 name: 'Ad',
59 value: 'Değer',
60 charWidth: 'Karakter Genişliği',
61 maxChars: 'En Fazla Karakter',
62 required: 'Zorunlu',
63 type: 'Tür',
64 typeText: 'Metin',
65 typePass: 'Şifre',
66 typeEmail: 'E-posta',
67 typeSearch: 'Ara',
68 typeTel: 'Telefon Numarası',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/tt.js b/sources/plugins/forms/lang/tt.js
new file mode 100644
index 00000000..24f9d3b6
--- /dev/null
+++ b/sources/plugins/forms/lang/tt.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'tt', {
6 button: {
7 title: 'Төймә үзлекләре',
8 text: 'Текст (күләм)',
9 type: 'Төр',
10 typeBtn: 'Төймә',
11 typeSbm: 'Җибәрү',
12 typeRst: 'Кире кайтару'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Checkbox Properties', // MISSING
16 radioTitle: 'Радио төймə үзлекләре',
17 value: 'Күләм',
18 selected: 'Сайланган',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Форма үзлекләре',
23 menu: 'Форма үзлекләре',
24 action: 'Гамәл',
25 method: 'Ысул',
26 encoding: 'Кодировка'
27 },
28 hidden: {
29 title: 'Яшерен кыр үзлекләре',
30 name: 'Исем',
31 value: 'Күләм'
32 },
33 select: {
34 title: 'Selection Field Properties', // MISSING
35 selectInfo: 'Select Info', // MISSING
36 opAvail: 'Мөмкин булган көйләүләр',
37 value: 'Күләм',
38 size: 'Зурлык',
39 lines: 'юллар',
40 chkMulti: 'Allow multiple selections', // MISSING
41 required: 'Required', // MISSING
42 opText: 'Текст',
43 opValue: 'Күләм',
44 btnAdd: 'Кушу',
45 btnModify: 'Үзгәртү',
46 btnUp: 'Өскә',
47 btnDown: 'Аска',
48 btnSetValue: 'Сайланган күләм булып билгеләргә',
49 btnDelete: 'Бетерү'
50 },
51 textarea: {
52 title: 'Текст мәйданы үзлекләре',
53 cols: 'Баганалар',
54 rows: 'Юллар'
55 },
56 textfield: {
57 title: 'Текст кыры үзлекләре',
58 name: 'Исем',
59 value: 'Күләм',
60 charWidth: 'Символлар киңлеге',
61 maxChars: 'Maximum Characters', // MISSING
62 required: 'Required', // MISSING
63 type: 'Төр',
64 typeText: 'Текст',
65 typePass: 'Сер сүз',
66 typeEmail: 'Эл. почта',
67 typeSearch: 'Эзләү',
68 typeTel: 'Телефон номеры',
69 typeUrl: 'Сылталама'
70 }
71} );
diff --git a/sources/plugins/forms/lang/ug.js b/sources/plugins/forms/lang/ug.js
new file mode 100644
index 00000000..1eed4af8
--- /dev/null
+++ b/sources/plugins/forms/lang/ug.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'ug', {
6 button: {
7 title: 'توپچا خاسلىقى',
8 text: 'بەلگە (قىممەت)',
9 type: 'تىپى',
10 typeBtn: 'توپچا',
11 typeSbm: 'تاپشۇر',
12 typeRst: 'ئەسلىگە قايتۇر'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'كۆپ تاللاش خاسلىقى',
16 radioTitle: 'تاق تاللاش توپچا خاسلىقى',
17 value: 'تاللىغان قىممەت',
18 selected: 'تاللانغان',
19 required: 'زۆرۈر'
20 },
21 form: {
22 title: 'جەدۋەل خاسلىقى',
23 menu: 'جەدۋەل خاسلىقى',
24 action: 'مەشغۇلات',
25 method: 'ئۇسۇل',
26 encoding: 'جەدۋەل كودلىنىشى'
27 },
28 hidden: {
29 title: 'يوشۇرۇن دائىرە خاسلىقى',
30 name: 'ئات',
31 value: 'دەسلەپكى قىممىتى'
32 },
33 select: {
34 title: 'جەدۋەل/تىزىم خاسلىقى',
35 selectInfo: 'ئۇچۇر تاللاڭ',
36 opAvail: 'تاللاش تۈرلىرى',
37 value: 'قىممەت',
38 size: 'ئېگىزلىكى',
39 lines: 'قۇر',
40 chkMulti: 'كۆپ تاللاشچان',
41 required: 'زۆرۈر',
42 opText: 'تاللانما تېكىستى',
43 opValue: 'تاللانما قىممىتى',
44 btnAdd: 'قوش',
45 btnModify: 'ئۆزگەرت',
46 btnUp: 'ئۈستىگە',
47 btnDown: 'ئاستىغا',
48 btnSetValue: 'دەسلەپكى تاللانما قىممىتىگە تەڭشە',
49 btnDelete: 'ئۆچۈر'
50 },
51 textarea: {
52 title: ' كۆپ قۇرلۇق تېكىست خاسلىقى',
53 cols: 'ھەرپ كەڭلىكى',
54 rows: 'قۇر سانى'
55 },
56 textfield: {
57 title: 'تاق قۇرلۇق تېكىست خاسلىقى',
58 name: 'ئات',
59 value: 'دەسلەپكى قىممىتى',
60 charWidth: 'ھەرپ كەڭلىكى',
61 maxChars: 'ئەڭ كۆپ ھەرپ سانى',
62 required: 'زۆرۈر',
63 type: 'تىپى',
64 typeText: 'تېكىست',
65 typePass: 'ئىم',
66 typeEmail: 'تورخەت',
67 typeSearch: 'ئىزدە',
68 typeTel: 'تېلېفون نومۇر',
69 typeUrl: 'ئادرېس'
70 }
71} );
diff --git a/sources/plugins/forms/lang/uk.js b/sources/plugins/forms/lang/uk.js
new file mode 100644
index 00000000..eec09087
--- /dev/null
+++ b/sources/plugins/forms/lang/uk.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'uk', {
6 button: {
7 title: 'Властивості кнопки',
8 text: 'Значення',
9 type: 'Тип',
10 typeBtn: 'Кнопка (button)',
11 typeSbm: 'Надіслати (submit)',
12 typeRst: 'Очистити (reset)'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Властивості галочки',
16 radioTitle: 'Властивості кнопки вибору',
17 value: 'Значення',
18 selected: 'Обрана',
19 required: 'Обов’язкове поле'
20 },
21 form: {
22 title: 'Властивості форми',
23 menu: 'Властивості форми',
24 action: 'Дія',
25 method: 'Метод',
26 encoding: 'Кодування'
27 },
28 hidden: {
29 title: 'Властивості прихованого поля',
30 name: 'Ім\'я',
31 value: 'Значення'
32 },
33 select: {
34 title: 'Властивості списку',
35 selectInfo: 'Інфо',
36 opAvail: 'Доступні варіанти',
37 value: 'Значення',
38 size: 'Кількість',
39 lines: 'видимих позицій у списку',
40 chkMulti: 'Список з мультивибором',
41 required: 'Обов’язкове поле',
42 opText: 'Текст',
43 opValue: 'Значення',
44 btnAdd: 'Добавити',
45 btnModify: 'Змінити',
46 btnUp: 'Вгору',
47 btnDown: 'Вниз',
48 btnSetValue: 'Встановити як обране значення',
49 btnDelete: 'Видалити'
50 },
51 textarea: {
52 title: 'Властивості текстової області',
53 cols: 'Стовбці',
54 rows: 'Рядки'
55 },
56 textfield: {
57 title: 'Властивості текстового поля',
58 name: 'Ім\'я',
59 value: 'Значення',
60 charWidth: 'Ширина',
61 maxChars: 'Макс. к-ть символів',
62 required: 'Обов’язкове поле',
63 type: 'Тип',
64 typeText: 'Текст',
65 typePass: 'Пароль',
66 typeEmail: 'Пошта',
67 typeSearch: 'Пошук',
68 typeTel: 'Мобільний',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/vi.js b/sources/plugins/forms/lang/vi.js
new file mode 100644
index 00000000..8d8929fc
--- /dev/null
+++ b/sources/plugins/forms/lang/vi.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'vi', {
6 button: {
7 title: 'Thuộc tính của nút',
8 text: 'Chuỗi hiển thị (giá trị)',
9 type: 'Kiểu',
10 typeBtn: 'Nút bấm',
11 typeSbm: 'Nút gửi',
12 typeRst: 'Nút nhập lại'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: 'Thuộc tính nút kiểm',
16 radioTitle: 'Thuộc tính nút chọn',
17 value: 'Giá trị',
18 selected: 'Được chọn',
19 required: 'Required' // MISSING
20 },
21 form: {
22 title: 'Thuộc tính biểu mẫu',
23 menu: 'Thuộc tính biểu mẫu',
24 action: 'Hành động',
25 method: 'Phương thức',
26 encoding: 'Bảng mã'
27 },
28 hidden: {
29 title: 'Thuộc tính trường ẩn',
30 name: 'Tên',
31 value: 'Giá trị'
32 },
33 select: {
34 title: 'Thuộc tính ô chọn',
35 selectInfo: 'Thông tin',
36 opAvail: 'Các tùy chọn có thể sử dụng',
37 value: 'Giá trị',
38 size: 'Kích cỡ',
39 lines: 'dòng',
40 chkMulti: 'Cho phép chọn nhiều',
41 required: 'Required', // MISSING
42 opText: 'Văn bản',
43 opValue: 'Giá trị',
44 btnAdd: 'Thêm',
45 btnModify: 'Thay đổi',
46 btnUp: 'Lên',
47 btnDown: 'Xuống',
48 btnSetValue: 'Giá trị được chọn',
49 btnDelete: 'Nút xoá'
50 },
51 textarea: {
52 title: 'Thuộc tính vùng văn bản',
53 cols: 'Số cột',
54 rows: 'Số hàng'
55 },
56 textfield: {
57 title: 'Thuộc tính trường văn bản',
58 name: 'Tên',
59 value: 'Giá trị',
60 charWidth: 'Độ rộng của ký tự',
61 maxChars: 'Số ký tự tối đa',
62 required: 'Required', // MISSING
63 type: 'Kiểu',
64 typeText: 'Ký tự',
65 typePass: 'Mật khẩu',
66 typeEmail: 'Email',
67 typeSearch: 'Tìm kiếm',
68 typeTel: 'Số điện thoại',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/lang/zh-cn.js b/sources/plugins/forms/lang/zh-cn.js
new file mode 100644
index 00000000..89a8050a
--- /dev/null
+++ b/sources/plugins/forms/lang/zh-cn.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'zh-cn', {
6 button: {
7 title: '按钮属性',
8 text: '标签(值)',
9 type: '类型',
10 typeBtn: '按钮',
11 typeSbm: '提交',
12 typeRst: '重设'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: '复选框属性',
16 radioTitle: '单选按钮属性',
17 value: '选定值',
18 selected: '已勾选',
19 required: '必选'
20 },
21 form: {
22 title: '表单属性',
23 menu: '表单属性',
24 action: '动作',
25 method: '方法',
26 encoding: '表单编码'
27 },
28 hidden: {
29 title: '隐藏域属性',
30 name: '名称',
31 value: '初始值'
32 },
33 select: {
34 title: '菜单/列表属性',
35 selectInfo: '选择信息',
36 opAvail: '可选项',
37 value: '值',
38 size: '高度',
39 lines: '行',
40 chkMulti: '允许多选',
41 required: '必选',
42 opText: '选项文本',
43 opValue: '选项值',
44 btnAdd: '添加',
45 btnModify: '修改',
46 btnUp: '上移',
47 btnDown: '下移',
48 btnSetValue: '设为初始选定',
49 btnDelete: '删除'
50 },
51 textarea: {
52 title: '多行文本属性',
53 cols: '字符宽度',
54 rows: '行数'
55 },
56 textfield: {
57 title: '单行文本属性',
58 name: '名称',
59 value: '初始值',
60 charWidth: '字符宽度',
61 maxChars: '最多字符数',
62 required: '必填',
63 type: '类型',
64 typeText: '文本',
65 typePass: '密码',
66 typeEmail: 'Email',
67 typeSearch: '搜索',
68 typeTel: '电话号码',
69 typeUrl: '地址'
70 }
71} );
diff --git a/sources/plugins/forms/lang/zh.js b/sources/plugins/forms/lang/zh.js
new file mode 100644
index 00000000..ede780a8
--- /dev/null
+++ b/sources/plugins/forms/lang/zh.js
@@ -0,0 +1,71 @@
1/*
2Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.md or http://ckeditor.com/license
4*/
5CKEDITOR.plugins.setLang( 'forms', 'zh', {
6 button: {
7 title: '按鈕內容',
8 text: '顯示文字 (值)',
9 type: '類型',
10 typeBtn: '按鈕',
11 typeSbm: '送出',
12 typeRst: '重設'
13 },
14 checkboxAndRadio: {
15 checkboxTitle: '核取方塊內容',
16 radioTitle: '選項按鈕內容',
17 value: '數值',
18 selected: '已選',
19 required: '必填'
20 },
21 form: {
22 title: '表單內容',
23 menu: '表單內容',
24 action: '動作',
25 method: '方式',
26 encoding: '編碼'
27 },
28 hidden: {
29 title: '隱藏欄位內容',
30 name: '名稱',
31 value: '數值'
32 },
33 select: {
34 title: '選取欄位內容',
35 selectInfo: '選擇資訊',
36 opAvail: '可用選項',
37 value: '數值',
38 size: '大小',
39 lines: '行數',
40 chkMulti: '允許多選',
41 required: '必填',
42 opText: '文字',
43 opValue: '數值',
44 btnAdd: '新增',
45 btnModify: '修改',
46 btnUp: '向上',
47 btnDown: '向下',
48 btnSetValue: '設為已選',
49 btnDelete: '刪除'
50 },
51 textarea: {
52 title: '文字區域內容',
53 cols: '列',
54 rows: '行'
55 },
56 textfield: {
57 title: '文字欄位內容',
58 name: '名字',
59 value: '數值',
60 charWidth: '字元寬度',
61 maxChars: '最大字元數',
62 required: '必填',
63 type: '類型',
64 typeText: '文字',
65 typePass: '密碼',
66 typeEmail: '電子郵件',
67 typeSearch: '搜尋',
68 typeTel: '電話號碼',
69 typeUrl: 'URL'
70 }
71} );
diff --git a/sources/plugins/forms/plugin.js b/sources/plugins/forms/plugin.js
new file mode 100644
index 00000000..737204ae
--- /dev/null
+++ b/sources/plugins/forms/plugin.js
@@ -0,0 +1,279 @@
1/**
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
4 */
5
6/**
7 * @fileOverview Forms Plugin
8 */
9
10CKEDITOR.plugins.add( 'forms', {
11 requires: 'dialog,fakeobjects',
12 // jscs:disable maximumLineLength
13 lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%
14 // jscs:enable maximumLineLength
15 icons: 'button,checkbox,form,hiddenfield,imagebutton,radio,select,select-rtl,textarea,textarea-rtl,textfield', // %REMOVE_LINE_CORE%
16 hidpi: true, // %REMOVE_LINE_CORE%
17 onLoad: function() {
18 CKEDITOR.addCss( '.cke_editable form' +
19 '{' +
20 'border: 1px dotted #FF0000;' +
21 'padding: 2px;' +
22 '}\n' );
23
24 CKEDITOR.addCss( 'img.cke_hidden' +
25 '{' +
26 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/hiddenfield.gif' ) + ');' +
27 'background-position: center center;' +
28 'background-repeat: no-repeat;' +
29 'border: 1px solid #a9a9a9;' +
30 'width: 16px !important;' +
31 'height: 16px !important;' +
32 '}' );
33
34 },
35 init: function( editor ) {
36 var lang = editor.lang,
37 order = 0,
38 textfieldTypes = { email: 1, password: 1, search: 1, tel: 1, text: 1, url: 1 },
39 allowedContent = {
40 checkbox: 'input[type,name,checked,required]',
41 radio: 'input[type,name,checked,required]',
42 textfield: 'input[type,name,value,size,maxlength,required]',
43 textarea: 'textarea[cols,rows,name,required]',
44 select: 'select[name,size,multiple,required]; option[value,selected]',
45 button: 'input[type,name,value]',
46 form: 'form[action,name,id,enctype,target,method]',
47 hiddenfield: 'input[type,name,value]',
48 imagebutton: 'input[type,alt,src]{width,height,border,border-width,border-style,margin,float}'
49 },
50 requiredContent = {
51 checkbox: 'input',
52 radio: 'input',
53 textfield: 'input',
54 textarea: 'textarea',
55 select: 'select',
56 button: 'input',
57 form: 'form',
58 hiddenfield: 'input',
59 imagebutton: 'input'
60 };
61
62 // All buttons use the same code to register. So, to avoid
63 // duplications, let's use this tool function.
64 var addButtonCommand = function( buttonName, commandName, dialogFile ) {
65 var def = {
66 allowedContent: allowedContent[ commandName ],
67 requiredContent: requiredContent[ commandName ]
68 };
69 commandName == 'form' && ( def.context = 'form' );
70
71 editor.addCommand( commandName, new CKEDITOR.dialogCommand( commandName, def ) );
72
73 editor.ui.addButton && editor.ui.addButton( buttonName, {
74 label: lang.common[ buttonName.charAt( 0 ).toLowerCase() + buttonName.slice( 1 ) ],
75 command: commandName,
76 toolbar: 'forms,' + ( order += 10 )
77 } );
78 CKEDITOR.dialog.add( commandName, dialogFile );
79 };
80
81 var dialogPath = this.path + 'dialogs/';
82 !editor.blockless && addButtonCommand( 'Form', 'form', dialogPath + 'form.js' );
83 addButtonCommand( 'Checkbox', 'checkbox', dialogPath + 'checkbox.js' );
84 addButtonCommand( 'Radio', 'radio', dialogPath + 'radio.js' );
85 addButtonCommand( 'TextField', 'textfield', dialogPath + 'textfield.js' );
86 addButtonCommand( 'Textarea', 'textarea', dialogPath + 'textarea.js' );
87 addButtonCommand( 'Select', 'select', dialogPath + 'select.js' );
88 addButtonCommand( 'Button', 'button', dialogPath + 'button.js' );
89
90 var imagePlugin = editor.plugins.image;
91
92 // Since Image plugin is disabled when Image2 is to be loaded,
93 // ImageButton also got to be off (#11222).
94 if ( imagePlugin && !editor.plugins.image2 )
95 addButtonCommand( 'ImageButton', 'imagebutton', CKEDITOR.plugins.getPath( 'image' ) + 'dialogs/image.js' );
96
97 addButtonCommand( 'HiddenField', 'hiddenfield', dialogPath + 'hiddenfield.js' );
98
99 // If the "menu" plugin is loaded, register the menu items.
100 if ( editor.addMenuItems ) {
101 var items = {
102 checkbox: {
103 label: lang.forms.checkboxAndRadio.checkboxTitle,
104 command: 'checkbox',
105 group: 'checkbox'
106 },
107
108 radio: {
109 label: lang.forms.checkboxAndRadio.radioTitle,
110 command: 'radio',
111 group: 'radio'
112 },
113
114 textfield: {
115 label: lang.forms.textfield.title,
116 command: 'textfield',
117 group: 'textfield'
118 },
119
120 hiddenfield: {
121 label: lang.forms.hidden.title,
122 command: 'hiddenfield',
123 group: 'hiddenfield'
124 },
125
126 button: {
127 label: lang.forms.button.title,
128 command: 'button',
129 group: 'button'
130 },
131
132 select: {
133 label: lang.forms.select.title,
134 command: 'select',
135 group: 'select'
136 },
137
138 textarea: {
139 label: lang.forms.textarea.title,
140 command: 'textarea',
141 group: 'textarea'
142 }
143 };
144
145 if ( imagePlugin ) {
146 items.imagebutton = {
147 label: lang.image.titleButton,
148 command: 'imagebutton',
149 group: 'imagebutton'
150 };
151 }
152
153 !editor.blockless && ( items.form = {
154 label: lang.forms.form.menu,
155 command: 'form',
156 group: 'form'
157 } );
158
159 editor.addMenuItems( items );
160
161 }
162
163 // If the "contextmenu" plugin is loaded, register the listeners.
164 if ( editor.contextMenu ) {
165 !editor.blockless && editor.contextMenu.addListener( function( element, selection, path ) {
166 var form = path.contains( 'form', 1 );
167 if ( form && !form.isReadOnly() )
168 return { form: CKEDITOR.TRISTATE_OFF };
169 } );
170
171 editor.contextMenu.addListener( function( element ) {
172 if ( element && !element.isReadOnly() ) {
173 var name = element.getName();
174
175 if ( name == 'select' )
176 return { select: CKEDITOR.TRISTATE_OFF };
177
178 if ( name == 'textarea' )
179 return { textarea: CKEDITOR.TRISTATE_OFF };
180
181 if ( name == 'input' ) {
182 var type = element.getAttribute( 'type' ) || 'text';
183 switch ( type ) {
184 case 'button':
185 case 'submit':
186 case 'reset':
187 return { button: CKEDITOR.TRISTATE_OFF };
188
189 case 'checkbox':
190 return { checkbox: CKEDITOR.TRISTATE_OFF };
191
192 case 'radio':
193 return { radio: CKEDITOR.TRISTATE_OFF };
194
195 case 'image':
196 return imagePlugin ? { imagebutton: CKEDITOR.TRISTATE_OFF } : null;
197 }
198
199 if ( textfieldTypes[ type ] )
200 return { textfield: CKEDITOR.TRISTATE_OFF };
201 }
202
203 if ( name == 'img' && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
204 return { hiddenfield: CKEDITOR.TRISTATE_OFF };
205 }
206 } );
207 }
208
209 editor.on( 'doubleclick', function( evt ) {
210 var element = evt.data.element;
211
212 if ( !editor.blockless && element.is( 'form' ) )
213 evt.data.dialog = 'form';
214 else if ( element.is( 'select' ) )
215 evt.data.dialog = 'select';
216 else if ( element.is( 'textarea' ) )
217 evt.data.dialog = 'textarea';
218 else if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
219 evt.data.dialog = 'hiddenfield';
220 else if ( element.is( 'input' ) ) {
221 var type = element.getAttribute( 'type' ) || 'text';
222 switch ( type ) {
223 case 'button':
224 case 'submit':
225 case 'reset':
226 evt.data.dialog = 'button';
227 break;
228 case 'checkbox':
229 evt.data.dialog = 'checkbox';
230 break;
231 case 'radio':
232 evt.data.dialog = 'radio';
233 break;
234 case 'image':
235 evt.data.dialog = 'imagebutton';
236 break;
237 }
238 if ( textfieldTypes[ type ] )
239 evt.data.dialog = 'textfield';
240 }
241 } );
242 },
243
244 afterInit: function( editor ) {
245 var dataProcessor = editor.dataProcessor,
246 htmlFilter = dataProcessor && dataProcessor.htmlFilter,
247 dataFilter = dataProcessor && dataProcessor.dataFilter;
248
249 // Cleanup certain IE form elements default values.
250 // Note: Inputs are marked with contenteditable=false flags, so filters for them
251 // need to be applied to non-editable content as well.
252 if ( CKEDITOR.env.ie ) {
253 htmlFilter && htmlFilter.addRules( {
254 elements: {
255 input: function( input ) {
256 var attrs = input.attributes,
257 type = attrs.type;
258 // Old IEs don't provide type for Text inputs #5522
259 if ( !type )
260 attrs.type = 'text';
261 if ( type == 'checkbox' || type == 'radio' )
262 attrs.value == 'on' && delete attrs.value;
263 }
264 }
265 }, { applyToAll: true } );
266 }
267
268 if ( dataFilter ) {
269 dataFilter.addRules( {
270 elements: {
271 input: function( element ) {
272 if ( element.attributes.type == 'hidden' )
273 return editor.createFakeParserElement( element, 'cke_hidden', 'hiddenfield' );
274 }
275 }
276 }, { applyToAll: true } );
277 }
278 }
279} );