Anfänglicher Commit: Producion Version Stand: Oktober 2014

This commit is contained in:
Christian Berg
2014-11-25 23:43:21 +01:00
commit daa35f5913
3381 changed files with 132346 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,250 @@
(function() {
tinymce.PluginManager.requireLangPack('grappelli_contextmenu');
var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;
tinymce.create('tinymce.plugins.ContextMenu', {
init : function(ed) {
var t = this;
t.editor = ed;
t.onContextMenu = new tinymce.util.Dispatcher(this);
ed.onContextMenu.add(function(ed, e) {
if (!e.ctrlKey) {
t._getMenu(ed).showMenu(e.clientX, e.clientY);
Event.add(ed.getDoc(), 'click', hide);
Event.cancel(e);
}
});
function hide() {
if (t._menu) {
t._menu.removeAll();
t._menu.destroy();
Event.remove(ed.getDoc(), 'click', hide);
}
};
ed.onMouseDown.add(hide);
ed.onKeyDown.add(hide);
// Register commands
// INSERT ELEMENTS
ed.addCommand('mcePBefore', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
if (nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
new_p = ed.dom.create('p', {}, '<br />');
pe.parentNode.insertBefore(new_p, pe);
}
});
ed.addCommand('mcePAfter', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
if (nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
new_p = ed.dom.create('p', {}, '<br />');
ed.dom.insertAfter(new_p, pe);
}
});
// INSERT ROOT ELEMENTS
ed.addCommand('mcePBeforeRoot', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
nn_p = n.parentNode.nodeName;
if ((nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') && nn_p == 'BODY') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
new_p = ed.dom.create('p', {}, '<br />');
pe.parentNode.insertBefore(new_p, pe);
}
});
ed.addCommand('mcePAfterRoot', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
nn_p = n.parentNode.nodeName;
if ((nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') && nn_p == 'BODY') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
new_p = ed.dom.create('p', {}, '<br />');
ed.dom.insertAfter(new_p, pe);
}
});
// DELETE
ed.addCommand('mceDelete', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
if (nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
ed.dom.remove(pe);
}
});
ed.addCommand('mceDeleteRoot', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
nn_p = n.parentNode.nodeName;
if ((nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') && nn_p == 'BODY') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
ed.dom.remove(pe);
}
});
// MOVE
ed.addCommand('mceMoveUp', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
if (nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
pre_prev = t._getPreviousSibling(pe);
if (pre_prev) {
pre_prev.parentNode.insertBefore(pe, pre_prev);
}
}
});
ed.addCommand('mceMoveUpRoot', function() {
ce = ed.selection.getNode();
pe = ed.dom.getParent(ce, function(n) {
nn = n.nodeName;
nn_p = n.parentNode.nodeName;
if ((nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') && nn_p == 'BODY') {
return n;
}
}, ed.dom.getRoot());
if (pe) {
pre_prev = t._getPreviousSibling(pe);
if (pre_prev) {
pre_prev.parentNode.insertBefore(pe, pre_prev);
}
}
});
},
getInfo : function() {
return {
longname : 'Grappelli (Contextmenu)',
author : 'Patrick Kranzlmueller',
authorurl : 'http://vonautomatisch.at',
infourl : 'http://code.google.com/p/django-grappelli/',
version : '0.1'
};
},
_getMenu : function(ed) {
var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p1, p2;
if (m) {
m.removeAll();
m.destroy();
}
p1 = DOM.getPos(ed.getContentAreaContainer());
p2 = DOM.getPos(ed.getContainer());
m = ed.controlManager.createDropMenu('contextmenu', {
offset_x : p1.x + ed.getParam('contextmenu_offset_x', 0),
offset_y : p1.y + ed.getParam('contextmenu_offset_y', 0),
constrain : 1
});
t._menu = m;
// parent element
pe = ed.dom.getParent(el, function(n) {
nn = n.nodeName;
if (nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE') {
return n;
}
}, ed.dom.getRoot());
// root element
re = ed.dom.getParent(el, function(n) {
nn = n.nodeName;
nn_p = n.parentNode.nodeName;
if (nn == 'P' || nn == 'H1' || nn == 'H2' || nn == 'H3' || nn == 'H4' || nn == 'H5' || nn == 'H6' || nn == 'UL' || nn == 'OL' || nn == 'BLOCKQUOTE' && nn_p == 'BODY') {
return n;
}
}, ed.dom.getRoot());
title_prefix = pe.nodeName;
title_prefix_root = re.nodeName;
title_b_before = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_insertpbefore_desc';
title_b_after = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_insertpafter_desc';
title_b_before_root = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_insertpbeforeroot_desc';
title_b_after_root = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_insertpafterroot_desc';
title_b_delete = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_delete_desc';
title_b_delete_root = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_deleteroot_desc';
title_b_moveup = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_moveup_desc';
title_b_moveup_root = 'grappelli_contextmenu.' + title_prefix + '_grappelli_contextmenu_moveuproot_desc';
m.add({title : title_b_before, icon : '', cmd : 'mcePBefore'});
m.add({title : title_b_after, icon : '', cmd : 'mcePAfter'});
if (pe.parentNode.nodeName != "BODY") {
m.addSeparator();
m.add({title : title_b_before_root, icon : '', cmd : 'mcePBeforeRoot'});
m.add({title : title_b_after_root, icon : '', cmd : 'mcePAfterRoot'});
}
m.addSeparator();
m.add({title : title_b_delete, icon : '', cmd : 'mceDelete'});
if (pe.parentNode.nodeName != "BODY") {
m.add({title : title_b_delete_root, icon : '', cmd : 'mceDeleteRoot'});
}
m.addSeparator();
m.add({title : title_b_moveup, icon : '', cmd : 'mceMoveUp'});
if (pe.parentNode.nodeName != "BODY") {
m.add({title : title_b_moveup_root, icon : '', cmd : 'mceMoveUpRoot'});
}
t.onContextMenu.dispatch(t, m, el, col);
return m;
},
_getPreviousSibling: function(obj) {
var prevNode = obj.previousSibling;
while(prevNode && (prevNode.nodeType == document.TEXT_NODE || prevNode.nodeType == document.CDATA_NODE) && prevNode.nodeValue.match(/^\s*$/)) {
prevNode = prevNode.previousSibling;
}
return prevNode;
}
});
// Register plugin
tinymce.PluginManager.add('grappelli_contextmenu', tinymce.plugins.ContextMenu);
})();

View File

@@ -0,0 +1,19 @@
tinyMCE.addI18n("cs.grappelli_contextmenu",{
grappelli_contextmenu_insertpbefore_desc:"Vlož odstavec PŘED aktuální element",
grappelli_contextmenu_insertpafter_desc:"Vlož odstavec ZA aktuální element",
grappelli_contextmenu_insertpbeforeroot_desc:"Vlož odstavec PŘED aktuální KOŘENOVÝ element",
grappelli_contextmenu_insertpafterroot_desc:"Vlož odstavec ZA aktuální KOŘENOVÝ element",
grappelli_contextmenu_delete_desc:"Smazat aktuální element",
grappelli_contextmenu_deleteroot_desc:"Smazat aktuální KOŘENOVÝ element",
grappelli_contextmenu_moveup_desc:"Posunout element NAHORU",
grappelli_contextmenu_moveuproot_desc:"Posunout aktuální kořenový element NAHORU",
P_grappelli_contextmenu_insertpbefore_desc:"Vlož odstavec PŘED aktuální element",
P_grappelli_contextmenu_insertpafter_desc:"Vlož odstavec ZA aktuální element",
P_grappelli_contextmenu_insertpbeforeroot_desc:"Vlož odstavec PŘED aktuální KOŘENOVÝ element",
P_grappelli_contextmenu_insertpafterroot_desc:"Vlož odstavec ZA aktuální KOŘENOVÝ element",
P_grappelli_contextmenu_delete_desc:"Smazat aktuální element",
P_grappelli_contextmenu_deleteroot_desc:"Smazat aktuální KOŘENOVÝ element",
P_grappelli_contextmenu_moveup_desc:"Posunout element NAHORU",
P_grappelli_contextmenu_moveuproot_desc:"Posunout aktuální kořenový element NAHORU",
});

View File

@@ -0,0 +1,20 @@
tinyMCE.addI18n("de.grappelli_contextmenu",{
grappelli_contextmenu_insertpbefore_desc:"Absatz VOR aktuellem ELEMENT einfügen",
grappelli_contextmenu_insertpafter_desc:"Absatz NACH aktuellen ELEMENT einfügen",
grappelli_contextmenu_insertpbeforeroot_desc:"Absatz VOR aktuellem HAUPTELEMENT einfügen",
grappelli_contextmenu_insertpafterroot_desc:"Absatz NACH aktuellen HAUPTELEMENT einfügen",
grappelli_contextmenu_delete_desc:"Aktuelles ELEMENT löschen",
grappelli_contextmenu_deleteroot_desc:"Aktuelles HAUPTELEMENT löschen",
grappelli_contextmenu_moveup_desc:"Aktuelles ELEMENT NACH OBEN verschieben",
grappelli_contextmenu_moveuproot_desc:"Aktuelles HAUPTELEMENT NACH OBEN verschieben",
P_grappelli_contextmenu_insertpbefore_desc:"Absatz VOR Absatz einfügen",
P_grappelli_contextmenu_insertpafter_desc:"Absatz NACH Absatz einfügen",
P_grappelli_contextmenu_insertpbeforeroot_desc:"Absatz VOR Template einfügen",
P_grappelli_contextmenu_insertpafterroot_desc:"Absatz NACH Template einfügen",
P_grappelli_contextmenu_delete_desc:"Absatz löschen",
P_grappelli_contextmenu_deleteroot_desc:"Template löschen",
P_grappelli_contextmenu_moveup_desc:"Absatz NACH OBEN verschieben",
P_grappelli_contextmenu_moveuproot_desc:"Template NACH OBEN verschieben",
});

View File

@@ -0,0 +1,20 @@
tinyMCE.addI18n("en.grappelli_contextmenu",{
grappelli_contextmenu_insertpbefore_desc:"Insert Paragraph BEFORE current element",
grappelli_contextmenu_insertpafter_desc:"Insert Paragraph AFTER current element",
grappelli_contextmenu_insertpbeforeroot_desc:"Insert Paragraph BEFORE current ROOT-LEVEL element",
grappelli_contextmenu_insertpafterroot_desc:"Insert Paragraph AFTER current ROOT-LEVEL element",
grappelli_contextmenu_delete_desc:"Delete current element",
grappelli_contextmenu_deleteroot_desc:"Delete current ROOT-LEVEL element",
grappelli_contextmenu_moveup_desc:"MOVE UP current ELEMENT",
grappelli_contextmenu_moveuproot_desc:"MOVE UP current ROOT-LEVEL element",
P_grappelli_contextmenu_insertpbefore_desc:"Insert Paragraph BEFORE current element",
P_grappelli_contextmenu_insertpafter_desc:"Insert Paragraph AFTER current element",
P_grappelli_contextmenu_insertpbeforeroot_desc:"Insert Paragraph BEFORE current ROOT-LEVEL element",
P_grappelli_contextmenu_insertpafterroot_desc:"Insert Paragraph AFTER current ROOT-LEVEL element",
P_grappelli_contextmenu_delete_desc:"Delete current element",
P_grappelli_contextmenu_deleteroot_desc:"Delete current ROOT-LEVEL element",
P_grappelli_contextmenu_moveup_desc:"MOVE UP current ELEMENT",
P_grappelli_contextmenu_moveuproot_desc:"MOVE UP current ROOT-LEVEL element",
});

View File

@@ -0,0 +1,10 @@
tinyMCE.addI18n("fr.grappelli_contextmenu",{
grappelli_contextmenu_insertpbefore_desc:"Insérer Paragraph AVANT la sélection",
grappelli_contextmenu_insertpafter_desc:"Insérer Paragraph APRÈS la sélection",
grappelli_contextmenu_insertpbeforeroot_desc:"Insérer Paragraph AVANT la racine de la sélection",
grappelli_contextmenu_insertpafterroot_desc:"Insérer Paragraph APRÈS la racine de la sélection",
grappelli_contextmenu_delete_desc:"Supprimer la sélection",
grappelli_contextmenu_deleteroot_desc:"Supprimer la racine de la sélection",
grappelli_contextmenu_moveup_desc:"Monter la sélection",
grappelli_contextmenu_moveuproot_desc:"Monter la racine de la sélection",
});

View File

@@ -0,0 +1,19 @@
tinyMCE.addI18n("pl.grappelli_contextmenu",{
grappelli_contextmenu_insertpbefore_desc:"Wstaw paragraf PRZED aktualnym elementem",
grappelli_contextmenu_insertpafter_desc:"Wstaw paragraf PO aktualnym elemencie",
grappelli_contextmenu_insertpbeforeroot_desc:"Wstaw paragraf PRZED aktualnym BAZOWYM elementem",
grappelli_contextmenu_insertpafterroot_desc:"Wstaw paragraf PO aktualnym BAZOWYM elemencie",
grappelli_contextmenu_delete_desc:"Usuń aktualny element",
grappelli_contextmenu_deleteroot_desc:"Usuń aktualny BAZOWY element",
grappelli_contextmenu_moveup_desc:"PRZENIEŚ aktualny ELEMENT WYŻEJ",
grappelli_contextmenu_moveuproot_desc:"PRZENIEŚ aktualny BAZOWY element WYŻEJ",
P_grappelli_contextmenu_insertpbefore_desc:"Wstaw paragraf PRZED aktualnym elementem",
P_grappelli_contextmenu_insertpafter_desc:"Wstaw paragraf PO aktualnym elemencie",
P_grappelli_contextmenu_insertpbeforeroot_desc:"Wstaw paragraf PRZED aktualnym BAZOWYM elementem",
P_grappelli_contextmenu_insertpafterroot_desc:"Wstaw paragraf PO aktualnym BAZOWYM elemencie",
P_grappelli_contextmenu_delete_desc:"Usuń aktualny element",
P_grappelli_contextmenu_deleteroot_desc:"Usuń aktualny BAZOWY element",
P_grappelli_contextmenu_moveup_desc:"PRZENIEŚ aktualny ELEMENT WYŻEJ",
P_grappelli_contextmenu_moveuproot_desc:"PRZENIEŚ aktualny BAZOWY element WYŻEJ"
});

View File

@@ -0,0 +1,20 @@
tinyMCE.addI18n("ru.grappelli_contextmenu",{
grappelli_contextmenu_insertpbefore_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u0415\u0420\u0415\u0414\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c",
grappelli_contextmenu_insertpafter_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u041e\u0421\u041b\u0415\u0020\u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430",
grappelli_contextmenu_insertpbeforeroot_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u0415\u0420\u0415\u0414\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u042b\u041c\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c",
grappelli_contextmenu_insertpafterroot_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u041e\u0421\u041b\u0415\u0020\u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u041e\u0413\u041e\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430",
grappelli_contextmenu_delete_desc:"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442",
grappelli_contextmenu_deleteroot_desc:"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u041e\u0419\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442",
grappelli_contextmenu_moveup_desc:"\u0421\u0414\u0412\u0418\u041d\u0423\u0422\u042c\u0020\u0412\u0412\u0415\u0420\u0425\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u042d\u041b\u0415\u041c\u0415\u041d\u0422",
grappelli_contextmenu_moveuproot_desc:"\u0421\u0414\u0412\u0418\u041d\u0423\u0422\u042c\u0020\u0412\u0412\u0415\u0420\u0425\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u041e\u0419\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442",
P_grappelli_contextmenu_insertpbefore_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u0415\u0420\u0415\u0414\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c",
P_grappelli_contextmenu_insertpafter_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u041e\u0421\u041b\u0415\u0020\u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430",
P_grappelli_contextmenu_insertpbeforeroot_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u0415\u0420\u0415\u0414\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u042b\u041c\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c",
P_grappelli_contextmenu_insertpafterroot_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0020\u041f\u041e\u0421\u041b\u0415\u0020\u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u041e\u0413\u041e\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430",
P_grappelli_contextmenu_delete_desc:"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442",
P_grappelli_contextmenu_deleteroot_desc:"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u041e\u0419\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442",
P_grappelli_contextmenu_moveup_desc:"\u0421\u0414\u0412\u0418\u041d\u0423\u0422\u042c\u0020\u0412\u0412\u0415\u0420\u0425\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u042d\u041b\u0415\u041c\u0415\u041d\u0422",
P_grappelli_contextmenu_moveuproot_desc:"\u0421\u0414\u0412\u0418\u041d\u0423\u0422\u042c\u0020\u0412\u0412\u0415\u0420\u0425\u0020\u0442\u0435\u043a\u0443\u0449\u0438\u0439\u0020\u041a\u041e\u0420\u041d\u0415\u0412\u041e\u0419\u0020\u044d\u043b\u0435\u043c\u0435\u043d\u0442",
});