').appendTo(bParent),
tmpDiv = [
$('').appendTo(tmpContainer),
$('
').appendTo(tmpContainer)
],
iEditor = new editor(base, {
includeUI: {
loadImage: {
path: $base.data('url'),
name: self.file.name
},
theme: opts.theme,
initMenu: 'filter',
menuBarPosition: 'bottom'
},
cssMaxWidth: Math.max(300, bParent.width()),
cssMaxHeight: Math.max(200, bParent.height() - (tmpDiv[0].height() + tmpDiv[1].height() + 3 /*margin*/)),
usageStatistics: false
}),
canvas = $base.find('canvas:first').get(0),
zoom = function(v) {
if (typeof v !== 'undefined') {
var c = $(canvas),
w = parseInt(c.attr('width')),
h = parseInt(c.attr('height')),
a = w / h,
z, mw, mh;
if (v === 0) {
mw = w;
mh = h;
} else {
mw = parseInt(c.css('max-width')) + Number(v);
mh = mw / a;
if (mw > w && mh > h) {
mw = w;
mh = h;
}
}
z = Math.round(mw / w * 100);
// Control zoom button of TUI Image Editor
if (z < 100) {
iEditor.resetZoom();
iEditor.stopDrawingMode();
tuiZoomCtrls.hide();
} else {
tuiZoomCtrls.show();
}
per.text(z + '%');
iEditor.resizeCanvasDimension({width: mw, height: mh});
// continually change more
if (zoomMore) {
setTimeout(function() {
zoomMore && zoom(v);
}, 50);
}
}
},
zup = $('
').data('val', 10),
zdown = $('
').data('val', -10),
per = $('
').css('width', '4em').text('%').attr('title', '100%').data('val', 0),
tuiZoomCtrls,
quty, qutyTm, zoomTm, zoomMore;
tmpContainer.remove();
$base.removeData('url').data('mime', self.file.mime);
// jpeg quality controls
if (self.file.mime === 'image/jpeg') {
$base.data('quality', fm.storage('jpgQuality') || fm.option('jpgQuality'));
quty = $('
')
.attr('min', '1')
.attr('max', '100')
.attr('title', '1 - 100')
.on('change', function() {
var q = quty.val();
$base.data('quality', q);
qutyTm && cancelAnimationFrame(qutyTm);
qutyTm = requestAnimationFrame(function() {
canvas.toBlob(function(blob) {
blob && quty.next('span').text(' (' + fm.formatSize(blob.size) + ')');
}, 'image/jpeg', Math.max(Math.min(q, 100), 1) / 100);
});
})
.val($base.data('quality'));
$('')
.append(
$('
').html(fm.i18n('quality') + ' : '), quty, $('')
)
.prependTo($base.parent().next());
} else if (self.file.mime === 'image/svg+xml') {
$base.closest('.ui-dialog').trigger('changeType', {
extention: 'png',
mime : 'image/png',
keepEditor: true
});
}
// zoom scale controls
$('')
.append(
zdown, per, zup
)
.attr('title', fm.i18n('scale'))
.on('click', 'span,button', function() {
zoom($(this).data('val'));
})
.on('mousedown mouseup mouseleave', 'span', function(e) {
zoomMore = false;
zoomTm && clearTimeout(zoomTm);
if (e.type === 'mousedown') {
zoomTm = setTimeout(function() {
zoomMore = true;
zoom($(e.target).data('val'));
}, 500);
}
})
.prependTo($base.parent().next());
// wait canvas ready
setTimeout(function() {
dfrd.resolve(iEditor);
if (quty) {
quty.trigger('change');
iEditor.on('redoStackChanged undoStackChanged', function() {
quty.trigger('change');
});
}
// ZOOM controls of TUI Image Editor
tuiZoomCtrls = $base.find('.tie-btn-zoomIn,.tie-btn-zoomOut,.tie-btn-hand');
// show initial scale
zoom(null);
}, 100);
// show color slider (maybe TUI-Image-Editor's bug)
// see https://github.com/nhn/tui.image-editor/issues/153
$base.find('.tui-colorpicker-palette-container').on('click', '.tui-colorpicker-palette-preview', function() {
$(this).closest('.color-picker-control').height('auto').find('.tui-colorpicker-slider-container').toggle();
});
$base.on('click', function() {
$base.find('.tui-colorpicker-slider-container').hide();
});
},
loader;
if (!self.confObj.editor) {
loader = $.Deferred();
fm.loadCss([
cdns.tui + '/tui-color-picker/latest/tui-color-picker.css',
cdns.tui + '/tui-image-editor/'+ver+'/tui-image-editor.css'
]);
if (fm.hasRequire) {
require.config({
paths : {
'fabric/dist/fabric.require' : cdns.fabric + '/fabric.require.min', // for fabric < 2.0.1
'fabric' : cdns.fabric + '/fabric.min', // for fabric >= 2.0.1
'tui-code-snippet' : cdns.tui + '/tui.code-snippet/latest/tui-code-snippet.min',
'tui-color-picker' : cdns.tui + '/tui-color-picker/latest/tui-color-picker.min',
'tui-image-editor' : cdns.tui + '/tui-image-editor/'+ver+'/tui-image-editor.min'
}
});
require(['tui-image-editor'], function(ImageEditor) {
loader.resolve(ImageEditor);
});
} else {
fm.loadScript([
cdns.fabric + '/fabric.min.js',
cdns.tui + '/tui.code-snippet/latest/tui-code-snippet.min.js'
], function() {
fm.loadScript([
cdns.tui + '/tui-color-picker/latest/tui-color-picker.min.js'
], function() {
fm.loadScript([
cdns.tui + '/tui-image-editor/'+ver+'/tui-image-editor.min.js'
], function() {
loader.resolve(window.tui.ImageEditor);
}, {
loadType: 'tag'
});
}, {
loadType: 'tag'
});
}, {
loadType: 'tag'
});
}
loader.done(function(editor) {
self.confObj.editor = editor;
init(editor);
});
} else {
init(self.confObj.editor);
}
return dfrd;
},
getContent : function(base) {
var editor = this.editor,
fm = editor.fm,
$base = $(base),
quality = $base.data('quality');
if (editor.instance) {
if ($base.data('mime') === 'image/jpeg') {
quality = quality || fm.storage('jpgQuality') || fm.option('jpgQuality');
quality = Math.max(0.1, Math.min(1, quality / 100));
}
return editor.instance.toDataURL({
format: getExtention($base.data('mime'), fm, true),
quality: quality
});
}
},
save : function(base) {
var $base = $(base),
quality = $base.data('quality'),
hash = $base.data('hash'),
file;
this.instance.deactivateAll();
if (typeof quality !== 'undefined') {
this.fm.storage('jpgQuality', quality);
}
if (hash) {
file = this.fm.file(hash);
$base.data('mime', file.mime);
}
}
},
{
// Photopea advanced image editor
info : {
id : 'photopea',
name : 'Photopea',
iconImg : 'img/editor-icons.png 0 -160',
single: true,
noContent: true,
arrayBufferContent: true,
openMaximized: true,
// Disable file types that cannot be saved on Photopea.
canMakeEmpty: ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp', 'image/tiff', /*'image/x-adobe-dng',*/ 'image/webp', /*'image/x-xcf',*/ 'image/vnd.adobe.photoshop', 'application/pdf', 'image/x-portable-pixmap', 'image/x-sketch', 'image/x-icon', 'image/vnd-ms.dds', /*'application/x-msmetafile'*/],
integrate: {
title: 'Photopea',
link: 'https://www.photopea.com/learn/'
}
},
mimes : ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp', 'image/tiff', 'image/x-adobe-dng', 'image/webp', 'image/x-xcf', 'image/vnd.adobe.photoshop', 'application/pdf', 'image/x-portable-pixmap', 'image/x-sketch', 'image/x-icon', 'image/vnd-ms.dds', 'application/x-msmetafile'],
html : '',
// setup on elFinder bootup
setup : function(opts, fm) {
if (fm.UA.IE || fm.UA.Mobile) {
this.disabled = true;
}
},
// Initialization of editing node (this: this editors HTML node)
init : function(id, file, dum, fm) {
var orig = 'https://www.photopea.com',
ifm = $(this).hide()
//.css('box-sizing', 'border-box')
.on('load', function() {
//spnr.remove();
ifm.show();
})
.on('error', function() {
spnr.remove();
ifm.show();
}),
editor = this.editor,
confObj = editor.confObj,
spnr = $('')
.html('' + fm.i18n('nowLoading') + '')
.appendTo(ifm.parent()),
saveMimes = fm.arrayFlip(confObj.info.canMakeEmpty),
getType = function(mime) {
var ext = getExtention(mime, fm),
extmime = ext2mime[ext];
if (!confObj.mimesFlip[extmime]) {
ext = '';
} else if (ext === 'jpeg') {
ext = 'jpg';
}
if (!ext || !saveMimes[extmime]) {
ext = 'psd';
extmime = ext2mime[ext];
ifm.closest('.ui-dialog').trigger('changeType', {
extention: ext,
mime : extmime,
keepEditor: true
});
}
return ext;
},
mime = file.mime,
liveMsg, type, quty;
if (!confObj.mimesFlip) {
confObj.mimesFlip = fm.arrayFlip(confObj.mimes, true);
}
if (!confObj.liveMsg) {
confObj.liveMsg = function(ifm, spnr, file) {
var wnd = ifm.get(0).contentWindow,
phase = 0,
data = null,
dfdIni = $.Deferred().done(function() {
spnr.remove();
phase = 1;
wnd.postMessage(data, orig);
}),
dfdGet;
this.load = function() {
return fm.getContents(file.hash, 'arraybuffer').done(function(d) {
data = d;
});
};
this.receive = function(e) {
var ev = e.originalEvent,
state;
if (ev.origin === orig && ev.source === wnd) {
if (ev.data === 'done') {
if (phase === 0) {
dfdIni.resolve();
} else if (phase === 1) {
phase = 2;
ifm.trigger('contentsloaded');
} else {
if (dfdGet && dfdGet.state() === 'pending') {
dfdGet.reject('errDataEmpty');
}
}
} else if (ev.data === 'Save') {
editor.doSave();
} else {
if (dfdGet && dfdGet.state() === 'pending') {
if (typeof ev.data === 'object') {
dfdGet.resolve('data:' + mime + ';base64,' + fm.arrayBufferToBase64(ev.data));
} else {
dfdGet.reject('errDataEmpty');
}
}
}
}
};
this.getContent = function() {
var type, q;
if (phase > 1) {
dfdGet && dfdGet.state() === 'pending' && dfdGet.reject();
dfdGet = null;
dfdGet = $.Deferred();
if (phase === 2) {
phase = 3;
dfdGet.resolve('data:' + mime + ';base64,' + fm.arrayBufferToBase64(data));
data = null;
return dfdGet;
}
if (ifm.data('mime')) {
mime = ifm.data('mime');
type = getType(mime);
}
if (q = ifm.data('quality')) {
type += ':' + (q / 100);
}
wnd.postMessage('app.activeDocument.saveToOE("' + type + '")', orig);
return dfdGet;
}
};
};
}
ifm.parent().css('padding', 0);
type = getType(file.mime);
liveMsg = editor.liveMsg = new confObj.liveMsg(ifm, spnr, file);
$(window).on('message.' + fm.namespace, liveMsg.receive);
liveMsg.load().done(function() {
var d = JSON.stringify({
files : [],
environment : {
lang: fm.lang.replace(/_/g, '-'),
customIO: {"save": "app.echoToOE(\"Save\");"}
}
});
ifm.attr('src', orig + '/#' + encodeURI(d));
}).fail(function(err) {
err && fm.error(err);
editor.initFail = true;
});
// jpeg quality controls
if (file.mime === 'image/jpeg' || file.mime === 'image/webp') {
ifm.data('quality', fm.storage('jpgQuality') || fm.option('jpgQuality'));
quty = $('')
.attr('min', '1')
.attr('max', '100')
.attr('title', '1 - 100')
.on('change', function() {
var q = quty.val();
ifm.data('quality', q);
})
.val(ifm.data('quality'));
$('')
.append(
$('').html(fm.i18n('quality') + ' : '), quty, $('')
)
.prependTo(ifm.parent().next());
}
},
load : function(base) {
var dfd = $.Deferred(),
self = this,
fm = this.fm,
$base = $(base);
if (self.initFail) {
dfd.reject();
} else {
$base.on('contentsloaded', function() {
dfd.resolve(self.liveMsg);
});
}
return dfd;
},
getContent : function() {
return this.editor.liveMsg? this.editor.liveMsg.getContent() : void(0);
},
save : function(base, liveMsg) {
var $base = $(base),
quality = $base.data('quality'),
hash = $base.data('hash'),
file;
if (typeof quality !== 'undefined') {
this.fm.storage('jpgQuality', quality);
}
if (hash) {
file = this.fm.file(hash);
$base.data('mime', file.mime);
} else {
$base.removeData('mime');
}
},
// On dialog closed
close : function(base, liveMsg) {
$(base).attr('src', '');
liveMsg && $(window).off('message.' + this.fm.namespace, liveMsg.receive);
}
},
{
// Pixo is cross-platform image editor
info : {
id : 'pixo',
name : 'Pixo Editor',
iconImg : 'img/editor-icons.png 0 -208',
dataScheme: true,
schemeContent: true,
single: true,
canMakeEmpty: false,
integrate: {
title: 'Pixo Editor',
link: 'https://pixoeditor.com/privacy-policy/'
}
},
// MIME types to accept
mimes : ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp'],
// HTML of this editor
html : '![]()
',
// called on initialization of elFinder cmd edit (this: this editor's config object)
setup : function(opts, fm) {
if (fm.UA.ltIE8 || !opts.extraOptions || !opts.extraOptions.pixo || !opts.extraOptions.pixo.apikey) {
this.disabled = true;
} else {
this.editorOpts = opts.extraOptions.pixo;
}
},
// Initialization of editing node (this: this editors HTML node)
init : function(id, file, content, fm) {
initImgTag.call(this, id, file, content, fm);
},
// Get data uri scheme (this: this editors HTML node)
getContent : function() {
return $(this).children('img:first').attr('src');
},
// Launch Pixo editor when dialog open
load : function(base) {
var self = this,
fm = this.fm,
$base = $(base),
node = $base.children('img:first'),
dialog = $base.closest('.ui-dialog'),
elfNode = fm.getUI(),
dfrd = $.Deferred(),
container = $('#elfinder-pixo-container'),
init = function(onload) {
var opts;
if (!container.length) {
container = $('').css({
position: 'fixed',
top: 0,
right: 0,
width: '100%',
height: $(window).height(),
overflow: 'hidden'
}).hide().appendTo(elfNode.hasClass('elfinder-fullscreen')? elfNode : 'body');
// bind switch fullscreen event
elfNode.on('resize.'+fm.namespace, function(e, data) {
e.preventDefault();
e.stopPropagation();
data && data.fullscreen && container.appendTo(data.fullscreen === 'on'? elfNode : 'body');
});
fm.bind('destroy', function() {
editor && editor.cancelEditing();
container.remove();
});
} else {
// always moves to last
container.appendTo(container.parent());
}
node.on('click', launch);
// Constructor options
opts = Object.assign({
type: 'child',
parent: container.get(0),
output: {format: 'png'},
onSave: function(arg) {
// Check current file.hash, all callbacks are called on multiple instances
var mime = arg.toBlob().type,
ext = getExtention(mime, fm),
draw = function(url) {
node.one('load error', function() {
node.data('loading') && node.data('loading')(true);
})
.attr('crossorigin', 'anonymous')
.attr('src', url);
},
url = arg.toDataURL();
node.data('loading')();
delete base._canvas;
if (node.data('ext') !== ext) {
changeImageType(url, self.file.mime).done(function(res, cv) {
if (cv) {
base._canvas = canvas = cv;
quty.trigger('change');
qBase && qBase.show();
}
draw(res);
}).fail(function() {
dialog.trigger('changeType', {
extention: ext,
mime : mime
});
draw(url);
});
} else {
draw(url);
}
},
onClose: function() {
dialog.removeClass(fm.res('class', 'preventback'));
fm.toggleMaximize(container, false);
container.hide();
fm.toFront(dialog);
}
}, self.confObj.editorOpts);
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: base,
editorObj: Pixo,
instance: void(0),
opts: opts
});
// make editor instance
editor = new Pixo.Bridge(opts);
dfrd.resolve(editor);
$base.on('saveAsFail', launch);
if (onload) {
onload();
}
},
launch = function() {
dialog.addClass(fm.res('class', 'preventback'));
fm.toggleMaximize(container, true);
fm.toFront(container);
container.show().data('curhash', self.file.hash);
editor.edit(node.get(0));
node.data('loading')(true);
},
qBase, quty, qutyTm, canvas, editor;
node.data('loading')();
// jpeg quality controls
if (self.file.mime === 'image/jpeg') {
quty = $('')
.attr('min', '1')
.attr('max', '100')
.attr('title', '1 - 100')
.on('change', function() {
var q = quty.val();
qutyTm && cancelAnimationFrame(qutyTm);
qutyTm = requestAnimationFrame(function() {
if (canvas) {
canvas.toBlob(function(blob) {
blob && quty.next('span').text(' (' + fm.formatSize(blob.size) + ')');
}, 'image/jpeg', Math.max(Math.min(q, 100), 1) / 100);
}
});
})
.val(fm.storage('jpgQuality') || fm.option('jpgQuality'));
qBase = $('')
.hide()
.append(
$('').html(fm.i18n('quality') + ' : '), quty, $('')
)
.prependTo($base.parent().next());
$base.data('quty', quty);
}
// load script then init
if (typeof Pixo === 'undefined') {
fm.loadScript(['https://pixoeditor.com:8443/editor/scripts/bridge.m.js'], function() {
init(launch);
}, {loadType: 'tag'});
} else {
init();
launch();
}
return dfrd;
},
// Convert content url to data uri scheme to save content
save : function(base) {
var self = this,
$base = $(base),
node = $base.children('img:first'),
q;
if (base._canvas) {
if ($base.data('quty')) {
q = $base.data('quty').val();
q && this.fm.storage('jpgQuality', q);
}
node.attr('src', base._canvas.toDataURL(self.file.mime, q? Math.max(Math.min(q, 100), 1) / 100 : void(0)));
} else if (node.attr('src').substr(0, 5) !== 'data:') {
node.attr('src', imgBase64(node, this.file.mime));
}
},
close : function(base, editor) {
editor && editor.destroy();
}
},
{
// ACE Editor
// called on initialization of elFinder cmd edit (this: this editor's config object)
setup : function(opts, fm) {
if (fm.UA.ltIE8 || !fm.options.cdns.ace) {
this.disabled = true;
}
},
// `mimes` is not set for support everything kind of text file
info : {
id : 'aceeditor',
name : 'ACE Editor',
iconImg : 'img/editor-icons.png 0 -96'
},
load : function(textarea) {
var self = this,
fm = this.fm,
dfrd = $.Deferred(),
cdn = fm.options.cdns.ace,
start = function() {
var editor, editorBase, mode,
ta = $(textarea),
taBase = ta.parent(),
dialog = taBase.parent(),
id = textarea.id + '_ace',
ext = self.file.name.replace(/^.+\.([^.]+)|(.+)$/, '$1$2').toLowerCase(),
// MIME/mode map
mimeMode = {
'text/x-php' : 'php',
'application/x-php' : 'php',
'text/html' : 'html',
'application/xhtml+xml' : 'html',
'text/javascript' : 'javascript',
'application/javascript' : 'javascript',
'text/css' : 'css',
'text/x-c' : 'c_cpp',
'text/x-csrc' : 'c_cpp',
'text/x-chdr' : 'c_cpp',
'text/x-c++' : 'c_cpp',
'text/x-c++src' : 'c_cpp',
'text/x-c++hdr' : 'c_cpp',
'text/x-shellscript' : 'sh',
'application/x-csh' : 'sh',
'text/x-python' : 'python',
'text/x-java' : 'java',
'text/x-java-source' : 'java',
'text/x-ruby' : 'ruby',
'text/x-perl' : 'perl',
'application/x-perl' : 'perl',
'text/x-sql' : 'sql',
'text/xml' : 'xml',
'application/docbook+xml' : 'xml',
'application/xml' : 'xml'
};
// set base height
taBase.height(taBase.height());
// set basePath of ace
ace.config.set('basePath', cdn);
// Base node of Ace editor
editorBase = $('').text(ta.val()).insertBefore(ta.hide());
// Editor flag
ta.data('ace', true);
// Aceeditor instance
editor = ace.edit(id);
// Ace editor configure
editor.$blockScrolling = Infinity;
editor.setOptions({
theme: 'ace/theme/monokai',
fontSize: '14px',
wrap: true,
});
ace.config.loadModule('ace/ext/modelist', function() {
// detect mode
mode = ace.require('ace/ext/modelist').getModeForPath('/' + self.file.name).name;
if (mode === 'text') {
if (mimeMode[self.file.mime]) {
mode = mimeMode[self.file.mime];
}
}
// show MIME:mode in title bar
taBase.prev().children('.elfinder-dialog-title').append(' (' + self.file.mime + ' : ' + mode.split(/[\/\\]/).pop() + ')');
editor.setOptions({
mode: 'ace/mode/' + mode
});
if (dfrd.state() === 'resolved') {
dialog.trigger('resize');
}
});
ace.config.loadModule('ace/ext/language_tools', function() {
ace.require('ace/ext/language_tools');
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: false
});
});
ace.config.loadModule('ace/ext/settings_menu', function() {
ace.require('ace/ext/settings_menu').init(editor);
});
// Short cuts
editor.commands.addCommand({
name : "saveFile",
bindKey: {
win : 'Ctrl-s',
mac : 'Command-s'
},
exec: function(editor) {
self.doSave();
}
});
editor.commands.addCommand({
name : "closeEditor",
bindKey: {
win : 'Ctrl-w|Ctrl-q',
mac : 'Command-w|Command-q'
},
exec: function(editor) {
self.doCancel();
}
});
editor.resize();
// TextArea button and Setting button
$('').css('float', 'left')
.append(
$('').html(self.fm.i18n('TextArea'))
.button()
.on('click', function(){
if (ta.data('ace')) {
ta.removeData('ace');
editorBase.hide();
ta.val(editor.session.getValue()).show().trigger('focus');
$(this).text('AceEditor');
} else {
ta.data('ace', true);
editorBase.show();
editor.setValue(ta.hide().val(), -1);
editor.focus();
$(this).html(self.fm.i18n('TextArea'));
}
})
)
.append(
$('')
.button({
icons: {
primary: 'ui-icon-gear',
secondary: 'ui-icon-triangle-1-e'
},
text: false
})
.on('click', function(){
editor.showSettingsMenu();
$('#ace_settingsmenu')
.css('font-size', '80%')
.find('div[contains="setOptions"]').hide().end()
.parent().appendTo($('#elfinder'));
})
)
.prependTo(taBase.next());
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: textarea,
editorObj: ace,
instance: editor,
opts: {}
});
//dialog.trigger('resize');
dfrd.resolve(editor);
};
// check ace & start
if (!self.confObj.loader) {
self.confObj.loader = $.Deferred();
self.fm.loadScript([ cdn+'/ace.js' ], function() {
self.confObj.loader.resolve();
}, void 0, {obj: window, name: 'ace'});
}
self.confObj.loader.done(start);
return dfrd;
},
close : function(textarea, instance) {
instance && instance.destroy();
},
save : function(textarea, instance) {
instance && $(textarea).data('ace') && (textarea.value = instance.session.getValue());
},
focus : function(textarea, instance) {
instance && $(textarea).data('ace') && instance.focus();
},
resize : function(textarea, instance, e, data) {
instance && instance.resize();
}
},
{
// CodeMirror
// called on initialization of elFinder cmd edit (this: this editor's config object)
setup : function(opts, fm) {
if (fm.UA.ltIE10 || !fm.options.cdns.codemirror) {
this.disabled = true;
}
},
// `mimes` is not set for support everything kind of text file
info : {
id : 'codemirror',
name : 'CodeMirror',
iconImg : 'img/editor-icons.png 0 -176'
},
load : function(textarea) {
var fm = this.fm,
cmUrl = fm.convAbsUrl(fm.options.cdns.codemirror),
dfrd = $.Deferred(),
self = this,
start = function(CodeMirror) {
var ta = $(textarea),
base = ta.parent(),
editor, editorBase, opts;
// set base height
base.height(base.height());
// CodeMirror configure options
opts = {
lineNumbers: true,
lineWrapping: true,
extraKeys : {
'Ctrl-S': function() { self.doSave(); },
'Ctrl-Q': function() { self.doCancel(); },
'Ctrl-W': function() { self.doCancel(); }
}
};
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: textarea,
editorObj: CodeMirror,
instance: void(0),
opts: opts
});
// CodeMirror configure
editor = CodeMirror.fromTextArea(textarea, opts);
// return editor instance
dfrd.resolve(editor);
// Auto mode set
var info, m, mode, spec;
if (! info) {
info = CodeMirror.findModeByMIME(self.file.mime);
}
if (! info && (m = self.file.name.match(/.+\.([^.]+)$/))) {
info = CodeMirror.findModeByExtension(m[1]);
}
if (info) {
CodeMirror.modeURL = useRequire? 'codemirror/mode/%N/%N.min' : cmUrl + '/mode/%N/%N.min.js';
mode = info.mode;
spec = info.mime;
editor.setOption('mode', spec);
CodeMirror.autoLoadMode(editor, mode);
// show MIME:mode in title bar
base.prev().children('.elfinder-dialog-title').append(' (' + spec + (mode != 'null'? ' : ' + mode : '') + ')');
}
// editor base node
editorBase = $(editor.getWrapperElement()).css({
// fix CSS conflict to SimpleMDE
padding: 0,
border: 'none'
});
ta.data('cm', true);
// fit height to base
editorBase.height('100%');
// TextArea button and Setting button
$('').css('float', 'left')
.append(
$('').html(self.fm.i18n('TextArea'))
.button()
.on('click', function(){
if (ta.data('cm')) {
ta.removeData('cm');
editorBase.hide();
ta.val(editor.getValue()).show().trigger('focus');
$(this).text('CodeMirror');
} else {
ta.data('cm', true);
editorBase.show();
editor.setValue(ta.hide().val());
editor.refresh();
editor.focus();
$(this).html(self.fm.i18n('TextArea'));
}
})
)
.prependTo(base.next());
};
// load script then start
if (!self.confObj.loader) {
self.confObj.loader = $.Deferred();
if (useRequire) {
require.config({
packages: [{
name: 'codemirror',
location: cmUrl,
main: 'codemirror.min'
}],
map: {
'codemirror': {
'codemirror/lib/codemirror': 'codemirror'
}
}
});
require([
'codemirror',
'codemirror/addon/mode/loadmode.min',
'codemirror/mode/meta.min'
], function(CodeMirror) {
self.confObj.loader.resolve(CodeMirror);
});
} else {
self.fm.loadScript([
cmUrl + '/codemirror.min.js'
], function() {
self.fm.loadScript([
cmUrl + '/addon/mode/loadmode.min.js',
cmUrl + '/mode/meta.min.js'
], function() {
self.confObj.loader.resolve(CodeMirror);
});
}, {loadType: 'tag'});
}
self.fm.loadCss(cmUrl + '/codemirror.css');
}
self.confObj.loader.done(start);
return dfrd;
},
close : function(textarea, instance) {
instance && instance.toTextArea();
},
save : function(textarea, instance) {
instance && $(textarea).data('cm') && (textarea.value = instance.getValue());
},
focus : function(textarea, instance) {
instance && $(textarea).data('cm') && instance.focus();
},
resize : function(textarea, instance, e, data) {
instance && instance.refresh();
}
},
{
// SimpleMDE
// called on initialization of elFinder cmd edit (this: this editor's config object)
setup : function(opts, fm) {
if (fm.UA.ltIE10 || !fm.options.cdns.simplemde) {
this.disabled = true;
}
},
info : {
id : 'simplemde',
name : 'SimpleMDE',
iconImg : 'img/editor-icons.png 0 -80'
},
exts : ['md'],
load : function(textarea) {
var self = this,
fm = this.fm,
base = $(textarea).parent(),
dfrd = $.Deferred(),
cdn = fm.options.cdns.simplemde,
start = function(SimpleMDE) {
var h = base.height(),
delta = base.outerHeight(true) - h + 14,
editor, editorBase, opts;
// fit height function
textarea._setHeight = function(height) {
var h = height || base.height(),
ctrH = 0,
areaH;
base.children('.editor-toolbar,.editor-statusbar').each(function() {
ctrH += $(this).outerHeight(true);
});
areaH = h - ctrH - delta;
editorBase.height(areaH);
editor.codemirror.refresh();
return areaH;
};
// set base height
base.height(h);
opts = {
element: textarea,
autofocus: true
};
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: textarea,
editorObj: SimpleMDE,
instance: void(0),
opts: opts
});
// make editor
editor = new SimpleMDE(opts);
dfrd.resolve(editor);
// editor base node
editorBase = $(editor.codemirror.getWrapperElement());
// fit height to base
editorBase.css('min-height', '50px')
.children('.CodeMirror-scroll').css('min-height', '50px');
textarea._setHeight(h);
};
// check SimpleMDE & start
if (!self.confObj.loader) {
self.confObj.loader = $.Deferred();
self.fm.loadCss(cdn+'/simplemde.min.css');
if (useRequire) {
require([
cdn+'/simplemde.min.js'
], function(SimpleMDE) {
self.confObj.loader.resolve(SimpleMDE);
});
} else {
self.fm.loadScript([cdn+'/simplemde.min.js'], function() {
self.confObj.loader.resolve(SimpleMDE);
}, {loadType: 'tag'});
}
}
self.confObj.loader.done(start);
return dfrd;
},
close : function(textarea, instance) {
instance && instance.toTextArea();
instance = null;
},
save : function(textarea, instance) {
instance && (textarea.value = instance.value());
},
focus : function(textarea, instance) {
instance && instance.codemirror.focus();
},
resize : function(textarea, instance, e, data) {
instance && textarea._setHeight();
}
},
{
// CKEditor for html file
info : {
id : 'ckeditor',
name : 'CKEditor',
iconImg : 'img/editor-icons.png 0 0'
},
exts : ['htm', 'html', 'xhtml'],
setup : function(opts, fm) {
var confObj = this;
if (!fm.options.cdns.ckeditor) {
confObj.disabled = true;
} else {
confObj.ckeOpts = {};
if (opts.extraOptions) {
confObj.ckeOpts = Object.assign({}, opts.extraOptions.ckeditor || {});
if (opts.extraOptions.managerUrl) {
confObj.managerUrl = opts.extraOptions.managerUrl;
}
}
}
},
load : function(textarea) {
var self = this,
fm = this.fm,
dfrd = $.Deferred(),
init = function() {
var base = $(textarea).parent(),
dlg = base.closest('.elfinder-dialog'),
h = base.height(),
reg = /([&?]getfile=)[^&]+/,
loc = self.confObj.managerUrl || window.location.href.replace(/#.*$/, ''),
name = 'ckeditor',
opts;
// make manager location
if (reg.test(loc)) {
loc = loc.replace(reg, '$1' + name);
} else {
loc += '?getfile=' + name;
}
// set base height
base.height(h);
// CKEditor configure options
opts = {
startupFocus : true,
fullPage: true,
allowedContent: true,
filebrowserBrowseUrl : loc,
toolbarCanCollapse: true,
toolbarStartupExpanded: !fm.UA.Mobile,
removePlugins: 'resize',
extraPlugins: 'colorbutton,justify,docprops',
on: {
'instanceReady' : function(e) {
var editor = e.editor;
editor.resize('100%', h);
// re-build on dom move
dlg.one('beforedommove.'+fm.namespace, function() {
editor.destroy();
}).one('dommove.'+fm.namespace, function() {
self.load(textarea).done(function(editor) {
self.instance = editor;
});
});
// return editor instance
dfrd.resolve(e.editor);
}
}
};
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: textarea,
editorObj: CKEDITOR,
instance: void(0),
opts: opts
});
// CKEditor configure
CKEDITOR.replace(textarea.id, Object.assign(opts, self.confObj.ckeOpts));
CKEDITOR.on('dialogDefinition', function(e) {
var dlg = e.data.definition.dialog;
dlg.on('show', function(e) {
fm.getUI().append($('.cke_dialog_background_cover')).append(this.getElement().$);
});
dlg.on('hide', function(e) {
$('body:first').append($('.cke_dialog_background_cover')).append(this.getElement().$);
});
});
};
if (!self.confObj.loader) {
self.confObj.loader = $.Deferred();
window.CKEDITOR_BASEPATH = fm.options.cdns.ckeditor + '/';
$.getScript(fm.options.cdns.ckeditor + '/ckeditor.js', function() {
self.confObj.loader.resolve();
});
}
self.confObj.loader.done(init);
return dfrd;
},
close : function(textarea, instance) {
instance && instance.destroy();
},
save : function(textarea, instance) {
instance && (textarea.value = instance.getData());
},
focus : function(textarea, instance) {
instance && instance.focus();
},
resize : function(textarea, instance, e, data) {
var self;
if (instance) {
if (instance.status === 'ready') {
instance.resize('100%', $(textarea).parent().height());
}
}
}
},
{
// CKEditor5 balloon mode for html file
info : {
id : 'ckeditor5',
name : 'CKEditor5',
iconImg : 'img/editor-icons.png 0 -16'
},
exts : ['htm', 'html', 'xhtml'],
html : '',
setup : function(opts, fm) {
var confObj = this;
// check cdn and ES6 support
if (!fm.options.cdns.ckeditor5 || typeof window.Symbol !== 'function' || typeof Symbol() !== 'symbol') {
confObj.disabled = true;
} else {
confObj.ckeOpts = {};
if (opts.extraOptions) {
// @deprecated option extraOptions.ckeditor5Mode
if (opts.extraOptions.ckeditor5Mode) {
confObj.ckeditor5Mode = opts.extraOptions.ckeditor5Mode;
}
confObj.ckeOpts = Object.assign({}, opts.extraOptions.ckeditor5 || {});
if (confObj.ckeOpts.mode) {
confObj.ckeditor5Mode = confObj.ckeOpts.mode;
delete confObj.ckeOpts.mode;
}
if (opts.extraOptions.managerUrl) {
confObj.managerUrl = opts.extraOptions.managerUrl;
}
}
}
fm.bind('destroy', function() {
confObj.editor = null;
});
},
// Prepare on before show dialog
prepare : function(base, dialogOpts, file) {
$(base).height(base.editor.fm.getUI().height() - 100);
},
init : function(id, file, data, fm) {
var m = data.match(/^([\s\S]*]*>)([\s\S]+)(<\/body>[\s\S]*)$/i),
header = '',
body = '',
footer ='';
this.css({
width: '100%',
height: '100%',
'box-sizing': 'border-box'
});
if (m) {
header = m[1];
body = m[2];
footer = m[3];
} else {
body = data;
}
this.data('data', {
header: header,
body: body,
footer: footer
});
this._setupSelEncoding(data);
},
load : function(editnode) {
var self = this,
fm = this.fm,
dfrd = $.Deferred(),
mode = self.confObj.ckeditor5Mode || 'decoupled-document',
lang = (function() {
var l = fm.lang.toLowerCase().replace('_', '-');
if (l.substr(0, 2) === 'zh' && l !== 'zh-cn') {
l = 'zh';
}
return l;
})(),
init = function(cEditor) {
var base = $(editnode).parent(),
opts;
// set base height
base.height(fm.getUI().height() - 100);
// CKEditor5 configure options
opts = Object.assign({
toolbar: ["heading", "|", "fontSize", "fontFamily", "|", "bold", "italic", "underline", "strikethrough", "highlight", "|", "alignment", "|", "numberedList", "bulletedList", "blockQuote", "indent", "outdent", "|", "ckfinder", "link", "imageUpload", "insertTable", "mediaEmbed", "|", "undo", "redo"],
language: lang
}, self.confObj.ckeOpts);
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: editnode,
editorObj: cEditor,
instance: void(0),
opts: opts
});
cEditor
.create(editnode, opts)
.then(function(editor) {
var ckf = editor.commands.get('ckfinder'),
fileRepo = editor.plugins.get('FileRepository'),
prevVars = {}, isImage, insertImages;
if (editor.ui.view.toolbar && (mode === 'classic' || mode === 'decoupled-document')) {
$(editnode).closest('.elfinder-dialog').children('.ui-widget-header').append($(editor.ui.view.toolbar.element).css({marginRight:'-1em',marginLeft:'-1em'}));
}
if (mode === 'classic') {
$(editnode).closest('.elfinder-edit-editor').css('overflow', 'auto');
}
// Set up this elFinder instead of CKFinder
if (ckf) {
isImage = function(f) {
return f && f.mime.match(/^image\//i);
};
insertImages = function(urls) {
var imgCmd = editor.commands.get('imageUpload');
if (!imgCmd.isEnabled) {
var ntf = editor.plugins.get('Notification'),
i18 = editor.locale.t;
ntf.showWarning(i18('Could not insert image at the current position.'), {
title: i18('Inserting image failed'),
namespace: 'ckfinder'
});
return;
}
editor.execute('imageInsert', { source: urls });
};
// Take over ckfinder execute()
ckf.execute = function() {
var dlg = base.closest('.elfinder-dialog'),
gf = fm.getCommand('getfile'),
rever = function() {
if (prevVars.hasVar) {
dlg.off('resize close', rever);
gf.callback = prevVars.callback;
gf.options.folders = prevVars.folders;
gf.options.multiple = prevVars.multi;
fm.commandMap.open = prevVars.open;
prevVars.hasVar = false;
}
};
dlg.trigger('togleminimize').one('resize close', rever);
prevVars.callback = gf.callback;
prevVars.folders = gf.options.folders;
prevVars.multi = gf.options.multiple;
prevVars.open = fm.commandMap.open;
prevVars.hasVar = true;
gf.callback = function(files) {
var imgs = [];
if (files.length === 1 && files[0].mime === 'directory') {
fm.one('open', function() {
fm.commandMap.open = 'getfile';
}).getCommand('open').exec(files[0].hash);
return;
}
fm.getUI('cwd').trigger('unselectall');
$.each(files, function(i, f) {
if (isImage(f)) {
imgs.push(fm.convAbsUrl(f.url));
} else {
editor.execute('link', fm.convAbsUrl(f.url));
}
});
if (imgs.length) {
insertImages(imgs);
}
dlg.trigger('togleminimize');
};
gf.options.folders = true;
gf.options.multiple = true;
fm.commandMap.open = 'getfile';
fm.toast({
mode: 'info',
msg: fm.i18n('dblclickToSelect')
});
};
}
// Set up image uploader
fileRepo.createUploadAdapter = function(loader) {
return new uploder(loader);
};
editor.setData($(editnode).data('data').body);
// move .ck-body to elFinder node for fullscreen mode
fm.getUI().append($('body > div.ck-body'));
$('div.ck-balloon-panel').css({
'z-index': fm.getMaximizeCss().zIndex + 1
});
dfrd.resolve(editor);
/*fm.log({
defaultConfig: cEditor.defaultConfig,
plugins: cEditor.builtinPlugins.map(function(p) { return p.pluginName; }),
toolbars: Array.from(editor.ui.componentFactory.names())
});*/
})
['catch'](function(error) { // ['cache'] instead .cache for fix error on ie8
fm.error(error);
});
},
uploder = function(loader) {
var upload = function(file, resolve, reject) {
fm.exec('upload', {files: [file]}, void(0), fm.cwd().hash)
.done(function(data){
if (data.added && data.added.length) {
fm.url(data.added[0].hash, { async: true }).done(function(url) {
resolve({
'default': fm.convAbsUrl(url)
});
}).fail(function() {
reject('errFileNotFound');
});
} else {
reject(fm.i18n(data.error? data.error : 'errUpload'));
}
})
.fail(function(err) {
var error = fm.parseError(err);
reject(fm.i18n(error? (error === 'userabort'? 'errAbort' : error) : 'errUploadNoFiles'));
})
.progress(function(data) {
loader.uploadTotal = data.total;
loader.uploaded = data.progress;
});
};
this.upload = function() {
return new Promise(function(resolve, reject) {
if (loader.file instanceof Promise || (loader.file && typeof loader.file.then === 'function')) {
loader.file.then(function(file) {
upload(file, resolve, reject);
});
} else {
upload(loader.file, resolve, reject);
}
});
};
this.abort = function() {
fm.getUI().trigger('uploadabort');
};
}, loader;
if (!self.confObj.editor) {
loader = $.Deferred();
self.fm.loadScript([
fm.options.cdns.ckeditor5 + '/' + mode + '/ckeditor.js'
], function(editor) {
if (!editor) {
editor = window.BalloonEditor || window.InlineEditor || window.ClassicEditor || window.DecoupledEditor;
}
if (fm.lang !== 'en') {
self.fm.loadScript([
fm.options.cdns.ckeditor5 + '/' + mode + '/translations/' + lang + '.js'
], function(obj) {
loader.resolve(editor);
}, {
tryRequire: true,
loadType: 'tag',
error: function(obj) {
lang = 'en';
loader.resolve(editor);
}
});
} else {
loader.resolve(editor);
}
}, {
tryRequire: true,
loadType: 'tag'
});
loader.done(function(editor) {
self.confObj.editor = editor;
init(editor);
});
} else {
init(self.confObj.editor);
}
return dfrd;
},
getContent : function() {
var data = $(this).data('data');
return data.header + data.body + data.footer;
},
close : function(editnode, instance) {
instance && instance.destroy();
},
save : function(editnode, instance) {
var elm = $(editnode),
data = elm.data('data');
if (instance) {
data.body = instance.getData();
elm.data('data', data);
}
},
focus : function(editnode, instance) {
$(editnode).trigger('focus');
}
},
{
// TinyMCE for html file
info : {
id : 'tinymce',
name : 'TinyMCE',
iconImg : 'img/editor-icons.png 0 -64'
},
exts : ['htm', 'html', 'xhtml'],
setup : function(opts, fm) {
var confObj = this;
if (!fm.options.cdns.tinymce) {
confObj.disabled = true;
} else {
confObj.mceOpts = {};
if (opts.extraOptions) {
confObj.uploadOpts = Object.assign({}, opts.extraOptions.uploadOpts || {});
confObj.mceOpts = Object.assign({}, opts.extraOptions.tinymce || {});
} else {
confObj.uploadOpts = {};
}
}
},
load : function(textarea) {
var self = this,
fm = this.fm,
dfrd = $.Deferred(),
init = function() {
var base = $(textarea).show().parent(),
dlg = base.closest('.elfinder-dialog'),
h = base.height(),
delta = base.outerHeight(true) - h,
// hide MCE dialog and modal block
hideMceDlg = function() {
var mceW;
if (tinymce.activeEditor.windowManager.windows) {
mceW = tinymce.activeEditor.windowManager.windows[0];
mceDlg = $(mceW? mceW.getEl() : void(0)).hide();
mceCv = $('#mce-modal-block').hide();
} else {
mceDlg = $('.tox-dialog-wrap').hide();
}
},
// Show MCE dialog and modal block
showMceDlg = function() {
mceCv && mceCv.show();
mceDlg && mceDlg.show();
},
tVer = tinymce.majorVersion,
opts, mceDlg, mceCv;
// set base height
base.height(h);
// fit height function
textarea._setHeight = function(height) {
if (tVer < 5) {
var base = $(this).parent(),
h = height || base.innerHeight(),
ctrH = 0,
areaH;
base.find('.mce-container-body:first').children('.mce-top-part,.mce-statusbar').each(function() {
ctrH += $(this).outerHeight(true);
});
areaH = h - ctrH - delta;
base.find('.mce-edit-area iframe:first').height(areaH);
}
};
// TinyMCE configure options
opts = {
selector: '#' + textarea.id,
resize: false,
plugins: 'preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help',
toolbar: 'formatselect | bold italic strikethrough forecolor backcolor | link image media | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat',
image_advtab: true,
init_instance_callback : function(editor) {
// fit height on init
textarea._setHeight(h);
// re-build on dom move
dlg.one('beforedommove.'+fm.namespace, function() {
tinymce.execCommand('mceRemoveEditor', false, textarea.id);
}).one('dommove.'+fm.namespace, function() {
self.load(textarea).done(function(editor) {
self.instance = editor;
});
});
// return editor instance
dfrd.resolve(editor);
},
file_picker_callback : function (callback, value, meta) {
var gf = fm.getCommand('getfile'),
revar = function() {
if (prevVars.hasVar) {
gf.callback = prevVars.callback;
gf.options.folders = prevVars.folders;
gf.options.multiple = prevVars.multi;
fm.commandMap.open = prevVars.open;
prevVars.hasVar = false;
}
dlg.off('resize close', revar);
showMceDlg();
},
prevVars = {};
prevVars.callback = gf.callback;
prevVars.folders = gf.options.folders;
prevVars.multi = gf.options.multiple;
prevVars.open = fm.commandMap.open;
prevVars.hasVar = true;
gf.callback = function(file) {
var url, info;
if (file.mime === 'directory') {
fm.one('open', function() {
fm.commandMap.open = 'getfile';
}).getCommand('open').exec(file.hash);
return;
}
// URL normalization
url = fm.convAbsUrl(file.url);
// Make file info
info = file.name + ' (' + fm.formatSize(file.size) + ')';
// Provide file and text for the link dialog
if (meta.filetype == 'file') {
callback(url, {text: info, title: info});
}
// Provide image and alt text for the image dialog
if (meta.filetype == 'image') {
callback(url, {alt: info});
}
// Provide alternative source and posted for the media dialog
if (meta.filetype == 'media') {
callback(url);
}
dlg.trigger('togleminimize');
};
gf.options.folders = true;
gf.options.multiple = false;
fm.commandMap.open = 'getfile';
hideMceDlg();
dlg.trigger('togleminimize').one('resize close', revar);
fm.toast({
mode: 'info',
msg: fm.i18n('dblclickToSelect')
});
return false;
},
images_upload_handler : function (blobInfo, success, failure) {
var file = blobInfo.blob(),
err = function(e) {
var dlg = e.data.dialog || {};
if (dlg.hasClass('elfinder-dialog-error') || dlg.hasClass('elfinder-confirm-upload')) {
hideMceDlg();
dlg.trigger('togleminimize').one('resize close', revert);
fm.unbind('dialogopened', err);
}
},
revert = function() {
dlg.off('resize close', revert);
showMceDlg();
},
clipdata = true;
// check file object
if (file.name) {
// file blob of client side file object
clipdata = void(0);
}
fm.bind('dialogopened', err).exec('upload', Object.assign({
files: [file],
clipdata: clipdata // to get unique name on connector
}, self.confObj.uploadOpts), void(0), fm.cwd().hash).done(function(data) {
if (data.added && data.added.length) {
fm.url(data.added[0].hash, { async: true }).done(function(url) {
showMceDlg();
success(fm.convAbsUrl(url));
}).fail(function() {
failure(fm.i18n('errFileNotFound'));
});
} else {
failure(fm.i18n(data.error? data.error : 'errUpload'));
}
}).fail(function(err) {
var error = fm.parseError(err);
if (error) {
if (error === 'errUnknownCmd') {
error = 'errPerm';
} else if (error === 'userabort') {
error = 'errAbort';
}
}
failure(fm.i18n(error? error : 'errUploadNoFiles'));
});
}
};
// TinyMCE 5 supports "height: 100%"
if (tVer >= 5) {
opts.height = '100%';
}
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: textarea,
editorObj: tinymce,
instance: void(0),
opts: opts
});
// TinyMCE configure
tinymce.init(Object.assign(opts, self.confObj.mceOpts));
};
if (!self.confObj.loader) {
self.confObj.loader = $.Deferred();
self.fm.loadScript([fm.options.cdns.tinymce + (fm.options.cdns.tinymce.match(/\.js/)? '' : '/tinymce.min.js')], function() {
self.confObj.loader.resolve();
}, {
loadType: 'tag'
});
}
self.confObj.loader.done(init);
return dfrd;
},
close : function(textarea, instance) {
instance && tinymce.execCommand('mceRemoveEditor', false, textarea.id);
},
save : function(textarea, instance) {
instance && instance.save();
},
focus : function(textarea, instance) {
instance && instance.focus();
},
resize : function(textarea, instance, e, data) {
// fit height to base node on dialog resize
instance && textarea._setHeight();
}
},
{
info : {
id : 'zohoeditor',
name : 'Zoho Editor',
iconImg : 'img/editor-icons.png 0 -32',
cmdCheck : 'ZohoOffice',
preventGet: true,
hideButtons: true,
syncInterval : 15000,
canMakeEmpty: true,
integrate: {
title: 'Zoho Office API',
link: 'https://www.zoho.com/officeapi/'
}
},
mimes : [
'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
//'application/pdf',
'application/vnd.oasis.opendocument.text',
'application/rtf',
'text/html',
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.oasis.opendocument.spreadsheet',
'application/vnd.sun.xml.calc',
'text/csv',
'text/tab-separated-values',
'application/vnd.ms-powerpoint',
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
'application/vnd.oasis.opendocument.presentation',
'application/vnd.sun.xml.impress'
],
html : '',
// setup on elFinder bootup
setup : function(opts, fm) {
if (fm.UA.Mobile || fm.UA.ltIE8) {
this.disabled = true;
}
},
// Prepare on before show dialog
prepare : function(base, dialogOpts, file) {
var elfNode = base.editor.fm.getUI();
$(base).height(elfNode.height());
dialogOpts.width = Math.max(dialogOpts.width || 0, elfNode.width() * 0.8);
},
// Initialization of editing node (this: this editors HTML node)
init : function(id, file, dum, fm) {
var ta = this,
ifm = $(this).hide(),
uiToast = fm.getUI('toast'),
spnr = $('')
.html('' + fm.i18n('nowLoading') + '')
.appendTo(ifm.parent()),
cdata = function() {
var data = '';
$.each(fm.customData, function(key, val) {
data += '&' + encodeURIComponent(key) + '=' + encodeURIComponent(val);
});
return data;
};
$(ta).data('xhr', fm.request({
data: {
cmd: 'editor',
name: ta.editor.confObj.info.cmdCheck,
method: 'init',
'args[target]': file.hash,
'args[lang]' : fm.lang,
'args[cdata]' : cdata()
},
preventDefault : true
}).done(function(data) {
var opts;
if (data.zohourl) {
opts = {
css: {
height: '100%'
}
};
// trigger event 'editEditorPrepare'
ta.editor.trigger('Prepare', {
node: ta,
editorObj: void(0),
instance: ifm,
opts: opts
});
ifm.attr('src', data.zohourl).show().css(opts.css);
if (data.warning) {
uiToast.appendTo(ta.closest('.ui-dialog'));
fm.toast({
msg: fm.i18n(data.warning),
mode: 'warning',
timeOut: 0,
onHidden: function() {
uiToast.children().length === 1 && uiToast.appendTo(fm.getUI());
},
button: {
text: 'btnYes'
}
});
}
} else {
data.error && fm.error(data.error);
ta.elfinderdialog('destroy');
}
}).fail(function(error) {
error && fm.error(error);
ta.elfinderdialog('destroy');
}).always(function() {
spnr.remove();
}));
},
load : function() {},
getContent : function() {},
save : function() {},
// Before dialog close
beforeclose : iframeClose,
// On dialog closed
close : function(ta) {
var fm = this.fm,
xhr = $(ta).data('xhr');
if (xhr.state() === 'pending') {
xhr.reject();
}
}
},
{
// Zip Archive with FlySystem
info : {
id : 'ziparchive',
name : 'btnMount',
iconImg : 'img/toolbar.png 0 -416',
cmdCheck : 'ZipArchive',
edit : function(file, editor) {
var fm = this,
dfrd = $.Deferred();
fm.request({
data:{
cmd: 'netmount',
protocol: 'ziparchive',
host: file.hash,
path: file.phash
},
preventFail: true,
notify : {type : 'netmount', cnt : 1, hideCnt : true}
}).done(function(data) {
var pdir;
if (data.added && data.added.length) {
if (data.added[0].phash) {
if (pdir = fm.file(data.added[0].phash)) {
if (! pdir.dirs) {
pdir.dirs = 1;
fm.change({ changed: [ pdir ] });
}
}
}
fm.one('netmountdone', function() {
fm.exec('open', data.added[0].hash);
fm.one('opendone', function() {
data.toast && fm.toast(data.toast);
});
});
}
dfrd.resolve();
})
.fail(function(error) {
dfrd.reject(error);
});
return dfrd;
}
},
mimes : ['application/zip'],
load : function() {},
save : function(){}
},
{
// Simple Text (basic textarea editor)
info : {
id : 'textarea',
name : 'TextArea',
useTextAreaEvent : true
},
load : function(textarea) {
// trigger event 'editEditorPrepare'
this.trigger('Prepare', {
node: textarea,
editorObj: void(0),
instance: void(0),
opts: {}
});
textarea.setSelectionRange && textarea.setSelectionRange(0, 0);
$(textarea).trigger('focus').show();
},
save : function(){}
},
{
// File converter with online-convert.com
info : {
id : 'onlineconvert',
name : 'Online Convert',
iconImg : 'img/editor-icons.png 0 -144',
cmdCheck : 'OnlineConvert',
preventGet: true,
hideButtons: true,
single: true,
converter: true,
canMakeEmpty: false,
integrate: {
title: 'ONLINE-CONVERT.COM',
link: 'https://online-convert.com'
}
},
mimes : ['*'],
html : '',
// setup on elFinder bootup
setup : function(opts, fm) {
var mOpts = opts.extraOptions.onlineConvert || {maxSize:100,showLink:true};
if (mOpts.maxSize) {
this.info.maxSize = mOpts.maxSize * 1048576;
}
this.set = Object.assign({
url : 'https://%s.online-convert.com%s?external_url=',
conv : {
Archive: {'7Z':{}, 'BZ2':{ext:'bz'}, 'GZ':{}, 'ZIP':{}},
Audio: {'MP3':{}, 'OGG':{ext:'oga'}, 'WAV':{}, 'WMA':{}, 'AAC':{}, 'AIFF':{ext:'aif'}, 'FLAC':{}, 'M4A':{}, 'MMF':{}, 'OPUS':{ext:'oga'}},
Document: {'DOC':{}, 'DOCX':{}, 'HTML':{}, 'ODT':{}, 'PDF':{}, 'PPT':{}, 'PPTX':{}, 'RTF':{}, 'SWF':{}, 'TXT':{}},
eBook: {'AZW3':{ext:'azw'}, 'ePub':{}, 'FB2':{ext:'xml'}, 'LIT':{}, 'LRF':{}, 'MOBI':{}, 'PDB':{}, 'PDF':{},'PDF-eBook':{ext:'pdf'}, 'TCR':{}},
Hash: {'Adler32':{}, 'Apache-htpasswd':{}, 'Blowfish':{}, 'CRC32':{}, 'CRC32B':{}, 'Gost':{}, 'Haval128':{},'MD4':{}, 'MD5':{}, 'RIPEMD128':{}, 'RIPEMD160':{}, 'SHA1':{}, 'SHA256':{}, 'SHA384':{}, 'SHA512':{}, 'Snefru':{}, 'Std-DES':{}, 'Tiger128':{}, 'Tiger128-calculator':{}, 'Tiger128-converter':{}, 'Tiger160':{}, 'Tiger192':{}, 'Whirlpool':{}},
Image: {'BMP':{}, 'EPS':{ext:'ai'}, 'GIF':{}, 'EXR':{}, 'ICO':{}, 'JPG':{}, 'PNG':{}, 'SVG':{}, 'TGA':{}, 'TIFF':{ext:'tif'}, 'WBMP':{}, 'WebP':{}},
Video: {'3G2':{}, '3GP':{}, 'AVI':{}, 'FLV':{}, 'HLS':{ext:'m3u8'}, 'MKV':{}, 'MOV':{}, 'MP4':{}, 'MPEG-1':{ext:'mpeg'}, 'MPEG-2':{ext:'mpeg'}, 'OGG':{ext:'ogv'}, 'OGV':{}, 'WebM':{}, 'WMV':{}, 'Android':{link:'/convert-video-for-%s',ext:'mp4'}, 'Blackberry':{link:'/convert-video-for-%s',ext:'mp4'}, 'DPG':{link:'/convert-video-for-%s',ext:'avi'}, 'iPad':{link:'/convert-video-for-%s',ext:'mp4'}, 'iPhone':{link:'/convert-video-for-%s',ext:'mp4'}, 'iPod':{link:'/convert-video-for-%s',ext:'mp4'}, 'Nintendo-3DS':{link:'/convert-video-for-%s',ext:'avi'}, 'Nintendo-DS':{link:'/convert-video-for-%s',ext:'avi'}, 'PS3':{link:'/convert-video-for-%s',ext:'mp4'}, 'Wii':{link:'/convert-video-for-%s',ext:'avi'}, 'Xbox':{link:'/convert-video-for-%s',ext:'wmv'}}
},
catExts : {
Hash: 'txt'
},
link : '',
useTabs : ($.fn.tabs && !fm.UA.iOS)? true : false // Can't work on iOS, I don't know why.
}, mOpts);
},
// Prepare on before show dialog
prepare : function(base, dialogOpts, file) {
var elfNode = base.editor.fm.getUI();
$(base).height(elfNode.height());
dialogOpts.width = Math.max(dialogOpts.width || 0, elfNode.width() * 0.8);
},
// Initialization of editing node (this: this editors HTML node)
init : function(id, file, dum, fm) {
var ta = this,
confObj = ta.editor.confObj,
set = confObj.set,
uiToast = fm.getUI('toast'),
idxs = {},
allowZip = fm.uploadMimeCheck('application/zip', file.phash),
selfUrl = $('base').length? document.location.href.replace(/#.*$/, '') : '',
getExt = function(cat, con) {
var c;
if (set.catExts[cat]) {
return set.catExts[cat];
}
if (set.conv[cat] && (c = set.conv[cat][con])) {
return (c.ext || con).toLowerCase();
}
return con.toLowerCase();
},
setOptions = function(cat, done) {
var type, dfdInit, dfd;
if (typeof confObj.api === 'undefined') {
dfdInit = fm.request({
data: {
cmd: 'editor',
name: 'OnlineConvert',
method: 'init'
},
preventDefault : true
});
} else {
dfdInit = $.Deferred().resolve({api: confObj.api});
}
cat = cat.toLowerCase();
dfdInit.done(function(data) {
confObj.api = data.api;
if (confObj.api) {
if (cat) {
type = '?category=' + cat;
} else {
type = '';
cat = 'all';
}
if (!confObj.conversions) {
confObj.conversions = {};
}
if (!confObj.conversions[cat]) {
dfd = $.getJSON('https://api2.online-convert.com/conversions' + type);
} else {
dfd = $.Deferred().resolve(confObj.conversions[cat]);
}
dfd.done(function(d) {
confObj.conversions[cat] = d;
$.each(d, function(i, o) {
btns[set.useTabs? 'children' : 'find']('.onlineconvert-category-' + o.category).children('.onlineconvert-' + o.target).trigger('makeoption', o);
});
done && done();
});
}
});
},
btns = (function() {
var btns = $('').on('click', 'button', function() {
var b = $(this),
opts = b.data('opts') || null,
cat = b.closest('.onlineconvert-category').data('cname'),
con = b.data('conv');
if (confObj.api === true) {
api({
category: cat,
convert: con,
options: opts
});
}
}).on('change', function(e) {
var t = $(e.target),
p = t.parent(),
b = t.closest('.elfinder-edit-onlineconvert-button').children('button:first'),
o = b.data('opts') || {},
v = p.data('type') === 'boolean'? t.is(':checked') : t.val();
e.stopPropagation();
if (v) {
if (p.data('type') === 'integer') {
v = parseInt(v);
}
if (p.data('pattern')) {
var reg = new RegExp(p.data('pattern'));
if (!reg.test(v)) {
requestAnimationFrame(function() {
fm.error('"' + fm.escape(v) + '" is not match to "/' + fm.escape(p.data('pattern')) + '/"');
});
v = null;
}
}
}
if (v) {
o[t.parent().data('optkey')] = v;
} else {
delete o[p.data('optkey')];
}
b.data('opts', o);
}),
ul = $(''),
oform = function(n, o) {
var f = $('').data('optkey', n).data('type', o.type),
checked = '',
disabled = '',
nozip = false,
opts, btn, elm;
if (o.description) {
f.attr('title', fm.i18n(o.description));
}
if (o.pattern) {
f.data('pattern', o.pattern);
}
f.append($('').text(fm.i18n(n) + ' : '));
if (o.type === 'boolean') {
if (o['default'] || (nozip = (n === 'allow_multiple_outputs' && !allowZip))) {
checked = ' checked';
if (nozip) {
disabled = ' disabled';
}
btn = this.children('button:first');
opts = btn.data('opts') || {};
opts[n] = true;
btn.data('opts', opts);
}
f.append($(''));
} else if (o['enum']){
elm = $('').append($('').text('Select...'));
$.each(o['enum'], function(i, v) {
elm.append($('').text(v));
});
f.append(elm);
} else {
f.append($(''));
}
return f;
},
makeOption = function(o) {
var elm = this,
b = $('').on('click', function() {
f.toggle();
}),
f = $('').hide();
if (o.options) {
$.each(o.options, function(k, v) {
k !== 'download_password' && f.append(oform.call(elm, k, v));
});
}
elm.append(b, f);
},
ts = (+new Date()),
i = 0;
if (!confObj.ext2mime) {
confObj.ext2mime = Object.assign(fm.arrayFlip(fm.mimeTypes), ext2mime);
}
$.each(set.conv, function(t, c) {
var cname = t.toLowerCase(),
id = 'elfinder-edit-onlineconvert-' + cname + ts,
type = $('').data('cname', t),
cext;
$.each(c, function(n, o) {
var nl = n.toLowerCase(),
ext = getExt(t, n);
if (!confObj.ext2mime[ext]) {
if (cname === 'audio' || cname === 'image' || cname === 'video') {
confObj.ext2mime[ext] = cname + '/x-' + nl;
} else {
confObj.ext2mime[ext] = 'application/octet-stream';
}
}
if (fm.uploadMimeCheck(confObj.ext2mime[ext], file.phash)) {
type.append($('').on('makeoption', function(e, data) {
var elm = $(this);
if (!elm.children('.elfinder-button-icon-preference').length) {
makeOption.call(elm, data);
}
}).append($('').text(n).data('conv', n)));
}
});
if (type.children().length) {
ul.append($('').append($('').attr('href', selfUrl + '#' + id).text(t)));
btns.append(type);
idxs[cname] = i++;
}
});
if (set.useTabs) {
btns.prepend(ul).tabs({
beforeActivate: function(e, ui) {
setOptions(ui.newPanel.data('cname'));
}
});
} else {
$.each(set.conv, function(t) {
var tl = t.toLowerCase();
btns.append($('').append($('').text(t)).append(btns.children('.onlineconvert-category-' + tl)));
});
}
return btns;
})(),
select = $(this)
.append(
btns,
(set.showLink? $(set.link) : null)
),
spnr = $('')
.hide()
.html('' + fm.i18n('nowLoading') + '')
.appendTo(select.parent()),
prog = $('').appendTo(spnr),
_url = null,
url = function() {
var onetime;
if (_url) {
return $.Deferred().resolve(_url);
} else {
spnr.show();
return fm.forExternalUrl(file.hash, { progressBar: prog }).done(function(url) {
_url = url;
}).fail(function(error) {
error && fm.error(error);
ta.elfinderdialog('destroy');
}).always(function() {
spnr.hide();
});
}
},
api = function(opts) {
$(ta).data('dfrd', url().done(function(url) {
select.fadeOut();
setStatus({info: 'Start conversion request.'});
fm.request({
data: {
cmd: 'editor',
name: 'OnlineConvert',
method: 'api',
'args[category]' : opts.category.toLowerCase(),
'args[convert]' : opts.convert.toLowerCase(),
'args[options]' : JSON.stringify(opts.options),
'args[source]' : fm.convAbsUrl(url),
'args[filename]' : fm.splitFileExtention(file.name)[0] + '.' + getExt(opts.category, opts.convert),
'args[mime]' : file.mime
},
preventDefault : true
}).done(function(data) {
checkRes(data.apires, opts.category, opts.convert);
}).fail(function(error) {
error && fm.error(error);
ta.elfinderdialog('destroy');
});
}));
},
checkRes = function(res, cat, con) {
var status, err = [];
if (res && res.id) {
status = res.status;
if (status.code === 'failed') {
spnr.hide();
if (res.errors && res.errors.length) {
$.each(res.errors, function(i, o) {
o.message && err.push(o.message);
});
}
fm.error(err.length? err : status.info);
select.fadeIn();
} else if (status.code === 'completed') {
upload(res);
} else {
setStatus(status);
setTimeout(function() {
polling(res.id);
}, 1000);
}
} else {
uiToast.appendTo(ta.closest('.ui-dialog'));
if (res.message) {
fm.toast({
msg: fm.i18n(res.message),
mode: 'error',
timeOut: 5000,
onHidden: function() {
uiToast.children().length === 1 && uiToast.appendTo(fm.getUI());
}
});
}
fm.toast({
msg: fm.i18n('editorConvNoApi'),
mode: 'error',
timeOut: 3000,
onHidden: function() {
uiToast.children().length === 1 && uiToast.appendTo(fm.getUI());
}
});
spnr.hide();
select.show();
}
},
setStatus = function(status) {
spnr.show().children('.elfinder-spinner-text').text(status.info);
},
polling = function(jobid) {
fm.request({
data: {
cmd: 'editor',
name: 'OnlineConvert',
method: 'api',
'args[jobid]': jobid
},
preventDefault : true
}).done(function(data) {
checkRes(data.apires);
}).fail(function(error) {
error && fm.error(error);
ta.elfinderdialog('destroy');
});
},
upload = function(res) {
var output = res.output,
id = res.id,
url = '';
spnr.hide();
if (output && output.length) {
ta.elfinderdialog('destroy');
$.each(output, function(i, o) {
if (o.uri) {
url += o.uri + '\n';
}
});
fm.upload({
target: file.phash,
files: [url],
type: 'text',
extraData: {
contentSaveId: 'OnlineConvert-' + res.id
}
});
}
},
mode = 'document',
cl, m;
select.parent().css({overflow: 'auto'}).addClass('overflow-scrolling-touch');
if (m = file.mime.match(/^(audio|image|video)/)) {
mode = m[1];
}
if (set.useTabs) {
if (idxs[mode]) {
btns.tabs('option', 'active', idxs[mode]);
}
} else {
cl = Object.keys(set.conv).length;
$.each(set.conv, function(t) {
if (t.toLowerCase() === mode) {
setOptions(t, function() {
$.each(set.conv, function(t0) {
t0.toLowerCase() !== mode && setOptions(t0);
});
});
return false;
}
cl--;
});
if (!cl) {
$.each(set.conv, function(t) {
setOptions(t);
});
}
select.parent().scrollTop(btns.children('.onlineconvert-fieldset-' + mode).offset().top);
}
},
load : function() {},
getContent : function() {},
save : function() {},
// On dialog closed
close : function(ta) {
var fm = this.fm,
dfrd = $(ta).data('dfrd');
if (dfrd && dfrd.state() === 'pending') {
dfrd.reject();
}
}
}
];
}, window.elFinder));
/**
* German Translation / Deutsche Übersetzung
* @author JPG & Mace
* @author tora60 from pragmaMx.org
* @author Timo-Linde
* @author OSWorX
* @author Maximilian Schwarz
* @author SF Webdesign
* @version 2019-12-13
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define(['elfinder'], factory);
} else if (typeof exports !== 'undefined') {
module.exports = factory(require('elfinder'));
} else {
factory(root.elFinder);
}
}(this, function(elFinder) {
elFinder.prototype.i18.de = {
translator : 'JPG & Mace <dev@flying-datacenter.de>, tora60 from pragmaMx.org, Timo-Linde <info@timo-linde.de>, OSWorX <info@osworx.net>, Maximilian Schwarz <info@deefuse.de>, SF Webdesign <webdesign@stephan-frank.de>',
language : 'Deutsch',
direction : 'ltr',
dateFormat : 'j. F Y H:i', // 3. März 2020 14:58
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
messages : {
/********************************** errors **********************************/
'error' : 'Fehler',
'errUnknown' : 'Unbekannter Fehler.',
'errUnknownCmd' : 'Unbekannter Befehl.',
'errJqui' : 'Ungültige jQuery UI-Konfiguration. Die Komponenten Selectable, Draggable und Droppable müssen inkludiert sein.',
'errNode' : 'Für elFinder muss das DOM-Element erstellt werden.',
'errURL' : 'Ungültige elFinder-Konfiguration! Die URL-Option ist nicht gesetzt.',
'errAccess' : 'Zugriff verweigert.',
'errConnect' : 'Verbindung zum Backend fehlgeschlagen.',
'errAbort' : 'Verbindung abgebrochen.',
'errTimeout' : 'Zeitüberschreitung der Verbindung.',
'errNotFound' : 'Backend nicht gefunden.',
'errResponse' : 'Ungültige Backend-Antwort.',
'errConf' : 'Ungültige Backend-Konfiguration.',
'errJSON' : 'PHP JSON-Modul nicht vorhanden.',
'errNoVolumes' : 'Keine lesbaren Laufwerke vorhanden.',
'errCmdParams' : 'Ungültige Parameter für Befehl: "$1".',
'errDataNotJSON' : 'Daten nicht im JSON-Format.',
'errDataEmpty' : 'Daten sind leer.',
'errCmdReq' : 'Backend-Anfrage benötigt Befehl.',
'errOpen' : 'Kann "$1" nicht öffnen.',
'errNotFolder' : 'Objekt ist kein Ordner.',
'errNotFile' : 'Objekt ist keine Datei.',
'errRead' : 'Kann "$1" nicht öffnen.',
'errWrite' : 'Kann nicht in "$1" schreiben.',
'errPerm' : 'Zugriff verweigert.',
'errLocked' : '"$1" ist gesperrt und kann nicht umbenannt, verschoben oder gelöscht werden.',
'errExists' : 'Die Datei "$1" existiert bereits.',
'errInvName' : 'Ungültiger Dateiname.',
'errInvDirname' : 'Ungültiger Ordnername.', // from v2.1.24 added 12.4.2017
'errFolderNotFound' : 'Ordner nicht gefunden.',
'errFileNotFound' : 'Datei nicht gefunden.',
'errTrgFolderNotFound' : 'Zielordner "$1" nicht gefunden.',
'errPopup' : 'Der Browser hat das Pop-Up-Fenster unterbunden. Um die Datei zu öffnen, Pop-Ups in den Browsereinstellungen aktivieren.',
'errMkdir' : 'Kann Ordner "$1" nicht erstellen.',
'errMkfile' : 'Kann Datei "$1" nicht erstellen.',
'errRename' : 'Kann "$1" nicht umbenennen.',
'errCopyFrom' : 'Kopieren von Dateien von "$1" nicht erlaubt.',
'errCopyTo' : 'Kopieren von Dateien nach "$1" nicht erlaubt.',
'errMkOutLink' : 'Der Link kann nicht außerhalb der Partition führen.', // from v2.1 added 03.10.2015
'errUpload' : 'Upload-Fehler.', // old name - errUploadCommon
'errUploadFile' : 'Kann "$1" nicht hochladen.', // old name - errUpload
'errUploadNoFiles' : 'Keine Dateien zum Hochladen gefunden.',
'errUploadTotalSize' : 'Gesamtgröße überschreitet die Maximalgröße.', // old name - errMaxSize
'errUploadFileSize' : 'Die Datei überschreitet die Maximalgröße.', // old name - errFileMaxSize
'errUploadMime' : 'Dateiart (mime) nicht zulässig.',
'errUploadTransfer' : '"$1" Übertragungsfehler.',
'errUploadTemp' : 'Kann temporäre Datei nicht erstellen.', // from v2.1 added 26.09.2015
'errNotReplace' : 'Das Objekt "$1" existiert bereits an dieser Stelle und kann nicht durch ein Objekt eines anderen Typs ersetzt werden.', // new
'errReplace' : 'Kann "$1" nicht ersetzen.',
'errSave' : 'Kann "$1" nicht speichern.',
'errCopy' : 'Kann "$1" nicht kopieren.',
'errMove' : 'Kann "$1" nicht verschieben.',
'errCopyInItself' : '"$1" kann sich nicht in sich selbst kopieren.',
'errRm' : 'Kann "$1" nicht entfernen.',
'errTrash' : 'Kann Objekt nicht in Mülleimer legen.', // from v2.1.24 added 30.4.2017
'errRmSrc' : 'Kann Quelldatei(en) nicht entfernen.',
'errExtract' : 'Kann "$1" nicht entpacken.',
'errArchive' : 'Archiv konnte nicht erstellt werden.',
'errArcType' : 'Archivtyp nicht untersützt.',
'errNoArchive' : 'Bei der Datei handelt es sich nicht um ein Archiv, oder die Archivart wird nicht unterstützt.',
'errCmdNoSupport' : 'Das Backend unterstützt diesen Befehl nicht.',
'errReplByChild' : 'Der Ordner "$1" kann nicht durch etwas ersetzt werden, das ihn selbst enthält.',
'errArcSymlinks' : 'Aus Sicherheitsgründen ist es verboten, ein Archiv mit symbolischen Links zu extrahieren.', // edited 24.06.2012
'errArcMaxSize' : 'Die Archivdateien übersteigen die maximal erlaubte Größe.',
'errResize' : 'Größe von "$1" kann nicht geändert werden.',
'errResizeDegree' : 'Ungültiger Rotationswert.', // added 7.3.2013
'errResizeRotate' : 'Bild konnte nicht gedreht werden.', // added 7.3.2013
'errResizeSize' : 'Ungültige Bildgröße.', // added 7.3.2013
'errResizeNoChange' : 'Bildmaße nicht geändert.', // added 7.3.2013
'errUsupportType' : 'Nicht unterstützte Dateiart.',
'errNotUTF8Content' : 'Die Datei "$1" ist nicht im UTF-8-Format und kann nicht bearbeitet werden.', // added 9.11.2011
'errNetMount' : 'Verbindung mit "$1" nicht möglich.', // added 17.04.2012
'errNetMountNoDriver' : 'Nicht unterstütztes Protokoll.', // added 17.04.2012
'errNetMountFailed' : 'Verbindung fehlgeschlagen.', // added 17.04.2012
'errNetMountHostReq' : 'Host benötigt.', // added 18.04.2012
'errSessionExpires' : 'Diese Sitzung ist aufgrund von Inaktivität abgelaufen.',
'errCreatingTempDir' : 'Erstellung des temporären Ordners nicht möglich: "$1"',
'errFtpDownloadFile' : 'Download der Datei über FTP nicht möglich: "$1"',
'errFtpUploadFile' : 'Upload der Datei zu FTP nicht möglich: "$1"',
'errFtpMkdir' : 'Erstellung des Remote-Ordners mit FTP nicht möglich: "$1"',
'errArchiveExec' : 'Fehler beim Archivieren der Dateien: "$1"',
'errExtractExec' : 'Fehler beim Extrahieren der Dateien: "$1"',
'errNetUnMount' : 'Kann nicht ausgehängt werden.', // from v2.1 added 30.04.2012
'errConvUTF8' : 'Kann nicht zu UTF-8 konvertiert werden.', // from v2.1 added 08.04.2014
'errFolderUpload' : 'Ordner kann nich hochladen werden, eventuell mit Google Chrome versuchen.', // from v2.1 added 26.6.2015
'errSearchTimeout' : 'Zeitüberschreitung während der Suche nach "$1". Suchergebnis ist unvollständig.', // from v2.1 added 12.1.2016
'errReauthRequire' : 'Erneutes Anmelden ist erforderlich.', // from v2.1.10 added 24.3.2016
'errMaxTargets' : 'Die maximale Anzahl auswählbarer Elemente ist $1', // from v2.1.17 added 17.10.2016
'errRestore' : 'Datei konnte nicht aus Mülleimer wieder hergestellt werden bzw. Ziel für Wiederherstellung nicht gefunden.', // from v2.1.24 added 3.5.2017
'errEditorNotFound' : 'Kein Editor für diesen Dateityp gefunden.', // from v2.1.25 added 23.5.2017
'errServerError' : 'Ein serverseitiger Fehler trat auf.', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Konnte Ordner "$1" nicht Leeren.', // from v2.1.25 added 22.6.2017
'moreErrors' : 'Es sind noch $1 weitere Fehler.', // from v2.1.44 added 13.12.2019
/******************************* commands names ********************************/
'cmdarchive' : 'Archiv erstellen',
'cmdback' : 'Zurück',
'cmdcopy' : 'Kopieren',
'cmdcut' : 'Ausschneiden',
'cmddownload' : 'Herunterladen',
'cmdduplicate' : 'Duplizieren',
'cmdedit' : 'Datei bearbeiten',
'cmdextract' : 'Archiv entpacken',
'cmdforward' : 'Vorwärts',
'cmdgetfile' : 'Datei auswählen',
'cmdhelp' : 'Über diese Software',
'cmdhome' : 'Startordner',
'cmdinfo' : 'Informationen',
'cmdmkdir' : 'Neuer Ordner',
'cmdmkdirin' : 'In neuen Ordner', // from v2.1.7 added 19.2.2016
'cmdmkfile' : 'Neuer Datei',
'cmdopen' : 'Öffnen',
'cmdpaste' : 'Einfügen',
'cmdquicklook' : 'Vorschau',
'cmdreload' : 'Aktualisieren',
'cmdrename' : 'Umbenennen',
'cmdrm' : 'Löschen',
'cmdtrash' : 'In den Mülleimer legen', //from v2.1.24 added 29.4.2017
'cmdrestore' : 'Wiederherstellen', //from v2.1.24 added 3.5.2017
'cmdsearch' : 'Suchen',
'cmdup' : 'In übergeordneten Ordner wechseln',
'cmdupload' : 'Datei hochladen',
'cmdview' : 'Ansehen',
'cmdresize' : 'Größe ändern & drehen',
'cmdsort' : 'Sortieren',
'cmdnetmount' : 'Verbinde mit Netzwerkspeicher', // added 18.04.2012
'cmdnetunmount': 'Abhängen', // from v2.1 added 30.04.2012
'cmdplaces' : 'Favoriten', // added 28.12.2014
'cmdchmod' : 'Berechtigung ändern', // from v2.1 added 20.6.2015
'cmdopendir' : 'Einen Ordner öffnen', // from v2.1 added 13.1.2016
'cmdcolwidth' : 'Spaltenbreite zurücksetzen', // from v2.1.13 added 12.06.2016
'cmdfullscreen': 'Vollbild', // from v2.1.15 added 03.08.2016
'cmdmove' : 'Verschieben', // from v2.1.15 added 21.08.2016
'cmdempty' : 'Ordner Leeren', // from v2.1.25 added 22.06.2017
'cmdundo' : 'Rückgängig', // from v2.1.27 added 31.07.2017
'cmdredo' : 'Wiederholen', // from v2.1.27 added 31.07.2017
'cmdpreference': 'Einstellungen', // from v2.1.27 added 03.08.2017
'cmdselectall' : 'Alle auswählen', // from v2.1.28 added 15.08.2017
'cmdselectnone': 'Keine auswählen', // from v2.1.28 added 15.08.2017
'cmdselectinvert': 'Auswahl rückgängig machen', // from v2.1.28 added 15.08.2017
'cmdopennew' : 'In neuem Fenster öffnen', // from v2.1.38 added 3.4.2018
'cmdhide' : 'Verstecken', // from v2.1.41 added 13.12.2019
/*********************************** buttons ***********************************/
'btnClose' : 'Schließen',
'btnSave' : 'Speichern',
'btnRm' : 'Entfernen',
'btnApply' : 'Anwenden',
'btnCancel' : 'Abbrechen',
'btnNo' : 'Nein',
'btnYes' : 'Ja',
'btnDiscard': 'Änderungen verwerfen',
'btnMount' : 'Verbinden', // added 18.04.2012
'btnApprove': 'Gehe zu $1 und genehmige', // from v2.1 added 26.04.2012
'btnUnmount': 'Auswerfen', // from v2.1 added 30.04.2012
'btnConv' : 'Konvertieren', // from v2.1 added 08.04.2014
'btnCwd' : 'Arbeitspfad', // from v2.1 added 22.5.2015
'btnVolume' : 'Partition', // from v2.1 added 22.5.2015
'btnAll' : 'Alle', // from v2.1 added 22.5.2015
'btnMime' : 'MIME-Typ', // from v2.1 added 22.5.2015
'btnFileName':'Dateiname', // from v2.1 added 22.5.2015
'btnSaveClose': 'Speichern & Schließen', // from v2.1 added 12.6.2015
'btnBackup' : 'Sicherung', // fromv2.1 added 28.11.2015
'btnRename' : 'Umbenennen', // from v2.1.24 added 6.4.2017
'btnRenameAll' : 'Alle Umbenennen', // from v2.1.24 added 6.4.2017
'btnPrevious' : 'Zurück ($1/$2)', // from v2.1.24 added 11.5.2017
'btnNext' : 'Weiter ($1/$2)', // from v2.1.24 added 11.5.2017
'btnSaveAs' : 'Speichern als', // from v2.1.25 added 24.5.2017
/******************************** notifications ********************************/
'ntfopen' : 'Öffne Ordner',
'ntffile' : 'Öffne Datei',
'ntfreload' : 'Ordnerinhalt neu',
'ntfmkdir' : 'Erstelle Ordner',
'ntfmkfile' : 'Erstelle Dateien',
'ntfrm' : 'Lösche Dateien',
'ntfcopy' : 'Kopiere Dateien',
'ntfmove' : 'Verschiebe Dateien',
'ntfprepare' : 'Kopiervorgang initialisieren',
'ntfrename' : 'Benenne Dateien um',
'ntfupload' : 'Dateien hochladen',
'ntfdownload' : 'Dateien herunterladen',
'ntfsave' : 'Speichere Datei',
'ntfarchive' : 'Erstelle Archiv',
'ntfextract' : 'Entpacke Dateien',
'ntfsearch' : 'Suche',
'ntfresize' : 'Bildgrößen ändern',
'ntfsmth' : 'Bin beschäftigt ..',
'ntfloadimg' : 'Lade Bild ..',
'ntfnetmount' : 'Mit Netzwerkspeicher verbinden', // added 18.04.2012
'ntfnetunmount': 'Netzwerkspeicher auswerfen', // from v2.1 added 30.04.2012
'ntfdim' : 'Bildgröße erfassen', // added 20.05.2013
'ntfreaddir' : 'Lese Ordnerinformationen', // from v2.1 added 01.07.2013
'ntfurl' : 'Hole URL von Link', // from v2.1 added 11.03.2014
'ntfchmod' : 'Ändere Dateiberechtigungen', // from v2.1 added 20.6.2015
'ntfpreupload': 'Upload-Dateinamen überprüfen', // from v2.1 added 31.11.2015
'ntfzipdl' : 'Erstelle Datei zum Download', // from v2.1.7 added 23.1.2016
'ntfparents' : 'Beziehe Pfad Informationen', // from v2.1.17 added 2.11.2016
'ntfchunkmerge': 'Upload läuft', // from v2.1.17 added 2.11.2016
'ntftrash' : 'Bewege in den Mülleimer', // from v2.1.24 added 2.5.2017
'ntfrestore' : 'Wiederherstellung aus Mülleimer', // from v2.1.24 added 3.5.2017
'ntfchkdir' : 'Prüfe Zielordner', // from v2.1.24 added 3.5.2017
'ntfundo' : 'Vorherige Operation rückgängig machen', // from v2.1.27 added 31.07.2017
'ntfredo' : 'Wiederherstellen', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : 'Überprüfe Inhalte', // from v2.1.41 added 13.12.2019
/*********************************** volumes *********************************/
'volume_Trash' : 'Mülleimer', //from v2.1.24 added 29.4.2017
/************************************ dates **********************************/
'dateUnknown' : 'unbekannt',
'Today' : 'Heute',
'Yesterday' : 'Gestern',
'msJan' : 'Jan',
'msFeb' : 'Feb',
'msMar' : 'Mär',
'msApr' : 'Apr',
'msMay' : 'Mai',
'msJun' : 'Jun',
'msJul' : 'Jul',
'msAug' : 'Aug',
'msSep' : 'Sep',
'msOct' : 'Okt',
'msNov' : 'Nov',
'msDec' : 'Dez',
'January' : 'Januar',
'February' : 'Februar',
'March' : 'März',
'April' : 'April',
'May' : 'Mai',
'June' : 'Juni',
'July' : 'Juli',
'August' : 'August',
'September' : 'September',
'October' : 'Oktober',
'November' : 'November',
'December' : 'Dezember',
'Sunday' : 'Sonntag',
'Monday' : 'Montag',
'Tuesday' : 'Dienstag',
'Wednesday' : 'Mittwoch',
'Thursday' : 'Donnerstag',
'Friday' : 'Freitag',
'Saturday' : 'Samstag',
'Sun' : 'So',
'Mon' : 'Mo',
'Tue' : 'Di',
'Wed' : 'Mi',
'Thu' : 'Do',
'Fri' : 'Fr',
'Sat' : 'Sa',
/******************************** sort variants ********************************/
'sortname' : 'nach Name',
'sortkind' : 'nach Art',
'sortsize' : 'nach Größe',
'sortdate' : 'nach Datum',
'sortFoldersFirst' : 'Ordner zuerst',
'sortperm' : 'nach Berechtigung', // from v2.1.13 added 13.06.2016
'sortmode' : 'nach Modus', // from v2.1.13 added 13.06.2016
'sortowner' : 'nach Besitzer', // from v2.1.13 added 13.06.2016
'sortgroup' : 'nach Gruppe', // from v2.1.13 added 13.06.2016
'sortAlsoTreeview' : 'auch Baumansicht', // from v2.1.15 added 01.08.2016
/********************************** new items **********************************/
'untitled file.txt' : 'Neues Textdokument (.txt)', // added 10.11.2015
'untitled folder' : 'Neuer Ordner', // added 10.11.2015
'Archive' : 'Neues Archiv', // from v2.1 added 10.11.2015
'untitled file' : 'Neue Datei $1', // from v2.1.41 added 13.12.2019
'extentionfile' : '$1: Datei', // from v2.1.41 added 13.12.2019
'extentiontype' : '$1: $2', // from v2.1.43 added 13.12.2018
/********************************** messages **********************************/
'confirmReq' : 'Bestätigung benötigt',
'confirmRm' : 'Sollen die Dateien gelöscht werden?
Vorgang ist endgültig!',
'confirmRepl' : 'Datei ersetzen?',
'confirmRest' : 'Vorhandenes Element durch das Element aus Mülleimer ersetzen?', // fromv2.1.24 added 5.5.2017
'confirmConvUTF8' : 'Nicht UTF-8 kodiert
Zu UTF-8 konvertieren?
Inhalte werden zu UTF-8 konvertiert bei Speicherung.', // from v2.1 added 08.04.2014
'confirmNonUTF8' : 'Die Zeichencodierung dieser Datei konnte nicht erkannt werden. Es muss vorübergehend in UTF-8 zur Bearbeitung konvertiert werden.
Bitte eine Zeichenkodierung dieser Datei auswählen.', // from v2.1.19 added 28.11.2016
'confirmNotSave' : 'Die Datei wurde geändert.
Änderungen gehen verloren, wenn nicht gespeichert wird.', // from v2.1 added 15.7.2015
'confirmTrash' : 'Sicher diese Elemente in den Mülleimer verschieben?', // from v2.1.24 added 29.4.2017
'confirmMove' : 'Sicher alle Elemente nach "$1" verschieben?', // from v2.1.50 added 13.12.2019
'apllyAll' : 'Alles bestätigen',
'name' : 'Name',
'size' : 'Größe',
'perms' : 'Berechtigungen',
'modify' : 'Geändert',
'kind' : 'Typ',
'read' : 'Lesen',
'write' : 'Schreiben',
'noaccess' : 'Kein Zugriff',
'and' : 'und',
'unknown' : 'unbekannt',
'selectall' : 'Alle Dateien auswählen',
'selectfiles' : 'Dateien auswählen',
'selectffile' : 'Erste Datei auswählen',
'selectlfile' : 'Letzte Datei auswählen',
'viewlist' : 'Spaltenansicht',
'viewicons' : 'Symbolansicht',
'viewSmall' : 'Kleine Icons', // from v2.1.39 added 13.12.2019
'viewMedium' : 'Medium Icons', // from v2.1.39 added 13.12.2019
'viewLarge' : 'Große Icons', // from v2.1.39 added 13.12.2019
'viewExtraLarge' : 'Extragroße Icons', // from v2.1.39 added 13.12.2019
'places' : 'Favoriten',
'calc' : 'Berechne',
'path' : 'Pfad',
'aliasfor' : 'Verknüpfung zu',
'locked' : 'Gesperrt',
'dim' : 'Bildgröße',
'files' : 'Dateien',
'folders' : 'Ordner',
'items' : 'Objekte',
'yes' : 'ja',
'no' : 'nein',
'link' : 'Link',
'searcresult' : 'Suchergebnisse',
'selected' : 'Objekte ausgewählt',
'about' : 'Über',
'shortcuts' : 'Tastenkombinationen',
'help' : 'Hilfe',
'webfm' : 'Web-Dateiverwaltung',
'ver' : 'Version',
'protocolver' : 'Protokoll-Version',
'homepage' : 'Projekt-Webseite',
'docs' : 'Dokumentation',
'github' : 'Forke uns auf Github',
'twitter' : 'Folge uns auf twitter',
'facebook' : 'Begleite uns auf facebook',
'team' : 'Team',
'chiefdev' : 'Chefentwickler',
'developer' : 'Entwickler',
'contributor' : 'Unterstützer',
'maintainer' : 'Maintainer',
'translator' : 'Übersetzer',
'icons' : 'Icons',
'dontforget' : 'und vergiss nicht .. morgen ist auch noch ein Tag ..',
'shortcutsof' : 'Tastenkombinationen deaktiviert',
'dropFiles' : 'Dateien hier ablegen',
'or' : 'oder',
'selectForUpload' : 'Dateien zum Upload auswählen',
'moveFiles' : 'Dateien verschieben',
'copyFiles' : 'Dateien kopieren',
'restoreFiles' : 'Elemente wiederherstellen', // from v2.1.24 added 5.5.2017
'rmFromPlaces' : 'Lösche von Favoriten',
'aspectRatio' : 'Seitenverhältnis',
'scale' : 'Maßstab',
'width' : 'Breite',
'height' : 'Höhe',
'resize' : 'Größe ändern',
'crop' : 'Zuschneiden',
'rotate' : 'Drehen',
'rotate-cw' : 'Drehe 90° im Uhrzeigersinn',
'rotate-ccw' : 'Drehe 90° gegen Uhrzeigersinn',
'degree' : '°',
'netMountDialogTitle' : 'verbinde Netzwerkspeicher', // added 18.04.2012
'protocol' : 'Protokoll', // added 18.04.2012
'host' : 'Host', // added 18.04.2012
'port' : 'Port', // added 18.04.2012
'user' : 'Benutzer', // added 18.04.2012
'pass' : 'Passwort', // added 18.04.2012
'confirmUnmount' : 'Soll "$1" ausgehängt werden', // from v2.1 added 30.04.2012
'dropFilesBrowser': 'Dateien in den Browser ziehen', // from v2.1 added 30.05.2012
'dropPasteFiles' : 'Dateien hier loslassen', // from v2.1 added 07.04.2014
'encoding' : 'Kodierung', // from v2.1 added 19.12.2014
'locale' : 'Lokal', // from v2.1 added 19.12.2014
'searchTarget' : 'Ziel: $1', // from v2.1 added 22.5.2015
'searchMime' : 'Suche nach MIME-Typ', // from v2.1 added 22.5.2015
'owner' : 'Besitzer', // from v2.1 added 20.6.2015
'group' : 'Gruppe', // from v2.1 added 20.6.2015
'other' : 'Andere', // from v2.1 added 20.6.2015
'execute' : 'Ausführen', // from v2.1 added 20.6.2015
'perm' : 'Berechtigung', // from v2.1 added 20.6.2015
'mode' : 'Modus', // from v2.1 added 20.6.2015
'emptyFolder' : 'Der Ordner ist leer', // from v2.1.6 added 30.12.2015
'emptyFolderDrop' : 'Der Ordner ist leer\\A Elemente durch Ziehen hinzufügen', // from v2.1.6 added 30.12.2015
'emptyFolderLTap' : 'Der Ordner ist leer\\A Elemente durch langes Tippen hinzufügen', // from v2.1.6 added 30.12.2015
'quality' : 'Qualität', // from v2.1.6 added 5.1.2016
'autoSync' : 'Automatische Synchronisation', // from v2.1.6 added 10.1.2016
'moveUp' : 'Nach oben bewegen', // from v2.1.6 added 18.1.2016
'getLink' : 'URL-Link holen', // from v2.1.7 added 9.2.2016
'selectedItems' : 'Ausgewählte Objekte ($1)', // from v2.1.7 added 2.19.2016
'folderId' : 'Ordner-ID', // from v2.1.10 added 3.25.2016
'offlineAccess' : 'Offline-Zugriff erlauben', // from v2.1.10 added 3.25.2016
'reAuth' : 'Erneut anmelden', // from v2.1.10 added 3.25.2016
'nowLoading' : 'Wird geladen...', // from v2.1.12 added 4.26.2016
'openMulti' : 'mehrere Dateien öffnen', // from v2.1.12 added 5.14.2016
'openMultiConfirm': 'Es wird versucht die $1 Dateien zu öffnen .. sicher im Browser öffnen?', // from v2.1.12 added 5.14.2016
'emptySearch' : 'Kein Suchergebnis', // from v2.1.12 added 5.16.2016
'editingFile' : 'Datei wird bearbeitet.', // from v2.1.13 added 6.3.2016
'hasSelected' : '$1 Objekt(e) ausgewählt.', // from v2.1.13 added 6.3.2016
'hasClipboard' : '$1 Objekte im Clipboard.', // from v2.1.13 added 6.3.2016
'incSearchOnly' : 'Inkrementelle Suche bezieht sich nur auf die aktuelle Ansicht.', // from v2.1.13 added 6.30.2016
'reinstate' : 'Wiederherstellen', // from v2.1.15 added 3.8.2016
'complete' : '$1 abgeschlossen', // from v2.1.15 added 21.8.2016
'contextmenu' : 'Kontextmenü', // from v2.1.15 added 9.9.2016
'pageTurning' : 'Seite umblättern', // from v2.1.15 added 10.9.2016
'volumeRoots' : 'Volume-Rootverzeichnisse', // from v2.1.16 added 16.9.2016
'reset' : 'Neustart', // from v2.1.16 added 1.10.2016
'bgcolor' : 'Hintergrund Farbe', // from v2.1.16 added 1.10.2016
'colorPicker' : 'Farbauswahl', // from v2.1.16 added 1.10.2016
'8pxgrid' : '8px Raster', // from v2.1.16 added 4.10.2016
'enabled' : 'Ein', // from v2.1.16 added 4.10.2016
'disabled' : 'Aus', // from v2.1.16 added 4.10.2016
'emptyIncSearch' : 'Keine Ergebnisse in der aktuellen Anzeige', // from v2.1.16 added 5.10.2016
'emptyLetSearch' : 'Die Ergebnisse der ersten Buchstabensuche sind in der aktuellen Ansicht leer.', // from v2.1.23 added 24.3.2017
'textLabel' : 'Text Bezeichnung', // from v2.1.17 added 13.10.2016
'minsLeft' : '$1 Minuten übrig', // from v2.1.17 added 13.11.2016
'openAsEncoding' : 'Wiedereröffnen mit ausgewählter Codierung', // from v2.1.19 added 2.12.2016
'saveAsEncoding' : 'Speichern mit der gewählten Kodierung', // from v2.1.19 added 2.12.2016
'selectFolder' : 'Verzeichnis auswählen', // from v2.1.20 added 13.12.2016
'firstLetterSearch': 'Erster Buchstabe suche', // from v2.1.23 added 24.3.2017
'presets' : 'Voreinstellungen', // from v2.1.25 added 26.5.2017
'tooManyToTrash' : 'Zu viele Elemente auf einmal für den Mülleimer.', // from v2.1.25 added 9.6.2017
'TextArea' : 'Textbereich', // from v2.1.25 added 14.6.2017
'folderToEmpty' : 'Leere Ordner "$1".', // from v2.1.25 added 22.6.2017
'filderIsEmpty' : 'Es befinden sich keine Elemente im Ordner "$1".', // from v2.1.25 added 22.6.2017
'preference' : 'Einstellungen', // from v2.1.26 added 28.6.2017
'language' : 'Spracheinstellungen', // from v2.1.26 added 28.6.2017
'clearBrowserData': 'Initialisiere die Einstellungen, welche in diesem Browser gespeichert sind', // from v2.1.26 added 28.6.2017
'toolbarPref' : 'Toolbareinstellung', // from v2.1.27 added 2.8.2017
'charsLeft' : '... $1 Zeichen übrig', // from v2.1.29 added 30.8.2017
'sum' : 'Summe', // from v2.1.29 added 28.9.2017
'roughFileSize' : 'Ungefähre Dateigröße', // from v2.1.30 added 2.11.2017
'autoFocusDialog' : 'Fokussierung auf das Element Dialog mit Mouseover', // from v2.1.30 added 2.11.2017
'select' : 'Auswählen', // from v2.1.30 added 23.11.2017
'selectAction' : 'Aktion bei der Auswahl der Datei', // from v2.1.30 added 23.11.2017
'useStoredEditor' : 'Öffnen mit dem zuletzt verwendeten Editor', // from v2.1.30 added 23.11.2017
'selectinvert' : 'Auswahl umkehren', // from v2.1.30 added 25.11.2017
'renameMultiple' : 'Sicher $1 ausgewählte Elemente in $2 umbenennen?
Rückgängig nicht möglich!', // from v2.1.31 added 4.12.2017
'batchRename' : 'Stapelumbenennung', // from v2.1.31 added 8.12.2017
'plusNumber' : '+ Nummer', // from v2.1.31 added 8.12.2017
'asPrefix' : 'Vorzeichen hinzufügen', // from v2.1.31 added 8.12.2017
'asSuffix' : 'Nachzeichen hinzufügen', // from v2.1.31 added 8.12.2017
'changeExtention' : 'Erweiterung ändern', // from v2.1.31 added 8.12.2017
'columnPref' : 'Spalteneinstellungen (Listenansicht)', // from v2.1.32 added 6.2.2018
'reflectOnImmediate' : 'Alle Änderungen werden sofort im Archiv angewendet.', // from v2.1.33 added 2.3.2018
'reflectOnUnmount' : 'Alle Änderungen werden nicht angewendet bis dieses Volume entfernt wird.', // from v2.1.33 added 2.3.2018
'unmountChildren' : 'Die folgenden Datenträger, die auf diesem Datenträger eingehängt sind, werden ebenfalls ausgehängt. Sicher dass alle aushängt werden sollen?', // from v2.1.33 added 5.3.2018
'selectionInfo' : 'Auswahl Info', // from v2.1.33 added 7.3.2018
'hashChecker' : 'Datei-Hash-Algorithmen', // from v2.1.33 added 10.3.2018
'infoItems' : 'Info-Elemente (Auswahl-Info-Panel)', // from v2.1.38 added 28.3.2018
'pressAgainToExit': 'Drücken Sie erneut, um zu beenden.', // from v2.1.38 added 1.4.2018
'toolbar' : 'Symbolleiste', // from v2.1.38 added 4.4.2018
'workspace' : 'Arbeitsplatz', // from v2.1.38 added 4.4.2018
'dialog' : 'Dialog', // from v2.1.38 added 4.4.2018
'all' : 'Alle', // from v2.1.38 added 4.4.2018
'iconSize' : 'Icongröße (Symbolansicht)', // form v2.1.39 added 7.5.2018
'editorMaximized' : 'Öffne Editorfenster in voller Größe', // from v2.1.40 added 30.6.2018
'editorConvNoApi' : 'Aktuell keine API zur Bearbeitung verfügbar, bitte auf Webseite bearbeiten', //from v2.1.40 added 13.12.2019
'editorConvNeedUpload' : 'Um zu speichern nach der Bearbeitung Element entweder mit URL hochladen oder mit herunter geladener Datei', // from v2.1.40 added 13.12.2019
'convertOn' : 'Bearbeiten auf Seite $1', // from v2.1.40 added 13.12.2019
'integrations' : 'Integrationen', // from v2.1.40 added 13.12.2019
'integrationWith' : 'Diese Software hat folgende externe Dienste integriert. Vor Anwendung bitte die jeweiligen Nutzungsbedingungen usw. beachten', // from v2.1.40 added 13.12.2019
'showHidden' : 'Zeige versteckte Elemente', // from v2.1.41 added 13.12.2019
'hideHidden' : 'Verberge versteckte Elemente', // from v2.1.41 added 13.12.2019
'toggleHidden' : 'Zeige/Verberge versteckte Elemente', // from v2.1.41 added 13.12.2019
'makefileTypes' : 'Dateiarten bei "Neue Datei" aktivieren', // from v2.1.41 added 13.12.2019
'typeOfTextfile' : 'Art der Textdatei', // from v2.1.41 added 13.12.2019
'add' : 'Neu', // from v2.1.41 added 13.12.2019
'theme' : 'Thema', // from v2.1.43 added 13.12.2019
'default' : 'Standard', // from v2.1.43 added 13.12.2019
'description' : 'Beschreibung', // from v2.1.43 added 13.12.2019
'website' : 'Webseite', // from v2.1.43 added 13.12.2019
'author' : 'Autor', // from v2.1.43 added 13.12.2019
'email' : 'Email', // from v2.1.43 added 13.12.2019
'license' : 'Lizenz', // from v2.1.43 added 13.12.2019
'exportToSave' : 'Dieses Element kann nicht gespeichert werden. Um Änderungen nicht zu verlieren, muss es auf den lokalen PC exportiert werden', // from v2.1.44 added 13.12.2019
'dblclickToSelect': 'Doppelt auf Datei klicken um auszuwählen', // from v2.1.47 added 13.12.2019
'useFullscreen' : 'Gesamter Bildschirm', // from v2.1.47 added 13.12.2019
/********************************** mimetypes **********************************/
'kindUnknown' : 'Unbekannt',
'kindRoot' : 'Stammverzeichnis', // from v2.1.16 added 16.10.2016
'kindFolder' : 'Ordner',
'kindSelects' : 'Auswahlkriterien', // from v2.1.29 added 29.8.2017
'kindAlias' : 'Verknüpfung',
'kindAliasBroken' : 'Defekte Verknüpfung',
// applications
'kindApp' : 'Programm',
'kindPostscript' : 'Postscript-Dokument',
'kindMsOffice' : 'MS Office-Dokument',
'kindMsWord' : 'MS Word-Dokument',
'kindMsExcel' : 'MS Excel-Dokument',
'kindMsPP' : 'MS Powerpoint-Präsentation',
'kindOO' : 'Open Office-Dokument',
'kindAppFlash' : 'Flash',
'kindPDF' : 'Portables Dokumentenformat (PDF)',
'kindTorrent' : 'Bittorrent-Datei',
'kind7z' : '7z-Archiv',
'kindTAR' : 'TAR-Archiv',
'kindGZIP' : 'GZIP-Archiv',
'kindBZIP' : 'BZIP-Archiv',
'kindXZ' : 'XZ-Archiv',
'kindZIP' : 'ZIP-Archiv',
'kindRAR' : 'RAR-Archiv',
'kindJAR' : 'Java JAR-Datei',
'kindTTF' : 'True Type-Schrift',
'kindOTF' : 'Open Type-Schrift',
'kindRPM' : 'RPM-Paket',
// fonts
'kindFont' : 'Schriftart',
'kindSFNT' : 'SFNT-Schrift',
'kindEOT' : 'Embedded-Open-Type-Schrift',
'kindWOFF' : 'Web-Open-Font-Format-Schrift',
'kindWOFF2' : 'Web-Open-Font-Format-2-Schrift',
// texts
'kindText' : 'Text-Dokument',
'kindTextPlain' : 'Text-Dokument',
'kindPHP' : 'PHP-Quelltext',
'kindCSS' : 'CSS Stilvorlage',
'kindHTML' : 'HTML-Dokument',
'kindJS' : 'Javascript-Quelltext',
'kindRTF' : 'Formatierte Textdatei',
'kindC' : 'C-Quelltext',
'kindCHeader' : 'C Header-Quelltext',
'kindCPP' : 'C++ Quelltext',
'kindCPPHeader' : 'C++ Header-Quelltext',
'kindShell' : 'Unix-Shell-Skript',
'kindPython' : 'Python-Quelltext',
'kindJava' : 'Java-Quelltext',
'kindRuby' : 'Ruby-Quelltext',
'kindPerl' : 'Perl Script',
'kindSQL' : 'SQL-Quelltext',
'kindXML' : 'XML-Dokument',
'kindAWK' : 'AWK-Quelltext',
'kindCSV' : 'Kommagetrennte Daten',
'kindDOCBOOK' : 'Docbook XML-Dokument',
'kindMarkdown' : 'Markdown-Text', // added 20.7.2015
// images
'kindImage' : 'Bild',
'kindBMP' : 'Bitmap-Bild',
'kindJPEG' : 'JPEG-Bild',
'kindGIF' : 'GIF-Bild',
'kindPNG' : 'PNG-Bild',
'kindTIFF' : 'TIFF-Bild',
'kindTGA' : 'TGA-Bild',
'kindPSD' : 'Adobe Photoshop-Dokument',
'kindXBITMAP' : 'X Bitmap-Bild',
'kindPXM' : 'Pixelmator-Bild',
// media
'kindAudio' : 'Audiodatei',
'kindAudioMPEG' : 'MPEG Audio',
'kindAudioMPEG4' : 'MPEG-4 Audio',
'kindAudioMIDI' : 'MIDI Audio',
'kindAudioOGG' : 'Ogg Vorbis Audio',
'kindAudioWAV' : 'WAV Audio',
'AudioPlaylist' : 'MP3-Playlist',
'kindVideo' : 'Videodatei',
'kindVideoDV' : 'DV Film',
'kindVideoMPEG' : 'MPEG Film',
'kindVideoMPEG4' : 'MPEG4 Film',
'kindVideoAVI' : 'AVI Film',
'kindVideoMOV' : 'QuickTime Film',
'kindVideoWM' : 'Windows Media Film',
'kindVideoFlash' : 'Flash Film',
'kindVideoMKV' : 'Matroska Film',
'kindVideoOGG' : 'Ogg Film'
}
};
}));
/**
* Greek translation
* @author yawd , Romanos
* @version 2014-12-19
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define(['elfinder'], factory);
} else if (typeof exports !== 'undefined') {
module.exports = factory(require('elfinder'));
} else {
factory(root.elFinder);
}
}(this, function(elFinder) {
elFinder.prototype.i18.el = {
translator : 'yawd <ingo@yawd.eu>',
language : 'Ελληνικά',
direction : 'ltr',
dateFormat : 'd.m.Y H:i',
fancyDateFormat : '$1 H:i',
messages : {
/********************************** errors **********************************/
'error' : 'Πρόβλημα',
'errUnknown' : 'Άγνωστο πρόβλημα.',
'errUnknownCmd' : 'Άγνωστη εντολή.',
'errJqui' : 'Μη έγκυρη ρύθμιση του jQuery UI. Τα components "selectable", "draggable" και "droppable" πρέπει να περιληφούν.',
'errNode' : 'το elFinder χρειάζεται να έχει δημιουργηθεί το DOM Element.',
'errURL' : 'Μη έγκυρες ρυθμίσεις για το elFinder! η επιλογή URL δεν έχει οριστεί.',
'errAccess' : 'Απαγορεύεται η πρόσβαση.',
'errConnect' : 'Δεν ήταν δυνατή η σύνδεση με το backend.',
'errAbort' : 'Η σύνδεση εγκαταλείφθηκε.',
'errTimeout' : 'Η σύνδεση έληξε.',
'errNotFound' : 'Δε βρέθηκε το backend.',
'errResponse' : 'Μή έγκυρη απάντηση από το backend.',
'errConf' : 'Μη έγκυρες ρυθμίσεις για το backend.',
'errJSON' : 'Το PHP JSON module δεν είναι εγκατεστημένο.',
'errNoVolumes' : 'Δεν βρέθηκαν αναγνώσιμα volumes.',
'errCmdParams' : 'Μη έγκυρες παράμετροι για την εντολή "$1".',
'errDataNotJSON' : 'Τα δεδομένα δεν είναι JSON.',
'errDataEmpty' : 'Τα δεδομένα είναι άδεια.',
'errCmdReq' : 'Το Backend request χρειάζεται όνομα εντολής.',
'errOpen' : 'Δεν ήταν δυνατό να ανοίξει το "$1".',
'errNotFolder' : 'Το αντικείμενο δεν είναι φάκελος.',
'errNotFile' : 'Το αντικείμενο δεν είναι αρχείο.',
'errRead' : 'Δεν ήταν δυνατόν να διαβαστεί το "$1".',
'errWrite' : 'Δεν ήταν δυνατή η εγγραφή στο "$1".',
'errPerm' : 'Απαγορεύεται η πρόσβαση.',
'errLocked' : '"$1" είναι κλειδωμένο και δεν μπορεί να μετονομαστεί, μετακινηθεί ή διαγραφεί.',
'errExists' : 'Το αρχείο με όνομα "$1" υπάρχει ήδη.',
'errInvName' : 'Μη έγκυρο όνομα αρχείου.',
'errFolderNotFound' : 'Ο φάκελος δε βρέθηκε.',
'errFileNotFound' : 'Το αρχείο δε βρέθηκε.',
'errTrgFolderNotFound' : 'Ο φάκελος "$1" δε βρέθηκε.',
'errPopup' : 'Το πρόγραμμα πλήγησης εμπόδισε το άνοιγμα αναδυόμενου παραθύρου. Για ανοίξετε το αρχείο ενεργοποιήστε το στις επιλογές του περιηγητή.',
'errMkdir' : 'Η δυμιουργία του φακέλου "$1" δεν ήταν δυνατή.',
'errMkfile' : 'Η δημιουργία του αρχείου "$1" δεν ήταν δυνατή.',
'errRename' : 'Η μετονομασία του αρχείου "$1" δεν ήταν δυνατή.',
'errCopyFrom' : 'Δεν επιτρέπεται η αντιγραφή αρχείων από το volume "$1".',
'errCopyTo' : 'Δεν επιτρέπεται η αντιγραφή αρχείων στο volume "$1".',
'errUpload' : 'Πρόβλημα κατά το upload.',
'errUploadFile' : 'Το αρχείο "$1" δεν μπόρεσε να γίνει upload.',
'errUploadNoFiles' : 'Δεν βρέθηκαν αρχεία για upload.',
'errUploadTotalSize' : 'Τα δεδομένα υπερβαίνουν το επιτρεπόμενο μέγιστο μέγεθος δεδομένων.',
'errUploadFileSize' : 'Το αρχείο υπερβαίνει το επιτρεπόμενο μέγιστο μέγεθος.',
'errUploadMime' : 'Ο τύπος αρχείου δεν επιτρέπεται.',
'errUploadTransfer' : 'Πρόβλημα μεταφοράς για το "$1".',
'errNotReplace' : 'Object "$1" already exists at this location and can not be replaced by object with another type.',
'errReplace' : 'Unable to replace "$1".',
'errSave' : 'Το "$1" δεν ήταν δυνατόν να αποθηκευτεί.',
'errCopy' : 'Δεν ήταν δυνατή η αντιγραφή του "$1".',
'errMove' : 'Δεν ήταν δυνατή η μετακίνηση του "$1".',
'errCopyInItself' : 'Δεν είναι δυνατή η αντιγραφή του "$1" στον εαυτό του.',
'errRm' : 'Δεν ήταν δυνατή η αφαίρεση του "$1".',
'errRmSrc' : 'Unable remove source file(s).',
'errExtract' : 'Δεν ήταν δυνατή η ανάγνωση των αρχείων από "$1".',
'errArchive' : 'Δεν ήταν δυνατή η δημιουργία του αρχείου.',
'errArcType' : 'Ο τύπος αρχείου δεν υποστηρίζεται.',
'errNoArchive' : 'Το αρχείο δεν είναι έγκυρο ή δεν υποστηρίζεται ο τύπος του.',
'errCmdNoSupport' : 'Το backend δεν υποστηρίζει αυτή την εντολή.',
'errReplByChild' : 'Ο φάκελος “$1” δεν μπορεί να αντικατασταθεί από οποιοδήποτε αρχείο περιέχεται σε αυτόν.',
'errArcSymlinks' : 'Για λόγους ασφαλείας δεν είναι δυνατόν να διαβαστούν αρχεία που περιέχουν symlinks orη αρχεία με μη επιτρεπτά ονόματα.', // edited 24.06.2012
'errArcMaxSize' : 'Το μέγεθος του αρχείου υπερβαίνει το μέγιστο επιτρεπτό όριο.',
'errResize' : 'Δεν ήταν δυνατή η αλλαγή μεγέθους του "$1".',
'errResizeDegree' : 'Invalid rotate degree.',
'errResizeRotate' : 'Unable to rotate image.',
'errResizeSize' : 'Invalid image size.',
'errResizeNoChange' : 'Image size not changed.',
'errUsupportType' : 'Ο τύπος αρχείου δεν υποστηρίζεται.',
'errNotUTF8Content' : 'Το αρχείο "$1" δεν είναι UTF-8 και δεν μπορεί να επεξεργασθεί.', // added 9.11.2011
'errNetMount' : 'Δεν ήταν δυνατή η φόρτωση του "$1".', // added 17.04.2012
'errNetMountNoDriver' : 'Μη υποστηριζόμενο πρωτόκολο.', // added 17.04.2012
'errNetMountFailed' : 'Η φόρτωση απέτυχε.', // added 17.04.2012
'errNetMountHostReq' : 'Απαιτείται host εξυπηρετητής.', // added 18.04.2012
'errSessionExpires' : 'Your session has expired due to inactivity.',
'errCreatingTempDir' : 'Unable to create temporary directory: "$1"',
'errFtpDownloadFile' : 'Unable to download file from FTP: "$1"',
'errFtpUploadFile' : 'Unable to upload file to FTP: "$1"',
'errFtpMkdir' : 'Unable to create remote directory on FTP: "$1"',
'errArchiveExec' : 'Error while archiving files: "$1"',
'errExtractExec' : 'Error while extracting files: "$1"',
/******************************* commands names ********************************/
'cmdarchive' : 'Δημιουργία archive αρχείου',
'cmdback' : 'Πίσω',
'cmdcopy' : 'Αντιγραφή',
'cmdcut' : 'Αφαίρεση',
'cmddownload' : 'Μεταφόρτωση',
'cmdduplicate' : 'Αντίγραφο',
'cmdedit' : 'Επεξεργασία αρχείου',
'cmdextract' : 'Εξαγωγή αρχείων από archive',
'cmdforward' : 'Προώθηση',
'cmdgetfile' : 'Επιλέξτε αρχεία',
'cmdhelp' : 'Σχετικά με αυτό το λογισμικό',
'cmdhome' : 'Home',
'cmdinfo' : 'Πληροφορίες',
'cmdmkdir' : 'Νέος φάκελος',
'cmdmkfile' : 'Νέος αρχείο',
'cmdopen' : 'Άνοιγμα',
'cmdpaste' : 'Επικόλληση',
'cmdquicklook' : 'Προεπισκόπηση',
'cmdreload' : 'Ανανέωση',
'cmdrename' : 'Μετονομασία',
'cmdrm' : 'Διαγραφή',
'cmdsearch' : 'Έυρεση αρχείων',
'cmdup' : 'Μετάβαση στο γονικό φάκελο',
'cmdupload' : 'Ανέβασμα αρχείων',
'cmdview' : 'Προβολή',
'cmdresize' : 'Αλλαγή μεγέθους εικόνας',
'cmdsort' : 'Ταξινόμηση',
'cmdnetmount' : 'Mount network volume',
/*********************************** buttons ***********************************/
'btnClose' : 'Κλείσιμο',
'btnSave' : 'Αποθήκευση',
'btnRm' : 'Αφαίρεση',
'btnApply' : 'Εφαρμογή',
'btnCancel' : 'Ακύρωση',
'btnNo' : 'Όχι',
'btnYes' : 'Ναι',
'btnDiscard': 'Discard changes',
'btnMount' : 'Mount',
/******************************** notifications ********************************/
'ntfopen' : 'Άνοιγμα φακέλου',
'ntffile' : 'Άνοιγμα αρχείου',
'ntfreload' : 'Ανανέωση περιεχομένων φακέλου',
'ntfmkdir' : 'Δημιουργία φακέλου',
'ntfmkfile' : 'Δημιουργία αρχείων',
'ntfrm' : 'Διαγραφή αρχείων',
'ntfcopy' : 'Αντιγραφή αρχείων',
'ntfmove' : 'Μετακίνηση αρχείων',
'ntfprepare' : 'Προετοιμασία αντιγραφής αρχείων',
'ntfrename' : 'Μετονομασία αρχείων',
'ntfupload' : 'Ανέβασμα αρχείων',
'ntfdownload' : 'Μεταφόρτωση αρχείων',
'ntfsave' : 'Αποθήκευση αρχείων',
'ntfarchive' : 'Δημιουργία αρχείου',
'ntfextract' : 'Εξαγωγή αρχείων από το archive',
'ntfsearch' : 'Αναζήτηση αρχείων',
'ntfresize' : 'Resizing images',
'ntfsmth' : 'Σύστημα απασχολημένο>_<',
'ntfloadimg' : 'Φόρτωση εικόνας',
'ntfnetmount' : 'Φόρτωση δικτυακού δίσκου', // added 18.04.2012
'ntfdim' : 'Acquiring image dimension',
/************************************ dates **********************************/
'dateUnknown' : 'άγνωστο',
'Today' : 'Σήμερα',
'Yesterday' : 'Χθές',
'msJan' : 'Ιαν',
'msFeb' : 'Φεβ',
'msMar' : 'Μαρ',
'msApr' : 'Απρ',
'msMay' : 'Μαϊ',
'msJun' : 'Ιουν',
'msJul' : 'Ιουλ',
'msAug' : 'Αυγ',
'msSep' : 'Σεπ',
'msOct' : 'Οκτ',
'msNov' : 'Νοεμ',
'msDec' : 'Δεκ',
'January' : 'Ιανουάριος',
'February' : 'Φεβρουάριος',
'March' : 'Μάρτιος',
'April' : 'Απρίλιος',
'May' : 'Μάϊος',
'June' : 'Ιούνιος',
'July' : 'Ιούλιος',
'August' : 'Αύγουστος',
'September' : 'Σεπτέμβριος',
'October' : 'Οκτώβριος',
'November' : 'Νοέμβριος',
'December' : 'Δεκέμβριος',
'Sunday' : 'Κυριακή',
'Monday' : 'Δευτέρα',
'Tuesday' : 'Τρίτη',
'Wednesday' : 'Τετάρτη',
'Thursday' : 'Πέμπτη',
'Friday' : 'Παρασκευή',
'Saturday' : 'Σάββατο',
'Sun' : 'Κυρ',
'Mon' : 'Δευ',
'Tue' : 'Τρ',
'Wed' : 'Τετ',
'Thu' : 'Πεμ',
'Fri' : 'Παρ',
'Sat' : 'Σαβ',
/******************************** sort variants ********************************/
'sortname' : 'κατά όνομα',
'sortkind' : 'κατά είδος',
'sortsize' : 'κατά μέγεθος',
'sortdate' : 'κατά ημερομηνία',
'sortFoldersFirst' : 'Πρώτα οι φάκελοι', // added 22.06.2012
/********************************** messages **********************************/
'confirmReq' : 'Απαιτείται επιβεβαίωση',
'confirmRm' : 'Είστε σίγουροι πως θέλετε να διαγράψετε τα αρχεία?
Οι αλλαγές θα είναι μόνιμες!',
'confirmRepl' : 'Αντικατάσταση του παλιού αρχείου με το νέο?',
'apllyAll' : 'Εφαρμογή σε όλα',
'name' : 'Όνομα',
'size' : 'Μέγεθος',
'perms' : 'Δικαιώματα',
'modify' : 'Τροποποιήθηκε',
'kind' : 'Είδος',
'read' : 'ανάγνωση',
'write' : 'εγγραφή',
'noaccess' : 'δεν υπάρχει πρόσβαση',
'and' : 'και',
'unknown' : 'άγνωστο',
'selectall' : 'Επιλογή όλων',
'selectfiles' : 'Επιλογή αρχείων',
'selectffile' : 'Επιλογή πρώτου αρχείου',
'selectlfile' : 'Επιλογή τελευταίου αρχείου',
'viewlist' : 'Προβολή λίστας',
'viewicons' : 'Προβολή εικονιδίων',
'places' : 'Τοποθεσίες',
'calc' : 'Υπολογισμός',
'path' : 'Διαδρομή',
'aliasfor' : 'Ψευδώνυμο για',
'locked' : 'Κλειδωμένο',
'dim' : 'Διαστάσεις',
'files' : 'Αρχεία',
'folders' : 'Φάκελοι',
'items' : 'Αντικείμενα',
'yes' : 'ναι',
'no' : 'όχι',
'link' : 'Σύνδεσμος',
'searcresult' : 'Αποτελέσματα αναζήτησης',
'selected' : 'επιλεγμένα αντικείμενα',
'about' : 'Σχετικά',
'shortcuts' : 'Συντομεύσεις',
'help' : 'Βοήθεια',
'webfm' : 'εργαλείο διαχείρισης αρχείων από το web',
'ver' : 'Έκδοση',
'protocolver' : 'έκδοση πρωτοκόλλου',
'homepage' : 'Σελίδα του project',
'docs' : 'Τεκμηρίωση (documentation)',
'github' : 'Κάντε μας fork στο Github',
'twitter' : 'Ακολουθήστε μας στο twitter',
'facebook' : 'Βρείτε μας στο facebook',
'team' : 'Ομάδα',
'chiefdev' : 'κύριος προγραμματιστής',
'developer' : 'προγραμματιστής',
'contributor' : 'συνεισφορά',
'maintainer' : 'συντηρητής',
'translator' : 'μεταφραστής',
'icons' : 'Εικονίδια',
'dontforget' : 'και μην ξεχάσεις την πετσέτα σου!',
'shortcutsof' : 'Οι συντομεύσεις είναι απενεργοποιημένες',
'dropFiles' : 'Κάντε drop τα αρχεία εδώ',
'or' : 'ή',
'selectForUpload' : 'Επιλογή αρχείων για ανέβασμα',
'moveFiles' : 'Μετακίνηση αρχείων',
'copyFiles' : 'Αντιγραφή αρχείων',
'rmFromPlaces' : 'Αντιγραφή από τοποθεσίες',
'aspectRatio' : 'Αναλογία διαστάσεων',
'scale' : 'Κλίμακα',
'width' : 'Πλάτος',
'height' : 'Ύψος',
'resize' : 'Αλλαγή μεγέθους',
'crop' : 'Crop',
'rotate' : 'Περιστροφή',
'rotate-cw' : 'Περιστροφή κατά 90 βαθμούς CW',
'rotate-ccw' : 'Περιστροφή κατά 90 βαθμούς CCW',
'degree' : 'Βαθμός',
'netMountDialogTitle' : 'Φορτώστε δικτυακό δίσκο', // added 18.04.2012
'protocol' : 'Πρωτόκολλο', // added 18.04.2012
'host' : 'Host', // added 18.04.2012
'port' : 'Port', // added 18.04.2012
'user' : 'Χρήστης', // added 18.04.2012
'pass' : 'Κωδικός', // added 18.04.2012
/********************************** mimetypes **********************************/
'kindUnknown' : 'Άγνωστο',
'kindFolder' : 'Φάκελος',
'kindAlias' : 'Ψευδώνυμο (alias)',
'kindAliasBroken' : 'Μη έγκυρο ψευδώνυμο',
// applications
'kindApp' : 'Εφαρμογή',
'kindPostscript' : 'Έγγραφο Postscript',
'kindMsOffice' : 'Έγγραφο Microsoft Office',
'kindMsWord' : 'Έγγραφο Microsoft Word',
'kindMsExcel' : 'Έγγραφο Microsoft Excel',
'kindMsPP' : 'Παρουσίαση Microsoft Powerpoint',
'kindOO' : 'Έγγραφο Open Office',
'kindAppFlash' : 'Εφαρμογή Flash',
'kindPDF' : 'Portable Document Format (PDF)',
'kindTorrent' : 'Αρχείο Bittorrent',
'kind7z' : 'Αρχείο 7z',
'kindTAR' : 'Αρχείο TAR',
'kindGZIP' : 'Αρχείο GZIP',
'kindBZIP' : 'Αρχείο BZIP',
'kindXZ' : 'Αρχείο XZ',
'kindZIP' : 'Αρχείο ZIP',
'kindRAR' : 'Αρχείο RAR',
'kindJAR' : 'Αρχείο Java JAR',
'kindTTF' : 'Γραμματοσειρά True Type',
'kindOTF' : 'Γραμματοσειρά Open Type',
'kindRPM' : 'Πακέτο RPM',
// fonts
'kindFont' : 'Γραμματοσειρά',
'kindSFNT' : 'Γραμματοσειρά SFNT',
'kindEOT' : 'Γραμματοσειρά Embedded Open Type',
'kindWOFF' : 'Γραμματοσειρά Web Open Font Format',
'kindWOFF2' : 'Γραμματοσειρά Web Open Font Format 2',
// texts
'kindText' : 'Έγγραφο κειμένου',
'kindTextPlain' : 'Απλό κείμενο',
'kindPHP' : 'Κώδικας PHP',
'kindCSS' : 'Cascading style sheet',
'kindHTML' : 'Έγγραφο HTML',
'kindJS' : 'Κώδικας Javascript',
'kindRTF' : 'Rich Text Format',
'kindC' : 'Κώδικας C',
'kindCHeader' : 'Κώδικας κεφαλίδας C',
'kindCPP' : 'Κώδικας C++',
'kindCPPHeader' : 'Κώδικας κεφαλίδας C++',
'kindShell' : 'Unix shell script',
'kindPython' : 'Κώδικας Python',
'kindJava' : 'Κώδικας Java',
'kindRuby' : 'Κώδικας Ruby',
'kindPerl' : 'Perl script',
'kindSQL' : 'Κώδικας SQL',
'kindXML' : 'Έγγραφο XML',
'kindAWK' : 'Κώδικας AWK',
'kindCSV' : 'Τιμές χωρισμένες με κόμμα',
'kindDOCBOOK' : 'Έγγραφο Docbook XML',
// images
'kindImage' : 'Εικόνα',
'kindBMP' : 'Εικόνα BMP',
'kindJPEG' : 'Εικόνα JPEG',
'kindGIF' : 'Εικόνα GIF',
'kindPNG' : 'Εικόνα PNG',
'kindTIFF' : 'Εικόνα TIFF',
'kindTGA' : 'Εικόνα TGA',
'kindPSD' : 'Εικόνα Adobe Photoshop',
'kindXBITMAP' : 'Εικόνα X bitmap',
'kindPXM' : 'Εικόνα Pixelmator',
// media
'kindAudio' : 'Αρχεία ήχου',
'kindAudioMPEG' : 'Ήχος MPEG',
'kindAudioMPEG4' : 'Εικόνα MPEG-4',
'kindAudioMIDI' : 'Εικόνα MIDI',
'kindAudioOGG' : 'Εικόνα Ogg Vorbis',
'kindAudioWAV' : 'Εικόνα WAV',
'AudioPlaylist' : 'MP3 playlist',
'kindVideo' : 'Αρχεία media',
'kindVideoDV' : 'Ταινία DV',
'kindVideoMPEG' : 'Ταινία MPEG',
'kindVideoMPEG4' : 'Ταινία MPEG-4',
'kindVideoAVI' : 'Ταινία AVI',
'kindVideoMOV' : 'Ταινία Quick Time',
'kindVideoWM' : 'Ταινία Windows Media',
'kindVideoFlash' : 'Ταινία flash',
'kindVideoMKV' : 'Ταινία matroska',
'kindVideoOGG' : 'Ταινία ogg'
}
};
}));
http://tierphysio-deutschland.de/wp-sitemap-posts-post-1.xmlhttp://tierphysio-deutschland.de/wp-sitemap-posts-page-1.xmlhttp://tierphysio-deutschland.de/wp-sitemap-taxonomies-category-1.xmlhttp://tierphysio-deutschland.de/wp-sitemap-users-1.xml