ソースを参照

update svg-edit to Revision: r2031

Juan Carlos Raña 14 年 前
コミット
a6f0eb59eb
100 ファイル変更20534 行追加13301 行削除
  1. 27 0
      main/inc/lib/svg-edit/browser-not-supported.html
  2. 172 0
      main/inc/lib/svg-edit/browser.js
  3. 6 0
      main/inc/lib/svg-edit/contextmenu/index.html
  4. 39 33
      main/inc/lib/svg-edit/contextmenu/jquery.contextMenu.js
  5. 8 8
      main/inc/lib/svg-edit/contextmenu/jquery.contextMenu.min.js
  6. 528 0
      main/inc/lib/svg-edit/draw.js
  7. 18 2
      main/inc/lib/svg-edit/embedapi.js
  8. 2 2
      main/inc/lib/svg-edit/extensions/ext-arrows.js
  9. 1 2
      main/inc/lib/svg-edit/extensions/ext-connector.js
  10. 11 3
      main/inc/lib/svg-edit/extensions/ext-eyedropper.js
  11. 108 74
      main/inc/lib/svg-edit/extensions/ext-grid.js
  12. 34 14
      main/inc/lib/svg-edit/extensions/ext-imagelib.js
  13. 3 5
      main/inc/lib/svg-edit/extensions/ext-server_opensave.js
  14. 1 1
      main/inc/lib/svg-edit/extensions/ext-shapes.js
  15. 601 0
      main/inc/lib/svg-edit/history.js
  16. 30 0
      main/inc/lib/svg-edit/images/svg_edit_icons.svg
  17. 0 191
      main/inc/lib/svg-edit/jgraduate/css/jPicker-1.0.12.css
  18. 0 0
      main/inc/lib/svg-edit/jgraduate/css/jPicker.css
  19. 148 67
      main/inc/lib/svg-edit/jgraduate/css/jgraduate.css
  20. BIN
      main/inc/lib/svg-edit/jgraduate/images/Bars.png
  21. BIN
      main/inc/lib/svg-edit/jgraduate/images/Maps.png
  22. BIN
      main/inc/lib/svg-edit/jgraduate/images/NoColor.png
  23. BIN
      main/inc/lib/svg-edit/jgraduate/images/rangearrows.gif
  24. 0 0
      main/inc/lib/svg-edit/jgraduate/jpicker-1.0.12.min.js
  25. 0 0
      main/inc/lib/svg-edit/jgraduate/jpicker.min.js
  26. 886 788
      main/inc/lib/svg-edit/jgraduate/jquery.jgraduate.js
  27. 0 0
      main/inc/lib/svg-edit/jgraduate/jquery.jgraduate.min.js
  28. 153 141
      main/inc/lib/svg-edit/jquery.js
  29. 234 173
      main/inc/lib/svg-edit/locale/lang.af.js
  30. 234 173
      main/inc/lib/svg-edit/locale/lang.ar.js
  31. 234 173
      main/inc/lib/svg-edit/locale/lang.az.js
  32. 234 173
      main/inc/lib/svg-edit/locale/lang.be.js
  33. 234 173
      main/inc/lib/svg-edit/locale/lang.bg.js
  34. 234 173
      main/inc/lib/svg-edit/locale/lang.ca.js
  35. 234 176
      main/inc/lib/svg-edit/locale/lang.cs.js
  36. 234 173
      main/inc/lib/svg-edit/locale/lang.cy.js
  37. 234 173
      main/inc/lib/svg-edit/locale/lang.da.js
  38. 234 173
      main/inc/lib/svg-edit/locale/lang.de.js
  39. 234 173
      main/inc/lib/svg-edit/locale/lang.el.js
  40. 234 176
      main/inc/lib/svg-edit/locale/lang.en.js
  41. 234 174
      main/inc/lib/svg-edit/locale/lang.es.js
  42. 234 173
      main/inc/lib/svg-edit/locale/lang.et.js
  43. 234 174
      main/inc/lib/svg-edit/locale/lang.fa.js
  44. 234 173
      main/inc/lib/svg-edit/locale/lang.fi.js
  45. 234 176
      main/inc/lib/svg-edit/locale/lang.fr.js
  46. 234 173
      main/inc/lib/svg-edit/locale/lang.fy.js
  47. 234 156
      main/inc/lib/svg-edit/locale/lang.ga.js
  48. 234 173
      main/inc/lib/svg-edit/locale/lang.gl.js
  49. 234 173
      main/inc/lib/svg-edit/locale/lang.he.js
  50. 234 174
      main/inc/lib/svg-edit/locale/lang.hi.js
  51. 234 173
      main/inc/lib/svg-edit/locale/lang.hr.js
  52. 234 173
      main/inc/lib/svg-edit/locale/lang.hu.js
  53. 234 173
      main/inc/lib/svg-edit/locale/lang.hy.js
  54. 234 173
      main/inc/lib/svg-edit/locale/lang.id.js
  55. 234 173
      main/inc/lib/svg-edit/locale/lang.is.js
  56. 234 176
      main/inc/lib/svg-edit/locale/lang.it.js
  57. 234 174
      main/inc/lib/svg-edit/locale/lang.ja.js
  58. 234 173
      main/inc/lib/svg-edit/locale/lang.ko.js
  59. 234 173
      main/inc/lib/svg-edit/locale/lang.lt.js
  60. 234 173
      main/inc/lib/svg-edit/locale/lang.lv.js
  61. 234 173
      main/inc/lib/svg-edit/locale/lang.mk.js
  62. 234 173
      main/inc/lib/svg-edit/locale/lang.ms.js
  63. 234 173
      main/inc/lib/svg-edit/locale/lang.mt.js
  64. 234 176
      main/inc/lib/svg-edit/locale/lang.nl.js
  65. 234 173
      main/inc/lib/svg-edit/locale/lang.no.js
  66. 234 173
      main/inc/lib/svg-edit/locale/lang.pl.js
  67. 233 156
      main/inc/lib/svg-edit/locale/lang.pt-BR.js
  68. 234 173
      main/inc/lib/svg-edit/locale/lang.pt-PT.js
  69. 234 173
      main/inc/lib/svg-edit/locale/lang.ro.js
  70. 234 176
      main/inc/lib/svg-edit/locale/lang.ru.js
  71. 234 176
      main/inc/lib/svg-edit/locale/lang.sk.js
  72. 234 173
      main/inc/lib/svg-edit/locale/lang.sl.js
  73. 234 173
      main/inc/lib/svg-edit/locale/lang.sq.js
  74. 234 173
      main/inc/lib/svg-edit/locale/lang.sr.js
  75. 234 173
      main/inc/lib/svg-edit/locale/lang.sv.js
  76. 234 173
      main/inc/lib/svg-edit/locale/lang.sw.js
  77. 234 0
      main/inc/lib/svg-edit/locale/lang.test.js_disabled
  78. 234 173
      main/inc/lib/svg-edit/locale/lang.th.js
  79. 234 173
      main/inc/lib/svg-edit/locale/lang.tl.js
  80. 234 173
      main/inc/lib/svg-edit/locale/lang.tr.js
  81. 234 173
      main/inc/lib/svg-edit/locale/lang.uk.js
  82. 234 173
      main/inc/lib/svg-edit/locale/lang.vi.js
  83. 234 173
      main/inc/lib/svg-edit/locale/lang.yi.js
  84. 234 174
      main/inc/lib/svg-edit/locale/lang.zh-CN.js
  85. 234 174
      main/inc/lib/svg-edit/locale/lang.zh-HK.js
  86. 234 174
      main/inc/lib/svg-edit/locale/lang.zh-TW.js
  87. 276 41
      main/inc/lib/svg-edit/locale/locale.js
  88. 246 0
      main/inc/lib/svg-edit/math.js
  89. 980 0
      main/inc/lib/svg-edit/path.js
  90. 272 0
      main/inc/lib/svg-edit/sanitize.js
  91. 529 0
      main/inc/lib/svg-edit/select.js
  92. 0 0
      main/inc/lib/svg-edit/spinbtn/JQuerySpinBtn.min.js
  93. 36 16
      main/inc/lib/svg-edit/svg-editor.css
  94. 334 183
      main/inc/lib/svg-edit/svg-editor.js
  95. 89 52
      main/inc/lib/svg-edit/svg-editor.php
  96. 168 1812
      main/inc/lib/svg-edit/svgcanvas.js
  97. 38 11
      main/inc/lib/svg-edit/svgicons/jquery.svgicons.js
  98. 291 0
      main/inc/lib/svg-edit/svgtransformlist.js
  99. 647 0
      main/inc/lib/svg-edit/svgutils.js
  100. 281 0
      main/inc/lib/svg-edit/units.js

+ 27 - 0
main/inc/lib/svg-edit/browser-not-supported.html

@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+<meta http-equiv="X-UA-Compatible" content="chrome=1"/>
+<link rel="icon" type="image/png" href="images/logo.png"/>
+<link rel="stylesheet" href="svg-editor.css" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<title>Browser does not support SVG | SVG-edit</title>
+</head>
+<body>
+
+<div id="browser-not-supported">
+<img style="float:left;padding:10px;" src="images/logo.png" width="48" height="48" alt="SVG-edit logo" /><br />
+<p>Sorry, but your browser does not support SVG. Below is a list of alternate browsers and versions that support SVG and SVG-edit (from <a href="http://caniuse.com/#cats=SVG">caniuse.com</a>).</p>
+<p>Try the latest version of <a href="http://www.getfirefox.com">Firefox</a>, <a href="http://www.google.com/chrome/">Google Chrome</a>, <a href="http://www.apple.com/safari/download/">Safari</a>, <a href="http://www.opera.com/download/">Opera</a> or <a href="http://windows.microsoft.com/ie9">Internet Explorer<a/>.</p>
+<p>If you are unable to install one of these and must use an old version of Internet Explorer, you can install the <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame plugin</a>.</p>
+
+<script type="text/javascript">
+var viewportHeight =(window.innerHeight ? window.innerHeight : $(window).height()) - 140;
+document.write('<iframe width="100%" height="'+viewportHeight+'" src="http://caniuse.com/#cats=SVG"></iframe>');
+</script>
+
+</div>
+
+</body>
+</html>

+ 172 - 0
main/inc/lib/svg-edit/browser.js

@@ -0,0 +1,172 @@
+/**
+ * Package: svgedit.browser
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Jeff Schiller
+ * Copyright(c) 2010 Alexis Deveria
+ */
+
+// Dependencies:
+// 1) jQuery (for $.alert())
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.browser) {
+	svgedit.browser = {};
+}
+var supportsSvg_ = (function() {
+        return !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect;
+})();
+svgedit.browser.supportsSvg = function() { return supportsSvg_; }
+if(!svgedit.browser.supportsSvg()) {
+	window.location = "browser-not-supported.html";
+}
+else{
+
+var svgns = 'http://www.w3.org/2000/svg';
+var userAgent = navigator.userAgent;
+var svg = document.createElementNS(svgns, 'svg');
+
+// Note: Browser sniffing should only be used if no other detection method is possible
+var isOpera_ = !!window.opera;
+var isWebkit_ = userAgent.indexOf("AppleWebKit") >= 0;
+var isGecko_ = userAgent.indexOf('Gecko/') >= 0;
+var isIE_ = userAgent.indexOf('MSIE') >= 0;
+
+var supportsSelectors_ = (function() {
+	return !!svg.querySelector;
+})();
+
+var supportsXpath_ = (function() {
+	return !!document.evaluate;
+})();
+
+// segList functions (for FF1.5 and 2.0)
+var supportsPathReplaceItem_ = (function() {
+	var path = document.createElementNS(svgns, 'path');
+	path.setAttribute('d','M0,0 10,10');
+	var seglist = path.pathSegList;
+	var seg = path.createSVGPathSegLinetoAbs(5,5);
+	try {
+		seglist.replaceItem(seg, 0);
+		return true;
+	} catch(err) {}
+	return false;
+})();
+
+var supportsPathInsertItemBefore_ = (function() {
+	var path = document.createElementNS(svgns,'path');
+	path.setAttribute('d','M0,0 10,10');
+	var seglist = path.pathSegList;
+	var seg = path.createSVGPathSegLinetoAbs(5,5);
+	try {
+		seglist.insertItemBefore(seg, 0);
+		return true;
+	} catch(err) {}
+	return false;
+})();
+
+// text character positioning (for IE9)
+var supportsGoodTextCharPos_ = (function() {
+	var retValue = false;
+	var svgroot = document.createElementNS(svgns, 'svg');
+	var svgcontent = document.createElementNS(svgns, 'svg');
+	document.documentElement.appendChild(svgroot);
+	svgcontent.setAttribute('x', 5);
+	svgroot.appendChild(svgcontent);
+	var text = document.createElementNS(svgns,'text');
+	text.textContent = 'a';
+	svgcontent.appendChild(text);
+	var pos = text.getStartPositionOfChar(0).x;
+	document.documentElement.removeChild(svgroot);
+	return (pos === 0);
+})();
+
+var supportsPathBBox_ = (function() {
+	var svgcontent = document.createElementNS(svgns, 'svg');
+	document.documentElement.appendChild(svgcontent);
+	var path = document.createElementNS(svgns, 'path');
+	path.setAttribute('d','M0,0 C0,0 10,10 10,0');
+	svgcontent.appendChild(path);
+	var bbox = path.getBBox();
+	document.documentElement.removeChild(svgcontent);
+	return (bbox.height > 4 && bbox.height < 5);
+})();
+
+// Support for correct bbox sizing on groups with horizontal/vertical lines
+var supportsHVLineContainerBBox_ = (function() {
+	var svgcontent = document.createElementNS(svgns, 'svg');
+	document.documentElement.appendChild(svgcontent);
+	var path = document.createElementNS(svgns, 'path');
+	path.setAttribute('d','M0,0 10,0');
+	var path2 = document.createElementNS(svgns, 'path');
+	path2.setAttribute('d','M5,0 15,0');
+	var g = document.createElementNS(svgns, 'g');
+	g.appendChild(path);
+	g.appendChild(path2);
+	svgcontent.appendChild(g);
+	var bbox = g.getBBox();
+	document.documentElement.removeChild(svgcontent);
+	// Webkit gives 0, FF gives 10, Opera (correctly) gives 15
+	return (bbox.width == 15);
+})();
+
+var supportsEditableText_ = (function() {
+	// TODO: Find better way to check support for this
+	return isOpera_;
+})();
+
+var supportsGoodDecimals_ = (function() {
+	// Correct decimals on clone attributes (Opera < 10.5/win/non-en)
+	var rect = document.createElementNS(svgns, 'rect');
+	rect.setAttribute('x',.1);
+	var crect = rect.cloneNode(false);
+	var retValue = (crect.getAttribute('x').indexOf(',') == -1);
+	if(!retValue) {
+		$.alert("NOTE: This version of Opera is known to contain bugs in SVG-edit.\n\
+		Please upgrade to the <a href='http://opera.com'>latest version</a> in which the problems have been fixed.");
+	}
+	return retValue;
+})();
+
+var supportsNonScalingStroke_ = (function() {
+	var rect = document.createElementNS(svgns, 'rect');
+	rect.setAttribute('style','vector-effect:non-scaling-stroke');
+	return rect.style.vectorEffect === 'non-scaling-stroke';
+})();
+
+var supportsNativeSVGTransformLists_ = (function() {
+	var rect = document.createElementNS(svgns, 'rect');
+	var rxform = rect.transform.baseVal;
+	
+	var t1 = svg.createSVGTransform();
+	rxform.appendItem(t1);
+	return rxform.getItem(0) == t1;
+})();
+
+// Public API
+
+svgedit.browser.isOpera = function() { return isOpera_; }
+svgedit.browser.isWebkit = function() { return isWebkit_; }
+svgedit.browser.isGecko = function() { return isGecko_; }
+svgedit.browser.isIE = function() { return isIE_; }
+
+svgedit.browser.supportsSelectors = function() { return supportsSelectors_; }
+svgedit.browser.supportsXpath = function() { return supportsXpath_; }
+
+svgedit.browser.supportsPathReplaceItem = function() { return supportsPathReplaceItem_; }
+svgedit.browser.supportsPathInsertItemBefore = function() { return supportsPathInsertItemBefore_; }
+svgedit.browser.supportsPathBBox = function() { return supportsPathBBox_; }
+svgedit.browser.supportsHVLineContainerBBox = function() { return supportsHVLineContainerBBox_; }
+svgedit.browser.supportsGoodTextCharPos = function() { return supportsGoodTextCharPos_; }
+svgedit.browser.supportsEditableText = function() { return supportsEditableText_; }
+svgedit.browser.supportsGoodDecimals = function() { return supportsGoodDecimals_; }
+svgedit.browser.supportsNonScalingStroke = function() { return supportsNonScalingStroke_; }
+svgedit.browser.supportsNativeTransformLists = function() { return supportsNativeSVGTransformLists_; }
+
+}
+
+})();

+ 6 - 0
main/inc/lib/svg-edit/contextmenu/index.html

@@ -0,0 +1,6 @@
+<html>
+<head>
+</head>
+<body>
+</body>
+</html>

+ 39 - 33
main/inc/lib/svg-edit/contextmenu/jquery.contextMenu.js

@@ -14,6 +14,9 @@
 //   and the MIT License and is copyright A Beautiful Site, LLC.
 //
 if(jQuery)( function() {
+	var win = $(window);
+	var doc = $(document);
+
 	$.extend($.fn, {
 		
 		contextMenu: function(o, callback) {
@@ -28,75 +31,78 @@ if(jQuery)( function() {
 			$(this).each( function() {
 				var el = $(this);
 				var offset = $(el).offset();
+			
+				var menu = $('#' + o.menu);
+
 				// Add contextMenu class
-				$('#' + o.menu).addClass('contextMenu');
+				menu.addClass('contextMenu');
+				
 				// Simulate a true right click
 				$(this).mousedown( function(e) {
 					var evt = e;
 					$(this).mouseup( function(e) {
 						var srcElement = $(this);
-						$(this).unbind('mouseup');
-						if( evt.button == 2 || o.allowLeft) {
+						srcElement.unbind('mouseup');
+						if( evt.button === 2 || o.allowLeft) {
 							e.stopPropagation();
 							// Hide context menus that may be showing
 							$(".contextMenu").hide();
 							// Get this context menu
-							var menu = $('#' + o.menu);
-							
-							if( $(el).hasClass('disabled') ) return false;
+						
+							if( el.hasClass('disabled') ) return false;
 							
 							// Detect mouse position
 							var d = {}, x = e.pageX, y = e.pageY;
 							
-							var x_off = $(window).width() - menu.width(), 
-								y_off = $(window).height() - menu.height();
-							
-							if(x > x_off) x = x_off-15;
-							if(y > y_off) y = y_off-15;
+							var x_off = win.width() - menu.width(), 
+								y_off = win.height() - menu.height();
+
+							if(x > x_off - 15) x = x_off-15;
+							if(y > y_off - 30) y = y_off-30; // 30 is needed to prevent scrollbars in FF
 							
 							// Show the menu
-							$(document).unbind('click');
-							$(menu).css({ top: y, left: x }).fadeIn(o.inSpeed);
+							doc.unbind('click');
+							menu.css({ top: y, left: x }).fadeIn(o.inSpeed);
 							// Hover events
-							$(menu).find('A').mouseover( function() {
-								$(menu).find('LI.hover').removeClass('hover');
+							menu.find('A').mouseover( function() {
+								menu.find('LI.hover').removeClass('hover');
 								$(this).parent().addClass('hover');
 							}).mouseout( function() {
-								$(menu).find('LI.hover').removeClass('hover');
+								menu.find('LI.hover').removeClass('hover');
 							});
 							
 							// Keyboard
-							$(document).keypress( function(e) {
+							doc.keypress( function(e) {
 								switch( e.keyCode ) {
 									case 38: // up
-										if( $(menu).find('LI.hover').size() == 0 ) {
-											$(menu).find('LI:last').addClass('hover');
+										if( !menu.find('LI.hover').length ) {
+											menu.find('LI:last').addClass('hover');
 										} else {
-											$(menu).find('LI.hover').removeClass('hover').prevAll('LI:not(.disabled)').eq(0).addClass('hover');
-											if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:last').addClass('hover');
+											menu.find('LI.hover').removeClass('hover').prevAll('LI:not(.disabled)').eq(0).addClass('hover');
+											if( !menu.find('LI.hover').length ) menu.find('LI:last').addClass('hover');
 										}
 									break;
 									case 40: // down
-										if( $(menu).find('LI.hover').size() == 0 ) {
-											$(menu).find('LI:first').addClass('hover');
+										if( menu.find('LI.hover').length == 0 ) {
+											menu.find('LI:first').addClass('hover');
 										} else {
-											$(menu).find('LI.hover').removeClass('hover').nextAll('LI:not(.disabled)').eq(0).addClass('hover');
-											if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:first').addClass('hover');
+											menu.find('LI.hover').removeClass('hover').nextAll('LI:not(.disabled)').eq(0).addClass('hover');
+											if( !menu.find('LI.hover').length ) menu.find('LI:first').addClass('hover');
 										}
 									break;
 									case 13: // enter
-										$(menu).find('LI.hover A').trigger('click');
+										menu.find('LI.hover A').trigger('click');
 									break;
 									case 27: // esc
-										$(document).trigger('click');
+										doc.trigger('click');
 									break
 								}
 							});
 							
 							// When items are selected
-							$('#' + o.menu).find('A').unbind('mouseup');
-							$('#' + o.menu).find('LI:not(.disabled) A').mouseup( function() {
-								$(document).unbind('click').unbind('keypress');
+							menu.find('A').unbind('mouseup');
+							menu.find('LI:not(.disabled) A').mouseup( function() {
+								doc.unbind('click').unbind('keypress');
 								$(".contextMenu").hide();
 								// Callback
 								if( callback ) callback( $(this).attr('href').substr(1), $(srcElement), {x: x - offset.left, y: y - offset.top, docX: x, docY: y} );
@@ -105,9 +111,9 @@ if(jQuery)( function() {
 							
 							// Hide bindings
 							setTimeout( function() { // Delay for Mozilla
-								$(document).click( function() {
-									$(document).unbind('click').unbind('keypress');
-									$(menu).fadeOut(o.outSpeed);
+								doc.click( function() {
+									doc.unbind('click').unbind('keypress');
+									menu.fadeOut(o.outSpeed);
 									return false;
 								});
 							}, 0);

+ 8 - 8
main/inc/lib/svg-edit/contextmenu/jquery.contextMenu.min.js

@@ -5,6 +5,8 @@
 // Cory S.N. LaViska
 // A Beautiful Site (http://abeautifulsite.net/)
 //
+// Modifications by Alexis Deveria
+//
 // More info: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/
 //
 // Terms of Use
@@ -12,11 +14,9 @@
 // This plugin is dual-licensed under the GNU General Public License
 //   and the MIT License and is copyright A Beautiful Site, LLC.
 //
-jQuery&&function(){$.extend($.fn,{contextMenu:function(a,e){if(a.menu==undefined)return false;if(a.inSpeed==undefined)a.inSpeed=150;if(a.outSpeed==undefined)a.outSpeed=75;if(a.inSpeed==0)a.inSpeed=-1;if(a.outSpeed==0)a.outSpeed=-1;$(this).each(function(){var d=$(this),i=$(d).offset();$("#"+a.menu).addClass("contextMenu");$(this).mousedown(function(j){j.stopPropagation();$(this).mouseup(function(f){f.stopPropagation();var k=$(this);$(this).unbind("mouseup");if(j.button==2){$(".contextMenu").hide();
-var b=$("#"+a.menu);if($(d).hasClass("disabled"))return false;var c={},g,h;if(self.innerHeight){c.pageYOffset=self.pageYOffset;c.pageXOffset=self.pageXOffset;c.innerHeight=self.innerHeight;c.innerWidth=self.innerWidth}else if(document.documentElement&&document.documentElement.clientHeight){c.pageYOffset=document.documentElement.scrollTop;c.pageXOffset=document.documentElement.scrollLeft;c.innerHeight=document.documentElement.clientHeight;c.innerWidth=document.documentElement.clientWidth}else if(document.body){c.pageYOffset=
-document.body.scrollTop;c.pageXOffset=document.body.scrollLeft;c.innerHeight=document.body.clientHeight;c.innerWidth=document.body.clientWidth}f.pageX?g=f.pageX:g=f.clientX+c.scrollLeft;f.pageY?h=f.pageY:h=f.clientY+c.scrollTop;$(document).unbind("click");$(b).css({top:h,left:g}).fadeIn(a.inSpeed);$(b).find("A").mouseover(function(){$(b).find("LI.hover").removeClass("hover");$(this).parent().addClass("hover")}).mouseout(function(){$(b).find("LI.hover").removeClass("hover")});$(document).keypress(function(l){switch(l.keyCode){case 38:if($(b).find("LI.hover").size()==
-0)$(b).find("LI:last").addClass("hover");else{$(b).find("LI.hover").removeClass("hover").prevAll("LI:not(.disabled)").eq(0).addClass("hover");$(b).find("LI.hover").size()==0&&$(b).find("LI:last").addClass("hover")}break;case 40:if($(b).find("LI.hover").size()==0)$(b).find("LI:first").addClass("hover");else{$(b).find("LI.hover").removeClass("hover").nextAll("LI:not(.disabled)").eq(0).addClass("hover");$(b).find("LI.hover").size()==0&&$(b).find("LI:first").addClass("hover")}break;case 13:$(b).find("LI.hover A").trigger("click");
-break;case 27:$(document).trigger("click");break}});$("#"+a.menu).find("A").unbind("click");$("#"+a.menu).find("LI:not(.disabled) A").click(function(){$(document).unbind("click").unbind("keypress");$(".contextMenu").hide();e&&e($(this).attr("href").substr(1),$(k),{x:g-i.left,y:h-i.top,docX:g,docY:h});return false});setTimeout(function(){$(document).click(function(){$(document).unbind("click").unbind("keypress");$(b).fadeOut(a.outSpeed);return false})},0)}})});if($.browser.mozilla)$("#"+a.menu).each(function(){$(this).css({MozUserSelect:"none"})});
-else $.browser.msie?$("#"+a.menu).each(function(){$(this).bind("selectstart.disableTextSelect",function(){return false})}):$("#"+a.menu).each(function(){$(this).bind("mousedown.disableTextSelect",function(){return false})});$(d).add($("UL.contextMenu")).bind("contextmenu",function(){return false})});return $(this)},disableContextMenuItems:function(a){if(a==undefined){$(this).find("LI").addClass("disabled");return $(this)}$(this).each(function(){if(a!=undefined)for(var e=a.split(","),d=0;d<e.length;d++)$(this).find('A[href="'+
-e[d]+'"]').parent().addClass("disabled")});return $(this)},enableContextMenuItems:function(a){if(a==undefined){$(this).find("LI.disabled").removeClass("disabled");return $(this)}$(this).each(function(){if(a!=undefined)for(var e=a.split(","),d=0;d<e.length;d++)$(this).find('A[href="'+e[d]+'"]').parent().removeClass("disabled")});return $(this)},disableContextMenu:function(){$(this).each(function(){$(this).addClass("disabled")});return $(this)},enableContextMenu:function(){$(this).each(function(){$(this).removeClass("disabled")});
-return $(this)},destroyContextMenu:function(){$(this).each(function(){$(this).unbind("mousedown").unbind("mouseup")});return $(this)}})}(jQuery);
+jQuery&&function(){var i=$(window),e=$(document);$.extend($.fn,{contextMenu:function(a,d){if(a.menu==undefined)return false;if(a.inSpeed==undefined)a.inSpeed=150;if(a.outSpeed==undefined)a.outSpeed=75;if(a.inSpeed==0)a.inSpeed=-1;if(a.outSpeed==0)a.outSpeed=-1;$(this).each(function(){var c=$(this),j=$(c).offset(),b=$("#"+a.menu);b.addClass("contextMenu");$(this).mousedown(function(m){$(this).mouseup(function(f){var k=$(this);k.unbind("mouseup");if(m.button===2||a.allowLeft){f.stopPropagation();$(".contextMenu").hide();
+if(c.hasClass("disabled"))return false;var g=f.pageX,h=f.pageY;f=i.width()-b.width();var l=i.height()-b.height();if(g>f-15)g=f-15;if(h>l-30)h=l-30;e.unbind("click");b.css({top:h,left:g}).fadeIn(a.inSpeed);b.find("A").mouseover(function(){b.find("LI.hover").removeClass("hover");$(this).parent().addClass("hover")}).mouseout(function(){b.find("LI.hover").removeClass("hover")});e.keypress(function(n){switch(n.keyCode){case 38:if(b.find("LI.hover").length){b.find("LI.hover").removeClass("hover").prevAll("LI:not(.disabled)").eq(0).addClass("hover");
+b.find("LI.hover").length||b.find("LI:last").addClass("hover")}else b.find("LI:last").addClass("hover");break;case 40:if(b.find("LI.hover").length==0)b.find("LI:first").addClass("hover");else{b.find("LI.hover").removeClass("hover").nextAll("LI:not(.disabled)").eq(0).addClass("hover");b.find("LI.hover").length||b.find("LI:first").addClass("hover")}break;case 13:b.find("LI.hover A").trigger("click");break;case 27:e.trigger("click")}});b.find("A").unbind("mouseup");b.find("LI:not(.disabled) A").mouseup(function(){e.unbind("click").unbind("keypress");
+$(".contextMenu").hide();d&&d($(this).attr("href").substr(1),$(k),{x:g-j.left,y:h-j.top,docX:g,docY:h});return false});setTimeout(function(){e.click(function(){e.unbind("click").unbind("keypress");b.fadeOut(a.outSpeed);return false})},0)}})});if($.browser.mozilla)$("#"+a.menu).each(function(){$(this).css({MozUserSelect:"none"})});else $.browser.msie?$("#"+a.menu).each(function(){$(this).bind("selectstart.disableTextSelect",function(){return false})}):$("#"+a.menu).each(function(){$(this).bind("mousedown.disableTextSelect",
+function(){return false})});$(c).add($("UL.contextMenu")).bind("contextmenu",function(){return false})});return $(this)},disableContextMenuItems:function(a){if(a==undefined){$(this).find("LI").addClass("disabled");return $(this)}$(this).each(function(){if(a!=undefined)for(var d=a.split(","),c=0;c<d.length;c++)$(this).find('A[href="'+d[c]+'"]').parent().addClass("disabled")});return $(this)},enableContextMenuItems:function(a){if(a==undefined){$(this).find("LI.disabled").removeClass("disabled");return $(this)}$(this).each(function(){if(a!=
+undefined)for(var d=a.split(","),c=0;c<d.length;c++)$(this).find('A[href="'+d[c]+'"]').parent().removeClass("disabled")});return $(this)},disableContextMenu:function(){$(this).each(function(){$(this).addClass("disabled")});return $(this)},enableContextMenu:function(){$(this).each(function(){$(this).removeClass("disabled")});return $(this)},destroyContextMenu:function(){$(this).each(function(){$(this).unbind("mousedown").unbind("mouseup")});return $(this)}})}(jQuery);

+ 528 - 0
main/inc/lib/svg-edit/draw.js

@@ -0,0 +1,528 @@
+/**
+ * Package: svgedit.draw
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2011 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) jQuery
+// 2) browser.js
+// 3) svgutils.js
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.draw) {
+	svgedit.draw = {};
+}
+
+var svg_ns = "http://www.w3.org/2000/svg";
+var se_ns = "http://svg-edit.googlecode.com";
+var xmlns_ns = "http://www.w3.org/2000/xmlns/";
+
+var visElems = 'a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use';
+var visElems_arr = visElems.split(',');
+
+var RandomizeModes = {
+	LET_DOCUMENT_DECIDE: 0,
+	ALWAYS_RANDOMIZE: 1,
+	NEVER_RANDOMIZE: 2
+};
+var randomize_ids = RandomizeModes.LET_DOCUMENT_DECIDE;
+
+/**
+ * This class encapsulates the concept of a layer in the drawing
+ * @param name {String} Layer name
+ * @param child {SVGGElement} Layer SVG group.
+ */
+svgedit.draw.Layer = function(name, group) {
+	this.name_ = name;
+	this.group_ = group;
+};
+
+svgedit.draw.Layer.prototype.getName = function() {
+	return this.name_;
+};
+
+svgedit.draw.Layer.prototype.getGroup = function() {
+	return this.group_;
+};
+
+
+// Called to ensure that drawings will or will not have randomized ids.
+// The current_drawing will have its nonce set if it doesn't already.
+// 
+// Params:
+// enableRandomization - flag indicating if documents should have randomized ids
+svgedit.draw.randomizeIds = function(enableRandomization, current_drawing) {
+	randomize_ids = enableRandomization == false ?
+		RandomizeModes.NEVER_RANDOMIZE :
+		RandomizeModes.ALWAYS_RANDOMIZE;
+
+	if (randomize_ids == RandomizeModes.ALWAYS_RANDOMIZE && !current_drawing.getNonce()) {
+		current_drawing.setNonce(Math.floor(Math.random() * 100001));
+	} else if (randomize_ids == RandomizeModes.NEVER_RANDOMIZE && current_drawing.getNonce()) {
+		current_drawing.clearNonce();
+	}
+};
+
+/**
+ * This class encapsulates the concept of a SVG-edit drawing
+ *
+ * @param svgElem {SVGSVGElement} The SVG DOM Element that this JS object
+ *     encapsulates.  If the svgElem has a se:nonce attribute on it, then
+ *     IDs will use the nonce as they are generated.
+ * @param opt_idPrefix {String} The ID prefix to use.  Defaults to "svg_"
+ *     if not specified.
+ */
+svgedit.draw.Drawing = function(svgElem, opt_idPrefix) {
+	if (!svgElem || !svgElem.tagName || !svgElem.namespaceURI ||
+		svgElem.tagName != 'svg' || svgElem.namespaceURI != svg_ns) {
+		throw "Error: svgedit.draw.Drawing instance initialized without a <svg> element";
+	}
+
+	/**
+	 * The SVG DOM Element that represents this drawing.
+	 * @type {SVGSVGElement}
+	 */
+	this.svgElem_ = svgElem;
+	
+	/**
+	 * The latest object number used in this drawing.
+	 * @type {number}
+	 */
+	this.obj_num = 0;
+	
+	/**
+	 * The prefix to prepend to each element id in the drawing.
+	 * @type {String}
+	 */
+	this.idPrefix = opt_idPrefix || "svg_";
+	
+	/**
+	 * An array of released element ids to immediately reuse.
+	 * @type {Array.<number>}
+	 */
+	this.releasedNums = [];
+
+	/**
+	 * The z-ordered array of tuples containing layer names and <g> elements.
+	 * The first layer is the one at the bottom of the rendering.
+	 * TODO: Turn this into an Array.<Layer>
+	 * @type {Array.<Array.<String, SVGGElement>>}
+	 */
+	this.all_layers = [];
+
+	/**
+	 * The current layer being used.
+	 * TODO: Make this a {Layer}.
+	 * @type {SVGGElement}
+	 */
+	this.current_layer = null;
+
+	/**
+	 * The nonce to use to uniquely identify elements across drawings.
+	 * @type {!String}
+	 */
+	this.nonce_ = "";
+	var n = this.svgElem_.getAttributeNS(se_ns, 'nonce');
+	// If already set in the DOM, use the nonce throughout the document
+	// else, if randomizeIds(true) has been called, create and set the nonce.
+	if (!!n && randomize_ids != RandomizeModes.NEVER_RANDOMIZE) {
+		this.nonce_ = n;
+	} else if (randomize_ids == RandomizeModes.ALWAYS_RANDOMIZE) {
+		this.setNonce(Math.floor(Math.random() * 100001));
+	}
+};
+
+svgedit.draw.Drawing.prototype.getElem_ = function(id) {
+	if(this.svgElem_.querySelector) {
+		// querySelector lookup
+		return this.svgElem_.querySelector('#'+id);
+	} else {
+		// jQuery lookup: twice as slow as xpath in FF
+		return $(this.svgElem_).find('[id=' + id + ']')[0];
+	}
+};
+
+svgedit.draw.Drawing.prototype.getSvgElem = function() {
+	return this.svgElem_;
+};
+
+svgedit.draw.Drawing.prototype.getNonce = function() {
+	return this.nonce_;
+};
+
+svgedit.draw.Drawing.prototype.setNonce = function(n) {
+	this.svgElem_.setAttributeNS(xmlns_ns, 'xmlns:se', se_ns);
+	this.svgElem_.setAttributeNS(se_ns, 'se:nonce', n);
+	this.nonce_ = n;
+};
+
+svgedit.draw.Drawing.prototype.clearNonce = function() {
+	// We deliberately leave any se:nonce attributes alone,
+	// we just don't use it to randomize ids.
+	this.nonce_ = "";
+};
+
+/**
+ * Returns the latest object id as a string.
+ * @return {String} The latest object Id.
+ */
+svgedit.draw.Drawing.prototype.getId = function() {
+	return this.nonce_ ?
+		this.idPrefix + this.nonce_ +'_' + this.obj_num :
+ 		this.idPrefix + this.obj_num;
+};
+
+/**
+ * Returns the next object Id as a string.
+ * @return {String} The next object Id to use.
+ */
+svgedit.draw.Drawing.prototype.getNextId = function() {
+	var oldObjNum = this.obj_num;
+	var restoreOldObjNum = false;
+
+	// If there are any released numbers in the release stack, 
+	// use the last one instead of the next obj_num.
+	// We need to temporarily use obj_num as that is what getId() depends on.
+	if (this.releasedNums.length > 0) {
+		this.obj_num = this.releasedNums.pop();
+		restoreOldObjNum = true;
+	} else {
+		// If we are not using a released id, then increment the obj_num.
+		this.obj_num++;
+	}
+
+	// Ensure the ID does not exist.
+	var id = this.getId();
+	while (this.getElem_(id)) {
+		if (restoreOldObjNum) {
+			this.obj_num = oldObjNum;
+			restoreOldObjNum = false;
+		}
+		this.obj_num++;
+		id = this.getId();
+	}
+	// Restore the old object number if required.
+	if (restoreOldObjNum) {
+		this.obj_num = oldObjNum;
+	}
+	return id;
+};
+
+// Function: svgedit.draw.Drawing.releaseId
+// Releases the object Id, letting it be used as the next id in getNextId().
+// This method DOES NOT remove any elements from the DOM, it is expected
+// that client code will do this.
+//
+// Parameters:
+// id - The id to release.
+//
+// Returns:
+// True if the id was valid to be released, false otherwise.
+svgedit.draw.Drawing.prototype.releaseId = function(id) {
+	// confirm if this is a valid id for this Document, else return false
+	var front = this.idPrefix + (this.nonce_ ? this.nonce_ +'_' : '');
+	if (typeof id != typeof '' || id.indexOf(front) != 0) {
+		return false;
+	}
+	// extract the obj_num of this id
+	var num = parseInt(id.substr(front.length));
+
+	// if we didn't get a positive number or we already released this number
+	// then return false.
+	if (typeof num != typeof 1 || num <= 0 || this.releasedNums.indexOf(num) != -1) {
+		return false;
+	}
+	
+	// push the released number into the released queue
+	this.releasedNums.push(num);
+
+	return true;
+};
+
+// Function: svgedit.draw.Drawing.getNumLayers
+// Returns the number of layers in the current drawing.
+// 
+// Returns:
+// The number of layers in the current drawing.
+svgedit.draw.Drawing.prototype.getNumLayers = function() {
+	return this.all_layers.length;
+};
+
+// Function: svgedit.draw.Drawing.hasLayer
+// Check if layer with given name already exists
+svgedit.draw.Drawing.prototype.hasLayer = function(name) {
+	for(var i = 0; i < this.getNumLayers(); i++) {
+		if(this.all_layers[i][0] == name) return true;
+	}
+	return false;
+};
+
+
+// Function: svgedit.draw.Drawing.getLayerName
+// Returns the name of the ith layer. If the index is out of range, an empty string is returned.
+//
+// Parameters:
+// i - the zero-based index of the layer you are querying.
+// 
+// Returns:
+// The name of the ith layer
+svgedit.draw.Drawing.prototype.getLayerName = function(i) {
+	if (i >= 0 && i < this.getNumLayers()) {
+		return this.all_layers[i][0];
+	}
+	return "";
+};
+
+// Function: svgedit.draw.Drawing.getCurrentLayer
+// Returns:
+// The SVGGElement representing the current layer.
+svgedit.draw.Drawing.prototype.getCurrentLayer = function() {
+	return this.current_layer;
+};
+
+// Function: getCurrentLayerName
+// Returns the name of the currently selected layer. If an error occurs, an empty string 
+// is returned.
+//
+// Returns:
+// The name of the currently active layer.
+svgedit.draw.Drawing.prototype.getCurrentLayerName = function() {
+	for (var i = 0; i < this.getNumLayers(); ++i) {
+		if (this.all_layers[i][1] == this.current_layer) {
+			return this.getLayerName(i);
+		}
+	}
+	return "";
+};
+
+// Function: setCurrentLayer
+// Sets the current layer. If the name is not a valid layer name, then this function returns
+// false. Otherwise it returns true. This is not an undo-able action.
+//
+// Parameters:
+// name - the name of the layer you want to switch to.
+//
+// Returns:
+// true if the current layer was switched, otherwise false
+svgedit.draw.Drawing.prototype.setCurrentLayer = function(name) {
+	for (var i = 0; i < this.getNumLayers(); ++i) {
+		if (name == this.getLayerName(i)) {
+			if (this.current_layer != this.all_layers[i][1]) {
+				this.current_layer.setAttribute("style", "pointer-events:none");
+				this.current_layer = this.all_layers[i][1];
+				this.current_layer.setAttribute("style", "pointer-events:all");
+			}
+			return true;
+		}
+	}
+	return false;
+};
+
+
+// Function: svgedit.draw.Drawing.deleteCurrentLayer
+// Deletes the current layer from the drawing and then clears the selection. This function 
+// then calls the 'changed' handler.  This is an undoable action.
+// Returns:
+// The SVGGElement of the layer removed or null.
+svgedit.draw.Drawing.prototype.deleteCurrentLayer = function() {
+	if (this.current_layer && this.getNumLayers() > 1) {
+		// actually delete from the DOM and return it
+		var parent = this.current_layer.parentNode;
+		var nextSibling = this.current_layer.nextSibling;
+		var oldLayerGroup = parent.removeChild(this.current_layer);
+		this.identifyLayers();
+		return oldLayerGroup;
+	}
+	return null;
+};
+
+// Function: svgedit.draw.Drawing.identifyLayers
+// Updates layer system and sets the current layer to the
+// top-most layer (last <g> child of this drawing).
+svgedit.draw.Drawing.prototype.identifyLayers = function() {
+	this.all_layers = [];
+	var numchildren = this.svgElem_.childNodes.length;
+	// loop through all children of SVG element
+	var orphans = [], layernames = [];
+	var a_layer = null;
+	var childgroups = false;
+	for (var i = 0; i < numchildren; ++i) {
+		var child = this.svgElem_.childNodes.item(i);
+		// for each g, find its layer name
+		if (child && child.nodeType == 1) {
+			if (child.tagName == "g") {
+				childgroups = true;
+				var name = $("title",child).text();
+				
+				// Hack for Opera 10.60
+				if(!name && svgedit.browser.isOpera() && child.querySelectorAll) {
+					name = $(child.querySelectorAll('title')).text();
+				}
+
+				// store layer and name in global variable
+				if (name) {
+					layernames.push(name);
+					this.all_layers.push( [name,child] );
+					a_layer = child;
+					svgedit.utilities.walkTree(child, function(e){e.setAttribute("style", "pointer-events:inherit");});
+					a_layer.setAttribute("style", "pointer-events:none");
+				}
+				// if group did not have a name, it is an orphan
+				else {
+					orphans.push(child);
+				}
+			}
+			// if child has is "visible" (i.e. not a <title> or <defs> element), then it is an orphan
+			else if(~visElems_arr.indexOf(child.nodeName)) {
+				var bb = svgedit.utilities.getBBox(child);
+				orphans.push(child);
+			}
+		}
+	}
+	
+	// create a new layer and add all the orphans to it
+	var svgdoc = this.svgElem_.ownerDocument;
+	if (orphans.length > 0 || !childgroups) {
+		var i = 1;
+		// TODO(codedread): What about internationalization of "Layer"?
+		while (layernames.indexOf(("Layer " + i)) >= 0) { i++; }
+		var newname = "Layer " + i;
+		a_layer = svgdoc.createElementNS(svg_ns, "g");
+		var layer_title = svgdoc.createElementNS(svg_ns, "title");
+		layer_title.textContent = newname;
+		a_layer.appendChild(layer_title);
+		for (var j = 0; j < orphans.length; ++j) {
+			a_layer.appendChild(orphans[j]);
+		}
+		this.svgElem_.appendChild(a_layer);
+		this.all_layers.push( [newname, a_layer] );
+	}
+	svgedit.utilities.walkTree(a_layer, function(e){e.setAttribute("style","pointer-events:inherit");});
+	this.current_layer = a_layer;
+	this.current_layer.setAttribute("style","pointer-events:all");
+};
+
+// Function: svgedit.draw.Drawing.createLayer
+// Creates a new top-level layer in the drawing with the given name and 
+// sets the current layer to it.
+//
+// Parameters:
+// name - The given name
+//
+// Returns:
+// The SVGGElement of the new layer, which is also the current layer
+// of this drawing.
+svgedit.draw.Drawing.prototype.createLayer = function(name) {
+	var svgdoc = this.svgElem_.ownerDocument;
+	var new_layer = svgdoc.createElementNS(svg_ns, "g");
+	var layer_title = svgdoc.createElementNS(svg_ns, "title");
+	layer_title.textContent = name;
+	new_layer.appendChild(layer_title);
+	this.svgElem_.appendChild(new_layer);
+	this.identifyLayers();
+	return new_layer;
+};
+
+// Function: svgedit.draw.Drawing.getLayerVisibility
+// Returns whether the layer is visible.  If the layer name is not valid, then this function
+// returns false.
+//
+// Parameters:
+// layername - the name of the layer which you want to query.
+//
+// Returns:
+// The visibility state of the layer, or false if the layer name was invalid.
+svgedit.draw.Drawing.prototype.getLayerVisibility = function(layername) {
+	// find the layer
+	var layer = null;
+	for (var i = 0; i < this.getNumLayers(); ++i) {
+		if (this.getLayerName(i) == layername) {
+			layer = this.all_layers[i][1];
+			break;
+		}
+	}
+	if (!layer) return false;
+	return (layer.getAttribute('display') != 'none');
+};
+
+// Function: svgedit.draw.Drawing.setLayerVisibility
+// Sets the visibility of the layer. If the layer name is not valid, this function return 
+// false, otherwise it returns true. This is an undo-able action.
+//
+// Parameters:
+// layername - the name of the layer to change the visibility
+// bVisible - true/false, whether the layer should be visible
+//
+// Returns:
+// The SVGGElement representing the layer if the layername was valid, otherwise null.
+svgedit.draw.Drawing.prototype.setLayerVisibility = function(layername, bVisible) {
+	if (typeof bVisible != typeof true) {
+		return null;
+	}
+	// find the layer
+	var layer = null;
+	for (var i = 0; i < this.getNumLayers(); ++i) {
+		if (this.getLayerName(i) == layername) {
+			layer = this.all_layers[i][1];
+			break;
+		}
+	}
+	if (!layer) return null;
+	
+	var oldDisplay = layer.getAttribute("display");
+	if (!oldDisplay) oldDisplay = "inline";
+	layer.setAttribute("display", bVisible ? "inline" : "none");
+	return layer;
+};
+
+
+// Function: svgedit.draw.Drawing.getLayerOpacity
+// Returns the opacity of the given layer.  If the input name is not a layer, null is returned.
+//
+// Parameters: 
+// layername - name of the layer on which to get the opacity
+//
+// Returns:
+// The opacity value of the given layer.  This will be a value between 0.0 and 1.0, or null
+// if layername is not a valid layer
+svgedit.draw.Drawing.prototype.getLayerOpacity = function(layername) {
+	for (var i = 0; i < this.getNumLayers(); ++i) {
+		if (this.getLayerName(i) == layername) {
+			var g = this.all_layers[i][1];
+			var opacity = g.getAttribute('opacity');
+			if (!opacity) {
+				opacity = '1.0';
+			}
+			return parseFloat(opacity);
+		}
+	}
+	return null;
+};
+
+// Function: svgedit.draw.Drawing.setLayerOpacity
+// Sets the opacity of the given layer.  If the input name is not a layer, nothing happens.
+// If opacity is not a value between 0.0 and 1.0, then nothing happens.
+//
+// Parameters:
+// layername - name of the layer on which to set the opacity
+// opacity - a float value in the range 0.0-1.0
+svgedit.draw.Drawing.prototype.setLayerOpacity = function(layername, opacity) {
+	if (typeof opacity != typeof 1.0 || opacity < 0.0 || opacity > 1.0) {
+		return;
+	}
+	for (var i = 0; i < this.getNumLayers(); ++i) {
+		if (this.getLayerName(i) == layername) {
+			var g = this.all_layers[i][1];
+			g.setAttribute("opacity", opacity);
+			break;
+		}
+	}
+};
+
+})();

+ 18 - 2
main/inc/lib/svg-edit/embedapi.js

@@ -66,13 +66,29 @@ function embedded_svg_edit(frame){
   //Run in firebug on http://svg-edit.googlecode.com/svn/trunk/docs/files/svgcanvas-js.html
   
   //for(var i=0,q=[],f = document.querySelectorAll("div.CFunction h3.CTitle a");i<f.length;i++){q.push(f[i].name)};q
-  //var functions = ["clearSelection", "addToSelection", "removeFromSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getNumLayers", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear"];
+  //var functions = ["clearSelection", "addToSelection", "removeFromSelection", "open", "save", "getSvgString", "setSvgString",
+  //"createLayer", "deleteCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "setLayerVisibility",
+  //"moveSelectedToLayer", "clear"];
   
   
   //Newer, well, it extracts things that aren't documented as well. All functions accessible through the normal thingy can now be accessed though the API
   //var l=[];for(var i in svgCanvas){if(typeof svgCanvas[i] == "function"){l.push(i)}};
   //run in svgedit itself
-  var functions = ["updateElementFromJson", "embedImage", "fixOperaXML", "clearSelection", "addToSelection", "removeFromSelection", "addNodeToSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getNumLayers", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear", "clearPath", "getNodePoint", "clonePathNode", "deletePathNode", "getResolution", "getImageTitle", "setImageTitle", "setResolution", "setBBoxZoom", "setZoom", "getMode", "setMode", "getStrokeColor", "setStrokeColor", "getFillColor", "setFillColor", "setStrokePaint", "setFillPaint", "getStrokeWidth", "setStrokeWidth", "getStrokeStyle", "setStrokeStyle", "getOpacity", "setOpacity", "getFillOpacity", "setFillOpacity", "getStrokeOpacity", "setStrokeOpacity", "getTransformList", "getBBox", "getRotationAngle", "setRotationAngle", "each", "bind", "setIdPrefix", "getBold", "setBold", "getItalic", "setItalic", "getFontFamily", "setFontFamily", "getFontSize", "setFontSize", "getText", "setTextContent", "setImageURL", "setRectRadius", "setSegType", "quickClone", "beginUndoableChange", "changeSelectedAttributeNoUndo", "finishUndoableChange", "changeSelectedAttribute", "deleteSelectedElements", "groupSelectedElements", "ungroupSelectedElement", "moveToTopSelectedElement", "moveToBottomSelectedElement", "moveSelectedElements", "getStrokedBBox", "getVisibleElements", "cycleElement", "getUndoStackSize", "getRedoStackSize", "getNextUndoCommandText", "getNextRedoCommandText", "undo", "redo", "cloneSelectedElements", "alignSelectedElements", "getZoom", "getVersion", "setIconSize", "setLang", "setCustomHandlers"]
+  var functions = ["updateElementFromJson", "embedImage", "fixOperaXML", "clearSelection", "addToSelection",
+		"removeFromSelection", "addNodeToSelection", "open", "save", "getSvgString", "setSvgString", "createLayer",
+		"deleteCurrentLayer", "getCurrentDrawing", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition",
+		"setLayerVisibility", "moveSelectedToLayer", "clear", "clearPath", "getNodePoint", "clonePathNode", "deletePathNode",
+		"getResolution", "getImageTitle", "setImageTitle", "setResolution", "setBBoxZoom", "setZoom", "getMode", "setMode",
+		"getStrokeColor", "setStrokeColor", "getFillColor", "setFillColor", "setStrokePaint", "setFillPaint", "getStrokeWidth",
+		"setStrokeWidth", "getStrokeStyle", "setStrokeStyle", "getOpacity", "setOpacity", "getFillOpacity", "setFillOpacity",
+		"getStrokeOpacity", "setStrokeOpacity", "getTransformList", "getBBox", "getRotationAngle", "setRotationAngle", "each",
+		"bind", "setIdPrefix", "getBold", "setBold", "getItalic", "setItalic", "getFontFamily", "setFontFamily", "getFontSize",
+		"setFontSize", "getText", "setTextContent", "setImageURL", "setRectRadius", "setSegType", "quickClone",
+		"changeSelectedAttributeNoUndo", "changeSelectedAttribute", "deleteSelectedElements", "groupSelectedElements",
+		"ungroupSelectedElement", "moveToTopSelectedElement", "moveToBottomSelectedElement", "moveSelectedElements",
+		"getStrokedBBox", "getVisibleElements", "cycleElement", "getUndoStackSize", "getRedoStackSize", "getNextUndoCommandText",
+		"getNextRedoCommandText", "undo", "redo", "cloneSelectedElements", "alignSelectedElements", "getZoom", "getVersion",
+		"setIconSize", "setLang", "setCustomHandlers"];
   
   //TODO: rewrite the following, it's pretty scary.
   for(var i = 0; i < functions.length; i++){

+ 2 - 2
main/inc/lib/svg-edit/extensions/ext-arrows.js

@@ -15,8 +15,8 @@ svgEditor.addExtension("Arrows", function(S) {
 			randomize_ids = S.randomize_ids,
 			selElems;
 
-		svgCanvas.bind('setarrownonce', setArrowNonce);
-		svgCanvas.bind('unsetsetarrownonce', unsetArrowNonce);
+		svgCanvas.bind('setnonce', setArrowNonce);
+		svgCanvas.bind('unsetnonce', unsetArrowNonce);
 			
 		var lang_list = {
 			"en":[

+ 1 - 2
main/inc/lib/svg-edit/extensions/ext-connector.js

@@ -251,7 +251,7 @@ svgEditor.addExtension("Connector", function(S) {
 		
 		svgCanvas.groupSelectedElements = function() {
 			svgCanvas.removeFromSelection($(conn_sel).toArray());
-			gse();
+			return gse.apply(this, arguments);
 		}
 		
 		var mse = svgCanvas.moveSelectedElements;
@@ -305,7 +305,6 @@ svgEditor.addExtension("Connector", function(S) {
 			type: "mode",
 			icon: "images/cut.png",
 			title: "Connect two objects",
-			key: "Shift+3",
 			includeWith: {
 				button: '#tool_line',
 				isDefault: false,

+ 11 - 3
main/inc/lib/svg-edit/extensions/ext-eyedropper.js

@@ -7,12 +7,19 @@
  *
  */
 
+// Dependencies:
+// 1) jQuery
+// 2) history.js
+// 3) svg_editor.js
+// 4) svgcanvas.js
+
 svgEditor.addExtension("eyedropper", function(S) {
 		var svgcontent = S.svgcontent,
 			svgns = "http://www.w3.org/2000/svg",
 			svgdoc = S.svgroot.parentNode.ownerDocument,
-			ChangeElementCommand = svgCanvas.getPrivateMethods().ChangeElementCommand,
-			addToHistory = svgCanvas.getPrivateMethods().addCommandToHistory,
+			svgCanvas = svgEditor.canvas,
+			ChangeElementCommand = svgedit.history.ChangeElementCommand,
+			addToHistory = function(cmd) { svgCanvas.undoMgr.addCommandToHistory(cmd); },
 			currentStyle = {fillPaint: "red", fillOpacity: 1.0,
 							strokePaint: "black", strokeOpacity: 1.0, 
 							strokeWidth: 5, strokeDashArray: null,
@@ -29,7 +36,7 @@ svgEditor.addExtension("eyedropper", function(S) {
 			var elem = null;
 			var tool = $('#tool_eyedropper');
 			// enable-eye-dropper if one element is selected
-			if (opts.elems.length == 1 && opts.elems[0] && 
+			if (!opts.multiselected && opts.elems[0] &&
 				$.inArray(opts.elems[0].nodeName, ['svg', 'g', 'use']) == -1) 
 			{
 				elem = opts.elems[0];
@@ -59,6 +66,7 @@ svgEditor.addExtension("eyedropper", function(S) {
 				id: "tool_eyedropper",
 				type: "mode",
 				title: "Eye Dropper Tool",
+				key: "I",
 				events: {
 					"click": function() {
 						svgCanvas.setMode("eyedropper");

+ 108 - 74
main/inc/lib/svg-edit/extensions/ext-grid.js

@@ -4,51 +4,27 @@
  * Licensed under the Apache License, Version 2
  *
  * Copyright(c) 2010 Redou Mine
+ * Copyright(c) 2010 Alexis Deveria
  *
  */
 
+// Dependencies:
+// 1) units.js
+// 2) everything else
+
 svgEditor.addExtension("view_grid", function(s) {
-    /* 
-    * Config for grid-lines
-    */
-    var gridConfig = {
-        '1x1': { height: 1, width: 1, color: '#CCC', strokeWidth: 0.05, opacity: 1 },
-        '5x5': { height: 5, width: 5, color: '#BBB', strokeWidth: 0.2, opacity: 1 },
-        '10x10': { height: 10, width: 10, color: '#AAA', strokeWidth: 0.2, opacity: 1 },
-        '100x100': { height: 100, width: 100, color: '#888', strokeWidth: 0.2, opacity: 1 }
-    };
 
     var svgdoc = document.getElementById("svgcanvas").ownerDocument,
 			svgns = "http://www.w3.org/2000/svg",
 			dims = svgEditor.curConfig.dimensions,
 			svgroot = s.svgroot;
 
-    /*
-    * copied from svgcanvas.js line 1138-1157 (version: 2.5 rc1)
-    */
-    var assignAttributes = function(node, attrs, suspendLength, unitCheck) {
-        if (!suspendLength) suspendLength = 0;
-        // Opera has a problem with suspendRedraw() apparently
-        var handle = null;
-        if (!window.opera) svgroot.suspendRedraw(suspendLength);
-
-        for (var i in attrs) {
-            var ns = (i.substr(0, 4) == "xml:" ? xmlns :
-							i.substr(0, 6) == "xlink:" ? xlinkns : null);
-
-            if (ns || !unitCheck) {
-                node.setAttributeNS(ns, i, attrs[i]);
-            } else {
-                setUnitAttr(node, i, attrs[i]);
-            }
-
-        }
-
-        if (!window.opera) svgroot.unsuspendRedraw(handle);
-    };
+	var showGrid = false;
+    var assignAttributes = svgCanvas.assignAttributes;
+    
+    var hcanvas = document.createElement('canvas');
+    $(hcanvas).hide().appendTo('body');
 
-
-    // create svg for grid
     var canvasgrid = svgdoc.createElementNS(svgns, "svg");
     assignAttributes(canvasgrid, {
         'id': 'canvasGrid',
@@ -57,46 +33,32 @@ svgEditor.addExtension("view_grid", function(s) {
         'x': 0,
         'y': 0,
         'overflow': 'visible',
-        'viewBox': '0 0 ' + dims[0] + ' ' + dims[1],
         'display': 'none'
     });
-    $('#canvasBackground').append(canvasgrid);
+    
+    var canvBG = $('#canvasBackground');
+    canvBG.append(canvasgrid);
 
-    // create each grid
-    $.each(gridConfig, function(key, value) {
         // grid-pattern
         var gridPattern = svgdoc.createElementNS(svgns, "pattern");
         assignAttributes(gridPattern, {
-            'id': 'gridpattern' + key,
+            'id': 'gridpattern',
             'patternUnits': 'userSpaceOnUse',
-            'x': -(value.strokeWidth / 2), // position for strokewidth
-            'y': -(value.strokeWidth / 2), // position for strokewidth
-            'width': value.width,
-            'height': value.height
-        });
-        var gridPattern_hoLine = svgdoc.createElementNS(svgns, "line");
-        assignAttributes(gridPattern_hoLine, {
-            'fill': 'none',
-            'stroke-width': value.strokeWidth,
-            'x1': 0,
-            'y1': 0,
-            'x2': value.width,
-            'y2': 0,
-            'stroke': value.color
+            'x': 0, //-(value.strokeWidth / 2), // position for strokewidth
+            'y': 0, //-(value.strokeWidth / 2), // position for strokewidth
+            'width': 100,
+            'height': 100
         });
-        var gridPattern_veLine = svgdoc.createElementNS(svgns, "line");
-        assignAttributes(gridPattern_veLine, {
-            'fill': 'none',
-            'stroke-width': value.strokeWidth,
-            'x1': 0,
-            'y1': 0,
-            'x2': 0,
-            'y2': value.height,
-            'stroke': value.color
+        
+        var gridimg = svgdoc.createElementNS(svgns, "image");
+        assignAttributes(gridimg, {
+            'x': 0,
+            'y': 0,
+            'width': 100,
+            'height': 100
         });
-
-        gridPattern.appendChild(gridPattern_hoLine);
-        gridPattern.appendChild(gridPattern_veLine);
+        
+        gridPattern.appendChild(gridimg);
         $('#svgroot defs').append(gridPattern);
 
         // grid-box
@@ -108,38 +70,110 @@ svgEditor.addExtension("view_grid", function(s) {
             'y': 0,
             'stroke-width': 0,
             'stroke': 'none',
-            'fill': 'url(#gridpattern' + key + ')',
-            'opacity': value.opacity,
+            'fill': 'url(#gridpattern)',
             'style': 'pointer-events: none; display:visible;'
         });
         $('#canvasGrid').append(gridBox);
-    });
+//     });
+
+	function updateGrid(zoom) {
+		// TODO: Try this with <line> elements, then compare performance difference
+	
+		var bgwidth = +canvBG.attr('width');
+		var bgheight = +canvBG.attr('height');
+		
+		var units = svgedit.units.getTypeMap();
+		var unit = units[svgEditor.curConfig.baseUnit]; // 1 = 1px
+		var r_intervals = [.01, .1, 1, 10, 100, 1000];
+	
+		var d = 0;
+		var is_x = (d === 0);
+		var dim = is_x ? 'x' : 'y';
+		var lentype = is_x?'width':'height';
+		var c_elem = svgCanvas.getContentElem();
+		var content_d = c_elem.getAttribute(dim)-0;
+		
+		var hcanv = hcanvas;
+		
+		var u_multi = unit * zoom;
+		
+		// Calculate the main number interval
+		var raw_m = 100 / u_multi;
+		var multi = 1;
+		for(var i = 0; i < r_intervals.length; i++) {
+			var num = r_intervals[i];
+			multi = num;
+			if(raw_m <= num) {
+				break;
+			}
+		}
+		
+		var big_int = multi * u_multi;
+
+		// Set the canvas size to the width of the container
+		hcanv.width = big_int;
+		hcanv.height = big_int;
+		var ctx = hcanv.getContext("2d");
+
+		var ruler_d = 0; 
+		var cur_d = .5;
+		
+		var part = big_int / 10;
+
+		ctx.globalAlpha = 0.2;
+		ctx.strokeStyle = "#000";
+		for(var i = 1; i < 10; i++) {
+			var sub_d = Math.round(part * i) + .5;
+// 					var line_num = (i % 2)?12:10;
+			var line_num = 0;
+			ctx.moveTo(sub_d, big_int);
+			ctx.lineTo(sub_d, line_num);
+			ctx.moveTo(big_int, sub_d);
+			ctx.lineTo(line_num ,sub_d);
+		}
+		ctx.stroke();
+		ctx.beginPath();  
+		ctx.globalAlpha = 0.5;
+		ctx.moveTo(cur_d, big_int);
+		ctx.lineTo(cur_d, 0);
+
+		ctx.moveTo(big_int, cur_d);
+		ctx.lineTo(0, cur_d);
+		ctx.stroke();
+
+		var datauri = hcanv.toDataURL('image/png');
+		gridimg.setAttribute('width', big_int);
+		gridimg.setAttribute('height', big_int);
+		gridimg.parentNode.setAttribute('width', big_int);
+		gridimg.parentNode.setAttribute('height', big_int);
+		svgCanvas.setHref(gridimg, datauri);
+	}
 
     return {
         name: "view_grid",
         svgicons: "extensions/grid-icon.xml",
 
-        zoomChanged: function(zoomlevel) {
+        zoomChanged: function(zoom) {
             // update size
-            var viewBox = "0 0 " + svgCanvas.contentW + " " + svgCanvas.contentH;
-            $('#canvasGrid').attr("viewBox", viewBox);
+            if(showGrid) updateGrid(zoom);
         },
 
         buttons: [{
             id: "view_grid",
             type: "context",
             panel: "editor_panel",
-            title: "Show/Hide Grid [G]",
+            title: "Show/Hide Grid",
             events: {
                 'click': function() {
                     var gr = !$('#view_grid').hasClass('push_button_pressed');
                     if (gr) {
-                        svgEditor.curConfig.gridSnapping = true;
+                        svgEditor.curConfig.showGrid = showGrid = true;
                         $('#view_grid').addClass('push_button_pressed').removeClass('tool_button');
                         $('#canvasGrid').attr('display', 'normal');
+                        updateGrid(svgCanvas.getZoom());
                     }
                     else {
-                        svgEditor.curConfig.gridSnapping = false;
+                        svgEditor.curConfig.showGrid = showGrid = false;
                         $('#view_grid').removeClass('push_button_pressed').addClass('tool_button');
                         $('#canvasGrid').attr('display', 'none');
                     }

+ 34 - 14
main/inc/lib/svg-edit/extensions/ext-imagelib.js

@@ -9,8 +9,21 @@
 
 svgEditor.addExtension("imagelib", function() {
 	//Chamilo change library title and index.html by index.php
+	
+	var uiStrings = svgEditor.uiStrings;
+	
+	$.extend(uiStrings, {
+		imagelib: {
+			select_lib: 'Select an image library',
+			show_list: 'Show library list',
+			import_single: 'Import single',
+			import_multi: 'Import multiple',
+			open: 'Open as new document'
+		}
+	});
+
 	var img_libs = [{
-			name: 'Local library',
+			name: 'Local library (local)',
 			url: 'extensions/imagelib/index.php',
 			//description: 'Demonstration library for SVG-edit on this server'// Chamilo change this line by below
 			description: 'Course gallery'
@@ -26,7 +39,7 @@ svgEditor.addExtension("imagelib", function() {
 			url: 'extensions/imagelib/users.php',
 			//description: 'Demonstration library for SVG-edit on this server'// Chamilo change this line by below
 			description: 'Personal gallery'
-		}, 
+		},		
 		{
 			name: 'IAN Symbol Libraries',
 			url: 'http://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php',
@@ -41,7 +54,6 @@ svgEditor.addExtension("imagelib", function() {
 	}
 	
 	function importImage(url) {
-		
 		var newImage = svgCanvas.addSvgElementFromJson({
 			"element": "image",
 			"attr": {
@@ -63,9 +75,10 @@ svgEditor.addExtension("imagelib", function() {
 	var cur_meta;
 	var tranfer_stopped = false;
 	var pending = {};
+	
 	//Juan Carlos Raña Trabado hack for Chamilo add window.top. on the bottom line to run into a frame
-	 window.top.window.addEventListener("message", function(evt) {
-						 
+	window.top.window.addEventListener("message", function(evt) {							 
+												 
 		// Receive postMessage data
 		var response = evt.data;
 		
@@ -104,7 +117,9 @@ svgEditor.addExtension("imagelib", function() {
 				
 				pending[cur_meta.id] = cur_meta;
 				
-				var message = 'Retrieving "' + (cur_meta.name || 'file') + '"...';
+				var name = (cur_meta.name || 'file');
+				
+				var message = uiStrings.notification.retrieving.replace('%s', name);
 				
 				if(mode != 'm') {
 					$.process_cancel(message, function() {
@@ -161,7 +176,6 @@ svgEditor.addExtension("imagelib", function() {
 		switch (mode) {
 			case 's':
 				// Import one
-
 				if(svg_str) {
 					svgCanvas.importSvgString(response);
 				} else if(img_str) {
@@ -250,11 +264,11 @@ svgEditor.addExtension("imagelib", function() {
 				overflow: 'auto'
 			}).insertAfter('#lib_framewrap');
 			
-			submit = $('<button disabled>Import selected-</button>').appendTo('#imgbrowse').click(function() {
+			submit = $('<button disabled>Import selected</button>').appendTo('#imgbrowse').click(function() {
 				$.each(multi_arr, function(i) {
 					var type = this[0];
 					var data = this[1];
-					if(type == 'svg') {						
+					if(type == 'svg') {
 						svgCanvas.importSvgString(data);
 					} else {
 						importImage(data);
@@ -277,13 +291,14 @@ svgEditor.addExtension("imagelib", function() {
 	}
 
 	function showBrowser() {
+
 		var browser = $('#imgbrowse');
 		if(!browser.length) {
 			$('<div id=imgbrowse_holder><div id=imgbrowse class=toolbar_button>\
 			</div></div>').insertAfter('#svg_docprops');
 			browser = $('#imgbrowse');
 
-			var all_libs = 'Select an image library';
+			var all_libs = uiStrings.imagelib.select_lib;
 
 			var lib_opts = $('<ul id=imglib_opts>').appendTo(browser);
 			var frame = $('<iframe/>').prependTo(browser).hide().wrap('<div id=lib_framewrap>');
@@ -295,7 +310,7 @@ svgEditor.addExtension("imagelib", function() {
 				width: '100%'
 			});
 			
-			var cancel = $('<button>Cancel</button>').appendTo(browser).click(function() {
+			var cancel = $('<button>' + uiStrings.common.cancel + '</button>').appendTo(browser).click(function() {
 				$('#imgbrowse_holder').hide();
 			}).css({
 				position: 'absolute',
@@ -305,15 +320,19 @@ svgEditor.addExtension("imagelib", function() {
 			
 			var leftBlock = $('<span>').css({position:'absolute',top:5,left:10}).appendTo(browser);
 			
-			var back = $('<button>Show libraries</button>').appendTo(leftBlock).click(function() {
+			var back = $('<button hidden>' + uiStrings.imagelib.show_list + '</button>').appendTo(leftBlock).click(function() {
 				frame.attr('src', 'about:blank').hide();
 				lib_opts.show();
 				header.text(all_libs);
+				back.hide();
 			}).css({
 				'margin-right': 5
-			});
+			}).hide();
 			
-			var type = $('<select><option value=s>Import single</option><option value=m>Import multiple</option><option value=o>Open as new document</option></select>').appendTo(leftBlock).change(function() {
+			var type = $('<select><option value=s>' + 
+			uiStrings.imagelib.import_single + '</option><option value=m>' +
+			uiStrings.imagelib.import_multi + '</option><option value=o>' +
+			uiStrings.imagelib.open + '</option></select>').appendTo(leftBlock).change(function() {
 				mode = $(this).val();
 				switch (mode) {
 					case 's':
@@ -337,6 +356,7 @@ svgEditor.addExtension("imagelib", function() {
 					frame.attr('src', opts.url).show();
 					header.text(opts.name);
 					lib_opts.hide();
+					back.show();
 				}).append('<span>' + opts.description + '</span>');
 			});
 			

+ 3 - 5
main/inc/lib/svg-edit/extensions/ext-server_opensave.js

@@ -19,11 +19,10 @@ svgEditor.addExtension("server_opensave", {
 		svgEditor.setCustomHandlers({
 			save: function(win, data) {
 				var svg = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + data; // Chamilo add encoding="UTF-8"
-				
+
 				var title = svgCanvas.getDocumentTitle();
 				//var filename = title.replace(/[^a-z0-9\.\_\-]+/gi, '_');//Chamilo replace by below  
-				var filename =title;//Chamilo TODO:check if the filter through filesave.php is enough
-				
+				var filename =title;//Chamilo TODO:check if the filter through filesave.php is enough				
 				var form = $('<form>').attr({
 					method: 'post',
 					action: save_svg_action,
@@ -61,8 +60,7 @@ svgEditor.addExtension("server_opensave", {
 					
 					var title = svgCanvas.getDocumentTitle();
 					//var filename = title.replace(/[^a-z0-9\.\_\-]+/gi, '_');//Chamilo replace by below 
-					var filename =title;//Chamilo TODO:check if the filter through filesave.php is enough	
-					
+					var filename =title;//Chamilo TODO:check if the filter through filesave.php is enough
 					
 					var form = $('<form>').attr({
 						method: 'post',

+ 1 - 1
main/inc/lib/svg-edit/extensions/ext-shapes.js

@@ -280,7 +280,7 @@ svgEditor.addExtension("shapes", function() {
 			});
 			
 			// Make sure shape uses absolute values
-			if(current_d.charAt(0) === 'm') {
+			if(/[a-z]/.test(current_d)) {
 				current_d = cur_lib.data[cur_shape_id] = canv.pathActions.convertPath(cur_shape);
 				cur_shape.setAttribute('d', current_d);
 				canv.pathActions.fixEnd(cur_shape);

+ 601 - 0
main/inc/lib/svg-edit/history.js

@@ -0,0 +1,601 @@
+/**
+ * Package: svedit.history
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) jQuery
+// 2) svgtransformlist.js
+// 3) svgutils.js
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.history) {
+	svgedit.history = {};
+}
+
+// Group: Undo/Redo history management
+
+
+svgedit.history.HistoryEventTypes = {
+	BEFORE_APPLY: 'before_apply',
+	AFTER_APPLY: 'after_apply',
+	BEFORE_UNAPPLY: 'before_unapply',
+	AFTER_UNAPPLY: 'after_unapply'
+};
+
+var removedElements = {};
+
+/**
+ * Interface: svgedit.history.HistoryCommand
+ * An interface that all command objects must implement.
+ *
+ * interface svgedit.history.HistoryCommand {
+ *   void apply(svgedit.history.HistoryEventHandler);
+ *   void unapply(svgedit.history.HistoryEventHandler);
+ *   Element[] elements();
+ *   String getText();
+ *
+ *   static String type();
+ * }
+ *
+ * Interface: svgedit.history.HistoryEventHandler
+ * An interface for objects that will handle history events.
+ *
+ * interface svgedit.history.HistoryEventHandler {
+ *   void handleHistoryEvent(eventType, command);
+ * }
+ *
+ * eventType is a string conforming to one of the HistoryEvent types.
+ * command is an object fulfilling the HistoryCommand interface.
+ */
+
+// Class: svgedit.history.MoveElementCommand
+// implements svgedit.history.HistoryCommand
+// History command for an element that had its DOM position changed
+//
+// Parameters:
+// elem - The DOM element that was moved
+// oldNextSibling - The element's next sibling before it was moved
+// oldParent - The element's parent before it was moved
+// text - An optional string visible to user related to this change
+svgedit.history.MoveElementCommand = function(elem, oldNextSibling, oldParent, text) {
+	this.elem = elem;
+	this.text = text ? ("Move " + elem.tagName + " to " + text) : ("Move " + elem.tagName);
+	this.oldNextSibling = oldNextSibling;
+	this.oldParent = oldParent;
+	this.newNextSibling = elem.nextSibling;
+	this.newParent = elem.parentNode;
+};
+svgedit.history.MoveElementCommand.type = function() { return 'svgedit.history.MoveElementCommand'; }
+svgedit.history.MoveElementCommand.prototype.type = svgedit.history.MoveElementCommand.type;
+
+// Function: svgedit.history.MoveElementCommand.getText
+svgedit.history.MoveElementCommand.prototype.getText = function() {
+	return this.text;
+};
+
+// Function: svgedit.history.MoveElementCommand.apply
+// Re-positions the element
+svgedit.history.MoveElementCommand.prototype.apply = function(handler) {
+	// TODO(codedread): Refactor this common event code into a base HistoryCommand class.
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
+	}
+
+	this.elem = this.newParent.insertBefore(this.elem, this.newNextSibling);
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
+	}
+};
+
+// Function: svgedit.history.MoveElementCommand.unapply
+// Positions the element back to its original location
+svgedit.history.MoveElementCommand.prototype.unapply = function(handler) {
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
+	}
+		
+	this.elem = this.oldParent.insertBefore(this.elem, this.oldNextSibling);
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
+	}
+};
+
+// Function: svgedit.history.MoveElementCommand.elements
+// Returns array with element associated with this command
+svgedit.history.MoveElementCommand.prototype.elements = function() {
+	return [this.elem];
+};
+
+
+// Class: svgedit.history.InsertElementCommand
+// implements svgedit.history.HistoryCommand
+// History command for an element that was added to the DOM
+//
+// Parameters:
+// elem - The newly added DOM element
+// text - An optional string visible to user related to this change
+svgedit.history.InsertElementCommand = function(elem, text) {
+	this.elem = elem;
+	this.text = text || ("Create " + elem.tagName);
+	this.parent = elem.parentNode;
+	this.nextSibling = this.elem.nextSibling;
+};
+svgedit.history.InsertElementCommand.type = function() { return 'svgedit.history.InsertElementCommand'; }
+svgedit.history.InsertElementCommand.prototype.type = svgedit.history.InsertElementCommand.type;
+
+// Function: svgedit.history.InsertElementCommand.getText
+svgedit.history.InsertElementCommand.prototype.getText = function() {
+	return this.text;
+};
+
+// Function: svgedit.history.InsertElementCommand.apply
+// Re-Inserts the new element
+svgedit.history.InsertElementCommand.prototype.apply = function(handler) { 
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
+	}
+
+	this.elem = this.parent.insertBefore(this.elem, this.nextSibling); 
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
+	}
+};
+
+// Function: svgedit.history.InsertElementCommand.unapply
+// Removes the element
+svgedit.history.InsertElementCommand.prototype.unapply = function(handler) {
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
+	}
+
+	this.parent = this.elem.parentNode;
+	this.elem = this.elem.parentNode.removeChild(this.elem);
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
+	}
+};
+
+// Function: svgedit.history.InsertElementCommand.elements
+// Returns array with element associated with this command
+svgedit.history.InsertElementCommand.prototype.elements = function() {
+	return [this.elem];
+};
+
+
+// Class: svgedit.history.RemoveElementCommand
+// implements svgedit.history.HistoryCommand
+// History command for an element removed from the DOM
+//
+// Parameters:
+// elem - The removed DOM element
+// oldNextSibling - the DOM element's nextSibling when it was in the DOM
+// oldParent - The DOM element's parent
+// text - An optional string visible to user related to this change
+svgedit.history.RemoveElementCommand = function(elem, oldNextSibling, oldParent, text) {
+	this.elem = elem;
+	this.text = text || ("Delete " + elem.tagName);
+	this.nextSibling = oldNextSibling;
+	this.parent = oldParent;
+
+	// special hack for webkit: remove this element's entry in the svgTransformLists map
+	svgedit.transformlist.removeElementFromListMap(elem);
+};
+svgedit.history.RemoveElementCommand.type = function() { return 'svgedit.history.RemoveElementCommand'; }
+svgedit.history.RemoveElementCommand.prototype.type = svgedit.history.RemoveElementCommand.type;
+
+// Function: svgedit.history.RemoveElementCommand.getText
+svgedit.history.RemoveElementCommand.prototype.getText = function() {
+	return this.text;
+};
+
+// Function: RemoveElementCommand.apply
+// Re-removes the new element
+svgedit.history.RemoveElementCommand.prototype.apply = function(handler) {	
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
+	}
+
+	svgedit.transformlist.removeElementFromListMap(this.elem);
+	this.parent = this.elem.parentNode;
+	this.elem = this.parent.removeChild(this.elem);
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
+	}
+};
+
+// Function: RemoveElementCommand.unapply
+// Re-adds the new element
+svgedit.history.RemoveElementCommand.prototype.unapply = function(handler) { 
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
+	}
+
+	svgedit.transformlist.removeElementFromListMap(this.elem);
+	if(this.nextSibling == null) {
+		if(window.console) console.log('Error: reference element was lost');
+	}
+	this.parent.insertBefore(this.elem, this.nextSibling);
+
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
+	}
+};
+
+// Function: RemoveElementCommand.elements
+// Returns array with element associated with this command
+svgedit.history.RemoveElementCommand.prototype.elements = function() {
+	return [this.elem];
+};
+
+
+// Class: svgedit.history.ChangeElementCommand
+// implements svgedit.history.HistoryCommand
+// History command to make a change to an element. 
+// Usually an attribute change, but can also be textcontent.
+//
+// Parameters:
+// elem - The DOM element that was changed
+// attrs - An object with the attributes to be changed and the values they had *before* the change
+// text - An optional string visible to user related to this change
+svgedit.history.ChangeElementCommand = function(elem, attrs, text) {
+	this.elem = elem;
+	this.text = text ? ("Change " + elem.tagName + " " + text) : ("Change " + elem.tagName);
+	this.newValues = {};
+	this.oldValues = attrs;
+	for (var attr in attrs) {
+		if (attr == "#text") this.newValues[attr] = elem.textContent;
+		else if (attr == "#href") this.newValues[attr] = svgedit.utilities.getHref(elem);
+		else this.newValues[attr] = elem.getAttribute(attr);
+	}
+};
+svgedit.history.ChangeElementCommand.type = function() { return 'svgedit.history.ChangeElementCommand'; }
+svgedit.history.ChangeElementCommand.prototype.type = svgedit.history.ChangeElementCommand.type;
+
+// Function: svgedit.history.ChangeElementCommand.getText
+svgedit.history.ChangeElementCommand.prototype.getText = function() {
+	return this.text;
+};
+
+// Function: svgedit.history.ChangeElementCommand.apply
+// Performs the stored change action
+svgedit.history.ChangeElementCommand.prototype.apply = function(handler) {
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
+	}
+
+	var bChangedTransform = false;
+	for(var attr in this.newValues ) {
+		if (this.newValues[attr]) {
+			if (attr == "#text") this.elem.textContent = this.newValues[attr];
+			else if (attr == "#href") svgedit.utilities.setHref(this.elem, this.newValues[attr])
+			else this.elem.setAttribute(attr, this.newValues[attr]);
+		}
+		else {
+			if (attr == "#text") {
+				this.elem.textContent = "";
+			}
+			else {
+				this.elem.setAttribute(attr, "");
+				this.elem.removeAttribute(attr);
+			}
+		}
+
+		if (attr == "transform") { bChangedTransform = true; }
+	}
+
+	// relocate rotational transform, if necessary
+	if(!bChangedTransform) {
+		var angle = svgedit.utilities.getRotationAngle(this.elem);
+		if (angle) {
+			var bbox = elem.getBBox();
+			var cx = bbox.x + bbox.width/2,
+				cy = bbox.y + bbox.height/2;
+			var rotate = ["rotate(", angle, " ", cx, ",", cy, ")"].join('');
+			if (rotate != elem.getAttribute("transform")) {
+				elem.setAttribute("transform", rotate);
+			}
+		}
+	}
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
+	}
+
+	return true;
+};
+
+// Function: svgedit.history.ChangeElementCommand.unapply
+// Reverses the stored change action
+svgedit.history.ChangeElementCommand.prototype.unapply = function(handler) {
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
+	}
+
+	var bChangedTransform = false;
+	for(var attr in this.oldValues ) {
+		if (this.oldValues[attr]) {
+			if (attr == "#text") this.elem.textContent = this.oldValues[attr];
+			else if (attr == "#href") svgedit.utilities.setHref(this.elem, this.oldValues[attr]);
+			else this.elem.setAttribute(attr, this.oldValues[attr]);
+		}
+		else {
+			if (attr == "#text") {
+				this.elem.textContent = "";
+			}
+			else this.elem.removeAttribute(attr);
+		}
+		if (attr == "transform") { bChangedTransform = true; }
+	}
+	// relocate rotational transform, if necessary
+	if(!bChangedTransform) {
+		var angle = svgedit.utilities.getRotationAngle(this.elem);
+		if (angle) {
+			var bbox = elem.getBBox();
+			var cx = bbox.x + bbox.width/2,
+				cy = bbox.y + bbox.height/2;
+			var rotate = ["rotate(", angle, " ", cx, ",", cy, ")"].join('');
+			if (rotate != elem.getAttribute("transform")) {
+				elem.setAttribute("transform", rotate);
+			}
+		}
+	}
+
+	// Remove transformlist to prevent confusion that causes bugs like 575.
+	svgedit.transformlist.removeElementFromListMap(this.elem);
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
+	}
+
+	return true;
+};
+
+// Function: ChangeElementCommand.elements
+// Returns array with element associated with this command
+svgedit.history.ChangeElementCommand.prototype.elements = function() {
+	return [this.elem];
+};
+
+
+// TODO: create a 'typing' command object that tracks changes in text
+// if a new Typing command is created and the top command on the stack is also a Typing
+// and they both affect the same element, then collapse the two commands into one
+
+
+// Class: svgedit.history.BatchCommand
+// implements svgedit.history.HistoryCommand
+// History command that can contain/execute multiple other commands
+//
+// Parameters:
+// text - An optional string visible to user related to this change
+svgedit.history.BatchCommand = function(text) {
+	this.text = text || "Batch Command";
+	this.stack = [];
+};
+svgedit.history.BatchCommand.type = function() { return 'svgedit.history.BatchCommand'; }
+svgedit.history.BatchCommand.prototype.type = svgedit.history.BatchCommand.type;
+
+// Function: svgedit.history.BatchCommand.getText
+svgedit.history.BatchCommand.prototype.getText = function() {
+	return this.text;
+};
+
+// Function: svgedit.history.BatchCommand.apply
+// Runs "apply" on all subcommands
+svgedit.history.BatchCommand.prototype.apply = function(handler) {
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY, this);
+	}
+
+	var len = this.stack.length;
+	for (var i = 0; i < len; ++i) {
+		this.stack[i].apply(handler);
+	}
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY, this);
+	}
+};
+
+// Function: svgedit.history.BatchCommand.unapply
+// Runs "unapply" on all subcommands
+svgedit.history.BatchCommand.prototype.unapply = function(handler) {
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY, this);
+	}
+
+	for (var i = this.stack.length-1; i >= 0; i--) {
+		this.stack[i].unapply(handler);
+	}
+
+	if (handler) {
+		handler.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY, this);
+	}
+};
+
+// Function: svgedit.history.BatchCommand.elements
+// Iterate through all our subcommands and returns all the elements we are changing
+svgedit.history.BatchCommand.prototype.elements = function() {
+	var elems = [];
+	var cmd = this.stack.length;
+	while (cmd--) {
+		var thisElems = this.stack[cmd].elements();
+		var elem = thisElems.length;
+		while (elem--) {
+			if (elems.indexOf(thisElems[elem]) == -1) elems.push(thisElems[elem]);
+		}
+	}
+	return elems;
+};
+
+// Function: svgedit.history.BatchCommand.addSubCommand
+// Adds a given command to the history stack
+//
+// Parameters:
+// cmd - The undo command object to add
+svgedit.history.BatchCommand.prototype.addSubCommand = function(cmd) {
+	this.stack.push(cmd);
+};
+
+// Function: svgedit.history.BatchCommand.isEmpty
+// Returns a boolean indicating whether or not the batch command is empty
+svgedit.history.BatchCommand.prototype.isEmpty = function() {
+	return this.stack.length == 0;
+};
+
+
+// Class: svgedit.history.UndoManager
+// Parameters:
+// historyEventHandler - an object that conforms to the HistoryEventHandler interface
+// (see above)
+svgedit.history.UndoManager = function(historyEventHandler) {
+	this.handler_ = historyEventHandler || null;
+	this.undoStackPointer = 0;
+	this.undoStack = [];
+
+	// this is the stack that stores the original values, the elements and
+	// the attribute name for begin/finish
+	this.undoChangeStackPointer = -1;
+	this.undoableChangeStack = [];
+};
+	
+// Function: svgedit.history.UndoManager.resetUndoStack
+// Resets the undo stack, effectively clearing the undo/redo history
+svgedit.history.UndoManager.prototype.resetUndoStack = function() {
+	this.undoStack = [];
+	this.undoStackPointer = 0;
+};
+
+// Function: svgedit.history.UndoManager.getUndoStackSize
+// Returns: 
+// Integer with the current size of the undo history stack
+svgedit.history.UndoManager.prototype.getUndoStackSize = function() {
+	return this.undoStackPointer;
+};
+
+// Function: svgedit.history.UndoManager.getRedoStackSize
+// Returns: 
+// Integer with the current size of the redo history stack
+svgedit.history.UndoManager.prototype.getRedoStackSize = function() {
+	return this.undoStack.length - this.undoStackPointer;
+};
+
+// Function: svgedit.history.UndoManager.getNextUndoCommandText
+// Returns: 
+// String associated with the next undo command
+svgedit.history.UndoManager.prototype.getNextUndoCommandText = function() { 
+	return this.undoStackPointer > 0 ? this.undoStack[this.undoStackPointer-1].getText() : "";
+};
+
+// Function: svgedit.history.UndoManager.getNextRedoCommandText
+// Returns: 
+// String associated with the next redo command
+svgedit.history.UndoManager.prototype.getNextRedoCommandText = function() { 
+	return this.undoStackPointer < this.undoStack.length ? this.undoStack[this.undoStackPointer].getText() : "";
+};
+
+// Function: svgedit.history.UndoManager.undo
+// Performs an undo step
+svgedit.history.UndoManager.prototype.undo = function() {
+	if (this.undoStackPointer > 0) {
+		var cmd = this.undoStack[--this.undoStackPointer];
+		cmd.unapply(this.handler_);
+	}
+};
+
+// Function: svgedit.history.UndoManager.redo		
+// Performs a redo step
+svgedit.history.UndoManager.prototype.redo = function() {
+	if (this.undoStackPointer < this.undoStack.length && this.undoStack.length > 0) {
+		var cmd = this.undoStack[this.undoStackPointer++];
+		cmd.apply(this.handler_);
+	}
+};
+	
+// Function: svgedit.history.UndoManager.addCommandToHistory
+// Adds a command object to the undo history stack
+//
+// Parameters: 
+// cmd - The command object to add
+svgedit.history.UndoManager.prototype.addCommandToHistory = function(cmd) {
+	// FIXME: we MUST compress consecutive text changes to the same element
+	// (right now each keystroke is saved as a separate command that includes the
+	// entire text contents of the text element)
+	// TODO: consider limiting the history that we store here (need to do some slicing)
+	
+	// if our stack pointer is not at the end, then we have to remove
+	// all commands after the pointer and insert the new command
+	if (this.undoStackPointer < this.undoStack.length && this.undoStack.length > 0) {
+		this.undoStack = this.undoStack.splice(0, this.undoStackPointer);
+	}
+	this.undoStack.push(cmd);
+	this.undoStackPointer = this.undoStack.length;
+};
+
+
+// Function: svgedit.history.UndoManager.beginUndoableChange
+// This function tells the canvas to remember the old values of the 
+// attrName attribute for each element sent in.  The elements and values 
+// are stored on a stack, so the next call to finishUndoableChange() will 
+// pop the elements and old values off the stack, gets the current values
+// from the DOM and uses all of these to construct the undo-able command.
+//
+// Parameters: 
+// attrName - The name of the attribute being changed
+// elems - Array of DOM elements being changed
+svgedit.history.UndoManager.prototype.beginUndoableChange = function(attrName, elems) {
+	var p = ++this.undoChangeStackPointer;
+	var i = elems.length;
+	var oldValues = new Array(i), elements = new Array(i);
+	while (i--) {
+		var elem = elems[i];
+		if (elem == null) continue;
+		elements[i] = elem;
+		oldValues[i] = elem.getAttribute(attrName);
+	}
+	this.undoableChangeStack[p] = {'attrName': attrName,
+							'oldValues': oldValues,
+							'elements': elements};
+};
+
+// Function: svgedit.history.UndoManager.finishUndoableChange
+// This function returns a BatchCommand object which summarizes the
+// change since beginUndoableChange was called.  The command can then
+// be added to the command history
+//
+// Returns: 
+// Batch command object with resulting changes
+svgedit.history.UndoManager.prototype.finishUndoableChange = function() {
+	var p = this.undoChangeStackPointer--;
+	var changeset = this.undoableChangeStack[p];
+	var i = changeset['elements'].length;
+	var attrName = changeset['attrName'];
+	var batchCmd = new svgedit.history.BatchCommand("Change " + attrName);
+	while (i--) {
+		var elem = changeset['elements'][i];
+		if (elem == null) continue;
+		var changes = {};
+		changes[attrName] = changeset['oldValues'][i];
+		if (changes[attrName] != elem.getAttribute(attrName)) {
+			batchCmd.addSubCommand(new svgedit.history.ChangeElementCommand(elem, changes, attrName));
+		}
+	}
+	this.undoableChangeStack[p] = null;
+	return batchCmd;
+};
+
+
+})();

+ 30 - 0
main/inc/lib/svg-edit/images/svg_edit_icons.svg

@@ -999,6 +999,36 @@
 </svg>
 </g>
 
+<g id="globe_link">
+<svg width="66" height="66" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+  <radialGradient id="svg_8" spreadMethod="pad" cx="0.5" cy="0.32513">
+   <stop stop-color="#7791ef" stop-opacity="0.99219" offset="0"/>
+   <stop stop-color="#3c3cfc" offset="1"/>
+  </radialGradient>
+  <linearGradient id="svg_10" x1="0" y1="0" x2="1" y2="0">
+   <stop offset="0" stop-color="#333333" stop-opacity="0.99609"/>
+   <stop offset="1" stop-opacity="0.99609" stop-color="#666666"/>
+  </linearGradient>
+ </defs>
+ <g>
+  <title>Layer 1</title>
+  <g opacity="0.8" id="svg_5">
+   <circle id="svg_1" r="27.90625" cy="33" cx="33" stroke-width="0" stroke="#AAAAAA" fill="url(#svg_8)"/>
+   <g id="svg_7">
+    <path d="m38.2478,36.06121c-0.43732,0 -0.87463,0 -1.31195,0c-0.43731,0 -0.87463,0 -2.6239,0c-0.87463,0 -1.74926,0 -2.18658,0c-0.43732,0 -2.19828,0.33684 -2.6239,0.43732c-0.95172,0.22467 -1.27098,0.48253 -1.74927,0.87463c-1.21939,0.99965 -1.44004,1.00272 -1.74926,1.31195c-0.30923,0.30923 -0.21265,0.79756 -0.43732,1.74926c-0.10048,0.42562 0.16736,0.90792 0,1.31195c-0.23668,0.57138 -0.43732,0.87463 -0.43732,1.74926c0,0.43732 0.12809,0.56541 0.43732,0.87463c0.30923,0.30923 0.12809,0.56541 0.43732,0.87463c0.30923,0.30923 1.32364,0.77415 1.74926,0.87463c0.95171,0.22467 0.69349,0.69349 1.31195,1.31195c0.30923,0.30923 0.90791,-0.16736 1.31195,0c0.57138,0.23668 0.56541,0.56541 0.87463,0.87463c0.30923,0.30923 0.56541,0.12809 0.87463,0.43732c0.61846,0.61846 -0.10048,1.32365 0,1.74926c0.22467,0.95171 0.43732,1.31195 0.43732,2.6239c0,0.87463 0,2.18658 0,3.06121c0,0.43732 0,1.31195 0,2.6239c0,0.43732 0.12809,1.00272 0.43732,1.31195c0.30922,0.30923 1.31195,0 1.74926,0c0.87463,0 1.31195,0 1.74927,0c0.43731,0 0.6065,-0.40129 1.74926,-0.87464c0.40403,-0.16736 0.74057,-0.20064 1.31195,-0.43732c0.40403,-0.16736 0.63795,-0.74057 0.87463,-1.31195c0.16736,-0.40403 0.15712,-2.20917 0.43732,-3.93585c0.22151,-1.36505 0.43732,-2.18658 0.43732,-2.6239c0,-0.43732 -0.12928,-0.88101 0,-2.18658c0.21973,-2.21904 0.43732,-3.49853 0.43732,-3.93585c0,-0.43732 0,-0.87463 0,-1.74927c0,-1.31195 0.16736,-1.78254 0,-2.18658c-0.23668,-0.57138 -1.00272,-0.56541 -1.31195,-0.87463c-0.30923,-0.30922 -0.43732,-0.43731 -1.74926,-1.74926l0,-0.87463l-0.43732,0l0,-0.43732" id="svg_2" stroke="#007f00" fill="#44b544" stroke-width="0"/>
+    <path d="m5.66773,37.0452c1.12973,-0.3645 0.87463,-0.2187 1.74927,-0.656c0.87463,-0.4373 1.34081,-0.8211 2.18658,-1.3119c1.36372,-0.7915 1.44002,-1.4401 1.74922,-1.7493c0.3093,-0.3092 0.1281,-0.5654 0.4374,-0.8746c0.6184,-0.6185 0.8746,-0.4374 1.7492,-1.312c0.8747,-0.8746 1.0027,-1.0027 1.312,-1.3119c0.6184,-0.6185 0.1281,-1.0028 0.4373,-1.312c0.3092,-0.3092 0,-0.8746 0,-1.3119c0,-0.4374 0,-1.312 0,-1.7493c0,-0.4373 0.2009,-1.7727 0,-2.6239c-0.2247,-0.9517 -0.1281,-1.4401 -0.4373,-1.7493c-0.3093,-0.3092 -0.7073,-1.3452 -0.8746,-1.7492c-0.2367,-0.5714 -0.8747,-0.8747 -0.8747,-1.312c0,-0.4373 -0.4373,-0.4373 -0.4373,-0.8746l0,-0.4374l-1.2026,-0.8746c-3.7901,5.8674 -6.81486,11.6253 -5.79446,21.2099l-0.00001,0z" id="svg_3" stroke="#007f00" fill="#44b544" stroke-width="0"/>
+    <path d="m52.2419,13.1021c-0.4373,0.4373 -1.3495,0.8398 -2.1866,1.0933c-3.0182,0.9138 -3.2212,2.2857 -3.4985,2.6239c-1.4137,1.7245 -2.4979,1.3039 -4.8105,1.7493c-0.4294,0.0827 -0.4373,0.4373 -0.8746,0.4373c-0.4373,0 -0.8746,0 -1.312,0c-0.4373,0 -1.3119,0 -1.7492,0c-0.4373,0 -1.3453,-0.27 -1.7493,-0.4373c-0.5714,-0.2367 -0.5654,-0.5654 -0.8746,-0.8747c-0.3092,-0.3092 -0.5654,-0.1281 -0.8746,-0.4373c-0.3093,-0.3092 -0.8747,0 -1.312,0c-0.4373,0 -0.9079,-0.1673 -1.3119,0c-0.5714,0.2367 -0.3033,1.0753 -0.8747,1.312c-0.404,0.1673 -0.1281,0.5654 -0.4373,0.8746c-0.3092,0.3092 -0.4373,0.4373 -0.4373,0.8746c0,0.4373 0,0.8747 0,1.312c0,0.4373 0.0333,0.7073 0.4373,0.8746c0.5714,0.2367 0.638,0.7406 0.8746,1.312c0.1674,0.404 0.4374,0.4373 0.4374,0.8746c0,0.4373 0,0.8746 0,1.3119c0,0.4374 -0.4374,0.4374 -0.8747,0.8747c-1.3119,1.3119 -1.9499,1.1779 -2.1865,1.7492c-0.1674,0.4041 -1.0753,0.3033 -1.312,0.8747c-0.1674,0.404 0,0.8746 0.4373,0.8746c0.4373,0 0.8746,0.4373 1.312,0.4373c0.4373,0 0.8746,-0.4373 1.3119,-0.4373c0.4373,0 0.5654,-0.1281 0.8746,-0.4373c0.6185,-0.6185 1.312,0 1.7493,0c0.4373,0 0.397,-0.6543 2.1866,-0.8747c0.434,-0.0534 2.8801,-0.2561 3.4985,-0.8746c0.3093,-0.3092 0.8343,-0.6543 2.6239,-0.8746c0.4341,-0.0535 0.8747,0 1.312,0c0.4373,0 0.8746,0.4373 0.8746,0.8746c0,0.4373 0.4373,0.4373 0.4373,0.8746c0,0.4374 0.5654,2.3147 0.8746,2.6239c0.3093,0.3093 0.1281,1.0028 0.4374,1.312c0.3092,0.3092 2.1095,2.8366 3.0612,3.0612c0.4256,0.1005 0.8215,0.2158 2.1866,0.4373c0.4316,0.0701 1.3119,0 1.7492,0c0.4373,0 0.8864,0.1005 1.312,0c0.9517,-0.2246 1.44,-0.5654 1.7492,-0.8746c0.3093,-0.3092 0.8747,-0.4373 1.312,-0.4373c0.4373,0 0.5654,-0.5654 0.8746,-0.8746c0.3092,-0.3093 0.8746,0 1.312,0l1.0933,-0.656c1.1661,-7.7259 -2.4782,-14.1399 -7.6531,-20.5539l0,0z" id="svg_4" stroke="#007f00" fill="#44b544" stroke-width="0"/>
+    <path id="svg_6" d="m10.0409,48.3061c2.1137,-0.2187 4.6647,-0.2187 6.3411,1.9679c1.1662,1.5306 1.239,3.7172 0.2186,4.5918c-2.4052,-0.8746 -5.0291,-2.6239 -6.5597,-6.5597l0,0z" stroke="#007f00" fill="#44b544" stroke-width="0"/>
+   </g>
+  </g>
+  <rect transform="rotate(45, 16.9336, 16.9375)" ry="9" rx="9" id="svg_9" height="19.32339" width="29.34293" y="7.27574" x="2.26257" stroke-width="5" stroke="url(#svg_10)" fill="none" stroke-linecap="round"/>
+  <rect id="svg_11" transform="rotate(45, 49.0664, 49.0625)" ry="9" rx="9" height="19.32339" width="29.34293" y="39.40074" x="34.39538" stroke-width="5" stroke="url(#svg_10)" fill="none" stroke-linecap="round"/>
+  <line id="svg_12" y2="45.75" x2="45.75" y1="20.25" x1="20.25" stroke-linecap="round" stroke-width="5" stroke="url(#svg_10)" fill="none"/>
+ </g>
+</svg>
+</g>
+
 <g id="svg_eof"/>
 
 </svg>

+ 0 - 191
main/inc/lib/svg-edit/jgraduate/css/jPicker-1.0.12.css

@@ -1,191 +0,0 @@
-.jPicker_Picker {
-  display: inline-block;
-  height: 24px; /* change this value if using a different sized color picker icon */
-  position: relative; /* make this element an absolute positioning container */
-  text-align: left; /* make the zero width children position to the left of container */
-  width: 25px; /* change this value if using a different sized color picker icon */
-}
-.jPicker_Color, .jPicker_Alpha {
-  background-position: 2px 2px;
-  display: block;
-  height: 100%;
-  left: 0px;
-  position: absolute;
-  top: 0px;
-  width: 100%;
-}
-.jPicker_Icon {
-  background-repeat: no-repeat;
-  cursor: pointer;
-  display: block;
-  height: 100%;
-  left: 0px;
-  position: absolute;
-  top: 0px;
-  width: 100%;
-}
-.jPicker_Container {
-  display: none;
-  z-index: 10; /* make sure container draws above color picker icon in Firefox/Safari/Chrome/Opera/etc. -
-                  IE calculates z-index so this won't work - we will hide all color picker icons placed after the selected one in code when shown in IE */
-}
-.jPicker_table {
-  background-color: #efefef;
-  border: 1px outset #666;
-  font-family: Arial, Helvetica, Sans-Serif;
-  font-size: 12px;
-  margin: 0px;
-  padding: 5px;
-  width: 550px;
-}
-.jPicker_table td {
-  margin: 0px;
-  padding: 0px;
-  vertical-align: top;
-}
-.jPicker_MoveBar {
-  background-color: #dddddd;
-  border: 1px outset #aaa;
-  cursor: move;
-  height: 12px;
-}
-.jPicker_Title {
-  font-size: 11px !important;
-  font-weight: bold;
-  margin: -2px 0px 0px 0px;
-  padding: 0px;
-  text-align: center;
-  width: 100%;
-}
-.jPicker_ColorMap {
-  border: 2px inset #eee;
-  cursor: crosshair;
-  height: 260px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 256px later */
-  margin: 0px 5px 0px 5px;
-  overflow: hidden; /* hide the overdraw of the Color Map icon when at edge of viewing box */
-  padding: 0px;
-  position: relative; /* make this element an absolute positioning container */
-  width: 260px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 256px later */
-}
-div[class="jPicker_ColorMap"] {
-  height: 256px; /* correct to 256px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
-  width: 256px; /* correct to 256px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
-}
-.jPicker_ColorBar {
-  border: 2px inset #eee;
-  cursor: n-resize;
-  height: 260px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 256px later */
-  margin: 12px 10px 0px 5px;
-  padding: 0px;
-  position: relative;
-  width: 24px; /* IE 6 incorrectly draws border inside the width and height instead of outside - We will fix this to 20px later */
-}
-div[class="jPicker_ColorBar"] {
-  height: 256px; /* correct to 256px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
-  width: 20px; /* correct to 20px for browsers that support the "[class="xxx"]" selector (IE7+,Firefox,Safari,Chrome,Opera,etc.) */
-}
-.jPicker_ColorMap_l1, .jPicker_ColorMap_l2, .jPicker_ColorMap_l3, .jPicker_ColorBar_l1, .jPicker_ColorBar_l2, .jPicker_ColorBar_l3, .jPicker_ColorBar_l4, .jPicker_ColorBar_l5, .jPicker_ColorBar_l6 {
-  background-color: transparent;
-  background-image: none;
-  display: block;
-  height: 256px; /* must specific pixel height. IE7/8 Quirks mode ignores opacity for an absolutely positioned item in a relative container with "overflow: visible". The marker in the colorBar
-                    would not be drawn if its overflow is set to hidden. */
-  left: 0px;
-  position: absolute;
-  top: 0px;
-}
-.jPicker_ColorMap_l1, .jPicker_ColorMap_l2, .jPicker_ColorMap_l3 {
-  width: 256px; /* must specific pixel width. IE7/8 Quirks mode ignores opacity for an absolutely positioned item in a relative container with "overflow: visible". The marker in the colorBar
-                   would not be drawn if its overflow is set to hidden. */
-}
-.jPicker_ColorBar_l1, .jPicker_ColorBar_l2, .jPicker_ColorBar_l3, .jPicker_ColorBar_l4, .jPicker_ColorBar_l5, .jPicker_ColorBar_l6 {
-  width: 20px; /* must specific pixel width. IE7/8 Quirks mode ignores opacity for an absolutely positioned item in a relative container with "overflow: visible". The marker in the colorBar
-                  would not be drawn if its overflow is set to hidden. */
-}
-.jPicker_ColorMap_l1, .jPicker_ColorMap_l2, .jPicker_ColorBar_l6 {
-  background-repeat: no-repeat;
-}
-.jPicker_ColorMap_l3, .jPicker_ColorBar_l5 {
-  background-repeat: repeat;
-}
-.jPicker_ColorBar_l1, .jPicker_ColorBar_l2, .jPicker_ColorBar_l3, .jPicker_ColorBar_l4 {
-  background-repeat: repeat-x;
-}
-.jPicker_ColorMap_Arrow {
-  display: block;
-  position: absolute;
-}
-.jPicker_ColorBar_Arrow {
-  display: block;
-  left: -10px; /* (arrow width / 2) - (element width / 2) - position arrows' center in elements' center */
-  position: absolute;
-}
-.jPicker_Preview {
-  font-size: x-small;
-  text-align: center;
-}
-.jPicker_Preview div {
-  border: 2px inset #eee;
-  height: 62px;
-  margin: 0px auto;
-  padding: 0px;
-  width: 62px;
-}
-.jPicker_Preview div span {
-  border: 1px solid #000;
-  display: block;
-  height: 30px;
-  margin: 0px auto;
-  padding: 0px;
-  width: 60px;
-}
-.jPicker_Preview div span.jPicker_Active {
-  border-bottom-width: 0px;
-}
-.jPicker_Preview div span.jPicker_Current {
-  border-top-width: 0px;
-  cursor: pointer;
-}
-.jPicker_OkCancel {
-  text-align: center;
-  width: 120px;
-}
-.jPicker_OkCancel input {
-  width: 100px;
-}
-.jPicker_OkCancel input.jPicker_Ok {
-  margin: 12px 0px 5px 0px;
-}
-.jPicker_Text {
-  text-align: left;
-}
-.jPicker_HueText, .jPicker_SaturationText, .jPicker_BrightnessText, .jPicker_RedText, .jPicker_GreenText, .jPicker_BlueText, .jPicker_AlphaText {
-  background-color: #fff;
-  border: 1px inset #aaa;
-  margin: 0px 0px 0px 5px;
-  text-align: left;
-  width: 30px;
-}
-.jPicker_HexText {
-  background-color: #fff;
-  border: 1px inset #aaa;
-  margin: 0px 0px 0px 5px;
-  width: 65px;
-}
-.jPicker_Grid {
-  text-align: center;
-}
-span.jPicker_QuickColor {
-  border: 1px inset #aaa;
-  cursor: pointer;
-  display: block;
-  float: left;
-  height: 13px;
-  line-height: 13px;
-  margin: 2px 2px 1px 2px;
-  padding: 0px;
-  width: 15px;
-}
-span[class="jPicker_QuickColor"] {
-  width: 13px;
-}

ファイルの差分が大きいため隠しています
+ 0 - 0
main/inc/lib/svg-edit/jgraduate/css/jPicker.css


+ 148 - 67
main/inc/lib/svg-edit/jgraduate/css/jgraduate.css

@@ -1,7 +1,11 @@
 /* 
  * jGraduate Default CSS
  * 
- * Copyright (c) 2009 Jeff Schiller
+ * Copyright (c) 2010 Jeff Schiller
+ * http://blog.codedread.com/
+ *
+ * Copyright (c) 2010 Alexis Deveria
+ * http://a.deveria.com/
  *
  * Licensed under the Apache License Version 2
  */
@@ -48,14 +52,14 @@ li.jGraduate_tab_current {
 	display: none;
 }
 
-.jGraduate_lgPick {	
+.jGraduate_gradPick {	
 	display: none;
 	border: outset 1px #666;
 	padding: 10px 7px 5px 5px;
 	overflow: auto;
 }
 
-.jGraduate_rgPick {	
+.jGraduate_gradPick {	
 	display: none;
 	border: outset 1px #666;
 	padding: 10px 7px 5px 5px;
@@ -80,6 +84,29 @@ div.jGraduate_GradContainer {
 	background-image: url(../images/map-opacity.png); 
 	background-position: 0px 0px;
 	height: 256px;
+	width: 256px;
+	position: relative;
+}
+
+div.jGraduate_GradContainer div.grad_coord {
+	background: #000;
+	border: 1px solid #fff;
+	border-radius: 5px;
+	-moz-border-radius: 5px;
+	width: 10px;
+	height: 10px;
+	position: absolute;
+	margin: -5px -5px;
+	top: 0;
+	left: 0;
+	text-align: center;
+	font-size: xx-small;
+	line-height: 10px;
+	color: #fff;
+	text-decoration: none;
+	cursor: pointer;
+	-moz-user-select: none;
+	-webkit-user-select: none;
 }
 
 .jGraduate_AlphaArrows {
@@ -98,16 +125,14 @@ div.jGraduate_Opacity {
 	cursor: ew-resize;
 }
 
-div.lg_jGraduate_OpacityField {
-	position: absolute;
-	bottom: 25px;
-	left: 292px;
-}
-
-div.jGraduate_Form {
-	float: left;
-	width: 140px;
-	margin: -3px 3px 0px 4px;
+div.jGraduate_StopSlider {
+/*	border: 2px inset #eee;*/
+	margin: 0 0 0 -10px;
+	width: 276px;
+	overflow: visible;
+	background: #efefef;
+	height: 45px;
+	cursor: pointer;
 }
 
 div.jGraduate_StopSection {
@@ -115,50 +140,9 @@ div.jGraduate_StopSection {
 	text-align: center;
 }
 
-div.jGraduate_RadiusField {
-	
-	text-align: center;
-	float: left;
-}
-
-div.jGraduate_RadiusField input {
-	margin-top: 10px;
-}
-
-.jGraduate_RadiusField .jGraduate_Form_Section {
-	width: 250px;
-	padding: 2px;
-	height: 80px;
-	overflow: visible;
-}
-
-.jGraduate_Form_Section input[type=text] {
-	width: 38px;
-}
 
-.jGraduate_Radius {
-	border:1px solid #BBB;
-	cursor:ew-resize;
-	height:20px;
-	margin-top:14px;
-	position: relative;
-}
 
 
-.jGraduate_RadiusArrows {
-	top: 0;
-	left: 0;
-	position: absolute;
-	margin-top: -10px;
-	margin-left: 250.5px;
-}
-
-
-div.jGraduate_OkCancel {
-	float: left;
-	width: 113px;
-}
-
 input.jGraduate_Ok, input.jGraduate_Cancel {
 	display: block;
 	width: 100px;
@@ -199,12 +183,21 @@ div.jGraduate_Form_Section {
 	-moz-border-radius: 5px;
 	-webkit-border-radius: 5px;
 	padding: 15px 5px 5px 5px;
-	margin: 2px;
+	margin: 5px 2px;
 	width: 110px;
 	text-align: center;
 	overflow: auto;
 }
 
+div.jGraduate_Form_Section label {
+	padding: 0 2px;
+}
+
+div.jGraduate_StopSection input[type=text],
+div.jGraduate_Slider input[type=text] {
+	width: 33px;
+}
+
 div.jGraduate_LightBox {
 	position: fixed;
 	top: 0px;
@@ -223,17 +216,47 @@ div.jGraduate_stopPicker {
 }
 
 
-.jGraduate_rgPick {
-	width: 530px;
+.jGraduate_gradPick {
+	width: 535px;
 }
 
-.jGraduate_rgPick div.jGraduate_Form {
-	width: 270px;
+.jGraduate_gradPick div.jGraduate_OpacField {
+
 	position: absolute;
+	left: 0;
+	bottom: 5px;
+/*
+	width: 270px;
+
 	left: 284px;
 	width: 266px;
-	top: 130px;
+	height: 200px;
+	top: 167px;
 	margin: -3px 3px 0px 4px;
+*/
+}
+
+.jGraduate_gradPick .jGraduate_Form {
+	float: left;
+	width: 270px;
+	position: absolute;
+	left: 284px;
+	width: 266px;
+	height: 200px;
+	top: 167px;
+	margin: -3px 3px 0px 10px;
+}
+
+.jGraduate_gradPick .jGraduate_Points {
+	position: static;
+	width: 150px;
+	margin-left: 0;
+}
+
+.jGraduate_SpreadMethod {
+	position: absolute;
+	right: 8px;
+	top: 100px;
 }
 
 .jGraduate_Colorblocks {
@@ -252,19 +275,77 @@ div.jGraduate_stopPicker {
 	float: none;
 }
 
-.jGraduate_rgPick div.jGraduate_StopSection {
+.jGraduate_gradPick div.jGraduate_StopSection {
 	float: left;
 	width: 133px;
-	margin: 0;
+	margin-top: -8px;
+}
+
+
+.jGraduate_gradPick .jGraduate_Form_Section {
+	padding-top: 9px;
+}
+
+
+.jGraduate_Slider {
+	text-align: center;
+	float: left;
+	width: 100%;
+}
+
+.jGraduate_Slider .jGraduate_Form_Section {
+	border: none;
+	width: 250px;
+	padding: 0 2px;
+	overflow: visible;
+}
+
+.jGraduate_Slider label {
+	display: inline-block;
+	float: left;
+	line-height: 50px;
+	padding: 0;
+}
+
+.jGraduate_Slider label.prelabel {
+	width: 40px;
+	text-align: left;
 }
 
-.jGraduate_rgPick .jGraduate_OkCancel {
+.jGraduate_SliderBar {
+	width: 140px;
+	float: left;
+	margin-right: 5px;
+	border:1px solid #BBB;
+	height:20px;
+	margin-top:14px;
+	margin-left:5px;
+	position: relative;
+}
+
+div.jGraduate_Slider input {
+	margin-top: 5px;
+}
+
+div.jGraduate_Slider img {
+	top: 0;
+	left: 0;
 	position: absolute;
-	right: 0;
+	margin-top: -10px;
+	cursor:ew-resize;
+}
+
+
+.jGraduate_gradPick .jGraduate_OkCancel {
+	position: absolute;
+	top: 39px;
+	right: 10px;
+	width: 113px;
+
 }
 
-.rg_jGraduate_OpacityField {
+.jGraduate_OpacField {
 	position: absolute;
-	left: 288px;
-	bottom: 24px;
+	right: -10px;
+	bottom: 0;
 }

BIN
main/inc/lib/svg-edit/jgraduate/images/Bars.png


BIN
main/inc/lib/svg-edit/jgraduate/images/Maps.png


BIN
main/inc/lib/svg-edit/jgraduate/images/NoColor.png


BIN
main/inc/lib/svg-edit/jgraduate/images/rangearrows.gif


ファイルの差分が大きいため隠しています
+ 0 - 0
main/inc/lib/svg-edit/jgraduate/jpicker-1.0.12.min.js


ファイルの差分が大きいため隠しています
+ 0 - 0
main/inc/lib/svg-edit/jgraduate/jpicker.min.js


ファイルの差分が大きいため隠しています
+ 886 - 788
main/inc/lib/svg-edit/jgraduate/jquery.jgraduate.js


ファイルの差分が大きいため隠しています
+ 0 - 0
main/inc/lib/svg-edit/jgraduate/jquery.jgraduate.min.js


+ 153 - 141
main/inc/lib/svg-edit/jquery.js

@@ -1,5 +1,5 @@
 /*!
- * jQuery JavaScript Library v1.4.2
+ * jQuery JavaScript Library v1.4.3
  * http://jquery.com/
  *
  * Copyright 2010, John Resig
@@ -11,144 +11,156 @@
  * Copyright 2010, The Dojo Foundation
  * Released under the MIT, BSD, and GPL Licenses.
  *
- * Date: Sat Feb 13 22:33:48 2010 -0500
+ * Date: Thu Oct 14 23:10:06 2010 -0400
  */
-(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
-e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
-j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
-"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
-true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
-Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
-(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
-a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
-"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
-function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
-c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
-L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
-"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
-a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
-d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
-a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
-!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
-true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
-var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
-parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
-false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
-s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
-applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
-else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
-a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
-w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
-cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
-i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
-" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
-this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
-e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
-c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
-a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
-function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
-k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
-C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
-null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
-e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
-f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
-if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
-d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
-"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
-a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
-isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
-{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
-if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
-e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
-"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
-d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
-!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
-toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
-u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
-function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
-if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
-e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
-t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
-g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
-for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
-1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
-CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
-relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
-l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
-h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
-CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
-g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
-text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
-setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
-h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
-m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
-"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
-h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
-!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
-h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
-q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
-if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
-(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
-function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
-gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
-c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
-{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
-"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
-d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
-a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
-1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
-a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
-c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
-wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
-prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
-this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
-return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
-""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
-this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
-u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
-1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
-return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
-""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
-c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
-c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
-function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
-Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
-"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
-a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
-a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
-"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
-serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
-function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
-global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
-e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
-"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
-false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
-false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
-c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
-d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
-g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
-1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
-"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
-if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
-this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
-"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
-animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
-j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
-this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
-"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
-c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
-this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
-this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
-e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
-c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
-function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
-this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
-k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
-f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
-a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
-c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
-d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
-"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
-e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
+(function(E,A){function U(){return false}function ba(){return true}function ja(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ga(a){var b,d,e=[],f=[],h,k,l,n,s,v,B,D;k=c.data(this,this.nodeType?"events":"__events__");if(typeof k==="function")k=k.events;if(!(a.liveFired===this||!k||!k.live||a.button&&a.type==="click")){if(a.namespace)D=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var H=k.live.slice(0);for(n=0;n<H.length;n++){k=H[n];k.origType.replace(X,
+"")===a.type?f.push(k.selector):H.splice(n--,1)}f=c(a.target).closest(f,a.currentTarget);s=0;for(v=f.length;s<v;s++){B=f[s];for(n=0;n<H.length;n++){k=H[n];if(B.selector===k.selector&&(!D||D.test(k.namespace))){l=B.elem;h=null;if(k.preType==="mouseenter"||k.preType==="mouseleave"){a.type=k.preType;h=c(a.relatedTarget).closest(k.selector)[0]}if(!h||h!==l)e.push({elem:l,handleObj:k,level:B.level})}}}s=0;for(v=e.length;s<v;s++){f=e[s];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;
+a.handleObj=f.handleObj;D=f.handleObj.origHandler.apply(f.elem,arguments);if(D===false||a.isPropagationStopped()){d=f.level;if(D===false)b=false}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(Ha,"`").replace(Ia,"&")}function ka(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Ja.test(b))return c.filter(b,
+e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function la(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var k in e[h])c.event.add(this,h,e[h][k],e[h][k].data)}}})}function Ka(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}
+function ma(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?La:Ma,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function ca(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Na.test(a)?e(a,h):ca(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?
+e(a,""):c.each(b,function(f,h){ca(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(na.concat.apply([],na.slice(0,b)),function(){d[this]=a});return d}function oa(a){if(!da[a]){var b=c("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";da[a]=d}return da[a]}function ea(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var u=E.document,c=function(){function a(){if(!b.isReady){try{u.documentElement.doScroll("left")}catch(i){setTimeout(a,
+1);return}b.ready()}}var b=function(i,r){return new b.fn.init(i,r)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,k=/\S/,l=/^\s+/,n=/\s+$/,s=/\W/,v=/\d/,B=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,D=/^[\],:{}\s]*$/,H=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,G=/(?:^|:|,)(?:\s*\[)+/g,M=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,j=/(msie) ([\w.]+)/,o=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,
+q=[],t,x=Object.prototype.toString,C=Object.prototype.hasOwnProperty,P=Array.prototype.push,N=Array.prototype.slice,R=String.prototype.trim,Q=Array.prototype.indexOf,L={};b.fn=b.prototype={init:function(i,r){var y,z,F;if(!i)return this;if(i.nodeType){this.context=this[0]=i;this.length=1;return this}if(i==="body"&&!r&&u.body){this.context=u;this[0]=u.body;this.selector="body";this.length=1;return this}if(typeof i==="string")if((y=h.exec(i))&&(y[1]||!r))if(y[1]){F=r?r.ownerDocument||r:u;if(z=B.exec(i))if(b.isPlainObject(r)){i=
+[u.createElement(z[1])];b.fn.attr.call(i,r,true)}else i=[F.createElement(z[1])];else{z=b.buildFragment([y[1]],[F]);i=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,i)}else{if((z=u.getElementById(y[2]))&&z.parentNode){if(z.id!==y[2])return f.find(i);this.length=1;this[0]=z}this.context=u;this.selector=i;return this}else if(!r&&!s.test(i)){this.selector=i;this.context=u;i=u.getElementsByTagName(i);return b.merge(this,i)}else return!r||r.jquery?(r||f).find(i):b(r).find(i);
+else if(b.isFunction(i))return f.ready(i);if(i.selector!==A){this.selector=i.selector;this.context=i.context}return b.makeArray(i,this)},selector:"",jquery:"1.4.3",length:0,size:function(){return this.length},toArray:function(){return N.call(this,0)},get:function(i){return i==null?this.toArray():i<0?this.slice(i)[0]:this[i]},pushStack:function(i,r,y){var z=b();b.isArray(i)?P.apply(z,i):b.merge(z,i);z.prevObject=this;z.context=this.context;if(r==="find")z.selector=this.selector+(this.selector?" ":
+"")+y;else if(r)z.selector=this.selector+"."+r+"("+y+")";return z},each:function(i,r){return b.each(this,i,r)},ready:function(i){b.bindReady();if(b.isReady)i.call(u,b);else q&&q.push(i);return this},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(i){return this.pushStack(b.map(this,function(r,y){return i.call(r,
+y,r)}))},end:function(){return this.prevObject||b(null)},push:P,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var i=arguments[0]||{},r=1,y=arguments.length,z=false,F,I,K,J,fa;if(typeof i==="boolean"){z=i;i=arguments[1]||{};r=2}if(typeof i!=="object"&&!b.isFunction(i))i={};if(y===r){i=this;--r}for(;r<y;r++)if((F=arguments[r])!=null)for(I in F){K=i[I];J=F[I];if(i!==J)if(z&&J&&(b.isPlainObject(J)||(fa=b.isArray(J)))){if(fa){fa=false;clone=K&&b.isArray(K)?K:[]}else clone=
+K&&b.isPlainObject(K)?K:{};i[I]=b.extend(z,clone,J)}else if(J!==A)i[I]=J}return i};b.extend({noConflict:function(i){E.$=e;if(i)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(i){i===true&&b.readyWait--;if(!b.readyWait||i!==true&&!b.isReady){if(!u.body)return setTimeout(b.ready,1);b.isReady=true;if(!(i!==true&&--b.readyWait>0)){if(q){for(var r=0;i=q[r++];)i.call(u,b);q=null}b.fn.triggerHandler&&b(u).triggerHandler("ready")}}},bindReady:function(){if(!p){p=true;if(u.readyState==="complete")return setTimeout(b.ready,
+1);if(u.addEventListener){u.addEventListener("DOMContentLoaded",t,false);E.addEventListener("load",b.ready,false)}else if(u.attachEvent){u.attachEvent("onreadystatechange",t);E.attachEvent("onload",b.ready);var i=false;try{i=E.frameElement==null}catch(r){}u.documentElement.doScroll&&i&&a()}}},isFunction:function(i){return b.type(i)==="function"},isArray:Array.isArray||function(i){return b.type(i)==="array"},isWindow:function(i){return i&&typeof i==="object"&&"setInterval"in i},isNaN:function(i){return i==
+null||!v.test(i)||isNaN(i)},type:function(i){return i==null?String(i):L[x.call(i)]||"object"},isPlainObject:function(i){if(!i||b.type(i)!=="object"||i.nodeType||b.isWindow(i))return false;if(i.constructor&&!C.call(i,"constructor")&&!C.call(i.constructor.prototype,"isPrototypeOf"))return false;for(var r in i);return r===A||C.call(i,r)},isEmptyObject:function(i){for(var r in i)return false;return true},error:function(i){throw i;},parseJSON:function(i){if(typeof i!=="string"||!i)return null;i=b.trim(i);
+if(D.test(i.replace(H,"@").replace(w,"]").replace(G,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(i):(new Function("return "+i))();else b.error("Invalid JSON: "+i)},noop:function(){},globalEval:function(i){if(i&&k.test(i)){var r=u.getElementsByTagName("head")[0]||u.documentElement,y=u.createElement("script");y.type="text/javascript";if(b.support.scriptEval)y.appendChild(u.createTextNode(i));else y.text=i;r.insertBefore(y,r.firstChild);r.removeChild(y)}},nodeName:function(i,r){return i.nodeName&&i.nodeName.toUpperCase()===
+r.toUpperCase()},each:function(i,r,y){var z,F=0,I=i.length,K=I===A||b.isFunction(i);if(y)if(K)for(z in i){if(r.apply(i[z],y)===false)break}else for(;F<I;){if(r.apply(i[F++],y)===false)break}else if(K)for(z in i){if(r.call(i[z],z,i[z])===false)break}else for(y=i[0];F<I&&r.call(y,F,y)!==false;y=i[++F]);return i},trim:R?function(i){return i==null?"":R.call(i)}:function(i){return i==null?"":i.toString().replace(l,"").replace(n,"")},makeArray:function(i,r){var y=r||[];if(i!=null){var z=b.type(i);i.length==
+null||z==="string"||z==="function"||z==="regexp"||b.isWindow(i)?P.call(y,i):b.merge(y,i)}return y},inArray:function(i,r){if(r.indexOf)return r.indexOf(i);for(var y=0,z=r.length;y<z;y++)if(r[y]===i)return y;return-1},merge:function(i,r){var y=i.length,z=0;if(typeof r.length==="number")for(var F=r.length;z<F;z++)i[y++]=r[z];else for(;r[z]!==A;)i[y++]=r[z++];i.length=y;return i},grep:function(i,r,y){var z=[],F;y=!!y;for(var I=0,K=i.length;I<K;I++){F=!!r(i[I],I);y!==F&&z.push(i[I])}return z},map:function(i,
+r,y){for(var z=[],F,I=0,K=i.length;I<K;I++){F=r(i[I],I,y);if(F!=null)z[z.length]=F}return z.concat.apply([],z)},guid:1,proxy:function(i,r,y){if(arguments.length===2)if(typeof r==="string"){y=i;i=y[r];r=A}else if(r&&!b.isFunction(r)){y=r;r=A}if(!r&&i)r=function(){return i.apply(y||this,arguments)};if(i)r.guid=i.guid=i.guid||r.guid||b.guid++;return r},access:function(i,r,y,z,F,I){var K=i.length;if(typeof r==="object"){for(var J in r)b.access(i,J,r[J],z,F,y);return i}if(y!==A){z=!I&&z&&b.isFunction(y);
+for(J=0;J<K;J++)F(i[J],r,z?y.call(i[J],J,F(i[J],r)):y,I);return i}return K?F(i[0],r):A},now:function(){return(new Date).getTime()},uaMatch:function(i){i=i.toLowerCase();i=M.exec(i)||g.exec(i)||j.exec(i)||i.indexOf("compatible")<0&&o.exec(i)||[];return{browser:i[1]||"",version:i[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,r){L["[object "+r+"]"]=r.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=
+m.version}if(b.browser.webkit)b.browser.safari=true;if(Q)b.inArray=function(i,r){return Q.call(r,i)};if(!/\s/.test("\u00a0")){l=/^[\s\xA0]+/;n=/[\s\xA0]+$/}f=b(u);if(u.addEventListener)t=function(){u.removeEventListener("DOMContentLoaded",t,false);b.ready()};else if(u.attachEvent)t=function(){if(u.readyState==="complete"){u.detachEvent("onreadystatechange",t);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=u.documentElement,b=u.createElement("script"),d=u.createElement("div"),
+e="script"+c.now();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],k=u.createElement("select"),l=k.appendChild(u.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),
+hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:l.selected,optDisabled:false,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};k.disabled=true;c.support.optDisabled=!l.disabled;b.type="text/javascript";try{b.appendChild(u.createTextNode("window."+e+"=1;"))}catch(n){}a.insertBefore(b,
+a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function s(){c.support.noCloneEvent=false;d.detachEvent("onclick",s)});d.cloneNode(true).fireEvent("onclick")}d=u.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=u.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var s=u.createElement("div");
+s.style.width=s.style.paddingLeft="1px";u.body.appendChild(s);c.boxModel=c.support.boxModel=s.offsetWidth===2;if("zoom"in s.style){s.style.display="inline";s.style.zoom=1;c.support.inlineBlockNeedsLayout=s.offsetWidth===2;s.style.display="";s.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=s.offsetWidth!==2}s.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var v=s.getElementsByTagName("td");c.support.reliableHiddenOffsets=v[0].offsetHeight===
+0;v[0].style.display="";v[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&v[0].offsetHeight===0;s.innerHTML="";u.body.removeChild(s).style.display="none"});a=function(s){var v=u.createElement("div");s="on"+s;var B=s in v;if(!B){v.setAttribute(s,"return;");B=typeof v[s]==="function"}return B};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",
+cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var pa={},Oa=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?pa:a;var e=a.nodeType,f=e?a[c.expando]:null,h=c.cache;if(!(e&&!f&&typeof b==="string"&&d===A)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=
+c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==A)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?pa:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);else if(d)delete f[e];else for(var k in a)delete a[k]}},acceptData:function(a){if(a.nodeName){var b=
+c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){if(typeof a==="undefined")return this.length?c.data(this[0]):null;else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===A){var e=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(e===A&&this.length){e=c.data(this[0],a);if(e===A&&this[0].nodeType===1){e=this[0].getAttribute("data-"+a);if(typeof e===
+"string")try{e=e==="true"?true:e==="false"?false:e==="null"?null:!c.isNaN(e)?parseFloat(e):Oa.test(e)?c.parseJSON(e):e}catch(f){}else e=A}}return e===A&&d[1]?this.data(d[0]):e}else return this.each(function(){var h=c(this),k=[d[0],b];h.triggerHandler("setData"+d[1]+"!",k);c.data(this,a,b);h.triggerHandler("changeData"+d[1]+"!",k)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=c.data(a,b);if(!d)return e||
+[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===A)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
+a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var qa=/[\n\t]/g,ga=/\s+/,Pa=/\r/g,Qa=/^(?:href|src|style)$/,Ra=/^(?:button|input)$/i,Sa=/^(?:button|input|object|select|textarea)$/i,Ta=/^a(?:rea)?$/i,ra=/^(?:radio|checkbox)$/i;c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,
+a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(s){var v=c(this);v.addClass(a.call(this,s,v.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ga),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1)if(f.className){for(var h=" "+f.className+" ",k=f.className,l=0,n=b.length;l<n;l++)if(h.indexOf(" "+b[l]+" ")<0)k+=" "+b[l];f.className=c.trim(k)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(n){var s=
+c(this);s.removeClass(a.call(this,n,s.attr("class")))});if(a&&typeof a==="string"||a===A)for(var b=(a||"").split(ga),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(qa," "),k=0,l=b.length;k<l;k++)h=h.replace(" "+b[k]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,
+f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,k=c(this),l=b,n=a.split(ga);f=n[h++];){l=e?l:!k.hasClass(f);k[l?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(qa," ").indexOf(a)>-1)return true;return false},
+val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var k=f[h];if(k.selected&&(c.support.optDisabled?!k.disabled:k.getAttribute("disabled")===null)&&(!k.parentNode.disabled||!c.nodeName(k.parentNode,"optgroup"))){a=c(k).val();if(b)return a;d.push(a)}}return d}if(ra.test(b.type)&&
+!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Pa,"")}return A}var l=c.isFunction(a);return this.each(function(n){var s=c(this),v=a;if(this.nodeType===1){if(l)v=a.call(this,n,s.val());if(v==null)v="";else if(typeof v==="number")v+="";else if(c.isArray(v))v=c.map(v,function(D){return D==null?"":D+""});if(c.isArray(v)&&ra.test(this.type))this.checked=c.inArray(s.val(),v)>=0;else if(c.nodeName(this,"select")){var B=c.makeArray(v);c("option",this).each(function(){this.selected=
+c.inArray(c(this).val(),B)>=0});if(!B.length)this.selectedIndex=-1}else this.value=v}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return A;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==A;b=e&&c.props[b]||b;if(a.nodeType===1){var h=Qa.test(b);if((b in a||a[b]!==A)&&e&&!h){if(f){b==="type"&&Ra.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
+if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Sa.test(a.nodeName)||Ta.test(a.nodeName)&&a.href?0:A;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return A;a=!c.support.hrefNormalized&&e&&
+h?a.getAttribute(b,2):a.getAttribute(b);return a===null?A:a}}});var X=/\.(.*)$/,ha=/^(?:textarea|input|select)$/i,Ha=/\./g,Ia=/ /g,Ua=/[^\w\s.|`]/g,Va=function(a){return a.replace(Ua,"\\$&")},sa={focusin:0,focusout:0};c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var k=a.nodeType?"events":"__events__",l=h[k],n=h.handle;if(typeof l===
+"function"){n=l.handle;l=l.events}else if(!l){a.nodeType||(h[k]=h=function(){});h.events=l={}}if(!n)h.handle=n=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(n.elem,arguments):A};n.elem=a;b=b.split(" ");for(var s=0,v;k=b[s++];){h=f?c.extend({},f):{handler:d,data:e};if(k.indexOf(".")>-1){v=k.split(".");k=v.shift();h.namespace=v.slice(0).sort().join(".")}else{v=[];h.namespace=""}h.type=k;if(!h.guid)h.guid=d.guid;var B=l[k],D=c.event.special[k]||{};if(!B){B=l[k]=[];
+if(!D.setup||D.setup.call(a,e,v,n)===false)if(a.addEventListener)a.addEventListener(k,n,false);else a.attachEvent&&a.attachEvent("on"+k,n)}if(D.add){D.add.call(a,h);if(!h.handler.guid)h.handler.guid=d.guid}B.push(h);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,k=0,l,n,s,v,B,D,H=a.nodeType?"events":"__events__",w=c.data(a),G=w&&w[H];if(w&&G){if(typeof G==="function"){w=G;G=G.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||
+typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in G)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[k++];){v=f;l=f.indexOf(".")<0;n=[];if(!l){n=f.split(".");f=n.shift();s=RegExp("(^|\\.)"+c.map(n.slice(0).sort(),Va).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(B=G[f])if(d){v=c.event.special[f]||{};for(h=e||0;h<B.length;h++){D=B[h];if(d.guid===D.guid){if(l||s.test(D.namespace)){e==null&&B.splice(h--,1);v.remove&&v.remove.call(a,D)}if(e!=null)break}}if(B.length===0||e!=null&&B.length===1){if(!v.teardown||
+v.teardown.call(a,n)===false)c.removeEvent(a,f,w.handle);delete G[f]}}else for(h=0;h<B.length;h++){D=B[h];if(l||s.test(D.namespace)){c.event.remove(a,v,D.handler,h);B.splice(h--,1)}}}if(c.isEmptyObject(G)){if(b=w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,H);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=
+f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return A;a.result=A;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===
+false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){e=a.target;var k,l=f.replace(X,""),n=c.nodeName(e,"a")&&l==="click",s=c.event.special[l]||{};if((!s._default||s._default.call(d,a)===false)&&!n&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[l]){if(k=e["on"+l])e["on"+l]=null;c.event.triggered=true;e[l]()}}catch(v){}if(k)e["on"+l]=k;c.event.triggered=false}}},handle:function(a){var b,d,e;
+d=[];var f,h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var k=d.length;f<k;f++){var l=d[f];if(b||e.test(l.namespace)){a.handler=l.handler;a.data=
+l.data;a.handleObj=l;l=l.handler.apply(this,h);if(l!==A){a.result=l;if(l===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||u;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=u.documentElement;d=u.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==A)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ga,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
+Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=u.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
+c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ba;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ba;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ba;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
+var ta=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},ua=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?ua:ta,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?ua:ta)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
+"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=A;return ja("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=A;return ja("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
+va=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ha.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=va(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===A||f===e))if(e!=null||f){a.type="change";a.liveFired=
+A;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",va(a))}},setup:function(){if(this.type===
+"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ha.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ha.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}u.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){sa[b]++===0&&u.addEventListener(a,d,true)},teardown:function(){--sa[b]===
+0&&u.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=A}var k=b==="one"?c.proxy(f,function(n){c(this).unbind(n,k);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var l=this.length;h<l;h++)c.event.add(this[h],d,k,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
+a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
+1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var wa={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var k,l=0,n,s,v=h||this.selector;h=h?this:c(this.context);if(typeof d===
+"object"&&!d.preventDefault){for(k in d)h[b](k,e,d[k],v);return this}if(c.isFunction(e)){f=e;e=A}for(d=(d||"").split(" ");(k=d[l++])!=null;){n=X.exec(k);s="";if(n){s=n[0];k=k.replace(X,"")}if(k==="hover")d.push("mouseenter"+s,"mouseleave"+s);else{n=k;if(k==="focus"||k==="blur"){d.push(wa[k]+s);k+=s}else k=(wa[k]||k)+s;if(b==="live"){s=0;for(var B=h.length;s<B;s++)c.event.add(h[s],"live."+Y(k,v),{data:e,selector:v,handler:f,origType:k,origHandler:f,preType:n})}else h.unbind("live."+Y(k,v),f)}}return this}});
+c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
+(function(){function a(g,j,o,m,p,q){p=0;for(var t=m.length;p<t;p++){var x=m[p];if(x){x=x[g];for(var C=false;x;){if(x.sizcache===o){C=m[x.sizset];break}if(x.nodeType===1&&!q){x.sizcache=o;x.sizset=p}if(x.nodeName.toLowerCase()===j){C=x;break}x=x[g]}m[p]=C}}}function b(g,j,o,m,p,q){p=0;for(var t=m.length;p<t;p++){var x=m[p];if(x){x=x[g];for(var C=false;x;){if(x.sizcache===o){C=m[x.sizset];break}if(x.nodeType===1){if(!q){x.sizcache=o;x.sizset=p}if(typeof j!=="string"){if(x===j){C=true;break}}else if(l.filter(j,
+[x]).length>0){C=x;break}}x=x[g]}m[p]=C}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,k=true;[0,0].sort(function(){k=false;return 0});var l=function(g,j,o,m){o=o||[];var p=j=j||u;if(j.nodeType!==1&&j.nodeType!==9)return[];if(!g||typeof g!=="string")return o;var q=[],t,x,C,P,N=true,R=l.isXML(j),Q=g,L;do{d.exec("");if(t=d.exec(Q)){Q=t[3];q.push(t[1]);if(t[2]){P=t[3];
+break}}}while(t);if(q.length>1&&s.exec(g))if(q.length===2&&n.relative[q[0]])x=M(q[0]+q[1],j);else for(x=n.relative[q[0]]?[j]:l(q.shift(),j);q.length;){g=q.shift();if(n.relative[g])g+=q.shift();x=M(g,x)}else{if(!m&&q.length>1&&j.nodeType===9&&!R&&n.match.ID.test(q[0])&&!n.match.ID.test(q[q.length-1])){t=l.find(q.shift(),j,R);j=t.expr?l.filter(t.expr,t.set)[0]:t.set[0]}if(j){t=m?{expr:q.pop(),set:D(m)}:l.find(q.pop(),q.length===1&&(q[0]==="~"||q[0]==="+")&&j.parentNode?j.parentNode:j,R);x=t.expr?l.filter(t.expr,
+t.set):t.set;if(q.length>0)C=D(x);else N=false;for(;q.length;){t=L=q.pop();if(n.relative[L])t=q.pop();else L="";if(t==null)t=j;n.relative[L](C,t,R)}}else C=[]}C||(C=x);C||l.error(L||g);if(f.call(C)==="[object Array]")if(N)if(j&&j.nodeType===1)for(g=0;C[g]!=null;g++){if(C[g]&&(C[g]===true||C[g].nodeType===1&&l.contains(j,C[g])))o.push(x[g])}else for(g=0;C[g]!=null;g++)C[g]&&C[g].nodeType===1&&o.push(x[g]);else o.push.apply(o,C);else D(C,o);if(P){l(P,p,o,m);l.uniqueSort(o)}return o};l.uniqueSort=function(g){if(w){h=
+k;g.sort(w);if(h)for(var j=1;j<g.length;j++)g[j]===g[j-1]&&g.splice(j--,1)}return g};l.matches=function(g,j){return l(g,null,null,j)};l.matchesSelector=function(g,j){return l(j,null,null,[g]).length>0};l.find=function(g,j,o){var m;if(!g)return[];for(var p=0,q=n.order.length;p<q;p++){var t=n.order[p],x;if(x=n.leftMatch[t].exec(g)){var C=x[1];x.splice(1,1);if(C.substr(C.length-1)!=="\\"){x[1]=(x[1]||"").replace(/\\/g,"");m=n.find[t](x,j,o);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=j.getElementsByTagName("*"));
+return{set:m,expr:g}};l.filter=function(g,j,o,m){for(var p=g,q=[],t=j,x,C,P=j&&j[0]&&l.isXML(j[0]);g&&j.length;){for(var N in n.filter)if((x=n.leftMatch[N].exec(g))!=null&&x[2]){var R=n.filter[N],Q,L;L=x[1];C=false;x.splice(1,1);if(L.substr(L.length-1)!=="\\"){if(t===q)q=[];if(n.preFilter[N])if(x=n.preFilter[N](x,t,o,q,m,P)){if(x===true)continue}else C=Q=true;if(x)for(var i=0;(L=t[i])!=null;i++)if(L){Q=R(L,x,i,t);var r=m^!!Q;if(o&&Q!=null)if(r)C=true;else t[i]=false;else if(r){q.push(L);C=true}}if(Q!==
+A){o||(t=q);g=g.replace(n.match[N],"");if(!C)return[];break}}}if(g===p)if(C==null)l.error(g);else break;p=g}return t};l.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=l.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,j){var o=typeof j==="string",m=o&&!/\W/.test(j);o=o&&!m;if(m)j=j.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=o||q&&q.nodeName.toLowerCase()===
+j?q||false:q===j}o&&l.filter(j,g,true)},">":function(g,j){var o=typeof j==="string",m,p=0,q=g.length;if(o&&!/\W/.test(j))for(j=j.toLowerCase();p<q;p++){if(m=g[p]){o=m.parentNode;g[p]=o.nodeName.toLowerCase()===j?o:false}}else{for(;p<q;p++)if(m=g[p])g[p]=o?m.parentNode:m.parentNode===j;o&&l.filter(j,g,true)}},"":function(g,j,o){var m=e++,p=b,q;if(typeof j==="string"&&!/\W/.test(j)){q=j=j.toLowerCase();p=a}p("parentNode",j,m,g,q,o)},"~":function(g,j,o){var m=e++,p=b,q;if(typeof j==="string"&&!/\W/.test(j)){q=
+j=j.toLowerCase();p=a}p("previousSibling",j,m,g,q,o)}},find:{ID:function(g,j,o){if(typeof j.getElementById!=="undefined"&&!o)return(g=j.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,j){if(typeof j.getElementsByName!=="undefined"){for(var o=[],m=j.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&o.push(m[p]);return o.length===0?null:o}},TAG:function(g,j){return j.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,j,o,m,p,q){g=" "+g[1].replace(/\\/g,
+"")+" ";if(q)return g;q=0;for(var t;(t=j[q])!=null;q++)if(t)if(p^(t.className&&(" "+t.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))o||m.push(t);else if(o)j[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var j=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=j[1]+(j[2]||1)-0;g[3]=j[3]-0}g[0]=e++;return g},ATTR:function(g,j,o,
+m,p,q){j=g[1].replace(/\\/g,"");if(!q&&n.attrMap[j])g[1]=n.attrMap[j];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,j,o,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=l(g[3],null,null,j);else{g=l.filter(g[3],j,o,true^p);o||m.push.apply(m,g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
+true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,j,o){return!!l(o[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
+g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,j){return j===0},last:function(g,j,o,m){return j===m.length-1},even:function(g,j){return j%2===0},odd:function(g,j){return j%2===1},lt:function(g,j,o){return j<o[3]-0},gt:function(g,j,o){return j>o[3]-0},nth:function(g,j,o){return o[3]-
+0===j},eq:function(g,j,o){return o[3]-0===j}},filter:{PSEUDO:function(g,j,o,m){var p=j[1],q=n.filters[p];if(q)return q(g,o,j,m);else if(p==="contains")return(g.textContent||g.innerText||l.getText([g])||"").indexOf(j[3])>=0;else if(p==="not"){j=j[3];o=0;for(m=j.length;o<m;o++)if(j[o]===g)return false;return true}else l.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,j){var o=j[1],m=g;switch(o){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(o===
+"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":o=j[2];var p=j[3];if(o===1&&p===0)return true;var q=j[0],t=g.parentNode;if(t&&(t.sizcache!==q||!g.nodeIndex)){var x=0;for(m=t.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++x;t.sizcache=q}m=g.nodeIndex-p;return o===0?m===0:m%o===0&&m/o>=0}},ID:function(g,j){return g.nodeType===1&&g.getAttribute("id")===j},TAG:function(g,j){return j==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
+j},CLASS:function(g,j){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(j)>-1},ATTR:function(g,j){var o=j[1];o=n.attrHandle[o]?n.attrHandle[o](g):g[o]!=null?g[o]:g.getAttribute(o);var m=o+"",p=j[2],q=j[4];return o==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&o!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,j,o,m){var p=n.setFilters[j[2]];
+if(p)return p(g,o,j,m)}}},s=n.match.POS,v=function(g,j){return"\\"+(j-0+1)},B;for(B in n.match){n.match[B]=RegExp(n.match[B].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[B]=RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[B].source.replace(/\\(\d+)/g,v))}var D=function(g,j){g=Array.prototype.slice.call(g,0);if(j){j.push.apply(j,g);return j}return g};try{Array.prototype.slice.call(u.documentElement.childNodes,0)}catch(H){D=function(g,j){var o=j||[],m=0;if(f.call(g)==="[object Array]")Array.prototype.push.apply(o,
+g);else if(typeof g.length==="number")for(var p=g.length;m<p;m++)o.push(g[m]);else for(;g[m];m++)o.push(g[m]);return o}}var w,G;if(u.documentElement.compareDocumentPosition)w=function(g,j){if(g===j){h=true;return 0}if(!g.compareDocumentPosition||!j.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(j)&4?-1:1};else{w=function(g,j){var o=[],m=[],p=g.parentNode,q=j.parentNode,t=p;if(g===j){h=true;return 0}else if(p===q)return G(g,j);else if(p){if(!q)return 1}else return-1;
+for(;t;){o.unshift(t);t=t.parentNode}for(t=q;t;){m.unshift(t);t=t.parentNode}p=o.length;q=m.length;for(t=0;t<p&&t<q;t++)if(o[t]!==m[t])return G(o[t],m[t]);return t===p?G(g,m[t],-1):G(o[t],j,1)};G=function(g,j,o){if(g===j)return o;for(g=g.nextSibling;g;){if(g===j)return-1;g=g.nextSibling}return 1}}l.getText=function(g){for(var j="",o,m=0;g[m];m++){o=g[m];if(o.nodeType===3||o.nodeType===4)j+=o.nodeValue;else if(o.nodeType!==8)j+=l.getText(o.childNodes)}return j};(function(){var g=u.createElement("div"),
+j="script"+(new Date).getTime();g.innerHTML="<a name='"+j+"'/>";var o=u.documentElement;o.insertBefore(g,o.firstChild);if(u.getElementById(j)){n.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:A:[]};n.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}o.removeChild(g);
+o=g=null})();(function(){var g=u.createElement("div");g.appendChild(u.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(j,o){var m=o.getElementsByTagName(j[1]);if(j[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(j){return j.getAttribute("href",2)};g=null})();u.querySelectorAll&&
+function(){var g=l,j=u.createElement("div");j.innerHTML="<p class='TEST'></p>";if(!(j.querySelectorAll&&j.querySelectorAll(".TEST").length===0)){l=function(m,p,q,t){p=p||u;if(!t&&!l.isXML(p))if(p.nodeType===9)try{return D(p.querySelectorAll(m),q)}catch(x){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var C=p.id,P=p.id="__sizzle__";try{return D(p.querySelectorAll("#"+P+" "+m),q)}catch(N){}finally{if(C)p.id=C;else p.removeAttribute("id")}}return g(m,p,q,t)};for(var o in g)l[o]=g[o];
+j=null}}();(function(){var g=u.documentElement,j=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,o=false;try{j.call(u.documentElement,":sizzle")}catch(m){o=true}if(j)l.matchesSelector=function(p,q){try{if(o||!n.match.PSEUDO.test(q))return j.call(p,q)}catch(t){}return l(q,null,null,[p]).length>0}})();(function(){var g=u.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
+0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(j,o,m){if(typeof o.getElementsByClassName!=="undefined"&&!m)return o.getElementsByClassName(j[1])};g=null}}})();l.contains=u.documentElement.contains?function(g,j){return g!==j&&(g.contains?g.contains(j):true)}:function(g,j){return!!(g.compareDocumentPosition(j)&16)};l.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var M=function(g,
+j){for(var o=[],m="",p,q=j.nodeType?[j]:j;p=n.match.PSEUDO.exec(g);){m+=p[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;p=0;for(var t=q.length;p<t;p++)l(g,q[p],o);return l.filter(m,o)};c.find=l;c.expr=l.selectors;c.expr[":"]=c.expr.filters;c.unique=l.uniqueSort;c.text=l.getText;c.isXMLDoc=l.isXML;c.contains=l.contains})();var Wa=/Until$/,Xa=/^(?:parents|prevUntil|prevAll)/,Ya=/,/,Ja=/^.[^:#\[\.,]*$/,Za=Array.prototype.slice,$a=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("",
+"find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var k=0;k<d;k++)if(b[k]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(ka(this,a,false),"not",a)},filter:function(a){return this.pushStack(ka(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,
+b){var d=[],e,f,h=this[0];if(c.isArray(a)){var k={},l,n=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:n})}h=h.parentNode;n++}}return d}k=$a.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(k?k.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||
+!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});
+c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",
+d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Wa.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||Ya.test(e))&&Xa.test(a))f=f.reverse();return this.pushStack(f,a,Za.call(arguments).join(","))}});
+c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===A||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var xa=/ jQuery\d+="(?:\d+|null)"/g,
+$=/^\s+/,ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,za=/<([\w:]+)/,ab=/<tbody/i,bb=/<|&#?\w+;/,Aa=/<(?:script|object|embed|option|style)/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,cb=/\=([^="'>\s]+\/)>/g,O={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],
+area:[1,"<map>","</map>"],_default:[0,"",""]};O.optgroup=O.option;O.tbody=O.tfoot=O.colgroup=O.caption=O.thead;O.th=O.td;if(!c.support.htmlSerialize)O._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==A)return this.empty().append((this[0]&&this[0].ownerDocument||u).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,
+d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},
+unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=
+c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));
+c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(xa,"").replace(cb,'="$1">').replace($,
+"")],e)[0]}else return this.cloneNode(true)});if(a===true){la(this,b);la(this.find("*"),b.find("*"))}return b},html:function(a){if(a===A)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(xa,""):null;else if(typeof a==="string"&&!Aa.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!O[(za.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ya,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?
+this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,
+true)},domManip:function(a,b,d){var e,f,h=a[0],k=[],l;if(!c.support.checkClone&&arguments.length===3&&typeof h==="string"&&Ba.test(h))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(h))return this.each(function(s){var v=c(this);a[0]=h.call(this,s,b?v.html():A);v.domManip(a,b,d)});if(this[0]){e=h&&h.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);l=e.fragment;if(f=l.childNodes.length===1?l=l.firstChild:
+l.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var n=this.length;f<n;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):this[f]:this[f],f>0||e.cacheable||this.length>1?l.cloneNode(true):l)}k.length&&c.each(k,Ka)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:u;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===u&&!Aa.test(a[0])&&(c.support.checkClone||
+!Ba.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=
+d.length;f<h;f++){var k=(f>0?this.clone(true):this).get();c(d[f])[b](k);e=e.concat(k)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||u;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||u;for(var f=[],h=0,k;(k=a[h])!=null;h++){if(typeof k==="number")k+="";if(k){if(typeof k==="string"&&!bb.test(k))k=b.createTextNode(k);else if(typeof k==="string"){k=k.replace(ya,"<$1></$2>");var l=(za.exec(k)||["",""])[1].toLowerCase(),n=O[l]||O._default,
+s=n[0],v=b.createElement("div");for(v.innerHTML=n[1]+k+n[2];s--;)v=v.lastChild;if(!c.support.tbody){s=ab.test(k);l=l==="table"&&!s?v.firstChild&&v.firstChild.childNodes:n[1]==="<table>"&&!s?v.childNodes:[];for(n=l.length-1;n>=0;--n)c.nodeName(l[n],"tbody")&&!l[n].childNodes.length&&l[n].parentNode.removeChild(l[n])}!c.support.leadingWhitespace&&$.test(k)&&v.insertBefore(b.createTextNode($.exec(k)[0]),v.firstChild);k=v.childNodes}if(k.nodeType)f.push(k);else f=c.merge(f,k)}}if(d)for(h=0;f[h];h++)if(e&&
+c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,k=0,l;(l=a[k])!=null;k++)if(!(l.nodeName&&c.noData[l.nodeName.toLowerCase()]))if(d=l[c.expando]){if((b=e[d])&&b.events)for(var n in b.events)f[n]?
+c.event.remove(l,n):c.removeEvent(l,n,b.handle);if(h)delete l[c.expando];else l.removeAttribute&&l.removeAttribute(c.expando);delete e[d]}}});var Ca=/alpha\([^)]*\)/i,db=/opacity=([^)]*)/,eb=/-([a-z])/ig,fb=/([A-Z])/g,Da=/^-?\d+(?:px)?$/i,gb=/^-?\d/,hb={position:"absolute",visibility:"hidden",display:"block"},La=["Left","Right"],Ma=["Top","Bottom"],W,ib=u.defaultView&&u.defaultView.getComputedStyle,jb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===A)return this;
+return c.access(this,a,b,true,function(d,e,f){return f!==A?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),k=a.style,l=c.cssHooks[h];b=c.cssProps[h]||
+h;if(d!==A){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!l||!("set"in l)||(d=l.set(a,d))!==A)try{k[b]=d}catch(n){}}}else{if(l&&"get"in l&&(f=l.get(a,false,e))!==A)return f;return k[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==A)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=
+e[f]},camelCase:function(a){return a.replace(eb,jb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=ma(d,b,f);else c.swap(d,hb,function(){h=ma(d,b,f)});return h+"px"}},set:function(d,e){if(Da.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return db.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":
+b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=d.filter||"";d.filter=Ca.test(f)?f.replace(Ca,e):d.filter+" "+e}};if(ib)W=function(a,b,d){var e;d=d.replace(fb,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return A;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};else if(u.documentElement.currentStyle)W=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],
+h=a.style;if(!Da.test(f)&&gb.test(f)){d=h.left;e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f};if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var kb=c.now(),lb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+mb=/^(?:select|textarea)/i,nb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ob=/^(?:GET|HEAD|DELETE)$/,Na=/\[\]$/,T=/\=\?(&|$)/,ia=/\?/,pb=/([?&])_=[^&]*/,qb=/^(\w+:)?\/\/([^\/?#]+)/,rb=/%20/g,sb=/#.*$/,Ea=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ea)return Ea.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=
+b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(k,l){if(l==="success"||l==="notmodified")h.html(f?c("<div>").append(k.responseText.replace(lb,"")).find(f):k.responseText);d&&h.each(d,[k.responseText,l,k])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
+!this.disabled&&(this.checked||mb.test(this.nodeName)||nb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
+getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
+script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),k=ob.test(h);b.url=b.url.replace(sb,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ia.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
+!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+kb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var l=E[d];E[d]=function(m){f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);if(c.isFunction(l))l(m);else{E[d]=A;try{delete E[d]}catch(p){}}v&&v.removeChild(B)}}if(b.dataType==="script"&&b.cache===null)b.cache=
+false;if(b.cache===false&&h==="GET"){var n=c.now(),s=b.url.replace(pb,"$1_="+n);b.url=s+(s===b.url?(ia.test(b.url)?"&":"?")+"_="+n:"")}if(b.data&&h==="GET")b.url+=(ia.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");n=(n=qb.exec(b.url))&&(n[1]&&n[1]!==location.protocol||n[2]!==location.host);if(b.dataType==="script"&&h==="GET"&&n){var v=u.getElementsByTagName("head")[0]||u.documentElement,B=u.createElement("script");if(b.scriptCharset)B.charset=b.scriptCharset;B.src=
+b.url;if(!d){var D=false;B.onload=B.onreadystatechange=function(){if(!D&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){D=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);B.onload=B.onreadystatechange=null;v&&B.parentNode&&v.removeChild(B)}}}v.insertBefore(B,v.firstChild);return A}var H=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!k||a&&a.contentType)w.setRequestHeader("Content-Type",
+b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}n||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(G){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
+c.triggerGlobal(b,"ajaxSend",[w,b]);var M=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){H||c.handleComplete(b,w,e,f);H=true;if(w)w.onreadystatechange=c.noop}else if(!H&&w&&(w.readyState===4||m==="timeout")){H=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
+c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&g.call&&g.call(w);M("abort")}}catch(j){}b.async&&b.timeout>0&&setTimeout(function(){w&&!H&&M("timeout")},b.timeout);try{w.send(k||b.data==null?null:b.data)}catch(o){c.handleError(b,w,null,o);c.handleComplete(b,w,e,f)}b.async||M();return w}},param:function(a,b){var d=[],e=function(h,k){k=c.isFunction(k)?k():k;d[d.length]=encodeURIComponent(h)+
+"="+encodeURIComponent(k)};if(b===A)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)ca(f,a[f],b,e);return d.join("&").replace(rb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",[b,a])},handleComplete:function(a,
+b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),e=a.getResponseHeader("Etag");
+if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});if(E.ActiveXObject)c.ajaxSettings.xhr=
+function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var da={},tb=/^(?:toggle|show|hide)$/,ub=/^([+\-]=)?([\d+.\-]+)(.*)$/,aa,na=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",3),a,b,d);else{a=
+0;for(b=this.length;a<b;a++){if(!c.data(this[a],"olddisplay")&&this[a].style.display==="none")this[a].style.display="";this[a].style.display===""&&c.css(this[a],"display")==="none"&&c.data(this[a],"olddisplay",oa(this[a].nodeName))}for(a=0;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",d)}for(a=
+0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,d,e);if(c.isEmptyObject(a))return this.each(f.complete);
+return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),k,l=this.nodeType===1,n=l&&c(this).is(":hidden"),s=this;for(k in a){var v=c.camelCase(k);if(k!==v){a[v]=a[k];delete a[k];k=v}if(a[k]==="hide"&&n||a[k]==="show"&&!n)return h.complete.call(this);if(l&&(k==="height"||k==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(oa(this.nodeName)===
+"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[k])){(h.specialEasing=h.specialEasing||{})[k]=a[k][1];a[k]=a[k][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(B,D){var H=new c.fx(s,h,B);if(tb.test(D))H[D==="toggle"?n?"show":"hide":D](a);else{var w=ub.exec(D),G=H.cur(true)||0;if(w){var M=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(s,B,(M||1)+g);
+G=(M||1)/H.cur(true)*G;c.style(s,B,G+g)}if(w[1])M=(w[1]==="-="?-1:1)*M+G;H.custom(G,M,g)}else H.custom(G,D,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
+d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
+Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(h){return f.step(h)}
+this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var f=this;a=c.fx;e.elem=this.elem;if(e()&&c.timers.push(e)&&!aa)aa=setInterval(a.tick,a.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
+this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(l,n){f.style["overflow"+n]=h.overflow[l]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
+this.options.show)for(var k in this.options.curAnim)c.style(this.elem,k,this.options.orig[k]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
+c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(aa);aa=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
+b.elem}).length};var vb=/^t(?:able|d|h)$/i,Fa=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in u.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(k){c.offset.setOffset(this,a,k)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=ea(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
+h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,e=b.ownerDocument,f,h=e.documentElement,k=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;
+for(var l=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==k&&b!==h;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;f=e?e.getComputedStyle(b,null):b.currentStyle;l-=b.scrollTop;n-=b.scrollLeft;if(b===d){l+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&vb.test(b.nodeName))){l+=parseFloat(f.borderTopWidth)||0;n+=parseFloat(f.borderLeftWidth)||0}d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&f.overflow!=="visible"){l+=
+parseFloat(f.borderTopWidth)||0;n+=parseFloat(f.borderLeftWidth)||0}f=f}if(f.position==="relative"||f.position==="static"){l+=k.offsetTop;n+=k.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){l+=Math.max(h.scrollTop,k.scrollTop);n+=Math.max(h.scrollLeft,k.scrollLeft)}return{top:l,left:n}};c.offset={initialize:function(){var a=u.body,b=u.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
+height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
+f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
+"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),k=c.css(a,"top"),l=c.css(a,"left"),n=e==="absolute"&&c.inArray("auto",[k,l])>-1;e={};var s={};if(n)s=f.position();k=n?s.top:parseInt(k,10)||0;l=n?s.left:parseInt(l,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+k;if(b.left!=null)e.left=b.left-h.left+l;"using"in b?b.using.call(a,
+e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Fa.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||u.body;a&&!Fa.test(a.nodeName)&&
+c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==A)return this.each(function(){if(h=ea(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=ea(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
+c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(h){var k=c(this);k[d](e.call(this,h,k[d]()))});return c.isWindow(f)?f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b]:f.nodeType===9?Math.max(f.documentElement["client"+
+b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]):e===A?parseFloat(c.css(f,d)):this.css(d,typeof e==="string"?e:e+"px")}})})(window);

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.af.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Align in verhouding tot ..."},
-{"id": "bkgnd_color", "title": "Verander agtergrondkleur / opaciteit"},
-{"id": "circle_cx", "title": "Verandering sirkel se cx koördineer"},
-{"id": "circle_cy", "title": "Verandering sirkel se cy koördineer"},
-{"id": "circle_r", "title": "Verandering sirkel se radius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Verandering Rechthoek Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Verandering ellips se cx koördineer"},
-{"id": "ellipse_cy", "title": "Verander ellips se cy koördineer"},
-{"id": "ellipse_rx", "title": "Verandering ellips se x radius"},
-{"id": "ellipse_ry", "title": "Verander ellips se j radius"},
-{"id": "fill_color", "title": "Verandering vul kleur"},
-{"id": "fitToContent", "textContent": "Pas na inhoud"},
-{"id": "fit_to_all", "textContent": "Passing tot al inhoud"},
-{"id": "fit_to_canvas", "textContent": "Passing tot doek"},
-{"id": "fit_to_layer_content", "textContent": "Passing tot laag inhoud"},
-{"id": "fit_to_sel", "textContent": "Passing tot seleksie"},
-{"id": "font_family", "title": "Lettertipe verander Familie"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Verandering prent hoogte"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "URL verander"},
-{"id": "image_width", "title": "Verander prent breedte"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "grootste voorwerp"},
-{"id": "layer_delete", "title": "Verwyder Laag"},
-{"id": "layer_down", "title": "Beweeg afbreek Down"},
-{"id": "layer_new", "title": "Nuwe Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Beweeg afbreek Up"},
-{"id": "layersLabel", "textContent": "Lae:"},
-{"id": "line_x1", "title": "Verandering lyn se vertrek x koördinaat"},
-{"id": "line_x2", "title": "Verandering lyn se eindig x koördinaat"},
-{"id": "line_y1", "title": "Verandering lyn se vertrek y koördinaat"},
-{"id": "line_y2", "title": "Verandering lyn se eindig y koördinaat"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "bladsy"},
-{"id": "palette", "title": "Klik om te verander vul kleur, verskuiwing klik om &#39;n beroerte kleur verander"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Verandering reghoek hoogte"},
-{"id": "rect_width_tool", "title": "Verandering reghoek breedte"},
-{"id": "relativeToLabel", "textContent": "relatief tot:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Kies gedefinieerde:"},
-{"id": "selected_objects", "textContent": "verkose voorwerpe"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "kleinste voorwerp"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Verandering beroerte kleur"},
-{"id": "stroke_style", "title": "Verandering beroerte dash styl"},
-{"id": "stroke_width", "title": "Verandering beroerte breedte"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Doek Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Lengte:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Wydte:"},
-{"id": "text", "title": "Verander teks inhoud"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Rig Middel"},
-{"id": "tool_alignleft", "title": "Links Regterkant"},
-{"id": "tool_alignmiddle", "title": "Align Midde"},
-{"id": "tool_alignright", "title": "Lijn regs uit"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Verandering rotasie-hoek"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Vetgedrukte teks"},
-{"id": "tool_circle", "title": "Sirkel"},
-{"id": "tool_clear", "textContent": "Nuwe Beeld"},
-{"id": "tool_clone", "title": "Kloon Element"},
-{"id": "tool_clone_multi", "title": "Kloon Elemente"},
-{"id": "tool_delete", "title": "Verwyder Element"},
-{"id": "tool_delete_multi", "title": "Verwyder geselekteerde Elemente"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Annuleer"},
-{"id": "tool_docprops_save", "textContent": "Spaar"},
-{"id": "tool_ellipse", "title": "Ellips"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Gratis-Hand Ellips"},
-{"id": "tool_fhpath", "title": "Potlood tool"},
-{"id": "tool_fhrect", "title": "Free-hand Rectangle"},
-{"id": "tool_font_size", "title": "Verandering Lettertipe Grootte"},
-{"id": "tool_group", "title": "Groep Elemente"},
-{"id": "tool_image", "title": "Image Gereedskap"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Lyn Gereedskap"},
-{"id": "tool_move_bottom", "title": "Skuif na Bottom"},
-{"id": "tool_move_top", "title": "Skuif na bo"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Verander geselekteerde item opaciteit"},
-{"id": "tool_open", "textContent": "Open Beeld"},
-{"id": "tool_path", "title": "Poli Gereedskap"},
-{"id": "tool_rect", "title": "Reghoek"},
-{"id": "tool_redo", "title": "Oordoen"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Slaan Beeld"},
-{"id": "tool_select", "title": "Select Gereedschap"},
-{"id": "tool_source", "title": "Wysig Bron"},
-{"id": "tool_source_cancel", "textContent": "Annuleer"},
-{"id": "tool_source_save", "textContent": "Spaar"},
-{"id": "tool_square", "title": "Vierkant"},
-{"id": "tool_text", "title": "Text Gereedskap"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Boontoe"},
-{"id": "tool_ungroup", "title": "Ungroup Elemente"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Klik op die Gereedskap"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Change zoom vlak"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "af",
+	dir : "ltr",
+	common: {
+		"ok": "Spaar",
+		"cancel": "Annuleer",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klik om te verander vul kleur, verskuiwing klik om &#39;n beroerte kleur verander",
+		"zoom_level": "Change zoom vlak",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Verandering vul kleur",
+		"stroke_color": "Verandering beroerte kleur",
+		"stroke_style": "Verandering beroerte dash styl",
+		"stroke_width": "Verandering beroerte breedte",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Verandering rotasie-hoek",
+		"blur": "Change gaussian blur value",
+		"opacity": "Verander geselekteerde item opaciteit",
+		"circle_cx": "Verandering sirkel se cx koördineer",
+		"circle_cy": "Verandering sirkel se cy koördineer",
+		"circle_r": "Verandering sirkel se radius",
+		"ellipse_cx": "Verandering ellips se cx koördineer",
+		"ellipse_cy": "Verander ellips se cy koördineer",
+		"ellipse_rx": "Verandering ellips se x radius",
+		"ellipse_ry": "Verander ellips se j radius",
+		"line_x1": "Verandering lyn se vertrek x koördinaat",
+		"line_x2": "Verandering lyn se eindig x koördinaat",
+		"line_y1": "Verandering lyn se vertrek y koördinaat",
+		"line_y2": "Verandering lyn se eindig y koördinaat",
+		"rect_height": "Verandering reghoek hoogte",
+		"rect_width": "Verandering reghoek breedte",
+		"corner_radius": "Verandering Rechthoek Corner Radius",
+		"image_width": "Verander prent breedte",
+		"image_height": "Verandering prent hoogte",
+		"image_url": "URL verander",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Verander teks inhoud",
+		"font_family": "Lettertipe verander Familie",
+		"font_size": "Verandering Lettertipe Grootte",
+		"bold": "Vetgedrukte teks",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Verander agtergrondkleur / opaciteit",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Pas na inhoud",
+		"fit_to_all": "Passing tot al inhoud",
+		"fit_to_canvas": "Passing tot doek",
+		"fit_to_layer_content": "Passing tot laag inhoud",
+		"fit_to_sel": "Passing tot seleksie",
+		"align_relative_to": "Align in verhouding tot ...",
+		"relativeTo": "relatief tot:",
+		"bladsy": "bladsy",
+		"largest_object": "grootste voorwerp",
+		"selected_objects": "verkose voorwerpe",
+		"smallest_object": "kleinste voorwerp",
+		"new_doc": "Nuwe Beeld",
+		"open_doc": "Open Beeld",
+		"export_png": "Export as PNG",
+		"save_doc": "Slaan Beeld",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Rig Middel",
+		"align_left": "Links Regterkant",
+		"align_middle": "Align Midde",
+		"align_right": "Lijn regs uit",
+		"align_top": "Align Top",
+		"mode_select": "Select Gereedschap",
+		"mode_fhpath": "Potlood tool",
+		"mode_line": "Lyn Gereedskap",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-hand Rectangle",
+		"mode_ellipse": "Ellips",
+		"mode_circle": "Sirkel",
+		"mode_fhellipse": "Gratis-Hand Ellips",
+		"mode_path": "Poli Gereedskap",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Gereedskap",
+		"mode_image": "Image Gereedskap",
+		"mode_zoom": "Klik op die Gereedskap",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Boontoe",
+		"redo": "Oordoen",
+		"tool_source": "Wysig Bron",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Groep Elemente",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elemente",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Skuif na Bottom",
+		"move_top": "Skuif na bo",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Spaar",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Verwyder Laag",
+		"move_down": "Beweeg afbreek Down",
+		"new": "Nuwe Layer",
+		"rename": "Rename Layer",
+		"move_up": "Beweeg afbreek Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Doek Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Kies gedefinieerde:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.ar.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "محاذاة النسبي ل ..."},
-{"id": "bkgnd_color", "title": "تغير لون الخلفية / غموض"},
-{"id": "circle_cx", "title": "دائرة التغيير لتنسيق cx"},
-{"id": "circle_cy", "title": "Change circle's cy coordinate"},
-{"id": "circle_r", "title": "التغيير في دائرة نصف قطرها"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "تغيير مستطيل ركن الشعاع"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "تغيير شكل البيضاوي cx تنسيق"},
-{"id": "ellipse_cy", "title": "تغيير شكل البيضاوي قبرصي تنسيق"},
-{"id": "ellipse_rx", "title": "تغيير شكل البيضاوي خ نصف قطرها"},
-{"id": "ellipse_ry", "title": "تغيير القطع الناقص في دائرة نصف قطرها ذ"},
-{"id": "fill_color", "title": "تغير لون التعبئة"},
-{"id": "fitToContent", "textContent": "لائقا للمحتوى"},
-{"id": "fit_to_all", "textContent": "يصلح لجميع المحتويات"},
-{"id": "fit_to_canvas", "textContent": "يصلح لوحة زيتية على قماش"},
-{"id": "fit_to_layer_content", "textContent": "يصلح لطبقة المحتوى"},
-{"id": "fit_to_sel", "textContent": "يصلح لاختيار"},
-{"id": "font_family", "title": "تغيير الخط الأسرة"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "تغيير ارتفاع الصورة"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "تغيير العنوان"},
-{"id": "image_width", "title": "تغيير صورة العرض"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "أكبر كائن"},
-{"id": "layer_delete", "title": "حذف طبقة"},
-{"id": "layer_down", "title": "تحرك لأسفل طبقة"},
-{"id": "layer_new", "title": "طبقة جديدة"},
-{"id": "layer_rename", "title": "تسمية الطبقة"},
-{"id": "layer_up", "title": "تحرك لأعلى طبقة"},
-{"id": "layersLabel", "textContent": "طبقات:"},
-{"id": "line_x1", "title": "تغيير الخط لبدء تنسيق خ"},
-{"id": "line_x2", "title": "تغيير الخط لانهاء خ تنسيق"},
-{"id": "line_y1", "title": "تغيير الخط لبدء تنسيق ذ"},
-{"id": "line_y2", "title": "تغيير الخط لإنهاء تنسيق ذ"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "الصفحة"},
-{"id": "palette", "title": "انقر لتغيير لون التعبئة ، تحولا مزدوجا فوق لتغيير لون السكتة الدماغية"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "تغيير المستطيل الارتفاع"},
-{"id": "rect_width_tool", "title": "تغيير عرض المستطيل"},
-{"id": "relativeToLabel", "textContent": "بالنسبة إلى:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "حدد سلفا:"},
-{"id": "selected_objects", "textContent": "انتخب الأجسام"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "أصغر كائن"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "تغير لون السكتة الدماغية"},
-{"id": "stroke_style", "title": "تغيير نمط السكتة الدماغية اندفاعة"},
-{"id": "stroke_width", "title": "تغيير عرض السكتة الدماغية"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "ارتفاع:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "عرض:"},
-{"id": "text", "title": "تغيير محتويات النص"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "محاذاة القاع"},
-{"id": "tool_aligncenter", "title": "مركز محاذاة"},
-{"id": "tool_alignleft", "title": "محاذاة إلى اليسار"},
-{"id": "tool_alignmiddle", "title": "محاذاة الأوسط"},
-{"id": "tool_alignright", "title": "محاذاة إلى اليمين"},
-{"id": "tool_aligntop", "title": "محاذاة الأعلى"},
-{"id": "tool_angle", "title": "تغيير زاوية الدوران"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "نص جريء"},
-{"id": "tool_circle", "title": "دائرة"},
-{"id": "tool_clear", "textContent": "صورة جديدة"},
-{"id": "tool_clone", "title": "استنساخ عنصر"},
-{"id": "tool_clone_multi", "title": "استنساخ الأركان"},
-{"id": "tool_delete", "title": "حذف عنصر"},
-{"id": "tool_delete_multi", "title": "حذف عناصر مختارة"},
-{"id": "tool_docprops", "textContent": "خصائص المستند"},
-{"id": "tool_docprops_cancel", "textContent": "إلغاء"},
-{"id": "tool_docprops_save", "textContent": "حفظ"},
-{"id": "tool_ellipse", "title": "القطع الناقص"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "اليد الحرة البيضوي"},
-{"id": "tool_fhpath", "title": "أداة قلم رصاص"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "تغيير حجم الخط"},
-{"id": "tool_group", "title": "مجموعة عناصر"},
-{"id": "tool_image", "title": "الصورة أداة"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "مائل نص"},
-{"id": "tool_line", "title": "خط أداة"},
-{"id": "tool_move_bottom", "title": "الانتقال إلى أسفل"},
-{"id": "tool_move_top", "title": "الانتقال إلى أعلى"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "تغيير مختارة غموض البند"},
-{"id": "tool_open", "textContent": "فتح الصورة"},
-{"id": "tool_path", "title": "بولي أداة"},
-{"id": "tool_rect", "title": "المستطيل"},
-{"id": "tool_redo", "title": "إعادته"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "حفظ صورة"},
-{"id": "tool_select", "title": "اختر أداة"},
-{"id": "tool_source", "title": "عدل المصدر"},
-{"id": "tool_source_cancel", "textContent": "إلغاء"},
-{"id": "tool_source_save", "textContent": "حفظ"},
-{"id": "tool_square", "title": "ميدان"},
-{"id": "tool_text", "title": "النص أداة"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "التراجع"},
-{"id": "tool_ungroup", "title": "فك تجميع عناصر"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "أداة تكبير"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "تغيير مستوى التكبير"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "ar",
+	dir : "ltr",
+	common: {
+		"ok": "حفظ",
+		"cancel": "إلغاء",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "انقر لتغيير لون التعبئة ، تحولا مزدوجا فوق لتغيير لون السكتة الدماغية",
+		"zoom_level": "تغيير مستوى التكبير",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "تغير لون التعبئة",
+		"stroke_color": "تغير لون السكتة الدماغية",
+		"stroke_style": "تغيير نمط السكتة الدماغية اندفاعة",
+		"stroke_width": "تغيير عرض السكتة الدماغية",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "تغيير زاوية الدوران",
+		"blur": "Change gaussian blur value",
+		"opacity": "تغيير مختارة غموض البند",
+		"circle_cx": "دائرة التغيير لتنسيق cx",
+		"circle_cy": "Change circle's cy coordinate",
+		"circle_r": "التغيير في دائرة نصف قطرها",
+		"ellipse_cx": "تغيير شكل البيضاوي cx تنسيق",
+		"ellipse_cy": "تغيير شكل البيضاوي قبرصي تنسيق",
+		"ellipse_rx": "تغيير شكل البيضاوي خ نصف قطرها",
+		"ellipse_ry": "تغيير القطع الناقص في دائرة نصف قطرها ذ",
+		"line_x1": "تغيير الخط لبدء تنسيق خ",
+		"line_x2": "تغيير الخط لانهاء خ تنسيق",
+		"line_y1": "تغيير الخط لبدء تنسيق ذ",
+		"line_y2": "تغيير الخط لإنهاء تنسيق ذ",
+		"rect_height": "تغيير المستطيل الارتفاع",
+		"rect_width": "تغيير عرض المستطيل",
+		"corner_radius": "تغيير مستطيل ركن الشعاع",
+		"image_width": "تغيير صورة العرض",
+		"image_height": "تغيير ارتفاع الصورة",
+		"image_url": "تغيير العنوان",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "تغيير محتويات النص",
+		"font_family": "تغيير الخط الأسرة",
+		"font_size": "تغيير حجم الخط",
+		"bold": "نص جريء",
+		"italic": "مائل نص"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "تغير لون الخلفية / غموض",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "لائقا للمحتوى",
+		"fit_to_all": "يصلح لجميع المحتويات",
+		"fit_to_canvas": "يصلح لوحة زيتية على قماش",
+		"fit_to_layer_content": "يصلح لطبقة المحتوى",
+		"fit_to_sel": "يصلح لاختيار",
+		"align_relative_to": "محاذاة النسبي ل ...",
+		"relativeTo": "بالنسبة إلى:",
+		"الصفحة": "الصفحة",
+		"largest_object": "أكبر كائن",
+		"selected_objects": "انتخب الأجسام",
+		"smallest_object": "أصغر كائن",
+		"new_doc": "صورة جديدة",
+		"open_doc": "فتح الصورة",
+		"export_png": "Export as PNG",
+		"save_doc": "حفظ صورة",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "محاذاة القاع",
+		"align_center": "مركز محاذاة",
+		"align_left": "محاذاة إلى اليسار",
+		"align_middle": "محاذاة الأوسط",
+		"align_right": "محاذاة إلى اليمين",
+		"align_top": "محاذاة الأعلى",
+		"mode_select": "اختر أداة",
+		"mode_fhpath": "أداة قلم رصاص",
+		"mode_line": "خط أداة",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "القطع الناقص",
+		"mode_circle": "دائرة",
+		"mode_fhellipse": "اليد الحرة البيضوي",
+		"mode_path": "بولي أداة",
+		"mode_shapelib": "Shape library",
+		"mode_text": "النص أداة",
+		"mode_image": "الصورة أداة",
+		"mode_zoom": "أداة تكبير",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "التراجع",
+		"redo": "إعادته",
+		"tool_source": "عدل المصدر",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "مجموعة عناصر",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "فك تجميع عناصر",
+		"docprops": "خصائص المستند",
+		"imagelib": "Image Library",
+		"move_bottom": "الانتقال إلى أسفل",
+		"move_top": "الانتقال إلى أعلى",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "حفظ",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "حذف طبقة",
+		"move_down": "تحرك لأسفل طبقة",
+		"new": "طبقة جديدة",
+		"rename": "تسمية الطبقة",
+		"move_up": "تحرك لأعلى طبقة",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "حدد سلفا:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.az.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Align relative to ..."},
-{"id": "bkgnd_color", "title": "Change background color/opacity"},
-{"id": "circle_cx", "title": "Change circle's cx coordinate"},
-{"id": "circle_cy", "title": "Change circle's cy coordinate"},
-{"id": "circle_r", "title": "Change circle's radius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Change Rectangle Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Change ellipse's cx coordinate"},
-{"id": "ellipse_cy", "title": "Change ellipse's cy coordinate"},
-{"id": "ellipse_rx", "title": "Change ellipse's x radius"},
-{"id": "ellipse_ry", "title": "Change ellipse's y radius"},
-{"id": "fill_color", "title": "Change fill color"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Fit to all content"},
-{"id": "fit_to_canvas", "textContent": "Fit to canvas"},
-{"id": "fit_to_layer_content", "textContent": "Fit to layer content"},
-{"id": "fit_to_sel", "textContent": "Fit to selection"},
-{"id": "font_family", "title": "Change Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Change image height"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Change URL"},
-{"id": "image_width", "title": "Change image width"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "largest object"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move Layer Down"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Change line's starting x coordinate"},
-{"id": "line_x2", "title": "Change line's ending x coordinate"},
-{"id": "line_y1", "title": "Change line's starting y coordinate"},
-{"id": "line_y2", "title": "Change line's ending y coordinate"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "page"},
-{"id": "palette", "title": "Click to change fill color, shift-click to change stroke color"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Change rectangle height"},
-{"id": "rect_width_tool", "title": "Change rectangle width"},
-{"id": "relativeToLabel", "textContent": "relative to:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Select predefined:"},
-{"id": "selected_objects", "textContent": "selected objects"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "smallest object"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Change stroke color"},
-{"id": "stroke_style", "title": "Change stroke dash style"},
-{"id": "stroke_width", "title": "Change stroke width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Height:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Width:"},
-{"id": "text", "title": "Change text contents"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Align Center"},
-{"id": "tool_alignleft", "title": "Align Left"},
-{"id": "tool_alignmiddle", "title": "Align Middle"},
-{"id": "tool_alignright", "title": "Align Right"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Change rotation angle"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Delete Element"},
-{"id": "tool_delete_multi", "title": "Delete Selected Elements"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Cancel"},
-{"id": "tool_docprops_save", "textContent": "OK"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "Change Font Size"},
-{"id": "tool_group", "title": "Group Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Change selected item opacity"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rectangle"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Cancel"},
-{"id": "tool_source_save", "textContent": "Apply Changes"},
-{"id": "tool_square", "title": "Square"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Change zoom level"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "az",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "Cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click to change fill color, shift-click to change stroke color",
+		"zoom_level": "Change zoom level",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change fill color",
+		"stroke_color": "Change stroke color",
+		"stroke_style": "Change stroke dash style",
+		"stroke_width": "Change stroke width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Change rotation angle",
+		"blur": "Change gaussian blur value",
+		"opacity": "Change selected item opacity",
+		"circle_cx": "Change circle's cx coordinate",
+		"circle_cy": "Change circle's cy coordinate",
+		"circle_r": "Change circle's radius",
+		"ellipse_cx": "Change ellipse's cx coordinate",
+		"ellipse_cy": "Change ellipse's cy coordinate",
+		"ellipse_rx": "Change ellipse's x radius",
+		"ellipse_ry": "Change ellipse's y radius",
+		"line_x1": "Change line's starting x coordinate",
+		"line_x2": "Change line's ending x coordinate",
+		"line_y1": "Change line's starting y coordinate",
+		"line_y2": "Change line's ending y coordinate",
+		"rect_height": "Change rectangle height",
+		"rect_width": "Change rectangle width",
+		"corner_radius": "Change Rectangle Corner Radius",
+		"image_width": "Change image width",
+		"image_height": "Change image height",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Change text contents",
+		"font_family": "Change Font Family",
+		"font_size": "Change Font Size",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color/opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit to all content",
+		"fit_to_canvas": "Fit to canvas",
+		"fit_to_layer_content": "Fit to layer content",
+		"fit_to_sel": "Fit to selection",
+		"align_relative_to": "Align relative to ...",
+		"relativeTo": "relative to:",
+		"page": "page",
+		"largest_object": "largest object",
+		"selected_objects": "selected objects",
+		"smallest_object": "smallest object",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Align Center",
+		"align_left": "Align Left",
+		"align_middle": "Align Middle",
+		"align_right": "Align Right",
+		"align_top": "Align Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Group Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Apply Changes",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefined:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.be.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Выраўнаваць па дачыненні да ..."},
-{"id": "bkgnd_color", "title": "Змяненне колеру фону / непразрыстасць"},
-{"id": "circle_cx", "title": "CX змене круга каардынаты"},
-{"id": "circle_cy", "title": "Змены гуртка CY каардынаты"},
-{"id": "circle_r", "title": "Старонка круга&#39;s радыус"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Змены прастакутнік Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Змены эліпса CX каардынаты"},
-{"id": "ellipse_cy", "title": "Змены эліпса CY каардынаты"},
-{"id": "ellipse_rx", "title": "Х змяненні эліпса радыюсам"},
-{"id": "ellipse_ry", "title": "Змены у эліпса радыюсам"},
-{"id": "fill_color", "title": "Змяненне колеру залівання"},
-{"id": "fitToContent", "textContent": "Па памеры ўтрымання"},
-{"id": "fit_to_all", "textContent": "Па памеру ўсе змесціва"},
-{"id": "fit_to_canvas", "textContent": "Памер палатна"},
-{"id": "fit_to_layer_content", "textContent": "По размеру слой ўтрымання"},
-{"id": "fit_to_sel", "textContent": "Выбар памеру"},
-{"id": "font_family", "title": "Змены Сямейства шрыфтоў"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Змена вышыні выявы"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Змяніць URL"},
-{"id": "image_width", "title": "Змены шырыня выявы"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "найбуйнейшы аб&#39;ект"},
-{"id": "layer_delete", "title": "Выдаліць слой"},
-{"id": "layer_down", "title": "Перамясціць слой на"},
-{"id": "layer_new", "title": "Новы слой"},
-{"id": "layer_rename", "title": "Перайменаваць Слой"},
-{"id": "layer_up", "title": "Перамяшчэнне слоя да"},
-{"id": "layersLabel", "textContent": "Слаі:"},
-{"id": "line_x1", "title": "Змены лінія пачынае каардынаты х"},
-{"id": "line_x2", "title": "Змяненне за перыяд, скончыўся лінія каардынаты х"},
-{"id": "line_y1", "title": "Змены лінія пачынае Y каардынаты"},
-{"id": "line_y2", "title": "Змяненне за перыяд, скончыўся лінія Y каардынаты"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "старонка"},
-{"id": "palette", "title": "Націсніце для змены колеру залівання, Shift-Click змяніць обводка"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Змены прастакутнік вышынёй"},
-{"id": "rect_width_tool", "title": "Змяненне шырыні прамавугольніка"},
-{"id": "relativeToLabel", "textContent": "па параўнанні з:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Выберыце прадвызначэньні:"},
-{"id": "selected_objects", "textContent": "выбранымі аб&#39;ектамі"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "маленькі аб&#39;ект"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Змяненне колеру інсульт"},
-{"id": "stroke_style", "title": "Змяненне стылю інсульт працяжнік"},
-{"id": "stroke_width", "title": "Змены шырыня штрых"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Вышыня:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Шырыня:"},
-{"id": "text", "title": "Змяненне зместу тэксту"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Лінаваць па ніжнім краю"},
-{"id": "tool_aligncenter", "title": "Лінаваць па цэнтру"},
-{"id": "tool_alignleft", "title": "Па левым краю"},
-{"id": "tool_alignmiddle", "title": "Выраўнаваць Блізкага"},
-{"id": "tool_alignright", "title": "Па правым краю"},
-{"id": "tool_aligntop", "title": "Лінаваць па верхнім краю"},
-{"id": "tool_angle", "title": "Змены вугла павароту"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Тоўсты тэкст"},
-{"id": "tool_circle", "title": "Круг"},
-{"id": "tool_clear", "textContent": "Новае выява"},
-{"id": "tool_clone", "title": "Клон элемента"},
-{"id": "tool_clone_multi", "title": "Клон Элементы"},
-{"id": "tool_delete", "title": "Выдаліць элемент"},
-{"id": "tool_delete_multi", "title": "Выдаліць выбраныя элементы"},
-{"id": "tool_docprops", "textContent": "Уласцівасці дакумента"},
-{"id": "tool_docprops_cancel", "textContent": "Адмена"},
-{"id": "tool_docprops_save", "textContent": "Захаваць"},
-{"id": "tool_ellipse", "title": "Эліпс"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Свабоднай рукі Эліпс"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Свабоднай рукі Прастакутнік"},
-{"id": "tool_font_size", "title": "Змяніць памер шрыфта"},
-{"id": "tool_group", "title": "Група элементаў"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Нахілены тэкст"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Перамясціць уніз"},
-{"id": "tool_move_top", "title": "Перамясціць угару"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Старонка абранага пункта непразрыстасці"},
-{"id": "tool_open", "textContent": "Адкрыць выява"},
-{"id": "tool_path", "title": "Poly Tool"},
-{"id": "tool_rect", "title": "Прамавугольнік"},
-{"id": "tool_redo", "title": "Паўтор"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Захаваць малюнак"},
-{"id": "tool_select", "title": "Выберыце інструмент"},
-{"id": "tool_source", "title": "Змяніць зыходны"},
-{"id": "tool_source_cancel", "textContent": "Адмена"},
-{"id": "tool_source_save", "textContent": "Захаваць"},
-{"id": "tool_square", "title": "Плошча"},
-{"id": "tool_text", "title": "Тэкст Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Адмяніць"},
-{"id": "tool_ungroup", "title": "Элементы Разгруппировать"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Змяненне маштабу"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "be",
+	dir : "ltr",
+	common: {
+		"ok": "Захаваць",
+		"cancel": "Адмена",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Націсніце для змены колеру залівання, Shift-Click змяніць обводка",
+		"zoom_level": "Змяненне маштабу",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Змяненне колеру залівання",
+		"stroke_color": "Змяненне колеру інсульт",
+		"stroke_style": "Змяненне стылю інсульт працяжнік",
+		"stroke_width": "Змены шырыня штрых",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Змены вугла павароту",
+		"blur": "Change gaussian blur value",
+		"opacity": "Старонка абранага пункта непразрыстасці",
+		"circle_cx": "CX змене круга каардынаты",
+		"circle_cy": "Змены гуртка CY каардынаты",
+		"circle_r": "Старонка круга&#39;s радыус",
+		"ellipse_cx": "Змены эліпса CX каардынаты",
+		"ellipse_cy": "Змены эліпса CY каардынаты",
+		"ellipse_rx": "Х змяненні эліпса радыюсам",
+		"ellipse_ry": "Змены у эліпса радыюсам",
+		"line_x1": "Змены лінія пачынае каардынаты х",
+		"line_x2": "Змяненне за перыяд, скончыўся лінія каардынаты х",
+		"line_y1": "Змены лінія пачынае Y каардынаты",
+		"line_y2": "Змяненне за перыяд, скончыўся лінія Y каардынаты",
+		"rect_height": "Змены прастакутнік вышынёй",
+		"rect_width": "Змяненне шырыні прамавугольніка",
+		"corner_radius": "Змены прастакутнік Corner Radius",
+		"image_width": "Змены шырыня выявы",
+		"image_height": "Змена вышыні выявы",
+		"image_url": "Змяніць URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Змяненне зместу тэксту",
+		"font_family": "Змены Сямейства шрыфтоў",
+		"font_size": "Змяніць памер шрыфта",
+		"bold": "Тоўсты тэкст",
+		"italic": "Нахілены тэкст"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Змяненне колеру фону / непразрыстасць",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Па памеры ўтрымання",
+		"fit_to_all": "Па памеру ўсе змесціва",
+		"fit_to_canvas": "Памер палатна",
+		"fit_to_layer_content": "По размеру слой ўтрымання",
+		"fit_to_sel": "Выбар памеру",
+		"align_relative_to": "Выраўнаваць па дачыненні да ...",
+		"relativeTo": "па параўнанні з:",
+		"старонка": "старонка",
+		"largest_object": "найбуйнейшы аб&#39;ект",
+		"selected_objects": "выбранымі аб&#39;ектамі",
+		"smallest_object": "маленькі аб&#39;ект",
+		"new_doc": "Новае выява",
+		"open_doc": "Адкрыць выява",
+		"export_png": "Export as PNG",
+		"save_doc": "Захаваць малюнак",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Лінаваць па ніжнім краю",
+		"align_center": "Лінаваць па цэнтру",
+		"align_left": "Па левым краю",
+		"align_middle": "Выраўнаваць Блізкага",
+		"align_right": "Па правым краю",
+		"align_top": "Лінаваць па верхнім краю",
+		"mode_select": "Выберыце інструмент",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Свабоднай рукі Прастакутнік",
+		"mode_ellipse": "Эліпс",
+		"mode_circle": "Круг",
+		"mode_fhellipse": "Свабоднай рукі Эліпс",
+		"mode_path": "Poly Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Тэкст Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Адмяніць",
+		"redo": "Паўтор",
+		"tool_source": "Змяніць зыходны",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Група элементаў",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Элементы Разгруппировать",
+		"docprops": "Уласцівасці дакумента",
+		"imagelib": "Image Library",
+		"move_bottom": "Перамясціць уніз",
+		"move_top": "Перамясціць угару",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Захаваць",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Выдаліць слой",
+		"move_down": "Перамясціць слой на",
+		"new": "Новы слой",
+		"rename": "Перайменаваць Слой",
+		"move_up": "Перамяшчэнне слоя да",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Выберыце прадвызначэньні:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.bg.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Привеждане в сравнение с ..."},
-{"id": "bkgnd_color", "title": "Промяна на цвета на фона / непрозрачност"},
-{"id": "circle_cx", "title": "CX Промяна кръг на координатната"},
-{"id": "circle_cy", "title": "Промяна кръг&#39;s CY координира"},
-{"id": "circle_r", "title": "Промяна кръг радиус"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Промяна на правоъгълник Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Промяна на елипса&#39;s CX координира"},
-{"id": "ellipse_cy", "title": "Промяна на елипса&#39;s CY координира"},
-{"id": "ellipse_rx", "title": "Промяна на елипса&#39;s X радиус"},
-{"id": "ellipse_ry", "title": "Промяна на елипса&#39;s Y радиус"},
-{"id": "fill_color", "title": "Промяна попълнете цвят"},
-{"id": "fitToContent", "textContent": "Fit към съдържание"},
-{"id": "fit_to_all", "textContent": "Побери цялото съдържание"},
-{"id": "fit_to_canvas", "textContent": "Fit на платно"},
-{"id": "fit_to_layer_content", "textContent": "Fit да слой съдържание"},
-{"id": "fit_to_sel", "textContent": "Fit за подбор"},
-{"id": "font_family", "title": "Промяна на шрифта Семейство"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Промяна на изображението височина"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Промяна на URL"},
-{"id": "image_width", "title": "Промяна на изображението ширина"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "най-големият обект"},
-{"id": "layer_delete", "title": "Изтриване на слой"},
-{"id": "layer_down", "title": "Move слой надолу"},
-{"id": "layer_new", "title": "Нов слой"},
-{"id": "layer_rename", "title": "Преименуване Layer"},
-{"id": "layer_up", "title": "Move Up Layer"},
-{"id": "layersLabel", "textContent": "Слоевете:"},
-{"id": "line_x1", "title": "Промяна на линия, започваща х координира"},
-{"id": "line_x2", "title": "Промяна на линията приключва х координира"},
-{"id": "line_y1", "title": "Промяна линия, започваща Y координира"},
-{"id": "line_y2", "title": "Промяна на линията приключва Y координира"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "страница"},
-{"id": "palette", "title": "Кликнете, за да промени попълнете цвят, на смени, кликнете да променят цвета си удар"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Промяна на правоъгълник височина"},
-{"id": "rect_width_tool", "title": "Промяна на правоъгълник ширина"},
-{"id": "relativeToLabel", "textContent": "в сравнение с:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Изберете предварително:"},
-{"id": "selected_objects", "textContent": "избраните обекти"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "най-малката обект"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Промяна на инсулт цвят"},
-{"id": "stroke_style", "title": "Промяна на стила удар тире"},
-{"id": "stroke_width", "title": "Промяна на ширината инсулт"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Височина:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Ширина:"},
-{"id": "text", "title": "Промяна на текст съдържание"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Привеждане Отдолу"},
-{"id": "tool_aligncenter", "title": "Подравняване в средата"},
-{"id": "tool_alignleft", "title": "Подравняване вляво"},
-{"id": "tool_alignmiddle", "title": "Привеждане в Близкия"},
-{"id": "tool_alignright", "title": "Подравняване надясно"},
-{"id": "tool_aligntop", "title": "Привеждане Топ"},
-{"id": "tool_angle", "title": "Промяна ъгъл на завъртане"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Получер текст"},
-{"id": "tool_circle", "title": "Кръгът"},
-{"id": "tool_clear", "textContent": "Ню Имидж"},
-{"id": "tool_clone", "title": "Clone Елемент"},
-{"id": "tool_clone_multi", "title": "Clone Елементи"},
-{"id": "tool_delete", "title": "Изтриване на елемент"},
-{"id": "tool_delete_multi", "title": "Изтриване на избрани елементи"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Отказ"},
-{"id": "tool_docprops_save", "textContent": "Спасявам"},
-{"id": "tool_ellipse", "title": "Елипса"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Свободен Употребявани Елипса"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Свободен Употребявани правоъгълник"},
-{"id": "tool_font_size", "title": "Промени размера на буквите"},
-{"id": "tool_group", "title": "Група Елементи"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Курсив текст"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Премести надолу"},
-{"id": "tool_move_top", "title": "Премести в началото"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Промяна на избрания елемент непрозрачност"},
-{"id": "tool_open", "textContent": "Отворете изображението"},
-{"id": "tool_path", "title": "Поли Tool"},
-{"id": "tool_rect", "title": "Правоъгълник"},
-{"id": "tool_redo", "title": "Възстановяване"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Редактиране Източник"},
-{"id": "tool_source_cancel", "textContent": "Отказ"},
-{"id": "tool_source_save", "textContent": "Спасявам"},
-{"id": "tool_square", "title": "Квадрат"},
-{"id": "tool_text", "title": "Текст Оръдие"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Отмени"},
-{"id": "tool_ungroup", "title": "Разгрупирай Елементи"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Промяна на ниво на мащабиране"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "bg",
+	dir : "ltr",
+	common: {
+		"ok": "Спасявам",
+		"cancel": "Отказ",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Кликнете, за да промени попълнете цвят, на смени, кликнете да променят цвета си удар",
+		"zoom_level": "Промяна на ниво на мащабиране",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Промяна попълнете цвят",
+		"stroke_color": "Промяна на инсулт цвят",
+		"stroke_style": "Промяна на стила удар тире",
+		"stroke_width": "Промяна на ширината инсулт",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Промяна ъгъл на завъртане",
+		"blur": "Change gaussian blur value",
+		"opacity": "Промяна на избрания елемент непрозрачност",
+		"circle_cx": "CX Промяна кръг на координатната",
+		"circle_cy": "Промяна кръг&#39;s CY координира",
+		"circle_r": "Промяна кръг радиус",
+		"ellipse_cx": "Промяна на елипса&#39;s CX координира",
+		"ellipse_cy": "Промяна на елипса&#39;s CY координира",
+		"ellipse_rx": "Промяна на елипса&#39;s X радиус",
+		"ellipse_ry": "Промяна на елипса&#39;s Y радиус",
+		"line_x1": "Промяна на линия, започваща х координира",
+		"line_x2": "Промяна на линията приключва х координира",
+		"line_y1": "Промяна линия, започваща Y координира",
+		"line_y2": "Промяна на линията приключва Y координира",
+		"rect_height": "Промяна на правоъгълник височина",
+		"rect_width": "Промяна на правоъгълник ширина",
+		"corner_radius": "Промяна на правоъгълник Corner Radius",
+		"image_width": "Промяна на изображението ширина",
+		"image_height": "Промяна на изображението височина",
+		"image_url": "Промяна на URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Промяна на текст съдържание",
+		"font_family": "Промяна на шрифта Семейство",
+		"font_size": "Промени размера на буквите",
+		"bold": "Получер текст",
+		"italic": "Курсив текст"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Промяна на цвета на фона / непрозрачност",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit към съдържание",
+		"fit_to_all": "Побери цялото съдържание",
+		"fit_to_canvas": "Fit на платно",
+		"fit_to_layer_content": "Fit да слой съдържание",
+		"fit_to_sel": "Fit за подбор",
+		"align_relative_to": "Привеждане в сравнение с ...",
+		"relativeTo": "в сравнение с:",
+		"страница": "страница",
+		"largest_object": "най-големият обект",
+		"selected_objects": "избраните обекти",
+		"smallest_object": "най-малката обект",
+		"new_doc": "Ню Имидж",
+		"open_doc": "Отворете изображението",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Привеждане Отдолу",
+		"align_center": "Подравняване в средата",
+		"align_left": "Подравняване вляво",
+		"align_middle": "Привеждане в Близкия",
+		"align_right": "Подравняване надясно",
+		"align_top": "Привеждане Топ",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Свободен Употребявани правоъгълник",
+		"mode_ellipse": "Елипса",
+		"mode_circle": "Кръгът",
+		"mode_fhellipse": "Свободен Употребявани Елипса",
+		"mode_path": "Поли Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Текст Оръдие",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Отмени",
+		"redo": "Възстановяване",
+		"tool_source": "Редактиране Източник",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Група Елементи",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Разгрупирай Елементи",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Премести надолу",
+		"move_top": "Премести в началото",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Спасявам",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Изтриване на слой",
+		"move_down": "Move слой надолу",
+		"new": "Нов слой",
+		"rename": "Преименуване Layer",
+		"move_up": "Move Up Layer",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Изберете предварително:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.ca.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Alinear pel que fa a ..."},
-{"id": "bkgnd_color", "title": "Color de fons / opacitat"},
-{"id": "circle_cx", "title": "CX cercle Canvi de coordenades"},
-{"id": "circle_cy", "title": "Cercle Canvi CY coordinar"},
-{"id": "circle_r", "title": "Ràdio de cercle Canvi"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Canviar Rectangle Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Canviar lipse CX coordinar"},
-{"id": "ellipse_cy", "title": "Lipse Canvi CY coordinar"},
-{"id": "ellipse_rx", "title": "Ràdio x lipse Canvi"},
-{"id": "ellipse_ry", "title": "Ràdio i lipse Canvi"},
-{"id": "fill_color", "title": "Canviar el color de farciment"},
-{"id": "fitToContent", "textContent": "Ajustar al contingut"},
-{"id": "fit_to_all", "textContent": "Ajustar a tot el contingut"},
-{"id": "fit_to_canvas", "textContent": "Ajustar a la lona"},
-{"id": "fit_to_layer_content", "textContent": "Ajustar al contingut de la capa d&#39;"},
-{"id": "fit_to_sel", "textContent": "Ajustar a la selecció"},
-{"id": "font_family", "title": "Canviar la font Família"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Canviar l&#39;altura de la imatge"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Canviar URL"},
-{"id": "image_width", "title": "Amplada de la imatge Canvi"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "objecte més gran"},
-{"id": "layer_delete", "title": "Eliminar capa"},
-{"id": "layer_down", "title": "Mou la capa de Down"},
-{"id": "layer_new", "title": "Nova capa"},
-{"id": "layer_rename", "title": "Canvieu el nom de la capa"},
-{"id": "layer_up", "title": "Mou la capa Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Canviar la línia de partida de la coordenada x"},
-{"id": "line_x2", "title": "Canviar la línia d&#39;hores de coordenada x"},
-{"id": "line_y1", "title": "Canviar la línia de partida i de coordinar"},
-{"id": "line_y2", "title": "Canviar la línia d&#39;hores de coordenada"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Pàgina"},
-{"id": "palette", "title": "Feu clic per canviar el color de farciment, shift-clic per canviar el color del traç"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Rectangle d&#39;alçada Canvi"},
-{"id": "rect_width_tool", "title": "Ample rectangle Canvi"},
-{"id": "relativeToLabel", "textContent": "en relació amb:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Seleccioneu predefinides:"},
-{"id": "selected_objects", "textContent": "objectes escollits"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "objecte més petit"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Canviar el color del traç"},
-{"id": "stroke_style", "title": "Canviar estil de traç guió"},
-{"id": "stroke_width", "title": "Canviar l&#39;amplada del traç"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Alçada:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Amplada:"},
-{"id": "text", "title": "Contingut del text"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Alinear baix"},
-{"id": "tool_aligncenter", "title": "Alinear al centre"},
-{"id": "tool_alignleft", "title": "Alinear a l&#39;esquerra"},
-{"id": "tool_alignmiddle", "title": "Alinear Medi"},
-{"id": "tool_alignright", "title": "Alinear a la dreta"},
-{"id": "tool_aligntop", "title": "Alinear a dalt"},
-{"id": "tool_angle", "title": "Canviar l&#39;angle de rotació"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Text en negreta"},
-{"id": "tool_circle", "title": "Cercle"},
-{"id": "tool_clear", "textContent": "Nova imatge"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Elements Clone"},
-{"id": "tool_delete", "title": "Eliminar element"},
-{"id": "tool_delete_multi", "title": "Elimina els elements seleccionats"},
-{"id": "tool_docprops", "textContent": "Propietats del document"},
-{"id": "tool_docprops_cancel", "textContent": "Cancel"},
-{"id": "tool_docprops_save", "textContent": "Salvar"},
-{"id": "tool_ellipse", "title": "Lipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Eina Llapis"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "Change Font Size"},
-{"id": "tool_group", "title": "Elements de Grup de"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Text en cursiva"},
-{"id": "tool_line", "title": "L&#39;eina"},
-{"id": "tool_move_bottom", "title": "Mou al final"},
-{"id": "tool_move_top", "title": "Mou al principi"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Canviar la opacitat tema seleccionat"},
-{"id": "tool_open", "textContent": "Obrir imatge"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rectangle"},
-{"id": "tool_redo", "title": "Refer"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Guardar imatge"},
-{"id": "tool_select", "title": "Eina de selecció"},
-{"id": "tool_source", "title": "Font Edita"},
-{"id": "tool_source_cancel", "textContent": "Cancel"},
-{"id": "tool_source_save", "textContent": "Salvar"},
-{"id": "tool_square", "title": "Quadrat"},
-{"id": "tool_text", "title": "Eina de text"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Desfés"},
-{"id": "tool_ungroup", "title": "Desagrupar elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Canviar el nivell de zoom"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "ca",
+	dir : "ltr",
+	common: {
+		"ok": "Salvar",
+		"cancel": "Cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Feu clic per canviar el color de farciment, shift-clic per canviar el color del traç",
+		"zoom_level": "Canviar el nivell de zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Canviar el color de farciment",
+		"stroke_color": "Canviar el color del traç",
+		"stroke_style": "Canviar estil de traç guió",
+		"stroke_width": "Canviar l&#39;amplada del traç",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Canviar l&#39;angle de rotació",
+		"blur": "Change gaussian blur value",
+		"opacity": "Canviar la opacitat tema seleccionat",
+		"circle_cx": "CX cercle Canvi de coordenades",
+		"circle_cy": "Cercle Canvi CY coordinar",
+		"circle_r": "Ràdio de cercle Canvi",
+		"ellipse_cx": "Canviar lipse CX coordinar",
+		"ellipse_cy": "Lipse Canvi CY coordinar",
+		"ellipse_rx": "Ràdio x lipse Canvi",
+		"ellipse_ry": "Ràdio i lipse Canvi",
+		"line_x1": "Canviar la línia de partida de la coordenada x",
+		"line_x2": "Canviar la línia d&#39;hores de coordenada x",
+		"line_y1": "Canviar la línia de partida i de coordinar",
+		"line_y2": "Canviar la línia d&#39;hores de coordenada",
+		"rect_height": "Rectangle d&#39;alçada Canvi",
+		"rect_width": "Ample rectangle Canvi",
+		"corner_radius": "Canviar Rectangle Corner Radius",
+		"image_width": "Amplada de la imatge Canvi",
+		"image_height": "Canviar l&#39;altura de la imatge",
+		"image_url": "Canviar URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Contingut del text",
+		"font_family": "Canviar la font Família",
+		"font_size": "Change Font Size",
+		"bold": "Text en negreta",
+		"italic": "Text en cursiva"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Color de fons / opacitat",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Ajustar al contingut",
+		"fit_to_all": "Ajustar a tot el contingut",
+		"fit_to_canvas": "Ajustar a la lona",
+		"fit_to_layer_content": "Ajustar al contingut de la capa d&#39;",
+		"fit_to_sel": "Ajustar a la selecció",
+		"align_relative_to": "Alinear pel que fa a ...",
+		"relativeTo": "en relació amb:",
+		"Pàgina": "Pàgina",
+		"largest_object": "objecte més gran",
+		"selected_objects": "objectes escollits",
+		"smallest_object": "objecte més petit",
+		"new_doc": "Nova imatge",
+		"open_doc": "Obrir imatge",
+		"export_png": "Export as PNG",
+		"save_doc": "Guardar imatge",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Alinear baix",
+		"align_center": "Alinear al centre",
+		"align_left": "Alinear a l&#39;esquerra",
+		"align_middle": "Alinear Medi",
+		"align_right": "Alinear a la dreta",
+		"align_top": "Alinear a dalt",
+		"mode_select": "Eina de selecció",
+		"mode_fhpath": "Eina Llapis",
+		"mode_line": "L&#39;eina",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Lipse",
+		"mode_circle": "Cercle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Eina de text",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Desfés",
+		"redo": "Refer",
+		"tool_source": "Font Edita",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Elements de Grup de",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Desagrupar elements",
+		"docprops": "Propietats del document",
+		"imagelib": "Image Library",
+		"move_bottom": "Mou al final",
+		"move_top": "Mou al principi",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Salvar",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Eliminar capa",
+		"move_down": "Mou la capa de Down",
+		"new": "Nova capa",
+		"rename": "Canvieu el nom de la capa",
+		"move_up": "Mou la capa Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Seleccioneu predefinides:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 176
main/inc/lib/svg-edit/locale/lang.cs.js

@@ -1,176 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Zarovnat relativně"},
-{"id": "bkgnd_color", "title": "Změnit barvu a průhlednost pozadí"},
-{"id": "circle_cx", "title": "Změnit souřadnici X středu kružnice"},
-{"id": "circle_cy", "title": "Změnit souřadnici Y středu kružnice"},
-{"id": "circle_r", "title": "Změnit poloměr kružnice"},
-{"id": "connector_no_arrow", "textContent": "Bez šipky"},
-{"id": "copyrightLabel", "textContent": "Běží na"},
-{"id": "cornerRadiusLabel", "title": "Změnit zaoblení obdélníku"},
-{"id": "curve_segments", "textContent": "křivka"},
-{"id": "ellipse_cx", "title": "Změnit souřadnici X středu elipsy"},
-{"id": "ellipse_cy", "title": "Změnit souřadnici Y středu elipsy"},
-{"id": "ellipse_rx", "title": "Změnit poloměr X elipsy"},
-{"id": "ellipse_ry", "title": "Změnit poloměr Y elipsy"},
-{"id": "fill_color", "title": "Změnit barvu výplně"},
-{"id": "fitToContent", "textContent": "přizpůsobit obsahu"},
-{"id": "fit_to_all", "textContent": "Přizpůsobit veškerému obsahu"},
-{"id": "fit_to_canvas", "textContent": "Přizpůsobit stránce"},
-{"id": "fit_to_layer_content", "textContent": "Přizpůsobit obsahu vrstvy"},
-{"id": "fit_to_sel", "textContent": "Přizpůsobit výběru"},
-{"id": "font_family", "title": "Změnit font"},
-{"id": "icon_large", "textContent": "velké"},
-{"id": "icon_medium", "textContent": "střední"},
-{"id": "icon_small", "textContent": "malé"},
-{"id": "icon_xlarge", "textContent": "největší"},
-{"id": "idLabel", "title": "Změnit ID elementu"},
-{"id": "image_height", "title": "Změnit výšku dokumentu"},
-{"id": "image_opt_embed", "textContent": "Vkládat do dokumentu"},
-{"id": "image_opt_ref", "textContent": "Jen odkazem"},
-{"id": "image_url", "title": "Změnit adresu URL"},
-{"id": "image_width", "title": "Změnit šířku dokumentu"},
-{"id": "includedImages", "textContent": "Vložené obrázky"},
-{"id": "largest_object", "textContent": "největšímu objektu"},
-{"id": "layer_delete", "title": "Odstranit vrstvu"},
-{"id": "layer_down", "title": "Přesunout vrstvu níž"},
-{"id": "layer_new", "title": "Přidat vrstvu"},
-{"id": "layer_rename", "title": "Přejmenovat vrstvu"},
-{"id": "layer_up", "title": "Přesunout vrstvu výš"},
-{"id": "layersLabel", "textContent": "vrstvy:"},
-{"id": "line_x1", "title": "Změnit počáteční souřadnici X úsečky"},
-{"id": "line_x2", "title": "Změnit koncovou souřadnici X úsečky"},
-{"id": "line_y1", "title": "Změnit počáteční souřadnici Y úsečky"},
-{"id": "line_y2", "title": "Změnit koncovou souřadnici X úsečky"},
-{"id": "linecap_butt", "title": "Konec úsečky: přesný"},
-{"id": "linecap_round", "title": "Konec úsečky: zaoblený"},
-{"id": "linecap_square", "title": "Konec úsečky: s čtvercovým přesahem"},
-{"id": "linejoin_bevel", "title": "Styl napojení úseček: zkosené"},
-{"id": "linejoin_miter", "title": "Styl napojení úseček: ostré"},
-{"id": "linejoin_round", "title": "Styl napojení úseček: oblé"},
-{"id": "main_icon", "title": "Hlavní menu"},
-{"id": "mode_connect", "title": "Spojit dva objekty"},
-{"id": "page", "textContent": "stránce"},
-{"id": "palette", "title": "Kliknutím změníte barvu výplně, kliknutím současně s klávesou shift změníte barvu čáry"},
-{"id": "path_node_x", "title": "Změnit souřadnici X uzlu"},
-{"id": "path_node_y", "title": "Změnit souřadnici Y uzlu"},
-{"id": "rect_height_tool", "title": "Změnit výšku obdélníku"},
-{"id": "rect_width_tool", "title": "Změnit šířku obdélníku"},
-{"id": "relativeToLabel", "textContent": "relatativně k:"},
-{"id": "seg_type", "title": "Změnit typ segmentu"},
-{"id": "selLayerLabel", "textContent": "Přesunout objekty do:"},
-{"id": "selLayerNames", "title": "Přesunout objekty do jiné vrstvy"},
-{"id": "selectedPredefined", "textContent": "vybrat předdefinovaný:"},
-{"id": "selected_objects", "textContent": "zvoleným objektům"},
-{"id": "selected_x", "title": "Změnit souřadnici X"},
-{"id": "selected_y", "title": "Změnit souřadnici Y"},
-{"id": "smallest_object", "textContent": "nejmenšímu objektu"},
-{"id": "straight_segments", "textContent": "úsečka"},
-{"id": "stroke_color", "title": "Změnit barvu čáry"},
-{"id": "stroke_style", "title": "Změnit styl čáry"},
-{"id": "stroke_width", "title": "Změnit šířku čáry"},
-{"id": "svginfo_bg_note", "textContent": "Pozor: obrázek v pozadí nebude uložen jako součást dokumentu."},
-{"id": "svginfo_change_background", "textContent": "Obrázek v pozadí editoru"},
-{"id": "svginfo_dim", "textContent": "Vlastní velikost"},
-{"id": "svginfo_editor_prefs", "textContent": "Nastavení editoru"},
-{"id": "svginfo_height", "textContent": "výška:"},
-{"id": "svginfo_icons", "textContent": "Velikost ikon"},
-{"id": "svginfo_image_props", "textContent": "Vlastnosti dokumentu"},
-{"id": "svginfo_lang", "textContent": "Jazyk"},
-{"id": "svginfo_title", "textContent": "Název"},
-{"id": "svginfo_width", "textContent": "šířka:"},
-{"id": "text", "title": "Změnit text"},
-{"id": "toggle_stroke_tools", "title": "Zobrazit/schovat více možností"},
-{"id": "tool_add_subpath", "title": "Přidat další součást křivky"},
-{"id": "tool_alignbottom", "title": "Zarovnat dolů"},
-{"id": "tool_aligncenter", "title": "Zarovnat nastřed"},
-{"id": "tool_alignleft", "title": "Zarovnat doleva"},
-{"id": "tool_alignmiddle", "title": "Zarovnat nastřed"},
-{"id": "tool_alignright", "title": "Zarovnat doprava"},
-{"id": "tool_aligntop", "title": "Zarovnat nahoru"},
-{"id": "tool_angle", "title": "Změnit úhel natočení"},
-{"id": "tool_blur", "title": "Změnit rozostření"},
-{"id": "tool_bold", "title": "Tučně"},
-{"id": "tool_circle", "title": "Kružnice"},
-{"id": "tool_clear", "textContent": "Nový dokument"},
-{"id": "tool_clone", "title": "Duplikovat"},
-{"id": "tool_clone_multi", "title": "Duplikovat objekty"},
-{"id": "tool_delete", "title": "Odstranit"},
-{"id": "tool_delete_multi", "title": "Odstranit objekty"},
-{"id": "tool_docprops", "textContent": "Vlastnosti dokumentu"},
-{"id": "tool_docprops_cancel", "textContent": "Storno"},
-{"id": "tool_docprops_save", "textContent": "Uložit"},
-{"id": "tool_ellipse", "title": "Elipsa"},
-{"id": "tool_export", "textContent": "Exportovat jako PNG"},
-{"id": "tool_eyedropper", "title": "Kapátko"},
-{"id": "tool_fhellipse", "title": "Elipsa volnou rukou"},
-{"id": "tool_fhpath", "title": "Kresba od ruky"},
-{"id": "tool_fhrect", "title": "Obdélník volnou rukou"},
-{"id": "tool_font_size", "title": "Změnit velikost písma"},
-{"id": "tool_group", "title": "Seskupit objekty"},
-{"id": "tool_image", "title": "Obrázek"},
-{"id": "tool_import", "textContent": "Importovat SVG"},
-{"id": "tool_italic", "title": "Kurzíva"},
-{"id": "tool_line", "title": "Úsečka"},
-{"id": "tool_move_bottom", "title": "Vrstvu úplně dospodu"},
-{"id": "tool_move_top", "title": "Vrstvu úplně nahoru"},
-{"id": "tool_node_clone", "title": "Vložit nový uzel"},
-{"id": "tool_node_delete", "title": "Ostranit uzel"},
-{"id": "tool_node_link", "title": "Provázat ovládací body uzlu"},
-{"id": "tool_opacity", "title": "Změnit průhlednost objektů"},
-{"id": "tool_open", "textContent": "Otevřít dokument"},
-{"id": "tool_openclose_path", "title": "Otevřít/zavřít součást křivky"},
-{"id": "tool_path", "title": "Křivka"},
-{"id": "tool_position", "title": "Zarovnat element na stránku"},
-{"id": "tool_rect", "title": "Obdélník"},
-{"id": "tool_redo", "title": "Znovu"},
-{"id": "tool_reorient", "title": "Změna orientace křivky"},
-{"id": "tool_save", "textContent": "Uložit dokument"},
-{"id": "tool_select", "title": "Výběr a transformace objektů"},
-{"id": "tool_source", "title": "Upravovat SVG kód"},
-{"id": "tool_source_cancel", "textContent": "Storno"},
-{"id": "tool_source_save", "textContent": "Uložit"},
-{"id": "tool_square", "title": "Čtverec"},
-{"id": "tool_text", "title": "Text"},
-{"id": "tool_topath", "title": "Objekt na křivku"},
-{"id": "tool_undo", "title": "Zpět"},
-{"id": "tool_ungroup", "title": "Zrušit seskupení"},
-{"id": "tool_wireframe", "title": "Zobrazit jen kostru"},
-{"id": "tool_zoom", "title": "Přiblížení"},
-{"id": "url_notice", "title": "POZOR: Obrázek nelze uložit s dokumentem. Bude zobrazován z adresáře, kde se nyní nachází."},
-{"id": "zoom_panel", "title": "Změna přiblížení"},
-{"id": "sidepanel_handle", "textContent": "V r s t v y", "title": "Táhnutím změnit velikost"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Chyba v parsování zdrojového kódu SVG.\nChcete se vrátit k původnímu?", 
-  "QignoreSourceChanges": "Opravdu chcete stornovat změny provedené v SVG kódu?", 
-  "QmoveElemsToLayer": "Opravdu chcete přesunout vybrané objekty do vrstvy '%s'?", 
-  "QwantToClear": "Opravdu chcete smazat současný dokument?\nHistorie změn bude také smazána.", 
-  "cancel": "Storno", 
-  "defsFailOnSave": "POZOR: Kvůli nedokonalosti Vašeho prohlížeče se mohou některé části dokumentu špatně vykreslovat (mohou chybět barevné přechody nebo některé objekty). Po uložení dokumentu by se ale vše mělo zobrazovat správně.", 
-  "dupeLayerName": "Taková vrstva už bohužel existuje", 
-  "enterNewImgURL": "Vložte adresu URL, na které se nachází vkládaný obrázek", 
-  "enterNewLayerName": "Zadejte prosím jméno pro novou vrstvu", 
-  "enterUniqueLayerName": "Zadejte prosím jedinečné jméno pro vrstvu", 
-  "exportNoBlur": "bez rozostření elementů", 
-  "exportNoDashArray": "plné tahy", 
-  "exportNoImage": "bez vložených obrázků", 
-  "exportNoText": "vložený text může vypadat jinak", 
-  "exportNoforeignObject": "bez foreignObject objektů", 
-  "featNotSupported": "Tato vlastnost ještě není k dispozici", 
-  "invalidAttrValGiven": "Nevhodná hodnota", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "šipka dolů", 
-  "key_up": "šipka nahoru", 
-  "layer": "Vrstva", 
-  "layerHasThatName": "Vrstva už se tak jmenuje", 
-  "loadingImage": "Nahrávám obrázek ...", 
-  "noContentToFitTo": "Vyberte oblast pro přizpůsobení", 
-  "noteTheseIssues": "Mohou se vyskytnout následující problémy: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Táhnutím ovládacího bodu myší tvarujete křivku.", 
-  "pathNodeTooltip": "Táhnutím myši uzel přesunete. Dvojklik mění typ segmentu.", 
-  "saveFromBrowser": "Použijte nabídku \"Uložit stránku jako ...\" ve Vašem prohlížeči pro uložení dokumentu do souboru %s."
- }
-}
-]
+svgEditor.readLang({
+	lang: "cs",
+	dir : "ltr",
+	common: {
+		"ok": "Uložit",
+		"cancel": "Storno",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "šipka dolů", 
+		"key_up": "šipka nahoru", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Běží na"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Zobrazit/schovat více možností",
+		"palette_info": "Kliknutím změníte barvu výplně, kliknutím současně s klávesou shift změníte barvu čáry",
+		"zoom_level": "Změna přiblížení",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Změnit ID elementu",
+		"fill_color": "Změnit barvu výplně",
+		"stroke_color": "Změnit barvu čáry",
+		"stroke_style": "Změnit styl čáry",
+		"stroke_width": "Změnit šířku čáry",
+		"pos_x": "Změnit souřadnici X",
+		"pos_y": "Změnit souřadnici Y",
+		"linecap_butt": "Konec úsečky: přesný",
+		"linecap_round": "Konec úsečky: zaoblený",
+		"linecap_square": "Konec úsečky: s čtvercovým přesahem",
+		"linejoin_bevel": "Styl napojení úseček: zkosené",
+		"linejoin_miter": "Styl napojení úseček: ostré",
+		"linejoin_round": "Styl napojení úseček: oblé",
+		"angle": "Změnit úhel natočení",
+		"blur": "Změnit rozostření",
+		"opacity": "Změnit průhlednost objektů",
+		"circle_cx": "Změnit souřadnici X středu kružnice",
+		"circle_cy": "Změnit souřadnici Y středu kružnice",
+		"circle_r": "Změnit poloměr kružnice",
+		"ellipse_cx": "Změnit souřadnici X středu elipsy",
+		"ellipse_cy": "Změnit souřadnici Y středu elipsy",
+		"ellipse_rx": "Změnit poloměr X elipsy",
+		"ellipse_ry": "Změnit poloměr Y elipsy",
+		"line_x1": "Změnit počáteční souřadnici X úsečky",
+		"line_x2": "Změnit koncovou souřadnici X úsečky",
+		"line_y1": "Změnit počáteční souřadnici Y úsečky",
+		"line_y2": "Změnit koncovou souřadnici X úsečky",
+		"rect_height": "Změnit výšku obdélníku",
+		"rect_width": "Změnit šířku obdélníku",
+		"corner_radius": "Změnit zaoblení obdélníku",
+		"image_width": "Změnit šířku dokumentu",
+		"image_height": "Změnit výšku dokumentu",
+		"image_url": "Změnit adresu URL",
+		"node_x": "Změnit souřadnici X uzlu",
+		"node_y": "Změnit souřadnici Y uzlu",
+		"seg_type": "Změnit typ segmentu",
+		"straight_segments": "úsečka",
+		"curve_segments": "křivka",
+		"text_contents": "Změnit text",
+		"font_family": "Změnit font",
+		"font_size": "Změnit velikost písma",
+		"bold": "Tučně",
+		"italic": "Kurzíva"
+	},
+	tools: { 
+		"main_menu": "Hlavní menu",
+		"bkgnd_color_opac": "Změnit barvu a průhlednost pozadí",
+		"connector_no_arrow": "Bez šipky",
+		"fitToContent": "přizpůsobit obsahu",
+		"fit_to_all": "Přizpůsobit veškerému obsahu",
+		"fit_to_canvas": "Přizpůsobit stránce",
+		"fit_to_layer_content": "Přizpůsobit obsahu vrstvy",
+		"fit_to_sel": "Přizpůsobit výběru",
+		"align_relative_to": "Zarovnat relativně",
+		"relativeTo": "relatativně k:",
+		"stránce": "stránce",
+		"largest_object": "největšímu objektu",
+		"selected_objects": "zvoleným objektům",
+		"smallest_object": "nejmenšímu objektu",
+		"new_doc": "Nový dokument",
+		"open_doc": "Otevřít dokument",
+		"export_png": "Exportovat jako PNG",
+		"save_doc": "Uložit dokument",
+		"import_doc": "Importovat SVG",
+		"align_to_page": "Zarovnat element na stránku",
+		"align_bottom": "Zarovnat dolů",
+		"align_center": "Zarovnat nastřed",
+		"align_left": "Zarovnat doleva",
+		"align_middle": "Zarovnat nastřed",
+		"align_right": "Zarovnat doprava",
+		"align_top": "Zarovnat nahoru",
+		"mode_select": "Výběr a transformace objektů",
+		"mode_fhpath": "Kresba od ruky",
+		"mode_line": "Úsečka",
+		"mode_connect": "Spojit dva objekty",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Obdélník volnou rukou",
+		"mode_ellipse": "Elipsa",
+		"mode_circle": "Kružnice",
+		"mode_fhellipse": "Elipsa volnou rukou",
+		"mode_path": "Křivka",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text",
+		"mode_image": "Obrázek",
+		"mode_zoom": "Přiblížení",
+		"mode_eyedropper": "Kapátko",
+		"no_embed": "POZOR: Obrázek nelze uložit s dokumentem. Bude zobrazován z adresáře, kde se nyní nachází.",
+		"undo": "Zpět",
+		"redo": "Znovu",
+		"tool_source": "Upravovat SVG kód",
+		"wireframe_mode": "Zobrazit jen kostru",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Seskupit objekty",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Objekt na křivku",
+		"reorient_path": "Změna orientace křivky",
+		"ungroup": "Zrušit seskupení",
+		"docprops": "Vlastnosti dokumentu",
+		"imagelib": "Image Library",
+		"move_bottom": "Vrstvu úplně dospodu",
+		"move_top": "Vrstvu úplně nahoru",
+		"node_clone": "Vložit nový uzel",
+		"node_delete": "Ostranit uzel",
+		"node_link": "Provázat ovládací body uzlu",
+		"add_subpath": "Přidat další součást křivky",
+		"openclose_path": "Otevřít/zavřít součást křivky",
+		"source_save": "Uložit",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Vrstva",
+		"layers": "Layers",
+		"del": "Odstranit vrstvu",
+		"move_down": "Přesunout vrstvu níž",
+		"new": "Přidat vrstvu",
+		"rename": "Přejmenovat vrstvu",
+		"move_up": "Přesunout vrstvu výš",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Přesunout objekty do:",
+		"move_selected": "Přesunout objekty do jiné vrstvy"
+	},
+	config: {
+		"image_props": "Vlastnosti dokumentu",
+		"doc_title": "Název",
+		"doc_dims": "Vlastní velikost",
+		"included_images": "Vložené obrázky",
+		"image_opt_embed": "Vkládat do dokumentu",
+		"image_opt_ref": "Jen odkazem",
+		"editor_prefs": "Nastavení editoru",
+		"icon_size": "Velikost ikon",
+		"language": "Jazyk",
+		"background": "Obrázek v pozadí editoru",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Pozor: obrázek v pozadí nebude uložen jako součást dokumentu.",
+		"icon_large": "velké",
+		"icon_medium": "střední",
+		"icon_small": "malé",
+		"icon_xlarge": "největší",
+		"select_predefined": "vybrat předdefinovaný:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Nevhodná hodnota",
+		"noContentToFitTo":"Vyberte oblast pro přizpůsobení",
+		"dupeLayerName":"Taková vrstva už bohužel existuje",
+		"enterUniqueLayerName":"Zadejte prosím jedinečné jméno pro vrstvu",
+		"enterNewLayerName":"Zadejte prosím jméno pro novou vrstvu",
+		"layerHasThatName":"Vrstva už se tak jmenuje",
+		"QmoveElemsToLayer":"Opravdu chcete přesunout vybrané objekty do vrstvy '%s'?",
+		"QwantToClear":"Opravdu chcete smazat současný dokument?\nHistorie změn bude také smazána.",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Chyba v parsování zdrojového kódu SVG.\nChcete se vrátit k původnímu?",
+		"QignoreSourceChanges":"Opravdu chcete stornovat změny provedené v SVG kódu?",
+		"featNotSupported":"Tato vlastnost ještě není k dispozici",
+		"enterNewImgURL":"Vložte adresu URL, na které se nachází vkládaný obrázek",
+		"defsFailOnSave": "POZOR: Kvůli nedokonalosti Vašeho prohlížeče se mohou některé části dokumentu špatně vykreslovat (mohou chybět barevné přechody nebo některé objekty). Po uložení dokumentu by se ale vše mělo zobrazovat správně.",
+		"loadingImage":"Nahrávám obrázek ...",
+		"saveFromBrowser": "Použijte nabídku \"Uložit stránku jako ...\" ve Vašem prohlížeči pro uložení dokumentu do souboru %s.",
+		"noteTheseIssues": "Mohou se vyskytnout následující problémy: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.cy.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Alinio perthynas i ..."},
-{"id": "bkgnd_color", "title": "Newid lliw cefndir / Didreiddiad"},
-{"id": "circle_cx", "title": "CX Newid cylch yn cydlynu"},
-{"id": "circle_cy", "title": "Newid cylch&#39;s cy gydgysylltu"},
-{"id": "circle_r", "title": "Newid radiws cylch yn"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Newid Hirsgwâr Corner Radiws"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Newid Ellipse yn CX gydgysylltu"},
-{"id": "ellipse_cy", "title": "Newid Ellipse yn cydlynu cy"},
-{"id": "ellipse_rx", "title": "Radiws Newid Ellipse&#39;s x"},
-{"id": "ellipse_ry", "title": "Radiws Newid Ellipse yn y"},
-{"id": "fill_color", "title": "Newid lliw llenwi"},
-{"id": "fitToContent", "textContent": "Ffit i Cynnwys"},
-{"id": "fit_to_all", "textContent": "Yn addas i bawb content"},
-{"id": "fit_to_canvas", "textContent": "Ffit i ofyn"},
-{"id": "fit_to_layer_content", "textContent": "Ffit cynnwys haen i"},
-{"id": "fit_to_sel", "textContent": "Yn addas at ddewis"},
-{"id": "font_family", "title": "Newid Font Teulu"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Uchder delwedd Newid"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Newid URL"},
-{"id": "image_width", "title": "Lled delwedd Newid"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "gwrthrych mwyaf"},
-{"id": "layer_delete", "title": "Dileu Haen"},
-{"id": "layer_down", "title": "Symud Haen i Lawr"},
-{"id": "layer_new", "title": "Haen Newydd"},
-{"id": "layer_rename", "title": "Ail-enwi Haen"},
-{"id": "layer_up", "title": "Symud Haen Up"},
-{"id": "layersLable", "textContent": "Haen:"},
-{"id": "line_x1", "title": "Newid llinell yn cychwyn x gydgysylltu"},
-{"id": "line_x2", "title": "Newid llinell yn diweddu x gydgysylltu"},
-{"id": "line_y1", "title": "Newid llinell ar y cychwyn yn cydlynu"},
-{"id": "line_y2", "title": "Newid llinell yn dod i ben y gydgysylltu"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "tudalen"},
-{"id": "palette", "title": "Cliciwch yma i lenwi newid lliw, sifft-cliciwch i newid lliw strôc"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Uchder petryal Newid"},
-{"id": "rect_width_tool", "title": "Lled petryal Newid"},
-{"id": "relativeToLabel", "textContent": "cymharol i:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Rhagosodol Dewis:"},
-{"id": "selected_objects", "textContent": "gwrthrychau etholedig"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "lleiaf gwrthrych"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Newid lliw strôc"},
-{"id": "stroke_style", "title": "Newid arddull strôc diferyn"},
-{"id": "stroke_width", "title": "Lled strôc Newid"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Uchder:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Lled:"},
-{"id": "text", "title": "Cynnwys testun Newid"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Alinio Gwaelod"},
-{"id": "tool_aligncenter", "title": "Alinio Center"},
-{"id": "tool_alignleft", "title": "Alinio Chwith"},
-{"id": "tool_alignmiddle", "title": "Alinio Canol"},
-{"id": "tool_alignright", "title": "Alinio Hawl"},
-{"id": "tool_aligntop", "title": "Alinio Top"},
-{"id": "tool_angle", "title": "Ongl cylchdro Newid"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Testun Bras"},
-{"id": "tool_circle", "title": "Cylch"},
-{"id": "tool_clear", "textContent": "Newydd Delwedd"},
-{"id": "tool_clone", "title": "Clone Elfen"},
-{"id": "tool_clone_multi", "title": "Elfennau Clone "},
-{"id": "tool_delete", "title": "Dileu Elfen"},
-{"id": "tool_delete_multi", "title": "Elfennau Selected Dileu"},
-{"id": "tool_docprops", "textContent": "Document Eiddo"},
-{"id": "tool_docprops_cancel", "textContent": "Canslo"},
-{"id": "tool_docprops_save", "textContent": "Cadw"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Rhad ac am ddim Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Teclyn pensil"},
-{"id": "tool_fhrect", "title": "Hand rhad ac am ddim Hirsgwâr"},
-{"id": "tool_font_size", "title": "Newid Maint Ffont"},
-{"id": "tool_group", "title": "Elfennau Grŵp"},
-{"id": "tool_image", "title": "Offer Delwedd"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italig Testun"},
-{"id": "tool_line", "title": "Llinell Offer"},
-{"id": "tool_move_bottom", "title": "Symud i&#39;r Gwaelod"},
-{"id": "tool_move_top", "title": "Symud i&#39;r Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Newid dewis Didreiddiad eitem"},
-{"id": "tool_open", "textContent": "Delwedd Agored"},
-{"id": "tool_path", "title": "Offer poly"},
-{"id": "tool_rect", "title": "Petryal"},
-{"id": "tool_redo", "title": "Ail-wneud"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Cadw Delwedd"},
-{"id": "tool_select", "title": "Dewiswch Offer"},
-{"id": "tool_source", "title": "Golygu Ffynhonnell"},
-{"id": "tool_source_cancel", "textContent": "Canslo"},
-{"id": "tool_source_save", "textContent": "Cadw"},
-{"id": "tool_square", "title": "Sgwâr"},
-{"id": "tool_text", "title": "Testun Offer"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Dadwneud"},
-{"id": "tool_ungroup", "title": "Elfennau Ungroup"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Offer Chwyddo"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Newid lefel chwyddo"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "cy",
+	dir : "ltr",
+	common: {
+		"ok": "Cadw",
+		"cancel": "Canslo",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Cliciwch yma i lenwi newid lliw, sifft-cliciwch i newid lliw strôc",
+		"zoom_level": "Newid lefel chwyddo",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Newid lliw llenwi",
+		"stroke_color": "Newid lliw strôc",
+		"stroke_style": "Newid arddull strôc diferyn",
+		"stroke_width": "Lled strôc Newid",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Ongl cylchdro Newid",
+		"blur": "Change gaussian blur value",
+		"opacity": "Newid dewis Didreiddiad eitem",
+		"circle_cx": "CX Newid cylch yn cydlynu",
+		"circle_cy": "Newid cylch&#39;s cy gydgysylltu",
+		"circle_r": "Newid radiws cylch yn",
+		"ellipse_cx": "Newid Ellipse yn CX gydgysylltu",
+		"ellipse_cy": "Newid Ellipse yn cydlynu cy",
+		"ellipse_rx": "Radiws Newid Ellipse&#39;s x",
+		"ellipse_ry": "Radiws Newid Ellipse yn y",
+		"line_x1": "Newid llinell yn cychwyn x gydgysylltu",
+		"line_x2": "Newid llinell yn diweddu x gydgysylltu",
+		"line_y1": "Newid llinell ar y cychwyn yn cydlynu",
+		"line_y2": "Newid llinell yn dod i ben y gydgysylltu",
+		"rect_height": "Uchder petryal Newid",
+		"rect_width": "Lled petryal Newid",
+		"corner_radius": "Newid Hirsgwâr Corner Radiws",
+		"image_width": "Lled delwedd Newid",
+		"image_height": "Uchder delwedd Newid",
+		"image_url": "Newid URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Cynnwys testun Newid",
+		"font_family": "Newid Font Teulu",
+		"font_size": "Newid Maint Ffont",
+		"bold": "Testun Bras",
+		"italic": "Italig Testun"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Newid lliw cefndir / Didreiddiad",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Ffit i Cynnwys",
+		"fit_to_all": "Yn addas i bawb content",
+		"fit_to_canvas": "Ffit i ofyn",
+		"fit_to_layer_content": "Ffit cynnwys haen i",
+		"fit_to_sel": "Yn addas at ddewis",
+		"align_relative_to": "Alinio perthynas i ...",
+		"relativeTo": "cymharol i:",
+		"tudalen": "tudalen",
+		"largest_object": "gwrthrych mwyaf",
+		"selected_objects": "gwrthrychau etholedig",
+		"smallest_object": "lleiaf gwrthrych",
+		"new_doc": "Newydd Delwedd",
+		"open_doc": "Delwedd Agored",
+		"export_png": "Export as PNG",
+		"save_doc": "Cadw Delwedd",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Alinio Gwaelod",
+		"align_center": "Alinio Center",
+		"align_left": "Alinio Chwith",
+		"align_middle": "Alinio Canol",
+		"align_right": "Alinio Hawl",
+		"align_top": "Alinio Top",
+		"mode_select": "Dewiswch Offer",
+		"mode_fhpath": "Teclyn pensil",
+		"mode_line": "Llinell Offer",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Hand rhad ac am ddim Hirsgwâr",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Cylch",
+		"mode_fhellipse": "Rhad ac am ddim Hand Ellipse",
+		"mode_path": "Offer poly",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Testun Offer",
+		"mode_image": "Offer Delwedd",
+		"mode_zoom": "Offer Chwyddo",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Dadwneud",
+		"redo": "Ail-wneud",
+		"tool_source": "Golygu Ffynhonnell",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Elfennau Grŵp",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Elfennau Ungroup",
+		"docprops": "Document Eiddo",
+		"imagelib": "Image Library",
+		"move_bottom": "Symud i&#39;r Gwaelod",
+		"move_top": "Symud i&#39;r Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Cadw",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Dileu Haen",
+		"move_down": "Symud Haen i Lawr",
+		"new": "Haen Newydd",
+		"rename": "Ail-enwi Haen",
+		"move_up": "Symud Haen Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Rhagosodol Dewis:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.da.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Juster i forhold til ..."},
-{"id": "bkgnd_color", "title": "Skift baggrundsfarve / uigennemsigtighed"},
-{"id": "circle_cx", "title": "Skift cirklens cx koordinere"},
-{"id": "circle_cy", "title": "Skift cirklens cy koordinere"},
-{"id": "circle_r", "title": "Skift cirklens radius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Skift Rektangel Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Skift ellipse&#39;s cx koordinere"},
-{"id": "ellipse_cy", "title": "Skift ellipse&#39;s cy koordinere"},
-{"id": "ellipse_rx", "title": "Skift ellipse&#39;s x radius"},
-{"id": "ellipse_ry", "title": "Skift ellipse&#39;s y radius"},
-{"id": "fill_color", "title": "Skift fyldfarve"},
-{"id": "fitToContent", "textContent": "Tilpas til indhold"},
-{"id": "fit_to_all", "textContent": "Passer til alt indhold"},
-{"id": "fit_to_canvas", "textContent": "Tilpas til lærred"},
-{"id": "fit_to_layer_content", "textContent": "Tilpas til lag indhold"},
-{"id": "fit_to_sel", "textContent": "Tilpas til udvælgelse"},
-{"id": "font_family", "title": "Skift Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Skift billede højde"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Skift webadresse"},
-{"id": "image_width", "title": "Skift billede bredde"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "største objekt"},
-{"id": "layer_delete", "title": "Slet Layer"},
-{"id": "layer_down", "title": "Flyt lag ned"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Omdøb Layer"},
-{"id": "layer_up", "title": "Flyt Layer Up"},
-{"id": "layersLable", "textContent": "Lag:"},
-{"id": "line_x1", "title": "Skift linie&#39;s start x-koordinat"},
-{"id": "line_x2", "title": "Skift Line&#39;s slutter x-koordinat"},
-{"id": "line_y1", "title": "Skift linjens start y-koordinat"},
-{"id": "line_y2", "title": "Skift Line&#39;s slutter y-koordinat"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "side"},
-{"id": "palette", "title": "Klik for at ændre fyldfarve, shift-klik for at ændre stregfarve"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Skift rektangel højde"},
-{"id": "rect_width_tool", "title": "Skift rektanglets bredde"},
-{"id": "relativeToLabel", "textContent": "i forhold til:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Vælg foruddefinerede:"},
-{"id": "selected_objects", "textContent": "valgte objekter"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "mindste objekt"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Skift stregfarve"},
-{"id": "stroke_style", "title": "Skift slagtilfælde Dash stil"},
-{"id": "stroke_width", "title": "Skift slagtilfælde bredde"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Højde:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Bredde:"},
-{"id": "text", "title": "Skift tekst indhold"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Juster Bottom"},
-{"id": "tool_aligncenter", "title": "Centrer"},
-{"id": "tool_alignleft", "title": "Venstrejusteret"},
-{"id": "tool_alignmiddle", "title": "Juster Mellemøsten"},
-{"id": "tool_alignright", "title": "Højrejusteret"},
-{"id": "tool_aligntop", "title": "Juster Top"},
-{"id": "tool_angle", "title": "Skift rotationsvinkel"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Fed tekst"},
-{"id": "tool_circle", "title": "Cirkel"},
-{"id": "tool_clear", "textContent": "Nyt billede"},
-{"id": "tool_clone", "title": "Klon Element"},
-{"id": "tool_clone_multi", "title": "Klon Elements"},
-{"id": "tool_delete", "title": "Slet Element"},
-{"id": "tool_delete_multi", "title": "Slet markerede elementer"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Annuller"},
-{"id": "tool_docprops_save", "textContent": "Gemme"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Rektangel"},
-{"id": "tool_font_size", "title": "Skift skriftstørrelse"},
-{"id": "tool_group", "title": "Gruppe Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Flyt til bund"},
-{"id": "tool_move_top", "title": "Flyt til toppen"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Skift valgte element opacitet"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rektangel"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Gem billede"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Annuller"},
-{"id": "tool_source_save", "textContent": "Gemme"},
-{"id": "tool_square", "title": "Firkant"},
-{"id": "tool_text", "title": "Tekstværktøj"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Fortryd"},
-{"id": "tool_ungroup", "title": "Opdel Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Skift zoomniveau"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "da",
+	dir : "ltr",
+	common: {
+		"ok": "Gemme",
+		"cancel": "Annuller",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klik for at ændre fyldfarve, shift-klik for at ændre stregfarve",
+		"zoom_level": "Skift zoomniveau",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Skift fyldfarve",
+		"stroke_color": "Skift stregfarve",
+		"stroke_style": "Skift slagtilfælde Dash stil",
+		"stroke_width": "Skift slagtilfælde bredde",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Skift rotationsvinkel",
+		"blur": "Change gaussian blur value",
+		"opacity": "Skift valgte element opacitet",
+		"circle_cx": "Skift cirklens cx koordinere",
+		"circle_cy": "Skift cirklens cy koordinere",
+		"circle_r": "Skift cirklens radius",
+		"ellipse_cx": "Skift ellipse&#39;s cx koordinere",
+		"ellipse_cy": "Skift ellipse&#39;s cy koordinere",
+		"ellipse_rx": "Skift ellipse&#39;s x radius",
+		"ellipse_ry": "Skift ellipse&#39;s y radius",
+		"line_x1": "Skift linie&#39;s start x-koordinat",
+		"line_x2": "Skift Line&#39;s slutter x-koordinat",
+		"line_y1": "Skift linjens start y-koordinat",
+		"line_y2": "Skift Line&#39;s slutter y-koordinat",
+		"rect_height": "Skift rektangel højde",
+		"rect_width": "Skift rektanglets bredde",
+		"corner_radius": "Skift Rektangel Corner Radius",
+		"image_width": "Skift billede bredde",
+		"image_height": "Skift billede højde",
+		"image_url": "Skift webadresse",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Skift tekst indhold",
+		"font_family": "Skift Font Family",
+		"font_size": "Skift skriftstørrelse",
+		"bold": "Fed tekst",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Skift baggrundsfarve / uigennemsigtighed",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Tilpas til indhold",
+		"fit_to_all": "Passer til alt indhold",
+		"fit_to_canvas": "Tilpas til lærred",
+		"fit_to_layer_content": "Tilpas til lag indhold",
+		"fit_to_sel": "Tilpas til udvælgelse",
+		"align_relative_to": "Juster i forhold til ...",
+		"relativeTo": "i forhold til:",
+		"side": "side",
+		"largest_object": "største objekt",
+		"selected_objects": "valgte objekter",
+		"smallest_object": "mindste objekt",
+		"new_doc": "Nyt billede",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Gem billede",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Juster Bottom",
+		"align_center": "Centrer",
+		"align_left": "Venstrejusteret",
+		"align_middle": "Juster Mellemøsten",
+		"align_right": "Højrejusteret",
+		"align_top": "Juster Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rektangel",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Cirkel",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Tekstværktøj",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Fortryd",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Gruppe Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Opdel Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Flyt til bund",
+		"move_top": "Flyt til toppen",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Gemme",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Slet Layer",
+		"move_down": "Flyt lag ned",
+		"new": "New Layer",
+		"rename": "Omdøb Layer",
+		"move_up": "Flyt Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Vælg foruddefinerede:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.de.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Relativ zu einem anderem Objekt ausrichten ..."},
-{"id": "bkgnd_color", "title": "Hintergrundfarbe ändern / Opazität"},
-{"id": "circle_cx", "title": "Kreiszentrum (cx) ändern"},
-{"id": "circle_cy", "title": "Kreiszentrum (cy) ändern"},
-{"id": "circle_r", "title": "Kreisradius (r) ändern"},
-{"id": "connector_no_arrow", "textContent": "Kein Pfeil"},
-{"id": "copyrightLabel", "textContent": "angetrieben durch"},
-{"id": "cornerRadiusLabel", "title": "Eckenradius des Rechtecks ändern"},
-{"id": "curve_segments", "textContent": "Kurve"},
-{"id": "ellipse_cx", "title": "Ellipsenzentrum (cx) ändern"},
-{"id": "ellipse_cy", "title": "Ellipsenzentrum (cy) ändern"},
-{"id": "ellipse_rx", "title": "Ellipsenradius (x) ändern"},
-{"id": "ellipse_ry", "title": "Ellipsenradius (y) ändern"},
-{"id": "fill_color", "title": "Füllfarbe ändern"},
-{"id": "fitToContent", "textContent": "An den Inhalt anpassen"},
-{"id": "fit_to_all", "textContent": "An gesamten Inhalt anpassen"},
-{"id": "fit_to_canvas", "textContent": "An die Zeichenfläche anpassen"},
-{"id": "fit_to_layer_content", "textContent": "An Inhalt der Ebene anpassen"},
-{"id": "fit_to_sel", "textContent": "An die Auswahl anpassen"},
-{"id": "font_family", "title": "Schriftart wählen"},
-{"id": "icon_large", "textContent": "Groß"},
-{"id": "icon_medium", "textContent": "Mittel"},
-{"id": "icon_small", "textContent": "Klein"},
-{"id": "icon_xlarge", "textContent": "Sehr Groß"},
-{"id": "image_height", "title": "Bildhöhe ändern"},
-{"id": "image_opt_embed", "textContent": "Daten einbetten (lokale Dateien)"},
-{"id": "image_opt_ref", "textContent": "Benutze die Datei Referenz"},
-{"id": "image_url", "title": "URL ändern"},
-{"id": "image_width", "title": "Bildbreite ändern"},
-{"id": "includedImages", "textContent": "Eingefügte Bilder"},
-{"id": "largest_object", "textContent": "größtes Objekt"},
-{"id": "layer_delete", "title": "Ebene löschen"},
-{"id": "layer_down", "title": "Ebene nach unten verschieben"},
-{"id": "layer_new", "title": "Neue Ebene"},
-{"id": "layer_rename", "title": "Ebene umbenennen"},
-{"id": "layer_up", "title": "Ebene nach oben verschieben"},
-{"id": "layersLabel", "textContent": "Ebenen:"},
-{"id": "line_x1", "title": "X-Koordinate des Linienanfangs ändern"},
-{"id": "line_x2", "title": "X-Koordinate des Linienendes ändern"},
-{"id": "line_y1", "title": "Y-Koordinate des Linienanfangs ändern"},
-{"id": "line_y2", "title": "Y-Koordinate des Linienendes ändern"},
-{"id": "page", "textContent": "Seite"},
-{"id": "linecap_butt", "title": "Form der Linienendung: Stumpf"},
-{"id": "linecap_round", "title": "Form der Linienendung: Rund"},
-{"id": "linecap_square", "title": "Form der Linienendung: Rechteckig"},
-{"id": "linejoin_bevel", "title": "Zusammentreffen von zwei Linien: abgeschrägte Kante"},
-{"id": "linejoin_miter", "title": "Zusammentreffen von zwei Linien: Gehrung"},
-{"id": "linejoin_round", "title": "Zusammentreffen von zwei Linien: Rund"},
-{"id": "main_icon", "title": "Hauptmenü"},
-{"id": "mode_connect", "title": "Verbinde zwei Objekte"},
-{"id": "palette", "title": "Klick zum Ändern der Füllfarbe, Shift-Klick zum Ändern der Linienfarbe"},
-{"id": "path_node_x", "title": "Ändere die X Koordinate des Knoten"},
-{"id": "path_node_y", "title": "Ändere die Y Koordinate des Knoten"},
-{"id": "rect_height_tool", "title": "Höhe des Rechtecks ändern"},
-{"id": "rect_width_tool", "title": "Breite des Rechtecks ändern"},
-{"id": "relativeToLabel", "textContent": "im Vergleich zu:"},
-{"id": "seg_type", "title": "Ändere den Typ des Segments"},
-{"id": "selLayerLabel", "textContent": "Verschiebe ausgewählte Objekte:"},
-{"id": "selLayerNames", "title": "Verschiebe ausgewählte Objekte auf eine andere Ebene"},
-{"id": "selectedPredefined", "textContent": "Auswahl einer vordefinierten:"},
-{"id": "selected_objects", "textContent": "gewählte Objekte"},
-{"id": "selected_x", "title": "Ändere die X Koordinate"},
-{"id": "selected_y", "title": "Ändere die Y Koordinate"},
-{"id": "smallest_object", "textContent": "kleinstes Objekt"},
-{"id": "straight_segments", "textContent": "Gerade"},
-{"id": "stroke_color", "title": "Linienfarbe ändern"},
-{"id": "stroke_style", "title": "Linienstil ändern"},
-{"id": "stroke_width", "title": "Linienbreite ändern"},
-{"id": "svginfo_bg_note", "textContent": "Anmerkung: Der Hintergrund wird mit der Speicherung des Bildes nicht gespeichert."},
-{"id": "svginfo_change_background", "textContent": "Editor Hintergrund"},
-{"id": "svginfo_dim", "textContent": "Dimension der Zeichenfläche"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Einstellungen"},
-{"id": "svginfo_height", "textContent": "Höhe:"},
-{"id": "svginfo_icons", "textContent": "Symbol Abmessungen"},
-{"id": "svginfo_image_props", "textContent": "Bildeigenschaften"},
-{"id": "svginfo_lang", "textContent": "Sprache"},
-{"id": "svginfo_title", "textContent": "Titel"},
-{"id": "svginfo_width", "textContent": "Breite:"},
-{"id": "text", "title": "Textinhalt erstellen und bearbeiten"},
-{"id": "toggle_stroke_tools", "title": "Zeige/Verberge weitere Linien Werkzeuge"},
-{"id": "tool_add_subpath", "title": "Teilpfad hinzufügen"},
-{"id": "tool_alignbottom", "title": "Unten ausrichten"},
-{"id": "tool_aligncenter", "title": "Zentriert ausrichten"},
-{"id": "tool_alignleft", "title": "Linksbündig ausrichten"},
-{"id": "tool_alignmiddle", "title": "In der Mitte ausrichten"},
-{"id": "tool_alignright", "title": "Rechtsbündig ausrichten"},
-{"id": "tool_aligntop", "title": "Oben ausrichten"},
-{"id": "tool_angle", "title": "Drehwinkel ändern"},
-{"id": "tool_blur", "title": "Ändere Gaußschen Weichzeichner Wert"},
-{"id": "tool_bold", "title": "Fetter Text"},
-{"id": "tool_circle", "title": "Kreis"},
-{"id": "tool_clear", "textContent": "Neues Bild"},
-{"id": "tool_clone", "title": "Objekt klonen"},
-{"id": "tool_clone_multi", "title": "Ausgewählte Objekte klonen"},
-{"id": "tool_delete", "title": "Objekt löschen"},
-{"id": "tool_delete_multi", "title": "Ausgewählte Objekte löschen"},
-{"id": "tool_docprops", "textContent": "Dokument-Eigenschaften"},
-{"id": "tool_docprops_cancel", "textContent": "Abbrechen"},
-{"id": "tool_docprops_save", "textContent": "OK"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Als PNG exportieren"},
-{"id": "tool_eyedropper", "title": "Ableger"},
-{"id": "tool_fhellipse", "title": "Freihand Ellipse"},
-{"id": "tool_fhpath", "title": "Freihandlinien zeichnen"},
-{"id": "tool_fhrect", "title": "Freihand Rechteck"},
-{"id": "tool_font_size", "title": "Schriftgröße einstellen"},
-{"id": "tool_group", "title": "Gruppieren"},
-{"id": "tool_image", "title": "Bild einfügen"},
-{"id": "tool_import", "textContent": "Importiere SVG"},
-{"id": "tool_italic", "title": "Kursiver Text"},
-{"id": "tool_line", "title": "Linien zeichnen"},
-{"id": "tool_move_bottom", "title": "Die gewählten Objekte nach ganz unten schieben"},
-{"id": "tool_move_top", "title": "Die gewählten Objekte nach ganz oben anheben"},
-{"id": "tool_node_clone", "title": "Klone den Knoten"},
-{"id": "tool_node_delete", "title": "Lösche den Knoten"},
-{"id": "tool_node_link", "title": "Gekoppelte oder separate Kontroll Punkte für die Bearbeitung des Pfades"},
-{"id": "tool_opacity", "title": "Opazität des ausgewählten Objekts ändern"},
-{"id": "tool_open", "textContent": "Bild öffnen"},
-{"id": "tool_path", "title": "Pfad zeichnen"},
-{"id": "tool_rect", "title": "Rechteck"},
-{"id": "tool_redo", "title": "Wiederherstellen"},
-{"id": "tool_reorient", "title": "Neuausrichtung des Pfades"},
-{"id": "tool_save", "textContent": "Bild speichern"},
-{"id": "tool_select", "title": "Objekte auswählen und verändern"},
-{"id": "tool_source", "title": "Quellecode bearbeiten"},
-{"id": "tool_source_cancel", "textContent": "Abbrechen"},
-{"id": "tool_source_save", "textContent": "Änderungen akzeptieren"},
-{"id": "tool_square", "title": "Quadrat"},
-{"id": "tool_text", "title": "Text erstellen und bearbeiten"},
-{"id": "tool_topath", "title": "Gewähltes Objekt in einen Pfad konvertieren"},
-{"id": "tool_undo", "title": "Rückgängig"},
-{"id": "tool_ungroup", "title": "Gruppierung aufheben"},
-{"id": "tool_wireframe", "title": "Drahtmodell Modus"},
-{"id": "tool_zoom", "title": "Zoomfaktor vergrößern oder verringern"},
-{"id": "url_notice", "title": "Hinweis: Dieses Bild kann nicht eingebettet werden. Eine Anzeige hängt von diesem Pfad ab."},
-{"id": "zoom_panel", "title": "vergrößern"},
-{"id": "sidepanel_handle", "textContent": "E b e n e n", "title": "Ziehe links/rechts um die Seitenleiste anzupassen"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Die Syntaxanalyse Ihrer SVG Quelle enthält Fehler.\nOriginal SVG wiederherstellen?", 
-  "QignoreSourceChanges": "Soll die Änderung am SVG Quelltext ignoriert werden?", 
-  "QmoveElemsToLayer": "Verschiebe ausgewählte Objekte in die Ebene '%s'?", 
-  "QwantToClear": "Möchten Sie die Zeichnung löschen?\nDadurch wird auch die Rückgängig Funktion zurückgesetzt!", 
-  "cancel": "Abbrechen", 
-  "defsFailOnSave": "Hinweis: Aufgrund eines Fehlers in Ihrem Browser, kann dieses Bild falsch angezeigt werden (fehlende Gradienten oder Elemente). Es wird jedoch richtig angezeigt sobald es tatsächlich gespeichert wird.", 
-  "dupeLayerName": "Eine Ebene hat bereits diesen Namen!", 
-  "enterNewImgURL": "Geben Sie die URL für das neue Bild an", 
-  "enterNewLayerName": "Geben Sie bitte einen neuen Namen für die Ebene ein", 
-  "enterUniqueLayerName": "Verwenden Sie einen eindeutigen Namen für die Ebene", 
-  "exportNoBlur": "Verschwommene Elemente werden als un-verschwommen erscheinen.", 
-  "exportNoDashArray": "Linien werden ausgefüllt angezeigt.", 
-  "exportNoImage": "Image-Elemente werden nicht angezeigt.", 
-  "exportNoText": "Text erscheint möglicherweise nicht wie erwartet.", 
-  "exportNoforeignObject": "Fremde Objekt Elemente werden nicht angezeigt.", 
-  "featNotSupported": "Diese Eigenschaft wird nicht unterstützt", 
-  "invalidAttrValGiven": "Fehlerhafter Wert", 
-  "key_backspace": "Rücktaste", 
-  "key_del": "Löschen", 
-  "key_down": "nach unten", 
-  "key_up": "nach oben", 
-  "layer": "Ebene", 
-  "layerHasThatName": "Eine Ebene hat bereits diesen Namen", 
-  "loadingImage": "Bild wird geladen, bitte warten ...", 
-  "noContentToFitTo": "Kein Inhalt anzupassen", 
-  "noteTheseIssues": "Beachten Sie außerdem die folgenden Probleme: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Ziehe den Kontroll Punkt um die Kurven Eigenschaften anzupassen", 
-  "pathNodeTooltip": "Ziehe den Knoten zum Verschieben. Doppel Klick um den Segment Typ anzupassen", 
-  "saveFromBrowser": "Wählen Sie \"Speichern unter ...\" in Ihrem Browser, um das Bild als Datei %s zu speichern."
- }
-}
-]
+svgEditor.readLang({
+	lang: "de",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "Abbrechen",
+		"key_backspace": "Rücktaste", 
+		"key_del": "Löschen", 
+		"key_down": "nach unten", 
+		"key_up": "nach oben", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "angetrieben durch"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Zeige/Verberge weitere Linien Werkzeuge",
+		"palette_info": "Klick zum Ändern der Füllfarbe, Shift-Klick zum Ändern der Linienfarbe",
+		"zoom_level": "vergrößern",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Füllfarbe ändern",
+		"stroke_color": "Linienfarbe ändern",
+		"stroke_style": "Linienstil ändern",
+		"stroke_width": "Linienbreite ändern",
+		"pos_x": "Ändere die X Koordinate",
+		"pos_y": "Ändere die Y Koordinate",
+		"linecap_butt": "Form der Linienendung: Stumpf",
+		"linecap_round": "Form der Linienendung: Rund",
+		"linecap_square": "Form der Linienendung: Rechteckig",
+		"linejoin_bevel": "Zusammentreffen von zwei Linien: abgeschrägte Kante",
+		"linejoin_miter": "Zusammentreffen von zwei Linien: Gehrung",
+		"linejoin_round": "Zusammentreffen von zwei Linien: Rund",
+		"angle": "Drehwinkel ändern",
+		"blur": "Ändere Gaußschen Weichzeichner Wert",
+		"opacity": "Opazität des ausgewählten Objekts ändern",
+		"circle_cx": "Kreiszentrum (cx) ändern",
+		"circle_cy": "Kreiszentrum (cy) ändern",
+		"circle_r": "Kreisradius (r) ändern",
+		"ellipse_cx": "Ellipsenzentrum (cx) ändern",
+		"ellipse_cy": "Ellipsenzentrum (cy) ändern",
+		"ellipse_rx": "Ellipsenradius (x) ändern",
+		"ellipse_ry": "Ellipsenradius (y) ändern",
+		"line_x1": "X-Koordinate des Linienanfangs ändern",
+		"line_x2": "X-Koordinate des Linienendes ändern",
+		"line_y1": "Y-Koordinate des Linienanfangs ändern",
+		"line_y2": "Y-Koordinate des Linienendes ändern",
+		"rect_height": "Höhe des Rechtecks ändern",
+		"rect_width": "Breite des Rechtecks ändern",
+		"corner_radius": "Eckenradius des Rechtecks ändern",
+		"image_width": "Bildbreite ändern",
+		"image_height": "Bildhöhe ändern",
+		"image_url": "URL ändern",
+		"node_x": "Ändere die X Koordinate des Knoten",
+		"node_y": "Ändere die Y Koordinate des Knoten",
+		"seg_type": "Ändere den Typ des Segments",
+		"straight_segments": "Gerade",
+		"curve_segments": "Kurve",
+		"text_contents": "Textinhalt erstellen und bearbeiten",
+		"font_family": "Schriftart wählen",
+		"font_size": "Schriftgröße einstellen",
+		"bold": "Fetter Text",
+		"italic": "Kursiver Text"
+	},
+	tools: { 
+		"main_menu": "Hauptmenü",
+		"bkgnd_color_opac": "Hintergrundfarbe ändern / Opazität",
+		"connector_no_arrow": "Kein Pfeil",
+		"fitToContent": "An den Inhalt anpassen",
+		"fit_to_all": "An gesamten Inhalt anpassen",
+		"fit_to_canvas": "An die Zeichenfläche anpassen",
+		"fit_to_layer_content": "An Inhalt der Ebene anpassen",
+		"fit_to_sel": "An die Auswahl anpassen",
+		"align_relative_to": "Relativ zu einem anderem Objekt ausrichten ...",
+		"relativeTo": "im Vergleich zu:",
+		"Seite": "Seite",
+		"largest_object": "größtes Objekt",
+		"selected_objects": "gewählte Objekte",
+		"smallest_object": "kleinstes Objekt",
+		"new_doc": "Neues Bild",
+		"open_doc": "Bild öffnen",
+		"export_png": "Als PNG exportieren",
+		"save_doc": "Bild speichern",
+		"import_doc": "Importiere SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Unten ausrichten",
+		"align_center": "Zentriert ausrichten",
+		"align_left": "Linksbündig ausrichten",
+		"align_middle": "In der Mitte ausrichten",
+		"align_right": "Rechtsbündig ausrichten",
+		"align_top": "Oben ausrichten",
+		"mode_select": "Objekte auswählen und verändern",
+		"mode_fhpath": "Freihandlinien zeichnen",
+		"mode_line": "Linien zeichnen",
+		"mode_connect": "Verbinde zwei Objekte",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Freihand Rechteck",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Kreis",
+		"mode_fhellipse": "Freihand Ellipse",
+		"mode_path": "Pfad zeichnen",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text erstellen und bearbeiten",
+		"mode_image": "Bild einfügen",
+		"mode_zoom": "Zoomfaktor vergrößern oder verringern",
+		"mode_eyedropper": "Ableger",
+		"no_embed": "Hinweis: Dieses Bild kann nicht eingebettet werden. Eine Anzeige hängt von diesem Pfad ab.",
+		"undo": "Rückgängig",
+		"redo": "Wiederherstellen",
+		"tool_source": "Quellecode bearbeiten",
+		"wireframe_mode": "Drahtmodell Modus",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Gruppieren",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Gewähltes Objekt in einen Pfad konvertieren",
+		"reorient_path": "Neuausrichtung des Pfades",
+		"ungroup": "Gruppierung aufheben",
+		"docprops": "Dokument-Eigenschaften",
+		"imagelib": "Image Library",
+		"move_bottom": "Die gewählten Objekte nach ganz unten schieben",
+		"move_top": "Die gewählten Objekte nach ganz oben anheben",
+		"node_clone": "Klone den Knoten",
+		"node_delete": "Lösche den Knoten",
+		"node_link": "Gekoppelte oder separate Kontroll Punkte für die Bearbeitung des Pfades",
+		"add_subpath": "Teilpfad hinzufügen",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Änderungen akzeptieren",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"Löschen": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Ebene",
+		"layers": "Layers",
+		"del": "Ebene löschen",
+		"move_down": "Ebene nach unten verschieben",
+		"new": "Neue Ebene",
+		"rename": "Ebene umbenennen",
+		"move_up": "Ebene nach oben verschieben",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Verschiebe ausgewählte Objekte:",
+		"move_selected": "Verschiebe ausgewählte Objekte auf eine andere Ebene"
+	},
+	config: {
+		"image_props": "Bildeigenschaften",
+		"doc_title": "Titel",
+		"doc_dims": "Dimension der Zeichenfläche",
+		"included_images": "Eingefügte Bilder",
+		"image_opt_embed": "Daten einbetten (lokale Dateien)",
+		"image_opt_ref": "Benutze die Datei Referenz",
+		"editor_prefs": "Editor Einstellungen",
+		"icon_size": "Symbol Abmessungen",
+		"language": "Sprache",
+		"background": "Editor Hintergrund",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Anmerkung: Der Hintergrund wird mit der Speicherung des Bildes nicht gespeichert.",
+		"icon_large": "Groß",
+		"icon_medium": "Mittel",
+		"icon_small": "Klein",
+		"icon_xlarge": "Sehr Groß",
+		"select_predefined": "Auswahl einer vordefinierten:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Fehlerhafter Wert",
+		"noContentToFitTo":"Kein Inhalt anzupassen",
+		"dupeLayerName":"Eine Ebene hat bereits diesen Namen!",
+		"enterUniqueLayerName":"Verwenden Sie einen eindeutigen Namen für die Ebene",
+		"enterNewLayerName":"Geben Sie bitte einen neuen Namen für die Ebene ein",
+		"layerHasThatName":"Eine Ebene hat bereits diesen Namen",
+		"QmoveElemsToLayer":"Verschiebe ausgewählte Objekte in die Ebene '%s'?",
+		"QwantToClear":"Möchten Sie die Zeichnung löschen?\nDadurch wird auch die Rückgängig Funktion zurückgesetzt!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Die Syntaxanalyse Ihrer SVG Quelle enthält Fehler.\nOriginal SVG wiederherstellen?",
+		"QignoreSourceChanges":"Soll die Änderung am SVG Quelltext ignoriert werden?",
+		"featNotSupported":"Diese Eigenschaft wird nicht unterstützt",
+		"enterNewImgURL":"Geben Sie die URL für das neue Bild an",
+		"defsFailOnSave": "Hinweis: Aufgrund eines Fehlers in Ihrem Browser, kann dieses Bild falsch angezeigt werden (fehlende Gradienten oder Elemente). Es wird jedoch richtig angezeigt sobald es tatsächlich gespeichert wird.",
+		"loadingImage":"Bild wird geladen, bitte warten ...",
+		"saveFromBrowser": "Wählen Sie \"Speichern unter ...\" in Ihrem Browser, um das Bild als Datei %s zu speichern.",
+		"noteTheseIssues": "Beachten Sie außerdem die folgenden Probleme: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.el.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Στοίχιση σε σχέση με ..."},
-{"id": "bkgnd_color", "title": "Αλλαγή χρώματος φόντου / αδιαφάνεια"},
-{"id": "circle_cx", "title": "Cx Αλλαγή κύκλου συντονίζουν"},
-{"id": "circle_cy", "title": "Αλλαγή κύκλου cy συντονίζουν"},
-{"id": "circle_r", "title": "Αλλαγή ακτίνα κύκλου"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Αλλαγή ορθογώνιο Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Αλλαγή ellipse του CX συντονίζουν"},
-{"id": "ellipse_cy", "title": "Αλλαγή ellipse του cy συντονίζουν"},
-{"id": "ellipse_rx", "title": "X ακτίνα Αλλαγή ellipse του"},
-{"id": "ellipse_ry", "title": "Y ακτίνα Αλλαγή ellipse του"},
-{"id": "fill_color", "title": "Αλλαγή συμπληρώστε χρώμα"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Ταιριάζει σε όλο το περιεχόμενο"},
-{"id": "fit_to_canvas", "textContent": "Προσαρμογή στο μουσαμά"},
-{"id": "fit_to_layer_content", "textContent": "Προσαρμογή στο περιεχόμενο στρώμα"},
-{"id": "fit_to_sel", "textContent": "Fit to επιλογή"},
-{"id": "font_family", "title": "Αλλαγή γραμματοσειράς Οικογένεια"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Αλλαγή ύψος εικόνας"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Αλλαγή URL"},
-{"id": "image_width", "title": "Αλλαγή πλάτος εικόνας"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "μεγαλύτερο αντικείμενο"},
-{"id": "layer_delete", "title": "Διαγραφήστρώματος"},
-{"id": "layer_down", "title": "Μετακίνηση Layer Down"},
-{"id": "layer_new", "title": "Νέο Layer"},
-{"id": "layer_rename", "title": "Μετονομασία Layer"},
-{"id": "layer_up", "title": "Μετακίνηση Layer Up"},
-{"id": "layersLable", "textContent": "Στρώματα:"},
-{"id": "line_x1", "title": "Αλλαγή γραμμής εκκίνησης x συντονίζουν"},
-{"id": "line_x2", "title": "Αλλαγή γραμμής λήγει x συντονίζουν"},
-{"id": "line_y1", "title": "Αλλαγή γραμμής εκκίνησης y συντονίζουν"},
-{"id": "line_y2", "title": "Αλλαγή γραμμής λήγει y συντονίζουν"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "σελίδα"},
-{"id": "palette", "title": "Κάντε κλικ για να συμπληρώσετε την αλλαγή χρώματος, στροφή κλικ για να αλλάξετε το χρώμα εγκεφαλικό"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Αλλαγή ύψος ορθογωνίου"},
-{"id": "rect_width_tool", "title": "Αλλαγή πλάτους ορθογώνιο"},
-{"id": "relativeToLabel", "textContent": "σε σχέση με:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Επιλογή προκαθορισμένων:"},
-{"id": "selected_objects", "textContent": "εκλέγεται αντικείμενα"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "μικρότερο αντικείμενο"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Αλλαγή χρώματος εγκεφαλικό"},
-{"id": "stroke_style", "title": "Αλλαγή στυλ παύλα εγκεφαλικό"},
-{"id": "stroke_width", "title": "Αλλαγή πλάτος γραμμής"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Ύψος:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Πλάτος:"},
-{"id": "text", "title": "Αλλαγή περιεχόμενο κειμένου"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Στοίχισηκάτω"},
-{"id": "tool_aligncenter", "title": "Στοίχισηστοκέντρο"},
-{"id": "tool_alignleft", "title": "Στοίχισηαριστερά"},
-{"id": "tool_alignmiddle", "title": "Ευθυγράμμιση Μέση"},
-{"id": "tool_alignright", "title": "Στοίχισηδεξιά"},
-{"id": "tool_aligntop", "title": "Στοίχισηπάνω"},
-{"id": "tool_angle", "title": "Αλλαγή γωνία περιστροφής"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Κύκλος"},
-{"id": "tool_clear", "textContent": "Νέα εικόνα"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Στοιχεία"},
-{"id": "tool_delete", "title": "Διαγραφή Στοιχείων [Delete/Backspace]"},
-{"id": "tool_delete_multi", "title": "Διαγραφή επιλεγμένων στοιχείων"},
-{"id": "tool_docprops", "textContent": "Ιδιότητες εγγράφου"},
-{"id": "tool_docprops_cancel", "textContent": "Άκυρο"},
-{"id": "tool_docprops_save", "textContent": "Αποθηκεύω"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Δωρεάν-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Εργαλείομολυβιού"},
-{"id": "tool_fhrect", "title": "Δωρεάν-Hand ορθογώνιο"},
-{"id": "tool_font_size", "title": "Αλλαγή μεγέθους γραμματοσειράς"},
-{"id": "tool_group", "title": "Ομάδα Στοιχεία"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Πλάγιους"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Μετακίνηση προς τα κάτω"},
-{"id": "tool_move_top", "title": "Μετακίνηση στην αρχή"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Αλλαγή αδιαφάνεια επιλεγμένο σημείο"},
-{"id": "tool_open", "textContent": "Άνοιγμα εικόνας"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Ορθογώνιο"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Αποθήκευση εικόνας"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Επεξεργασία Πηγή"},
-{"id": "tool_source_cancel", "textContent": "Άκυρο"},
-{"id": "tool_source_save", "textContent": "Αποθηκεύω"},
-{"id": "tool_square", "title": "Τετράγωνο"},
-{"id": "tool_text", "title": "Κείμενο Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Αναίρεση"},
-{"id": "tool_ungroup", "title": "Κατάργηση ομαδοποίησης Στοιχεία"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Αλλαγή επίπεδο μεγέθυνσης"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "el",
+	dir : "ltr",
+	common: {
+		"ok": "Αποθηκεύω",
+		"cancel": "Άκυρο",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Κάντε κλικ για να συμπληρώσετε την αλλαγή χρώματος, στροφή κλικ για να αλλάξετε το χρώμα εγκεφαλικό",
+		"zoom_level": "Αλλαγή επίπεδο μεγέθυνσης",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Αλλαγή συμπληρώστε χρώμα",
+		"stroke_color": "Αλλαγή χρώματος εγκεφαλικό",
+		"stroke_style": "Αλλαγή στυλ παύλα εγκεφαλικό",
+		"stroke_width": "Αλλαγή πλάτος γραμμής",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Αλλαγή γωνία περιστροφής",
+		"blur": "Change gaussian blur value",
+		"opacity": "Αλλαγή αδιαφάνεια επιλεγμένο σημείο",
+		"circle_cx": "Cx Αλλαγή κύκλου συντονίζουν",
+		"circle_cy": "Αλλαγή κύκλου cy συντονίζουν",
+		"circle_r": "Αλλαγή ακτίνα κύκλου",
+		"ellipse_cx": "Αλλαγή ellipse του CX συντονίζουν",
+		"ellipse_cy": "Αλλαγή ellipse του cy συντονίζουν",
+		"ellipse_rx": "X ακτίνα Αλλαγή ellipse του",
+		"ellipse_ry": "Y ακτίνα Αλλαγή ellipse του",
+		"line_x1": "Αλλαγή γραμμής εκκίνησης x συντονίζουν",
+		"line_x2": "Αλλαγή γραμμής λήγει x συντονίζουν",
+		"line_y1": "Αλλαγή γραμμής εκκίνησης y συντονίζουν",
+		"line_y2": "Αλλαγή γραμμής λήγει y συντονίζουν",
+		"rect_height": "Αλλαγή ύψος ορθογωνίου",
+		"rect_width": "Αλλαγή πλάτους ορθογώνιο",
+		"corner_radius": "Αλλαγή ορθογώνιο Corner Radius",
+		"image_width": "Αλλαγή πλάτος εικόνας",
+		"image_height": "Αλλαγή ύψος εικόνας",
+		"image_url": "Αλλαγή URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Αλλαγή περιεχόμενο κειμένου",
+		"font_family": "Αλλαγή γραμματοσειράς Οικογένεια",
+		"font_size": "Αλλαγή μεγέθους γραμματοσειράς",
+		"bold": "Bold Text",
+		"italic": "Πλάγιους"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Αλλαγή χρώματος φόντου / αδιαφάνεια",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Ταιριάζει σε όλο το περιεχόμενο",
+		"fit_to_canvas": "Προσαρμογή στο μουσαμά",
+		"fit_to_layer_content": "Προσαρμογή στο περιεχόμενο στρώμα",
+		"fit_to_sel": "Fit to επιλογή",
+		"align_relative_to": "Στοίχιση σε σχέση με ...",
+		"relativeTo": "σε σχέση με:",
+		"σελίδα": "σελίδα",
+		"largest_object": "μεγαλύτερο αντικείμενο",
+		"selected_objects": "εκλέγεται αντικείμενα",
+		"smallest_object": "μικρότερο αντικείμενο",
+		"new_doc": "Νέα εικόνα",
+		"open_doc": "Άνοιγμα εικόνας",
+		"export_png": "Export as PNG",
+		"save_doc": "Αποθήκευση εικόνας",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Στοίχισηκάτω",
+		"align_center": "Στοίχισηστοκέντρο",
+		"align_left": "Στοίχισηαριστερά",
+		"align_middle": "Ευθυγράμμιση Μέση",
+		"align_right": "Στοίχισηδεξιά",
+		"align_top": "Στοίχισηπάνω",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Εργαλείομολυβιού",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Δωρεάν-Hand ορθογώνιο",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Κύκλος",
+		"mode_fhellipse": "Δωρεάν-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Κείμενο Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Αναίρεση",
+		"redo": "Redo",
+		"tool_source": "Επεξεργασία Πηγή",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Ομάδα Στοιχεία",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Κατάργηση ομαδοποίησης Στοιχεία",
+		"docprops": "Ιδιότητες εγγράφου",
+		"imagelib": "Image Library",
+		"move_bottom": "Μετακίνηση προς τα κάτω",
+		"move_top": "Μετακίνηση στην αρχή",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Αποθηκεύω",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Διαγραφήστρώματος",
+		"move_down": "Μετακίνηση Layer Down",
+		"new": "Νέο Layer",
+		"rename": "Μετονομασία Layer",
+		"move_up": "Μετακίνηση Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Επιλογή προκαθορισμένων:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 176
main/inc/lib/svg-edit/locale/lang.en.js

@@ -1,176 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Align relative to ..."},
-{"id": "bkgnd_color", "title": "Change background color/opacity"},
-{"id": "circle_cx", "title": "Change circle's cx coordinate"},
-{"id": "circle_cy", "title": "Change circle's cy coordinate"},
-{"id": "circle_r", "title": "Change circle's radius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Change Rectangle Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Change ellipse's cx coordinate"},
-{"id": "ellipse_cy", "title": "Change ellipse's cy coordinate"},
-{"id": "ellipse_rx", "title": "Change ellipse's x radius"},
-{"id": "ellipse_ry", "title": "Change ellipse's y radius"},
-{"id": "fill_color", "title": "Change fill color"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Fit to all content"},
-{"id": "fit_to_canvas", "textContent": "Fit to canvas"},
-{"id": "fit_to_layer_content", "textContent": "Fit to layer content"},
-{"id": "fit_to_sel", "textContent": "Fit to selection"},
-{"id": "font_family", "title": "Change Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "idLabel", "title": "Identify the element"},
-{"id": "image_height", "title": "Change image height"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Change URL"},
-{"id": "image_width", "title": "Change image width"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "largest object"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move Layer Down"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Change line's starting x coordinate"},
-{"id": "line_x2", "title": "Change line's ending x coordinate"},
-{"id": "line_y1", "title": "Change line's starting y coordinate"},
-{"id": "line_y2", "title": "Change line's ending y coordinate"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "page"},
-{"id": "palette", "title": "Click to change fill color, shift-click to change stroke color"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Change rectangle height"},
-{"id": "rect_width_tool", "title": "Change rectangle width"},
-{"id": "relativeToLabel", "textContent": "relative to:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Select predefined:"},
-{"id": "selected_objects", "textContent": "selected objects"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "smallest object"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Change stroke color"},
-{"id": "stroke_style", "title": "Change stroke dash style"},
-{"id": "stroke_width", "title": "Change stroke width by 1, shift-click to change by 0.1"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Height:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Width:"},
-{"id": "text", "title": "Change text contents"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Align Center"},
-{"id": "tool_alignleft", "title": "Align Left"},
-{"id": "tool_alignmiddle", "title": "Align Middle"},
-{"id": "tool_alignright", "title": "Align Right"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Change rotation angle"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Delete Element"},
-{"id": "tool_delete_multi", "title": "Delete Selected Elements"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Cancel"},
-{"id": "tool_docprops_save", "textContent": "OK"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "Change Font Size"},
-{"id": "tool_group", "title": "Group Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Change selected item opacity"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_openclose_path", "title": "Open/close sub-path"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_position", "title": "Align Element to Page"},
-{"id": "tool_rect", "title": "Rectangle"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Cancel"},
-{"id": "tool_source_save", "textContent": "Apply Changes"},
-{"id": "tool_square", "title": "Square"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Change zoom level"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "en",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "Cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click to change fill color, shift-click to change stroke color",
+		"zoom_level": "Change zoom level",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change fill color",
+		"stroke_color": "Change stroke color",
+		"stroke_style": "Change stroke dash style",
+		"stroke_width": "Change stroke width by 1, shift-click to change by 0.1",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Change rotation angle",
+		"blur": "Change gaussian blur value",
+		"opacity": "Change selected item opacity",
+		"circle_cx": "Change circle's cx coordinate",
+		"circle_cy": "Change circle's cy coordinate",
+		"circle_r": "Change circle's radius",
+		"ellipse_cx": "Change ellipse's cx coordinate",
+		"ellipse_cy": "Change ellipse's cy coordinate",
+		"ellipse_rx": "Change ellipse's x radius",
+		"ellipse_ry": "Change ellipse's y radius",
+		"line_x1": "Change line's starting x coordinate",
+		"line_x2": "Change line's ending x coordinate",
+		"line_y1": "Change line's starting y coordinate",
+		"line_y2": "Change line's ending y coordinate",
+		"rect_height": "Change rectangle height",
+		"rect_width": "Change rectangle width",
+		"corner_radius": "Change Rectangle Corner Radius",
+		"image_width": "Change image width",
+		"image_height": "Change image height",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Change text contents",
+		"font_family": "Change Font Family",
+		"font_size": "Change Font Size",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color/opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit to all content",
+		"fit_to_canvas": "Fit to canvas",
+		"fit_to_layer_content": "Fit to layer content",
+		"fit_to_sel": "Fit to selection",
+		"align_relative_to": "Align relative to ...",
+		"relativeTo": "relative to:",
+		"page": "page",
+		"largest_object": "largest object",
+		"selected_objects": "selected objects",
+		"smallest_object": "smallest object",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Align Center",
+		"align_left": "Align Left",
+		"align_middle": "Align Middle",
+		"align_right": "Align Right",
+		"align_top": "Align Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Layer",
+		"group": "Group Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Apply Changes",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Move Layer Up",
+		"move_down": "Move Layer Down",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefined:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer \"%s\"?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 174
main/inc/lib/svg-edit/locale/lang.es.js

@@ -1,174 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Alinear con respecto a ..."},
-{"id": "bkgnd_color", "title": "Cambiar color de fondo / opacidad"},
-{"id": "circle_cx", "title": "Cambiar la posición horizonral CX del círculo"},
-{"id": "circle_cy", "title": "Cambiar la posición vertical CY del círculo"},
-{"id": "circle_r", "title": "Cambiar el radio del círculo"},
-{"id": "connector_no_arrow", "textContent": "Sin flecha"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Cambiar el radio de las esquinas del rectángulo"},
-{"id": "curve_segments", "textContent": "Curva"},
-{"id": "ellipse_cx", "title": "Cambiar la posición horizontal CX de la elipse"},
-{"id": "ellipse_cy", "title": "Cambiar la posición vertical CY de la elipse"},
-{"id": "ellipse_rx", "title": "Cambiar el radio horizontal X de la elipse"},
-{"id": "ellipse_ry", "title": "Cambiar el radio vertical Y de la elipse"},
-{"id": "fill_color", "title": "Cambiar el color de relleno"},
-{"id": "fitToContent", "textContent": "Ajustar al contenido"},
-{"id": "fit_to_all", "textContent": "Ajustar a todo el contenido"},
-{"id": "fit_to_canvas", "textContent": "Ajustar al lienzo"},
-{"id": "fit_to_layer_content", "textContent": "Ajustar al contenido de la capa"},
-{"id": "fit_to_sel", "textContent": "Ajustar a la selección"},
-{"id": "font_family", "title": "Tipo de fuente"},
-{"id": "icon_large", "textContent": "Grande"},
-{"id": "icon_medium", "textContent": "Mediano"},
-{"id": "icon_small", "textContent": "Pequeño"},
-{"id": "icon_xlarge", "textContent": "Muy grande"},
-{"id": "image_height", "title": "Cambiar la altura de la imagen"},
-{"id": "image_opt_embed", "textContent": "Integrar imágenes en forma de datos (archivos locales)"},
-{"id": "image_opt_ref", "textContent": "Usar la referencia del archivo"},
-{"id": "image_url", "title": "Modificar URL"},
-{"id": "image_width", "title": "Cambiar el ancho de la imagen"},
-{"id": "includedImages", "textContent": "Imágenes integradas"},
-{"id": "largest_object", "textContent": "El objeto más grande"},
-{"id": "layer_delete", "title": "Suprimir capa"},
-{"id": "layer_down", "title": "Mover la capa hacia abajo"},
-{"id": "layer_new", "title": "Nueva capa"},
-{"id": "layer_rename", "title": "Renombrar capa"},
-{"id": "layer_up", "title": "Mover la capa hacia arriba"},
-{"id": "layersLabel", "textContent": "Capas:"},
-{"id": "line_x1", "title": "Cambiar la posición horizontal X del comienzo de la línea"},
-{"id": "line_x2", "title": "Cambiar la posición horizontal X del final de la línea"},
-{"id": "line_y1", "title": "Cambiar la posición vertical Y del comienzo de la línea"},
-{"id": "line_y2", "title": "Cambiar la posición vertical Y del final de la línea"},
-{"id": "linecap_butt", "title": "Final de la línea: en el nodo"},
-{"id": "linecap_round", "title": "Final de la línea: redondeada"},
-{"id": "linecap_square", "title": "Final de la línea: cuadrada"},
-{"id": "linejoin_bevel", "title": "Unión: biselada"},
-{"id": "linejoin_miter", "title": "Unión: recta"},
-{"id": "linejoin_round", "title": "Unión: redondeada"},
-{"id": "main_icon", "title": "Menú principal"},
-{"id": "mode_connect", "title": "Conectar dos objetos"},
-{"id": "page", "textContent": "Página"},
-{"id": "palette", "title": "Haga clic para cambiar el color de relleno. Pulse Mayús y haga clic para cambiar el color del contorno."},
-{"id": "path_node_x", "title": "Cambiar la posición horizontal X del nodo"},
-{"id": "path_node_y", "title": "Cambiar la posición vertical Y del nodo"},
-{"id": "rect_height_tool", "title": "Cambiar la altura del rectángulo"},
-{"id": "rect_width_tool", "title": "Cambiar el ancho rectángulo"},
-{"id": "relativeToLabel", "textContent": "en relación con:"},
-{"id": "seg_type", "title": "Cambiar el tipo de segmento"},
-{"id": "selLayerLabel", "textContent": "Desplazar objetos a:"},
-{"id": "selLayerNames", "title": "Mover los objetos seleccionados a otra capa"},
-{"id": "selectedPredefined", "textContent": "Seleccionar predefinido:"},
-{"id": "selected_objects", "textContent": "Objetos seleccionados"},
-{"id": "selected_x", "title": "Cambiar la posición horizontal X"},
-{"id": "selected_y", "title": "Cambiar la posición vertical Y"},
-{"id": "smallest_object", "textContent": "El objeto más pequeño"},
-{"id": "straight_segments", "textContent": "Recta"},
-{"id": "stroke_color", "title": "Cambiar el color del contorno"},
-{"id": "stroke_style", "title": "Cambiar el estilo del trazo del contorno"},
-{"id": "stroke_width", "title": "Cambiar el grosor del contorno"},
-{"id": "svginfo_bg_note", "textContent": "Nota: El fondo no se guardará junto con la imagen."},
-{"id": "svginfo_change_background", "textContent": "Fondo del editor"},
-{"id": "svginfo_dim", "textContent": "Tamaño del lienzo"},
-{"id": "svginfo_editor_prefs", "textContent": "Preferencias del Editor"},
-{"id": "svginfo_height", "textContent": "Alto:"},
-{"id": "svginfo_icons", "textContent": "Tamaño de los iconos"},
-{"id": "svginfo_image_props", "textContent": "Propiedades de la Imagen"},
-{"id": "svginfo_lang", "textContent": "Idioma"},
-{"id": "svginfo_title", "textContent": "Título"},
-{"id": "svginfo_width", "textContent": "Ancho:"},
-{"id": "text", "title": "Modificar el texto"},
-{"id": "toggle_stroke_tools", "title": "Mostrar/ocultar herramientas de trazo adicionales"},
-{"id": "tool_add_subpath", "title": "Añadir subtrazado"},
-{"id": "tool_alignbottom", "title": "Alinear parte inferior"},
-{"id": "tool_aligncenter", "title": "Centrar verticalmente"},
-{"id": "tool_alignleft", "title": "Alinear lado izquierdo"},
-{"id": "tool_alignmiddle", "title": "Centrar horizontalmente"},
-{"id": "tool_alignright", "title": "Alinear lado derecho"},
-{"id": "tool_aligntop", "title": "Alinear parte superior"},
-{"id": "tool_angle", "title": "Cambiar ángulo de rotación"},
-{"id": "tool_blur", "title": "Ajustar desenfoque gausiano"},
-{"id": "tool_bold", "title": "Texto en negrita"},
-{"id": "tool_circle", "title": "Círculo"},
-{"id": "tool_clear", "textContent": "Nueva imagen"},
-{"id": "tool_clone", "title": "Clonar objeto"},
-{"id": "tool_clone_multi", "title": " Clonar objetos"},
-{"id": "tool_delete", "title": "Suprimir objeto"},
-{"id": "tool_delete_multi", "title": "Suprimir los objetos seleccionados"},
-{"id": "tool_docprops", "textContent": "Propiedades del documento"},
-{"id": "tool_docprops_cancel", "textContent": "Cancelar"},
-{"id": "tool_docprops_save", "textContent": "OK"},
-{"id": "tool_ellipse", "title": "Elipse"},
-{"id": "tool_export", "textContent": "Exportar como PNG"},
-{"id": "tool_eyedropper", "title": "Herramienta de pipeta"},
-{"id": "tool_fhellipse", "title": "Elipse a mano alzada"},
-{"id": "tool_fhpath", "title": "Herramienta de lápiz"},
-{"id": "tool_fhrect", "title": "Rectángulo a mano alzada"},
-{"id": "tool_font_size", "title": "Tamaño de la fuente"},
-{"id": "tool_group", "title": "Agrupar objetos"},
-{"id": "tool_image", "title": "Insertar imagen"},
-{"id": "tool_import", "textContent": "Importar un archivo SVG"},
-{"id": "tool_italic", "title": "Texto en cursiva"},
-{"id": "tool_line", "title": "Trazado de líneas"},
-{"id": "tool_move_bottom", "title": "Mover abajo"},
-{"id": "tool_move_top", "title": "Mover arriba"},
-{"id": "tool_node_clone", "title": "Clonar nodo"},
-{"id": "tool_node_delete", "title": "Suprimir nodo"},
-{"id": "tool_node_link", "title": "Enlazar puntos de control"},
-{"id": "tool_opacity", "title": "Cambiar la opacidad del objeto seleccionado"},
-{"id": "tool_open", "textContent": "Abrir imagen"},
-{"id": "tool_path", "title": "Herramienta de trazado"},
-{"id": "tool_rect", "title": "Rectángulo"},
-{"id": "tool_redo", "title": "Rehacer"},
-{"id": "tool_reorient", "title": "Reorientar el trazado"},
-{"id": "tool_save", "textContent": "Guardar imagen"},
-{"id": "tool_select", "title": "Herramienta de selección"},
-{"id": "tool_source", "title": "Editar código fuente"},
-{"id": "tool_source_cancel", "textContent": "Cancelar"},
-{"id": "tool_source_save", "textContent": "Aplicar cambios"},
-{"id": "tool_square", "title": "Cuadrado"},
-{"id": "tool_text", "title": "Insertar texto"},
-{"id": "tool_topath", "title": "Convertir a trazado"},
-{"id": "tool_undo", "title": "Deshacer"},
-{"id": "tool_ungroup", "title": "Desagrupar objetos"},
-{"id": "tool_wireframe", "title": "Modo marco de alambre"},
-{"id": "tool_zoom", "title": "Zoom"},
-{"id": "url_notice", "title": "NOTA: La imagen no puede ser integrada. El contenido mostrado dependerá de la imagen ubicada en esta ruta. "},
-{"id": "zoom_panel", "title": "Cambiar el nivel de zoom"},
-{"id": "sidepanel_handle", "textContent": "C a p a s", "title": "Arrastrar hacia la izquierda/derecha para modificar el tamaño del panel lateral"},
-{
- "js_strings": {
-  "Aceptar": "OK", 
-  "QerrorsRevertToSource": "Existen errores sintácticos en su código fuente SVG.\n¿Desea volver al código fuente SVG original?", 
-  "QignoreSourceChanges": "¿Desea ignorar los cambios realizados sobre el código fuente SVG?", 
-  "QmoveElemsToLayer": "¿Desplazar los elementos seleccionados a la capa '%s'?", 
-  "QwantToClear": "¿Desea borrar el dibujo?\n¡El historial de acciones también se borrará!", 
-  "cancel": "Cancelar", 
-  "defsFailOnSave": "NOTA: Debido a un fallo de su navegador, es posible que la imagen aparezca de forma incorrecta (ciertas gradaciones o elementos podría perderse). La imagen aparecerá en su forma correcta una vez guardada.", 
-  "dupeLayerName": "¡Ya existe una capa con este nombre!", 
-  "enterNewImgURL": "Introduzca la nueva URL de la imagen.", 
-  "enterNewLayerName": "Introduzca el nuevo nombre de la capa.", 
-  "enterUniqueLayerName": "Introduzca otro nombre distinto para la capa.", 
-  "exportNoBlur": "Los elementos desenfocados aparecerán enfocados", 
-  "exportNoDashArray": "Los contornos aparecerán rellenos", 
-  "exportNoImage": "Los elementos “Imagen” no aparecerán", 
-  "exportNoText": "La apariencia del texto puede cambiar", 
-  "exportNoforeignObject": "Los elementos “foreignObject” no aparecerán", 
-  "featNotSupported": "Función no compatible.", 
-  "invalidAttrValGiven": "Valor no válido", 
-  "key_backspace": "retroceso", 
-  "key_del": "suprimir", 
-  "key_down": "abajo", 
-  "key_up": "arriba", 
-  "layer": "Capa", 
-  "layerHasThatName": "El nombre introducido es el nombre actual de la capa.", 
-  "loadingImage": "Cargando imagen. Espere, por favor.", 
-  "noContentToFitTo": "No existe un contenido al que ajustarse.", 
-  "noteTheseIssues": "Existen además los problemas siguientes:", 
-  "pathCtrlPtTooltip": "Arrastre el punto de control para ajustar las propiedades de la curva.", 
-  "pathNodeTooltip": "Arrastre el nodo para desplazarlo. Haga doble clic sobre el nodo para cambiar el tipo de segmento.", 
-  "saveFromBrowser": "Seleccionar \"Guardar como...\" en su navegador para guardar la imagen en forma de archivo %s."
- }
-}
-]
-
+svgEditor.readLang({
+	lang: "es",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "Cancelar",
+		"key_backspace": "retroceso", 
+		"key_del": "suprimir", 
+		"key_down": "abajo", 
+		"key_up": "arriba", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Mostrar/ocultar herramientas de trazo adicionales",
+		"palette_info": "Haga clic para cambiar el color de relleno. Pulse Mayús y haga clic para cambiar el color del contorno.",
+		"zoom_level": "Cambiar el nivel de zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Cambiar el color de relleno",
+		"stroke_color": "Cambiar el color del contorno",
+		"stroke_style": "Cambiar el estilo del trazo del contorno",
+		"stroke_width": "Cambiar el grosor del contorno",
+		"pos_x": "Cambiar la posición horizontal X",
+		"pos_y": "Cambiar la posición vertical Y",
+		"linecap_butt": "Final de la línea: en el nodo",
+		"linecap_round": "Final de la línea: redondeada",
+		"linecap_square": "Final de la línea: cuadrada",
+		"linejoin_bevel": "Unión: biselada",
+		"linejoin_miter": "Unión: recta",
+		"linejoin_round": "Unión: redondeada",
+		"angle": "Cambiar ángulo de rotación",
+		"blur": "Ajustar desenfoque gausiano",
+		"opacity": "Cambiar la opacidad del objeto seleccionado",
+		"circle_cx": "Cambiar la posición horizonral CX del círculo",
+		"circle_cy": "Cambiar la posición vertical CY del círculo",
+		"circle_r": "Cambiar el radio del círculo",
+		"ellipse_cx": "Cambiar la posición horizontal CX de la elipse",
+		"ellipse_cy": "Cambiar la posición vertical CY de la elipse",
+		"ellipse_rx": "Cambiar el radio horizontal X de la elipse",
+		"ellipse_ry": "Cambiar el radio vertical Y de la elipse",
+		"line_x1": "Cambiar la posición horizontal X del comienzo de la línea",
+		"line_x2": "Cambiar la posición horizontal X del final de la línea",
+		"line_y1": "Cambiar la posición vertical Y del comienzo de la línea",
+		"line_y2": "Cambiar la posición vertical Y del final de la línea",
+		"rect_height": "Cambiar la altura del rectángulo",
+		"rect_width": "Cambiar el ancho rectángulo",
+		"corner_radius": "Cambiar el radio de las esquinas del rectángulo",
+		"image_width": "Cambiar el ancho de la imagen",
+		"image_height": "Cambiar la altura de la imagen",
+		"image_url": "Modificar URL",
+		"node_x": "Cambiar la posición horizontal X del nodo",
+		"node_y": "Cambiar la posición vertical Y del nodo",
+		"seg_type": "Cambiar el tipo de segmento",
+		"straight_segments": "Recta",
+		"curve_segments": "Curva",
+		"text_contents": "Modificar el texto",
+		"font_family": "Tipo de fuente",
+		"font_size": "Tamaño de la fuente",
+		"bold": "Texto en negrita",
+		"italic": "Texto en cursiva"
+	},
+	tools: { 
+		"main_menu": "Menú principal",
+		"bkgnd_color_opac": "Cambiar color de fondo / opacidad",
+		"connector_no_arrow": "Sin flecha",
+		"fitToContent": "Ajustar al contenido",
+		"fit_to_all": "Ajustar a todo el contenido",
+		"fit_to_canvas": "Ajustar al lienzo",
+		"fit_to_layer_content": "Ajustar al contenido de la capa",
+		"fit_to_sel": "Ajustar a la selección",
+		"align_relative_to": "Alinear con respecto a ...",
+		"relativeTo": "en relación con:",
+		"Página": "Página",
+		"largest_object": "El objeto más grande",
+		"selected_objects": "Objetos seleccionados",
+		"smallest_object": "El objeto más pequeño",
+		"new_doc": "Nueva imagen",
+		"open_doc": "Abrir imagen",
+		"export_png": "Exportar como PNG",
+		"save_doc": "Guardar imagen",
+		"import_doc": "Importar un archivo SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Alinear parte inferior",
+		"align_center": "Centrar verticalmente",
+		"align_left": "Alinear lado izquierdo",
+		"align_middle": "Centrar horizontalmente",
+		"align_right": "Alinear lado derecho",
+		"align_top": "Alinear parte superior",
+		"mode_select": "Herramienta de selección",
+		"mode_fhpath": "Herramienta de lápiz",
+		"mode_line": "Trazado de líneas",
+		"mode_connect": "Conectar dos objetos",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Rectángulo a mano alzada",
+		"mode_ellipse": "Elipse",
+		"mode_circle": "Círculo",
+		"mode_fhellipse": "Elipse a mano alzada",
+		"mode_path": "Herramienta de trazado",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Insertar texto",
+		"mode_image": "Insertar imagen",
+		"mode_zoom": "Zoom",
+		"mode_eyedropper": "Herramienta de pipeta",
+		"no_embed": "NOTA: La imagen no puede ser integrada. El contenido mostrado dependerá de la imagen ubicada en esta ruta. ",
+		"undo": "Deshacer",
+		"redo": "Rehacer",
+		"tool_source": "Editar código fuente",
+		"wireframe_mode": "Modo marco de alambre",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Agrupar objetos",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convertir a trazado",
+		"reorient_path": "Reorientar el trazado",
+		"ungroup": "Desagrupar objetos",
+		"docprops": "Propiedades del documento",
+		"imagelib": "Image Library",
+		"move_bottom": "Mover abajo",
+		"move_top": "Mover arriba",
+		"node_clone": "Clonar nodo",
+		"node_delete": "Suprimir nodo",
+		"node_link": "Enlazar puntos de control",
+		"add_subpath": "Añadir subtrazado",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Aplicar cambios",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"suprimir": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Capa",
+		"layers": "Layers",
+		"del": "Suprimir capa",
+		"move_down": "Mover la capa hacia abajo",
+		"new": "Nueva capa",
+		"rename": "Renombrar capa",
+		"move_up": "Mover la capa hacia arriba",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Desplazar objetos a:",
+		"move_selected": "Mover los objetos seleccionados a otra capa"
+	},
+	config: {
+		"image_props": "Propiedades de la Imagen",
+		"doc_title": "Título",
+		"doc_dims": "Tamaño del lienzo",
+		"included_images": "Imágenes integradas",
+		"image_opt_embed": "Integrar imágenes en forma de datos (archivos locales)",
+		"image_opt_ref": "Usar la referencia del archivo",
+		"editor_prefs": "Preferencias del Editor",
+		"icon_size": "Tamaño de los iconos",
+		"language": "Idioma",
+		"background": "Fondo del editor",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Nota: El fondo no se guardará junto con la imagen.",
+		"icon_large": "Grande",
+		"icon_medium": "Mediano",
+		"icon_small": "Pequeño",
+		"icon_xlarge": "Muy grande",
+		"select_predefined": "Seleccionar predefinido:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Valor no válido",
+		"noContentToFitTo":"No existe un contenido al que ajustarse.",
+		"dupeLayerName":"¡Ya existe una capa con este nombre!",
+		"enterUniqueLayerName":"Introduzca otro nombre distinto para la capa.",
+		"enterNewLayerName":"Introduzca el nuevo nombre de la capa.",
+		"layerHasThatName":"El nombre introducido es el nombre actual de la capa.",
+		"QmoveElemsToLayer":"¿Desplazar los elementos seleccionados a la capa '%s'?",
+		"QwantToClear":"¿Desea borrar el dibujo?\n¡El historial de acciones también se borrará!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Existen errores sintácticos en su código fuente SVG.\n¿Desea volver al código fuente SVG original?",
+		"QignoreSourceChanges":"¿Desea ignorar los cambios realizados sobre el código fuente SVG?",
+		"featNotSupported":"Función no compatible.",
+		"enterNewImgURL":"Introduzca la nueva URL de la imagen.",
+		"defsFailOnSave": "NOTA: Debido a un fallo de su navegador, es posible que la imagen aparezca de forma incorrecta (ciertas gradaciones o elementos podría perderse). La imagen aparecerá en su forma correcta una vez guardada.",
+		"loadingImage":"Cargando imagen. Espere, por favor.",
+		"saveFromBrowser": "Seleccionar \"Guardar como...\" en su navegador para guardar la imagen en forma de archivo %s.",
+		"noteTheseIssues": "Existen además los problemas siguientes:",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.et.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Viia võrreldes ..."},
-{"id": "bkgnd_color", "title": "Muuda tausta värvi / läbipaistmatus"},
-{"id": "circle_cx", "title": "Muuda ringi&#39;s cx kooskõlastada"},
-{"id": "circle_cy", "title": "Muuda ringi&#39;s cy kooskõlastada"},
-{"id": "circle_r", "title": "Muuda ring on raadiusega"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Muuda ristkülik Nurgakabe Raadius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Muuda ellips&#39;s cx kooskõlastada"},
-{"id": "ellipse_cy", "title": "Muuda ellips&#39;s cy kooskõlastada"},
-{"id": "ellipse_rx", "title": "Muuda ellips&#39;s x raadius"},
-{"id": "ellipse_ry", "title": "Muuda ellips&#39;s y raadius"},
-{"id": "fill_color", "title": "Muuda täitke värvi"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Sobita kogu sisu"},
-{"id": "fit_to_canvas", "textContent": "Sobita lõuend"},
-{"id": "fit_to_layer_content", "textContent": "Sobita kiht sisu"},
-{"id": "fit_to_sel", "textContent": "Fit valiku"},
-{"id": "font_family", "title": "Muutke Kirjasinperhe"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Muuda pilt kõrgus"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Change URL"},
-{"id": "image_width", "title": "Muuda pilt laius"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "suurim objekt"},
-{"id": "layer_delete", "title": "Kustuta Kiht"},
-{"id": "layer_down", "title": "Liiguta kiht alla"},
-{"id": "layer_new", "title": "Uus kiht"},
-{"id": "layer_rename", "title": "Nimeta kiht"},
-{"id": "layer_up", "title": "Liiguta kiht üles"},
-{"id": "layersLabel", "textContent": "Kihid:"},
-{"id": "line_x1", "title": "Muuda rööbastee algab x-koordinaadi"},
-{"id": "line_x2", "title": "Muuda Line lõpeb x-koordinaadi"},
-{"id": "line_y1", "title": "Muuda rööbastee algab y-koordinaadi"},
-{"id": "line_y2", "title": "Muuda Line lõppenud y-koordinaadi"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "lehekülg"},
-{"id": "palette", "title": "Click muuta täitke värvi, Shift-nuppu, et muuta insult värvi"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Muuda ristküliku kõrgus"},
-{"id": "rect_width_tool", "title": "Muuda ristküliku laius"},
-{"id": "relativeToLabel", "textContent": "võrreldes:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Valige eelmääratletud:"},
-{"id": "selected_objects", "textContent": "valitud objektide"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "väikseim objekt"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Muuda insult värvi"},
-{"id": "stroke_style", "title": "Muuda insult kriips stiil"},
-{"id": "stroke_width", "title": "Muuda insult laius"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Kõrgus:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Laius:"},
-{"id": "text", "title": "Muuda teksti sisu"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Viia Bottom"},
-{"id": "tool_aligncenter", "title": "Keskele joondamine"},
-{"id": "tool_alignleft", "title": "Vasakjoondus"},
-{"id": "tool_alignmiddle", "title": "Viia Lähis -"},
-{"id": "tool_alignright", "title": "Paremjoondus"},
-{"id": "tool_aligntop", "title": "Viia Üles"},
-{"id": "tool_angle", "title": "Muuda Pöördenurk"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Rasvane kiri"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "Uus pilt"},
-{"id": "tool_clone", "title": "Kloonide Element"},
-{"id": "tool_clone_multi", "title": "Kloonide Elements"},
-{"id": "tool_delete", "title": "Kustuta Element"},
-{"id": "tool_delete_multi", "title": "Kustuta valitud elemendid [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Dokumendi omadused"},
-{"id": "tool_docprops_cancel", "textContent": "Tühista"},
-{"id": "tool_docprops_save", "textContent": "Salvestama"},
-{"id": "tool_ellipse", "title": "Ellips"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Online-Hand Ellips"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Online-Hand Ristkülik"},
-{"id": "tool_font_size", "title": "Change font size"},
-{"id": "tool_group", "title": "Rühma elemendid"},
-{"id": "tool_image", "title": "Pilt Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kursiiv"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Liiguta alla"},
-{"id": "tool_move_top", "title": "Liiguta üles"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Muuda valitud elemendi läbipaistmatus"},
-{"id": "tool_open", "textContent": "Pildi avamine"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Ristkülik"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Salvesta pilt"},
-{"id": "tool_select", "title": "Vali Tool"},
-{"id": "tool_source", "title": "Muuda Allikas"},
-{"id": "tool_source_cancel", "textContent": "Tühista"},
-{"id": "tool_source_save", "textContent": "Salvestama"},
-{"id": "tool_square", "title": "Nelinurkne"},
-{"id": "tool_text", "title": "Tekst Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Lõhu Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Muuda suumi taset"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "et",
+	dir : "ltr",
+	common: {
+		"ok": "Salvestama",
+		"cancel": "Tühista",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click muuta täitke värvi, Shift-nuppu, et muuta insult värvi",
+		"zoom_level": "Muuda suumi taset",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Muuda täitke värvi",
+		"stroke_color": "Muuda insult värvi",
+		"stroke_style": "Muuda insult kriips stiil",
+		"stroke_width": "Muuda insult laius",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Muuda Pöördenurk",
+		"blur": "Change gaussian blur value",
+		"opacity": "Muuda valitud elemendi läbipaistmatus",
+		"circle_cx": "Muuda ringi&#39;s cx kooskõlastada",
+		"circle_cy": "Muuda ringi&#39;s cy kooskõlastada",
+		"circle_r": "Muuda ring on raadiusega",
+		"ellipse_cx": "Muuda ellips&#39;s cx kooskõlastada",
+		"ellipse_cy": "Muuda ellips&#39;s cy kooskõlastada",
+		"ellipse_rx": "Muuda ellips&#39;s x raadius",
+		"ellipse_ry": "Muuda ellips&#39;s y raadius",
+		"line_x1": "Muuda rööbastee algab x-koordinaadi",
+		"line_x2": "Muuda Line lõpeb x-koordinaadi",
+		"line_y1": "Muuda rööbastee algab y-koordinaadi",
+		"line_y2": "Muuda Line lõppenud y-koordinaadi",
+		"rect_height": "Muuda ristküliku kõrgus",
+		"rect_width": "Muuda ristküliku laius",
+		"corner_radius": "Muuda ristkülik Nurgakabe Raadius",
+		"image_width": "Muuda pilt laius",
+		"image_height": "Muuda pilt kõrgus",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Muuda teksti sisu",
+		"font_family": "Muutke Kirjasinperhe",
+		"font_size": "Change font size",
+		"bold": "Rasvane kiri",
+		"italic": "Kursiiv"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Muuda tausta värvi / läbipaistmatus",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Sobita kogu sisu",
+		"fit_to_canvas": "Sobita lõuend",
+		"fit_to_layer_content": "Sobita kiht sisu",
+		"fit_to_sel": "Fit valiku",
+		"align_relative_to": "Viia võrreldes ...",
+		"relativeTo": "võrreldes:",
+		"lehekülg": "lehekülg",
+		"largest_object": "suurim objekt",
+		"selected_objects": "valitud objektide",
+		"smallest_object": "väikseim objekt",
+		"new_doc": "Uus pilt",
+		"open_doc": "Pildi avamine",
+		"export_png": "Export as PNG",
+		"save_doc": "Salvesta pilt",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Viia Bottom",
+		"align_center": "Keskele joondamine",
+		"align_left": "Vasakjoondus",
+		"align_middle": "Viia Lähis -",
+		"align_right": "Paremjoondus",
+		"align_top": "Viia Üles",
+		"mode_select": "Vali Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Online-Hand Ristkülik",
+		"mode_ellipse": "Ellips",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Online-Hand Ellips",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Tekst Tool",
+		"mode_image": "Pilt Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Muuda Allikas",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Rühma elemendid",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Lõhu Elements",
+		"docprops": "Dokumendi omadused",
+		"imagelib": "Image Library",
+		"move_bottom": "Liiguta alla",
+		"move_top": "Liiguta üles",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Salvestama",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Kustuta Kiht",
+		"move_down": "Liiguta kiht alla",
+		"new": "Uus kiht",
+		"rename": "Nimeta kiht",
+		"move_up": "Liiguta kiht üles",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Valige eelmääratletud:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 174
main/inc/lib/svg-edit/locale/lang.fa.js

@@ -1,174 +1,234 @@
-[
-{"id": "align_relative_to", "title": "‫تراز نسبت به ...‬"},
-{"id": "bkgnd_color", "title": "‫تغییر رنگ پس زمینه / تاری‬"},
-{"id": "circle_cx", "title": "‫تغییر مختصات cx دایره‬"},
-{"id": "circle_cy", "title": "‫تغییر مختصات cy دایره‬"},
-{"id": "circle_r", "title": "‫تغییر شعاع دایره‬"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "‫تغییر شعاع گوشه مستطیل‬"},
-{"id": "cornerRadiusLabel", "title": "‫شعاع گوشه:‬"},
-{"id": "curve_segments", "textContent": "‫منحنی‬"},
-{"id": "ellipse_cx", "title": "‫تغییر مختصات cx بیضی‬"},
-{"id": "ellipse_cy", "title": "‫تغییر مختصات cy بیضی‬"},
-{"id": "ellipse_rx", "title": "‫تغییر شعاع rx بیضی‬"},
-{"id": "ellipse_ry", "title": "‫تغییر شعاع ry بیضی‬"},
-{"id": "fill_color", "title": "‫تغییر رنگ‬"},
-{"id": "fitToContent", "textContent": "‫هم اندازه شدن با محتوا‬"},
-{"id": "fit_to_all", "textContent": "‫هم اندازه شدن با همه محتویات‬"},
-{"id": "fit_to_canvas", "textContent": "‫هم اندازه شدن با صفحه مجازی (بوم)‬"},
-{"id": "fit_to_layer_content", "textContent": "‫هم اندازه شدن با محتوای لایه‬"},
-{"id": "fit_to_sel", "textContent": "‫هم اندازه شدن با اشیاء انتخاب شده‬"},
-{"id": "font_family", "title": "‫تغییر خانواده قلم‬"},
-{"id": "icon_large", "textContent": "‫بزرگ‬"},
-{"id": "icon_medium", "textContent": "‫متوسط‬"},
-{"id": "icon_small", "textContent": "‫کوچک‬"},
-{"id": "icon_xlarge", "textContent": "‫خیلی بزرگ‬"},
-{"id": "image_height", "title": "‫تغییر ارتفاع تصویر‬"},
-{"id": "image_opt_embed", "textContent": "‫داده های جای داده شده (پرونده های محلی)‬"},
-{"id": "image_opt_ref", "textContent": "‫استفاده از ارجاع به پرونده‬"},
-{"id": "image_url", "title": "‫تغییر نشانی وب (url)‬"},
-{"id": "image_width", "title": "‫تغییر عرض تصویر‬"},
-{"id": "includedImages", "textContent": "‫تصاویر گنجانده شده‬"},
-{"id": "largest_object", "textContent": "‫بزرگترین شئ‬"},
-{"id": "layer_delete", "title": "‫حذف لایه‬"},
-{"id": "layer_down", "title": "‫انتقال لایه به پایین‬"},
-{"id": "layer_new", "title": "‫لایه جدید‬"},
-{"id": "layer_rename", "title": "‫تغییر نام لایه‬"},
-{"id": "layer_up", "title": "‫انتقال لایه به بالا‬"},
-{"id": "layersLabel", "textContent": "‫لایه:‬"},
-{"id": "line_x1", "title": "‫تغییر مختصات x آغاز خط‬"},
-{"id": "line_x2", "title": "‫تغییر مختصات x پایان خط‬"},
-{"id": "line_y1", "title": "‫تغییر مختصات y آغاز خط‬"},
-{"id": "line_y2", "title": "‫تغییر مختصات y پایان خط‬"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "‫صفحه‬"},
-{"id": "palette", "title": "‫برای تغییر رنگ، کلیک کنید. برای تغییر رنگ لبه، کلید تبدیل (shift) را فشرده و کلیک کنید‬"},
-{"id": "path_node_x", "title": "‫تغییر مختصات x نقطه‬"},
-{"id": "path_node_y", "title": "‫تغییر مختصات y نقطه‬"},
-{"id": "rect_height_tool", "title": "‫تغییر ارتفاع مستطیل‬"},
-{"id": "rect_width_tool", "title": "‫تغییر عرض مستطیل‬"},
-{"id": "relativeToLabel", "textContent": "‫نسبت به:‬"},
-{"id": "seg_type", "title": "‫تغییر نوع قطعه (segment)‬"},
-{"id": "selLayerLabel", "textContent": "‫انتقال عناصر به:‬"},
-{"id": "selLayerNames", "title": "‫انتقال عناصر انتخاب شده به یک لایه متفاوت‬"},
-{"id": "selectedPredefined", "textContent": "‫از پیش تعریف شده را انتخاب کنید:‬"},
-{"id": "selected_objects", "textContent": "‫اشیاء انتخاب شده‬"},
-{"id": "selected_x", "title": "‫تغییر مختصات X‬"},
-{"id": "selected_y", "title": "‫تغییر مختصات Y‬"},
-{"id": "smallest_object", "textContent": "‫کوچکترین شئ‬"},
-{"id": "straight_segments", "textContent": "‫مستقیم‬"},
-{"id": "stroke_color", "title": "‫تغییر رنگ لبه‬"},
-{"id": "stroke_style", "title": "‫تغییر نقطه چین لبه‬"},
-{"id": "stroke_width", "title": "‫تغییر عرض لبه‬"},
-{"id": "svginfo_bg_note", "textContent": "‫توجه: پس زمینه همراه تصویر ذخیره نخواهد شد.‬"},
-{"id": "svginfo_change_background", "textContent": "‫پس زمینه ویراستار‬"},
-{"id": "svginfo_dim", "textContent": "‫ابعاد صفحه مجازی (بوم)‬"},
-{"id": "svginfo_editor_prefs", "textContent": "‫تنظیمات ویراستار‬"},
-{"id": "svginfo_height", "textContent": "‫ارتفاع:‬"},
-{"id": "svginfo_icons", "textContent": "‫اندازه شمایل‬"},
-{"id": "svginfo_image_props", "textContent": "‫مشخصات تصویر‬"},
-{"id": "svginfo_lang", "textContent": "‫زبان‬"},
-{"id": "svginfo_title", "textContent": "‫عنوان‬"},
-{"id": "svginfo_width", "textContent": "‫عرض:‬"},
-{"id": "text", "title": "‫تغییر محتویات متن‬"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "‫تراز پایین‬"},
-{"id": "tool_aligncenter", "title": "‫وسط چین‬"},
-{"id": "tool_alignleft", "title": "‫چپ چین‬"},
-{"id": "tool_alignmiddle", "title": "‫تراز میانه‬"},
-{"id": "tool_alignright", "title": "‫راست چین‬"},
-{"id": "tool_aligntop", "title": "‫تراز بالا‬"},
-{"id": "tool_angle", "title": "‫تغییر زاویه چرخش‬"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "‫متن توپر ‬"},
-{"id": "tool_circle", "title": "‫دایره‬"},
-{"id": "tool_clear", "textContent": "‫تصویر جدید ‬"},
-{"id": "tool_clone", "title": "‫ایجاد کپی از عنصر ‬"},
-{"id": "tool_clone_multi", "title": "‫ایجاد کپی از عناصر ‬"},
-{"id": "tool_delete", "title": "‫حذف عنصر ‬"},
-{"id": "tool_delete_multi", "title": "‫حذف عناصر انتخاب شده ‬"},
-{"id": "tool_docprops", "textContent": "‫مشخصات سند ‬"},
-{"id": "tool_docprops_cancel", "textContent": "‫لغو‬"},
-{"id": "tool_docprops_save", "textContent": "‫تأیید‬"},
-{"id": "tool_ellipse", "title": "‫بیضی‬"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "‫بیضی با قابلیت تغییر پویا‬"},
-{"id": "tool_fhpath", "title": "‫ابزار مداد ‬"},
-{"id": "tool_fhrect", "title": "‫مستطیل با قابلیت تغییر پویا‬"},
-{"id": "tool_font_size", "title": "‫تغییر اندازه قلم‬"},
-{"id": "tool_group", "title": "‫قرار دادن عناصر در گروه ‬"},
-{"id": "tool_image", "title": "‫ابزار تصویر ‬"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "‫متن کج ‬"},
-{"id": "tool_line", "title": "‫ابزار خط ‬"},
-{"id": "tool_move_bottom", "title": "‫انتقال به پایین ترین ‬"},
-{"id": "tool_move_top", "title": "‫انتقال به بالاترین ‬"},
-{"id": "tool_node_clone", "title": "‫ایجاد کپی از نقطه‬"},
-{"id": "tool_node_delete", "title": "‫حذف نقطه‬"},
-{"id": "tool_node_link", "title": "‫پیوند دادن نقاط کنترل‬"},
-{"id": "tool_opacity", "title": "‫تغییر تاری عنصر انتخاب شده‬"},
-{"id": "tool_open", "textContent": "‫باز کردن تصویر ‬"},
-{"id": "tool_path", "title": "‫ابزار مسیر ‬"},
-{"id": "tool_rect", "title": "‫مستطیل‬"},
-{"id": "tool_redo", "title": "‫ازنو ‬"},
-{"id": "tool_reorient", "title": "‫جهت دهی مجدد مسیر‬"},
-{"id": "tool_save", "textContent": "‫ذخیره تصویر ‬"},
-{"id": "tool_select", "title": "‫ابزار انتخاب ‬"},
-{"id": "tool_source", "title": "‫ویرایش منبع ‬"},
-{"id": "tool_source_cancel", "textContent": "‫لغو‬"},
-{"id": "tool_source_save", "textContent": "‫اعمال تغییرات‬"},
-{"id": "tool_square", "title": "‫مربع‬"},
-{"id": "tool_text", "title": "‫ابزار متن ‬"},
-{"id": "tool_topath", "title": "‫تبدیل به مسیر‬"},
-{"id": "tool_undo", "title": "‫واگرد ‬"},
-{"id": "tool_ungroup", "title": "‫خارج کردن عناصر از گروه ‬"},
-{"id": "tool_wireframe", "title": "‫حالت نمایش لبه ها ‬"},
-{"id": "tool_zoom", "title": "‫ابزار بزرگ نمایی ‬"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "‫تغییر بزرگ نمایی‬"},
-{"id": "sidepanel_handle", "textContent": "‫لایه ها‬", "title": "‫برای تغییر اندازه منوی کناری، آن را به سمت راست/چپ بکشید ‬"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "‫در منبع SVG شما خطاهای تجزیه (parse) وجود داشت.\nبه منبع SVG اصلی بازگردانده شود؟‬", 
-  "QignoreSourceChanges": "‫تغییرات اعمال شده در منبع SVG نادیده گرفته شوند؟‬", 
-  "QmoveElemsToLayer": "‫عناصر انتخاب شده به لایه '%s' منتقل شوند؟‬", 
-  "QwantToClear": "‫آیا مطمئن هستید که می خواهید نقاشی را پاک کنید؟\nاین عمل باعث حذف تاریخچه واگرد شما خواهد شد!‬", 
-  "cancel": "‫لغو‬", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "‫لایه ای با آن نام وجود دارد!‬", 
-  "enterNewImgURL": "‫نشانی وب (url) تصویر جدید را وارد کنید‬", 
-  "enterNewLayerName": "‫لطفا نام لایه جدید را وارد کنید‬", 
-  "enterUniqueLayerName": "‫لطفا یک نام لایه یکتا انتخاب کنید‬", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "‫این ویژگی پشتیبانی نشده است‬", 
-  "invalidAttrValGiven": "‫مقدار داده شده نامعتبر است‬", 
-  "key_backspace": "‫پس بر ‬", 
-  "key_del": "‫حذف ‬", 
-  "key_down": "‫پایین ‬", 
-  "key_up": "‫بالا ‬", 
-  "layer": "‫لایه‬", 
-  "layerHasThatName": "‫لایه از قبل آن نام را دارد‬", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "‫محتوایی برای هم اندازه شدن وجود ندارد‬", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "‫تأیید‬", 
-  "pathCtrlPtTooltip": "‫برای تنظیم مشخصات منحنی، نقطه کنترل را بکشید‬", 
-  "pathNodeTooltip": "‫برای جابه جا کردن نقطه، آن را بکشید. برای تغییر قطعه (segment)، روی نقطه دوبار کلیک کنید‬", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "fa",
+	dir : "ltr",
+	common: {
+		"ok": "‫تأیید‬",
+		"cancel": "‫لغو‬",
+		"key_backspace": "‫پس بر ‬", 
+		"key_del": "‫حذف ‬", 
+		"key_down": "‫پایین ‬", 
+		"key_up": "‫بالا ‬", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "‫برای تغییر رنگ، کلیک کنید. برای تغییر رنگ لبه، کلید تبدیل (shift) را فشرده و کلیک کنید‬",
+		"zoom_level": "‫تغییر بزرگ نمایی‬",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "‫تغییر رنگ‬",
+		"stroke_color": "‫تغییر رنگ لبه‬",
+		"stroke_style": "‫تغییر نقطه چین لبه‬",
+		"stroke_width": "‫تغییر عرض لبه‬",
+		"pos_x": "‫تغییر مختصات X‬",
+		"pos_y": "‫تغییر مختصات Y‬",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "‫تغییر زاویه چرخش‬",
+		"blur": "Change gaussian blur value",
+		"opacity": "‫تغییر تاری عنصر انتخاب شده‬",
+		"circle_cx": "‫تغییر مختصات cx دایره‬",
+		"circle_cy": "‫تغییر مختصات cy دایره‬",
+		"circle_r": "‫تغییر شعاع دایره‬",
+		"ellipse_cx": "‫تغییر مختصات cx بیضی‬",
+		"ellipse_cy": "‫تغییر مختصات cy بیضی‬",
+		"ellipse_rx": "‫تغییر شعاع rx بیضی‬",
+		"ellipse_ry": "‫تغییر شعاع ry بیضی‬",
+		"line_x1": "‫تغییر مختصات x آغاز خط‬",
+		"line_x2": "‫تغییر مختصات x پایان خط‬",
+		"line_y1": "‫تغییر مختصات y آغاز خط‬",
+		"line_y2": "‫تغییر مختصات y پایان خط‬",
+		"rect_height": "‫تغییر ارتفاع مستطیل‬",
+		"rect_width": "‫تغییر عرض مستطیل‬",
+		"corner_radius": "‫شعاع گوشه:‬",
+		"image_width": "‫تغییر عرض تصویر‬",
+		"image_height": "‫تغییر ارتفاع تصویر‬",
+		"image_url": "‫تغییر نشانی وب (url)‬",
+		"node_x": "‫تغییر مختصات x نقطه‬",
+		"node_y": "‫تغییر مختصات y نقطه‬",
+		"seg_type": "‫تغییر نوع قطعه (segment)‬",
+		"straight_segments": "‫مستقیم‬",
+		"curve_segments": "‫منحنی‬",
+		"text_contents": "‫تغییر محتویات متن‬",
+		"font_family": "‫تغییر خانواده قلم‬",
+		"font_size": "‫تغییر اندازه قلم‬",
+		"bold": "‫متن توپر ‬",
+		"italic": "‫متن کج ‬"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "‫تغییر رنگ پس زمینه / تاری‬",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "‫هم اندازه شدن با محتوا‬",
+		"fit_to_all": "‫هم اندازه شدن با همه محتویات‬",
+		"fit_to_canvas": "‫هم اندازه شدن با صفحه مجازی (بوم)‬",
+		"fit_to_layer_content": "‫هم اندازه شدن با محتوای لایه‬",
+		"fit_to_sel": "‫هم اندازه شدن با اشیاء انتخاب شده‬",
+		"align_relative_to": "‫تراز نسبت به ...‬",
+		"relativeTo": "‫نسبت به:‬",
+		"‫صفحه‬": "‫صفحه‬",
+		"largest_object": "‫بزرگترین شئ‬",
+		"selected_objects": "‫اشیاء انتخاب شده‬",
+		"smallest_object": "‫کوچکترین شئ‬",
+		"new_doc": "‫تصویر جدید ‬",
+		"open_doc": "‫باز کردن تصویر ‬",
+		"export_png": "Export as PNG",
+		"save_doc": "‫ذخیره تصویر ‬",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "‫تراز پایین‬",
+		"align_center": "‫وسط چین‬",
+		"align_left": "‫چپ چین‬",
+		"align_middle": "‫تراز میانه‬",
+		"align_right": "‫راست چین‬",
+		"align_top": "‫تراز بالا‬",
+		"mode_select": "‫ابزار انتخاب ‬",
+		"mode_fhpath": "‫ابزار مداد ‬",
+		"mode_line": "‫ابزار خط ‬",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "‫مستطیل با قابلیت تغییر پویا‬",
+		"mode_ellipse": "‫بیضی‬",
+		"mode_circle": "‫دایره‬",
+		"mode_fhellipse": "‫بیضی با قابلیت تغییر پویا‬",
+		"mode_path": "‫ابزار مسیر ‬",
+		"mode_shapelib": "Shape library",
+		"mode_text": "‫ابزار متن ‬",
+		"mode_image": "‫ابزار تصویر ‬",
+		"mode_zoom": "‫ابزار بزرگ نمایی ‬",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "‫واگرد ‬",
+		"redo": "‫ازنو ‬",
+		"tool_source": "‫ویرایش منبع ‬",
+		"wireframe_mode": "‫حالت نمایش لبه ها ‬",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "‫قرار دادن عناصر در گروه ‬",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "‫تبدیل به مسیر‬",
+		"reorient_path": "‫جهت دهی مجدد مسیر‬",
+		"ungroup": "‫خارج کردن عناصر از گروه ‬",
+		"docprops": "‫مشخصات سند ‬",
+		"imagelib": "Image Library",
+		"move_bottom": "‫انتقال به پایین ترین ‬",
+		"move_top": "‫انتقال به بالاترین ‬",
+		"node_clone": "‫ایجاد کپی از نقطه‬",
+		"node_delete": "‫حذف نقطه‬",
+		"node_link": "‫پیوند دادن نقاط کنترل‬",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "‫اعمال تغییرات‬",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"‫حذف ‬": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"‫لایه‬",
+		"layers": "Layers",
+		"del": "‫حذف لایه‬",
+		"move_down": "‫انتقال لایه به پایین‬",
+		"new": "‫لایه جدید‬",
+		"rename": "‫تغییر نام لایه‬",
+		"move_up": "‫انتقال لایه به بالا‬",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "‫انتقال عناصر به:‬",
+		"move_selected": "‫انتقال عناصر انتخاب شده به یک لایه متفاوت‬"
+	},
+	config: {
+		"image_props": "‫مشخصات تصویر‬",
+		"doc_title": "‫عنوان‬",
+		"doc_dims": "‫ابعاد صفحه مجازی (بوم)‬",
+		"included_images": "‫تصاویر گنجانده شده‬",
+		"image_opt_embed": "‫داده های جای داده شده (پرونده های محلی)‬",
+		"image_opt_ref": "‫استفاده از ارجاع به پرونده‬",
+		"editor_prefs": "‫تنظیمات ویراستار‬",
+		"icon_size": "‫اندازه شمایل‬",
+		"language": "‫زبان‬",
+		"background": "‫پس زمینه ویراستار‬",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "‫توجه: پس زمینه همراه تصویر ذخیره نخواهد شد.‬",
+		"icon_large": "‫بزرگ‬",
+		"icon_medium": "‫متوسط‬",
+		"icon_small": "‫کوچک‬",
+		"icon_xlarge": "‫خیلی بزرگ‬",
+		"select_predefined": "‫از پیش تعریف شده را انتخاب کنید:‬",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"‫مقدار داده شده نامعتبر است‬",
+		"noContentToFitTo":"‫محتوایی برای هم اندازه شدن وجود ندارد‬",
+		"dupeLayerName":"‫لایه ای با آن نام وجود دارد!‬",
+		"enterUniqueLayerName":"‫لطفا یک نام لایه یکتا انتخاب کنید‬",
+		"enterNewLayerName":"‫لطفا نام لایه جدید را وارد کنید‬",
+		"layerHasThatName":"‫لایه از قبل آن نام را دارد‬",
+		"QmoveElemsToLayer":"‫عناصر انتخاب شده به لایه '%s' منتقل شوند؟‬",
+		"QwantToClear":"‫آیا مطمئن هستید که می خواهید نقاشی را پاک کنید؟\nاین عمل باعث حذف تاریخچه واگرد شما خواهد شد!‬",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"‫در منبع SVG شما خطاهای تجزیه (parse) وجود داشت.\nبه منبع SVG اصلی بازگردانده شود؟‬",
+		"QignoreSourceChanges":"‫تغییرات اعمال شده در منبع SVG نادیده گرفته شوند؟‬",
+		"featNotSupported":"‫این ویژگی پشتیبانی نشده است‬",
+		"enterNewImgURL":"‫نشانی وب (url) تصویر جدید را وارد کنید‬",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.fi.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Kohdista suhteessa ..."},
-{"id": "bkgnd_color", "title": "Vaihda taustaväri / sameuden"},
-{"id": "circle_cx", "title": "Muuta Circlen CX koordinoida"},
-{"id": "circle_cy", "title": "Muuta Circlen CY koordinoida"},
-{"id": "circle_r", "title": "Muuta ympyrän säde"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Muuta suorakaide Corner Säde"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Muuta ellipsi&#39;s CX koordinoida"},
-{"id": "ellipse_cy", "title": "Muuta ellipsi&#39;s CY koordinoida"},
-{"id": "ellipse_rx", "title": "Muuta ellipsi&#39;s x säde"},
-{"id": "ellipse_ry", "title": "Muuta ellipsi n y säde"},
-{"id": "fill_color", "title": "Muuta täyttöväri"},
-{"id": "fitToContent", "textContent": "Sovita Content"},
-{"id": "fit_to_all", "textContent": "Sovita kaikki content"},
-{"id": "fit_to_canvas", "textContent": "Sovita kangas"},
-{"id": "fit_to_layer_content", "textContent": "Sovita kerros sisältöön"},
-{"id": "fit_to_sel", "textContent": "Sovita valinta"},
-{"id": "font_family", "title": "Muuta Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Muuta kuvan korkeus"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Muuta URL"},
-{"id": "image_width", "title": "Muuta kuvan leveys"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "Suurin kohde"},
-{"id": "layer_delete", "title": "Poista Layer"},
-{"id": "layer_down", "title": "Siirrä Layer alas"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Nimeä Layer"},
-{"id": "layer_up", "title": "Siirrä Layer"},
-{"id": "layersLabel", "textContent": "Kerrosten:"},
-{"id": "line_x1", "title": "Muuta Linen alkaa x-koordinaatti"},
-{"id": "line_x2", "title": "Muuta Linen päättyy x koordinoida"},
-{"id": "line_y1", "title": "Muuta Linen alkaa y-koordinaatti"},
-{"id": "line_y2", "title": "Muuta Linen päättyy y koordinoida"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "sivulta"},
-{"id": "palette", "title": "Klikkaa muuttaa täyttöväri, Shift-click vaihtaa aivohalvauksen väriä"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Muuta suorakaiteen korkeus"},
-{"id": "rect_width_tool", "title": "Muuta suorakaiteen leveys"},
-{"id": "relativeToLabel", "textContent": "suhteessa:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Valitse ennalta:"},
-{"id": "selected_objects", "textContent": "valittujen objektien"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "pienin kohde"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Muuta aivohalvaus väri"},
-{"id": "stroke_style", "title": "Muuta aivohalvaus Dash tyyli"},
-{"id": "stroke_width", "title": "Muuta aivohalvaus leveys"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Korkeus:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Leveys:"},
-{"id": "text", "title": "Muuta tekstin sisältö"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Keskitä"},
-{"id": "tool_alignleft", "title": "Tasaa vasemmalle"},
-{"id": "tool_alignmiddle", "title": "Kohdista Lähi"},
-{"id": "tool_alignright", "title": "Tasaa oikealle"},
-{"id": "tool_aligntop", "title": "Kohdista Top"},
-{"id": "tool_angle", "title": "Muuta kiertokulma"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Lihavoitu teksti"},
-{"id": "tool_circle", "title": "Ympyrään"},
-{"id": "tool_clear", "textContent": "Uusi kuva"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Poista Element"},
-{"id": "tool_delete_multi", "title": "Poista valitut Elements"},
-{"id": "tool_docprops", "textContent": "Asiakirjan ominaisuudet"},
-{"id": "tool_docprops_cancel", "textContent": "Peruuta"},
-{"id": "tool_docprops_save", "textContent": "Tallentaa"},
-{"id": "tool_ellipse", "title": "Soikion"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Kynätyökalu"},
-{"id": "tool_fhrect", "title": "Free-Hand suorakaide"},
-{"id": "tool_font_size", "title": "Muuta fontin kokoa"},
-{"id": "tool_group", "title": "Tuoteryhmään Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kursivoitu"},
-{"id": "tool_line", "title": "Viivatyökalulla"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Muuta valitun kohteen läpinäkyvyys"},
-{"id": "tool_open", "textContent": "Avaa kuva"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Suorakulmiossa"},
-{"id": "tool_redo", "title": "Tulppaamalla ilmakanavan"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Valitse työkalu"},
-{"id": "tool_source", "title": "Muokkaa lähdekoodipaketti"},
-{"id": "tool_source_cancel", "textContent": "Peruuta"},
-{"id": "tool_source_save", "textContent": "Tallentaa"},
-{"id": "tool_square", "title": "Neliö"},
-{"id": "tool_text", "title": "Työkalua"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Kumoa"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Suurennustyökalu"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Muuta suurennustaso"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "fi",
+	dir : "ltr",
+	common: {
+		"ok": "Tallentaa",
+		"cancel": "Peruuta",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klikkaa muuttaa täyttöväri, Shift-click vaihtaa aivohalvauksen väriä",
+		"zoom_level": "Muuta suurennustaso",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Muuta täyttöväri",
+		"stroke_color": "Muuta aivohalvaus väri",
+		"stroke_style": "Muuta aivohalvaus Dash tyyli",
+		"stroke_width": "Muuta aivohalvaus leveys",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Muuta kiertokulma",
+		"blur": "Change gaussian blur value",
+		"opacity": "Muuta valitun kohteen läpinäkyvyys",
+		"circle_cx": "Muuta Circlen CX koordinoida",
+		"circle_cy": "Muuta Circlen CY koordinoida",
+		"circle_r": "Muuta ympyrän säde",
+		"ellipse_cx": "Muuta ellipsi&#39;s CX koordinoida",
+		"ellipse_cy": "Muuta ellipsi&#39;s CY koordinoida",
+		"ellipse_rx": "Muuta ellipsi&#39;s x säde",
+		"ellipse_ry": "Muuta ellipsi n y säde",
+		"line_x1": "Muuta Linen alkaa x-koordinaatti",
+		"line_x2": "Muuta Linen päättyy x koordinoida",
+		"line_y1": "Muuta Linen alkaa y-koordinaatti",
+		"line_y2": "Muuta Linen päättyy y koordinoida",
+		"rect_height": "Muuta suorakaiteen korkeus",
+		"rect_width": "Muuta suorakaiteen leveys",
+		"corner_radius": "Muuta suorakaide Corner Säde",
+		"image_width": "Muuta kuvan leveys",
+		"image_height": "Muuta kuvan korkeus",
+		"image_url": "Muuta URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Muuta tekstin sisältö",
+		"font_family": "Muuta Font Family",
+		"font_size": "Muuta fontin kokoa",
+		"bold": "Lihavoitu teksti",
+		"italic": "Kursivoitu"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Vaihda taustaväri / sameuden",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Sovita Content",
+		"fit_to_all": "Sovita kaikki content",
+		"fit_to_canvas": "Sovita kangas",
+		"fit_to_layer_content": "Sovita kerros sisältöön",
+		"fit_to_sel": "Sovita valinta",
+		"align_relative_to": "Kohdista suhteessa ...",
+		"relativeTo": "suhteessa:",
+		"sivulta": "sivulta",
+		"largest_object": "Suurin kohde",
+		"selected_objects": "valittujen objektien",
+		"smallest_object": "pienin kohde",
+		"new_doc": "Uusi kuva",
+		"open_doc": "Avaa kuva",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Keskitä",
+		"align_left": "Tasaa vasemmalle",
+		"align_middle": "Kohdista Lähi",
+		"align_right": "Tasaa oikealle",
+		"align_top": "Kohdista Top",
+		"mode_select": "Valitse työkalu",
+		"mode_fhpath": "Kynätyökalu",
+		"mode_line": "Viivatyökalulla",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand suorakaide",
+		"mode_ellipse": "Soikion",
+		"mode_circle": "Ympyrään",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Työkalua",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Suurennustyökalu",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Kumoa",
+		"redo": "Tulppaamalla ilmakanavan",
+		"tool_source": "Muokkaa lähdekoodipaketti",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Tuoteryhmään Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Asiakirjan ominaisuudet",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Tallentaa",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Poista Layer",
+		"move_down": "Siirrä Layer alas",
+		"new": "New Layer",
+		"rename": "Nimeä Layer",
+		"move_up": "Siirrä Layer",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Valitse ennalta:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 176
main/inc/lib/svg-edit/locale/lang.fr.js

@@ -1,176 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Aligner par rapport à ..."},
-{"id": "bkgnd_color", "title": "Changer la couleur d'arrière-plan / l'opacité"},
-{"id": "circle_cx", "title": "Changer la position horizontale cx du cercle"},
-{"id": "circle_cy", "title": "Changer la position verticale cy du cercle"},
-{"id": "circle_r", "title": "Changer le rayon du cercle"},
-{"id": "connector_no_arrow", "textContent": "Sans flèches"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Changer le rayon des coins du rectangle"},
-{"id": "curve_segments", "textContent": "Courbe"},
-{"id": "ellipse_cx", "title": "Changer la position horizontale cx de l'ellipse"},
-{"id": "ellipse_cy", "title": "Changer la position verticale cy de l'ellipse"},
-{"id": "ellipse_rx", "title": "Changer le rayon horizontal x de l'ellipse"},
-{"id": "ellipse_ry", "title": "Changer le rayon vertical y de l'ellipse"},
-{"id": "fill_color", "title": "Changer la couleur de remplissage"},
-{"id": "fitToContent", "textContent": "Ajuster au contenu"},
-{"id": "fit_to_all", "textContent": "Ajuster au contenu de tous les calques"},
-{"id": "fit_to_canvas", "textContent": "Ajuster au canevas"},
-{"id": "fit_to_layer_content", "textContent": "Ajuster au contenu du calque"},
-{"id": "fit_to_sel", "textContent": "Ajuster à la sélection"},
-{"id": "font_family", "title": "Changer la famille de police"},
-{"id": "icon_large", "textContent": "Grande"},
-{"id": "icon_medium", "textContent": "Moyenne"},
-{"id": "icon_small", "textContent": "Petite"},
-{"id": "icon_xlarge", "textContent": "Super-Grande"},
-{"id": "idLabel", "title": "Identifier l'élément"},
-{"id": "image_height", "title": "Changer la hauteur de l'image"},
-{"id": "image_opt_embed", "textContent": "Incorporer les images en tant que données (fichiers locaux)"},
-{"id": "image_opt_ref", "textContent": "Utiliser la référence des images "},
-{"id": "image_url", "title": "Modifier l'URL"},
-{"id": "image_width", "title": "Changer la largeur de l'image"},
-{"id": "includedImages", "textContent": "Images incorporées"},
-{"id": "largest_object", "textContent": "Plus gros objet"},
-{"id": "layer_delete", "title": "Supprimer le calque"},
-{"id": "layer_down", "title": "Descendre le calque"},
-{"id": "layer_new", "title": "Nouveau calque"},
-{"id": "layer_rename", "title": "Renommer le calque"},
-{"id": "layer_up", "title": "Monter le calque"},
-{"id": "layersLabel", "textContent": "Calques :"},
-{"id": "line_x1", "title": "Changer la position horizontale x de début de la ligne"},
-{"id": "line_x2", "title": "Changer la position horizontale x de fin de la ligne"},
-{"id": "line_y1", "title": "Changer la position verticale y de début de la ligne"},
-{"id": "line_y2", "title": "Changer la position verticale y de fin de la ligne"},
-{"id": "linecap_butt", "title": "Terminaison : Sur le nœud"},
-{"id": "linecap_round", "title": "Terminaison : Arrondie"},
-{"id": "linecap_square", "title": "Terminaison : Carrée"},
-{"id": "linejoin_bevel", "title": "Raccord : Biseauté"},
-{"id": "linejoin_miter", "title": "Raccord : Droit"},
-{"id": "linejoin_round", "title": "Raccord : Arrondi"},
-{"id": "main_icon", "title": "Menu principal"},
-{"id": "mode_connect", "title": "Connecter deux objets"},
-{"id": "page", "textContent": "Page"},
-{"id": "palette", "title": "Cliquer pour changer la couleur de remplissage, Shift-Clic pour changer la couleur de contour"},
-{"id": "path_node_x", "title": "Changer la positon horizontale x du nœud"},
-{"id": "path_node_y", "title": "Changer la position verticale y du nœud"},
-{"id": "rect_height_tool", "title": "Changer la hauteur du rectangle"},
-{"id": "rect_width_tool", "title": "Changer la largeur du rectangle"},
-{"id": "relativeToLabel", "textContent": "Relativement à:"},
-{"id": "seg_type", "title": "Changer le type du Segment"},
-{"id": "selLayerLabel", "textContent": "Déplacer éléments vers:"},
-{"id": "selLayerNames", "title": "Déplacer les éléments sélectionnés vers un autre calque"},
-{"id": "selectedPredefined", "textContent": "Sélectionner prédéfinis:"},
-{"id": "selected_objects", "textContent": "Objets sélectionnés"},
-{"id": "selected_x", "title": "Changer la position horizontale X"},
-{"id": "selected_y", "title": "Changer la position verticale Y"},
-{"id": "smallest_object", "textContent": "Plus petit objet"},
-{"id": "straight_segments", "textContent": "Droit"},
-{"id": "stroke_color", "title": "Changer la couleur du contour"},
-{"id": "stroke_style", "title": "Changer le style du contour"},
-{"id": "stroke_width", "title": "Changer la largeur du contour de 1, Shift-Click pour changer la largeur de 0.1"},
-{"id": "svginfo_bg_note", "textContent": "Note: La toile de fond n'est pas sauvegardée avec l'image."},
-{"id": "svginfo_change_background", "textContent": "Toile de fond de l'Éditeur"},
-{"id": "svginfo_dim", "textContent": "Dimensions du canevas"},
-{"id": "svginfo_editor_prefs", "textContent": "Préférences de l'Éditeur"},
-{"id": "svginfo_height", "textContent": "Hauteur:"},
-{"id": "svginfo_icons", "textContent": "Taille des icônes"},
-{"id": "svginfo_image_props", "textContent": "Propriétés de l'Image"},
-{"id": "svginfo_lang", "textContent": "Langue"},
-{"id": "svginfo_title", "textContent": "Titre"},
-{"id": "svginfo_width", "textContent": "Largeur:"},
-{"id": "text", "title": "Changer le contenu du texte"},
-{"id": "toggle_stroke_tools", "title": "Montrer/Cacher plus d'outils de Contour"},
-{"id": "tool_add_subpath", "title": "Ajouter un sous-chemin"},
-{"id": "tool_alignbottom", "title": "Aligner le bas des objets"},
-{"id": "tool_aligncenter", "title": "Centrer verticalement"},
-{"id": "tool_alignleft", "title": "Aligner les côtés gauches"},
-{"id": "tool_alignmiddle", "title": "Centrer horizontalement"},
-{"id": "tool_alignright", "title": "Aligner les côtés droits"},
-{"id": "tool_aligntop", "title": "Aligner le haut des objets"},
-{"id": "tool_angle", "title": "Changer l'angle de rotation"},
-{"id": "tool_blur", "title": "Changer la valeur du flou gaussien"},
-{"id": "tool_bold", "title": "Texte en gras"},
-{"id": "tool_circle", "title": "Cercle"},
-{"id": "tool_clear", "textContent": "Nouvelle image"},
-{"id": "tool_clone", "title": "Cloner l'élément"},
-{"id": "tool_clone_multi", "title": "Cloner les éléments"},
-{"id": "tool_delete", "title": "Supprimer l'élément"},
-{"id": "tool_delete_multi", "title": "Supprimer les éléments sélectionnés"},
-{"id": "tool_docprops", "textContent": "Propriétés du document"},
-{"id": "tool_docprops_cancel", "textContent": "Annuler"},
-{"id": "tool_docprops_save", "textContent": "OK"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Exporter au format PNG"},
-{"id": "tool_eyedropper", "title": "Outil Pipette"},
-{"id": "tool_fhellipse", "title": "Ellipse main levée"},
-{"id": "tool_fhpath", "title": "Crayon à main levée"},
-{"id": "tool_fhrect", "title": "Rectangle main levée"},
-{"id": "tool_font_size", "title": "Changer la taille de la police"},
-{"id": "tool_group", "title": "Grouper les éléments"},
-{"id": "tool_image", "title": "Outil Image"},
-{"id": "tool_import", "textContent": "Importer un objet SVG"},
-{"id": "tool_italic", "title": "Texte en italique"},
-{"id": "tool_line", "title": "Tracer des lignes"},
-{"id": "tool_move_bottom", "title": "Déplacer vers le bas"},
-{"id": "tool_move_top", "title": "Déplacer vers le haut"},
-{"id": "tool_node_clone", "title": "Cloner le nœud"},
-{"id": "tool_node_delete", "title": "Supprimer le nœud"},
-{"id": "tool_node_link", "title": "Rendre les points de contrôle solidaires"},
-{"id": "tool_opacity", "title": "Changer l'opacité de l'élément sélectionné"},
-{"id": "tool_open", "textContent": "Ouvrir une image"},
-{"id": "tool_openclose_path", "title": "Ouvrir/Fermer sous-chemin"},
-{"id": "tool_path", "title": "Outil Chemin"},
-{"id": "tool_position", "title": "Aligner l'élément relativement à la Page"},
-{"id": "tool_rect", "title": "Rectangle"},
-{"id": "tool_redo", "title": "Refaire l'action"},
-{"id": "tool_reorient", "title": "Réorienter le chemin"},
-{"id": "tool_save", "textContent": "Enregistrer l'image"},
-{"id": "tool_select", "title": "Outil de sélection"},
-{"id": "tool_source", "title": "Modifier la source"},
-{"id": "tool_source_cancel", "textContent": "Annuler"},
-{"id": "tool_source_save", "textContent": "Appliquer Modifications"},
-{"id": "tool_square", "title": "Carré"},
-{"id": "tool_text", "title": "Outil Texte"},
-{"id": "tool_topath", "title": "Convertir en chemin"},
-{"id": "tool_undo", "title": "Annuler l'action"},
-{"id": "tool_ungroup", "title": "Dégrouper les éléments"},
-{"id": "tool_wireframe", "title": "Mode Fil de Fer"},
-{"id": "tool_zoom", "title": "Zoom"},
-{"id": "url_notice", "title": "NOTE: Cette image ne peut être incorporée en tant que données. Le contenu affiché sera celui de l'image située à cette adresse"},
-{"id": "zoom_panel", "title": "Changer le niveau de zoom"},
-{"id": "sidepanel_handle", "textContent": "C A L Q U E S", "title": "Tirer vers la gauche/droite pour redimensionner le panneau"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Il y a des erreurs d'analyse syntaxique dans votre code-source SVG.\nRevenir au code-source SVG avant modifications ?", 
-  "QignoreSourceChanges": "Ignorer les modifications faites à la source SVG ?", 
-  "QmoveElemsToLayer": "Déplacer les éléments sélectionnés vers le calque '%s' ?", 
-  "QwantToClear": "Voulez-vous effacer le dessin ?\nL'historique de vos actions sera également effacé !", 
-  "cancel": "Annuler", 
-  "defsFailOnSave": "NOTE : À cause d'un bug de votre navigateur, cette image peut être affichée de façon incorrecte (dégradés ou éléments manquants). Cependant, une fois enregistrée, elle sera correcte.", 
-  "dupeLayerName": "Il existe déjà un calque de ce nom !", 
-  "enterNewImgURL": "Entrer la nouvelle URL de l'image", 
-  "enterNewLayerName": "Veuillez entrer le nouveau nom du calque", 
-  "enterUniqueLayerName": "Veuillez entrer un nom (unique) pour le calque", 
-  "exportNoBlur": "Les éléments ayant du flou gaussien seront affichés sans flou", 
-  "exportNoDashArray": "Les contours seront affichés remplis", 
-  "exportNoImage": "Les éléments Image ne seront pas affichés", 
-  "exportNoText": "Le texte peut être affiché de façon incorrecte", 
-  "exportNoforeignObject": "Les éléments foreignObject se seront pas affichés", 
-  "featNotSupported": "Fonction non supportée", 
-  "invalidAttrValGiven": "Valeur fournie invalide", 
-  "key_backspace": "Suppr.", 
-  "key_del": "Retour Arr.", 
-  "key_down": "Bas", 
-  "key_up": "Haut", 
-  "layer": "Calque", 
-  "layerHasThatName": "Le calque porte déjà ce nom", 
-  "loadingImage": "Chargement de l'image, veuillez patienter...", 
-  "noContentToFitTo": "Il n'y a pas de contenu auquel ajuster", 
-  "noteTheseIssues": "Notez également les problèmes suivants : ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Glisser-déposer le point de contrôle pour ajuster les propriétés de la courbe", 
-  "pathNodeTooltip": "Glisser-déposer le nœud pour le déplacer. Double-cliquer le nœud pour changer de type de segment", 
-  "saveFromBrowser": "Selectionner \"Enregistrer sous...\" dans votre navigateur pour sauvegarder l'image en tant que fichier %s."
- }
-}
-]
+svgEditor.readLang({
+	lang: "fr",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "Annuler",
+		"key_backspace": "Suppr.", 
+		"key_del": "Retour Arr.", 
+		"key_down": "Bas", 
+		"key_up": "Haut", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Montrer/Cacher plus d'outils de Contour",
+		"palette_info": "Cliquer pour changer la couleur de remplissage, Shift-Clic pour changer la couleur de contour",
+		"zoom_level": "Changer le niveau de zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identifier l'élément",
+		"fill_color": "Changer la couleur de remplissage",
+		"stroke_color": "Changer la couleur du contour",
+		"stroke_style": "Changer le style du contour",
+		"stroke_width": "Changer la largeur du contour de 1, Shift-Click pour changer la largeur de 0.1",
+		"pos_x": "Changer la position horizontale X",
+		"pos_y": "Changer la position verticale Y",
+		"linecap_butt": "Terminaison : Sur le nœud",
+		"linecap_round": "Terminaison : Arrondie",
+		"linecap_square": "Terminaison : Carrée",
+		"linejoin_bevel": "Raccord : Biseauté",
+		"linejoin_miter": "Raccord : Droit",
+		"linejoin_round": "Raccord : Arrondi",
+		"angle": "Changer l'angle de rotation",
+		"blur": "Changer la valeur du flou gaussien",
+		"opacity": "Changer l'opacité de l'élément sélectionné",
+		"circle_cx": "Changer la position horizontale cx du cercle",
+		"circle_cy": "Changer la position verticale cy du cercle",
+		"circle_r": "Changer le rayon du cercle",
+		"ellipse_cx": "Changer la position horizontale cx de l'ellipse",
+		"ellipse_cy": "Changer la position verticale cy de l'ellipse",
+		"ellipse_rx": "Changer le rayon horizontal x de l'ellipse",
+		"ellipse_ry": "Changer le rayon vertical y de l'ellipse",
+		"line_x1": "Changer la position horizontale x de début de la ligne",
+		"line_x2": "Changer la position horizontale x de fin de la ligne",
+		"line_y1": "Changer la position verticale y de début de la ligne",
+		"line_y2": "Changer la position verticale y de fin de la ligne",
+		"rect_height": "Changer la hauteur du rectangle",
+		"rect_width": "Changer la largeur du rectangle",
+		"corner_radius": "Changer le rayon des coins du rectangle",
+		"image_width": "Changer la largeur de l'image",
+		"image_height": "Changer la hauteur de l'image",
+		"image_url": "Modifier l'URL",
+		"node_x": "Changer la positon horizontale x du nœud",
+		"node_y": "Changer la position verticale y du nœud",
+		"seg_type": "Changer le type du Segment",
+		"straight_segments": "Droit",
+		"curve_segments": "Courbe",
+		"text_contents": "Changer le contenu du texte",
+		"font_family": "Changer la famille de police",
+		"font_size": "Changer la taille de la police",
+		"bold": "Texte en gras",
+		"italic": "Texte en italique"
+	},
+	tools: { 
+		"main_menu": "Menu principal",
+		"bkgnd_color_opac": "Changer la couleur d'arrière-plan / l'opacité",
+		"connector_no_arrow": "Sans flèches",
+		"fitToContent": "Ajuster au contenu",
+		"fit_to_all": "Ajuster au contenu de tous les calques",
+		"fit_to_canvas": "Ajuster au canevas",
+		"fit_to_layer_content": "Ajuster au contenu du calque",
+		"fit_to_sel": "Ajuster à la sélection",
+		"align_relative_to": "Aligner par rapport à ...",
+		"relativeTo": "Relativement à:",
+		"Page": "Page",
+		"largest_object": "Plus gros objet",
+		"selected_objects": "Objets sélectionnés",
+		"smallest_object": "Plus petit objet",
+		"new_doc": "Nouvelle image",
+		"open_doc": "Ouvrir une image",
+		"export_png": "Exporter au format PNG",
+		"save_doc": "Enregistrer l'image",
+		"import_doc": "Importer un objet SVG",
+		"align_to_page": "Aligner l'élément relativement à la Page",
+		"align_bottom": "Aligner le bas des objets",
+		"align_center": "Centrer verticalement",
+		"align_left": "Aligner les côtés gauches",
+		"align_middle": "Centrer horizontalement",
+		"align_right": "Aligner les côtés droits",
+		"align_top": "Aligner le haut des objets",
+		"mode_select": "Outil de sélection",
+		"mode_fhpath": "Crayon à main levée",
+		"mode_line": "Tracer des lignes",
+		"mode_connect": "Connecter deux objets",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Rectangle main levée",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Cercle",
+		"mode_fhellipse": "Ellipse main levée",
+		"mode_path": "Outil Chemin",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Outil Texte",
+		"mode_image": "Outil Image",
+		"mode_zoom": "Zoom",
+		"mode_eyedropper": "Outil Pipette",
+		"no_embed": "NOTE: Cette image ne peut être incorporée en tant que données. Le contenu affiché sera celui de l'image située à cette adresse",
+		"undo": "Annuler l'action",
+		"redo": "Refaire l'action",
+		"tool_source": "Modifier la source",
+		"wireframe_mode": "Mode Fil de Fer",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Grouper les éléments",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convertir en chemin",
+		"reorient_path": "Réorienter le chemin",
+		"ungroup": "Dégrouper les éléments",
+		"docprops": "Propriétés du document",
+		"imagelib": "Image Library",
+		"move_bottom": "Déplacer vers le bas",
+		"move_top": "Déplacer vers le haut",
+		"node_clone": "Cloner le nœud",
+		"node_delete": "Supprimer le nœud",
+		"node_link": "Rendre les points de contrôle solidaires",
+		"add_subpath": "Ajouter un sous-chemin",
+		"openclose_path": "Ouvrir/Fermer sous-chemin",
+		"source_save": "Appliquer Modifications",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"Retour Arr.": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Calque",
+		"layers": "Layers",
+		"del": "Supprimer le calque",
+		"move_down": "Descendre le calque",
+		"new": "Nouveau calque",
+		"rename": "Renommer le calque",
+		"move_up": "Monter le calque",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Déplacer éléments vers:",
+		"move_selected": "Déplacer les éléments sélectionnés vers un autre calque"
+	},
+	config: {
+		"image_props": "Propriétés de l'Image",
+		"doc_title": "Titre",
+		"doc_dims": "Dimensions du canevas",
+		"included_images": "Images incorporées",
+		"image_opt_embed": "Incorporer les images en tant que données (fichiers locaux)",
+		"image_opt_ref": "Utiliser la référence des images ",
+		"editor_prefs": "Préférences de l'Éditeur",
+		"icon_size": "Taille des icônes",
+		"language": "Langue",
+		"background": "Toile de fond de l'Éditeur",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: La toile de fond n'est pas sauvegardée avec l'image.",
+		"icon_large": "Grande",
+		"icon_medium": "Moyenne",
+		"icon_small": "Petite",
+		"icon_xlarge": "Super-Grande",
+		"select_predefined": "Sélectionner prédéfinis:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Valeur fournie invalide",
+		"noContentToFitTo":"Il n'y a pas de contenu auquel ajuster",
+		"dupeLayerName":"Il existe déjà un calque de ce nom !",
+		"enterUniqueLayerName":"Veuillez entrer un nom (unique) pour le calque",
+		"enterNewLayerName":"Veuillez entrer le nouveau nom du calque",
+		"layerHasThatName":"Le calque porte déjà ce nom",
+		"QmoveElemsToLayer":"Déplacer les éléments sélectionnés vers le calque '%s' ?",
+		"QwantToClear":"Voulez-vous effacer le dessin ?\nL'historique de vos actions sera également effacé !",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Il y a des erreurs d'analyse syntaxique dans votre code-source SVG.\nRevenir au code-source SVG avant modifications ?",
+		"QignoreSourceChanges":"Ignorer les modifications faites à la source SVG ?",
+		"featNotSupported":"Fonction non supportée",
+		"enterNewImgURL":"Entrer la nouvelle URL de l'image",
+		"defsFailOnSave": "NOTE : À cause d'un bug de votre navigateur, cette image peut être affichée de façon incorrecte (dégradés ou éléments manquants). Cependant, une fois enregistrée, elle sera correcte.",
+		"loadingImage":"Chargement de l'image, veuillez patienter...",
+		"saveFromBrowser": "Selectionner \"Enregistrer sous...\" dans votre navigateur pour sauvegarder l'image en tant que fichier %s.",
+		"noteTheseIssues": "Notez également les problèmes suivants : ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.fy.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Útlijne relatyf oan..."},
-{"id": "bkgnd_color", "title": "Eftergrûnkleur/trochsichtigens oanpasse"},
-{"id": "circle_cx", "title": "Feroarje it X-koördinaat fan it middelpunt fan'e sirkel."},
-{"id": "circle_cy", "title": "Feroarje it Y-koördinaat fan it middelpunt fan'e sirkel."},
-{"id": "circle_r", "title": "Feroarje sirkelradius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Hoekeradius oanpasse"},
-{"id": "curve_segments", "textContent": "Bûcht"},
-{"id": "ellipse_cx", "title": "Feroarje it X-koördinaat fan it middelpunt fan'e ellips."},
-{"id": "ellipse_cy", "title": "Feroarje it Y-koördinaat fan it middelpunt fan'e ellips."},
-{"id": "ellipse_rx", "title": "Feroarje ellips X radius"},
-{"id": "ellipse_ry", "title": "Feroarje ellips Y radius"},
-{"id": "fill_color", "title": "Folkleur oanpasse"},
-{"id": "fitToContent", "textContent": "Passe op ynhâld"},
-{"id": "fit_to_all", "textContent": "Op alle ynhâld passe"},
-{"id": "fit_to_canvas", "textContent": "Op kanvas passe"},
-{"id": "fit_to_layer_content", "textContent": "Op laachynhâld passe"},
-{"id": "fit_to_sel", "textContent": "Op seleksje passe"},
-{"id": "font_family", "title": "Lettertype oanpasse"},
-{"id": "icon_large", "textContent": "Grut"},
-{"id": "icon_medium", "textContent": "Middel"},
-{"id": "icon_small", "textContent": "Lyts"},
-{"id": "icon_xlarge", "textContent": "Ekstra grut"},
-{"id": "image_height", "title": "Hichte ôfbielding oanpasse"},
-{"id": "image_opt_embed", "textContent": "Ynformaasje tafoege (lokale triemen)"},
-{"id": "image_opt_ref", "textContent": "Triemreferensje brûke"},
-{"id": "image_url", "title": "URL oanpasse"},
-{"id": "image_width", "title": "Breedte ôfbielding oanpasse"},
-{"id": "includedImages", "textContent": "Ynslúten ôfbieldingen"},
-{"id": "largest_object", "textContent": "Grutste ûnderdiel"},
-{"id": "layer_delete", "title": "Laach fuortsmite"},
-{"id": "layer_down", "title": "Laach omleech bringe"},
-{"id": "layer_new", "title": "Nije laach"},
-{"id": "layer_rename", "title": "Laach omneame"},
-{"id": "layer_up", "title": "Laach omheech bringe"},
-{"id": "layersLabel", "textContent": "Lagen:"},
-{"id": "line_x1", "title": "Feroarje start X koördinaat fan'e line"},
-{"id": "line_x2", "title": "Feroarje ein X koördinaat fan'e line"},
-{"id": "line_y1", "title": "Feroarje start Y koördinaat fan'e line"},
-{"id": "line_y2", "title": "Feroarje ein Y koördinaat fan'e line"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Side"},
-{"id": "palette", "title": "Klik om de folkleur te feroarjen, shift-klik om de linekleur te feroarjen."},
-{"id": "path_node_x", "title": "X-koördinaat knooppunt oanpasse"},
-{"id": "path_node_y", "title": "Y-koördinaat knooppunt oanpasse"},
-{"id": "rect_height_tool", "title": "Hichte rjochthoeke oanpasse"},
-{"id": "rect_width_tool", "title": "Breedte rjochthoeke oanpasse"},
-{"id": "relativeToLabel", "textContent": "Relatief tsjinoer:"},
-{"id": "seg_type", "title": "Segmenttype oanpasse"},
-{"id": "selLayerLabel", "textContent": "Ûnderdielen ferplaate nei:"},
-{"id": "selLayerNames", "title": "Selektearre ûnderdielen ferplaatse nei in oare laach"},
-{"id": "selectedPredefined", "textContent": "Selektearje:"},
-{"id": "selected_objects", "textContent": "Selektearre ûnderdielen"},
-{"id": "selected_x", "title": "X-koördinaat oanpasse"},
-{"id": "selected_y", "title": "Y-koördinaat oanpasse"},
-{"id": "smallest_object", "textContent": "Lytste ûnderdiel"},
-{"id": "straight_segments", "textContent": "Rjocht"},
-{"id": "stroke_color", "title": "Linekleur oanpasse"},
-{"id": "stroke_style", "title": "Linestijl oanpasse"},
-{"id": "stroke_width", "title": "Linebreedte oanpasse"},
-{"id": "svginfo_bg_note", "textContent": "Let op: de eftergrûn wurd net mei de ôfbielding bewarre."},
-{"id": "svginfo_change_background", "textContent": "Eftergrûn bewurker"},
-{"id": "svginfo_dim", "textContent": "Kanvasgrutte"},
-{"id": "svginfo_editor_prefs", "textContent": "Eigenskippen bewurker"},
-{"id": "svginfo_height", "textContent": "Hichte:"},
-{"id": "svginfo_icons", "textContent": "Ikoangrutte"},
-{"id": "svginfo_image_props", "textContent": "Ôfbieldingseigenskippen"},
-{"id": "svginfo_lang", "textContent": "Taal"},
-{"id": "svginfo_title", "textContent": "Titel"},
-{"id": "svginfo_width", "textContent": "Breedte:"},
-{"id": "text", "title": "Tekst oanpasse"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Ûnder útlijne"},
-{"id": "tool_aligncenter", "title": "Midden útlijne"},
-{"id": "tool_alignleft", "title": "Lofts útlijne"},
-{"id": "tool_alignmiddle", "title": "Midden útlijne"},
-{"id": "tool_alignright", "title": "Rjochts útlijne"},
-{"id": "tool_aligntop", "title": "Boppe útlijne"},
-{"id": "tool_angle", "title": "Draaie"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Fet"},
-{"id": "tool_circle", "title": "Sirkel"},
-{"id": "tool_clear", "textContent": "Nije ôfbielding"},
-{"id": "tool_clone", "title": "Ûnderdiel duplisearje"},
-{"id": "tool_clone_multi", "title": "Ûnderdielen duplisearje"},
-{"id": "tool_delete", "title": "Ûnderdiel fuortsmite"},
-{"id": "tool_delete_multi", "title": "Ûnderdielen fuortsmite"},
-{"id": "tool_docprops", "textContent": "Dokuminteigenskippen"},
-{"id": "tool_docprops_cancel", "textContent": "Ôfbrekke"},
-{"id": "tool_docprops_save", "textContent": "Ok"},
-{"id": "tool_ellipse", "title": "Ellips"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Frije ellips"},
-{"id": "tool_fhpath", "title": "Potlead"},
-{"id": "tool_fhrect", "title": "Frije rjochthoeke"},
-{"id": "tool_font_size", "title": "Lettergrutte oanpasse"},
-{"id": "tool_group", "title": "Ûnderdielen groepearje"},
-{"id": "tool_image", "title": "Ôfbielding"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Skean"},
-{"id": "tool_line", "title": "Line"},
-{"id": "tool_move_bottom", "title": "Nei eftergrûn"},
-{"id": "tool_move_top", "title": "Nei foargrûn"},
-{"id": "tool_node_clone", "title": "Knooppunt duplisearje"},
-{"id": "tool_node_delete", "title": "Knooppunt fuortsmite"},
-{"id": "tool_node_link", "title": "Knooppunten keppelje"},
-{"id": "tool_opacity", "title": "Trochsichtigens oanpasse"},
-{"id": "tool_open", "textContent": "Ôfbielding iepenje"},
-{"id": "tool_path", "title": "Paad"},
-{"id": "tool_rect", "title": "Rjochthoeke"},
-{"id": "tool_redo", "title": "Op 'e nij"},
-{"id": "tool_reorient", "title": "Paad opnij orientearje"},
-{"id": "tool_save", "textContent": "Ôfbielding bewarje"},
-{"id": "tool_select", "title": "Selektearje"},
-{"id": "tool_source", "title": "Boarne oanpasse"},
-{"id": "tool_source_cancel", "textContent": "Ôfbrekke"},
-{"id": "tool_source_save", "textContent": "Feroarings tapasse"},
-{"id": "tool_square", "title": "Fjouwerkant"},
-{"id": "tool_text", "title": "Tekst"},
-{"id": "tool_topath", "title": "Omsette nei paad"},
-{"id": "tool_undo", "title": "Ungedien meitjse"},
-{"id": "tool_ungroup", "title": "Groepering opheffe"},
-{"id": "tool_wireframe", "title": "Triemodel"},
-{"id": "tool_zoom", "title": "Zoom"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Yn-/útzoome"},
-{"id": "sidepanel_handle", "textContent": "L a g e n", "title": "Sleep nei links/rjochts om it sidepaniel grutter as lytser te meitjen"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Der wiene flaters yn de SVG-boarne.\nWeromgean nei foarige SVG-boarne?", 
-  "QignoreSourceChanges": "Feroarings yn SVG-boarne negeare?", 
-  "QmoveElemsToLayer": "Selektearre ûnderdielen ferplaatse nei '%s'?", 
-  "QwantToClear": "Ôfbielding leechmeitsje? Dit sil ek de skiednis fuortsmite!", 
-  "cancel": "Ôfbrekke", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "Der is al in laach mei dy namme!", 
-  "enterNewImgURL": "Jou de nije URL", 
-  "enterNewLayerName": "Type in nije laachnamme", 
-  "enterUniqueLayerName": "Type in unyke laachnamme", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Funksje wurdt net ûndersteund", 
-  "invalidAttrValGiven": "Ferkearde waarde jûn", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "omleech", 
-  "key_up": "omheech", 
-  "layer": "Laach", 
-  "layerHasThatName": "Laach hat dy namme al", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "Gjin ynhâld om te passen", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "Ok", 
-  "pathCtrlPtTooltip": "Fersleepje dit knooppunt om de boocheigenskippen oan te passen.", 
-  "pathNodeTooltip": "Fersleepje dit knooppunt as dûbelklik om it segmenttype oan te passen.", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "fy",
+	dir : "ltr",
+	common: {
+		"ok": "Ok",
+		"cancel": "Ôfbrekke",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "omleech", 
+		"key_up": "omheech", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klik om de folkleur te feroarjen, shift-klik om de linekleur te feroarjen.",
+		"zoom_level": "Yn-/útzoome",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Folkleur oanpasse",
+		"stroke_color": "Linekleur oanpasse",
+		"stroke_style": "Linestijl oanpasse",
+		"stroke_width": "Linebreedte oanpasse",
+		"pos_x": "X-koördinaat oanpasse",
+		"pos_y": "Y-koördinaat oanpasse",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Draaie",
+		"blur": "Change gaussian blur value",
+		"opacity": "Trochsichtigens oanpasse",
+		"circle_cx": "Feroarje it X-koördinaat fan it middelpunt fan'e sirkel.",
+		"circle_cy": "Feroarje it Y-koördinaat fan it middelpunt fan'e sirkel.",
+		"circle_r": "Feroarje sirkelradius",
+		"ellipse_cx": "Feroarje it X-koördinaat fan it middelpunt fan'e ellips.",
+		"ellipse_cy": "Feroarje it Y-koördinaat fan it middelpunt fan'e ellips.",
+		"ellipse_rx": "Feroarje ellips X radius",
+		"ellipse_ry": "Feroarje ellips Y radius",
+		"line_x1": "Feroarje start X koördinaat fan'e line",
+		"line_x2": "Feroarje ein X koördinaat fan'e line",
+		"line_y1": "Feroarje start Y koördinaat fan'e line",
+		"line_y2": "Feroarje ein Y koördinaat fan'e line",
+		"rect_height": "Hichte rjochthoeke oanpasse",
+		"rect_width": "Breedte rjochthoeke oanpasse",
+		"corner_radius": "Hoekeradius oanpasse",
+		"image_width": "Breedte ôfbielding oanpasse",
+		"image_height": "Hichte ôfbielding oanpasse",
+		"image_url": "URL oanpasse",
+		"node_x": "X-koördinaat knooppunt oanpasse",
+		"node_y": "Y-koördinaat knooppunt oanpasse",
+		"seg_type": "Segmenttype oanpasse",
+		"straight_segments": "Rjocht",
+		"curve_segments": "Bûcht",
+		"text_contents": "Tekst oanpasse",
+		"font_family": "Lettertype oanpasse",
+		"font_size": "Lettergrutte oanpasse",
+		"bold": "Fet",
+		"italic": "Skean"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Eftergrûnkleur/trochsichtigens oanpasse",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Passe op ynhâld",
+		"fit_to_all": "Op alle ynhâld passe",
+		"fit_to_canvas": "Op kanvas passe",
+		"fit_to_layer_content": "Op laachynhâld passe",
+		"fit_to_sel": "Op seleksje passe",
+		"align_relative_to": "Útlijne relatyf oan...",
+		"relativeTo": "Relatief tsjinoer:",
+		"Side": "Side",
+		"largest_object": "Grutste ûnderdiel",
+		"selected_objects": "Selektearre ûnderdielen",
+		"smallest_object": "Lytste ûnderdiel",
+		"new_doc": "Nije ôfbielding",
+		"open_doc": "Ôfbielding iepenje",
+		"export_png": "Export as PNG",
+		"save_doc": "Ôfbielding bewarje",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Ûnder útlijne",
+		"align_center": "Midden útlijne",
+		"align_left": "Lofts útlijne",
+		"align_middle": "Midden útlijne",
+		"align_right": "Rjochts útlijne",
+		"align_top": "Boppe útlijne",
+		"mode_select": "Selektearje",
+		"mode_fhpath": "Potlead",
+		"mode_line": "Line",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Frije rjochthoeke",
+		"mode_ellipse": "Ellips",
+		"mode_circle": "Sirkel",
+		"mode_fhellipse": "Frije ellips",
+		"mode_path": "Paad",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Tekst",
+		"mode_image": "Ôfbielding",
+		"mode_zoom": "Zoom",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Ungedien meitjse",
+		"redo": "Op 'e nij",
+		"tool_source": "Boarne oanpasse",
+		"wireframe_mode": "Triemodel",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Ûnderdielen groepearje",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Omsette nei paad",
+		"reorient_path": "Paad opnij orientearje",
+		"ungroup": "Groepering opheffe",
+		"docprops": "Dokuminteigenskippen",
+		"imagelib": "Image Library",
+		"move_bottom": "Nei eftergrûn",
+		"move_top": "Nei foargrûn",
+		"node_clone": "Knooppunt duplisearje",
+		"node_delete": "Knooppunt fuortsmite",
+		"node_link": "Knooppunten keppelje",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Feroarings tapasse",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Laach",
+		"layers": "Layers",
+		"del": "Laach fuortsmite",
+		"move_down": "Laach omleech bringe",
+		"new": "Nije laach",
+		"rename": "Laach omneame",
+		"move_up": "Laach omheech bringe",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Ûnderdielen ferplaate nei:",
+		"move_selected": "Selektearre ûnderdielen ferplaatse nei in oare laach"
+	},
+	config: {
+		"image_props": "Ôfbieldingseigenskippen",
+		"doc_title": "Titel",
+		"doc_dims": "Kanvasgrutte",
+		"included_images": "Ynslúten ôfbieldingen",
+		"image_opt_embed": "Ynformaasje tafoege (lokale triemen)",
+		"image_opt_ref": "Triemreferensje brûke",
+		"editor_prefs": "Eigenskippen bewurker",
+		"icon_size": "Ikoangrutte",
+		"language": "Taal",
+		"background": "Eftergrûn bewurker",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Let op: de eftergrûn wurd net mei de ôfbielding bewarre.",
+		"icon_large": "Grut",
+		"icon_medium": "Middel",
+		"icon_small": "Lyts",
+		"icon_xlarge": "Ekstra grut",
+		"select_predefined": "Selektearje:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Ferkearde waarde jûn",
+		"noContentToFitTo":"Gjin ynhâld om te passen",
+		"dupeLayerName":"Der is al in laach mei dy namme!",
+		"enterUniqueLayerName":"Type in unyke laachnamme",
+		"enterNewLayerName":"Type in nije laachnamme",
+		"layerHasThatName":"Laach hat dy namme al",
+		"QmoveElemsToLayer":"Selektearre ûnderdielen ferplaatse nei '%s'?",
+		"QwantToClear":"Ôfbielding leechmeitsje? Dit sil ek de skiednis fuortsmite!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Der wiene flaters yn de SVG-boarne.\nWeromgean nei foarige SVG-boarne?",
+		"QignoreSourceChanges":"Feroarings yn SVG-boarne negeare?",
+		"featNotSupported":"Funksje wurdt net ûndersteund",
+		"enterNewImgURL":"Jou de nije URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 156
main/inc/lib/svg-edit/locale/lang.ga.js

@@ -1,156 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Ailínigh i gcomparáid leis ..."},
-{"id": "angleLabel", "textContent": "uillinn:"},
-{"id": "bkgnd_color", "title": "Dath cúlra Athraigh / teimhneacht"},
-{"id": "circle_cx", "title": "Athraigh an ciorcal a chomhordú CX"},
-{"id": "circle_cy", "title": "Athraigh an ciorcal a chomhordú ga"},
-{"id": "circle_r", "title": "Athraigh an ciorcal&#39;s ga"},
-{"id": "cornerRadiusLabel", "textContent": "Ga Cúinne:"},
-{"id": "cornerRadiusLabel", "title": "Athraigh Dronuilleog Cúinne na Ga"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Athraigh Éilips&#39;s CX a chomhordú"},
-{"id": "ellipse_cy", "title": "Athraigh an Éilips a chomhordú ga"},
-{"id": "ellipse_rx", "title": "Éilips Athraigh an gha x"},
-{"id": "ellipse_ry", "title": "Éilips Athraigh an gha y"},
-{"id": "fill_color", "title": "Athraigh an dath a líonadh"},
-{"id": "fill_tool_bottom", "textContent": "líon:"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Laghdaigh do gach ábhar"},
-{"id": "fit_to_canvas", "textContent": "Laghdaigh ar chanbhás"},
-{"id": "fit_to_layer_content", "textContent": "Laghdaigh shraith ábhar a"},
-{"id": "fit_to_sel", "textContent": "Laghdaigh a roghnú"},
-{"id": "font_family", "title": "Athraigh an Cló Teaghlaigh"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "iheightLabel", "textContent": "airde:"},
-{"id": "image_height", "title": "Airde íomhá Athrú"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Athraigh an URL"},
-{"id": "image_width", "title": "Leithead íomhá Athrú"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "iwidthLabel", "textContent": "leithne:"},
-{"id": "largest_object", "textContent": "réad is mó"},
-{"id": "layer_delete", "title": "Scrios Sraith"},
-{"id": "layer_down", "title": "Bog Sraith Síos"},
-{"id": "layer_new", "title": "Sraith Nua"},
-{"id": "layer_rename", "title": "Athainmnigh Sraith"},
-{"id": "layer_up", "title": "Bog Sraith Suas"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Athraigh an líne tosaigh a chomhordú x"},
-{"id": "line_x2", "title": "Athraigh an líne deireadh x chomhordú"},
-{"id": "line_y1", "title": "Athraigh an líne tosaigh a chomhordú y"},
-{"id": "line_y2", "title": "Athrú ar líne deireadh y chomhordú"},
-{"id": "page", "textContent": "leathanach"},
-{"id": "palette", "title": "Cliceáil chun athrú a líonadh dath, aistriú-cliceáil chun dath a athrú stróc"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Airde dronuilleog Athrú"},
-{"id": "rect_width_tool", "title": "Leithead dronuilleog Athrú"},
-{"id": "relativeToLabel", "textContent": "i gcomparáid leis:"},
-{"id": "rheightLabel", "textContent": "Airde:"},
-{"id": "rwidthLabel", "textContent": "leithead:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Roghnaigh réamhshainithe:"},
-{"id": "selected_objects", "textContent": "réada tofa"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "lú réad"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Dath stróc Athrú"},
-{"id": "stroke_style", "title": "Athraigh an stíl Fleasc stróc"},
-{"id": "stroke_tool_bottom", "textContent": "buille:"},
-{"id": "stroke_width", "title": "Leithead stróc Athrú"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Airde:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Leithne:"},
-{"id": "text", "title": "Inneachar Athraigh téacs"},
-{"id": "tool_alignbottom", "title": "Cineál Bun"},
-{"id": "tool_aligncenter", "title": "Ailínigh sa Lár"},
-{"id": "tool_alignleft", "title": "Ailínigh ar Chlé"},
-{"id": "tool_alignmiddle", "title": "Cineál Middle"},
-{"id": "tool_alignright", "title": "Ailínigh ar Dheis"},
-{"id": "tool_aligntop", "title": "Cineál Barr"},
-{"id": "tool_angle", "title": "Uillinn rothlaithe Athrú"},
-{"id": "tool_bold", "title": "Trom Téacs"},
-{"id": "tool_circle", "title": "Ciorcal"},
-{"id": "tool_clear", "textContent": "Íomhá Nua"},
-{"id": "tool_clone", "title": "Eilimint Chlónála"},
-{"id": "tool_clone_multi", "title": "Eilimintí Chlónála"},
-{"id": "tool_delete", "title": "Scrios Eilimint"},
-{"id": "tool_delete_multi", "title": "Eilimintí Roghnaithe Scrios [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Doiciméad Airíonna"},
-{"id": "tool_docprops_cancel", "textContent": "Cealaigh"},
-{"id": "tool_docprops_save", "textContent": "Sábháil"},
-{"id": "tool_ellipse", "title": "Éilips"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Phionsail Uirlis"},
-{"id": "tool_fhrect", "title": "Saor Hand Dronuilleog"},
-{"id": "tool_font_size", "title": "Athraigh Clómhéid"},
-{"id": "tool_group", "title": "Eilimintí Grúpa"},
-{"id": "tool_image", "title": "Íomhá Uirlis"},
-{"id": "tool_italic", "title": "Iodálach Téacs"},
-{"id": "tool_line", "title": "Uirlis Líne"},
-{"id": "tool_move_bottom", "title": "Téigh go Bun"},
-{"id": "tool_move_top", "title": "Téigh go Barr"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Athraigh roghnaithe teimhneacht mír"},
-{"id": "tool_open", "textContent": "Íomhá Oscailte"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Dronuilleog"},
-{"id": "tool_redo", "title": "Athdhéan"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Sábháil Íomhá"},
-{"id": "tool_select", "title": "Roghnaigh Uirlis"},
-{"id": "tool_source", "title": "Cuir Foinse"},
-{"id": "tool_source_cancel", "textContent": "Cealaigh"},
-{"id": "tool_source_save", "textContent": "Sábháil"},
-{"id": "tool_square", "title": "Cearnóg"},
-{"id": "tool_text", "title": "Téacs Uirlis"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Cealaigh"},
-{"id": "tool_ungroup", "title": "Eilimintí Díghrúpáil"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zúmáil Uirlis"},
-{"id": "zoomLabel", "textContent": "súmáil isteach:"},
-{"id": "zoom_panel", "title": "Athraigh súmáil leibhéal"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "noContentToFitTo": "No content to fit to", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type"
- }
-}
-]
+svgEditor.readLang({
+	lang: "ga",
+	dir : "ltr",
+	common: {
+		"ok": "Sábháil",
+		"cancel": "Cealaigh",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Cliceáil chun athrú a líonadh dath, aistriú-cliceáil chun dath a athrú stróc",
+		"zoom_level": "Athraigh súmáil leibhéal",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Athraigh an dath a líonadh",
+		"stroke_color": "Dath stróc Athrú",
+		"stroke_style": "Athraigh an stíl Fleasc stróc",
+		"stroke_width": "Leithead stróc Athrú",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Uillinn rothlaithe Athrú",
+		"blur": "Change gaussian blur value",
+		"opacity": "Athraigh roghnaithe teimhneacht mír",
+		"circle_cx": "Athraigh an ciorcal a chomhordú CX",
+		"circle_cy": "Athraigh an ciorcal a chomhordú ga",
+		"circle_r": "Athraigh an ciorcal&#39;s ga",
+		"ellipse_cx": "Athraigh Éilips&#39;s CX a chomhordú",
+		"ellipse_cy": "Athraigh an Éilips a chomhordú ga",
+		"ellipse_rx": "Éilips Athraigh an gha x",
+		"ellipse_ry": "Éilips Athraigh an gha y",
+		"line_x1": "Athraigh an líne tosaigh a chomhordú x",
+		"line_x2": "Athraigh an líne deireadh x chomhordú",
+		"line_y1": "Athraigh an líne tosaigh a chomhordú y",
+		"line_y2": "Athrú ar líne deireadh y chomhordú",
+		"rect_height": "Airde dronuilleog Athrú",
+		"rect_width": "Leithead dronuilleog Athrú",
+		"corner_radius": "Athraigh Dronuilleog Cúinne na Ga",
+		"image_width": "Leithead íomhá Athrú",
+		"image_height": "Airde íomhá Athrú",
+		"image_url": "Athraigh an URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Inneachar Athraigh téacs",
+		"font_family": "Athraigh an Cló Teaghlaigh",
+		"font_size": "Athraigh Clómhéid",
+		"bold": "Trom Téacs",
+		"italic": "Iodálach Téacs"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Dath cúlra Athraigh / teimhneacht",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Laghdaigh do gach ábhar",
+		"fit_to_canvas": "Laghdaigh ar chanbhás",
+		"fit_to_layer_content": "Laghdaigh shraith ábhar a",
+		"fit_to_sel": "Laghdaigh a roghnú",
+		"align_relative_to": "Ailínigh i gcomparáid leis ...",
+		"relativeTo": "i gcomparáid leis:",
+		"leathanach": "leathanach",
+		"largest_object": "réad is mó",
+		"selected_objects": "réada tofa",
+		"smallest_object": "lú réad",
+		"new_doc": "Íomhá Nua",
+		"open_doc": "Íomhá Oscailte",
+		"export_png": "Export as PNG",
+		"save_doc": "Sábháil Íomhá",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Cineál Bun",
+		"align_center": "Ailínigh sa Lár",
+		"align_left": "Ailínigh ar Chlé",
+		"align_middle": "Cineál Middle",
+		"align_right": "Ailínigh ar Dheis",
+		"align_top": "Cineál Barr",
+		"mode_select": "Roghnaigh Uirlis",
+		"mode_fhpath": "Phionsail Uirlis",
+		"mode_line": "Uirlis Líne",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Saor Hand Dronuilleog",
+		"mode_ellipse": "Éilips",
+		"mode_circle": "Ciorcal",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Téacs Uirlis",
+		"mode_image": "Íomhá Uirlis",
+		"mode_zoom": "Zúmáil Uirlis",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Cealaigh",
+		"redo": "Athdhéan",
+		"tool_source": "Cuir Foinse",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Eilimintí Grúpa",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Eilimintí Díghrúpáil",
+		"docprops": "Doiciméad Airíonna",
+		"imagelib": "Image Library",
+		"move_bottom": "Téigh go Bun",
+		"move_top": "Téigh go Barr",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Sábháil",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Scrios Sraith",
+		"move_down": "Bog Sraith Síos",
+		"new": "Sraith Nua",
+		"rename": "Athainmnigh Sraith",
+		"move_up": "Bog Sraith Suas",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Roghnaigh réamhshainithe:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.gl.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Aliñar en relación a ..."},
-{"id": "bkgnd_color", "title": "Mudar a cor de fondo / Opacidade"},
-{"id": "circle_cx", "title": "Cx Cambiar círculo de coordenadas"},
-{"id": "circle_cy", "title": "Círculo Cambio cy coordinar"},
-{"id": "circle_r", "title": "Cambiar círculo de raio"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Cambiar Corner Rectangle Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Cambiar elipse cx coordinar"},
-{"id": "ellipse_cy", "title": "Elipse Cambio cy coordinar"},
-{"id": "ellipse_rx", "title": "Raios X Change elipse"},
-{"id": "ellipse_ry", "title": "Radio y Change elipse"},
-{"id": "fill_color", "title": "Cambia-la cor de recheo"},
-{"id": "fitToContent", "textContent": "Axustar ó contido"},
-{"id": "fit_to_all", "textContent": "Axustar a todo o contido"},
-{"id": "fit_to_canvas", "textContent": "Axustar a pantalla"},
-{"id": "fit_to_layer_content", "textContent": "Axustar o contido da capa de"},
-{"id": "fit_to_sel", "textContent": "Axustar a selección"},
-{"id": "font_family", "title": "Cambiar fonte Familia"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Cambiar altura da imaxe"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Cambiar URL"},
-{"id": "image_width", "title": "Cambiar o ancho da imaxe"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "maior obxecto"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move capa inferior"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Capas:"},
-{"id": "line_x1", "title": "Cambie a liña de partida coordenada x"},
-{"id": "line_x2", "title": "Cambie a liña acaba coordenada x"},
-{"id": "line_y1", "title": "Cambio na liña do recurso coordinada y"},
-{"id": "line_y2", "title": "Salto de liña acaba coordinada y"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Portada"},
-{"id": "palette", "title": "Preme aquí para cambiar a cor de recheo, Shift-clic para cambiar a cor do curso"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Cambiar altura do rectángulo"},
-{"id": "rect_width_tool", "title": "Cambiar a largo rectángulo"},
-{"id": "relativeToLabel", "textContent": "en relación ao:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Seleccione por defecto:"},
-{"id": "selected_objects", "textContent": "obxectos elixidos"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "menor obxecto"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Cambiar a cor do curso"},
-{"id": "stroke_style", "title": "Modifica o estilo do trazo do curso"},
-{"id": "stroke_width", "title": "Cambiar o ancho do curso"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Altura:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Ancho:"},
-{"id": "text", "title": "Cambiar o contido de texto"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align bottom"},
-{"id": "tool_aligncenter", "title": "Centrar"},
-{"id": "tool_alignleft", "title": "Aliñar á Esquerda"},
-{"id": "tool_alignmiddle", "title": "Aliñar Medio"},
-{"id": "tool_alignright", "title": "Aliñar á Dereita"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Cambiar o ángulo de xiro"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "Nova Imaxe"},
-{"id": "tool_clone", "title": "Clon Element"},
-{"id": "tool_clone_multi", "title": "Elementos Clon"},
-{"id": "tool_delete", "title": "Eliminar Elemento"},
-{"id": "tool_delete_multi", "title": "Eliminar elementos seleccionados"},
-{"id": "tool_docprops", "textContent": "Propriedades do Documento"},
-{"id": "tool_docprops_cancel", "textContent": "Cancelar"},
-{"id": "tool_docprops_save", "textContent": "Gardar"},
-{"id": "tool_ellipse", "title": "Elipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Ferramenta Lapis"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "Mudar tamaño de letra"},
-{"id": "tool_group", "title": "Elementos do grupo"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Texto en cursiva"},
-{"id": "tool_line", "title": "Ferramenta Liña"},
-{"id": "tool_move_bottom", "title": "Move a Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Cambia a opacidade elemento seleccionado"},
-{"id": "tool_open", "textContent": "Abrir Imaxe"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rectángulo"},
-{"id": "tool_redo", "title": "Volver"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Gardar Imaxe"},
-{"id": "tool_select", "title": "Seleccionar a ferramenta"},
-{"id": "tool_source", "title": "Fonte Editar"},
-{"id": "tool_source_cancel", "textContent": "Cancelar"},
-{"id": "tool_source_save", "textContent": "Gardar"},
-{"id": "tool_square", "title": "Cadrado"},
-{"id": "tool_text", "title": "Ferramenta de Texto"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Desfacer"},
-{"id": "tool_ungroup", "title": "Elementos Desagrupadas"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Cambiar o nivel de zoom"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "gl",
+	dir : "ltr",
+	common: {
+		"ok": "Gardar",
+		"cancel": "Cancelar",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Preme aquí para cambiar a cor de recheo, Shift-clic para cambiar a cor do curso",
+		"zoom_level": "Cambiar o nivel de zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Cambia-la cor de recheo",
+		"stroke_color": "Cambiar a cor do curso",
+		"stroke_style": "Modifica o estilo do trazo do curso",
+		"stroke_width": "Cambiar o ancho do curso",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Cambiar o ángulo de xiro",
+		"blur": "Change gaussian blur value",
+		"opacity": "Cambia a opacidade elemento seleccionado",
+		"circle_cx": "Cx Cambiar círculo de coordenadas",
+		"circle_cy": "Círculo Cambio cy coordinar",
+		"circle_r": "Cambiar círculo de raio",
+		"ellipse_cx": "Cambiar elipse cx coordinar",
+		"ellipse_cy": "Elipse Cambio cy coordinar",
+		"ellipse_rx": "Raios X Change elipse",
+		"ellipse_ry": "Radio y Change elipse",
+		"line_x1": "Cambie a liña de partida coordenada x",
+		"line_x2": "Cambie a liña acaba coordenada x",
+		"line_y1": "Cambio na liña do recurso coordinada y",
+		"line_y2": "Salto de liña acaba coordinada y",
+		"rect_height": "Cambiar altura do rectángulo",
+		"rect_width": "Cambiar a largo rectángulo",
+		"corner_radius": "Cambiar Corner Rectangle Radius",
+		"image_width": "Cambiar o ancho da imaxe",
+		"image_height": "Cambiar altura da imaxe",
+		"image_url": "Cambiar URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Cambiar o contido de texto",
+		"font_family": "Cambiar fonte Familia",
+		"font_size": "Mudar tamaño de letra",
+		"bold": "Bold Text",
+		"italic": "Texto en cursiva"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Mudar a cor de fondo / Opacidade",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Axustar ó contido",
+		"fit_to_all": "Axustar a todo o contido",
+		"fit_to_canvas": "Axustar a pantalla",
+		"fit_to_layer_content": "Axustar o contido da capa de",
+		"fit_to_sel": "Axustar a selección",
+		"align_relative_to": "Aliñar en relación a ...",
+		"relativeTo": "en relación ao:",
+		"Portada": "Portada",
+		"largest_object": "maior obxecto",
+		"selected_objects": "obxectos elixidos",
+		"smallest_object": "menor obxecto",
+		"new_doc": "Nova Imaxe",
+		"open_doc": "Abrir Imaxe",
+		"export_png": "Export as PNG",
+		"save_doc": "Gardar Imaxe",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align bottom",
+		"align_center": "Centrar",
+		"align_left": "Aliñar á Esquerda",
+		"align_middle": "Aliñar Medio",
+		"align_right": "Aliñar á Dereita",
+		"align_top": "Align Top",
+		"mode_select": "Seleccionar a ferramenta",
+		"mode_fhpath": "Ferramenta Lapis",
+		"mode_line": "Ferramenta Liña",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Elipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Ferramenta de Texto",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Desfacer",
+		"redo": "Volver",
+		"tool_source": "Fonte Editar",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Elementos do grupo",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Elementos Desagrupadas",
+		"docprops": "Propriedades do Documento",
+		"imagelib": "Image Library",
+		"move_bottom": "Move a Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Gardar",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move capa inferior",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Seleccione por defecto:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.he.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "יישור ביחס ..."},
-{"id": "bkgnd_color", "title": "שנה את צבע הרקע / אטימות"},
-{"id": "circle_cx", "title": "CX מעגל של שנה לתאם"},
-{"id": "circle_cy", "title": "מעגל שנה של cy לתאם"},
-{"id": "circle_r", "title": "מעגל שנה של רדיוס"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "לשנות מלבן פינת רדיוס"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "שינוי של אליפסה CX לתאם"},
-{"id": "ellipse_cy", "title": "אליפסה שינוי של cy לתאם"},
-{"id": "ellipse_rx", "title": "אליפסה שינוי של רדיוס x"},
-{"id": "ellipse_ry", "title": "אליפסה שינוי של Y רדיוס"},
-{"id": "fill_color", "title": "שינוי צבע מילוי"},
-{"id": "fitToContent", "textContent": "התאם תוכן"},
-{"id": "fit_to_all", "textContent": "התאם התכנים"},
-{"id": "fit_to_canvas", "textContent": "התאם בד"},
-{"id": "fit_to_layer_content", "textContent": "מתאים לתוכן שכבת"},
-{"id": "fit_to_sel", "textContent": "התאם הבחירה"},
-{"id": "font_family", "title": "שינוי גופן משפחה"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "שינוי גובה התמונה"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "שינוי כתובת"},
-{"id": "image_width", "title": "שינוי רוחב התמונה"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "האובייקט הגדול"},
-{"id": "layer_delete", "title": "מחיקת שכבה"},
-{"id": "layer_down", "title": "הזז למטה שכבה"},
-{"id": "layer_new", "title": "שכבהחדשה"},
-{"id": "layer_rename", "title": "שינוי שם שכבה"},
-{"id": "layer_up", "title": "העבר שכבה Up"},
-{"id": "layersLabel", "textContent": "שכבות:"},
-{"id": "line_x1", "title": "שינוי קו ההתחלה של x לתאם"},
-{"id": "line_x2", "title": "שינוי קו הסיום של x לתאם"},
-{"id": "line_y1", "title": "שינוי קו ההתחלה של Y לתאם"},
-{"id": "line_y2", "title": "שינוי קו הסיום של Y לתאם"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "דף"},
-{"id": "palette", "title": "לחץ כדי לשנות צבע מילוי, לחץ על Shift-לשנות צבע שבץ"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "שינוי גובה המלבן"},
-{"id": "rect_width_tool", "title": "שינוי רוחב המלבן"},
-{"id": "relativeToLabel", "textContent": "יחסית:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "בחר מוגדרים מראש:"},
-{"id": "selected_objects", "textContent": "elected objects"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "הקטן אובייקט"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "שינוי צבע שבץ"},
-{"id": "stroke_style", "title": "דש שבץ שינוי סגנון"},
-{"id": "stroke_width", "title": "שינוי רוחב שבץ"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "גובה:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "רוחב:"},
-{"id": "text", "title": "שינוי תוכן טקסט"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "יישור תחתון"},
-{"id": "tool_aligncenter", "title": "ישור לאמצע"},
-{"id": "tool_alignleft", "title": "יישור לשמאל"},
-{"id": "tool_alignmiddle", "title": "יישור התיכון"},
-{"id": "tool_alignright", "title": "יישור לימין"},
-{"id": "tool_aligntop", "title": "יישור למעלה"},
-{"id": "tool_angle", "title": "שינוי זווית הסיבוב"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "טקסט מודגש"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "תמונה חדשה"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "אלמנטים המשובטים"},
-{"id": "tool_delete", "title": "מחיקת אלמנט"},
-{"id": "tool_delete_multi", "title": "אלמנטים נבחרים מחק"},
-{"id": "tool_docprops", "textContent": "מאפייני מסמך"},
-{"id": "tool_docprops_cancel", "textContent": "ביטול"},
-{"id": "tool_docprops_save", "textContent": "לשמור"},
-{"id": "tool_ellipse", "title": "אליפסה"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand אליפסה"},
-{"id": "tool_fhpath", "title": "כלי העיפרון"},
-{"id": "tool_fhrect", "title": "Free-Hand מלבן"},
-{"id": "tool_font_size", "title": "שנה גודל גופן"},
-{"id": "tool_group", "title": "אלמנטים הקבוצה"},
-{"id": "tool_image", "title": "כלי תמונה"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "טקסט נטוי"},
-{"id": "tool_line", "title": "כלי הקו"},
-{"id": "tool_move_bottom", "title": "הזז למטה"},
-{"id": "tool_move_top", "title": "עבור לראש הדף"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "שינוי הפריט הנבחר אטימות"},
-{"id": "tool_open", "textContent": "פתח תמונה"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "מלבן"},
-{"id": "tool_redo", "title": "בצע שוב"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "שמור תמונה"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "מקור ערוך"},
-{"id": "tool_source_cancel", "textContent": "ביטול"},
-{"id": "tool_source_save", "textContent": "לשמור"},
-{"id": "tool_square", "title": "מרובע"},
-{"id": "tool_text", "title": "כלי טקסט"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "בטל"},
-{"id": "tool_ungroup", "title": "אלמנטים פרק קבוצה"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "זום כלי"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "שינוי גודל תצוגה"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "he",
+	dir : "ltr",
+	common: {
+		"ok": "לשמור",
+		"cancel": "ביטול",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "לחץ כדי לשנות צבע מילוי, לחץ על Shift-לשנות צבע שבץ",
+		"zoom_level": "שינוי גודל תצוגה",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "שינוי צבע מילוי",
+		"stroke_color": "שינוי צבע שבץ",
+		"stroke_style": "דש שבץ שינוי סגנון",
+		"stroke_width": "שינוי רוחב שבץ",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "שינוי זווית הסיבוב",
+		"blur": "Change gaussian blur value",
+		"opacity": "שינוי הפריט הנבחר אטימות",
+		"circle_cx": "CX מעגל של שנה לתאם",
+		"circle_cy": "מעגל שנה של cy לתאם",
+		"circle_r": "מעגל שנה של רדיוס",
+		"ellipse_cx": "שינוי של אליפסה CX לתאם",
+		"ellipse_cy": "אליפסה שינוי של cy לתאם",
+		"ellipse_rx": "אליפסה שינוי של רדיוס x",
+		"ellipse_ry": "אליפסה שינוי של Y רדיוס",
+		"line_x1": "שינוי קו ההתחלה של x לתאם",
+		"line_x2": "שינוי קו הסיום של x לתאם",
+		"line_y1": "שינוי קו ההתחלה של Y לתאם",
+		"line_y2": "שינוי קו הסיום של Y לתאם",
+		"rect_height": "שינוי גובה המלבן",
+		"rect_width": "שינוי רוחב המלבן",
+		"corner_radius": "לשנות מלבן פינת רדיוס",
+		"image_width": "שינוי רוחב התמונה",
+		"image_height": "שינוי גובה התמונה",
+		"image_url": "שינוי כתובת",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "שינוי תוכן טקסט",
+		"font_family": "שינוי גופן משפחה",
+		"font_size": "שנה גודל גופן",
+		"bold": "טקסט מודגש",
+		"italic": "טקסט נטוי"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "שנה את צבע הרקע / אטימות",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "התאם תוכן",
+		"fit_to_all": "התאם התכנים",
+		"fit_to_canvas": "התאם בד",
+		"fit_to_layer_content": "מתאים לתוכן שכבת",
+		"fit_to_sel": "התאם הבחירה",
+		"align_relative_to": "יישור ביחס ...",
+		"relativeTo": "יחסית:",
+		"דף": "דף",
+		"largest_object": "האובייקט הגדול",
+		"selected_objects": "elected objects",
+		"smallest_object": "הקטן אובייקט",
+		"new_doc": "תמונה חדשה",
+		"open_doc": "פתח תמונה",
+		"export_png": "Export as PNG",
+		"save_doc": "שמור תמונה",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "יישור תחתון",
+		"align_center": "ישור לאמצע",
+		"align_left": "יישור לשמאל",
+		"align_middle": "יישור התיכון",
+		"align_right": "יישור לימין",
+		"align_top": "יישור למעלה",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "כלי העיפרון",
+		"mode_line": "כלי הקו",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand מלבן",
+		"mode_ellipse": "אליפסה",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand אליפסה",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "כלי טקסט",
+		"mode_image": "כלי תמונה",
+		"mode_zoom": "זום כלי",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "בטל",
+		"redo": "בצע שוב",
+		"tool_source": "מקור ערוך",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "אלמנטים הקבוצה",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "אלמנטים פרק קבוצה",
+		"docprops": "מאפייני מסמך",
+		"imagelib": "Image Library",
+		"move_bottom": "הזז למטה",
+		"move_top": "עבור לראש הדף",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "לשמור",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "מחיקת שכבה",
+		"move_down": "הזז למטה שכבה",
+		"new": "שכבהחדשה",
+		"rename": "שינוי שם שכבה",
+		"move_up": "העבר שכבה Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "בחר מוגדרים מראש:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 174
main/inc/lib/svg-edit/locale/lang.hi.js

@@ -1,174 +1,234 @@
-[
-{"id": "align_relative_to", "title": "संरेखित करें रिश्तेदार को ..."},
-{"id": "bkgnd_color", "title": "पृष्ठभूमि का रंग बदल / अस्पष्टता"},
-{"id": "circle_cx", "title": "बदल रहा है चक्र cx समन्वय"},
-{"id": "circle_cy", "title": "परिवर्तन चक्र cy समन्वय है"},
-{"id": "circle_r", "title": "बदल रहा है चक्र त्रिज्या"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "कोने का रेडियस"},
-{"id": "cornerRadiusLabel", "title": "बदलें आयत कॉर्नर त्रिज्या"},
-{"id": "curve_segments", "textContent": "घुमाव"},
-{"id": "ellipse_cx", "title": "बदलें दीर्घवृत्त है cx समन्वय"},
-{"id": "ellipse_cy", "title": "बदलें दीर्घवृत्त cy समन्वय है"},
-{"id": "ellipse_rx", "title": "बदल रहा है दीर्घवृत्त x त्रिज्या"},
-{"id": "ellipse_ry", "title": "बदल रहा है दीर्घवृत्त y त्रिज्या"},
-{"id": "fill_color", "title": "बदलें का रंग भरना"},
-{"id": "fitToContent", "textContent": "सामग्री के लिए फिट"},
-{"id": "fit_to_all", "textContent": "सभी सामग्री के लिए फिट"},
-{"id": "fit_to_canvas", "textContent": "फिट कैनवास को"},
-{"id": "fit_to_layer_content", "textContent": "फिट परत सामग्री के लिए"},
-{"id": "fit_to_sel", "textContent": "चयन के लिए फिट"},
-{"id": "font_family", "title": "बदलें फ़ॉन्ट परिवार"},
-{"id": "icon_large", "textContent": "बड़ा"},
-{"id": "icon_medium", "textContent": "मध्यम"},
-{"id": "icon_small", "textContent": "छोटा"},
-{"id": "icon_xlarge", "textContent": "बहुत बड़ा"},
-{"id": "image_height", "title": "बदलें छवि ऊँचाई"},
-{"id": "image_opt_embed", "textContent": "एम्बेड डेटा (स्थानीय फ़ाइलें)"},
-{"id": "image_opt_ref", "textContent": "फाइल के संदर्भ का प्रयोग"},
-{"id": "image_url", "title": "बदलें यूआरएल"},
-{"id": "image_width", "title": "बदलें छवि चौड़ाई"},
-{"id": "includedImages", "textContent": "शामिल छवियाँ"},
-{"id": "largest_object", "textContent": "सबसे बड़ी वस्तु"},
-{"id": "layer_delete", "title": "परत हटाएँ"},
-{"id": "layer_down", "title": "परत नीचे ले जाएँ"},
-{"id": "layer_new", "title": "नई परत"},
-{"id": "layer_rename", "title": "परत का नाम बदलें"},
-{"id": "layer_up", "title": "परत ऊपर ले जाएँ"},
-{"id": "layersLabel", "textContent": "परतें:"},
-{"id": "line_x1", "title": "बदल रहा है लाइन x समन्वय शुरू"},
-{"id": "line_x2", "title": "बदल रहा है लाइन x समन्वय समाप्त"},
-{"id": "line_y1", "title": "बदलें रेखा y शुरू हो रहा है समन्वय"},
-{"id": "line_y2", "title": "बदलें रेखा y अंत है समन्वय"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "पृष्ठ"},
-{"id": "palette", "title": "रंग बदलने पर क्लिक करें, बदलाव भरने के क्लिक करने के लिए स्ट्रोक का रंग बदलने के लिए"},
-{"id": "path_node_x", "title": "नोड का x समकक्ष बदलें"},
-{"id": "path_node_y", "title": "नोड का y समकक्ष बदलें"},
-{"id": "rect_height_tool", "title": "बदलें आयत ऊंचाई"},
-{"id": "rect_width_tool", "title": "बदलें आयत चौड़ाई"},
-{"id": "relativeToLabel", "textContent": "रिश्तेदार को:"},
-{"id": "seg_type", "title": "वर्ग प्रकार बदलें"},
-{"id": "selLayerLabel", "textContent": "अंश को ले जाएँ:"},
-{"id": "selLayerNames", "title": "चयनित अंश को दूसरी परत पर  ले जाएँ"},
-{"id": "selectedPredefined", "textContent": "चुनें पूर्वनिर्धारित:"},
-{"id": "selected_objects", "textContent": "निर्वाचित वस्तुओं"},
-{"id": "selected_x", "title": "X समकक्ष बदलें "},
-{"id": "selected_y", "title": "Y समकक्ष बदलें"},
-{"id": "smallest_object", "textContent": "छोटी से छोटी वस्तु"},
-{"id": "straight_segments", "textContent": "सीधे वर्ग"},
-{"id": "stroke_color", "title": "बदलें स्ट्रोक रंग"},
-{"id": "stroke_style", "title": "बदलें स्ट्रोक डेश शैली"},
-{"id": "stroke_width", "title": "बदलें स्ट्रोक चौड़ाई"},
-{"id": "svginfo_bg_note", "textContent": "नोट: पृष्ठभूमि छवि के साथ नहीं बचायी जाएगी"},
-{"id": "svginfo_change_background", "textContent": "संपादक पृष्ठभूमि"},
-{"id": "svginfo_dim", "textContent": "कैनवास आयाम"},
-{"id": "svginfo_editor_prefs", "textContent": "संपादक वरीयताएँ"},
-{"id": "svginfo_height", "textContent": "ऊँचाई:"},
-{"id": "svginfo_icons", "textContent": "चिह्न का आकार"},
-{"id": "svginfo_image_props", "textContent": "छवि के गुण"},
-{"id": "svginfo_lang", "textContent": "भाषा"},
-{"id": "svginfo_title", "textContent": "शीर्षक"},
-{"id": "svginfo_width", "textContent": "चौड़ाई:"},
-{"id": "text", "title": "बदलें पाठ सामग्री"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "तलमेंपंक्तिबद्धकरें"},
-{"id": "tool_aligncenter", "title": "मध्य में समंजित करें"},
-{"id": "tool_alignleft", "title": " पंक्तिबद्ध करें"},
-{"id": "tool_alignmiddle", "title": "मध्य संरेखित करें"},
-{"id": "tool_alignright", "title": "दायाँपंक्तिबद्धकरें"},
-{"id": "tool_aligntop", "title": "शीर्षमेंपंक्तिबद्धकरें"},
-{"id": "tool_angle", "title": "बदलें रोटेशन कोण"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "मोटा पाठ"},
-{"id": "tool_circle", "title": "वृत्त"},
-{"id": "tool_clear", "textContent": "नई छवि"},
-{"id": "tool_clone", "title": "क्लोन अंश"},
-{"id": "tool_clone_multi", "title": "क्लोन अंश को"},
-{"id": "tool_delete", "title": "हटाएँ "},
-{"id": "tool_delete_multi", "title": "हटाएँ चयनित अंश"},
-{"id": "tool_docprops", "textContent": "दस्तावेज़ गुण"},
-{"id": "tool_docprops_cancel", "textContent": "रद्द करें"},
-{"id": "tool_docprops_save", "textContent": "बचाना"},
-{"id": "tool_ellipse", "title": "दीर्घवृत्त"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "नि: शुल्क हाथ दीर्घवृत्त"},
-{"id": "tool_fhpath", "title": "पेंसिल उपकरण"},
-{"id": "tool_fhrect", "title": "नि: शुल्क हाथ आयत"},
-{"id": "tool_font_size", "title": "फ़ॉन्ट का आकार बदलें"},
-{"id": "tool_group", "title": "समूह तत्वों"},
-{"id": "tool_image", "title": "छवि उपकरण"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "इटैलिक पाठ"},
-{"id": "tool_line", "title": "लाइन उपकरण"},
-{"id": "tool_move_bottom", "title": "नीचे ले जाएँ"},
-{"id": "tool_move_top", "title": "ऊपर ले जाएँ"},
-{"id": "tool_node_clone", "title": "नोड क्लोन"},
-{"id": "tool_node_delete", "title": "नोड हटायें"},
-{"id": "tool_node_link", "title": "कड़ी नियंत्रण बिंदु"},
-{"id": "tool_opacity", "title": "पारदर्शिता बदलें"},
-{"id": "tool_open", "textContent": "छवि खोलें"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "आयत"},
-{"id": "tool_redo", "title": "फिर से करें"},
-{"id": "tool_reorient", "title": "पथ को नई दिशा दें"},
-{"id": "tool_save", "textContent": "सहेजें छवि"},
-{"id": "tool_select", "title": "उपकरण चुनें"},
-{"id": "tool_source", "title": "स्रोत में बदलाव करें"},
-{"id": "tool_source_cancel", "textContent": "रद्द करें"},
-{"id": "tool_source_save", "textContent": "बचाना"},
-{"id": "tool_square", "title": "वर्ग"},
-{"id": "tool_text", "title": "पाठ उपकरण"},
-{"id": "tool_topath", "title": "पथ में बदलें"},
-{"id": "tool_undo", "title": "पूर्ववत करें"},
-{"id": "tool_ungroup", "title": "अंश को समूह से अलग करें"},
-{"id": "tool_wireframe", "title": "रूपरेखा मोड"},
-{"id": "tool_zoom", "title": "ज़ूम उपकरण"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "बदलें स्तर ज़ूम"},
-{"id": "sidepanel_handle", "textContent": "प र तें", "title": "दायें/बाएं घसीट कर आकार बदलें"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "आपके एस.वी.जी. स्रोत में त्रुटियों थी.\nक्या आप मूल एस.वी.जी स्रोत पर वापिस जाना चाहते हैं?", 
-  "QignoreSourceChanges": "एसवीजी स्रोत से लाये बदलावों को ध्यान न दें?", 
-  "QmoveElemsToLayer": "चयनित अंश को परत '%s' पर ले जाएँ ?", 
-  "QwantToClear": "क्या आप छवि साफ़ करना चाहते हैं?\nयह आपके उन्डू  इतिहास को भी मिटा देगा!", 
-  "cancel": "रद्द करें", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "इस नाम कि परत पहले से मौजूद है !", 
-  "enterNewImgURL": "नई छवि URL दर्ज करें", 
-  "enterNewLayerName": "कृपया परत का एक नया नाम डालें", 
-  "enterUniqueLayerName": "कृपया परत का एक अद्वितीय नाम डालें", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "सुविधा असमर्थित है", 
-  "invalidAttrValGiven": "अमान्य मूल्य", 
-  "key_backspace": "बैकस्पेस", 
-  "key_del": "हटायें", 
-  "key_down": "नीचे", 
-  "key_up": "ऊपर", 
-  "layer": "परत", 
-  "layerHasThatName": "परत का पहले से ही यही नाम है", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "कोई सामग्री फिट करने के लिए उपलब्ध नहीं", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "ठीक", 
-  "pathCtrlPtTooltip": "नियंत्रण बिंदु को खींचें, घुमाव के गुणो समायोजित करने के लिए", 
-  "pathNodeTooltip": "नोड खींचें उसे हिलाने के लिए. डबल-क्लिक कीजिये वर्ग के प्रकार को बदलने के लिए", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "hi",
+	dir : "ltr",
+	common: {
+		"ok": "बचाना",
+		"cancel": "रद्द करें",
+		"key_backspace": "बैकस्पेस", 
+		"key_del": "हटायें", 
+		"key_down": "नीचे", 
+		"key_up": "ऊपर", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "रंग बदलने पर क्लिक करें, बदलाव भरने के क्लिक करने के लिए स्ट्रोक का रंग बदलने के लिए",
+		"zoom_level": "बदलें स्तर ज़ूम",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "बदलें का रंग भरना",
+		"stroke_color": "बदलें स्ट्रोक रंग",
+		"stroke_style": "बदलें स्ट्रोक डेश शैली",
+		"stroke_width": "बदलें स्ट्रोक चौड़ाई",
+		"pos_x": "X समकक्ष बदलें ",
+		"pos_y": "Y समकक्ष बदलें",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "बदलें रोटेशन कोण",
+		"blur": "Change gaussian blur value",
+		"opacity": "पारदर्शिता बदलें",
+		"circle_cx": "बदल रहा है चक्र cx समन्वय",
+		"circle_cy": "परिवर्तन चक्र cy समन्वय है",
+		"circle_r": "बदल रहा है चक्र त्रिज्या",
+		"ellipse_cx": "बदलें दीर्घवृत्त है cx समन्वय",
+		"ellipse_cy": "बदलें दीर्घवृत्त cy समन्वय है",
+		"ellipse_rx": "बदल रहा है दीर्घवृत्त x त्रिज्या",
+		"ellipse_ry": "बदल रहा है दीर्घवृत्त y त्रिज्या",
+		"line_x1": "बदल रहा है लाइन x समन्वय शुरू",
+		"line_x2": "बदल रहा है लाइन x समन्वय समाप्त",
+		"line_y1": "बदलें रेखा y शुरू हो रहा है समन्वय",
+		"line_y2": "बदलें रेखा y अंत है समन्वय",
+		"rect_height": "बदलें आयत ऊंचाई",
+		"rect_width": "बदलें आयत चौड़ाई",
+		"corner_radius": "बदलें आयत कॉर्नर त्रिज्या",
+		"image_width": "बदलें छवि चौड़ाई",
+		"image_height": "बदलें छवि ऊँचाई",
+		"image_url": "बदलें यूआरएल",
+		"node_x": "नोड का x समकक्ष बदलें",
+		"node_y": "नोड का y समकक्ष बदलें",
+		"seg_type": "वर्ग प्रकार बदलें",
+		"straight_segments": "सीधे वर्ग",
+		"curve_segments": "घुमाव",
+		"text_contents": "बदलें पाठ सामग्री",
+		"font_family": "बदलें फ़ॉन्ट परिवार",
+		"font_size": "फ़ॉन्ट का आकार बदलें",
+		"bold": "मोटा पाठ",
+		"italic": "इटैलिक पाठ"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "पृष्ठभूमि का रंग बदल / अस्पष्टता",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "सामग्री के लिए फिट",
+		"fit_to_all": "सभी सामग्री के लिए फिट",
+		"fit_to_canvas": "फिट कैनवास को",
+		"fit_to_layer_content": "फिट परत सामग्री के लिए",
+		"fit_to_sel": "चयन के लिए फिट",
+		"align_relative_to": "संरेखित करें रिश्तेदार को ...",
+		"relativeTo": "रिश्तेदार को:",
+		"पृष्ठ": "पृष्ठ",
+		"largest_object": "सबसे बड़ी वस्तु",
+		"selected_objects": "निर्वाचित वस्तुओं",
+		"smallest_object": "छोटी से छोटी वस्तु",
+		"new_doc": "नई छवि",
+		"open_doc": "छवि खोलें",
+		"export_png": "Export as PNG",
+		"save_doc": "सहेजें छवि",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "तलमेंपंक्तिबद्धकरें",
+		"align_center": "मध्य में समंजित करें",
+		"align_left": " पंक्तिबद्ध करें",
+		"align_middle": "मध्य संरेखित करें",
+		"align_right": "दायाँपंक्तिबद्धकरें",
+		"align_top": "शीर्षमेंपंक्तिबद्धकरें",
+		"mode_select": "उपकरण चुनें",
+		"mode_fhpath": "पेंसिल उपकरण",
+		"mode_line": "लाइन उपकरण",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "नि: शुल्क हाथ आयत",
+		"mode_ellipse": "दीर्घवृत्त",
+		"mode_circle": "वृत्त",
+		"mode_fhellipse": "नि: शुल्क हाथ दीर्घवृत्त",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "पाठ उपकरण",
+		"mode_image": "छवि उपकरण",
+		"mode_zoom": "ज़ूम उपकरण",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "पूर्ववत करें",
+		"redo": "फिर से करें",
+		"tool_source": "स्रोत में बदलाव करें",
+		"wireframe_mode": "रूपरेखा मोड",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "समूह तत्वों",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "पथ में बदलें",
+		"reorient_path": "पथ को नई दिशा दें",
+		"ungroup": "अंश को समूह से अलग करें",
+		"docprops": "दस्तावेज़ गुण",
+		"imagelib": "Image Library",
+		"move_bottom": "नीचे ले जाएँ",
+		"move_top": "ऊपर ले जाएँ",
+		"node_clone": "नोड क्लोन",
+		"node_delete": "नोड हटायें",
+		"node_link": "कड़ी नियंत्रण बिंदु",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "बचाना",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"हटायें": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"परत",
+		"layers": "Layers",
+		"del": "परत हटाएँ",
+		"move_down": "परत नीचे ले जाएँ",
+		"new": "नई परत",
+		"rename": "परत का नाम बदलें",
+		"move_up": "परत ऊपर ले जाएँ",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "अंश को ले जाएँ:",
+		"move_selected": "चयनित अंश को दूसरी परत पर  ले जाएँ"
+	},
+	config: {
+		"image_props": "छवि के गुण",
+		"doc_title": "शीर्षक",
+		"doc_dims": "कैनवास आयाम",
+		"included_images": "शामिल छवियाँ",
+		"image_opt_embed": "एम्बेड डेटा (स्थानीय फ़ाइलें)",
+		"image_opt_ref": "फाइल के संदर्भ का प्रयोग",
+		"editor_prefs": "संपादक वरीयताएँ",
+		"icon_size": "चिह्न का आकार",
+		"language": "भाषा",
+		"background": "संपादक पृष्ठभूमि",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "नोट: पृष्ठभूमि छवि के साथ नहीं बचायी जाएगी",
+		"icon_large": "बड़ा",
+		"icon_medium": "मध्यम",
+		"icon_small": "छोटा",
+		"icon_xlarge": "बहुत बड़ा",
+		"select_predefined": "चुनें पूर्वनिर्धारित:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"अमान्य मूल्य",
+		"noContentToFitTo":"कोई सामग्री फिट करने के लिए उपलब्ध नहीं",
+		"dupeLayerName":"इस नाम कि परत पहले से मौजूद है !",
+		"enterUniqueLayerName":"कृपया परत का एक अद्वितीय नाम डालें",
+		"enterNewLayerName":"कृपया परत का एक नया नाम डालें",
+		"layerHasThatName":"परत का पहले से ही यही नाम है",
+		"QmoveElemsToLayer":"चयनित अंश को परत '%s' पर ले जाएँ ?",
+		"QwantToClear":"क्या आप छवि साफ़ करना चाहते हैं?\nयह आपके उन्डू  इतिहास को भी मिटा देगा!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"आपके एस.वी.जी. स्रोत में त्रुटियों थी.\nक्या आप मूल एस.वी.जी स्रोत पर वापिस जाना चाहते हैं?",
+		"QignoreSourceChanges":"एसवीजी स्रोत से लाये बदलावों को ध्यान न दें?",
+		"featNotSupported":"सुविधा असमर्थित है",
+		"enterNewImgURL":"नई छवि URL दर्ज करें",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.hr.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Poravnaj u odnosu na ..."},
-{"id": "bkgnd_color", "title": "Promijeni boju pozadine / neprozirnost"},
-{"id": "circle_cx", "title": "Promjena krug&#39;s CX koordinirati"},
-{"id": "circle_cy", "title": "Cy Promijeni krug je koordinirati"},
-{"id": "circle_r", "title": "Promjena krug je radijusa"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Promijeni Pravokutnik Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Promjena elipsa&#39;s CX koordinirati"},
-{"id": "ellipse_cy", "title": "Cy Promijeni elipsa je koordinirati"},
-{"id": "ellipse_rx", "title": "Promijeniti elipsa&#39;s x polumjer"},
-{"id": "ellipse_ry", "title": "Promjena elipsa&#39;s y polumjer"},
-{"id": "fill_color", "title": "Promjena boje ispune"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Prilagodi na sve sadržaje"},
-{"id": "fit_to_canvas", "textContent": "Prilagodi na platnu"},
-{"id": "fit_to_layer_content", "textContent": "Prilagodi sloj sadržaj"},
-{"id": "fit_to_sel", "textContent": "Prilagodi odabir"},
-{"id": "font_family", "title": "Promjena fontova"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Promijeni sliku visina"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Promijeni URL"},
-{"id": "image_width", "title": "Promijeni sliku širine"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "najveći objekt"},
-{"id": "layer_delete", "title": "Brisanje sloja"},
-{"id": "layer_down", "title": "Move Layer Down"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Preimenuj Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Promijeni linija je početak x koordinatu"},
-{"id": "line_x2", "title": "Promjena linije završetak x koordinatu"},
-{"id": "line_y1", "title": "Promijeni linija je početak y koordinatu"},
-{"id": "line_y2", "title": "Promjena linije završetak y koordinatu"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "stranica"},
-{"id": "palette", "title": "Kliknite promijeniti boju ispune, shift-click to promijeniti boju moždanog udara"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Promijeni pravokutnik visine"},
-{"id": "rect_width_tool", "title": "Promijeni pravokutnik širine"},
-{"id": "relativeToLabel", "textContent": "u odnosu na:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Select predefinirane:"},
-{"id": "selected_objects", "textContent": "izabrani objekti"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "najmanji objekt"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Promjena boje moždani udar"},
-{"id": "stroke_style", "title": "Promijeni stroke crtica stil"},
-{"id": "stroke_width", "title": "Promjena širine moždani udar"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Visina:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Širina:"},
-{"id": "text", "title": "Promjena sadržaja teksta"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Poravnaj dolje"},
-{"id": "tool_aligncenter", "title": "Centriraj"},
-{"id": "tool_alignleft", "title": "Poravnaj lijevo"},
-{"id": "tool_alignmiddle", "title": "Poravnaj Srednji"},
-{"id": "tool_alignright", "title": "Poravnaj desno"},
-{"id": "tool_aligntop", "title": "Poravnaj Top"},
-{"id": "tool_angle", "title": "Promijeni rotation angle"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Podebljani tekst"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "Nove slike"},
-{"id": "tool_clone", "title": "Klon Element"},
-{"id": "tool_clone_multi", "title": "Klon Elementi"},
-{"id": "tool_delete", "title": "Brisanje elemenata"},
-{"id": "tool_delete_multi", "title": "Delete Selected Elements [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Svojstva dokumenta"},
-{"id": "tool_docprops_cancel", "textContent": "Odustani"},
-{"id": "tool_docprops_save", "textContent": "Spremiti"},
-{"id": "tool_ellipse", "title": "Elipsa"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Pravokutnik"},
-{"id": "tool_font_size", "title": "Change font size"},
-{"id": "tool_group", "title": "Grupa Elementi"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Pomakni na vrh"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Promjena odabrane stavke neprozirnost"},
-{"id": "tool_open", "textContent": "Otvori sliku"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Pravokutnik"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Spremanje slike"},
-{"id": "tool_select", "title": "Odaberite alat"},
-{"id": "tool_source", "title": "Uredi Source"},
-{"id": "tool_source_cancel", "textContent": "Odustani"},
-{"id": "tool_source_save", "textContent": "Spremiti"},
-{"id": "tool_square", "title": "Kvadrat"},
-{"id": "tool_text", "title": "Tekst Alat"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Poništi"},
-{"id": "tool_ungroup", "title": "Razgrupiranje Elementi"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Alat za zumiranje"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Promjena razine zumiranja"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "hr",
+	dir : "ltr",
+	common: {
+		"ok": "Spremiti",
+		"cancel": "Odustani",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Kliknite promijeniti boju ispune, shift-click to promijeniti boju moždanog udara",
+		"zoom_level": "Promjena razine zumiranja",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Promjena boje ispune",
+		"stroke_color": "Promjena boje moždani udar",
+		"stroke_style": "Promijeni stroke crtica stil",
+		"stroke_width": "Promjena širine moždani udar",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Promijeni rotation angle",
+		"blur": "Change gaussian blur value",
+		"opacity": "Promjena odabrane stavke neprozirnost",
+		"circle_cx": "Promjena krug&#39;s CX koordinirati",
+		"circle_cy": "Cy Promijeni krug je koordinirati",
+		"circle_r": "Promjena krug je radijusa",
+		"ellipse_cx": "Promjena elipsa&#39;s CX koordinirati",
+		"ellipse_cy": "Cy Promijeni elipsa je koordinirati",
+		"ellipse_rx": "Promijeniti elipsa&#39;s x polumjer",
+		"ellipse_ry": "Promjena elipsa&#39;s y polumjer",
+		"line_x1": "Promijeni linija je početak x koordinatu",
+		"line_x2": "Promjena linije završetak x koordinatu",
+		"line_y1": "Promijeni linija je početak y koordinatu",
+		"line_y2": "Promjena linije završetak y koordinatu",
+		"rect_height": "Promijeni pravokutnik visine",
+		"rect_width": "Promijeni pravokutnik širine",
+		"corner_radius": "Promijeni Pravokutnik Corner Radius",
+		"image_width": "Promijeni sliku širine",
+		"image_height": "Promijeni sliku visina",
+		"image_url": "Promijeni URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Promjena sadržaja teksta",
+		"font_family": "Promjena fontova",
+		"font_size": "Change font size",
+		"bold": "Podebljani tekst",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Promijeni boju pozadine / neprozirnost",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Prilagodi na sve sadržaje",
+		"fit_to_canvas": "Prilagodi na platnu",
+		"fit_to_layer_content": "Prilagodi sloj sadržaj",
+		"fit_to_sel": "Prilagodi odabir",
+		"align_relative_to": "Poravnaj u odnosu na ...",
+		"relativeTo": "u odnosu na:",
+		"stranica": "stranica",
+		"largest_object": "najveći objekt",
+		"selected_objects": "izabrani objekti",
+		"smallest_object": "najmanji objekt",
+		"new_doc": "Nove slike",
+		"open_doc": "Otvori sliku",
+		"export_png": "Export as PNG",
+		"save_doc": "Spremanje slike",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Poravnaj dolje",
+		"align_center": "Centriraj",
+		"align_left": "Poravnaj lijevo",
+		"align_middle": "Poravnaj Srednji",
+		"align_right": "Poravnaj desno",
+		"align_top": "Poravnaj Top",
+		"mode_select": "Odaberite alat",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Pravokutnik",
+		"mode_ellipse": "Elipsa",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Tekst Alat",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Alat za zumiranje",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Poništi",
+		"redo": "Redo",
+		"tool_source": "Uredi Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Grupa Elementi",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Razgrupiranje Elementi",
+		"docprops": "Svojstva dokumenta",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Pomakni na vrh",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Spremiti",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Brisanje sloja",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Preimenuj Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefinirane:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.hu.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Képest Igazítás ..."},
-{"id": "bkgnd_color", "title": "Change background color / homályosság"},
-{"id": "circle_cx", "title": "Change kör CX koordináta"},
-{"id": "circle_cy", "title": "Change kör cy koordináta"},
-{"id": "circle_r", "title": "Change kör sugara"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Change téglalap sarok sugara"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Change ellipszis&#39;s CX koordináta"},
-{"id": "ellipse_cy", "title": "Change ellipszis&#39;s cy koordináta"},
-{"id": "ellipse_rx", "title": "Change ellipszis&#39;s x sugarú"},
-{"id": "ellipse_ry", "title": "Change ellipszis&#39;s y sugara"},
-{"id": "fill_color", "title": "Change töltse color"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Illeszkednek az összes tartalom"},
-{"id": "fit_to_canvas", "textContent": "Igazítás a vászonra"},
-{"id": "fit_to_layer_content", "textContent": "Igazítás a réteg tartalma"},
-{"id": "fit_to_sel", "textContent": "Igazítás a kiválasztási"},
-{"id": "font_family", "title": "Change Betűcsalád"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Kép módosítása height"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Change URL"},
-{"id": "image_width", "title": "Change kép szélessége"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "legnagyobb objektum"},
-{"id": "layer_delete", "title": "Réteg törlése"},
-{"id": "layer_down", "title": "Mozgatása lefelé"},
-{"id": "layer_new", "title": "Új réteg"},
-{"id": "layer_rename", "title": "Réteg átnevezése"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Rétegből:"},
-{"id": "line_x1", "title": "A sor kezd x koordináta"},
-{"id": "line_x2", "title": "A sor vége az x koordináta"},
-{"id": "line_y1", "title": "A sor kezd y koordináta"},
-{"id": "line_y2", "title": "A sor vége az y koordináta"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Page"},
-{"id": "palette", "title": "Kattints ide a változások töltse szín, shift-click változtatni stroke color"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Change téglalap magassága"},
-{"id": "rect_width_tool", "title": "Change téglalap szélessége"},
-{"id": "relativeToLabel", "textContent": "relatív hogy:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Válassza ki előre definiált:"},
-{"id": "selected_objects", "textContent": "választott tárgyak"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "legkisebb objektum"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Change stroke color"},
-{"id": "stroke_style", "title": "Change stroke kötőjel style"},
-{"id": "stroke_width", "title": "Change stroke width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Magasság:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Szélesség:"},
-{"id": "text", "title": "A szöveg tartalma"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Alulra igazítás"},
-{"id": "tool_aligncenter", "title": "Középre igazítás"},
-{"id": "tool_alignleft", "title": "Balra igazítás"},
-{"id": "tool_alignmiddle", "title": "Közép-align"},
-{"id": "tool_alignright", "title": "Jobbra igazítás"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Váltás forgás szög"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Félkövér szöveg"},
-{"id": "tool_circle", "title": "Körbe"},
-{"id": "tool_clear", "textContent": "Új kép"},
-{"id": "tool_clone", "title": "Klónok Element"},
-{"id": "tool_clone_multi", "title": "Klón Elements"},
-{"id": "tool_delete", "title": "Delete Element"},
-{"id": "tool_delete_multi", "title": "A kijelölt elemek"},
-{"id": "tool_docprops", "textContent": "Dokumentum tulajdonságai"},
-{"id": "tool_docprops_cancel", "textContent": "Szakítani"},
-{"id": "tool_docprops_save", "textContent": "Ment"},
-{"id": "tool_ellipse", "title": "Ellipszisszelet"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Ceruza eszköz"},
-{"id": "tool_fhrect", "title": "Free-Hand téglalap"},
-{"id": "tool_font_size", "title": "Change font size"},
-{"id": "tool_group", "title": "Csoport elemei"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Dőlt szöveg"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Mozgatás lefelé"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "A kijelölt elem opacity"},
-{"id": "tool_open", "textContent": "Kép megnyitása"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Téglalapban"},
-{"id": "tool_redo", "title": "Megismétléséhez"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Kép mentése más"},
-{"id": "tool_select", "title": "Válassza ki az eszközt"},
-{"id": "tool_source", "title": "Szerkesztés Forrás"},
-{"id": "tool_source_cancel", "textContent": "Szakítani"},
-{"id": "tool_source_save", "textContent": "Ment"},
-{"id": "tool_square", "title": "Négyzetes"},
-{"id": "tool_text", "title": "Szöveg eszköz"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Visszavon"},
-{"id": "tool_ungroup", "title": "Szétbont elemei"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Change nagyítási"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "hu",
+	dir : "ltr",
+	common: {
+		"ok": "Ment",
+		"cancel": "Szakítani",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Kattints ide a változások töltse szín, shift-click változtatni stroke color",
+		"zoom_level": "Change nagyítási",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change töltse color",
+		"stroke_color": "Change stroke color",
+		"stroke_style": "Change stroke kötőjel style",
+		"stroke_width": "Change stroke width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Váltás forgás szög",
+		"blur": "Change gaussian blur value",
+		"opacity": "A kijelölt elem opacity",
+		"circle_cx": "Change kör CX koordináta",
+		"circle_cy": "Change kör cy koordináta",
+		"circle_r": "Change kör sugara",
+		"ellipse_cx": "Change ellipszis&#39;s CX koordináta",
+		"ellipse_cy": "Change ellipszis&#39;s cy koordináta",
+		"ellipse_rx": "Change ellipszis&#39;s x sugarú",
+		"ellipse_ry": "Change ellipszis&#39;s y sugara",
+		"line_x1": "A sor kezd x koordináta",
+		"line_x2": "A sor vége az x koordináta",
+		"line_y1": "A sor kezd y koordináta",
+		"line_y2": "A sor vége az y koordináta",
+		"rect_height": "Change téglalap magassága",
+		"rect_width": "Change téglalap szélessége",
+		"corner_radius": "Change téglalap sarok sugara",
+		"image_width": "Change kép szélessége",
+		"image_height": "Kép módosítása height",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "A szöveg tartalma",
+		"font_family": "Change Betűcsalád",
+		"font_size": "Change font size",
+		"bold": "Félkövér szöveg",
+		"italic": "Dőlt szöveg"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color / homályosság",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Illeszkednek az összes tartalom",
+		"fit_to_canvas": "Igazítás a vászonra",
+		"fit_to_layer_content": "Igazítás a réteg tartalma",
+		"fit_to_sel": "Igazítás a kiválasztási",
+		"align_relative_to": "Képest Igazítás ...",
+		"relativeTo": "relatív hogy:",
+		"Page": "Page",
+		"largest_object": "legnagyobb objektum",
+		"selected_objects": "választott tárgyak",
+		"smallest_object": "legkisebb objektum",
+		"new_doc": "Új kép",
+		"open_doc": "Kép megnyitása",
+		"export_png": "Export as PNG",
+		"save_doc": "Kép mentése más",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Alulra igazítás",
+		"align_center": "Középre igazítás",
+		"align_left": "Balra igazítás",
+		"align_middle": "Közép-align",
+		"align_right": "Jobbra igazítás",
+		"align_top": "Align Top",
+		"mode_select": "Válassza ki az eszközt",
+		"mode_fhpath": "Ceruza eszköz",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand téglalap",
+		"mode_ellipse": "Ellipszisszelet",
+		"mode_circle": "Körbe",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Szöveg eszköz",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Visszavon",
+		"redo": "Megismétléséhez",
+		"tool_source": "Szerkesztés Forrás",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Csoport elemei",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Szétbont elemei",
+		"docprops": "Dokumentum tulajdonságai",
+		"imagelib": "Image Library",
+		"move_bottom": "Mozgatás lefelé",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Ment",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Réteg törlése",
+		"move_down": "Mozgatása lefelé",
+		"new": "Új réteg",
+		"rename": "Réteg átnevezése",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Válassza ki előre definiált:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.hy.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Align relative to ..."},
-{"id": "bkgnd_color", "title": "Change background color/opacity"},
-{"id": "circle_cx", "title": "Change circle's cx coordinate"},
-{"id": "circle_cy", "title": "Change circle's cy coordinate"},
-{"id": "circle_r", "title": "Change circle's radius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Change Rectangle Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Change ellipse's cx coordinate"},
-{"id": "ellipse_cy", "title": "Change ellipse's cy coordinate"},
-{"id": "ellipse_rx", "title": "Change ellipse's x radius"},
-{"id": "ellipse_ry", "title": "Change ellipse's y radius"},
-{"id": "fill_color", "title": "Change fill color"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Fit to all content"},
-{"id": "fit_to_canvas", "textContent": "Fit to canvas"},
-{"id": "fit_to_layer_content", "textContent": "Fit to layer content"},
-{"id": "fit_to_sel", "textContent": "Fit to selection"},
-{"id": "font_family", "title": "Change Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Change image height"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Change URL"},
-{"id": "image_width", "title": "Change image width"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "largest object"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move Layer Down"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Change line's starting x coordinate"},
-{"id": "line_x2", "title": "Change line's ending x coordinate"},
-{"id": "line_y1", "title": "Change line's starting y coordinate"},
-{"id": "line_y2", "title": "Change line's ending y coordinate"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "page"},
-{"id": "palette", "title": "Click to change fill color, shift-click to change stroke color"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Change rectangle height"},
-{"id": "rect_width_tool", "title": "Change rectangle width"},
-{"id": "relativeToLabel", "textContent": "relative to:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Select predefined:"},
-{"id": "selected_objects", "textContent": "elected objects"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "smallest object"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Change stroke color"},
-{"id": "stroke_style", "title": "Change stroke dash style"},
-{"id": "stroke_width", "title": "Change stroke width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Height:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Width:"},
-{"id": "text", "title": "Change text contents"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Align Center"},
-{"id": "tool_alignleft", "title": "Align Left"},
-{"id": "tool_alignmiddle", "title": "Align Middle"},
-{"id": "tool_alignright", "title": "Align Right"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Change rotation angle"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Delete Element"},
-{"id": "tool_delete_multi", "title": "Delete Selected Elements"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Cancel"},
-{"id": "tool_docprops_save", "textContent": "Save"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "Change Font Size"},
-{"id": "tool_group", "title": "Group Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Change selected item opacity"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rectangle"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Cancel"},
-{"id": "tool_source_save", "textContent": "Save"},
-{"id": "tool_square", "title": "Square"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Change zoom level"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "hy",
+	dir : "ltr",
+	common: {
+		"ok": "Save",
+		"cancel": "Cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click to change fill color, shift-click to change stroke color",
+		"zoom_level": "Change zoom level",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change fill color",
+		"stroke_color": "Change stroke color",
+		"stroke_style": "Change stroke dash style",
+		"stroke_width": "Change stroke width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Change rotation angle",
+		"blur": "Change gaussian blur value",
+		"opacity": "Change selected item opacity",
+		"circle_cx": "Change circle's cx coordinate",
+		"circle_cy": "Change circle's cy coordinate",
+		"circle_r": "Change circle's radius",
+		"ellipse_cx": "Change ellipse's cx coordinate",
+		"ellipse_cy": "Change ellipse's cy coordinate",
+		"ellipse_rx": "Change ellipse's x radius",
+		"ellipse_ry": "Change ellipse's y radius",
+		"line_x1": "Change line's starting x coordinate",
+		"line_x2": "Change line's ending x coordinate",
+		"line_y1": "Change line's starting y coordinate",
+		"line_y2": "Change line's ending y coordinate",
+		"rect_height": "Change rectangle height",
+		"rect_width": "Change rectangle width",
+		"corner_radius": "Change Rectangle Corner Radius",
+		"image_width": "Change image width",
+		"image_height": "Change image height",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Change text contents",
+		"font_family": "Change Font Family",
+		"font_size": "Change Font Size",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color/opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit to all content",
+		"fit_to_canvas": "Fit to canvas",
+		"fit_to_layer_content": "Fit to layer content",
+		"fit_to_sel": "Fit to selection",
+		"align_relative_to": "Align relative to ...",
+		"relativeTo": "relative to:",
+		"page": "page",
+		"largest_object": "largest object",
+		"selected_objects": "elected objects",
+		"smallest_object": "smallest object",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Align Center",
+		"align_left": "Align Left",
+		"align_middle": "Align Middle",
+		"align_right": "Align Right",
+		"align_top": "Align Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Group Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Save",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefined:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.id.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Rata relatif ..."},
-{"id": "bkgnd_color", "title": "Mengubah warna latar belakang / keburaman"},
-{"id": "circle_cx", "title": "Mengubah koordinat lingkaran cx"},
-{"id": "circle_cy", "title": "Mengubah koordinat cy lingkaran"},
-{"id": "circle_r", "title": "Ubah jari-jari lingkaran"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Ubah Corner Rectangle Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Ubah elips&#39;s cx koordinat"},
-{"id": "ellipse_cy", "title": "Ubah elips&#39;s cy koordinat"},
-{"id": "ellipse_rx", "title": "Ubah elips&#39;s x jari-jari"},
-{"id": "ellipse_ry", "title": "Ubah elips&#39;s y jari-jari"},
-{"id": "fill_color", "title": "Ubah warna mengisi"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Cocok untuk semua konten"},
-{"id": "fit_to_canvas", "textContent": "Muat kanvas"},
-{"id": "fit_to_layer_content", "textContent": "Muat konten lapisan"},
-{"id": "fit_to_sel", "textContent": "Fit seleksi"},
-{"id": "font_family", "title": "Ubah Font Keluarga"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Tinggi gambar Perubahan"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Ubah URL"},
-{"id": "image_width", "title": "Ubah Lebar gambar"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "objek terbesar"},
-{"id": "layer_delete", "title": "Hapus Layer"},
-{"id": "layer_down", "title": "Pindahkan Layer Bawah"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Pindahkan Layer Up"},
-{"id": "layersLabel", "textContent": "Lapisan:"},
-{"id": "line_x1", "title": "Ubah baris mulai x koordinat"},
-{"id": "line_x2", "title": "Ubah baris&#39;s Berakhir x koordinat"},
-{"id": "line_y1", "title": "Ubah baris mulai y koordinat"},
-{"id": "line_y2", "title": "Ubah baris di tiap akhir y koordinat"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Halaman"},
-{"id": "palette", "title": "Klik untuk mengubah warna mengisi, shift-klik untuk mengubah warna stroke"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Perubahan tinggi persegi panjang"},
-{"id": "rect_width_tool", "title": "Ubah persegi panjang lebar"},
-{"id": "relativeToLabel", "textContent": "relatif:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Pilih standar:"},
-{"id": "selected_objects", "textContent": "objek terpilih"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "objek terkecil"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Ubah warna stroke"},
-{"id": "stroke_style", "title": "Ubah gaya dash stroke"},
-{"id": "stroke_width", "title": "Ubah stroke width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Ketinggian:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Lebar:"},
-{"id": "text", "title": "Ubah isi teks"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Rata Bottom"},
-{"id": "tool_aligncenter", "title": "Rata Tengah"},
-{"id": "tool_alignleft", "title": "Rata Kiri"},
-{"id": "tool_alignmiddle", "title": "Rata Tengah"},
-{"id": "tool_alignright", "title": "Rata Kanan"},
-{"id": "tool_aligntop", "title": "Rata Top"},
-{"id": "tool_angle", "title": "Ubah sudut rotasi"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Teks"},
-{"id": "tool_circle", "title": "Lingkaran"},
-{"id": "tool_clear", "textContent": "Gambar Baru"},
-{"id": "tool_clone", "title": "Clone Elemen"},
-{"id": "tool_clone_multi", "title": "Clone Elemen"},
-{"id": "tool_delete", "title": "Hapus Elemen"},
-{"id": "tool_delete_multi", "title": "Hapus Elemen"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Batal"},
-{"id": "tool_docprops_save", "textContent": "Simpan"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Persegi Panjang"},
-{"id": "tool_font_size", "title": "Ubah Ukuran Font"},
-{"id": "tool_group", "title": "Kelompok Elemen"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Teks"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Pindah ke Bawah"},
-{"id": "tool_move_top", "title": "Pindahkan ke Atas"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Mengubah item yang dipilih keburaman"},
-{"id": "tool_open", "textContent": "Membuka Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rectangle"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Pilih Tool"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Batal"},
-{"id": "tool_source_save", "textContent": "Simpan"},
-{"id": "tool_square", "title": "Kotak"},
-{"id": "tool_text", "title": "Teks Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Ungroup Elemen"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Mengubah tingkat pembesaran"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "id",
+	dir : "ltr",
+	common: {
+		"ok": "Simpan",
+		"cancel": "Batal",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klik untuk mengubah warna mengisi, shift-klik untuk mengubah warna stroke",
+		"zoom_level": "Mengubah tingkat pembesaran",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Ubah warna mengisi",
+		"stroke_color": "Ubah warna stroke",
+		"stroke_style": "Ubah gaya dash stroke",
+		"stroke_width": "Ubah stroke width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Ubah sudut rotasi",
+		"blur": "Change gaussian blur value",
+		"opacity": "Mengubah item yang dipilih keburaman",
+		"circle_cx": "Mengubah koordinat lingkaran cx",
+		"circle_cy": "Mengubah koordinat cy lingkaran",
+		"circle_r": "Ubah jari-jari lingkaran",
+		"ellipse_cx": "Ubah elips&#39;s cx koordinat",
+		"ellipse_cy": "Ubah elips&#39;s cy koordinat",
+		"ellipse_rx": "Ubah elips&#39;s x jari-jari",
+		"ellipse_ry": "Ubah elips&#39;s y jari-jari",
+		"line_x1": "Ubah baris mulai x koordinat",
+		"line_x2": "Ubah baris&#39;s Berakhir x koordinat",
+		"line_y1": "Ubah baris mulai y koordinat",
+		"line_y2": "Ubah baris di tiap akhir y koordinat",
+		"rect_height": "Perubahan tinggi persegi panjang",
+		"rect_width": "Ubah persegi panjang lebar",
+		"corner_radius": "Ubah Corner Rectangle Radius",
+		"image_width": "Ubah Lebar gambar",
+		"image_height": "Tinggi gambar Perubahan",
+		"image_url": "Ubah URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Ubah isi teks",
+		"font_family": "Ubah Font Keluarga",
+		"font_size": "Ubah Ukuran Font",
+		"bold": "Bold Teks",
+		"italic": "Italic Teks"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Mengubah warna latar belakang / keburaman",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Cocok untuk semua konten",
+		"fit_to_canvas": "Muat kanvas",
+		"fit_to_layer_content": "Muat konten lapisan",
+		"fit_to_sel": "Fit seleksi",
+		"align_relative_to": "Rata relatif ...",
+		"relativeTo": "relatif:",
+		"Halaman": "Halaman",
+		"largest_object": "objek terbesar",
+		"selected_objects": "objek terpilih",
+		"smallest_object": "objek terkecil",
+		"new_doc": "Gambar Baru",
+		"open_doc": "Membuka Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Rata Bottom",
+		"align_center": "Rata Tengah",
+		"align_left": "Rata Kiri",
+		"align_middle": "Rata Tengah",
+		"align_right": "Rata Kanan",
+		"align_top": "Rata Top",
+		"mode_select": "Pilih Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Persegi Panjang",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Lingkaran",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Teks Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Kelompok Elemen",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elemen",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Pindah ke Bawah",
+		"move_top": "Pindahkan ke Atas",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Simpan",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Hapus Layer",
+		"move_down": "Pindahkan Layer Bawah",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Pindahkan Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Pilih standar:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.is.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Jafna miðað við ..."},
-{"id": "bkgnd_color", "title": "Breyta bakgrunnslit / opacity"},
-{"id": "circle_cx", "title": "Cx Breyta hring er að samræma"},
-{"id": "circle_cy", "title": "Breyta hring&#39;s cy samræma"},
-{"id": "circle_r", "title": "Radíus Breyta hringsins er"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Breyta rétthyrningur Corner Radíus"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Breyta sporbaug&#39;s cx samræma"},
-{"id": "ellipse_cy", "title": "Breyta sporbaug&#39;s cy samræma"},
-{"id": "ellipse_rx", "title": "X radíus Breyta sporbaug&#39;s"},
-{"id": "ellipse_ry", "title": "Y radíus Breyta sporbaug&#39;s"},
-{"id": "fill_color", "title": "Breyta fylla color"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Laga til efni"},
-{"id": "fit_to_canvas", "textContent": "Fit á striga"},
-{"id": "fit_to_layer_content", "textContent": "Laga til lag efni"},
-{"id": "fit_to_sel", "textContent": "Fit til val"},
-{"id": "font_family", "title": "Change Leturfjölskylda"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Breyta mynd hæð"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Breyta URL"},
-{"id": "image_width", "title": "Breyta mynd width"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "stærsti hlutinn"},
-{"id": "layer_delete", "title": "Eyða Lag"},
-{"id": "layer_down", "title": "Færa Layer Down"},
-{"id": "layer_new", "title": "Lag"},
-{"id": "layer_rename", "title": "Endurnefna Lag"},
-{"id": "layer_up", "title": "Færa Lag Up"},
-{"id": "layersLabel", "textContent": "Lag:"},
-{"id": "line_x1", "title": "Breyta lína í byrjun x samræma"},
-{"id": "line_x2", "title": "Breyta lína&#39;s Ending x samræma"},
-{"id": "line_y1", "title": "Breyta lína í byrjun y samræma"},
-{"id": "line_y2", "title": "Breyta lína er endir y samræma"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "síðu"},
-{"id": "palette", "title": "Smelltu hér til að breyta fylla lit, Shift-smelltu til að breyta högg lit"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Breyta rétthyrningur hæð"},
-{"id": "rect_width_tool", "title": "Skipta rétthyrningur width"},
-{"id": "relativeToLabel", "textContent": "hlutfallslegt til:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Veldu predefined:"},
-{"id": "selected_objects", "textContent": "kjörinn hlutir"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "lítill hluti"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Breyta heilablķđfall color"},
-{"id": "stroke_style", "title": "Breyta heilablķđfall þjóta stíl"},
-{"id": "stroke_width", "title": "Breyta heilablķđfall width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Hæð:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Breidd:"},
-{"id": "text", "title": "Breyta texta innihald"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Jafna Bottom"},
-{"id": "tool_aligncenter", "title": "Jafna Center"},
-{"id": "tool_alignleft", "title": "Vinstri jöfnun"},
-{"id": "tool_alignmiddle", "title": "Jafna Mið"},
-{"id": "tool_alignright", "title": "Hægri jöfnun"},
-{"id": "tool_aligntop", "title": "Jöfnun Top"},
-{"id": "tool_angle", "title": "Breyting snúningur horn"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Eyða Element"},
-{"id": "tool_delete_multi", "title": "Eyða Elements"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Hætta"},
-{"id": "tool_docprops_save", "textContent": "Vista"},
-{"id": "tool_ellipse", "title": "Sporbaugur"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Sporbaugur"},
-{"id": "tool_fhpath", "title": "Blýantur Tól"},
-{"id": "tool_fhrect", "title": "Free-Hand rétthyrningur"},
-{"id": "tool_font_size", "title": "Breyta leturstærð"},
-{"id": "tool_group", "title": "Group Elements"},
-{"id": "tool_image", "title": "Mynd Tól"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Færa Bottom"},
-{"id": "tool_move_top", "title": "Fara efst á síðu"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Breyta valin atriði opacity"},
-{"id": "tool_open", "textContent": "Opna mynd"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rétthyrningur"},
-{"id": "tool_redo", "title": "Endurtaka"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Spara Image"},
-{"id": "tool_select", "title": "Veldu Tól"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Hætta"},
-{"id": "tool_source_save", "textContent": "Vista"},
-{"id": "tool_square", "title": "Ferningur"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Hætta"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Breyta Stækkunarstig"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "is",
+	dir : "ltr",
+	common: {
+		"ok": "Vista",
+		"cancel": "Hætta",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Smelltu hér til að breyta fylla lit, Shift-smelltu til að breyta högg lit",
+		"zoom_level": "Breyta Stækkunarstig",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Breyta fylla color",
+		"stroke_color": "Breyta heilablķđfall color",
+		"stroke_style": "Breyta heilablķđfall þjóta stíl",
+		"stroke_width": "Breyta heilablķđfall width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Breyting snúningur horn",
+		"blur": "Change gaussian blur value",
+		"opacity": "Breyta valin atriði opacity",
+		"circle_cx": "Cx Breyta hring er að samræma",
+		"circle_cy": "Breyta hring&#39;s cy samræma",
+		"circle_r": "Radíus Breyta hringsins er",
+		"ellipse_cx": "Breyta sporbaug&#39;s cx samræma",
+		"ellipse_cy": "Breyta sporbaug&#39;s cy samræma",
+		"ellipse_rx": "X radíus Breyta sporbaug&#39;s",
+		"ellipse_ry": "Y radíus Breyta sporbaug&#39;s",
+		"line_x1": "Breyta lína í byrjun x samræma",
+		"line_x2": "Breyta lína&#39;s Ending x samræma",
+		"line_y1": "Breyta lína í byrjun y samræma",
+		"line_y2": "Breyta lína er endir y samræma",
+		"rect_height": "Breyta rétthyrningur hæð",
+		"rect_width": "Skipta rétthyrningur width",
+		"corner_radius": "Breyta rétthyrningur Corner Radíus",
+		"image_width": "Breyta mynd width",
+		"image_height": "Breyta mynd hæð",
+		"image_url": "Breyta URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Breyta texta innihald",
+		"font_family": "Change Leturfjölskylda",
+		"font_size": "Breyta leturstærð",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Breyta bakgrunnslit / opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Laga til efni",
+		"fit_to_canvas": "Fit á striga",
+		"fit_to_layer_content": "Laga til lag efni",
+		"fit_to_sel": "Fit til val",
+		"align_relative_to": "Jafna miðað við ...",
+		"relativeTo": "hlutfallslegt til:",
+		"síðu": "síðu",
+		"largest_object": "stærsti hlutinn",
+		"selected_objects": "kjörinn hlutir",
+		"smallest_object": "lítill hluti",
+		"new_doc": "New Image",
+		"open_doc": "Opna mynd",
+		"export_png": "Export as PNG",
+		"save_doc": "Spara Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Jafna Bottom",
+		"align_center": "Jafna Center",
+		"align_left": "Vinstri jöfnun",
+		"align_middle": "Jafna Mið",
+		"align_right": "Hægri jöfnun",
+		"align_top": "Jöfnun Top",
+		"mode_select": "Veldu Tól",
+		"mode_fhpath": "Blýantur Tól",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand rétthyrningur",
+		"mode_ellipse": "Sporbaugur",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Sporbaugur",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Mynd Tól",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Hætta",
+		"redo": "Endurtaka",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Group Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Færa Bottom",
+		"move_top": "Fara efst á síðu",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Vista",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Eyða Lag",
+		"move_down": "Færa Layer Down",
+		"new": "Lag",
+		"rename": "Endurnefna Lag",
+		"move_up": "Færa Lag Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Veldu predefined:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 176
main/inc/lib/svg-edit/locale/lang.it.js

@@ -1,176 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Allineati a ..."},
-{"id": "bkgnd_color", "title": "Cambia colore/opacità dello sfondo"},
-{"id": "circle_cx", "title": "Cambia la coordinata Cx del cerchio"},
-{"id": "circle_cy", "title": "Cambia la coordinata Cy del cerchio"},
-{"id": "circle_r", "title": "Cambia il raggio del cerchio"},
-{"id": "connector_no_arrow", "textContent": "No freccia"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Cambia il raggio dell'angolo"},
-{"id": "curve_segments", "textContent": "Curva"},
-{"id": "ellipse_cx", "title": "Cambia la coordinata Cx dell'ellisse"},
-{"id": "ellipse_cy", "title": "Cambia la coordinata Cy dell'ellisse"},
-{"id": "ellipse_rx", "title": "Cambia l'asse x dell'ellisse"},
-{"id": "ellipse_ry", "title": "Cambia l'asse y dell'ellisse"},
-{"id": "fill_color", "title": "Cambia il colore di riempimento"},
-{"id": "fitToContent", "textContent": "Adatta al contenuto"},
-{"id": "fit_to_all", "textContent": "Adatta a tutti i contenuti"},
-{"id": "fit_to_canvas", "textContent": "Adatta all'area di disegno"},
-{"id": "fit_to_layer_content", "textContent": "Adatta al contenuto del livello"},
-{"id": "fit_to_sel", "textContent": "Adatta alla selezione"},
-{"id": "font_family", "title": "Cambia il tipo di Font"},
-{"id": "icon_large", "textContent": "Grande"},
-{"id": "icon_medium", "textContent": "Medio"},
-{"id": "icon_small", "textContent": "Piccolo"},
-{"id": "icon_xlarge", "textContent": "Molto grande"},
-{"id": "idLabel", "title": "Identifica l'elemento"},
-{"id": "image_height", "title": "Cambia l'altezza dell'immagine"},
-{"id": "image_opt_embed", "textContent": "Incorpora dati (file locali)"},
-{"id": "image_opt_ref", "textContent": "Usa l'identificativo di riferimento"},
-{"id": "image_url", "title": "Cambia URL"},
-{"id": "image_width", "title": "Cambia la larghezza dell'immagine"},
-{"id": "includedImages", "textContent": "Immagini incluse"},
-{"id": "largest_object", "textContent": "Oggetto più grande"},
-{"id": "layer_delete", "title": "Elimina il livello"},
-{"id": "layer_down", "title": "Sposta indietro il livello"},
-{"id": "layer_new", "title": "Nuovo livello"},
-{"id": "layer_rename", "title": "Rinomina il livello"},
-{"id": "layer_up", "title": "Sposta avanti il livello"},
-{"id": "layersLabel", "textContent": "Livello:"},
-{"id": "line_x1", "title": "Modifica la coordinata iniziale x della linea"},
-{"id": "line_x2", "title": "Modifica la coordinata finale x della linea"},
-{"id": "line_y1", "title": "Modifica la coordinata iniziale y della linea"},
-{"id": "line_y2", "title": "Modifica la coordinata finale y della linea"},
-{"id": "linecap_butt", "title": "Inizio linea: Punto"},
-{"id": "linecap_round", "title": "Inizio linea: Tondo"},
-{"id": "linecap_square", "title": "Inizio linea: Quadrato"},
-{"id": "linejoin_bevel", "title": "Giunzione: smussata"},
-{"id": "linejoin_miter", "title": "Giunzione: spezzata"},
-{"id": "linejoin_round", "title": "Giunzione: arrotondata"},
-{"id": "main_icon", "title": "Menù principale"},
-{"id": "mode_connect", "title": "Collega due oggetti"},
-{"id": "page", "textContent": "Pagina"},
-{"id": "palette", "title": "Fare clic per cambiare il colore di riempimento, shift-click per cambiare colore del tratto"},
-{"id": "path_node_x", "title": "Modifica la coordinata x del nodo"},
-{"id": "path_node_y", "title": "Modifica la coordinata y del nodo"},
-{"id": "rect_height_tool", "title": "Cambia l'altezza rettangolo"},
-{"id": "rect_width_tool", "title": "Cambia la larghezza rettangolo"},
-{"id": "relativeToLabel", "textContent": "Rispetto a:"},
-{"id": "seg_type", "title": "Cambia il tipo di segmento"},
-{"id": "selLayerLabel", "textContent": "Sposta verso:"},
-{"id": "selLayerNames", "title": "Sposta gli elementi in un diverso livello"},
-{"id": "selectedPredefined", "textContent": "Selezioni predefinite:"},
-{"id": "selected_objects", "textContent": "Oggetti selezionati"},
-{"id": "selected_x", "title": "Modifica la coordinata x"},
-{"id": "selected_y", "title": "Modifica la coordinata y"},
-{"id": "smallest_object", "textContent": "Oggetto più piccolo"},
-{"id": "straight_segments", "textContent": "Linea retta"},
-{"id": "stroke_color", "title": "Cambia il colore del tratto"},
-{"id": "stroke_style", "title": "Cambia lo stile del tratto"},
-{"id": "stroke_width", "title": "Cambia la larghezza del tratto"},
-{"id": "svginfo_bg_note", "textContent": "Nota: Lo sfondo non verrà salvato con l'immagine."},
-{"id": "svginfo_change_background", "textContent": "Sfondo dell'editor"},
-{"id": "svginfo_dim", "textContent": "Dimensioni dell'area di disegno"},
-{"id": "svginfo_editor_prefs", "textContent": "Preferenze"},
-{"id": "svginfo_height", "textContent": "Altezza:"},
-{"id": "svginfo_icons", "textContent": "Dimensione Icona"},
-{"id": "svginfo_image_props", "textContent": "Proprietà Immagine"},
-{"id": "svginfo_lang", "textContent": "Lingua"},
-{"id": "svginfo_title", "textContent": "Titolo"},
-{"id": "svginfo_width", "textContent": "Ampiezza:"},
-{"id": "text", "title": "Cambia il contenuto del testo"},
-{"id": "toggle_stroke_tools", "title": "Mostra/nascondi strumenti per il tratto"},
-{"id": "tool_add_subpath", "title": "Aggiungi sotto-percorso"},
-{"id": "tool_alignbottom", "title": "Allinea in basso"},
-{"id": "tool_aligncenter", "title": "Allinea al centro"},
-{"id": "tool_alignleft", "title": "Allinea a sinistra"},
-{"id": "tool_alignmiddle", "title": "Allinea al centro"},
-{"id": "tool_alignright", "title": "Allinea a destra"},
-{"id": "tool_aligntop", "title": "Allinea in alto"},
-{"id": "tool_angle", "title": "Cambia l'angolo di rotazione"},
-{"id": "tool_blur", "title": "Cambia l'intensità della sfocatura"},
-{"id": "tool_bold", "title": "Grassetto"},
-{"id": "tool_circle", "title": "Cerchio"},
-{"id": "tool_clear", "textContent": "Nuova immagine"},
-{"id": "tool_clone", "title": "Clona l'elemento"},
-{"id": "tool_clone_multi", "title": "Clona più elementi"},
-{"id": "tool_delete", "title": "Cancella l'elemento"},
-{"id": "tool_delete_multi", "title": "Elimina gli elementi selezionati"},
-{"id": "tool_docprops", "textContent": "Proprietà del documento"},
-{"id": "tool_docprops_cancel", "textContent": "Annulla"},
-{"id": "tool_docprops_save", "textContent": "Salva"},
-{"id": "tool_ellipse", "title": "Ellisse"},
-{"id": "tool_export", "textContent": "Esporta come PNG"},
-{"id": "tool_eyedropper", "title": "Seleziona colore"},
-{"id": "tool_fhellipse", "title": "Ellisse a mano libera"},
-{"id": "tool_fhpath", "title": "Matita"},
-{"id": "tool_fhrect", "title": "Rettangolo a mano libera"},
-{"id": "tool_font_size", "title": "Modifica dimensione carattere"},
-{"id": "tool_group", "title": "Raggruppa elementi"},
-{"id": "tool_image", "title": "Immagine"},
-{"id": "tool_import", "textContent": "Importa SVG"},
-{"id": "tool_italic", "title": "Corsivo"},
-{"id": "tool_line", "title": "Linea"},
-{"id": "tool_move_bottom", "title": "Sposta in fondo"},
-{"id": "tool_move_top", "title": "Sposta in cima"},
-{"id": "tool_node_clone", "title": "Clona nodo"},
-{"id": "tool_node_delete", "title": "Elimina nodo"},
-{"id": "tool_node_link", "title": "Collegamento tra punti di controllo"},
-{"id": "tool_opacity", "title": "Cambia l'opacità dell'oggetto selezionato"},
-{"id": "tool_open", "textContent": "Apri immagine"},
-{"id": "tool_openclose_path", "title": "Apri/chiudi spezzata"},
-{"id": "tool_path", "title": "Spezzata"},
-{"id": "tool_position", "title": "Allinea elementi alla pagina"},
-{"id": "tool_rect", "title": "Rettangolo"},
-{"id": "tool_redo", "title": "Rifai"},
-{"id": "tool_reorient", "title": "Riallinea"},
-{"id": "tool_save", "textContent": "Salva"},
-{"id": "tool_select", "title": "Seleziona"},
-{"id": "tool_source", "title": "Modifica sorgente"},
-{"id": "tool_source_cancel", "textContent": "Annulla"},
-{"id": "tool_source_save", "textContent": "Salva"},
-{"id": "tool_square", "title": "Quadrato"},
-{"id": "tool_text", "title": "Testo"},
-{"id": "tool_topath", "title": "Converti in tracciato"},
-{"id": "tool_undo", "title": "Annulla"},
-{"id": "tool_ungroup", "title": "Separa gli elementi"},
-{"id": "tool_wireframe", "title": "Contorno"},
-{"id": "tool_zoom", "title": "Zoom"},
-{"id": "url_notice", "title": "NOTA: L'immagine non può essere incorporata: dipenderà dal percorso assoluto per essere vista"},
-{"id": "zoom_panel", "title": "Cambia il livello di zoom"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "titolo": "Trascina a sinistra/destra per ridimensionare il pannello"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Ci sono errori nel codice sorgente SVG.\nRitorno al codice originale?", 
-  "QignoreSourceChanges": "Ignoro i cambiamenti nel sorgente SVG?", 
-  "QmoveElemsToLayer": "Sposta gli elementi selezionali al livello '%s'?", 
-  "QwantToClear": "Vuoi cancellare il disegno?\nVerrà eliminato anche lo storico delle modifiche!", 
-  "cancel": "Annulla", 
-  "defsFailOnSave": "NOTA: A causa dlle caratteristiche del tuo browser, l'immagine potrà apparire errata (senza elementi o gradazioni) finché non sarà salvata.", 
-  "dupeLayerName": "C'è già un livello con questo nome!", 
-  "enterNewImgURL": "Scrivi un nuovo URL per l'immagine", 
-  "enterNewLayerName": "Assegna un nome al livello", 
-  "enterUniqueLayerName": "Assegna un diverso nome a ciascun livello, grazie!", 
-  "exportNoBlur": "Gli elementi sfocati appariranno non sfocati", 
-  "exportNoDashArray": "I tratti appariranno pieni", 
-  "exportNoImage": "Elementi dell'immagine non compariranno", 
-  "exportNoText": "Il testo non apparirà come indicato", 
-  "exportNoforeignObject": "Gli elementi dell'oggetto esterno non potranno essere visti", 
-  "featNotSupported": "Caratteristica non supportata", 
-  "invalidAttrValGiven": "Valore assegnato non valido", 
-  "key_backspace": "backspace", 
-  "key_del": "Canc", 
-  "key_down": "giù", 
-  "key_up": "su", 
-  "layer": "Livello", 
-  "layerHasThatName": "Un livello ha già questo nome", 
-  "loadingImage": "Sto caricando l'immagine. attendere prego...", 
-  "noContentToFitTo": "Non c'è contenuto cui adeguarsi", 
-  "noteTheseIssues": "Nota le seguenti particolarità: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Trascina il punto di controllo per assestare le proprietà della curva", 
-  "pathNodeTooltip": "Trascina il nodo per spostarlo. Doppo click per cambiare i tipo di segmento", 
-  "saveFromBrowser": "Seleziona \"Salva con nome...\" nel browser per salvare l'immagine con nome %s ."
- }
-}
-]
+svgEditor.readLang({
+	lang: "it",
+	dir : "ltr",
+	common: {
+		"ok": "Salva",
+		"cancel": "Annulla",
+		"key_backspace": "backspace", 
+		"key_del": "Canc", 
+		"key_down": "giù", 
+		"key_up": "su", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Mostra/nascondi strumenti per il tratto",
+		"palette_info": "Fare clic per cambiare il colore di riempimento, shift-click per cambiare colore del tratto",
+		"zoom_level": "Cambia il livello di zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identifica l'elemento",
+		"fill_color": "Cambia il colore di riempimento",
+		"stroke_color": "Cambia il colore del tratto",
+		"stroke_style": "Cambia lo stile del tratto",
+		"stroke_width": "Cambia la larghezza del tratto",
+		"pos_x": "Modifica la coordinata x",
+		"pos_y": "Modifica la coordinata y",
+		"linecap_butt": "Inizio linea: Punto",
+		"linecap_round": "Inizio linea: Tondo",
+		"linecap_square": "Inizio linea: Quadrato",
+		"linejoin_bevel": "Giunzione: smussata",
+		"linejoin_miter": "Giunzione: spezzata",
+		"linejoin_round": "Giunzione: arrotondata",
+		"angle": "Cambia l'angolo di rotazione",
+		"blur": "Cambia l'intensità della sfocatura",
+		"opacity": "Cambia l'opacità dell'oggetto selezionato",
+		"circle_cx": "Cambia la coordinata Cx del cerchio",
+		"circle_cy": "Cambia la coordinata Cy del cerchio",
+		"circle_r": "Cambia il raggio del cerchio",
+		"ellipse_cx": "Cambia la coordinata Cx dell'ellisse",
+		"ellipse_cy": "Cambia la coordinata Cy dell'ellisse",
+		"ellipse_rx": "Cambia l'asse x dell'ellisse",
+		"ellipse_ry": "Cambia l'asse y dell'ellisse",
+		"line_x1": "Modifica la coordinata iniziale x della linea",
+		"line_x2": "Modifica la coordinata finale x della linea",
+		"line_y1": "Modifica la coordinata iniziale y della linea",
+		"line_y2": "Modifica la coordinata finale y della linea",
+		"rect_height": "Cambia l'altezza rettangolo",
+		"rect_width": "Cambia la larghezza rettangolo",
+		"corner_radius": "Cambia il raggio dell'angolo",
+		"image_width": "Cambia la larghezza dell'immagine",
+		"image_height": "Cambia l'altezza dell'immagine",
+		"image_url": "Cambia URL",
+		"node_x": "Modifica la coordinata x del nodo",
+		"node_y": "Modifica la coordinata y del nodo",
+		"seg_type": "Cambia il tipo di segmento",
+		"straight_segments": "Linea retta",
+		"curve_segments": "Curva",
+		"text_contents": "Cambia il contenuto del testo",
+		"font_family": "Cambia il tipo di Font",
+		"font_size": "Modifica dimensione carattere",
+		"bold": "Grassetto",
+		"italic": "Corsivo"
+	},
+	tools: { 
+		"main_menu": "Menù principale",
+		"bkgnd_color_opac": "Cambia colore/opacità dello sfondo",
+		"connector_no_arrow": "No freccia",
+		"fitToContent": "Adatta al contenuto",
+		"fit_to_all": "Adatta a tutti i contenuti",
+		"fit_to_canvas": "Adatta all'area di disegno",
+		"fit_to_layer_content": "Adatta al contenuto del livello",
+		"fit_to_sel": "Adatta alla selezione",
+		"align_relative_to": "Allineati a ...",
+		"relativeTo": "Rispetto a:",
+		"Pagina": "Pagina",
+		"largest_object": "Oggetto più grande",
+		"selected_objects": "Oggetti selezionati",
+		"smallest_object": "Oggetto più piccolo",
+		"new_doc": "Nuova immagine",
+		"open_doc": "Apri immagine",
+		"export_png": "Esporta come PNG",
+		"save_doc": "Salva",
+		"import_doc": "Importa SVG",
+		"align_to_page": "Allinea elementi alla pagina",
+		"align_bottom": "Allinea in basso",
+		"align_center": "Allinea al centro",
+		"align_left": "Allinea a sinistra",
+		"align_middle": "Allinea al centro",
+		"align_right": "Allinea a destra",
+		"align_top": "Allinea in alto",
+		"mode_select": "Seleziona",
+		"mode_fhpath": "Matita",
+		"mode_line": "Linea",
+		"mode_connect": "Collega due oggetti",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Rettangolo a mano libera",
+		"mode_ellipse": "Ellisse",
+		"mode_circle": "Cerchio",
+		"mode_fhellipse": "Ellisse a mano libera",
+		"mode_path": "Spezzata",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Testo",
+		"mode_image": "Immagine",
+		"mode_zoom": "Zoom",
+		"mode_eyedropper": "Seleziona colore",
+		"no_embed": "NOTA: L'immagine non può essere incorporata: dipenderà dal percorso assoluto per essere vista",
+		"undo": "Annulla",
+		"redo": "Rifai",
+		"tool_source": "Modifica sorgente",
+		"wireframe_mode": "Contorno",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Raggruppa elementi",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Converti in tracciato",
+		"reorient_path": "Riallinea",
+		"ungroup": "Separa gli elementi",
+		"docprops": "Proprietà del documento",
+		"imagelib": "Image Library",
+		"move_bottom": "Sposta in fondo",
+		"move_top": "Sposta in cima",
+		"node_clone": "Clona nodo",
+		"node_delete": "Elimina nodo",
+		"node_link": "Collegamento tra punti di controllo",
+		"add_subpath": "Aggiungi sotto-percorso",
+		"openclose_path": "Apri/chiudi spezzata",
+		"source_save": "Salva",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"Canc": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Livello",
+		"layers": "Layers",
+		"del": "Elimina il livello",
+		"move_down": "Sposta indietro il livello",
+		"new": "Nuovo livello",
+		"rename": "Rinomina il livello",
+		"move_up": "Sposta avanti il livello",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Sposta verso:",
+		"move_selected": "Sposta gli elementi in un diverso livello"
+	},
+	config: {
+		"image_props": "Proprietà Immagine",
+		"doc_title": "Titolo",
+		"doc_dims": "Dimensioni dell'area di disegno",
+		"included_images": "Immagini incluse",
+		"image_opt_embed": "Incorpora dati (file locali)",
+		"image_opt_ref": "Usa l'identificativo di riferimento",
+		"editor_prefs": "Preferenze",
+		"icon_size": "Dimensione Icona",
+		"language": "Lingua",
+		"background": "Sfondo dell'editor",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Nota: Lo sfondo non verrà salvato con l'immagine.",
+		"icon_large": "Grande",
+		"icon_medium": "Medio",
+		"icon_small": "Piccolo",
+		"icon_xlarge": "Molto grande",
+		"select_predefined": "Selezioni predefinite:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Valore assegnato non valido",
+		"noContentToFitTo":"Non c'è contenuto cui adeguarsi",
+		"dupeLayerName":"C'è già un livello con questo nome!",
+		"enterUniqueLayerName":"Assegna un diverso nome a ciascun livello, grazie!",
+		"enterNewLayerName":"Assegna un nome al livello",
+		"layerHasThatName":"Un livello ha già questo nome",
+		"QmoveElemsToLayer":"Sposta gli elementi selezionali al livello '%s'?",
+		"QwantToClear":"Vuoi cancellare il disegno?\nVerrà eliminato anche lo storico delle modifiche!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Ci sono errori nel codice sorgente SVG.\nRitorno al codice originale?",
+		"QignoreSourceChanges":"Ignoro i cambiamenti nel sorgente SVG?",
+		"featNotSupported":"Caratteristica non supportata",
+		"enterNewImgURL":"Scrivi un nuovo URL per l'immagine",
+		"defsFailOnSave": "NOTA: A causa dlle caratteristiche del tuo browser, l'immagine potrà apparire errata (senza elementi o gradazioni) finché non sarà salvata.",
+		"loadingImage":"Sto caricando l'immagine. attendere prego...",
+		"saveFromBrowser": "Seleziona \"Salva con nome...\" nel browser per salvare l'immagine con nome %s .",
+		"noteTheseIssues": "Nota le seguenti particolarità: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 174
main/inc/lib/svg-edit/locale/lang.ja.js

@@ -1,174 +1,234 @@
-[
-{"id": "align_relative_to", "title": "揃える"},
-{"id": "bkgnd_color", "title": "背景色/不透明度の変更"},
-{"id": "circle_cx", "title": "円の中心を変更(X座標)"},
-{"id": "circle_cy", "title": "円の中心を変更(Y座標)"},
-{"id": "circle_r", "title": "変更円の半径"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "角の半径:"},
-{"id": "cornerRadiusLabel", "title": "長方形の角の半径を変更"},
-{"id": "curve_segments", "textContent": "カーブ"},
-{"id": "ellipse_cx", "title": "楕円の中心を変更(X座標)"},
-{"id": "ellipse_cy", "title": "楕円の中心を変更(Y座標)"},
-{"id": "ellipse_rx", "title": "楕円の半径を変更(X座標)"},
-{"id": "ellipse_ry", "title": "楕円の半径を変更(Y座標)"},
-{"id": "fill_color", "title": "塗りの色を変更"},
-{"id": "fitToContent", "textContent": "コンテンツに合わせる"},
-{"id": "fit_to_all", "textContent": "すべてのコンテンツに合わせる"},
-{"id": "fit_to_canvas", "textContent": "キャンバスに合わせる"},
-{"id": "fit_to_layer_content", "textContent": "レイヤー上のコンテンツに合わせる"},
-{"id": "fit_to_sel", "textContent": "選択対象に合わせる"},
-{"id": "font_family", "title": "フォントファミリーの変更"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "画像の高さを変更"},
-{"id": "image_opt_embed", "textContent": "SVGファイルに埋め込む"},
-{"id": "image_opt_ref", "textContent": "画像を参照する"},
-{"id": "image_url", "title": "URLを変更"},
-{"id": "image_width", "title": "画像の幅を変更"},
-{"id": "includedImages", "textContent": "挿入された画像の扱い"},
-{"id": "largest_object", "textContent": "最大のオブジェクト"},
-{"id": "layer_delete", "title": "レイヤの削除"},
-{"id": "layer_down", "title": "レイヤを下へ移動"},
-{"id": "layer_new", "title": "新規レイヤ"},
-{"id": "layer_rename", "title": "レイヤの名前を変更"},
-{"id": "layer_up", "title": "レイヤを上へ移動"},
-{"id": "layersLabel", "textContent": "レイヤ:"},
-{"id": "line_x1", "title": "開始X座標"},
-{"id": "line_x2", "title": "終了X座標"},
-{"id": "line_y1", "title": "開始Y座標"},
-{"id": "line_y2", "title": "終了Y座標"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "ページ"},
-{"id": "palette", "title": "クリックで塗りの色を選択、Shift+クリックで線の色を選択"},
-{"id": "path_node_x", "title": "ノードのX座標を変更"},
-{"id": "path_node_y", "title": "ノードのY座標を変更"},
-{"id": "rect_height_tool", "title": "長方形の高さを変更"},
-{"id": "rect_width_tool", "title": "長方形の幅を変更"},
-{"id": "relativeToLabel", "textContent": "相対:"},
-{"id": "seg_type", "title": "線分の種類を変更"},
-{"id": "selLayerLabel", "textContent": "移動先レイヤ:"},
-{"id": "selLayerNames", "title": "選択対象を別のレイヤに移動"},
-{"id": "selectedPredefined", "textContent": "デフォルト"},
-{"id": "selected_objects", "textContent": "選択オブジェクト"},
-{"id": "selected_x", "title": "X座標を変更"},
-{"id": "selected_y", "title": "Y座標を変更"},
-{"id": "smallest_object", "textContent": "最小のオブジェクト"},
-{"id": "straight_segments", "textContent": "直線"},
-{"id": "stroke_color", "title": "線の色を変更"},
-{"id": "stroke_style", "title": "線種の変更"},
-{"id": "stroke_width", "title": "線幅の変更"},
-{"id": "svginfo_bg_note", "textContent": "※背景色はファイルに保存されません。"},
-{"id": "svginfo_change_background", "textContent": "エディタの背景色"},
-{"id": "svginfo_dim", "textContent": "キャンバスの大きさ"},
-{"id": "svginfo_editor_prefs", "textContent": "エディタの設定"},
-{"id": "svginfo_height", "textContent": "高さ:"},
-{"id": "svginfo_icons", "textContent": "アイコンの大きさ"},
-{"id": "svginfo_image_props", "textContent": "イメージの設定"},
-{"id": "svginfo_lang", "textContent": "言語"},
-{"id": "svginfo_title", "textContent": "タイトル"},
-{"id": "svginfo_width", "textContent": "幅:"},
-{"id": "text", "title": "テキストの内容の変更"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "下揃え"},
-{"id": "tool_aligncenter", "title": "中央揃え"},
-{"id": "tool_alignleft", "title": "左揃え"},
-{"id": "tool_alignmiddle", "title": "中央揃え"},
-{"id": "tool_alignright", "title": "右揃え"},
-{"id": "tool_aligntop", "title": "上揃え"},
-{"id": "tool_angle", "title": "回転角の変更"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "太字"},
-{"id": "tool_circle", "title": "円"},
-{"id": "tool_clear", "textContent": "新規イメージ"},
-{"id": "tool_clone", "title": "複製"},
-{"id": "tool_clone_multi", "title": "選択対象を複製"},
-{"id": "tool_delete", "title": "削除"},
-{"id": "tool_delete_multi", "title": "選択対象を削除"},
-{"id": "tool_docprops", "textContent": "文書のプロパティ"},
-{"id": "tool_docprops_cancel", "textContent": "キャンセル"},
-{"id": "tool_docprops_save", "textContent": "OK"},
-{"id": "tool_ellipse", "title": "楕円"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "フリーハンド楕円"},
-{"id": "tool_fhpath", "title": "鉛筆ツール"},
-{"id": "tool_fhrect", "title": "フリーハンド長方形"},
-{"id": "tool_font_size", "title": "文字サイズの変更"},
-{"id": "tool_group", "title": "グループ化"},
-{"id": "tool_image", "title": "イメージツール"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "イタリック体"},
-{"id": "tool_line", "title": "直線ツール"},
-{"id": "tool_move_bottom", "title": "奥に移動"},
-{"id": "tool_move_top", "title": "手前に移動"},
-{"id": "tool_node_clone", "title": "ノードを複製"},
-{"id": "tool_node_delete", "title": "ノードを削除"},
-{"id": "tool_node_link", "title": "制御点の接続"},
-{"id": "tool_opacity", "title": "不透明度"},
-{"id": "tool_open", "textContent": "イメージを開く"},
-{"id": "tool_path", "title": "パスツール"},
-{"id": "tool_rect", "title": "長方形"},
-{"id": "tool_redo", "title": "やり直し"},
-{"id": "tool_reorient", "title": "現在の角度を0度とする"},
-{"id": "tool_save", "textContent": "画像を保存"},
-{"id": "tool_select", "title": "選択ツール"},
-{"id": "tool_source", "title": "ソースの編集"},
-{"id": "tool_source_cancel", "textContent": "キャンセル"},
-{"id": "tool_source_save", "textContent": "適用"},
-{"id": "tool_square", "title": "正方形"},
-{"id": "tool_text", "title": "テキストツール"},
-{"id": "tool_topath", "title": "パスに変換"},
-{"id": "tool_undo", "title": "元に戻す"},
-{"id": "tool_ungroup", "title": "グループ化を解除"},
-{"id": "tool_wireframe", "title": "ワイヤーフレームで表示 [F]"},
-{"id": "tool_zoom", "title": "ズームツール"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "ズーム倍率の変更"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "ドラッグで幅の調整"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "ソースにエラーがあります。\n元のソースに戻しますか?", 
-  "QignoreSourceChanges": "ソースの変更を無視しますか?", 
-  "QmoveElemsToLayer": "選択した要素をレイヤー '%s' に移動しますか?", 
-  "QwantToClear": "キャンバスをクリアしますか?\nアンドゥ履歴も消去されます。", 
-  "cancel": "キャンセル", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "同名のレイヤーが既に存在します。", 
-  "enterNewImgURL": "画像のURLを入力してください。", 
-  "enterNewLayerName": "レイヤの新しい名前を入力してください。", 
-  "enterUniqueLayerName": "新規レイヤの一意な名前を入力してください。", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "機能はサポートされていません。", 
-  "invalidAttrValGiven": "無効な値が指定されています。", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "レイヤ", 
-  "layerHasThatName": "既に同名が付いています。", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "合わせる対象のコンテンツがありません。", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "カーブの形状を調整するには、制御点をドラッグしてください。", 
-  "pathNodeTooltip": "移動するには、ノードをドラッグしてください。ノードをダブルクリックすると線分の種類を変更できます。", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "ja",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "キャンセル",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "クリックで塗りの色を選択、Shift+クリックで線の色を選択",
+		"zoom_level": "ズーム倍率の変更",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "塗りの色を変更",
+		"stroke_color": "線の色を変更",
+		"stroke_style": "線種の変更",
+		"stroke_width": "線幅の変更",
+		"pos_x": "X座標を変更",
+		"pos_y": "Y座標を変更",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "回転角の変更",
+		"blur": "Change gaussian blur value",
+		"opacity": "不透明度",
+		"circle_cx": "円の中心を変更(X座標)",
+		"circle_cy": "円の中心を変更(Y座標)",
+		"circle_r": "変更円の半径",
+		"ellipse_cx": "楕円の中心を変更(X座標)",
+		"ellipse_cy": "楕円の中心を変更(Y座標)",
+		"ellipse_rx": "楕円の半径を変更(X座標)",
+		"ellipse_ry": "楕円の半径を変更(Y座標)",
+		"line_x1": "開始X座標",
+		"line_x2": "終了X座標",
+		"line_y1": "開始Y座標",
+		"line_y2": "終了Y座標",
+		"rect_height": "長方形の高さを変更",
+		"rect_width": "長方形の幅を変更",
+		"corner_radius": "長方形の角の半径を変更",
+		"image_width": "画像の幅を変更",
+		"image_height": "画像の高さを変更",
+		"image_url": "URLを変更",
+		"node_x": "ノードのX座標を変更",
+		"node_y": "ノードのY座標を変更",
+		"seg_type": "線分の種類を変更",
+		"straight_segments": "直線",
+		"curve_segments": "カーブ",
+		"text_contents": "テキストの内容の変更",
+		"font_family": "フォントファミリーの変更",
+		"font_size": "文字サイズの変更",
+		"bold": "太字",
+		"italic": "イタリック体"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "背景色/不透明度の変更",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "コンテンツに合わせる",
+		"fit_to_all": "すべてのコンテンツに合わせる",
+		"fit_to_canvas": "キャンバスに合わせる",
+		"fit_to_layer_content": "レイヤー上のコンテンツに合わせる",
+		"fit_to_sel": "選択対象に合わせる",
+		"align_relative_to": "揃える",
+		"relativeTo": "相対:",
+		"ページ": "ページ",
+		"largest_object": "最大のオブジェクト",
+		"selected_objects": "選択オブジェクト",
+		"smallest_object": "最小のオブジェクト",
+		"new_doc": "新規イメージ",
+		"open_doc": "イメージを開く",
+		"export_png": "Export as PNG",
+		"save_doc": "画像を保存",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "下揃え",
+		"align_center": "中央揃え",
+		"align_left": "左揃え",
+		"align_middle": "中央揃え",
+		"align_right": "右揃え",
+		"align_top": "上揃え",
+		"mode_select": "選択ツール",
+		"mode_fhpath": "鉛筆ツール",
+		"mode_line": "直線ツール",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "フリーハンド長方形",
+		"mode_ellipse": "楕円",
+		"mode_circle": "円",
+		"mode_fhellipse": "フリーハンド楕円",
+		"mode_path": "パスツール",
+		"mode_shapelib": "Shape library",
+		"mode_text": "テキストツール",
+		"mode_image": "イメージツール",
+		"mode_zoom": "ズームツール",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "元に戻す",
+		"redo": "やり直し",
+		"tool_source": "ソースの編集",
+		"wireframe_mode": "ワイヤーフレームで表示 [F]",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "グループ化",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "パスに変換",
+		"reorient_path": "現在の角度を0度とする",
+		"ungroup": "グループ化を解除",
+		"docprops": "文書のプロパティ",
+		"imagelib": "Image Library",
+		"move_bottom": "奥に移動",
+		"move_top": "手前に移動",
+		"node_clone": "ノードを複製",
+		"node_delete": "ノードを削除",
+		"node_link": "制御点の接続",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "適用",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"レイヤ",
+		"layers": "Layers",
+		"del": "レイヤの削除",
+		"move_down": "レイヤを下へ移動",
+		"new": "新規レイヤ",
+		"rename": "レイヤの名前を変更",
+		"move_up": "レイヤを上へ移動",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "移動先レイヤ:",
+		"move_selected": "選択対象を別のレイヤに移動"
+	},
+	config: {
+		"image_props": "イメージの設定",
+		"doc_title": "タイトル",
+		"doc_dims": "キャンバスの大きさ",
+		"included_images": "挿入された画像の扱い",
+		"image_opt_embed": "SVGファイルに埋め込む",
+		"image_opt_ref": "画像を参照する",
+		"editor_prefs": "エディタの設定",
+		"icon_size": "アイコンの大きさ",
+		"language": "言語",
+		"background": "エディタの背景色",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "※背景色はファイルに保存されません。",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "デフォルト",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"無効な値が指定されています。",
+		"noContentToFitTo":"合わせる対象のコンテンツがありません。",
+		"dupeLayerName":"同名のレイヤーが既に存在します。",
+		"enterUniqueLayerName":"新規レイヤの一意な名前を入力してください。",
+		"enterNewLayerName":"レイヤの新しい名前を入力してください。",
+		"layerHasThatName":"既に同名が付いています。",
+		"QmoveElemsToLayer":"選択した要素をレイヤー '%s' に移動しますか?",
+		"QwantToClear":"キャンバスをクリアしますか?\nアンドゥ履歴も消去されます。",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"ソースにエラーがあります。\n元のソースに戻しますか?",
+		"QignoreSourceChanges":"ソースの変更を無視しますか?",
+		"featNotSupported":"機能はサポートされていません。",
+		"enterNewImgURL":"画像のURLを入力してください。",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.ko.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "정렬 상대적으로 ..."},
-{"id": "bkgnd_color", "title": "배경 색상 변경 / 투명도"},
-{"id": "circle_cx", "title": "변경 동그라미 CX는 좌표"},
-{"id": "circle_cy", "title": "동그라미 싸이 변경 조정할 수있어"},
-{"id": "circle_r", "title": "변경 원의 반지름"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "변경 직사각형 코너 반경"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "CX는 타원의 좌표 변경"},
-{"id": "ellipse_cy", "title": "싸이 타원 변경 조정할 수있어"},
-{"id": "ellipse_rx", "title": "변경 타원의 x 반지름"},
-{"id": "ellipse_ry", "title": "변경 타원의 y를 반경"},
-{"id": "fill_color", "title": "채우기 색상 변경"},
-{"id": "fitToContent", "textContent": "맞춤 콘텐츠"},
-{"id": "fit_to_all", "textContent": "맞춤 모든 콘텐츠에"},
-{"id": "fit_to_canvas", "textContent": "맞춤 캔버스"},
-{"id": "fit_to_layer_content", "textContent": "레이어에 맞게 콘텐츠"},
-{"id": "fit_to_sel", "textContent": "맞춤 선택"},
-{"id": "font_family", "title": "글꼴 변경 패밀리"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "이미지 높이 변경"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "URL 변경"},
-{"id": "image_width", "title": "이미지 변경 폭"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "큰 개체"},
-{"id": "layer_delete", "title": "레이어 삭제"},
-{"id": "layer_down", "title": "레이어 아래로 이동"},
-{"id": "layer_new", "title": "새 레이어"},
-{"id": "layer_rename", "title": "레이어 이름 바꾸기"},
-{"id": "layer_up", "title": "레이어 위로 이동"},
-{"id": "layersLabel", "textContent": "레이어:"},
-{"id": "line_x1", "title": "변경 라인의 X 좌표 시작"},
-{"id": "line_x2", "title": "변경 라인의 X 좌표 결말"},
-{"id": "line_y1", "title": "라인 변경 y를 시작 좌표"},
-{"id": "line_y2", "title": "라인 변경 y를 결말의 좌표"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "페이지"},
-{"id": "palette", "title": "색상을 클릭, 근무 시간 채우기 스트로크 색상을 변경하려면 변경하려면"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "사각형의 높이를 변경"},
-{"id": "rect_width_tool", "title": "사각형의 너비 변경"},
-{"id": "relativeToLabel", "textContent": "상대:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "미리 정의된 선택:"},
-{"id": "selected_objects", "textContent": "당선 개체"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "작은 개체"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "뇌졸중으로 색상 변경"},
-{"id": "stroke_style", "title": "뇌졸중 변경 대시 스타일"},
-{"id": "stroke_width", "title": "뇌졸중 너비 변경"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "높이:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "너비:"},
-{"id": "text", "title": "텍스트 변경 내용"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "히프 정렬"},
-{"id": "tool_aligncenter", "title": "정렬 센터"},
-{"id": "tool_alignleft", "title": "왼쪽 정렬"},
-{"id": "tool_alignmiddle", "title": "중간 정렬"},
-{"id": "tool_alignright", "title": "오른쪽 맞춤"},
-{"id": "tool_aligntop", "title": "정렬 탑"},
-{"id": "tool_angle", "title": "회전 각도를 변경"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "굵은 텍스트"},
-{"id": "tool_circle", "title": "동그라미"},
-{"id": "tool_clear", "textContent": "새 이미지"},
-{"id": "tool_clone", "title": "클론 요소"},
-{"id": "tool_clone_multi", "title": "클론 요소"},
-{"id": "tool_delete", "title": "요소 삭제"},
-{"id": "tool_delete_multi", "title": "선택한 요소를 삭제"},
-{"id": "tool_docprops", "textContent": "문서 속성"},
-{"id": "tool_docprops_cancel", "textContent": "취소"},
-{"id": "tool_docprops_save", "textContent": "저장"},
-{"id": "tool_ellipse", "title": "타원"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "자유 핸드 타원"},
-{"id": "tool_fhpath", "title": "연필 도구"},
-{"id": "tool_fhrect", "title": "자유 핸드 직사각형"},
-{"id": "tool_font_size", "title": "글꼴 크기 변경"},
-{"id": "tool_group", "title": "그룹 요소"},
-{"id": "tool_image", "title": "이미지 도구"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "기울임꼴 텍스트"},
-{"id": "tool_line", "title": "선 도구"},
-{"id": "tool_move_bottom", "title": "아래로 이동"},
-{"id": "tool_move_top", "title": "상단으로 이동"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "변경 항목을 선택 불투명도"},
-{"id": "tool_open", "textContent": "오픈 이미지"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "직사각형"},
-{"id": "tool_redo", "title": "재실행"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "이미지 저장"},
-{"id": "tool_select", "title": "선택 도구"},
-{"id": "tool_source", "title": "수정 소스"},
-{"id": "tool_source_cancel", "textContent": "취소"},
-{"id": "tool_source_save", "textContent": "저장"},
-{"id": "tool_square", "title": "정사각형"},
-{"id": "tool_text", "title": "텍스트 도구"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "취소"},
-{"id": "tool_ungroup", "title": "그룹 해제 요소"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "줌 도구"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "변경 수준으로 확대"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "ko",
+	dir : "ltr",
+	common: {
+		"ok": "저장",
+		"cancel": "취소",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "색상을 클릭, 근무 시간 채우기 스트로크 색상을 변경하려면 변경하려면",
+		"zoom_level": "변경 수준으로 확대",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "채우기 색상 변경",
+		"stroke_color": "뇌졸중으로 색상 변경",
+		"stroke_style": "뇌졸중 변경 대시 스타일",
+		"stroke_width": "뇌졸중 너비 변경",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "회전 각도를 변경",
+		"blur": "Change gaussian blur value",
+		"opacity": "변경 항목을 선택 불투명도",
+		"circle_cx": "변경 동그라미 CX는 좌표",
+		"circle_cy": "동그라미 싸이 변경 조정할 수있어",
+		"circle_r": "변경 원의 반지름",
+		"ellipse_cx": "CX는 타원의 좌표 변경",
+		"ellipse_cy": "싸이 타원 변경 조정할 수있어",
+		"ellipse_rx": "변경 타원의 x 반지름",
+		"ellipse_ry": "변경 타원의 y를 반경",
+		"line_x1": "변경 라인의 X 좌표 시작",
+		"line_x2": "변경 라인의 X 좌표 결말",
+		"line_y1": "라인 변경 y를 시작 좌표",
+		"line_y2": "라인 변경 y를 결말의 좌표",
+		"rect_height": "사각형의 높이를 변경",
+		"rect_width": "사각형의 너비 변경",
+		"corner_radius": "변경 직사각형 코너 반경",
+		"image_width": "이미지 변경 폭",
+		"image_height": "이미지 높이 변경",
+		"image_url": "URL 변경",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "텍스트 변경 내용",
+		"font_family": "글꼴 변경 패밀리",
+		"font_size": "글꼴 크기 변경",
+		"bold": "굵은 텍스트",
+		"italic": "기울임꼴 텍스트"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "배경 색상 변경 / 투명도",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "맞춤 콘텐츠",
+		"fit_to_all": "맞춤 모든 콘텐츠에",
+		"fit_to_canvas": "맞춤 캔버스",
+		"fit_to_layer_content": "레이어에 맞게 콘텐츠",
+		"fit_to_sel": "맞춤 선택",
+		"align_relative_to": "정렬 상대적으로 ...",
+		"relativeTo": "상대:",
+		"페이지": "페이지",
+		"largest_object": "큰 개체",
+		"selected_objects": "당선 개체",
+		"smallest_object": "작은 개체",
+		"new_doc": "새 이미지",
+		"open_doc": "오픈 이미지",
+		"export_png": "Export as PNG",
+		"save_doc": "이미지 저장",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "히프 정렬",
+		"align_center": "정렬 센터",
+		"align_left": "왼쪽 정렬",
+		"align_middle": "중간 정렬",
+		"align_right": "오른쪽 맞춤",
+		"align_top": "정렬 탑",
+		"mode_select": "선택 도구",
+		"mode_fhpath": "연필 도구",
+		"mode_line": "선 도구",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "자유 핸드 직사각형",
+		"mode_ellipse": "타원",
+		"mode_circle": "동그라미",
+		"mode_fhellipse": "자유 핸드 타원",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "텍스트 도구",
+		"mode_image": "이미지 도구",
+		"mode_zoom": "줌 도구",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "취소",
+		"redo": "재실행",
+		"tool_source": "수정 소스",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "그룹 요소",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "그룹 해제 요소",
+		"docprops": "문서 속성",
+		"imagelib": "Image Library",
+		"move_bottom": "아래로 이동",
+		"move_top": "상단으로 이동",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "저장",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "레이어 삭제",
+		"move_down": "레이어 아래로 이동",
+		"new": "새 레이어",
+		"rename": "레이어 이름 바꾸기",
+		"move_up": "레이어 위로 이동",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "미리 정의된 선택:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.lt.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Derinti palyginti ..."},
-{"id": "bkgnd_color", "title": "Pakeisti fono spalvą / drumstumas"},
-{"id": "circle_cx", "title": "Keisti ratas&#39;s CX koordinuoti"},
-{"id": "circle_cy", "title": "Keisti ratas&#39;s CY koordinuoti"},
-{"id": "circle_r", "title": "Keisti savo apskritimo spindulys"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Keisti stačiakampis skyrelį Spindulys"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Keisti elipse&#39;s CX koordinuoti"},
-{"id": "ellipse_cy", "title": "Keisti elipse&#39;s CY koordinuoti"},
-{"id": "ellipse_rx", "title": "Keisti elipsė &quot;X spindulys"},
-{"id": "ellipse_ry", "title": "Keisti elipse Y spindulys"},
-{"id": "fill_color", "title": "Keisti užpildyti spalvos"},
-{"id": "fitToContent", "textContent": "Talpinti turinys"},
-{"id": "fit_to_all", "textContent": "Talpinti All content"},
-{"id": "fit_to_canvas", "textContent": "Talpinti drobė"},
-{"id": "fit_to_layer_content", "textContent": "Talpinti sluoksnis turinio"},
-{"id": "fit_to_sel", "textContent": "Talpinti atrankos"},
-{"id": "font_family", "title": "Pakeistišriftą Šeima"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Keisti vaizdo aukštis"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Pakeisti URL"},
-{"id": "image_width", "title": "Keisti paveikslėlio plotis"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "didžiausias objektas"},
-{"id": "layer_delete", "title": "Ištrinti Layer"},
-{"id": "layer_down", "title": "Perkelti sluoksnį Žemyn"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Pervadinti sluoksnį"},
-{"id": "layer_up", "title": "Perkelti sluoksnį Up"},
-{"id": "layersLabel", "textContent": "Sluoksniai:"},
-{"id": "line_x1", "title": "Keisti linijos nuo koordinačių x"},
-{"id": "line_x2", "title": "Keisti linijos baigėsi x koordinuoti"},
-{"id": "line_y1", "title": "Keisti linijos pradžios y koordinačių"},
-{"id": "line_y2", "title": "Keisti linijos baigėsi y koordinačių"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "puslapis"},
-{"id": "palette", "title": "Spustelėkite norėdami keisti užpildo spalvą, perėjimo spustelėkite pakeisti insultas spalva"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Keisti stačiakampio aukščio"},
-{"id": "rect_width_tool", "title": "Pakeisti stačiakampio plotis"},
-{"id": "relativeToLabel", "textContent": "palyginti:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Pasirinkite iš anksto:"},
-{"id": "selected_objects", "textContent": "išrinktas objektai"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "mažiausias objektą"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Keisti insultas spalva"},
-{"id": "stroke_style", "title": "Keisti insultas brūkšnys stilius"},
-{"id": "stroke_width", "title": "Keisti insultas plotis"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Aukštis:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Plotis:"},
-{"id": "text", "title": "Keisti teksto turinys"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Lygiuoti apačioje"},
-{"id": "tool_aligncenter", "title": "Lygiuoti"},
-{"id": "tool_alignleft", "title": "Lygiuoti kairėje"},
-{"id": "tool_alignmiddle", "title": "Suderinti Vidurio"},
-{"id": "tool_alignright", "title": "Lygiuoti dešinėje"},
-{"id": "tool_aligntop", "title": "Lygiuoti viršų"},
-{"id": "tool_angle", "title": "Keisti sukimosi kampas"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Pusjuodis"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Klonas Element"},
-{"id": "tool_clone_multi", "title": "Klonas elementai"},
-{"id": "tool_delete", "title": "Naikinti elementą"},
-{"id": "tool_delete_multi", "title": "Pašalinti pasirinktus elementus"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Atšaukti"},
-{"id": "tool_docprops_save", "textContent": "Saugoti"},
-{"id": "tool_ellipse", "title": "Elipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free Hand Elipsė"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free Hand stačiakampis"},
-{"id": "tool_font_size", "title": "Change font size"},
-{"id": "tool_group", "title": "Elementų grupės"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kursyvas"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Perkelti į apačią"},
-{"id": "tool_move_top", "title": "Perkelti į viršų"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Pakeisti pasirinkto elemento neskaidrumo"},
-{"id": "tool_open", "textContent": "Atidaryti atvaizdą"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Stačiakampis"},
-{"id": "tool_redo", "title": "Atstatyti"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Išsaugoti nuotrauką"},
-{"id": "tool_select", "title": "Įrankis"},
-{"id": "tool_source", "title": "Taisyti Šaltinis"},
-{"id": "tool_source_cancel", "textContent": "Atšaukti"},
-{"id": "tool_source_save", "textContent": "Saugoti"},
-{"id": "tool_square", "title": "Aikštė"},
-{"id": "tool_text", "title": "Tekstas Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Atšaukti"},
-{"id": "tool_ungroup", "title": "Išgrupuoti elementai"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Įrankį"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Keisti mastelį"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "lt",
+	dir : "ltr",
+	common: {
+		"ok": "Saugoti",
+		"cancel": "Atšaukti",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Spustelėkite norėdami keisti užpildo spalvą, perėjimo spustelėkite pakeisti insultas spalva",
+		"zoom_level": "Keisti mastelį",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Keisti užpildyti spalvos",
+		"stroke_color": "Keisti insultas spalva",
+		"stroke_style": "Keisti insultas brūkšnys stilius",
+		"stroke_width": "Keisti insultas plotis",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Keisti sukimosi kampas",
+		"blur": "Change gaussian blur value",
+		"opacity": "Pakeisti pasirinkto elemento neskaidrumo",
+		"circle_cx": "Keisti ratas&#39;s CX koordinuoti",
+		"circle_cy": "Keisti ratas&#39;s CY koordinuoti",
+		"circle_r": "Keisti savo apskritimo spindulys",
+		"ellipse_cx": "Keisti elipse&#39;s CX koordinuoti",
+		"ellipse_cy": "Keisti elipse&#39;s CY koordinuoti",
+		"ellipse_rx": "Keisti elipsė &quot;X spindulys",
+		"ellipse_ry": "Keisti elipse Y spindulys",
+		"line_x1": "Keisti linijos nuo koordinačių x",
+		"line_x2": "Keisti linijos baigėsi x koordinuoti",
+		"line_y1": "Keisti linijos pradžios y koordinačių",
+		"line_y2": "Keisti linijos baigėsi y koordinačių",
+		"rect_height": "Keisti stačiakampio aukščio",
+		"rect_width": "Pakeisti stačiakampio plotis",
+		"corner_radius": "Keisti stačiakampis skyrelį Spindulys",
+		"image_width": "Keisti paveikslėlio plotis",
+		"image_height": "Keisti vaizdo aukštis",
+		"image_url": "Pakeisti URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Keisti teksto turinys",
+		"font_family": "Pakeistišriftą Šeima",
+		"font_size": "Change font size",
+		"bold": "Pusjuodis",
+		"italic": "Kursyvas"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Pakeisti fono spalvą / drumstumas",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Talpinti turinys",
+		"fit_to_all": "Talpinti All content",
+		"fit_to_canvas": "Talpinti drobė",
+		"fit_to_layer_content": "Talpinti sluoksnis turinio",
+		"fit_to_sel": "Talpinti atrankos",
+		"align_relative_to": "Derinti palyginti ...",
+		"relativeTo": "palyginti:",
+		"puslapis": "puslapis",
+		"largest_object": "didžiausias objektas",
+		"selected_objects": "išrinktas objektai",
+		"smallest_object": "mažiausias objektą",
+		"new_doc": "New Image",
+		"open_doc": "Atidaryti atvaizdą",
+		"export_png": "Export as PNG",
+		"save_doc": "Išsaugoti nuotrauką",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Lygiuoti apačioje",
+		"align_center": "Lygiuoti",
+		"align_left": "Lygiuoti kairėje",
+		"align_middle": "Suderinti Vidurio",
+		"align_right": "Lygiuoti dešinėje",
+		"align_top": "Lygiuoti viršų",
+		"mode_select": "Įrankis",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free Hand stačiakampis",
+		"mode_ellipse": "Elipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free Hand Elipsė",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Tekstas Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Įrankį",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Atšaukti",
+		"redo": "Atstatyti",
+		"tool_source": "Taisyti Šaltinis",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Elementų grupės",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Išgrupuoti elementai",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Perkelti į apačią",
+		"move_top": "Perkelti į viršų",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Saugoti",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Ištrinti Layer",
+		"move_down": "Perkelti sluoksnį Žemyn",
+		"new": "New Layer",
+		"rename": "Pervadinti sluoksnį",
+		"move_up": "Perkelti sluoksnį Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Pasirinkite iš anksto:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.lv.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Līdzināt, salīdzinot ar ..."},
-{"id": "bkgnd_color", "title": "Change background color / necaurredzamība"},
-{"id": "circle_cx", "title": "Maina aplis&#39;s CX koordinēt"},
-{"id": "circle_cy", "title": "Pārmaiņu loks ir cy koordinēt"},
-{"id": "circle_r", "title": "Pārmaiņu loks ir rādiuss"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Maina Taisnstūris Corner Rādiuss"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Mainīt elipses&#39;s CX koordinēt"},
-{"id": "ellipse_cy", "title": "Mainīt elipses&#39;s cy koordinēt"},
-{"id": "ellipse_rx", "title": "Mainīt elipses&#39;s x rādiuss"},
-{"id": "ellipse_ry", "title": "Mainīt elipses&#39;s y rādiuss"},
-{"id": "fill_color", "title": "Change aizpildījuma krāsu"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Fit uz visu saturu"},
-{"id": "fit_to_canvas", "textContent": "Ievietot audekls"},
-{"id": "fit_to_layer_content", "textContent": "Ievietot slānis saturs"},
-{"id": "fit_to_sel", "textContent": "Fit atlases"},
-{"id": "font_family", "title": "Mainīt fonta Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Mainīt attēla augstums"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Change URL"},
-{"id": "image_width", "title": "Mainīt attēla platumu"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "lielākais objekts"},
-{"id": "layer_delete", "title": "Dzēst Layer"},
-{"id": "layer_down", "title": "Pārvietot slāni uz leju"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Pārdēvēt Layer"},
-{"id": "layer_up", "title": "Pārvietot slāni uz augšu"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Mainīt līnijas sākas x koordinēt"},
-{"id": "line_x2", "title": "Mainīt līnijas beigu x koordinēt"},
-{"id": "line_y1", "title": "Mainīt līnijas sākas y koordinātu"},
-{"id": "line_y2", "title": "Mainīt līnijas beigu y koordinātu"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "lapa"},
-{"id": "palette", "title": "Noklikšķiniet, lai mainītu aizpildījuma krāsu, shift-click to mainīt stroke krāsa"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Change Taisnstūra augstums"},
-{"id": "rect_width_tool", "title": "Change taisnstūra platums"},
-{"id": "relativeToLabel", "textContent": "salīdzinājumā ar:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Izvēlieties iepriekš:"},
-{"id": "selected_objects", "textContent": "ievēlēts objekti"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "mazākais objekts"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Change stroke krāsa"},
-{"id": "stroke_style", "title": "Maina stroke domuzīme stils"},
-{"id": "stroke_width", "title": "Change stroke platums"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Augstums:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Platums:"},
-{"id": "text", "title": "Mainītu teksta saturs"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Līdzināt Bottom"},
-{"id": "tool_aligncenter", "title": "Līdzināt uz centru"},
-{"id": "tool_alignleft", "title": "Līdzināt pa kreisi"},
-{"id": "tool_alignmiddle", "title": "Līdzināt Middle"},
-{"id": "tool_alignright", "title": "Līdzināt pa labi"},
-{"id": "tool_aligntop", "title": "Līdzināt Top"},
-{"id": "tool_angle", "title": "Mainīt griešanās leņķis"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Klons Element"},
-{"id": "tool_clone_multi", "title": "Klons Elements"},
-{"id": "tool_delete", "title": "Dzēst Element"},
-{"id": "tool_delete_multi", "title": "Delete Selected Elements"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Atcelt"},
-{"id": "tool_docprops_save", "textContent": "Glābt"},
-{"id": "tool_ellipse", "title": "Elipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Taisnstūris"},
-{"id": "tool_font_size", "title": "Mainīt fonta izmēru"},
-{"id": "tool_group", "title": "Grupa Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kursīvs"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Pārvietot uz leju"},
-{"id": "tool_move_top", "title": "Pārvietot uz augšu"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Mainīt izvēlēto objektu necaurredzamība"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_path", "title": "Path"},
-{"id": "tool_rect", "title": "Taisnstūris"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Rediģēt Source"},
-{"id": "tool_source_cancel", "textContent": "Atcelt"},
-{"id": "tool_source_save", "textContent": "Glābt"},
-{"id": "tool_square", "title": "Kvadrāts"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Atpogāt"},
-{"id": "tool_ungroup", "title": "Atgrupēt Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Pārmaiņu mērogu"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "lv",
+	dir : "ltr",
+	common: {
+		"ok": "Glābt",
+		"cancel": "Atcelt",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Noklikšķiniet, lai mainītu aizpildījuma krāsu, shift-click to mainīt stroke krāsa",
+		"zoom_level": "Pārmaiņu mērogu",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change aizpildījuma krāsu",
+		"stroke_color": "Change stroke krāsa",
+		"stroke_style": "Maina stroke domuzīme stils",
+		"stroke_width": "Change stroke platums",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Mainīt griešanās leņķis",
+		"blur": "Change gaussian blur value",
+		"opacity": "Mainīt izvēlēto objektu necaurredzamība",
+		"circle_cx": "Maina aplis&#39;s CX koordinēt",
+		"circle_cy": "Pārmaiņu loks ir cy koordinēt",
+		"circle_r": "Pārmaiņu loks ir rādiuss",
+		"ellipse_cx": "Mainīt elipses&#39;s CX koordinēt",
+		"ellipse_cy": "Mainīt elipses&#39;s cy koordinēt",
+		"ellipse_rx": "Mainīt elipses&#39;s x rādiuss",
+		"ellipse_ry": "Mainīt elipses&#39;s y rādiuss",
+		"line_x1": "Mainīt līnijas sākas x koordinēt",
+		"line_x2": "Mainīt līnijas beigu x koordinēt",
+		"line_y1": "Mainīt līnijas sākas y koordinātu",
+		"line_y2": "Mainīt līnijas beigu y koordinātu",
+		"rect_height": "Change Taisnstūra augstums",
+		"rect_width": "Change taisnstūra platums",
+		"corner_radius": "Maina Taisnstūris Corner Rādiuss",
+		"image_width": "Mainīt attēla platumu",
+		"image_height": "Mainīt attēla augstums",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Mainītu teksta saturs",
+		"font_family": "Mainīt fonta Family",
+		"font_size": "Mainīt fonta izmēru",
+		"bold": "Bold Text",
+		"italic": "Kursīvs"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color / necaurredzamība",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit uz visu saturu",
+		"fit_to_canvas": "Ievietot audekls",
+		"fit_to_layer_content": "Ievietot slānis saturs",
+		"fit_to_sel": "Fit atlases",
+		"align_relative_to": "Līdzināt, salīdzinot ar ...",
+		"relativeTo": "salīdzinājumā ar:",
+		"lapa": "lapa",
+		"largest_object": "lielākais objekts",
+		"selected_objects": "ievēlēts objekti",
+		"smallest_object": "mazākais objekts",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Līdzināt Bottom",
+		"align_center": "Līdzināt uz centru",
+		"align_left": "Līdzināt pa kreisi",
+		"align_middle": "Līdzināt Middle",
+		"align_right": "Līdzināt pa labi",
+		"align_top": "Līdzināt Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Taisnstūris",
+		"mode_ellipse": "Elipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Atpogāt",
+		"redo": "Redo",
+		"tool_source": "Rediģēt Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Grupa Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Atgrupēt Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Pārvietot uz leju",
+		"move_top": "Pārvietot uz augšu",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Glābt",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Dzēst Layer",
+		"move_down": "Pārvietot slāni uz leju",
+		"new": "New Layer",
+		"rename": "Pārdēvēt Layer",
+		"move_up": "Pārvietot slāni uz augšu",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Izvēlieties iepriekš:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.mk.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Порамни во поглед на ..."},
-{"id": "bkgnd_color", "title": "Смени позадина / непроѕирноста"},
-{"id": "circle_cx", "title": "Промена круг на cx координира"},
-{"id": "circle_cy", "title": "Промена круг&#39;s cy координираат"},
-{"id": "circle_r", "title": "Промена на круг со радиус"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Промена правоаголник Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Промена елипса&#39;s cx координираат"},
-{"id": "ellipse_cy", "title": "Промена на елипса cy координира"},
-{"id": "ellipse_rx", "title": "Промена на елипса x радиус"},
-{"id": "ellipse_ry", "title": "Промена на елипса у радиус"},
-{"id": "fill_color", "title": "Измени пополнете боја"},
-{"id": "fitToContent", "textContent": "Способен да Содржина"},
-{"id": "fit_to_all", "textContent": "Способен да сите содржина"},
-{"id": "fit_to_canvas", "textContent": "Побиране да платно"},
-{"id": "fit_to_layer_content", "textContent": "Способен да слој содржина"},
-{"id": "fit_to_sel", "textContent": "Способен да селекција"},
-{"id": "font_family", "title": "Смени фонт Фамилија"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Промена на слика височина"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Промена URL"},
-{"id": "image_width", "title": "Промена Ширина на сликата"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "најголемиот објект"},
-{"id": "layer_delete", "title": "Избриши Слој"},
-{"id": "layer_down", "title": "Премести слој долу"},
-{"id": "layer_new", "title": "Нов слој"},
-{"id": "layer_rename", "title": "Преименувај слој"},
-{"id": "layer_up", "title": "Премести слој горе"},
-{"id": "layersLabel", "textContent": "Кори:"},
-{"id": "line_x1", "title": "Промена линија почетна x координира"},
-{"id": "line_x2", "title": "Промена линија завршува x координира"},
-{"id": "line_y1", "title": "Промена линија координираат почетна y"},
-{"id": "line_y2", "title": "Промена линија завршува y координира"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "страница"},
-{"id": "palette", "title": "Кликни за да внесете промени бојата, промена клик да се промени бојата удар"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Промена правоаголник височина"},
-{"id": "rect_width_tool", "title": "Промена правоаголник Ширина"},
-{"id": "relativeToLabel", "textContent": "во поглед на:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Изберете предефинирани:"},
-{"id": "selected_objects", "textContent": "избран објекти"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "најмалата објект"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Промена боја на мозочен удар"},
-{"id": "stroke_style", "title": "Промена удар цртичка стил"},
-{"id": "stroke_width", "title": "Промена удар Ширина"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Висина:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Ширина:"},
-{"id": "text", "title": "Промена текст содржина"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Центрирано"},
-{"id": "tool_alignleft", "title": "Порамни лево Порамни"},
-{"id": "tool_alignmiddle", "title": "Израмни Среден"},
-{"id": "tool_alignright", "title": "Порамни десно"},
-{"id": "tool_aligntop", "title": "Израмни почетокот"},
-{"id": "tool_angle", "title": "Change ротација агол"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Задебелен текст"},
-{"id": "tool_circle", "title": "Круг"},
-{"id": "tool_clear", "textContent": "Нови слики"},
-{"id": "tool_clone", "title": "Клон на Element"},
-{"id": "tool_clone_multi", "title": "Клон Елементи"},
-{"id": "tool_delete", "title": "Бришење на елемент"},
-{"id": "tool_delete_multi", "title": "Избриши Избрани Елементи"},
-{"id": "tool_docprops", "textContent": "Својства на документот"},
-{"id": "tool_docprops_cancel", "textContent": "Откажи"},
-{"id": "tool_docprops_save", "textContent": "Зачувува"},
-{"id": "tool_ellipse", "title": "Елипса"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Елипса"},
-{"id": "tool_fhpath", "title": "Алатка за молив"},
-{"id": "tool_fhrect", "title": "Правоаголник слободна рака"},
-{"id": "tool_font_size", "title": "Изменифонт Големина"},
-{"id": "tool_group", "title": "Група на елементи"},
-{"id": "tool_image", "title": "Алатка за сликата"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic текст"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Move to bottom"},
-{"id": "tool_move_top", "title": "Поместување на почетокот"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Промена избрани ставка непроѕирноста"},
-{"id": "tool_open", "textContent": "Отвори слика"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Правоаголник"},
-{"id": "tool_redo", "title": "Повтори"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Зачувај слика"},
-{"id": "tool_select", "title": "Изберете ја алатката"},
-{"id": "tool_source", "title": "Уреди Извор"},
-{"id": "tool_source_cancel", "textContent": "Откажи"},
-{"id": "tool_source_save", "textContent": "Зачувува"},
-{"id": "tool_square", "title": "Квадрат"},
-{"id": "tool_text", "title": "Алатка за текст"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Врати"},
-{"id": "tool_ungroup", "title": "Ungroup Елементи"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Алатка за зумирање"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Промена зум ниво"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "mk",
+	dir : "ltr",
+	common: {
+		"ok": "Зачувува",
+		"cancel": "Откажи",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Кликни за да внесете промени бојата, промена клик да се промени бојата удар",
+		"zoom_level": "Промена зум ниво",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Измени пополнете боја",
+		"stroke_color": "Промена боја на мозочен удар",
+		"stroke_style": "Промена удар цртичка стил",
+		"stroke_width": "Промена удар Ширина",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Change ротација агол",
+		"blur": "Change gaussian blur value",
+		"opacity": "Промена избрани ставка непроѕирноста",
+		"circle_cx": "Промена круг на cx координира",
+		"circle_cy": "Промена круг&#39;s cy координираат",
+		"circle_r": "Промена на круг со радиус",
+		"ellipse_cx": "Промена елипса&#39;s cx координираат",
+		"ellipse_cy": "Промена на елипса cy координира",
+		"ellipse_rx": "Промена на елипса x радиус",
+		"ellipse_ry": "Промена на елипса у радиус",
+		"line_x1": "Промена линија почетна x координира",
+		"line_x2": "Промена линија завршува x координира",
+		"line_y1": "Промена линија координираат почетна y",
+		"line_y2": "Промена линија завршува y координира",
+		"rect_height": "Промена правоаголник височина",
+		"rect_width": "Промена правоаголник Ширина",
+		"corner_radius": "Промена правоаголник Corner Radius",
+		"image_width": "Промена Ширина на сликата",
+		"image_height": "Промена на слика височина",
+		"image_url": "Промена URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Промена текст содржина",
+		"font_family": "Смени фонт Фамилија",
+		"font_size": "Изменифонт Големина",
+		"bold": "Задебелен текст",
+		"italic": "Italic текст"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Смени позадина / непроѕирноста",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Способен да Содржина",
+		"fit_to_all": "Способен да сите содржина",
+		"fit_to_canvas": "Побиране да платно",
+		"fit_to_layer_content": "Способен да слој содржина",
+		"fit_to_sel": "Способен да селекција",
+		"align_relative_to": "Порамни во поглед на ...",
+		"relativeTo": "во поглед на:",
+		"страница": "страница",
+		"largest_object": "најголемиот објект",
+		"selected_objects": "избран објекти",
+		"smallest_object": "најмалата објект",
+		"new_doc": "Нови слики",
+		"open_doc": "Отвори слика",
+		"export_png": "Export as PNG",
+		"save_doc": "Зачувај слика",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Центрирано",
+		"align_left": "Порамни лево Порамни",
+		"align_middle": "Израмни Среден",
+		"align_right": "Порамни десно",
+		"align_top": "Израмни почетокот",
+		"mode_select": "Изберете ја алатката",
+		"mode_fhpath": "Алатка за молив",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Правоаголник слободна рака",
+		"mode_ellipse": "Елипса",
+		"mode_circle": "Круг",
+		"mode_fhellipse": "Free-Hand Елипса",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Алатка за текст",
+		"mode_image": "Алатка за сликата",
+		"mode_zoom": "Алатка за зумирање",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Врати",
+		"redo": "Повтори",
+		"tool_source": "Уреди Извор",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Група на елементи",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Елементи",
+		"docprops": "Својства на документот",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to bottom",
+		"move_top": "Поместување на почетокот",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Зачувува",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Избриши Слој",
+		"move_down": "Премести слој долу",
+		"new": "Нов слој",
+		"rename": "Преименувај слој",
+		"move_up": "Премести слој горе",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Изберете предефинирани:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.ms.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Rata relatif ..."},
-{"id": "bkgnd_color", "title": "Mengubah warna latar belakang / keburaman"},
-{"id": "circle_cx", "title": "Mengubah koordinat bulatan cx"},
-{"id": "circle_cy", "title": "Mengubah koordinat cy bulatan"},
-{"id": "circle_r", "title": "Tukar jari-jari lingkaran"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Tukar Corner Rectangle Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Tukar elips&#39;s cx koordinat"},
-{"id": "ellipse_cy", "title": "Tukar elips&#39;s cy koordinat"},
-{"id": "ellipse_rx", "title": "Tukar elips&#39;s x jari-jari"},
-{"id": "ellipse_ry", "title": "Tukar elips&#39;s y jari-jari"},
-{"id": "fill_color", "title": "Tukar Warna mengisi"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Cocok untuk semua kandungan"},
-{"id": "fit_to_canvas", "textContent": "Muat kanvas"},
-{"id": "fit_to_layer_content", "textContent": "Muat kandungan lapisan"},
-{"id": "fit_to_sel", "textContent": "Fit seleksi"},
-{"id": "font_family", "title": "Tukar Font Keluarga"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Tinggi gambar Kaca"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Tukar URL"},
-{"id": "image_width", "title": "Tukar Lebar imej"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "objek terbesar"},
-{"id": "layer_delete", "title": "Padam Layer"},
-{"id": "layer_down", "title": "Pindah Layer Bawah"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Pindah Layer Up"},
-{"id": "layersLabel", "textContent": "Lapisan:"},
-{"id": "line_x1", "title": "Ubah baris mulai x koordinat"},
-{"id": "line_x2", "title": "Ubah baris&#39;s Berakhir x koordinat"},
-{"id": "line_y1", "title": "Ubah baris mulai y koordinat"},
-{"id": "line_y2", "title": "Ubah baris di tiap akhir y koordinat"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Laman"},
-{"id": "palette", "title": "Klik untuk menukar warna mengisi, shift-klik untuk menukar warna stroke"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Perubahan quality persegi panjang"},
-{"id": "rect_width_tool", "title": "Tukar persegi panjang lebar"},
-{"id": "relativeToLabel", "textContent": "relatif:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Pilih standard:"},
-{"id": "selected_objects", "textContent": "objek terpilih"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "objek terkecil"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Tukar Warna stroke"},
-{"id": "stroke_style", "title": "Tukar gaya dash stroke"},
-{"id": "stroke_width", "title": "Tukar stroke width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Ketinggian:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Lebar:"},
-{"id": "text", "title": "Tukar isi teks"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Rata Bottom"},
-{"id": "tool_aligncenter", "title": "Rata Tengah"},
-{"id": "tool_alignleft", "title": "Rata Kiri"},
-{"id": "tool_alignmiddle", "title": "Rata Tengah"},
-{"id": "tool_alignright", "title": "Rata Kanan"},
-{"id": "tool_aligntop", "title": "Rata Popular"},
-{"id": "tool_angle", "title": "Namakan sudut putaran"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Teks"},
-{"id": "tool_circle", "title": "Lingkaran"},
-{"id": "tool_clear", "textContent": "Imej Baru"},
-{"id": "tool_clone", "title": "Clone Elemen"},
-{"id": "tool_clone_multi", "title": "Clone Elemen"},
-{"id": "tool_delete", "title": "Padam Elemen"},
-{"id": "tool_delete_multi", "title": "Padam Elemen"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Batal"},
-{"id": "tool_docprops_save", "textContent": "Simpan"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Persegi Panjang"},
-{"id": "tool_font_size", "title": "Ubah Saiz Font"},
-{"id": "tool_group", "title": "Kelompok Elemen"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Teks"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Pindah ke Bawah"},
-{"id": "tool_move_top", "title": "Pindah ke Atas"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Mengubah item yang dipilih keburaman"},
-{"id": "tool_open", "textContent": "Membuka Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rectangle"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Pilih Tool"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Batal"},
-{"id": "tool_source_save", "textContent": "Simpan"},
-{"id": "tool_square", "title": "Peti"},
-{"id": "tool_text", "title": "Teks Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Ungroup Elemen"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Mengubah peringkat pembesaran"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "ms",
+	dir : "ltr",
+	common: {
+		"ok": "Simpan",
+		"cancel": "Batal",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klik untuk menukar warna mengisi, shift-klik untuk menukar warna stroke",
+		"zoom_level": "Mengubah peringkat pembesaran",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Tukar Warna mengisi",
+		"stroke_color": "Tukar Warna stroke",
+		"stroke_style": "Tukar gaya dash stroke",
+		"stroke_width": "Tukar stroke width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Namakan sudut putaran",
+		"blur": "Change gaussian blur value",
+		"opacity": "Mengubah item yang dipilih keburaman",
+		"circle_cx": "Mengubah koordinat bulatan cx",
+		"circle_cy": "Mengubah koordinat cy bulatan",
+		"circle_r": "Tukar jari-jari lingkaran",
+		"ellipse_cx": "Tukar elips&#39;s cx koordinat",
+		"ellipse_cy": "Tukar elips&#39;s cy koordinat",
+		"ellipse_rx": "Tukar elips&#39;s x jari-jari",
+		"ellipse_ry": "Tukar elips&#39;s y jari-jari",
+		"line_x1": "Ubah baris mulai x koordinat",
+		"line_x2": "Ubah baris&#39;s Berakhir x koordinat",
+		"line_y1": "Ubah baris mulai y koordinat",
+		"line_y2": "Ubah baris di tiap akhir y koordinat",
+		"rect_height": "Perubahan quality persegi panjang",
+		"rect_width": "Tukar persegi panjang lebar",
+		"corner_radius": "Tukar Corner Rectangle Radius",
+		"image_width": "Tukar Lebar imej",
+		"image_height": "Tinggi gambar Kaca",
+		"image_url": "Tukar URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Tukar isi teks",
+		"font_family": "Tukar Font Keluarga",
+		"font_size": "Ubah Saiz Font",
+		"bold": "Bold Teks",
+		"italic": "Italic Teks"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Mengubah warna latar belakang / keburaman",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Cocok untuk semua kandungan",
+		"fit_to_canvas": "Muat kanvas",
+		"fit_to_layer_content": "Muat kandungan lapisan",
+		"fit_to_sel": "Fit seleksi",
+		"align_relative_to": "Rata relatif ...",
+		"relativeTo": "relatif:",
+		"Laman": "Laman",
+		"largest_object": "objek terbesar",
+		"selected_objects": "objek terpilih",
+		"smallest_object": "objek terkecil",
+		"new_doc": "Imej Baru",
+		"open_doc": "Membuka Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Rata Bottom",
+		"align_center": "Rata Tengah",
+		"align_left": "Rata Kiri",
+		"align_middle": "Rata Tengah",
+		"align_right": "Rata Kanan",
+		"align_top": "Rata Popular",
+		"mode_select": "Pilih Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Persegi Panjang",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Lingkaran",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Teks Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Kelompok Elemen",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elemen",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Pindah ke Bawah",
+		"move_top": "Pindah ke Atas",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Simpan",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Padam Layer",
+		"move_down": "Pindah Layer Bawah",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Pindah Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Pilih standard:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.mt.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Jallinjaw relattiv għall - ..."},
-{"id": "bkgnd_color", "title": "Bidla fil-kulur fl-isfond / opaċità"},
-{"id": "circle_cx", "title": "CX ċirku Tibdil jikkoordinaw"},
-{"id": "circle_cy", "title": "Ċirku Tibdil cy jikkoordinaw"},
-{"id": "circle_r", "title": "Raġġ ta &#39;ċirku tal-Bidla"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Bidla Rectangle Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Bidla ellissi&#39;s CX jikkoordinaw"},
-{"id": "ellipse_cy", "title": "Ellissi Tibdil cy jikkoordinaw"},
-{"id": "ellipse_rx", "title": "Raġġ x ellissi Tibdil"},
-{"id": "ellipse_ry", "title": "Raġġ y ellissi Tibdil"},
-{"id": "fill_color", "title": "Bidla imla color"},
-{"id": "fitToContent", "textContent": "Fit għall-kontenut"},
-{"id": "fit_to_all", "textContent": "Tajbin għall-kontenut"},
-{"id": "fit_to_canvas", "textContent": "Xieraq li kanvas"},
-{"id": "fit_to_layer_content", "textContent": "Fit-kontenut ta &#39;saff għal"},
-{"id": "fit_to_sel", "textContent": "Fit-għażla"},
-{"id": "font_family", "title": "Bidla Font Familja"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Għoli image Bidla"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Bidla URL"},
-{"id": "image_width", "title": "Wisa image Bidla"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "akbar oġġett"},
-{"id": "layer_delete", "title": "Ħassar Layer"},
-{"id": "layer_down", "title": "Move Layer Down"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Semmi mill-ġdid Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Saffi:"},
-{"id": "line_x1", "title": "Bidla fil-linja tal-bidu tikkoordina x"},
-{"id": "line_x2", "title": "Linja tal-Bidla li jispiċċa x jikkoordinaw"},
-{"id": "line_y1", "title": "Bidla fil-linja tal-bidu y jikkoordinaw"},
-{"id": "line_y2", "title": "Linja Tibdil jispiċċa y jikkoordinaw"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "paġna"},
-{"id": "palette", "title": "Ikklikkja biex timla l-bidla fil-kulur, ikklikkja-bidla għall-bidla color stroke"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Għoli rettangolu Bidla"},
-{"id": "rect_width_tool", "title": "Wisa &#39;rettangolu Bidla"},
-{"id": "relativeToLabel", "textContent": "relattiv għall -:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Select predefiniti:"},
-{"id": "selected_objects", "textContent": "oġġetti elett"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "iżgħar oġġett"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Color stroke Bidla"},
-{"id": "stroke_style", "title": "Bidla stroke dash stil"},
-{"id": "stroke_width", "title": "Wisa &#39;puplesija Bidla"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Għoli:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Wisa &#39;:"},
-{"id": "text", "title": "Test kontenut Bidla"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Tallinja Bottom"},
-{"id": "tool_aligncenter", "title": "Tallinja Center"},
-{"id": "tool_alignleft", "title": "Tallinja Left"},
-{"id": "tool_alignmiddle", "title": "Tallinja Nofsani"},
-{"id": "tool_alignright", "title": "Tallinja Dritt"},
-{"id": "tool_aligntop", "title": "Tallinja Top"},
-{"id": "tool_angle", "title": "Angolu ta &#39;rotazzjoni Bidla"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Test"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "Image New"},
-{"id": "tool_clone", "title": "Klonu Element"},
-{"id": "tool_clone_multi", "title": "Klonu Elements"},
-{"id": "tool_delete", "title": "Ħassar Element"},
-{"id": "tool_delete_multi", "title": "Elementi Selected Ħassar"},
-{"id": "tool_docprops", "textContent": "Dokument Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Ikkanċella"},
-{"id": "tool_docprops_save", "textContent": "Save"},
-{"id": "tool_ellipse", "title": "Ellissi"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free Hand-ellissi"},
-{"id": "tool_fhpath", "title": "Lapes Tool"},
-{"id": "tool_fhrect", "title": "Free Hand-Rectangle"},
-{"id": "tool_font_size", "title": "Change font size"},
-{"id": "tool_group", "title": "Grupp Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Test korsiv"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Bidla magħżula opaċità partita"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rettangolu"},
-{"id": "tool_redo", "title": "Jerġa &#39;jagħmel"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Image Save"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Source Edit"},
-{"id": "tool_source_cancel", "textContent": "Ikkanċella"},
-{"id": "tool_source_save", "textContent": "Save"},
-{"id": "tool_square", "title": "Kwadru"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Jneħħu"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Bidla zoom livell"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "mt",
+	dir : "ltr",
+	common: {
+		"ok": "Save",
+		"cancel": "Ikkanċella",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Ikklikkja biex timla l-bidla fil-kulur, ikklikkja-bidla għall-bidla color stroke",
+		"zoom_level": "Bidla zoom livell",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Bidla imla color",
+		"stroke_color": "Color stroke Bidla",
+		"stroke_style": "Bidla stroke dash stil",
+		"stroke_width": "Wisa &#39;puplesija Bidla",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Angolu ta &#39;rotazzjoni Bidla",
+		"blur": "Change gaussian blur value",
+		"opacity": "Bidla magħżula opaċità partita",
+		"circle_cx": "CX ċirku Tibdil jikkoordinaw",
+		"circle_cy": "Ċirku Tibdil cy jikkoordinaw",
+		"circle_r": "Raġġ ta &#39;ċirku tal-Bidla",
+		"ellipse_cx": "Bidla ellissi&#39;s CX jikkoordinaw",
+		"ellipse_cy": "Ellissi Tibdil cy jikkoordinaw",
+		"ellipse_rx": "Raġġ x ellissi Tibdil",
+		"ellipse_ry": "Raġġ y ellissi Tibdil",
+		"line_x1": "Bidla fil-linja tal-bidu tikkoordina x",
+		"line_x2": "Linja tal-Bidla li jispiċċa x jikkoordinaw",
+		"line_y1": "Bidla fil-linja tal-bidu y jikkoordinaw",
+		"line_y2": "Linja Tibdil jispiċċa y jikkoordinaw",
+		"rect_height": "Għoli rettangolu Bidla",
+		"rect_width": "Wisa &#39;rettangolu Bidla",
+		"corner_radius": "Bidla Rectangle Corner Radius",
+		"image_width": "Wisa image Bidla",
+		"image_height": "Għoli image Bidla",
+		"image_url": "Bidla URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Test kontenut Bidla",
+		"font_family": "Bidla Font Familja",
+		"font_size": "Change font size",
+		"bold": "Bold Test",
+		"italic": "Test korsiv"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Bidla fil-kulur fl-isfond / opaċità",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit għall-kontenut",
+		"fit_to_all": "Tajbin għall-kontenut",
+		"fit_to_canvas": "Xieraq li kanvas",
+		"fit_to_layer_content": "Fit-kontenut ta &#39;saff għal",
+		"fit_to_sel": "Fit-għażla",
+		"align_relative_to": "Jallinjaw relattiv għall - ...",
+		"relativeTo": "relattiv għall -:",
+		"paġna": "paġna",
+		"largest_object": "akbar oġġett",
+		"selected_objects": "oġġetti elett",
+		"smallest_object": "iżgħar oġġett",
+		"new_doc": "Image New",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Image Save",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Tallinja Bottom",
+		"align_center": "Tallinja Center",
+		"align_left": "Tallinja Left",
+		"align_middle": "Tallinja Nofsani",
+		"align_right": "Tallinja Dritt",
+		"align_top": "Tallinja Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Lapes Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free Hand-Rectangle",
+		"mode_ellipse": "Ellissi",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free Hand-ellissi",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Jneħħu",
+		"redo": "Jerġa &#39;jagħmel",
+		"tool_source": "Source Edit",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Grupp Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Dokument Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Save",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Ħassar Layer",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Semmi mill-ġdid Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefiniti:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 176
main/inc/lib/svg-edit/locale/lang.nl.js

@@ -1,176 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Uitlijnen relatief ten opzichte van ..."},
-{"id": "bkgnd_color", "title": "Verander achtergrond kleur/doorzichtigheid"},
-{"id": "circle_cx", "title": "Verander het X coordinaat van het cirkel middelpunt"},
-{"id": "circle_cy", "title": "Verander het Y coordinaat van het cirkel middelpunt"},
-{"id": "circle_r", "title": "Verander de cirkel radius"},
-{"id": "connector_no_arrow", "textContent": "Geen pijl"},
-{"id": "copyrightLabel", "textContent": "Mogelijk gemaakt door"},
-{"id": "cornerRadiusLabel", "title": "Verander hoekradius rechthoek"},
-{"id": "curve_segments", "textContent": "Gebogen"},
-{"id": "ellipse_cx", "title": "Verander het X coordinaat van het ellips middelpunt"},
-{"id": "ellipse_cy", "title": "Verander het Y coordinaat van het ellips middelpunt"},
-{"id": "ellipse_rx", "title": "Verander ellips X radius"},
-{"id": "ellipse_ry", "title": "Verander ellips Y radius"},
-{"id": "fill_color", "title": "Verander vul kleur"},
-{"id": "fitToContent", "textContent": "Pas om inhoud"},
-{"id": "fit_to_all", "textContent": "Pas om alle inhoud"},
-{"id": "fit_to_canvas", "textContent": "Pas om canvas"},
-{"id": "fit_to_layer_content", "textContent": "Pas om laag inhoud"},
-{"id": "fit_to_sel", "textContent": "Pas om selectie"},
-{"id": "font_family", "title": "Verander lettertype"},
-{"id": "icon_large", "textContent": "Groot"},
-{"id": "icon_medium", "textContent": "Gemiddeld"},
-{"id": "icon_small", "textContent": "Klein"},
-{"id": "icon_xlarge", "textContent": "Extra groot"},
-{"id": "idLabel", "title": "Identificeer het element"},
-{"id": "image_height", "title": "Verander hoogte afbeelding"},
-{"id": "image_opt_embed", "textContent": "Toevoegen data (lokale bestanden)"},
-{"id": "image_opt_ref", "textContent": "Gebruik bestand referentie"},
-{"id": "image_url", "title": "Verander URL"},
-{"id": "image_width", "title": "Verander breedte afbeelding"},
-{"id": "includedImages", "textContent": "Ingesloten afbeeldingen"},
-{"id": "largest_object", "textContent": "Grootste object"},
-{"id": "layer_delete", "title": "Delete laag"},
-{"id": "layer_down", "title": "Beweeg laag omlaag"},
-{"id": "layer_new", "title": "Nieuwe laag"},
-{"id": "layer_rename", "title": "Hernoem laag"},
-{"id": "layer_up", "title": "Beweeg laag omhoog"},
-{"id": "layersLabel", "textContent": "Lagen:"},
-{"id": "line_x1", "title": "Verander start X coordinaat van de lijn"},
-{"id": "line_x2", "title": "Verander eind X coordinaat van de lijn"},
-{"id": "line_y1", "title": "Verander start Y coordinaat van de lijn"},
-{"id": "line_y2", "title": "Verander eind Y coordinaat van de lijn"},
-{"id": "linecap_butt", "title": "Lijneinde: Geen"},
-{"id": "linecap_round", "title": "Lijneinde: Rond"},
-{"id": "linecap_square", "title": "Lijneinde: Vierkant"},
-{"id": "linejoin_bevel", "title": "Lijnverbinding: Afgestompt"},
-{"id": "linejoin_miter", "title": "Lijnverbinding: Hoek"},
-{"id": "linejoin_round", "title": "Lijnverbinding: Rond"},
-{"id": "main_icon", "title": "Hoofdmenu"},
-{"id": "mode_connect", "title": "Verbind twee objecten"},
-{"id": "page", "textContent": "Pagina"},
-{"id": "palette", "title": "Klik om de vul kleur te veranderen, shift-klik om de lijn kleur te veranderen"},
-{"id": "path_node_x", "title": "Verander X coordinaat knooppunt"},
-{"id": "path_node_y", "title": "Verander Y coordinaat knooppunt"},
-{"id": "rect_height_tool", "title": "Verander hoogte rechthoek"},
-{"id": "rect_width_tool", "title": "Verander breedte rechthoek"},
-{"id": "relativeToLabel", "textContent": "Relatief ten opzichte van:"},
-{"id": "seg_type", "title": "Verander segment type"},
-{"id": "selLayerLabel", "textContent": "Verplaats elementen naar:"},
-{"id": "selLayerNames", "title": "Verplaats geselecteerde elementen naar andere laag"},
-{"id": "selectedPredefined", "textContent": "Kies voorgedefinieerd:"},
-{"id": "selected_objects", "textContent": "Geselecteerde objecten"},
-{"id": "selected_x", "title": "Verander X coordinaat"},
-{"id": "selected_y", "title": "Verander Y coordinaat"},
-{"id": "smallest_object", "textContent": "Kleinste object"},
-{"id": "straight_segments", "textContent": "Recht"},
-{"id": "stroke_color", "title": "Verander lijn kleur"},
-{"id": "stroke_style", "title": "Verander lijn stijl"},
-{"id": "stroke_width", "title": "Verander lijn breedte"},
-{"id": "svginfo_bg_note", "textContent": "Let op: De achtergrond wordt niet opgeslagen met de afbeelding."},
-{"id": "svginfo_change_background", "textContent": "Editor achtergrond"},
-{"id": "svginfo_dim", "textContent": "Canvas afmetingen"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor eigenschappen"},
-{"id": "svginfo_height", "textContent": "Hoogte:"},
-{"id": "svginfo_icons", "textContent": "Icoon grootte"},
-{"id": "svginfo_image_props", "textContent": "Afbeeldingeigenschappen"},
-{"id": "svginfo_lang", "textContent": "Taal"},
-{"id": "svginfo_title", "textContent": "Titel"},
-{"id": "svginfo_width", "textContent": "Breedte:"},
-{"id": "text", "title": "Wijzig tekst"},
-{"id": "toggle_stroke_tools", "title": "Toon/verberg meer lijn gereedschap"},
-{"id": "tool_add_subpath", "title": "Subpad toevoegen"},
-{"id": "tool_alignbottom", "title": "Onder uitlijnen"},
-{"id": "tool_aligncenter", "title": "Centreren"},
-{"id": "tool_alignleft", "title": "Links uitlijnen"},
-{"id": "tool_alignmiddle", "title": "Midden uitlijnen"},
-{"id": "tool_alignright", "title": "Rechts uitlijnen"},
-{"id": "tool_aligntop", "title": "Boven uitlijnen"},
-{"id": "tool_angle", "title": "Draai"},
-{"id": "tool_blur", "title": "Verander Gaussische vervaging waarde"},
-{"id": "tool_bold", "title": "Vet"},
-{"id": "tool_circle", "title": "Cirkel"},
-{"id": "tool_clear", "textContent": "Nieuwe afbeelding"},
-{"id": "tool_clone", "title": "Kloon element"},
-{"id": "tool_clone_multi", "title": "Kloon elementen"},
-{"id": "tool_delete", "title": "Delete element"},
-{"id": "tool_delete_multi", "title": "Delete geselecteerde elementen"},
-{"id": "tool_docprops", "textContent": "Documenteigenschappen"},
-{"id": "tool_docprops_cancel", "textContent": "Annuleren"},
-{"id": "tool_docprops_save", "textContent": "Ok"},
-{"id": "tool_ellipse", "title": "Ellips"},
-{"id": "tool_export", "textContent": "Exporteer als PNG"},
-{"id": "tool_eyedropper", "title": "Kleuren kopieer gereedschap"},
-{"id": "tool_fhellipse", "title": "Vrije stijl ellips"},
-{"id": "tool_fhpath", "title": "Potlood"},
-{"id": "tool_fhrect", "title": "Vrije stijl rechthoek"},
-{"id": "tool_font_size", "title": "Verander lettertype grootte"},
-{"id": "tool_group", "title": "Groepeer elementen"},
-{"id": "tool_image", "title": "Afbeelding"},
-{"id": "tool_import", "textContent": "Importeer SVG"},
-{"id": "tool_italic", "title": "Cursief"},
-{"id": "tool_line", "title": "Lijn"},
-{"id": "tool_move_bottom", "title": "Naar achtergrond"},
-{"id": "tool_move_top", "title": "Naar voorgrond"},
-{"id": "tool_node_clone", "title": "Kloon knooppunt"},
-{"id": "tool_node_delete", "title": "Delete knooppunt"},
-{"id": "tool_node_link", "title": "Koppel controle punten"},
-{"id": "tool_opacity", "title": "Verander opaciteit geselecteerde item"},
-{"id": "tool_open", "textContent": "Open afbeelding"},
-{"id": "tool_openclose_path", "title": "Open/sluit subpad"},
-{"id": "tool_path", "title": "Pad"},
-{"id": "tool_position", "title": "Lijn element uit relatief ten opzichte van de pagina"},
-{"id": "tool_rect", "title": "Rechthoek"},
-{"id": "tool_redo", "title": "Opnieuw doen"},
-{"id": "tool_reorient", "title": "Herorienteer pad"},
-{"id": "tool_save", "textContent": "Afbeelding opslaan"},
-{"id": "tool_select", "title": "Selecteer"},
-{"id": "tool_source", "title": "Bewerk bron"},
-{"id": "tool_source_cancel", "textContent": "Annuleren"},
-{"id": "tool_source_save", "textContent": "Veranderingen toepassen"},
-{"id": "tool_square", "title": "Vierkant"},
-{"id": "tool_text", "title": "Tekst"},
-{"id": "tool_topath", "title": "Zet om naar pad"},
-{"id": "tool_undo", "title": "Ongedaan maken"},
-{"id": "tool_ungroup", "title": "Groepering opheffen"},
-{"id": "tool_wireframe", "title": "Draadmodel"},
-{"id": "tool_zoom", "title": "Zoom"},
-{"id": "url_notice", "title": "Let op: Dit plaatje kan niet worden geintegreerd (embeded). Het hangt af van dit pad om te worden afgebeeld."},
-{"id": "zoom_panel", "title": "In-/uitzoomen"},
-{"id": "sidepanel_handle", "textContent": "L a g e n", "title": "Sleep naar links/rechts om het zijpaneel te vergroten/verkleinen"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Er waren analyse fouten in je SVG bron.\nTeruggaan naar de originele SVG bron?", 
-  "QignoreSourceChanges": "Veranderingen in de SVG bron negeren?", 
-  "QmoveElemsToLayer": "Verplaats geselecteerde elementen naar laag '%s'?", 
-  "QwantToClear": "Wil je de afbeelding leeg maken?\nDit zal ook de ongedaan maak geschiedenis wissen!", 
-  "cancel": "Annuleren", 
-  "defsFailOnSave": "Let op: Vanwege een fout in je browser, kan dit plaatje verkeerd verschijnen (missende hoeken en/of elementen). Het zal goed verschijnen zodra het plaatje echt wordt opgeslagen.", 
-  "dupeLayerName": "Er is al een laag met die naam!", 
-  "enterNewImgURL": "Geef de nieuwe afbeelding URL", 
-  "enterNewLayerName": "Geef een nieuwe laag naam", 
-  "enterUniqueLayerName": "Geef een unieke laag naam", 
-  "exportNoBlur": "Vervaagde elementen zullen niet vervaagd worden geexporteerd.", 
-  "exportNoDashArray": "Lijnstijlen zullen gevuld worden geexporteerd..", 
-  "exportNoImage": "Plaatjes elementen zullen niet worden geexporteerd.", 
-  "exportNoText": "Tekst kan mogelijk niet zo worden geexporteerd zoals verwacht.", 
-  "exportNoforeignObject": "Vreemde objecten zullen niet worden geexporteerd.", 
-  "featNotSupported": "Functie wordt niet ondersteund", 
-  "invalidAttrValGiven": "Verkeerde waarde gegeven", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "omlaag", 
-  "key_up": "omhoog", 
-  "layer": "Laag", 
-  "layerHasThatName": "Laag heeft al die naam", 
-  "loadingImage": "Laden van het plaatje, even geduld aub...", 
-  "noContentToFitTo": "Geen inhoud om omheen te passen", 
-  "noteTheseIssues": "Let op de volgende problemen: ", 
-  "ok": "Ok", 
-  "pathCtrlPtTooltip": "Versleep het controle punt om de boog eigenschappen te veranderen", 
-  "pathNodeTooltip": "Versleep knooppunt om hem te verslepen. Dubbel klik knooppunt om het segment type te veranderen", 
-  "saveFromBrowser": "Kies \"Save As...\" in je browser om dit plaatje op te slaan als een %s bestand."
- }
-}
-]
+svgEditor.readLang({
+	lang: "nl",
+	dir : "ltr",
+	common: {
+		"ok": "Ok",
+		"cancel": "Annuleren",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "omlaag", 
+		"key_up": "omhoog", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Mogelijk gemaakt door"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Toon/verberg meer lijn gereedschap",
+		"palette_info": "Klik om de vul kleur te veranderen, shift-klik om de lijn kleur te veranderen",
+		"zoom_level": "In-/uitzoomen",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identificeer het element",
+		"fill_color": "Verander vul kleur",
+		"stroke_color": "Verander lijn kleur",
+		"stroke_style": "Verander lijn stijl",
+		"stroke_width": "Verander lijn breedte",
+		"pos_x": "Verander X coordinaat",
+		"pos_y": "Verander Y coordinaat",
+		"linecap_butt": "Lijneinde: Geen",
+		"linecap_round": "Lijneinde: Rond",
+		"linecap_square": "Lijneinde: Vierkant",
+		"linejoin_bevel": "Lijnverbinding: Afgestompt",
+		"linejoin_miter": "Lijnverbinding: Hoek",
+		"linejoin_round": "Lijnverbinding: Rond",
+		"angle": "Draai",
+		"blur": "Verander Gaussische vervaging waarde",
+		"opacity": "Verander opaciteit geselecteerde item",
+		"circle_cx": "Verander het X coordinaat van het cirkel middelpunt",
+		"circle_cy": "Verander het Y coordinaat van het cirkel middelpunt",
+		"circle_r": "Verander de cirkel radius",
+		"ellipse_cx": "Verander het X coordinaat van het ellips middelpunt",
+		"ellipse_cy": "Verander het Y coordinaat van het ellips middelpunt",
+		"ellipse_rx": "Verander ellips X radius",
+		"ellipse_ry": "Verander ellips Y radius",
+		"line_x1": "Verander start X coordinaat van de lijn",
+		"line_x2": "Verander eind X coordinaat van de lijn",
+		"line_y1": "Verander start Y coordinaat van de lijn",
+		"line_y2": "Verander eind Y coordinaat van de lijn",
+		"rect_height": "Verander hoogte rechthoek",
+		"rect_width": "Verander breedte rechthoek",
+		"corner_radius": "Verander hoekradius rechthoek",
+		"image_width": "Verander breedte afbeelding",
+		"image_height": "Verander hoogte afbeelding",
+		"image_url": "Verander URL",
+		"node_x": "Verander X coordinaat knooppunt",
+		"node_y": "Verander Y coordinaat knooppunt",
+		"seg_type": "Verander segment type",
+		"straight_segments": "Recht",
+		"curve_segments": "Gebogen",
+		"text_contents": "Wijzig tekst",
+		"font_family": "Verander lettertype",
+		"font_size": "Verander lettertype grootte",
+		"bold": "Vet",
+		"italic": "Cursief"
+	},
+	tools: { 
+		"main_menu": "Hoofdmenu",
+		"bkgnd_color_opac": "Verander achtergrond kleur/doorzichtigheid",
+		"connector_no_arrow": "Geen pijl",
+		"fitToContent": "Pas om inhoud",
+		"fit_to_all": "Pas om alle inhoud",
+		"fit_to_canvas": "Pas om canvas",
+		"fit_to_layer_content": "Pas om laag inhoud",
+		"fit_to_sel": "Pas om selectie",
+		"align_relative_to": "Uitlijnen relatief ten opzichte van ...",
+		"relativeTo": "Relatief ten opzichte van:",
+		"Pagina": "Pagina",
+		"largest_object": "Grootste object",
+		"selected_objects": "Geselecteerde objecten",
+		"smallest_object": "Kleinste object",
+		"new_doc": "Nieuwe afbeelding",
+		"open_doc": "Open afbeelding",
+		"export_png": "Exporteer als PNG",
+		"save_doc": "Afbeelding opslaan",
+		"import_doc": "Importeer SVG",
+		"align_to_page": "Lijn element uit relatief ten opzichte van de pagina",
+		"align_bottom": "Onder uitlijnen",
+		"align_center": "Centreren",
+		"align_left": "Links uitlijnen",
+		"align_middle": "Midden uitlijnen",
+		"align_right": "Rechts uitlijnen",
+		"align_top": "Boven uitlijnen",
+		"mode_select": "Selecteer",
+		"mode_fhpath": "Potlood",
+		"mode_line": "Lijn",
+		"mode_connect": "Verbind twee objecten",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Vrije stijl rechthoek",
+		"mode_ellipse": "Ellips",
+		"mode_circle": "Cirkel",
+		"mode_fhellipse": "Vrije stijl ellips",
+		"mode_path": "Pad",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Tekst",
+		"mode_image": "Afbeelding",
+		"mode_zoom": "Zoom",
+		"mode_eyedropper": "Kleuren kopieer gereedschap",
+		"no_embed": "Let op: Dit plaatje kan niet worden geintegreerd (embeded). Het hangt af van dit pad om te worden afgebeeld.",
+		"undo": "Ongedaan maken",
+		"redo": "Opnieuw doen",
+		"tool_source": "Bewerk bron",
+		"wireframe_mode": "Draadmodel",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Groepeer elementen",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Zet om naar pad",
+		"reorient_path": "Herorienteer pad",
+		"ungroup": "Groepering opheffen",
+		"docprops": "Documenteigenschappen",
+		"imagelib": "Image Library",
+		"move_bottom": "Naar achtergrond",
+		"move_top": "Naar voorgrond",
+		"node_clone": "Kloon knooppunt",
+		"node_delete": "Delete knooppunt",
+		"node_link": "Koppel controle punten",
+		"add_subpath": "Subpad toevoegen",
+		"openclose_path": "Open/sluit subpad",
+		"source_save": "Veranderingen toepassen",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Laag",
+		"layers": "Layers",
+		"del": "Delete laag",
+		"move_down": "Beweeg laag omlaag",
+		"new": "Nieuwe laag",
+		"rename": "Hernoem laag",
+		"move_up": "Beweeg laag omhoog",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Verplaats elementen naar:",
+		"move_selected": "Verplaats geselecteerde elementen naar andere laag"
+	},
+	config: {
+		"image_props": "Afbeeldingeigenschappen",
+		"doc_title": "Titel",
+		"doc_dims": "Canvas afmetingen",
+		"included_images": "Ingesloten afbeeldingen",
+		"image_opt_embed": "Toevoegen data (lokale bestanden)",
+		"image_opt_ref": "Gebruik bestand referentie",
+		"editor_prefs": "Editor eigenschappen",
+		"icon_size": "Icoon grootte",
+		"language": "Taal",
+		"background": "Editor achtergrond",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Let op: De achtergrond wordt niet opgeslagen met de afbeelding.",
+		"icon_large": "Groot",
+		"icon_medium": "Gemiddeld",
+		"icon_small": "Klein",
+		"icon_xlarge": "Extra groot",
+		"select_predefined": "Kies voorgedefinieerd:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Verkeerde waarde gegeven",
+		"noContentToFitTo":"Geen inhoud om omheen te passen",
+		"dupeLayerName":"Er is al een laag met die naam!",
+		"enterUniqueLayerName":"Geef een unieke laag naam",
+		"enterNewLayerName":"Geef een nieuwe laag naam",
+		"layerHasThatName":"Laag heeft al die naam",
+		"QmoveElemsToLayer":"Verplaats geselecteerde elementen naar laag '%s'?",
+		"QwantToClear":"Wil je de afbeelding leeg maken?\nDit zal ook de ongedaan maak geschiedenis wissen!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Er waren analyse fouten in je SVG bron.\nTeruggaan naar de originele SVG bron?",
+		"QignoreSourceChanges":"Veranderingen in de SVG bron negeren?",
+		"featNotSupported":"Functie wordt niet ondersteund",
+		"enterNewImgURL":"Geef de nieuwe afbeelding URL",
+		"defsFailOnSave": "Let op: Vanwege een fout in je browser, kan dit plaatje verkeerd verschijnen (missende hoeken en/of elementen). Het zal goed verschijnen zodra het plaatje echt wordt opgeslagen.",
+		"loadingImage":"Laden van het plaatje, even geduld aub...",
+		"saveFromBrowser": "Kies \"Save As...\" in je browser om dit plaatje op te slaan als een %s bestand.",
+		"noteTheseIssues": "Let op de volgende problemen: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.no.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Juster i forhold til ..."},
-{"id": "bkgnd_color", "title": "Endre bakgrunnsfarge / opacity"},
-{"id": "circle_cx", "title": "Endre sirkelens CX koordinatsystem"},
-{"id": "circle_cy", "title": "Endre sirkelens koordinere cy"},
-{"id": "circle_r", "title": "Endre sirkelens radius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Endre rektangel Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Endre ellipse&#39;s CX koordinatsystem"},
-{"id": "ellipse_cy", "title": "Endre ellipse&#39;s koordinere cy"},
-{"id": "ellipse_rx", "title": "Endre ellipse&#39;s x radius"},
-{"id": "ellipse_ry", "title": "Endre ellipse&#39;s y radius"},
-{"id": "fill_color", "title": "Endre fyllfarge"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Passer til alt innhold"},
-{"id": "fit_to_canvas", "textContent": "Tilpass til lerret"},
-{"id": "fit_to_layer_content", "textContent": "Fit to lag innhold"},
-{"id": "fit_to_sel", "textContent": "Tilpass til valg"},
-{"id": "font_family", "title": "Change Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Endre bilde høyde"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Endre URL"},
-{"id": "image_width", "title": "Endre bilde bredde"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "største objekt"},
-{"id": "layer_delete", "title": "Slett laget"},
-{"id": "layer_down", "title": "Flytt laget ned"},
-{"id": "layer_new", "title": "Nytt lag"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Flytt Layer Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Endre linje begynner x koordinat"},
-{"id": "line_x2", "title": "Endre linje&#39;s ending x koordinat"},
-{"id": "line_y1", "title": "Endre linje begynner y koordinat"},
-{"id": "line_y2", "title": "Endre linje&#39;s ending y koordinat"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "side"},
-{"id": "palette", "title": "Click å endre fyllfarge, shift-klikke for å endre slag farge"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Endre rektangel høyde"},
-{"id": "rect_width_tool", "title": "Endre rektangel bredde"},
-{"id": "relativeToLabel", "textContent": "i forhold til:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Velg forhåndsdefinerte:"},
-{"id": "selected_objects", "textContent": "velges objekter"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "minste objekt"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Endre stroke color"},
-{"id": "stroke_style", "title": "Endre stroke dash stil"},
-{"id": "stroke_width", "title": "Endre stroke width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Høyde:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Bredde:"},
-{"id": "text", "title": "Endre tekst innholdet"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Midtstill"},
-{"id": "tool_alignleft", "title": "Venstrejuster"},
-{"id": "tool_alignmiddle", "title": "Rett Middle"},
-{"id": "tool_alignright", "title": "Høyrejuster"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Endre rotasjonsvinkelen"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Fet tekst"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Slett element"},
-{"id": "tool_delete_multi", "title": "Slett valgte elementer [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Avbryt"},
-{"id": "tool_docprops_save", "textContent": "Lagre"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand rektangel"},
-{"id": "tool_font_size", "title": "Endre skriftstørrelse"},
-{"id": "tool_group", "title": "Gruppe Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kursiv tekst"},
-{"id": "tool_line", "title": "Linjeverktøy"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Flytt til toppen"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Endre valgte elementet opasitet"},
-{"id": "tool_open", "textContent": "Åpne Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rektangel"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Lagre bilde"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Edit Source"},
-{"id": "tool_source_cancel", "textContent": "Avbryt"},
-{"id": "tool_source_save", "textContent": "Lagre"},
-{"id": "tool_square", "title": "Torg"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Angre"},
-{"id": "tool_ungroup", "title": "Dele opp Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Endre zoomnivå"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "no",
+	dir : "ltr",
+	common: {
+		"ok": "Lagre",
+		"cancel": "Avbryt",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click å endre fyllfarge, shift-klikke for å endre slag farge",
+		"zoom_level": "Endre zoomnivå",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Endre fyllfarge",
+		"stroke_color": "Endre stroke color",
+		"stroke_style": "Endre stroke dash stil",
+		"stroke_width": "Endre stroke width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Endre rotasjonsvinkelen",
+		"blur": "Change gaussian blur value",
+		"opacity": "Endre valgte elementet opasitet",
+		"circle_cx": "Endre sirkelens CX koordinatsystem",
+		"circle_cy": "Endre sirkelens koordinere cy",
+		"circle_r": "Endre sirkelens radius",
+		"ellipse_cx": "Endre ellipse&#39;s CX koordinatsystem",
+		"ellipse_cy": "Endre ellipse&#39;s koordinere cy",
+		"ellipse_rx": "Endre ellipse&#39;s x radius",
+		"ellipse_ry": "Endre ellipse&#39;s y radius",
+		"line_x1": "Endre linje begynner x koordinat",
+		"line_x2": "Endre linje&#39;s ending x koordinat",
+		"line_y1": "Endre linje begynner y koordinat",
+		"line_y2": "Endre linje&#39;s ending y koordinat",
+		"rect_height": "Endre rektangel høyde",
+		"rect_width": "Endre rektangel bredde",
+		"corner_radius": "Endre rektangel Corner Radius",
+		"image_width": "Endre bilde bredde",
+		"image_height": "Endre bilde høyde",
+		"image_url": "Endre URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Endre tekst innholdet",
+		"font_family": "Change Font Family",
+		"font_size": "Endre skriftstørrelse",
+		"bold": "Fet tekst",
+		"italic": "Kursiv tekst"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Endre bakgrunnsfarge / opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Passer til alt innhold",
+		"fit_to_canvas": "Tilpass til lerret",
+		"fit_to_layer_content": "Fit to lag innhold",
+		"fit_to_sel": "Tilpass til valg",
+		"align_relative_to": "Juster i forhold til ...",
+		"relativeTo": "i forhold til:",
+		"side": "side",
+		"largest_object": "største objekt",
+		"selected_objects": "velges objekter",
+		"smallest_object": "minste objekt",
+		"new_doc": "New Image",
+		"open_doc": "Åpne Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Lagre bilde",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Midtstill",
+		"align_left": "Venstrejuster",
+		"align_middle": "Rett Middle",
+		"align_right": "Høyrejuster",
+		"align_top": "Align Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Linjeverktøy",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand rektangel",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Angre",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Gruppe Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Dele opp Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Flytt til toppen",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Lagre",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Slett laget",
+		"move_down": "Flytt laget ned",
+		"new": "Nytt lag",
+		"rename": "Rename Layer",
+		"move_up": "Flytt Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Velg forhåndsdefinerte:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.pl.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Dostosowanie w stosunku do ..."},
-{"id": "bkgnd_color", "title": "Zmień kolor tła / opacity"},
-{"id": "circle_cx", "title": "Zmiana koła CX koordynacji"},
-{"id": "circle_cy", "title": "Koła Zmian cy koordynacji"},
-{"id": "circle_r", "title": "Zmiana koła promienia"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Zmiana prostokąt Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Zmiana elipsy CX koordynacji"},
-{"id": "ellipse_cy", "title": "Elipsy Zmian cy koordynacji"},
-{"id": "ellipse_rx", "title": "Elipsy Zmian x promieniu"},
-{"id": "ellipse_ry", "title": "Elipsy Zmian y promieniu"},
-{"id": "fill_color", "title": "Zmiana koloru wypełnienia"},
-{"id": "fitToContent", "textContent": "Dopasuj do treści"},
-{"id": "fit_to_all", "textContent": "Dopasuj do wszystkich treści"},
-{"id": "fit_to_canvas", "textContent": "Dopasuj do płótnie"},
-{"id": "fit_to_layer_content", "textContent": "Dopasuj do zawartości warstwy"},
-{"id": "fit_to_sel", "textContent": "Dopasuj do wyboru"},
-{"id": "font_family", "title": "Zmiana czcionki Rodzina"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Wysokość obrazu zmian"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Zmień adres URL"},
-{"id": "image_width", "title": "Zmiana image width"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "największego obiektu"},
-{"id": "layer_delete", "title": "Usuwanie warstwy"},
-{"id": "layer_down", "title": "Przesuń warstwę w dół"},
-{"id": "layer_new", "title": "Nowa warstwa"},
-{"id": "layer_rename", "title": "Zmiana nazwy warstwy"},
-{"id": "layer_up", "title": "Move Up Layer"},
-{"id": "layersLabel", "textContent": "Warstwy:"},
-{"id": "line_x1", "title": "Zmian od linii współrzędna x"},
-{"id": "line_x2", "title": "Zgodnie Zmian kończące współrzędna x"},
-{"id": "line_y1", "title": "Line y Zmian od współrzędnych"},
-{"id": "line_y2", "title": "Zgodnie Zmian kończące y koordynowanie"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "strona"},
-{"id": "palette", "title": "Kliknij, aby zmienić kolor wypełnienia, shift kliknij, aby zmienić kolor skok"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Zmiana wysokości prostokąta"},
-{"id": "rect_width_tool", "title": "Szerokość prostokąta Zmień"},
-{"id": "relativeToLabel", "textContent": "w stosunku do:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Wybierz predefiniowanych:"},
-{"id": "selected_objects", "textContent": "wybranych obiektów"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "Najmniejszy obiekt"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Zmień kolor skok"},
-{"id": "stroke_style", "title": "Zmień styl skoku kreska"},
-{"id": "stroke_width", "title": "Szerokość skoku Zmień"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Wysokość:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Szerokość:"},
-{"id": "text", "title": "Zmiana treści tekstu"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Wyrównaj do dołu"},
-{"id": "tool_aligncenter", "title": "Wyśrodkuj"},
-{"id": "tool_alignleft", "title": "Wyrównaj do lewej"},
-{"id": "tool_alignmiddle", "title": "Align Middle"},
-{"id": "tool_alignright", "title": "Wyrównaj do prawej"},
-{"id": "tool_aligntop", "title": "Wyrównaj do góry"},
-{"id": "tool_angle", "title": "Zmiana kąta obrotu"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Koło"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Elementy Clone"},
-{"id": "tool_delete", "title": "Usuń element"},
-{"id": "tool_delete_multi", "title": "Usun Wybrane elementy"},
-{"id": "tool_docprops", "textContent": "Właściwości dokumentu"},
-{"id": "tool_docprops_cancel", "textContent": "Anuluj"},
-{"id": "tool_docprops_save", "textContent": "Zapisać"},
-{"id": "tool_ellipse", "title": "Elipsa"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Wolny-Hand Elipsa"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Wolnej ręki prostokąt"},
-{"id": "tool_font_size", "title": "Zmień rozmiar czcionki"},
-{"id": "tool_group", "title": "Elementy Grupa"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kursywa"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Przenieś do dołu"},
-{"id": "tool_move_top", "title": "Przenieś do góry"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Zmiana stron przezroczystość elementu"},
-{"id": "tool_open", "textContent": "Otwórz obraz"},
-{"id": "tool_path", "title": "Poli Tool"},
-{"id": "tool_rect", "title": "Prostokąt"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Zapisz obraz"},
-{"id": "tool_select", "title": "Wybierz narzędzie"},
-{"id": "tool_source", "title": "Edycja źródła"},
-{"id": "tool_source_cancel", "textContent": "Anuluj"},
-{"id": "tool_source_save", "textContent": "Zapisać"},
-{"id": "tool_square", "title": "Kwadrat"},
-{"id": "tool_text", "title": "Tekst Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Cofnij"},
-{"id": "tool_ungroup", "title": "Elementy Rozgrupuj"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Zmiana poziomu powiększenia"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "pl",
+	dir : "ltr",
+	common: {
+		"ok": "Zapisać",
+		"cancel": "Anuluj",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Kliknij, aby zmienić kolor wypełnienia, shift kliknij, aby zmienić kolor skok",
+		"zoom_level": "Zmiana poziomu powiększenia",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Zmiana koloru wypełnienia",
+		"stroke_color": "Zmień kolor skok",
+		"stroke_style": "Zmień styl skoku kreska",
+		"stroke_width": "Szerokość skoku Zmień",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Zmiana kąta obrotu",
+		"blur": "Change gaussian blur value",
+		"opacity": "Zmiana stron przezroczystość elementu",
+		"circle_cx": "Zmiana koła CX koordynacji",
+		"circle_cy": "Koła Zmian cy koordynacji",
+		"circle_r": "Zmiana koła promienia",
+		"ellipse_cx": "Zmiana elipsy CX koordynacji",
+		"ellipse_cy": "Elipsy Zmian cy koordynacji",
+		"ellipse_rx": "Elipsy Zmian x promieniu",
+		"ellipse_ry": "Elipsy Zmian y promieniu",
+		"line_x1": "Zmian od linii współrzędna x",
+		"line_x2": "Zgodnie Zmian kończące współrzędna x",
+		"line_y1": "Line y Zmian od współrzędnych",
+		"line_y2": "Zgodnie Zmian kończące y koordynowanie",
+		"rect_height": "Zmiana wysokości prostokąta",
+		"rect_width": "Szerokość prostokąta Zmień",
+		"corner_radius": "Zmiana prostokąt Corner Radius",
+		"image_width": "Zmiana image width",
+		"image_height": "Wysokość obrazu zmian",
+		"image_url": "Zmień adres URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Zmiana treści tekstu",
+		"font_family": "Zmiana czcionki Rodzina",
+		"font_size": "Zmień rozmiar czcionki",
+		"bold": "Bold Text",
+		"italic": "Kursywa"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Zmień kolor tła / opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Dopasuj do treści",
+		"fit_to_all": "Dopasuj do wszystkich treści",
+		"fit_to_canvas": "Dopasuj do płótnie",
+		"fit_to_layer_content": "Dopasuj do zawartości warstwy",
+		"fit_to_sel": "Dopasuj do wyboru",
+		"align_relative_to": "Dostosowanie w stosunku do ...",
+		"relativeTo": "w stosunku do:",
+		"strona": "strona",
+		"largest_object": "największego obiektu",
+		"selected_objects": "wybranych obiektów",
+		"smallest_object": "Najmniejszy obiekt",
+		"new_doc": "New Image",
+		"open_doc": "Otwórz obraz",
+		"export_png": "Export as PNG",
+		"save_doc": "Zapisz obraz",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Wyrównaj do dołu",
+		"align_center": "Wyśrodkuj",
+		"align_left": "Wyrównaj do lewej",
+		"align_middle": "Align Middle",
+		"align_right": "Wyrównaj do prawej",
+		"align_top": "Wyrównaj do góry",
+		"mode_select": "Wybierz narzędzie",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Wolnej ręki prostokąt",
+		"mode_ellipse": "Elipsa",
+		"mode_circle": "Koło",
+		"mode_fhellipse": "Wolny-Hand Elipsa",
+		"mode_path": "Poli Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Tekst Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Cofnij",
+		"redo": "Redo",
+		"tool_source": "Edycja źródła",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Elementy Grupa",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Elementy Rozgrupuj",
+		"docprops": "Właściwości dokumentu",
+		"imagelib": "Image Library",
+		"move_bottom": "Przenieś do dołu",
+		"move_top": "Przenieś do góry",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Zapisać",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Usuwanie warstwy",
+		"move_down": "Przesuń warstwę w dół",
+		"new": "Nowa warstwa",
+		"rename": "Zmiana nazwy warstwy",
+		"move_up": "Move Up Layer",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Wybierz predefiniowanych:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 233 - 156
main/inc/lib/svg-edit/locale/lang.pt-BR.js

@@ -1,157 +1,234 @@
-[
-{"id":"layer_new","title":"Nova Camada"},
-{"id":"layer_delete","title":"Deletar Camada"},
-{"id":"layer_rename","title":"Renomear Camada"},
-{"id":"layer_up","title":"Camada para Cima"},
-{"id":"layer_down","title":"Camada para baixo"},
-{"id":"tool_clear","title":"Nova Imagem"},
-{"id":"tool_open","title":"Abrir Imagem"},
-{"id":"tool_save","title":"Salvar Imagem"},
-{"id":"tool_docprops","title":"Propriedades"},
-{"id":"tool_source","title":"Código"},
-{"id":"tool_undo","title":"Desfazer"},
-{"id":"tool_redo","title":"Refazer"},
-{"id":"tool_clone","title":"Duplicar Elemento"},
-{"id":"tool_delete","title":"Excluir Elemento"},
-{"id":"tool_move_top","title":"Mover para Cima"},
-{"id":"tool_move_bottom","title":"Mover para Baixo"},
-{"id":"group_opacity","title":"Mudar a opacidade"},
-{"id":"angle","title":"Ângulo de rotação"},
-{"id":"tool_clone_multi","title":"Duplicar Elementos"},
-{"id":"tool_delete_multi","title":"Eliminar Elementos"},
-{"id":"tool_alignleft","title":"Alinhar à Esquerda"},
-{"id":"tool_aligncenter","title":"Alinhar ao centro"},
-{"id":"tool_alignright","title":"Alinhar à Direita"},
-{"id":"tool_aligntop","title":"Alinhar Acima"},
-{"id":"tool_alignmiddle","title":"Alinhar no Méio"},
-{"id":"tool_alignbottom","title":"Alinhar Abaixo"},
-{"id":"align_relative_to","title":"Alinhar em relação a ..."},
-{"id":"tool_group","title":"Agrupar"},
-{"id":"tool_ungroup","title":"Desagrupar"},
-{"id":"rect_width","title":"Alterar a largura retângulo"},
-{"id":"rect_height","title":"Alterar altura do retângulo"},
-{"id":"rect_rx","title":"Radio do chanfro"},
-{"id":"image_width","title":"Alterar a largura da imagem"},
-{"id":"image_height","title":"Alterar altura da imagem"},
-{"id":"image_url","title":"Alterar caminho URL"},
-{"id":"circle_cx","title":"Ponto horizontal do centro cx"},
-{"id":"circle_cy","title":"Ponto Vertical do centro cy"},
-{"id":"circle_r","title":"Alterar raio"},
-{"id":"ellipse_cx","title":"Ponto horizontal do centro cx"},
-{"id":"ellipse_cy","title":"Ponto Vertical do centro cy"},
-{"id":"ellipse_rx","title":"Alterar raio horizontal"},
-{"id":"ellipse_ry","title":"Alterar raio vertical"},
-{"id":"line_x1","title":"Ponto horizontal do início da linha x1"},
-{"id":"line_y1","title":"Ponto vertical do início da linha y1"},
-{"id":"line_x2","title":"Ponto horizontal do fim da linha x2"},
-{"id":"line_y2","title":"Ponto vertical do fim da linha y2"},
-{"id":"tool_bold","title":"Negrito"},
-{"id":"tool_italic","title":"Itálico"},
-{"id":"font_family","title":"Fonte"},
-{"id":"font_size","title":"Alterar tamanho da fonte"},
-{"id":"text","title":"Alterar o conteúdo do texto"},
-{"id":"tool_select","title":"Seleção"},
-{"id":"tool_fhpath","title":"Lápis"},
-{"id":"tool_line","title":"Linha"},
-{"id":"tools_rect_show","title":"Quadrado / Retângulo"},
-{"id":"tools_ellipse_show","title":"Elipse / Círculo"},
-{"id":"tool_text","title":"Texto"},
-{"id":"tool_path","title":"Área"},
-{"id":"tool_image","title":"Imagem"},
-{"id":"tool_zoom","title":"Zoom"},
-{"id":"zoom","title":"Alterar o zoom"},
-{"id":"fill_color","title":"Cor do preenchimento"},
-{"id":"stroke_color","title":"Cor do contorno"},
-{"id":"stroke_width","title":"Alterar a largura do contorno"},
-{"id":"stroke_style","title":"Alterar o estilo do contorno"},
-{"id":"palette","title":"Clique para mudar a cor do preenchimento, Shift + Clique para mudar a cor do contorno"},
-{"id":"tool_square","title":"Quadrado"},
-{"id":"tool_rect","title":"Retângulo"},
-{"id":"tool_fhrect","title":"Retangulo à mão-livre"},
-{"id":"tool_circle","title":"Circle"},
-{"id":"tool_ellipse","title":"Elipse"},
-{"id":"tool_fhellipse","title":"Elipse à mão-livre"},
-{"id":"bkgnd_color","title":"Mudar a cor de fundo / opacidade"},
-{"id":"rwidthLabel","textContent":"largura:"},
-{"id":"rheightLabel","textContent":"altura:"},
-{"id":"cornerRadiusLabel","textContent":"Raio:"},
-{"id":"iwidthLabel","textContent":"largura:"},
-{"id":"iheightLabel","textContent":"altura:"},
-{"id":"svginfo_width","textContent":"Largura:"},
-{"id":"svginfo_height","textContent":"Altura:"},
-{"id":"angleLabel","textContent":"ângulo:"},
-{"id":"relativeToLabel","textContent":"em relação ao:"},
-{"id":"zoomLabel","textContent":"zoom:"},
-{"id":"layersLabel","textContent":"Camadas:"},
-{"id":"selectedPredefined","textContent":"Selecionar predefinidos:"},
-{"id":"fitToContent","textContent":"Ajustar ao conteúdo"},
-{"id":"tool_source_save","textContent":"Salvar"},
-{"id":"tool_docprops_save","textContent":"Salvar"},
-{"id":"tool_docprops_cancel","textContent":"Cancelar"},
-{"id":"tool_source_cancel","textContent":"Cancelar"},
-{"id":"fit_to_all","textContent":"Ajustar a todo o conteúdo"},
-{"id":"fit_to_layer_content","textContent":"Ajustar ao conteúdo da camada"},
-{"id":"fit_to_sel","textContent":"Ajustar à seleção"},
-{"id":"fit_to_canvas","textContent":"Ajustar à tela"},
-{"id":"selected_objects","textContent":"objetos selecionados"},
-{"id":"largest_object","textContent":"maior objeto"},
-{"id":"smallest_object","textContent":"menor objeto"},
-{"id":"page","textContent":"Página"},
-{"id":"fill_tool_bottom","textContent":"Preenchimento:"},
-{"id":"stroke_tool_bottom","textContent":"Contorno:"},
-{"id":"path_node_x","title":"Coordenada do ponto x"},
-{"id":"path_node_y","title":"Coordenada do ponto y"},
-{"id":"seg_type","title":"Mudar Tipo de segmento"},
-{"id":"straight_segments","textContent":"Reta"},
-{"id":"curve_segments","textContent":"Curva"},
-{"id":"tool_node_clone","title":"Duplicar ponto"},
-{"id":"tool_node_delete","title":"Deletar ponto"},
-{"id":"selLayerLabel","textContent":"Mover elementos para:"},
-{"id":"selLayerNames","title":"Mover elementos selecionados para outra camada"},
-{"id":"sidepanel_handle","title":"Arraste para os lados para alterar a largura","textContent":"C a m a d a s"},
-{"id":"tool_wireframe","title":"Modo Somente Contornos"},
-{"id":"svginfo_image_props","textContent":"Propriedades da Imagem"},
-{"id":"svginfo_title","textContent":"Título"},
-{"id":"svginfo_dim","textContent":"Dimensões"},
-{"id":"includedImages","textContent":"Imagens incluídas"},
-{"id":"image_opt_embed","textContent":"Embutir dados (arquivos locais)"},
-{"id":"image_opt_ref","textContent":"Usar referência a arquivo"},
-{"id":"svginfo_editor_prefs","textContent":"Preferências"},
-{"id":"svginfo_lang","textContent":"Idioma"},
-{"id":"svginfo_change_background","textContent":"Mudar fundo"},
-{"id":"svginfo_bg_note","textContent":"Aviso: Fundo não será salvo com a imagem."},
-{"id":"svginfo_icons","textContent":"Tamanho do ícone"},
-{"id":"icon_small","textContent":"Pequeno"},
-{"id":"icon_medium","textContent":"Medio"},
-{"id":"icon_large","textContent":"Grande"},
-{"id":"icon_xlarge","textContent":"Extra"},
-{"id":"selected_x","title":"Mudar coodenada x"},
-{"id":"selected_y","title":"Mudar coodenada y"},
-{"id":"tool_topath","title":"Mudar para Área"},
-{"id":"tool_reorient","title":"Reorientar Área"},
-{"id":"tool_node_link","title":"Alinhar ponto de controle da curva"},
-{"js_strings": {
-	"invalidAttrValGiven":"Valor inválido",
-	"noContentToFitTo":"Sem conteúdo",
-	'layer':"Camada",
-	"dupeLayerName":"Já existe uma camada com esse nome",
-	"enterUniqueLayerName":"Por favor, insira um nome único",
-	"enterNewLayerName":"Por favor, insira o nome da nova camada",
-	"layerHasThatName":"A camada já possui este nome",
-	"QmoveElemsToLayer":"Mover os elementos selecionados para a camada: '%s'?",
-	"QwantToClear":"Deseja apagar o desenho?\nIsso também vai limpar o histórico!",
-	"QerrorsRevertToSource":"Foram encontrados erros no seu código SVG.\nVoltar para o código SVG original?",
-	"QignoreSourceChanges":"Ignorar mudanças no código SVG?",
-	"featNotSupported":"Recurso não suportado",
-	"enterNewImgURL":"Insirao caminho URL da imagem",
-	"ok":"Ok",
-	"cancel":"Cancelar",
-	"pathNodeTooltip":"Arraste o ponto para move-lo. \nDuplo-click para mudar o tipo de segmento (Reta / Curva)",
-	"pathCtrlPtTooltip":"Arraste ponto de controle da curva para alterar suas propriedades",
-	"key_up":"seta pra cima",
-	"key_down":"seta pra baixo",
-	"key_backspace":"backspace",
-	"key_del":"delete"
+svgEditor.readLang({
+	lang: "pt-BR",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "Cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click to change fill color, shift-click to change stroke color",
+		"zoom_level": "Change zoom level",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change fill color",
+		"stroke_color": "Change stroke color",
+		"stroke_style": "Change stroke dash style",
+		"stroke_width": "Change stroke width by 1, shift-click to change by 0.1",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Change rotation angle",
+		"blur": "Change gaussian blur value",
+		"opacity": "Change selected item opacity",
+		"circle_cx": "Change circle's cx coordinate",
+		"circle_cy": "Change circle's cy coordinate",
+		"circle_r": "Change circle's radius",
+		"ellipse_cx": "Change ellipse's cx coordinate",
+		"ellipse_cy": "Change ellipse's cy coordinate",
+		"ellipse_rx": "Change ellipse's x radius",
+		"ellipse_ry": "Change ellipse's y radius",
+		"line_x1": "Change line's starting x coordinate",
+		"line_x2": "Change line's ending x coordinate",
+		"line_y1": "Change line's starting y coordinate",
+		"line_y2": "Change line's ending y coordinate",
+		"rect_height": "Change rectangle height",
+		"rect_width": "Change rectangle width",
+		"corner_radius": "Change Rectangle Corner Radius",
+		"image_width": "Change image width",
+		"image_height": "Change image height",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Change text contents",
+		"font_family": "Change Font Family",
+		"font_size": "Change Font Size",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color/opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit to all content",
+		"fit_to_canvas": "Fit to canvas",
+		"fit_to_layer_content": "Fit to layer content",
+		"fit_to_sel": "Fit to selection",
+		"align_relative_to": "Align relative to ...",
+		"relativeTo": "relative to:",
+		"page": "page",
+		"largest_object": "largest object",
+		"selected_objects": "selected objects",
+		"smallest_object": "smallest object",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Align Center",
+		"align_left": "Align Left",
+		"align_middle": "Align Middle",
+		"align_right": "Align Right",
+		"align_top": "Align Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Group Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Apply Changes",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefined:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer \"%s\"?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
 	}
-}
-]
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.pt-PT.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Alinhar em relação a ..."},
-{"id": "bkgnd_color", "title": "Mudar a cor de fundo / opacidade"},
-{"id": "circle_cx", "title": "Cx Mudar círculo de coordenadas"},
-{"id": "circle_cy", "title": "Círculo Mudança cy coordenar"},
-{"id": "circle_r", "title": "Alterar círculo de raio"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Alterar Corner Rectangle Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Alterar elipse cx coordenar"},
-{"id": "ellipse_cy", "title": "Elipse Mudança cy coordenar"},
-{"id": "ellipse_rx", "title": "Raio X Change elipse"},
-{"id": "ellipse_ry", "title": "Raio y Change elipse"},
-{"id": "fill_color", "title": "Alterar a cor de preenchimento"},
-{"id": "fitToContent", "textContent": "Ajustar ao conteúdo"},
-{"id": "fit_to_all", "textContent": "Ajustar a todo o conteúdo"},
-{"id": "fit_to_canvas", "textContent": "Ajustar à tela"},
-{"id": "fit_to_layer_content", "textContent": "Ajustar o conteúdo da camada de"},
-{"id": "fit_to_sel", "textContent": "Ajustar à selecção"},
-{"id": "font_family", "title": "Alterar fonte Família"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Alterar altura da imagem"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Alterar URL"},
-{"id": "image_width", "title": "Alterar a largura da imagem"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "maior objeto"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move camada para baixo"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Camadas:"},
-{"id": "line_x1", "title": "Altere a linha de partida coordenada x"},
-{"id": "line_x2", "title": "Altere a linha está terminando coordenada x"},
-{"id": "line_y1", "title": "Mudança na linha de partida coordenada y"},
-{"id": "line_y2", "title": "Mudança de linha está terminando coordenada y"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Página"},
-{"id": "palette", "title": "Clique para mudar a cor de preenchimento, shift-clique para mudar a cor do curso"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Alterar altura do retângulo"},
-{"id": "rect_width_tool", "title": "Alterar a largura retângulo"},
-{"id": "relativeToLabel", "textContent": "em relação ao:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Selecione predefinidos:"},
-{"id": "selected_objects", "textContent": "objetos eleitos"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "menor objeto"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Mudar a cor do curso"},
-{"id": "stroke_style", "title": "Alterar o estilo do traço do curso"},
-{"id": "stroke_width", "title": "Alterar a largura do curso"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Altura:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Largura:"},
-{"id": "text", "title": "Alterar o conteúdo de texto"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Alinhar ao centro"},
-{"id": "tool_alignleft", "title": "Alinhar à Esquerda"},
-{"id": "tool_alignmiddle", "title": "Alinhar Médio"},
-{"id": "tool_alignright", "title": "Alinhar à Direita"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Alterar o ângulo de rotação"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "Nova Imagem"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Elementos Clone"},
-{"id": "tool_delete", "title": "Excluir Elemento"},
-{"id": "tool_delete_multi", "title": "Eliminar elementos selecionados"},
-{"id": "tool_docprops", "textContent": "Propriedades do Documento"},
-{"id": "tool_docprops_cancel", "textContent": "Cancelar"},
-{"id": "tool_docprops_save", "textContent": "Salvar"},
-{"id": "tool_ellipse", "title": "Elipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Ferramenta Lápis"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "Alterar tamanho de letra"},
-{"id": "tool_group", "title": "Elementos do Grupo"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Texto em itálico"},
-{"id": "tool_line", "title": "Ferramenta Linha"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Mude a opacidade item selecionado"},
-{"id": "tool_open", "textContent": "Abrir Imagem"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Retângulo"},
-{"id": "tool_redo", "title": "Refazer"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Salvar Imagem"},
-{"id": "tool_select", "title": "Selecione a ferramenta"},
-{"id": "tool_source", "title": "Fonte Editar"},
-{"id": "tool_source_cancel", "textContent": "Cancelar"},
-{"id": "tool_source_save", "textContent": "Salvar"},
-{"id": "tool_square", "title": "Quadrado"},
-{"id": "tool_text", "title": "Ferramenta de Texto"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Desfazer"},
-{"id": "tool_ungroup", "title": "Elementos Desagrupar"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Alterar o nível de zoom"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "pt-PT",
+	dir : "ltr",
+	common: {
+		"ok": "Salvar",
+		"cancel": "Cancelar",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Clique para mudar a cor de preenchimento, shift-clique para mudar a cor do curso",
+		"zoom_level": "Alterar o nível de zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Alterar a cor de preenchimento",
+		"stroke_color": "Mudar a cor do curso",
+		"stroke_style": "Alterar o estilo do traço do curso",
+		"stroke_width": "Alterar a largura do curso",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Alterar o ângulo de rotação",
+		"blur": "Change gaussian blur value",
+		"opacity": "Mude a opacidade item selecionado",
+		"circle_cx": "Cx Mudar círculo de coordenadas",
+		"circle_cy": "Círculo Mudança cy coordenar",
+		"circle_r": "Alterar círculo de raio",
+		"ellipse_cx": "Alterar elipse cx coordenar",
+		"ellipse_cy": "Elipse Mudança cy coordenar",
+		"ellipse_rx": "Raio X Change elipse",
+		"ellipse_ry": "Raio y Change elipse",
+		"line_x1": "Altere a linha de partida coordenada x",
+		"line_x2": "Altere a linha está terminando coordenada x",
+		"line_y1": "Mudança na linha de partida coordenada y",
+		"line_y2": "Mudança de linha está terminando coordenada y",
+		"rect_height": "Alterar altura do retângulo",
+		"rect_width": "Alterar a largura retângulo",
+		"corner_radius": "Alterar Corner Rectangle Radius",
+		"image_width": "Alterar a largura da imagem",
+		"image_height": "Alterar altura da imagem",
+		"image_url": "Alterar URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Alterar o conteúdo de texto",
+		"font_family": "Alterar fonte Família",
+		"font_size": "Alterar tamanho de letra",
+		"bold": "Bold Text",
+		"italic": "Texto em itálico"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Mudar a cor de fundo / opacidade",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Ajustar ao conteúdo",
+		"fit_to_all": "Ajustar a todo o conteúdo",
+		"fit_to_canvas": "Ajustar à tela",
+		"fit_to_layer_content": "Ajustar o conteúdo da camada de",
+		"fit_to_sel": "Ajustar à selecção",
+		"align_relative_to": "Alinhar em relação a ...",
+		"relativeTo": "em relação ao:",
+		"Página": "Página",
+		"largest_object": "maior objeto",
+		"selected_objects": "objetos eleitos",
+		"smallest_object": "menor objeto",
+		"new_doc": "Nova Imagem",
+		"open_doc": "Abrir Imagem",
+		"export_png": "Export as PNG",
+		"save_doc": "Salvar Imagem",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Alinhar ao centro",
+		"align_left": "Alinhar à Esquerda",
+		"align_middle": "Alinhar Médio",
+		"align_right": "Alinhar à Direita",
+		"align_top": "Align Top",
+		"mode_select": "Selecione a ferramenta",
+		"mode_fhpath": "Ferramenta Lápis",
+		"mode_line": "Ferramenta Linha",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Elipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Ferramenta de Texto",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Desfazer",
+		"redo": "Refazer",
+		"tool_source": "Fonte Editar",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Elementos do Grupo",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Elementos Desagrupar",
+		"docprops": "Propriedades do Documento",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Salvar",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move camada para baixo",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Selecione predefinidos:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.ro.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Alinierea în raport cu ..."},
-{"id": "bkgnd_color", "title": "Schimbare culoare de fundal / opacitate"},
-{"id": "circle_cx", "title": "Schimbarea coordonatei CX a cercului"},
-{"id": "circle_cy", "title": "Schimbarea coordonatei CY a cercului"},
-{"id": "circle_r", "title": "Schimbarea razei cercului"},
-{"id": "connector_no_arrow", "textContent": "Fără Săgeată"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Schimbarea Razei Colţului Dreptunghiului"},
-{"id": "curve_segments", "textContent": "Curv"},
-{"id": "ellipse_cx", "title": "Schimbarea coordonatei CX a elipsei"},
-{"id": "ellipse_cy", "title": "Schimbarea coordonatei CY a elipsei"},
-{"id": "ellipse_rx", "title": "Schimbarea razei elipsei X"},
-{"id": "ellipse_ry", "title": "Schimbarea razei elipsei Y"},
-{"id": "fill_color", "title": "Schimbarea culorii de umplere"},
-{"id": "fitToContent", "textContent": "Dimensionare la Conţinut"},
-{"id": "fit_to_all", "textContent": "Potrivire la tot conţinutul"},
-{"id": "fit_to_canvas", "textContent": "Potrivire la Şevalet"},
-{"id": "fit_to_layer_content", "textContent": "Potrivire la conţinutul stratului"},
-{"id": "fit_to_sel", "textContent": "Potrivire la selecţie"},
-{"id": "font_family", "title": "Modificare familie de Fonturi"},
-{"id": "icon_large", "textContent": "Mari"},
-{"id": "icon_medium", "textContent": "Medii"},
-{"id": "icon_small", "textContent": "Mici"},
-{"id": "icon_xlarge", "textContent": "Foarte Mari"},
-{"id": "image_height", "title": "Schimbarea Înălţimii imaginii"},
-{"id": "image_opt_embed", "textContent": "Includeţi Datele (fisiere locale)"},
-{"id": "image_opt_ref", "textContent": "Foloseste referinte la fisiere"},
-{"id": "image_url", "title": "Schimbaţi URL-ul"},
-{"id": "image_width", "title": "Schimbarea Lăţimii imaginii"},
-{"id": "includedImages", "textContent": "Imaginile Incluse"},
-{"id": "largest_object", "textContent": "cel mai mare obiect"},
-{"id": "layer_delete", "title": "Ştergeţi Strat"},
-{"id": "layer_down", "title": "Mutare Strat în Jos"},
-{"id": "layer_new", "title": "Strat Nou"},
-{"id": "layer_rename", "title": "Redenumiţi Strat"},
-{"id": "layer_up", "title": "Mutare Strat în Sus"},
-{"id": "layersLabel", "textContent": "Straturi:"},
-{"id": "line_x1", "title": "Schimbare coordonatei x a punctului de start"},
-{"id": "line_x2", "title": "Schimbare coordonatei x a punctului final"},
-{"id": "line_y1", "title": "Schimbare coordonatei y a punctului de start"},
-{"id": "line_y2", "title": "Schimbare coordonatei y a punctului final"},
-{"id": "linecap_butt", "title": "Capat de linie: Butuc"},
-{"id": "linecap_round", "title": "Capat de linie: Rotund"},
-{"id": "linecap_square", "title": "Capat de linie: Patrat"},
-{"id": "linejoin_bevel", "title": "Articulatia liniei: Tesita"},
-{"id": "linejoin_miter", "title": "Articulatia liniei: Unghi ascutit"},
-{"id": "linejoin_round", "title": "Articulatia liniei: Rotunda"},
-{"id": "main_icon", "title": "Menu Principal"},
-{"id": "mode_connect", "title": "Conectati doua obiecte"},
-{"id": "page", "textContent": "de start"},
-{"id": "palette", "title": "Faceţi clic a schimba culoare de umplere, Shift-click pentru a schimba culoarea de contur"},
-{"id": "path_node_x", "title": "Schimba coordonata x a punctului"},
-{"id": "path_node_y", "title": "Schimba coordonata x a punctului"},
-{"id": "rect_height_tool", "title": "Schimbarea înălţimii dreptunghiului"},
-{"id": "rect_width_tool", "title": "Schimbarea lăţimii dreptunghiului"},
-{"id": "relativeToLabel", "textContent": "în raport cu:"},
-{"id": "seg_type", "title": "Schimba tipul de segment"},
-{"id": "selLayerLabel", "textContent": "Muta elemente la:"},
-{"id": "selLayerNames", "title": "Muta elementele selectate pe un alt strat"},
-{"id": "selectedPredefined", "textContent": "Selecţii predefinite:"},
-{"id": "selected_objects", "textContent": "obiectele alese"},
-{"id": "selected_x", "title": "Schimba coordonata X"},
-{"id": "selected_y", "title": "Schimba coordonata Y"},
-{"id": "smallest_object", "textContent": "cel mai mic obiect"},
-{"id": "straight_segments", "textContent": "Drept"},
-{"id": "stroke_color", "title": "Schimbarea culorii de contur"},
-{"id": "stroke_style", "title": "Schimbarea stilului de contur"},
-{"id": "stroke_width", "title": "Schimbarea lăţime de contur"},
-{"id": "svginfo_bg_note", "textContent": "Nota: Fondul nu va fi salvat cu imaginea."},
-{"id": "svginfo_change_background", "textContent": "Fondul Editorului"},
-{"id": "svginfo_dim", "textContent": "Dimensiunile Sevaletuui"},
-{"id": "svginfo_editor_prefs", "textContent": "Preferintele Editorului"},
-{"id": "svginfo_height", "textContent": "Înălţime:"},
-{"id": "svginfo_icons", "textContent": "Dimensiunile Butoanelor"},
-{"id": "svginfo_image_props", "textContent": "Proprietaţile Imaginii"},
-{"id": "svginfo_lang", "textContent": "Limba"},
-{"id": "svginfo_title", "textContent": "Titlul"},
-{"id": "svginfo_width", "textContent": "Lăţime:"},
-{"id": "text", "title": "Schimbarea Conţinutului textului"},
-{"id": "toggle_stroke_tools", "title": "Aratati/ascundeti mai multe unelte de contur"},
-{"id": "tool_add_subpath", "title": "Adaugati sub-traiectorie"},
-{"id": "tool_alignbottom", "title": "Alinierea jos"},
-{"id": "tool_aligncenter", "title": "Aliniere la centru"},
-{"id": "tool_alignleft", "title": "Aliniere la stânga"},
-{"id": "tool_alignmiddle", "title": "Aliniere la mijloc"},
-{"id": "tool_alignright", "title": "Aliniere la dreapta"},
-{"id": "tool_aligntop", "title": "Alinierea sus"},
-{"id": "tool_angle", "title": "Schimbarea unghiul de rotatie"},
-{"id": "tool_blur", "title": "Schimbarea valorii estomparii gaussiene"},
-{"id": "tool_bold", "title": "Text Îngroşat"},
-{"id": "tool_circle", "title": "Cerc"},
-{"id": "tool_clear", "textContent": "Imagine nouă"},
-{"id": "tool_clone", "title": "Clonare Element"},
-{"id": "tool_clone_multi", "title": "Clonare Elemente"},
-{"id": "tool_delete", "title": "Şterge Element"},
-{"id": "tool_delete_multi", "title": "Ştergeţi Elementele selectate"},
-{"id": "tool_docprops", "textContent": "Propertile Documentului"},
-{"id": "tool_docprops_cancel", "textContent": "Anulaţi"},
-{"id": "tool_docprops_save", "textContent": "Ok"},
-{"id": "tool_ellipse", "title": "Elipsă"},
-{"id": "tool_export", "textContent": "Exportare ca şi PNG"},
-{"id": "tool_eyedropper", "title": "Unealta de Eye Dropper"},
-{"id": "tool_fhellipse", "title": "Elipsă cu mana-libera"},
-{"id": "tool_fhpath", "title": "Unealta de Traiectorie"},
-{"id": "tool_fhrect", "title": "Dreptunghi cu mana-libera"},
-{"id": "tool_font_size", "title": "Schimbă dimensiunea fontului"},
-{"id": "tool_group", "title": "Grupare  Elemente"},
-{"id": "tool_image", "title": "Unealta de Imagine"},
-{"id": "tool_import", "textContent": "Importare SVG"},
-{"id": "tool_italic", "title": "Text Înclinat"},
-{"id": "tool_line", "title": "Unealta de Linie"},
-{"id": "tool_move_bottom", "title": "Mutare în jos"},
-{"id": "tool_move_top", "title": "Mutare în sus"},
-{"id": "tool_node_clone", "title": "Cloneaza Punct"},
-{"id": "tool_node_delete", "title": "Sterge Punct"},
-{"id": "tool_node_link", "title": "Uneste Punctele de Control"},
-{"id": "tool_opacity", "title": "Schimbarea selectat opacitate element"},
-{"id": "tool_open", "textContent": "Imagine deschisă"},
-{"id": "tool_path", "title": "Unealta de Path"},
-{"id": "tool_rect", "title": "Dreptunghi"},
-{"id": "tool_redo", "title": "Refacere"},
-{"id": "tool_reorient", "title": "Reorienteaza Traiectoria"},
-{"id": "tool_save", "textContent": "Salvare Imagine"},
-{"id": "tool_select", "title": "Unealta de Selectare"},
-{"id": "tool_source", "title": "Editare Cod Sursa"},
-{"id": "tool_source_cancel", "textContent": "Anulaţi"},
-{"id": "tool_source_save", "textContent": "Folositi Schimbarile"},
-{"id": "tool_square", "title": "Pătrat"},
-{"id": "tool_text", "title": "Unealta de Text"},
-{"id": "tool_topath", "title": "Converteste in Traiectorie"},
-{"id": "tool_undo", "title": "Anulare"},
-{"id": "tool_ungroup", "title": "Anulare Grupare Elemente"},
-{"id": "tool_wireframe", "title": "Mod Schelet"},
-{"id": "tool_zoom", "title": "Unealta de Zoom"},
-{"id": "url_notice", "title": "NOTE: Aceasta imagine nu poate fi inglobata. Va depinde de aceasta traiectorie pentru a fi prezentata."},
-{"id": "zoom_panel", "title": "Schimbarea nivelului de zoom"},
-{"id": "sidepanel_handle", "textContent": "S t r a t u r i", "title": "Trage stanga/dreapta pentru redimensionare  panou lateral"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Sunt erori de parsing in sursa SVG.\nRevenire la sursa SVG  orginala?", 
-  "QignoreSourceChanges": "Ignorati schimbarile la sursa SVG?", 
-  "QmoveElemsToLayer": "Mutati elementele selectate pe stratul '%s'?", 
-  "QwantToClear": "Doriti sa stergeti desenul?\nAceasta va sterge si posibilitatea de anulare!", 
-  "cancel": "Revocare", 
-  "defsFailOnSave": "NOTE: Din cauza unei erori in browserul dv., aceasta imagine poate apare gresit (fara gradiente sau elemente). Insa va apare corect dupa salvare.", 
-  "dupeLayerName": "Deja exista un strat numis asa!", 
-  "enterNewImgURL": "Introduceti noul URL pentru Imagine", 
-  "enterNewLayerName": "Rog introduceti un nume pentru strat", 
-  "enterUniqueLayerName": "Rog introduceti un nume unic", 
-  "exportNoBlur": "Elementele estompate vor apare ne-estompate", 
-  "exportNoDashArray": "Contururile vor apare pline", 
-  "exportNoImage": "Elementele de imagine nu vor apare", 
-  "exportNoText": "Posibil ca textul sa nu apara conform asteptarilor", 
-  "exportNoforeignObject": "Elementele foreignObject nu vor apare", 
-  "featNotSupported": "Functie neimplementata", 
-  "invalidAttrValGiven": "Valoarea data nu este valida", 
-  "key_backspace": "backspace", 
-  "key_del": "stergere", 
-  "key_down": "jos", 
-  "key_up": "sus", 
-  "layer": "Strat", 
-  "layerHasThatName": "Statul deja are acest nume", 
-  "loadingImage": "Imaginea se incarca, va rugam asteptati...", 
-  "noContentToFitTo": "Fara continut de referinta", 
-  "noteTheseIssues": "De asemeni remarcati urmatoarele probleme: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Trage de punctul de control pt. a-i schimba proprietatile", 
-  "pathNodeTooltip": "Trage de punct pentru a-l muta. Dublu-clic pentru schimbarea tipului de segment", 
-  "saveFromBrowser": "Selecteaza \"Salvea ca si...\" in browserul dv. pt. a salva aceasta imafine ca si fisier %s."
- }
-}
-]
+svgEditor.readLang({
+	lang: "ro",
+	dir : "ltr",
+	common: {
+		"ok": "Ok",
+		"cancel": "Anulaţi",
+		"key_backspace": "backspace", 
+		"key_del": "stergere", 
+		"key_down": "jos", 
+		"key_up": "sus", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Aratati/ascundeti mai multe unelte de contur",
+		"palette_info": "Faceţi clic a schimba culoare de umplere, Shift-click pentru a schimba culoarea de contur",
+		"zoom_level": "Schimbarea nivelului de zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Schimbarea culorii de umplere",
+		"stroke_color": "Schimbarea culorii de contur",
+		"stroke_style": "Schimbarea stilului de contur",
+		"stroke_width": "Schimbarea lăţime de contur",
+		"pos_x": "Schimba coordonata X",
+		"pos_y": "Schimba coordonata Y",
+		"linecap_butt": "Capat de linie: Butuc",
+		"linecap_round": "Capat de linie: Rotund",
+		"linecap_square": "Capat de linie: Patrat",
+		"linejoin_bevel": "Articulatia liniei: Tesita",
+		"linejoin_miter": "Articulatia liniei: Unghi ascutit",
+		"linejoin_round": "Articulatia liniei: Rotunda",
+		"angle": "Schimbarea unghiul de rotatie",
+		"blur": "Schimbarea valorii estomparii gaussiene",
+		"opacity": "Schimbarea selectat opacitate element",
+		"circle_cx": "Schimbarea coordonatei CX a cercului",
+		"circle_cy": "Schimbarea coordonatei CY a cercului",
+		"circle_r": "Schimbarea razei cercului",
+		"ellipse_cx": "Schimbarea coordonatei CX a elipsei",
+		"ellipse_cy": "Schimbarea coordonatei CY a elipsei",
+		"ellipse_rx": "Schimbarea razei elipsei X",
+		"ellipse_ry": "Schimbarea razei elipsei Y",
+		"line_x1": "Schimbare coordonatei x a punctului de start",
+		"line_x2": "Schimbare coordonatei x a punctului final",
+		"line_y1": "Schimbare coordonatei y a punctului de start",
+		"line_y2": "Schimbare coordonatei y a punctului final",
+		"rect_height": "Schimbarea înălţimii dreptunghiului",
+		"rect_width": "Schimbarea lăţimii dreptunghiului",
+		"corner_radius": "Schimbarea Razei Colţului Dreptunghiului",
+		"image_width": "Schimbarea Lăţimii imaginii",
+		"image_height": "Schimbarea Înălţimii imaginii",
+		"image_url": "Schimbaţi URL-ul",
+		"node_x": "Schimba coordonata x a punctului",
+		"node_y": "Schimba coordonata x a punctului",
+		"seg_type": "Schimba tipul de segment",
+		"straight_segments": "Drept",
+		"curve_segments": "Curv",
+		"text_contents": "Schimbarea Conţinutului textului",
+		"font_family": "Modificare familie de Fonturi",
+		"font_size": "Schimbă dimensiunea fontului",
+		"bold": "Text Îngroşat",
+		"italic": "Text Înclinat"
+	},
+	tools: { 
+		"main_menu": "Menu Principal",
+		"bkgnd_color_opac": "Schimbare culoare de fundal / opacitate",
+		"connector_no_arrow": "Fără Săgeată",
+		"fitToContent": "Dimensionare la Conţinut",
+		"fit_to_all": "Potrivire la tot conţinutul",
+		"fit_to_canvas": "Potrivire la Şevalet",
+		"fit_to_layer_content": "Potrivire la conţinutul stratului",
+		"fit_to_sel": "Potrivire la selecţie",
+		"align_relative_to": "Alinierea în raport cu ...",
+		"relativeTo": "în raport cu:",
+		"de start": "de start",
+		"largest_object": "cel mai mare obiect",
+		"selected_objects": "obiectele alese",
+		"smallest_object": "cel mai mic obiect",
+		"new_doc": "Imagine nouă",
+		"open_doc": "Imagine deschisă",
+		"export_png": "Exportare ca şi PNG",
+		"save_doc": "Salvare Imagine",
+		"import_doc": "Importare SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Alinierea jos",
+		"align_center": "Aliniere la centru",
+		"align_left": "Aliniere la stânga",
+		"align_middle": "Aliniere la mijloc",
+		"align_right": "Aliniere la dreapta",
+		"align_top": "Alinierea sus",
+		"mode_select": "Unealta de Selectare",
+		"mode_fhpath": "Unealta de Traiectorie",
+		"mode_line": "Unealta de Linie",
+		"mode_connect": "Conectati doua obiecte",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Dreptunghi cu mana-libera",
+		"mode_ellipse": "Elipsă",
+		"mode_circle": "Cerc",
+		"mode_fhellipse": "Elipsă cu mana-libera",
+		"mode_path": "Unealta de Path",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Unealta de Text",
+		"mode_image": "Unealta de Imagine",
+		"mode_zoom": "Unealta de Zoom",
+		"mode_eyedropper": "Unealta de Eye Dropper",
+		"no_embed": "NOTE: Aceasta imagine nu poate fi inglobata. Va depinde de aceasta traiectorie pentru a fi prezentata.",
+		"undo": "Anulare",
+		"redo": "Refacere",
+		"tool_source": "Editare Cod Sursa",
+		"wireframe_mode": "Mod Schelet",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Grupare  Elemente",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Converteste in Traiectorie",
+		"reorient_path": "Reorienteaza Traiectoria",
+		"ungroup": "Anulare Grupare Elemente",
+		"docprops": "Propertile Documentului",
+		"imagelib": "Image Library",
+		"move_bottom": "Mutare în jos",
+		"move_top": "Mutare în sus",
+		"node_clone": "Cloneaza Punct",
+		"node_delete": "Sterge Punct",
+		"node_link": "Uneste Punctele de Control",
+		"add_subpath": "Adaugati sub-traiectorie",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Folositi Schimbarile",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"stergere": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Strat",
+		"layers": "Layers",
+		"del": "Ştergeţi Strat",
+		"move_down": "Mutare Strat în Jos",
+		"new": "Strat Nou",
+		"rename": "Redenumiţi Strat",
+		"move_up": "Mutare Strat în Sus",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Muta elemente la:",
+		"move_selected": "Muta elementele selectate pe un alt strat"
+	},
+	config: {
+		"image_props": "Proprietaţile Imaginii",
+		"doc_title": "Titlul",
+		"doc_dims": "Dimensiunile Sevaletuui",
+		"included_images": "Imaginile Incluse",
+		"image_opt_embed": "Includeţi Datele (fisiere locale)",
+		"image_opt_ref": "Foloseste referinte la fisiere",
+		"editor_prefs": "Preferintele Editorului",
+		"icon_size": "Dimensiunile Butoanelor",
+		"language": "Limba",
+		"background": "Fondul Editorului",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Nota: Fondul nu va fi salvat cu imaginea.",
+		"icon_large": "Mari",
+		"icon_medium": "Medii",
+		"icon_small": "Mici",
+		"icon_xlarge": "Foarte Mari",
+		"select_predefined": "Selecţii predefinite:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Valoarea data nu este valida",
+		"noContentToFitTo":"Fara continut de referinta",
+		"dupeLayerName":"Deja exista un strat numis asa!",
+		"enterUniqueLayerName":"Rog introduceti un nume unic",
+		"enterNewLayerName":"Rog introduceti un nume pentru strat",
+		"layerHasThatName":"Statul deja are acest nume",
+		"QmoveElemsToLayer":"Mutati elementele selectate pe stratul '%s'?",
+		"QwantToClear":"Doriti sa stergeti desenul?\nAceasta va sterge si posibilitatea de anulare!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Sunt erori de parsing in sursa SVG.\nRevenire la sursa SVG  orginala?",
+		"QignoreSourceChanges":"Ignorati schimbarile la sursa SVG?",
+		"featNotSupported":"Functie neimplementata",
+		"enterNewImgURL":"Introduceti noul URL pentru Imagine",
+		"defsFailOnSave": "NOTE: Din cauza unei erori in browserul dv., aceasta imagine poate apare gresit (fara gradiente sau elemente). Insa va apare corect dupa salvare.",
+		"loadingImage":"Imaginea se incarca, va rugam asteptati...",
+		"saveFromBrowser": "Selecteaza \"Salvea ca si...\" in browserul dv. pt. a salva aceasta imafine ca si fisier %s.",
+		"noteTheseIssues": "De asemeni remarcati urmatoarele probleme: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 176
main/inc/lib/svg-edit/locale/lang.ru.js

@@ -1,176 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Выровнять по отношению к ..."},
-{"id": "bkgnd_color", "title": "Изменить цвет фона или прозрачность"},
-{"id": "circle_cx", "title": "Изменить горизонтальный координат (CX) окружности"},
-{"id": "circle_cy", "title": "Изменить вертикальный координат (CY) окружности"},
-{"id": "circle_r", "title": "Изменить радиус окружности"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Изменить радиус скругления углов прямоугольника"},
-{"id": "cornerRadiusLabel", "title": "Радиус закругленности угла"},
-{"id": "curve_segments", "textContent": "Сплайн"},
-{"id": "ellipse_cx", "title": "Изменить горизонтальный координат (CX) эллипса"},
-{"id": "ellipse_cy", "title": "Изменить вертикальный координат (CY) эллипса"},
-{"id": "ellipse_rx", "title": "Изменить горизонтальный радиус эллипса"},
-{"id": "ellipse_ry", "title": "Изменить вертикальный радиус эллипса"},
-{"id": "fill_color", "title": "Изменить цвет заливки"},
-{"id": "fitToContent", "textContent": "Под размер содержимого"},
-{"id": "fit_to_all", "textContent": "Под размер всех слоев"},
-{"id": "fit_to_canvas", "textContent": "Под размер холста"},
-{"id": "fit_to_layer_content", "textContent": "Под размер содержания слоя"},
-{"id": "fit_to_sel", "textContent": "Под размер выделенного"},
-{"id": "font_family", "title": "Изменить семейство шрифтов"},
-{"id": "icon_large", "textContent": "Большие"},
-{"id": "icon_medium", "textContent": "Средние"},
-{"id": "icon_small", "textContent": "Малые"},
-{"id": "icon_xlarge", "textContent": "Огромные"},
-{"id": "image_height", "title": "Изменить высоту изображения"},
-{"id": "image_opt_embed", "textContent": "Локальные файлы"},
-{"id": "image_opt_ref", "textContent": "По ссылкам"},
-{"id": "image_url", "title": "Изменить URL"},
-{"id": "image_width", "title": "Изменить ширину изображения"},
-{"id": "includedImages", "textContent": "Встроенные изображения"},
-{"id": "largest_object", "textContent": "Наибольший объект"},
-{"id": "layer_delete", "title": "Удалить слой"},
-{"id": "layer_down", "title": "Опустить слой"},
-{"id": "layer_new", "title": "Создать слой"},
-{"id": "layer_rename", "title": "Переименовать Слой"},
-{"id": "layer_up", "title": "Поднять слой"},
-{"id": "layersLabel", "textContent": "Слои:"},
-{"id": "line_x1", "title": "Изменить горизонтальный координат X начальной точки линии"},
-{"id": "line_x2", "title": "Изменить горизонтальный координат X конечной точки линии"},
-{"id": "line_y1", "title": "Изменить вертикальный координат Y начальной точки линии"},
-{"id": "line_y2", "title": "Изменить вертикальный координат Y конечной точки линии"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "страница"},
-{"id": "palette", "title": "Нажмите для изменения цвета заливки, Shift-Click изменить цвета обводки"},
-{"id": "path_node_x", "title": "Изменить горизонтальную координату узла"},
-{"id": "path_node_y", "title": "Изменить вертикальную координату узла"},
-{"id": "rect_height_tool", "title": "Изменениe высоту прямоугольника"},
-{"id": "rect_width_tool", "title": "Измененить ширину прямоугольника"},
-{"id": "relativeToLabel", "textContent": "По отношению к "},
-{"id": "seg_type", "title": "Изменить вид"},
-{"id": "selLayerLabel", "textContent": "Переместить выделенные элементы:"},
-{"id": "selLayerNames", "title": "Переместить выделенные элементы на другой слой"},
-{"id": "selectedPredefined", "textContent": "Выбирать предопределенный размер"},
-{"id": "selected_objects", "textContent": "Выделенные объекты"},
-{"id": "selected_x", "title": "Изменить горизонтальный координат"},
-{"id": "selected_y", "title": "Изменить вертикальный координат"},
-{"id": "smallest_object", "textContent": "Самый маленький объект"},
-{"id": "straight_segments", "textContent": "Отрезок"},
-{"id": "stroke_color", "title": "Изменить цвет обводки"},
-{"id": "stroke_style", "title": "Изменить стиль обводки"},
-{"id": "stroke_width", "title": "Изменить толщину обводки"},
-{"id": "svginfo_bg_note", "textContent": "(Фон не сохранится вместе с изображением.)"},
-{"id": "svginfo_change_background", "textContent": "Фон"},
-{"id": "svginfo_dim", "textContent": "Размеры холста"},
-{"id": "svginfo_editor_prefs", "textContent": "Параметры"},
-{"id": "svginfo_height", "textContent": "Высота:"},
-{"id": "svginfo_icons", "textContent": "Размер значков"},
-{"id": "svginfo_image_props", "textContent": "Свойства изображения"},
-{"id": "svginfo_lang", "textContent": "Язык"},
-{"id": "svginfo_title", "textContent": "Название"},
-{"id": "svginfo_width", "textContent": "Ширина:"},
-{"id": "text", "title": "Изменить содержание текста"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Выровнять по нижнему краю"},
-{"id": "tool_aligncenter", "title": "Центрировать по вертикальной оси"},
-{"id": "tool_alignleft", "title": "По левому краю"},
-{"id": "tool_alignmiddle", "title": "Центрировать по горизонтальной оси"},
-{"id": "tool_alignright", "title": "По правому краю"},
-{"id": "tool_aligntop", "title": "Выровнять по верхнему краю"},
-{"id": "tool_angle", "title": "Изменить угол поворота"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Жирный"},
-{"id": "tool_circle", "title": "Окружность"},
-{"id": "tool_clear", "textContent": "Создать изображение"},
-{"id": "tool_clone", "title": "Создать копию элемента"},
-{"id": "tool_clone_multi", "title": "Создать копию элементов"},
-{"id": "tool_delete", "title": "Удалить элемент"},
-{"id": "tool_delete_multi", "title": "Удалить выбранные элементы"},
-{"id": "tool_docprops", "textContent": "Свойства документа"},
-{"id": "tool_docprops_cancel", "textContent": "Отменить"},
-{"id": "tool_docprops_save", "textContent": "Сохранить"},
-{"id": "tool_ellipse", "title": "Эллипс"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Эллипс от руки"},
-{"id": "tool_fhpath", "title": "Карандаш"},
-{"id": "tool_fhrect", "title": "Прямоугольник от руки"},
-{"id": "tool_font_size", "title": "Изменить размер шрифта"},
-{"id": "tool_group", "title": "Создать группу элементов"},
-{"id": "tool_image", "title": "Изображение"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Курсив"},
-{"id": "tool_line", "title": "Линия"},
-{"id": "tool_move_bottom", "title": "Опустить"},
-{"id": "tool_move_top", "title": "Поднять"},
-{"id": "tool_node_clone", "title": "Создать копию узла"},
-{"id": "tool_node_delete", "title": "Удалить узел"},
-{"id": "tool_node_link", "title": "Связать узлы"},
-{"id": "tool_opacity", "title": "Изменить непрозрачность элемента"},
-{"id": "tool_open", "textContent": "Открыть изображение"},
-{"id": "tool_path", "title": "Контуры"},
-{"id": "tool_rect", "title": "Прямоугольник"},
-{"id": "tool_redo", "title": "Вернуть"},
-{"id": "tool_reorient", "title": "Изменить ориентацию контура"},
-{"id": "tool_save", "textContent": "Сохранить изображение"},
-{"id": "tool_select", "title": "Выделить"},
-{"id": "tool_source", "title": "Редактировать исходный код"},
-{"id": "tool_source_cancel", "textContent": "Отменить"},
-{"id": "tool_source_save", "textContent": "Сохранить"},
-{"id": "tool_square", "title": "Квадрат"},
-{"id": "tool_text", "title": "Текст"},
-{"id": "tool_topath", "title": "В контур"},
-{"id": "tool_undo", "title": "Отменить"},
-{"id": "tool_ungroup", "title": "Разгруппировать элементы"},
-{"id": "tool_wireframe", "title": "Каркас"},
-{"id": "tool_zoom", "title": "Лупа"},
-{"id": "tools_ellipse_show", "title": "Эллипс / окружность"},
-{"id": "tools_rect_show", "title": "Прямоугольник / квадрат"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Изменить масштаб"},
-{"id": "sidepanel_handle", "textContent": "С л о и", "title": "Перетащить налево или направо"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Была проблема при парсинге вашего SVG исходного кода.\nЗаменить его предыдущим SVG кодом?", 
-  "QignoreSourceChanges": "Забыть без сохранения?", 
-  "QmoveElemsToLayer": "Переместить выделенные элементы на слой '%s'?", 
-  "QwantToClear": "Вы хотите очистить?\nИстория действий будет забыта!", 
-  "cancel": "Отменить", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "Слой с этим именем уже существует.", 
-  "enterNewImgURL": "Введите новый URL изображения", 
-  "enterNewLayerName": "Пожалуйста, введите новое имя.", 
-  "enterUniqueLayerName": "Пожалуйста, введите имя для слоя.", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Возможность не реализована", 
-  "invalidAttrValGiven": "Некорректное значение аргумента", 
-  "key_backspace": "Backspace", 
-  "key_del": "Delete", 
-  "key_down": "Вниз", 
-  "key_up": "Вверх", 
-  "layer": "Слой", 
-  "layerHasThatName": "Слой уже называется этим именем.", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "Нет содержания, по которому выровнять.", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Перетащите для изменения свойвст кривой", 
-  "pathNodeTooltip": "Потащите узел. Чтобы изменить вид отрезка, сделайте двойной щелчок.", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "ru",
+	dir : "ltr",
+	common: {
+		"ok": "Сохранить",
+		"cancel": "Отменить",
+		"key_backspace": "Backspace", 
+		"key_del": "Delete", 
+		"key_down": "Вниз", 
+		"key_up": "Вверх", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Нажмите для изменения цвета заливки, Shift-Click изменить цвета обводки",
+		"zoom_level": "Изменить масштаб",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Изменить цвет заливки",
+		"stroke_color": "Изменить цвет обводки",
+		"stroke_style": "Изменить стиль обводки",
+		"stroke_width": "Изменить толщину обводки",
+		"pos_x": "Изменить горизонтальный координат",
+		"pos_y": "Изменить вертикальный координат",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Изменить угол поворота",
+		"blur": "Change gaussian blur value",
+		"opacity": "Изменить непрозрачность элемента",
+		"circle_cx": "Изменить горизонтальный координат (CX) окружности",
+		"circle_cy": "Изменить вертикальный координат (CY) окружности",
+		"circle_r": "Изменить радиус окружности",
+		"ellipse_cx": "Изменить горизонтальный координат (CX) эллипса",
+		"ellipse_cy": "Изменить вертикальный координат (CY) эллипса",
+		"ellipse_rx": "Изменить горизонтальный радиус эллипса",
+		"ellipse_ry": "Изменить вертикальный радиус эллипса",
+		"line_x1": "Изменить горизонтальный координат X начальной точки линии",
+		"line_x2": "Изменить горизонтальный координат X конечной точки линии",
+		"line_y1": "Изменить вертикальный координат Y начальной точки линии",
+		"line_y2": "Изменить вертикальный координат Y конечной точки линии",
+		"rect_height": "Изменениe высоту прямоугольника",
+		"rect_width": "Измененить ширину прямоугольника",
+		"corner_radius": "Радиус закругленности угла",
+		"image_width": "Изменить ширину изображения",
+		"image_height": "Изменить высоту изображения",
+		"image_url": "Изменить URL",
+		"node_x": "Изменить горизонтальную координату узла",
+		"node_y": "Изменить вертикальную координату узла",
+		"seg_type": "Изменить вид",
+		"straight_segments": "Отрезок",
+		"curve_segments": "Сплайн",
+		"text_contents": "Изменить содержание текста",
+		"font_family": "Изменить семейство шрифтов",
+		"font_size": "Изменить размер шрифта",
+		"bold": "Жирный",
+		"italic": "Курсив"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Изменить цвет фона или прозрачность",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Под размер содержимого",
+		"fit_to_all": "Под размер всех слоев",
+		"fit_to_canvas": "Под размер холста",
+		"fit_to_layer_content": "Под размер содержания слоя",
+		"fit_to_sel": "Под размер выделенного",
+		"align_relative_to": "Выровнять по отношению к ...",
+		"relativeTo": "По отношению к ",
+		"страница": "страница",
+		"largest_object": "Наибольший объект",
+		"selected_objects": "Выделенные объекты",
+		"smallest_object": "Самый маленький объект",
+		"new_doc": "Создать изображение",
+		"open_doc": "Открыть изображение",
+		"export_png": "Export as PNG",
+		"save_doc": "Сохранить изображение",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Выровнять по нижнему краю",
+		"align_center": "Центрировать по вертикальной оси",
+		"align_left": "По левому краю",
+		"align_middle": "Центрировать по горизонтальной оси",
+		"align_right": "По правому краю",
+		"align_top": "Выровнять по верхнему краю",
+		"mode_select": "Выделить",
+		"mode_fhpath": "Карандаш",
+		"mode_line": "Линия",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Прямоугольник от руки",
+		"mode_ellipse": "Эллипс",
+		"mode_circle": "Окружность",
+		"mode_fhellipse": "Эллипс от руки",
+		"mode_path": "Контуры",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Текст",
+		"mode_image": "Изображение",
+		"mode_zoom": "Лупа",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Отменить",
+		"redo": "Вернуть",
+		"tool_source": "Редактировать исходный код",
+		"wireframe_mode": "Каркас",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Создать группу элементов",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "В контур",
+		"reorient_path": "Изменить ориентацию контура",
+		"ungroup": "Разгруппировать элементы",
+		"docprops": "Свойства документа",
+		"imagelib": "Image Library",
+		"move_bottom": "Опустить",
+		"move_top": "Поднять",
+		"node_clone": "Создать копию узла",
+		"node_delete": "Удалить узел",
+		"node_link": "Связать узлы",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Сохранить",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"Delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Слой",
+		"layers": "Layers",
+		"del": "Удалить слой",
+		"move_down": "Опустить слой",
+		"new": "Создать слой",
+		"rename": "Переименовать Слой",
+		"move_up": "Поднять слой",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Переместить выделенные элементы:",
+		"move_selected": "Переместить выделенные элементы на другой слой"
+	},
+	config: {
+		"image_props": "Свойства изображения",
+		"doc_title": "Название",
+		"doc_dims": "Размеры холста",
+		"included_images": "Встроенные изображения",
+		"image_opt_embed": "Локальные файлы",
+		"image_opt_ref": "По ссылкам",
+		"editor_prefs": "Параметры",
+		"icon_size": "Размер значков",
+		"language": "Язык",
+		"background": "Фон",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "(Фон не сохранится вместе с изображением.)",
+		"icon_large": "Большие",
+		"icon_medium": "Средние",
+		"icon_small": "Малые",
+		"icon_xlarge": "Огромные",
+		"select_predefined": "Выбирать предопределенный размер",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Некорректное значение аргумента",
+		"noContentToFitTo":"Нет содержания, по которому выровнять.",
+		"dupeLayerName":"Слой с этим именем уже существует.",
+		"enterUniqueLayerName":"Пожалуйста, введите имя для слоя.",
+		"enterNewLayerName":"Пожалуйста, введите новое имя.",
+		"layerHasThatName":"Слой уже называется этим именем.",
+		"QmoveElemsToLayer":"Переместить выделенные элементы на слой '%s'?",
+		"QwantToClear":"Вы хотите очистить?\nИстория действий будет забыта!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Была проблема при парсинге вашего SVG исходного кода.\nЗаменить его предыдущим SVG кодом?",
+		"QignoreSourceChanges":"Забыть без сохранения?",
+		"featNotSupported":"Возможность не реализована",
+		"enterNewImgURL":"Введите новый URL изображения",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 176
main/inc/lib/svg-edit/locale/lang.sk.js

@@ -1,176 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Zarovnať relatívne k ..."},
-{"id": "bkgnd_color", "title": "Zmeniť farbu a priehľadnosť pozadia"},
-{"id": "circle_cx", "title": "Zmeniť súradnicu X stredu kružnice"},
-{"id": "circle_cy", "title": "Zmeniť súradnicu Y stredu kružnice"},
-{"id": "circle_r", "title": "Zmeniť polomer kružnice"},
-{"id": "connector_no_arrow", "textContent": "Bez šípok"},
-{"id": "copyrightLabel", "textContent": "Beží na"},
-{"id": "cornerRadiusLabel", "title": "Zmeniť zaoblenie rohov obdĺžnika"},
-{"id": "curve_segments", "textContent": "Krivka"},
-{"id": "ellipse_cx", "title": "Zmeniť súradnicu X stredu elipsy"},
-{"id": "ellipse_cy", "title": "Zmeniť súradnicu Y stredu elipsy"},
-{"id": "ellipse_rx", "title": "Zmeniť polomer X elipsy"},
-{"id": "ellipse_ry", "title": "Zmeniť polomer Y elipsy"},
-{"id": "fill_color", "title": "Zmeniť farbu výplne"},
-{"id": "fitToContent", "textContent": "Prispôsobiť obsahu"},
-{"id": "fit_to_all", "textContent": "Prisposobiť celému obsahu"},
-{"id": "fit_to_canvas", "textContent": "Prispôsobiť stránke"},
-{"id": "fit_to_layer_content", "textContent": "Prispôsobiť obsahu vrstvy"},
-{"id": "fit_to_sel", "textContent": "Prispôsobiť výberu"},
-{"id": "font_family", "title": "Zmeniť font"},
-{"id": "icon_large", "textContent": "Veľká"},
-{"id": "icon_medium", "textContent": "Stredná"},
-{"id": "icon_small", "textContent": "Malá"},
-{"id": "icon_xlarge", "textContent": "Extra veľká"},
-{"id": "idLabel", "title": "Zmeniť ID elementu"},
-{"id": "image_height", "title": "Zmeniť výšku obrázka"},
-{"id": "image_opt_embed", "textContent": "Vložiť data (lokálne súbory)"},
-{"id": "image_opt_ref", "textContent": "Použiť referenciu na súbor"},
-{"id": "image_url", "title": "Zmeniť URL"},
-{"id": "image_width", "title": "Zmeniť šírku obrázka"},
-{"id": "includedImages", "textContent": "Vložené obrázky"},
-{"id": "largest_object", "textContent": "najväčšiemu objektu"},
-{"id": "layer_delete", "title": "Odstrániť vrstvu"},
-{"id": "layer_down", "title": "Presunúť vrstvu dole"},
-{"id": "layer_new", "title": "Nová vrstva"},
-{"id": "layer_rename", "title": "Premenovať vrstvu"},
-{"id": "layer_up", "title": "Presunúť vrstvu hore"},
-{"id": "layersLabel", "textContent": "Vrstvy:"},
-{"id": "line_x1", "title": "Zmeniť počiatočnú súradnicu X čiary"},
-{"id": "line_x2", "title": "Zmeniť koncovú súradnicu X čiary"},
-{"id": "line_y1", "title": "Zmeniť počiatočnú súradnicu Y čiary"},
-{"id": "line_y2", "title": "Zmeniť koncovú súradnicu Y čiary"},
-{"id": "linecap_butt", "title": "Koniec čiary: presný"},
-{"id": "linecap_round", "title": "Koniec čiary: zaoblený"},
-{"id": "linecap_square", "title": "Koniec čiary: so štvorcovým presahom"},
-{"id": "linejoin_bevel", "title": "Napojenie čiar: skosené"},
-{"id": "linejoin_miter", "title": "Napojenie čiar: ostré"},
-{"id": "linejoin_round", "title": "Napojenie čiar: oblé"},
-{"id": "main_icon", "title": "Hlavné menu"},
-{"id": "mode_connect", "title": "Spojiť dva objekty"},
-{"id": "page", "textContent": "stránke"},
-{"id": "palette", "title": "Kliknutím zmeníte farbu výplne, so Shiftom zmeníte farbu obrysu"},
-{"id": "path_node_x", "title": "Zmeniť uzlu súradnicu X"},
-{"id": "path_node_y", "title": "Zmeniť uzlu súradnicu Y"},
-{"id": "rect_height_tool", "title": "Zmena výšku obdĺžnika"},
-{"id": "rect_width_tool", "title": "Zmeniť šírku obdĺžnika"},
-{"id": "relativeToLabel", "textContent": "vzhľadom k:"},
-{"id": "seg_type", "title": "Zmeniť typ segmentu"},
-{"id": "selLayerLabel", "textContent": "Presunút elementy do:"},
-{"id": "selLayerNames", "title": "Presunúť vybrané elementy do inej vrstvy"},
-{"id": "selectedPredefined", "textContent": "Vybrať preddefinovaný:"},
-{"id": "selected_objects", "textContent": "zvoleným objektom"},
-{"id": "selected_x", "title": "Zmeniť súradnicu X"},
-{"id": "selected_y", "title": "Zmeniť súradnicu Y"},
-{"id": "smallest_object", "textContent": "najmenšiemu objektu"},
-{"id": "straight_segments", "textContent": "Rovný"},
-{"id": "stroke_color", "title": "Zmena farby obrysu"},
-{"id": "stroke_style", "title": "Zmeniť štýl obrysu"},
-{"id": "stroke_width", "title": "Zmeniť šírku obrysu"},
-{"id": "svginfo_bg_note", "textContent": "Poznámka: Pozadie nebude uložené spolu s obrázkom."},
-{"id": "svginfo_change_background", "textContent": "Zmeniť pozadie"},
-{"id": "svginfo_dim", "textContent": "Rozmery plátna"},
-{"id": "svginfo_editor_prefs", "textContent": "Vlastnosti editora"},
-{"id": "svginfo_height", "textContent": "Výška:"},
-{"id": "svginfo_icons", "textContent": "Veľkosť ikon"},
-{"id": "svginfo_image_props", "textContent": "Vlastnosti obrázka"},
-{"id": "svginfo_lang", "textContent": "Jazyk"},
-{"id": "svginfo_title", "textContent": "Titulok"},
-{"id": "svginfo_width", "textContent": "Šírka:"},
-{"id": "text", "title": "Změnit text"},
-{"id": "toggle_stroke_tools", "title": "Skryť/ukázať viac nástrojov pre krivku"},
-{"id": "tool_add_subpath", "title": "Pridať daľšiu súčasť krivky"},
-{"id": "tool_alignbottom", "title": "Zarovnať dole"},
-{"id": "tool_aligncenter", "title": "Zarovnať na stred"},
-{"id": "tool_alignleft", "title": "Zarovnať doľava"},
-{"id": "tool_alignmiddle", "title": "Zarovnať na stred"},
-{"id": "tool_alignright", "title": "Zarovnať doprava"},
-{"id": "tool_aligntop", "title": "Zarovnať hore"},
-{"id": "tool_angle", "title": "Zmeniť uhol natočenia"},
-{"id": "tool_blur", "title": "Zmeniť intenzitu rozmazania"},
-{"id": "tool_bold", "title": "Tučne"},
-{"id": "tool_circle", "title": "Kružnica"},
-{"id": "tool_clear", "textContent": "Nový obrázok"},
-{"id": "tool_clone", "title": "Klonovať element"},
-{"id": "tool_clone_multi", "title": "Klonovať elementy"},
-{"id": "tool_delete", "title": "Zmazať element"},
-{"id": "tool_delete_multi", "title": "Vymazať vybrané prvky [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Vlastnosti dokumentu"},
-{"id": "tool_docprops_cancel", "textContent": "Zrušiť"},
-{"id": "tool_docprops_save", "textContent": "Uložiť"},
-{"id": "tool_ellipse", "title": "Elipsa"},
-{"id": "tool_export", "textContent": "Exportovať ako PNG"},
-{"id": "tool_eyedropper", "title": "Pipeta"},
-{"id": "tool_fhellipse", "title": "Elipsa voľnou rukou"},
-{"id": "tool_fhpath", "title": "Ceruzka"},
-{"id": "tool_fhrect", "title": "Obdĺžnik voľnou rukou"},
-{"id": "tool_font_size", "title": "Zmeniť veľkosť písma"},
-{"id": "tool_group", "title": "Zoskupiť elementy"},
-{"id": "tool_image", "title": "Obrázok"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kurzíva"},
-{"id": "tool_line", "title": "Čiara"},
-{"id": "tool_move_bottom", "title": "Presunúť spodok"},
-{"id": "tool_move_top", "title": "Presunúť na vrch"},
-{"id": "tool_node_clone", "title": "Klonovať uzol"},
-{"id": "tool_node_delete", "title": "Zmazať uzol"},
-{"id": "tool_node_link", "title": "Prepojiť kontrolné body"},
-{"id": "tool_opacity", "title": "Zmeniť prehľadnosť vybraných položiek"},
-{"id": "tool_open", "textContent": "Otvoriť obrázok"},
-{"id": "tool_openclose_path", "title": "Otvoriť/uzatvoriť súčasť krivky"},
-{"id": "tool_path", "title": "Krivka"},
-{"id": "tool_position", "title": "Zarovnať element na stránku"},
-{"id": "tool_rect", "title": "Obdĺžnik"},
-{"id": "tool_redo", "title": "Opakovať"},
-{"id": "tool_reorient", "title": "Zmeniť orientáciu krivky"},
-{"id": "tool_save", "textContent": "Uložiť obrázok"},
-{"id": "tool_select", "title": "Výber"},
-{"id": "tool_source", "title": "Upraviť SVG kód"},
-{"id": "tool_source_cancel", "textContent": "Zrušiť"},
-{"id": "tool_source_save", "textContent": "Uložiť"},
-{"id": "tool_square", "title": "Štvorec"},
-{"id": "tool_text", "title": "Text"},
-{"id": "tool_topath", "title": "Previesť na krivku"},
-{"id": "tool_undo", "title": "Späť"},
-{"id": "tool_ungroup", "title": "Zrušiť skupinu"},
-{"id": "tool_wireframe", "title": "Drôtový model"},
-{"id": "tool_zoom", "title": "Priblíženie"},
-{"id": "url_notice", "title": "POZNÁMKA: Tento obrázok nemôže byť vložený. Jeho zobrazenie bude závisieť na jeho ceste"},
-{"id": "zoom_panel", "title": "Zmena priblíženia"},
-{"id": "sidepanel_handle", "textContent": "V r s t v y", "title": "Ťahajte vľavo/vpravo na zmenu veľkosti"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "Chyba pri načítaní SVG dokumentu.\nVrátiť povodný SVG dokument?",
-  "QignoreSourceChanges": "Ignorovať zmeny v SVG dokumente?",
-  "QmoveElemsToLayer": "Presunúť elementy do vrstvy '%s'?",
-  "QwantToClear": "Naozaj chcete vymazať kresbu?\n(História bude taktiež vymazaná!)!",
-  "cancel": "Zrušiť",
-  "defsFailOnSave": "POZNÁMKA: Kvôli chybe v prehliadači sa tento obrázok môže zobraziť nesprávne (napr. chýbajúce prechody či elementy). Po uložení sa zobrazí správne.",
-  "dupeLayerName": "Vrstva s daným názvom už existuje!",
-  "enterNewImgURL": "Zadajte nové URL obrázka",
-  "enterNewLayerName": "Zadajte názov vrstvy",
-  "enterUniqueLayerName": "Zadajte jedinečný názov vrstvy",
-  "exportNoBlur": "bez rozostrenia elementov",
-  "exportNoDashArray": "plné krivky",
-  "exportNoImage": "bez vložených obrázkov",
-  "exportNoText": "vložený text môže vyzerať inak",
-  "exportNoforeignObject": "bez foreignObject objektov",
-  "featNotSupported": "Vlastnosť nie je podporovaná",
-  "invalidAttrValGiven": "Neplatná hodnota",
-  "key_backspace": "Backspace",
-  "key_del": "Delete",
-  "key_down": "šípka dole",
-  "key_up": "šípka hore",
-  "layer": "Vrstva",
-  "layerHasThatName": "Vrstva už má zadaný názov",
-  "loadingImage": "Nahrávam obrázok, prosím čakajte ...",
-  "noContentToFitTo": "Vyberte oblasť na prispôsobenie",
-  "noteTheseIssues": "Môžu sa vyskytnúť nasledujúce problémy: ",
-  "ok": "OK",
-  "pathCtrlPtTooltip": "Ťahajte kontrolné body pre upravnie vlastnosti krivky",
-  "pathNodeTooltip": "Ťahajte bod na presunutie. Dvojklik na zmenu typu segmentu",
-  "saveFromBrowser": "Vyberte \"Uložiť ako ...\" vo vašom prehliadači na uloženie tohoto obrázka do súboru %s."
- }
-}
-]
+svgEditor.readLang({
+	lang: "sk",
+	dir : "ltr",
+	common: {
+		"ok": "Uložiť",
+		"cancel": "Zrušiť",
+		"key_backspace": "Backspace", 
+		"key_del": "Delete", 
+		"key_down": "šípka dole", 
+		"key_up": "šípka hore", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Beží na"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Skryť/ukázať viac nástrojov pre krivku",
+		"palette_info": "Kliknutím zmeníte farbu výplne, so Shiftom zmeníte farbu obrysu",
+		"zoom_level": "Zmena priblíženia",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Zmeniť ID elementu",
+		"fill_color": "Zmeniť farbu výplne",
+		"stroke_color": "Zmena farby obrysu",
+		"stroke_style": "Zmeniť štýl obrysu",
+		"stroke_width": "Zmeniť šírku obrysu",
+		"pos_x": "Zmeniť súradnicu X",
+		"pos_y": "Zmeniť súradnicu Y",
+		"linecap_butt": "Koniec čiary: presný",
+		"linecap_round": "Koniec čiary: zaoblený",
+		"linecap_square": "Koniec čiary: so štvorcovým presahom",
+		"linejoin_bevel": "Napojenie čiar: skosené",
+		"linejoin_miter": "Napojenie čiar: ostré",
+		"linejoin_round": "Napojenie čiar: oblé",
+		"angle": "Zmeniť uhol natočenia",
+		"blur": "Zmeniť intenzitu rozmazania",
+		"opacity": "Zmeniť prehľadnosť vybraných položiek",
+		"circle_cx": "Zmeniť súradnicu X stredu kružnice",
+		"circle_cy": "Zmeniť súradnicu Y stredu kružnice",
+		"circle_r": "Zmeniť polomer kružnice",
+		"ellipse_cx": "Zmeniť súradnicu X stredu elipsy",
+		"ellipse_cy": "Zmeniť súradnicu Y stredu elipsy",
+		"ellipse_rx": "Zmeniť polomer X elipsy",
+		"ellipse_ry": "Zmeniť polomer Y elipsy",
+		"line_x1": "Zmeniť počiatočnú súradnicu X čiary",
+		"line_x2": "Zmeniť koncovú súradnicu X čiary",
+		"line_y1": "Zmeniť počiatočnú súradnicu Y čiary",
+		"line_y2": "Zmeniť koncovú súradnicu Y čiary",
+		"rect_height": "Zmena výšku obdĺžnika",
+		"rect_width": "Zmeniť šírku obdĺžnika",
+		"corner_radius": "Zmeniť zaoblenie rohov obdĺžnika",
+		"image_width": "Zmeniť šírku obrázka",
+		"image_height": "Zmeniť výšku obrázka",
+		"image_url": "Zmeniť URL",
+		"node_x": "Zmeniť uzlu súradnicu X",
+		"node_y": "Zmeniť uzlu súradnicu Y",
+		"seg_type": "Zmeniť typ segmentu",
+		"straight_segments": "Rovný",
+		"curve_segments": "Krivka",
+		"text_contents": "Změnit text",
+		"font_family": "Zmeniť font",
+		"font_size": "Zmeniť veľkosť písma",
+		"bold": "Tučne",
+		"italic": "Kurzíva"
+	},
+	tools: { 
+		"main_menu": "Hlavné menu",
+		"bkgnd_color_opac": "Zmeniť farbu a priehľadnosť pozadia",
+		"connector_no_arrow": "Bez šípok",
+		"fitToContent": "Prispôsobiť obsahu",
+		"fit_to_all": "Prisposobiť celému obsahu",
+		"fit_to_canvas": "Prispôsobiť stránke",
+		"fit_to_layer_content": "Prispôsobiť obsahu vrstvy",
+		"fit_to_sel": "Prispôsobiť výberu",
+		"align_relative_to": "Zarovnať relatívne k ...",
+		"relativeTo": "vzhľadom k:",
+		"stránke": "stránke",
+		"largest_object": "najväčšiemu objektu",
+		"selected_objects": "zvoleným objektom",
+		"smallest_object": "najmenšiemu objektu",
+		"new_doc": "Nový obrázok",
+		"open_doc": "Otvoriť obrázok",
+		"export_png": "Exportovať ako PNG",
+		"save_doc": "Uložiť obrázok",
+		"import_doc": "Import SVG",
+		"align_to_page": "Zarovnať element na stránku",
+		"align_bottom": "Zarovnať dole",
+		"align_center": "Zarovnať na stred",
+		"align_left": "Zarovnať doľava",
+		"align_middle": "Zarovnať na stred",
+		"align_right": "Zarovnať doprava",
+		"align_top": "Zarovnať hore",
+		"mode_select": "Výber",
+		"mode_fhpath": "Ceruzka",
+		"mode_line": "Čiara",
+		"mode_connect": "Spojiť dva objekty",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Obdĺžnik voľnou rukou",
+		"mode_ellipse": "Elipsa",
+		"mode_circle": "Kružnica",
+		"mode_fhellipse": "Elipsa voľnou rukou",
+		"mode_path": "Krivka",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text",
+		"mode_image": "Obrázok",
+		"mode_zoom": "Priblíženie",
+		"mode_eyedropper": "Pipeta",
+		"no_embed": "POZNÁMKA: Tento obrázok nemôže byť vložený. Jeho zobrazenie bude závisieť na jeho ceste",
+		"undo": "Späť",
+		"redo": "Opakovať",
+		"tool_source": "Upraviť SVG kód",
+		"wireframe_mode": "Drôtový model",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Zoskupiť elementy",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Previesť na krivku",
+		"reorient_path": "Zmeniť orientáciu krivky",
+		"ungroup": "Zrušiť skupinu",
+		"docprops": "Vlastnosti dokumentu",
+		"imagelib": "Image Library",
+		"move_bottom": "Presunúť spodok",
+		"move_top": "Presunúť na vrch",
+		"node_clone": "Klonovať uzol",
+		"node_delete": "Zmazať uzol",
+		"node_link": "Prepojiť kontrolné body",
+		"add_subpath": "Pridať daľšiu súčasť krivky",
+		"openclose_path": "Otvoriť/uzatvoriť súčasť krivky",
+		"source_save": "Uložiť",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"Delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Vrstva",
+		"layers": "Layers",
+		"del": "Odstrániť vrstvu",
+		"move_down": "Presunúť vrstvu dole",
+		"new": "Nová vrstva",
+		"rename": "Premenovať vrstvu",
+		"move_up": "Presunúť vrstvu hore",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Presunút elementy do:",
+		"move_selected": "Presunúť vybrané elementy do inej vrstvy"
+	},
+	config: {
+		"image_props": "Vlastnosti obrázka",
+		"doc_title": "Titulok",
+		"doc_dims": "Rozmery plátna",
+		"included_images": "Vložené obrázky",
+		"image_opt_embed": "Vložiť data (lokálne súbory)",
+		"image_opt_ref": "Použiť referenciu na súbor",
+		"editor_prefs": "Vlastnosti editora",
+		"icon_size": "Veľkosť ikon",
+		"language": "Jazyk",
+		"background": "Zmeniť pozadie",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Poznámka: Pozadie nebude uložené spolu s obrázkom.",
+		"icon_large": "Veľká",
+		"icon_medium": "Stredná",
+		"icon_small": "Malá",
+		"icon_xlarge": "Extra veľká",
+		"select_predefined": "Vybrať preddefinovaný:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Neplatná hodnota",
+		"noContentToFitTo":"Vyberte oblasť na prispôsobenie",
+		"dupeLayerName":"Vrstva s daným názvom už existuje!",
+		"enterUniqueLayerName":"Zadajte jedinečný názov vrstvy",
+		"enterNewLayerName":"Zadajte názov vrstvy",
+		"layerHasThatName":"Vrstva už má zadaný názov",
+		"QmoveElemsToLayer":"Presunúť elementy do vrstvy '%s'?",
+		"QwantToClear":"Naozaj chcete vymazať kresbu?\n(História bude taktiež vymazaná!)!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"Chyba pri načítaní SVG dokumentu.\nVrátiť povodný SVG dokument?",
+		"QignoreSourceChanges":"Ignorovať zmeny v SVG dokumente?",
+		"featNotSupported":"Vlastnosť nie je podporovaná",
+		"enterNewImgURL":"Zadajte nové URL obrázka",
+		"defsFailOnSave": "POZNÁMKA: Kvôli chybe v prehliadači sa tento obrázok môže zobraziť nesprávne (napr. chýbajúce prechody či elementy). Po uložení sa zobrazí správne.",
+		"loadingImage":"Nahrávam obrázok, prosím čakajte ...",
+		"saveFromBrowser": "Vyberte \"Uložiť ako ...\" vo vašom prehliadači na uloženie tohoto obrázka do súboru %s.",
+		"noteTheseIssues": "Môžu sa vyskytnúť nasledujúce problémy: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.sl.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Poravnaj glede na ..."},
-{"id": "bkgnd_color", "title": "Spreminjanje barve ozadja / motnosti"},
-{"id": "circle_cx", "title": "Spremeni krog&#39;s CX usklajujejo"},
-{"id": "circle_cy", "title": "Spremeni krog&#39;s cy usklajujejo"},
-{"id": "circle_r", "title": "Spremeni krogu polmera"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Spremeni Pravokotnik Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Spremeni elipse&#39;s CX usklajujejo"},
-{"id": "ellipse_cy", "title": "Spremeni elipse&#39;s cy usklajujejo"},
-{"id": "ellipse_rx", "title": "Spremeni elipse&#39;s x polmer"},
-{"id": "ellipse_ry", "title": "Spremeni elipse&#39;s y polmer"},
-{"id": "fill_color", "title": "Spremeni barvo polnila"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Fit na vse vsebine"},
-{"id": "fit_to_canvas", "textContent": "Fit na platno"},
-{"id": "fit_to_layer_content", "textContent": "Fit na plast vsebine"},
-{"id": "fit_to_sel", "textContent": "Fit za izbor"},
-{"id": "font_family", "title": "Change Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Spremeni Višina slike"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Spremeni URL"},
-{"id": "image_width", "title": "Spremeni Širina slike"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "Največji objekt"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move Down Layer"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Up Layer"},
-{"id": "layersLabel", "textContent": "Plasti:"},
-{"id": "line_x1", "title": "Spremeni skladu z začetkom x usklajujejo"},
-{"id": "line_x2", "title": "Change line je končalo x usklajujejo"},
-{"id": "line_y1", "title": "Change line&#39;s začetkom y usklajujejo"},
-{"id": "line_y2", "title": "Change line je končalo y usklajujejo"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "page"},
-{"id": "palette", "title": "Kliknite, če želite spremeniti barvo polnila, premik miške kliknite spremeniti barvo kap"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Spremeni pravokotniku višine"},
-{"id": "rect_width_tool", "title": "Spremeni pravokotnik širine"},
-{"id": "relativeToLabel", "textContent": "glede na:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Select vnaprej:"},
-{"id": "selected_objects", "textContent": "izvoljeni predmeti"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "najmanjša objekt"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Spremeni barvo kap"},
-{"id": "stroke_style", "title": "Spremeni kap dash slog"},
-{"id": "stroke_width", "title": "Spreminjanje širine kap"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Višina:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Širina:"},
-{"id": "text", "title": "Spremeni besedilo vsebino"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Sredino"},
-{"id": "tool_alignleft", "title": "Poravnaj levo"},
-{"id": "tool_alignmiddle", "title": "Poravnava Middle"},
-{"id": "tool_alignright", "title": "Poravnaj desno"},
-{"id": "tool_aligntop", "title": "Poravnava Top"},
-{"id": "tool_angle", "title": "Sprememba kota rotacije"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Izbriši element"},
-{"id": "tool_delete_multi", "title": "Brisanje izbranih elementov"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Prekliči"},
-{"id": "tool_docprops_save", "textContent": "Shraniti"},
-{"id": "tool_ellipse", "title": "Elipsa"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Elipsa"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand pravokotnik"},
-{"id": "tool_font_size", "title": "Spremeni velikost pisave"},
-{"id": "tool_group", "title": "Skupina Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Premakni v Bottom"},
-{"id": "tool_move_top", "title": "Premakni na vrh"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Spremeni izbran predmet motnosti"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Pravokotnik"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Shrani slike"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Edit Vir"},
-{"id": "tool_source_cancel", "textContent": "Prekliči"},
-{"id": "tool_source_save", "textContent": "Shraniti"},
-{"id": "tool_square", "title": "Kvadrat"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Razdruži Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Spreminjanje povečave"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "sl",
+	dir : "ltr",
+	common: {
+		"ok": "Shraniti",
+		"cancel": "Prekliči",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Kliknite, če želite spremeniti barvo polnila, premik miške kliknite spremeniti barvo kap",
+		"zoom_level": "Spreminjanje povečave",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Spremeni barvo polnila",
+		"stroke_color": "Spremeni barvo kap",
+		"stroke_style": "Spremeni kap dash slog",
+		"stroke_width": "Spreminjanje širine kap",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Sprememba kota rotacije",
+		"blur": "Change gaussian blur value",
+		"opacity": "Spremeni izbran predmet motnosti",
+		"circle_cx": "Spremeni krog&#39;s CX usklajujejo",
+		"circle_cy": "Spremeni krog&#39;s cy usklajujejo",
+		"circle_r": "Spremeni krogu polmera",
+		"ellipse_cx": "Spremeni elipse&#39;s CX usklajujejo",
+		"ellipse_cy": "Spremeni elipse&#39;s cy usklajujejo",
+		"ellipse_rx": "Spremeni elipse&#39;s x polmer",
+		"ellipse_ry": "Spremeni elipse&#39;s y polmer",
+		"line_x1": "Spremeni skladu z začetkom x usklajujejo",
+		"line_x2": "Change line je končalo x usklajujejo",
+		"line_y1": "Change line&#39;s začetkom y usklajujejo",
+		"line_y2": "Change line je končalo y usklajujejo",
+		"rect_height": "Spremeni pravokotniku višine",
+		"rect_width": "Spremeni pravokotnik širine",
+		"corner_radius": "Spremeni Pravokotnik Corner Radius",
+		"image_width": "Spremeni Širina slike",
+		"image_height": "Spremeni Višina slike",
+		"image_url": "Spremeni URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Spremeni besedilo vsebino",
+		"font_family": "Change Font Family",
+		"font_size": "Spremeni velikost pisave",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Spreminjanje barve ozadja / motnosti",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit na vse vsebine",
+		"fit_to_canvas": "Fit na platno",
+		"fit_to_layer_content": "Fit na plast vsebine",
+		"fit_to_sel": "Fit za izbor",
+		"align_relative_to": "Poravnaj glede na ...",
+		"relativeTo": "glede na:",
+		"page": "page",
+		"largest_object": "Največji objekt",
+		"selected_objects": "izvoljeni predmeti",
+		"smallest_object": "najmanjša objekt",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Shrani slike",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Sredino",
+		"align_left": "Poravnaj levo",
+		"align_middle": "Poravnava Middle",
+		"align_right": "Poravnaj desno",
+		"align_top": "Poravnava Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand pravokotnik",
+		"mode_ellipse": "Elipsa",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Elipsa",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Vir",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Skupina Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Razdruži Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Premakni v Bottom",
+		"move_top": "Premakni na vrh",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Shraniti",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Down Layer",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Up Layer",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select vnaprej:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.sq.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Vendose në lidhje me ..."},
-{"id": "bkgnd_color", "title": "Change color background / patejdukshmëri"},
-{"id": "circle_cx", "title": "Cx rrethi Ndryshimi i bashkërenduar"},
-{"id": "circle_cy", "title": "Ndryshimi i rrethit cy koordinuar"},
-{"id": "circle_r", "title": "Rreze rreth Ndryshimi i"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Ndryshimi Rectangle Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Ndryshimi elips e cx koordinuar"},
-{"id": "ellipse_cy", "title": "Elips cy Ndryshimi i bashkërenduar"},
-{"id": "ellipse_rx", "title": "Rreze x elips Ndryshimi i"},
-{"id": "ellipse_ry", "title": "Radiusi y elips ndërroj"},
-{"id": "fill_color", "title": "Ndryshimi mbush color"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Fit për të gjithë përmbajtjen"},
-{"id": "fit_to_canvas", "textContent": "Fit në kanavacë"},
-{"id": "fit_to_layer_content", "textContent": "Shtresë Fit to content"},
-{"id": "fit_to_sel", "textContent": "Fit to Selection"},
-{"id": "font_family", "title": "Ndryshimi Font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Height të ndryshuar imazhin"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Ndrysho URL"},
-{"id": "image_width", "title": "Ndryshimi image width"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "madh objekt"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move Down Layer"},
-{"id": "layer_new", "title": "Re Shtresa"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Up Layer"},
-{"id": "layersLabel", "textContent": "Shtresa:"},
-{"id": "line_x1", "title": "Shkarko Ndryshimi që fillon x koordinuar"},
-{"id": "line_x2", "title": "Linjë Ndryshimi i fund x koordinuar"},
-{"id": "line_y1", "title": "Shkarko Ndryshimi që fillon y koordinuar"},
-{"id": "line_y2", "title": "Shkarko Ndryshimi i dhënë fund y koordinuar"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "faqe"},
-{"id": "palette", "title": "Klikoni për të ndryshuar mbushur me ngjyra, shift-klikoni për të ndryshuar ngjyrën pash"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Height Ndryshimi drejtkëndësh"},
-{"id": "rect_width_tool", "title": "Width Ndryshimi drejtkëndësh"},
-{"id": "relativeToLabel", "textContent": "lidhje me:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Zgjidhni paracaktuara:"},
-{"id": "selected_objects", "textContent": "objektet e zgjedhur"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "objektit më të vogël"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Change color pash"},
-{"id": "stroke_style", "title": "Ndryshimi dash goditje stil"},
-{"id": "stroke_width", "title": "Ndryshimi goditje width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Lartësia:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Gjerësia:"},
-{"id": "text", "title": "Text contents Ndryshimi"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Align Center"},
-{"id": "tool_alignleft", "title": "Align Left"},
-{"id": "tool_alignmiddle", "title": "Align Mesme"},
-{"id": "tool_alignright", "title": "Align Right"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Kënd Ndryshimi rrotullim"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Rrethi"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Klon Element"},
-{"id": "tool_clone_multi", "title": "Elemente Clone"},
-{"id": "tool_delete", "title": "Fshije Element"},
-{"id": "tool_delete_multi", "title": "Elementet e zgjedhur është dhënë Delete [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Dokumenti Prona"},
-{"id": "tool_docprops_cancel", "textContent": "Anulo"},
-{"id": "tool_docprops_save", "textContent": "Ruaj"},
-{"id": "tool_ellipse", "title": "Elips"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Lëndë Hand Rectangle"},
-{"id": "tool_font_size", "title": "Ndryshimi Font Size"},
-{"id": "tool_group", "title": "Elementet e Grupit"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Ndryshimi zgjedhur errësirë item"},
-{"id": "tool_open", "textContent": "Image Hapur"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Drejtkëndësh"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Image Ruaj"},
-{"id": "tool_select", "title": "Zgjidhni Tool"},
-{"id": "tool_source", "title": "Burimi Edit"},
-{"id": "tool_source_cancel", "textContent": "Anulo"},
-{"id": "tool_source_save", "textContent": "Ruaj"},
-{"id": "tool_square", "title": "Sheshi"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Undo"},
-{"id": "tool_ungroup", "title": "Elemente Ungroup"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Ndryshimi zoom nivel"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "sq",
+	dir : "ltr",
+	common: {
+		"ok": "Ruaj",
+		"cancel": "Anulo",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klikoni për të ndryshuar mbushur me ngjyra, shift-klikoni për të ndryshuar ngjyrën pash",
+		"zoom_level": "Ndryshimi zoom nivel",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Ndryshimi mbush color",
+		"stroke_color": "Change color pash",
+		"stroke_style": "Ndryshimi dash goditje stil",
+		"stroke_width": "Ndryshimi goditje width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Kënd Ndryshimi rrotullim",
+		"blur": "Change gaussian blur value",
+		"opacity": "Ndryshimi zgjedhur errësirë item",
+		"circle_cx": "Cx rrethi Ndryshimi i bashkërenduar",
+		"circle_cy": "Ndryshimi i rrethit cy koordinuar",
+		"circle_r": "Rreze rreth Ndryshimi i",
+		"ellipse_cx": "Ndryshimi elips e cx koordinuar",
+		"ellipse_cy": "Elips cy Ndryshimi i bashkërenduar",
+		"ellipse_rx": "Rreze x elips Ndryshimi i",
+		"ellipse_ry": "Radiusi y elips ndërroj",
+		"line_x1": "Shkarko Ndryshimi që fillon x koordinuar",
+		"line_x2": "Linjë Ndryshimi i fund x koordinuar",
+		"line_y1": "Shkarko Ndryshimi që fillon y koordinuar",
+		"line_y2": "Shkarko Ndryshimi i dhënë fund y koordinuar",
+		"rect_height": "Height Ndryshimi drejtkëndësh",
+		"rect_width": "Width Ndryshimi drejtkëndësh",
+		"corner_radius": "Ndryshimi Rectangle Corner Radius",
+		"image_width": "Ndryshimi image width",
+		"image_height": "Height të ndryshuar imazhin",
+		"image_url": "Ndrysho URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Text contents Ndryshimi",
+		"font_family": "Ndryshimi Font Family",
+		"font_size": "Ndryshimi Font Size",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change color background / patejdukshmëri",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit për të gjithë përmbajtjen",
+		"fit_to_canvas": "Fit në kanavacë",
+		"fit_to_layer_content": "Shtresë Fit to content",
+		"fit_to_sel": "Fit to Selection",
+		"align_relative_to": "Vendose në lidhje me ...",
+		"relativeTo": "lidhje me:",
+		"faqe": "faqe",
+		"largest_object": "madh objekt",
+		"selected_objects": "objektet e zgjedhur",
+		"smallest_object": "objektit më të vogël",
+		"new_doc": "New Image",
+		"open_doc": "Image Hapur",
+		"export_png": "Export as PNG",
+		"save_doc": "Image Ruaj",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Align Center",
+		"align_left": "Align Left",
+		"align_middle": "Align Mesme",
+		"align_right": "Align Right",
+		"align_top": "Align Top",
+		"mode_select": "Zgjidhni Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Lëndë Hand Rectangle",
+		"mode_ellipse": "Elips",
+		"mode_circle": "Rrethi",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Burimi Edit",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Elementet e Grupit",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Elemente Ungroup",
+		"docprops": "Dokumenti Prona",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Ruaj",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Down Layer",
+		"new": "Re Shtresa",
+		"rename": "Rename Layer",
+		"move_up": "Move Up Layer",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Zgjidhni paracaktuara:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.sr.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Алигн у односу на ..."},
-{"id": "bkgnd_color", "title": "Промена боје позадине / непрозирност"},
-{"id": "circle_cx", "title": "Промена круг&#39;с ЦКС координатни"},
-{"id": "circle_cy", "title": "Промена круг&#39;с ср координатни"},
-{"id": "circle_r", "title": "Промена круга је полупречник"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Промена правоугаоник Кутак радијуса"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Промена елипса ЦКС&#39;с координатни"},
-{"id": "ellipse_cy", "title": "Промена елипса&#39;с ср координатни"},
-{"id": "ellipse_rx", "title": "Промена елипса&#39;с Кс радијуса"},
-{"id": "ellipse_ry", "title": "Промена елипса је радијус Ы"},
-{"id": "fill_color", "title": "Промена боје попуне"},
-{"id": "fitToContent", "textContent": "Стане на садржај"},
-{"id": "fit_to_all", "textContent": "Уклопи у сав садржај"},
-{"id": "fit_to_canvas", "textContent": "Стане на платну"},
-{"id": "fit_to_layer_content", "textContent": "Уклопи у слоју садржај"},
-{"id": "fit_to_sel", "textContent": "Уклопи у избор"},
-{"id": "font_family", "title": "Цханге фонт породицу"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Промени слику висине"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Промените УРЛ адресу"},
-{"id": "image_width", "title": "Промени слику ширине"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "Највећи објекат"},
-{"id": "layer_delete", "title": "Избриши слој"},
-{"id": "layer_down", "title": "Помери слој доле"},
-{"id": "layer_new", "title": "Нови слој"},
-{"id": "layer_rename", "title": "Преименуј слој"},
-{"id": "layer_up", "title": "Помери слој Горе"},
-{"id": "layersLabel", "textContent": "Слојева:"},
-{"id": "line_x1", "title": "Промена линија Стартни кс координата"},
-{"id": "line_x2", "title": "Промена линија је завршетак кс координата"},
-{"id": "line_y1", "title": "Промена линија у координатни почетак Ы"},
-{"id": "line_y2", "title": "Промена линија је Ы координата се завршава"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "страна"},
-{"id": "palette", "title": "Кликните да бисте променили боју попуне, Схифт-кликните да промените боју удар"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Промени правоугаоник висина"},
-{"id": "rect_width_tool", "title": "Промени правоугаоник ширине"},
-{"id": "relativeToLabel", "textContent": "у односу на:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Изаберите унапред дефинисани:"},
-{"id": "selected_objects", "textContent": "изабраних објеката"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "Најмањи објекат"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Промена боје удар"},
-{"id": "stroke_style", "title": "Промена ход Дасх стил"},
-{"id": "stroke_width", "title": "Промена удара ширина"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Висина:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Ширина:"},
-{"id": "text", "title": "Промена садржаја текстуалне"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Поравнај доле"},
-{"id": "tool_aligncenter", "title": "Поравнај по центру"},
-{"id": "tool_alignleft", "title": "Поравнај лево"},
-{"id": "tool_alignmiddle", "title": "Алигн Средњи"},
-{"id": "tool_alignright", "title": "Поравнај десно"},
-{"id": "tool_aligntop", "title": "Поравнајте врх"},
-{"id": "tool_angle", "title": "Промени ротације Угао"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Подебљан текст"},
-{"id": "tool_circle", "title": "Круг"},
-{"id": "tool_clear", "textContent": "Нова слика"},
-{"id": "tool_clone", "title": "Клон Елеменат"},
-{"id": "tool_clone_multi", "title": "Елементи клон"},
-{"id": "tool_delete", "title": "Избриши елемент"},
-{"id": "tool_delete_multi", "title": "Избриши изабране Елементи [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Особине документа"},
-{"id": "tool_docprops_cancel", "textContent": "Откажи"},
-{"id": "tool_docprops_save", "textContent": "Сачувати"},
-{"id": "tool_ellipse", "title": "Елипса"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Фрее-Ручни Елипса"},
-{"id": "tool_fhpath", "title": "Алатка оловка"},
-{"id": "tool_fhrect", "title": "Фрее-Ручни правоугаоник"},
-{"id": "tool_font_size", "title": "Цханге фонт сизе"},
-{"id": "tool_group", "title": "Група Елементи"},
-{"id": "tool_image", "title": "Алатка за слике"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Италиц текст"},
-{"id": "tool_line", "title": "Линија Алат"},
-{"id": "tool_move_bottom", "title": "Премести на доле"},
-{"id": "tool_move_top", "title": "Премести на врх"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Промена изабране ставке непрозирност"},
-{"id": "tool_open", "textContent": "Отвори слике"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Правоугаоник"},
-{"id": "tool_redo", "title": "Редо"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Сачувај слика"},
-{"id": "tool_select", "title": "Изаберите алатку"},
-{"id": "tool_source", "title": "Уреди Извор"},
-{"id": "tool_source_cancel", "textContent": "Откажи"},
-{"id": "tool_source_save", "textContent": "Сачувати"},
-{"id": "tool_square", "title": "Трг"},
-{"id": "tool_text", "title": "Текст Алат"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Поништи"},
-{"id": "tool_ungroup", "title": "Разгрупирање Елементи"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Алатка за зумирање"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Промените ниво зумирања"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "sr",
+	dir : "ltr",
+	common: {
+		"ok": "Сачувати",
+		"cancel": "Откажи",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Кликните да бисте променили боју попуне, Схифт-кликните да промените боју удар",
+		"zoom_level": "Промените ниво зумирања",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Промена боје попуне",
+		"stroke_color": "Промена боје удар",
+		"stroke_style": "Промена ход Дасх стил",
+		"stroke_width": "Промена удара ширина",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Промени ротације Угао",
+		"blur": "Change gaussian blur value",
+		"opacity": "Промена изабране ставке непрозирност",
+		"circle_cx": "Промена круг&#39;с ЦКС координатни",
+		"circle_cy": "Промена круг&#39;с ср координатни",
+		"circle_r": "Промена круга је полупречник",
+		"ellipse_cx": "Промена елипса ЦКС&#39;с координатни",
+		"ellipse_cy": "Промена елипса&#39;с ср координатни",
+		"ellipse_rx": "Промена елипса&#39;с Кс радијуса",
+		"ellipse_ry": "Промена елипса је радијус Ы",
+		"line_x1": "Промена линија Стартни кс координата",
+		"line_x2": "Промена линија је завршетак кс координата",
+		"line_y1": "Промена линија у координатни почетак Ы",
+		"line_y2": "Промена линија је Ы координата се завршава",
+		"rect_height": "Промени правоугаоник висина",
+		"rect_width": "Промени правоугаоник ширине",
+		"corner_radius": "Промена правоугаоник Кутак радијуса",
+		"image_width": "Промени слику ширине",
+		"image_height": "Промени слику висине",
+		"image_url": "Промените УРЛ адресу",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Промена садржаја текстуалне",
+		"font_family": "Цханге фонт породицу",
+		"font_size": "Цханге фонт сизе",
+		"bold": "Подебљан текст",
+		"italic": "Италиц текст"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Промена боје позадине / непрозирност",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Стане на садржај",
+		"fit_to_all": "Уклопи у сав садржај",
+		"fit_to_canvas": "Стане на платну",
+		"fit_to_layer_content": "Уклопи у слоју садржај",
+		"fit_to_sel": "Уклопи у избор",
+		"align_relative_to": "Алигн у односу на ...",
+		"relativeTo": "у односу на:",
+		"страна": "страна",
+		"largest_object": "Највећи објекат",
+		"selected_objects": "изабраних објеката",
+		"smallest_object": "Најмањи објекат",
+		"new_doc": "Нова слика",
+		"open_doc": "Отвори слике",
+		"export_png": "Export as PNG",
+		"save_doc": "Сачувај слика",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Поравнај доле",
+		"align_center": "Поравнај по центру",
+		"align_left": "Поравнај лево",
+		"align_middle": "Алигн Средњи",
+		"align_right": "Поравнај десно",
+		"align_top": "Поравнајте врх",
+		"mode_select": "Изаберите алатку",
+		"mode_fhpath": "Алатка оловка",
+		"mode_line": "Линија Алат",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Фрее-Ручни правоугаоник",
+		"mode_ellipse": "Елипса",
+		"mode_circle": "Круг",
+		"mode_fhellipse": "Фрее-Ручни Елипса",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Текст Алат",
+		"mode_image": "Алатка за слике",
+		"mode_zoom": "Алатка за зумирање",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Поништи",
+		"redo": "Редо",
+		"tool_source": "Уреди Извор",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Група Елементи",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Разгрупирање Елементи",
+		"docprops": "Особине документа",
+		"imagelib": "Image Library",
+		"move_bottom": "Премести на доле",
+		"move_top": "Премести на врх",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Сачувати",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Избриши слој",
+		"move_down": "Помери слој доле",
+		"new": "Нови слој",
+		"rename": "Преименуј слој",
+		"move_up": "Помери слој Горе",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Изаберите унапред дефинисани:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.sv.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Justera förhållande till ..."},
-{"id": "bkgnd_color", "title": "Ändra bakgrundsfärg / opacitet"},
-{"id": "circle_cx", "title": "Ändra cirkeln cx samordna"},
-{"id": "circle_cy", "title": "Ändra cirkeln samordna cy"},
-{"id": "circle_r", "title": "Ändra cirkelns radie"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Ändra rektangel hörnradie"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Ändra ellips&#39;s cx samordna"},
-{"id": "ellipse_cy", "title": "Ändra ellips&#39;s samordna cy"},
-{"id": "ellipse_rx", "title": "Ändra ellips&#39;s x radie"},
-{"id": "ellipse_ry", "title": "Ändra ellips&#39;s y radie"},
-{"id": "fill_color", "title": "Ändra fyllningsfärg"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Passar till allt innehåll"},
-{"id": "fit_to_canvas", "textContent": "Anpassa till duk"},
-{"id": "fit_to_layer_content", "textContent": "Anpassa till lager innehåll"},
-{"id": "fit_to_sel", "textContent": "Anpassa till val"},
-{"id": "font_family", "title": "Ändra Typsnitt"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Ändra bildhöjd"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Ändra URL"},
-{"id": "image_width", "title": "Ändra bild bredd"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "största objekt"},
-{"id": "layer_delete", "title": "Radera Layer"},
-{"id": "layer_down", "title": "Flytta Layer Down"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Byt namn på Layer"},
-{"id": "layer_up", "title": "Flytta Layer Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Ändra Lines startar x samordna"},
-{"id": "line_x2", "title": "Ändra Lines slutar x samordna"},
-{"id": "line_y1", "title": "Ändra Lines startar Y-koordinat"},
-{"id": "line_y2", "title": "Ändra Lines slutar Y-koordinat"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "sida"},
-{"id": "palette", "title": "Klicka för att ändra fyllningsfärg, shift-klicka för att ändra färgar"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Ändra rektangel höjd"},
-{"id": "rect_width_tool", "title": "Ändra rektangel bredd"},
-{"id": "relativeToLabel", "textContent": "jämfört:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Välj fördefinierad:"},
-{"id": "selected_objects", "textContent": "valda objekt"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "minsta objektet"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Ändra färgar"},
-{"id": "stroke_style", "title": "Ändra stroke Dash stil"},
-{"id": "stroke_width", "title": "Ändra stroke bredd"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Höjd:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Bredd:"},
-{"id": "text", "title": "Ändra textinnehållet"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Centrera"},
-{"id": "tool_alignleft", "title": "Vänsterjustera"},
-{"id": "tool_alignmiddle", "title": "Justera Middle"},
-{"id": "tool_alignright", "title": "Högerjustera"},
-{"id": "tool_aligntop", "title": "Justera Top"},
-{"id": "tool_angle", "title": "Ändra rotationsvinkel"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Fet text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Radera Element"},
-{"id": "tool_delete_multi", "title": "Radera markerade element [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Dokumentegenskaper"},
-{"id": "tool_docprops_cancel", "textContent": "Avbryt"},
-{"id": "tool_docprops_save", "textContent": "Spara"},
-{"id": "tool_ellipse", "title": "Ellips"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Fri hand Ellipse"},
-{"id": "tool_fhpath", "title": "Pennverktyget"},
-{"id": "tool_fhrect", "title": "Fri hand rektangel"},
-{"id": "tool_font_size", "title": "Ändra textstorlek"},
-{"id": "tool_group", "title": "Group Elements"},
-{"id": "tool_image", "title": "Bildverktyg"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Kursiv text"},
-{"id": "tool_line", "title": "Linjeverktyg"},
-{"id": "tool_move_bottom", "title": "Move to Bottom"},
-{"id": "tool_move_top", "title": "Flytta till början"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Ändra markerat objekt opacitet"},
-{"id": "tool_open", "textContent": "Öppna bild"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Rektangel"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Markeringsverktyget"},
-{"id": "tool_source", "title": "Redigera källa"},
-{"id": "tool_source_cancel", "textContent": "Avbryt"},
-{"id": "tool_source_save", "textContent": "Spara"},
-{"id": "tool_square", "title": "Fyrkant"},
-{"id": "tool_text", "title": "Textverktyg"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Ångra"},
-{"id": "tool_ungroup", "title": "Dela Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoomverktyget"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Ändra zoomnivå"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "sv",
+	dir : "ltr",
+	common: {
+		"ok": "Spara",
+		"cancel": "Avbryt",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Klicka för att ändra fyllningsfärg, shift-klicka för att ändra färgar",
+		"zoom_level": "Ändra zoomnivå",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Ändra fyllningsfärg",
+		"stroke_color": "Ändra färgar",
+		"stroke_style": "Ändra stroke Dash stil",
+		"stroke_width": "Ändra stroke bredd",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Ändra rotationsvinkel",
+		"blur": "Change gaussian blur value",
+		"opacity": "Ändra markerat objekt opacitet",
+		"circle_cx": "Ändra cirkeln cx samordna",
+		"circle_cy": "Ändra cirkeln samordna cy",
+		"circle_r": "Ändra cirkelns radie",
+		"ellipse_cx": "Ändra ellips&#39;s cx samordna",
+		"ellipse_cy": "Ändra ellips&#39;s samordna cy",
+		"ellipse_rx": "Ändra ellips&#39;s x radie",
+		"ellipse_ry": "Ändra ellips&#39;s y radie",
+		"line_x1": "Ändra Lines startar x samordna",
+		"line_x2": "Ändra Lines slutar x samordna",
+		"line_y1": "Ändra Lines startar Y-koordinat",
+		"line_y2": "Ändra Lines slutar Y-koordinat",
+		"rect_height": "Ändra rektangel höjd",
+		"rect_width": "Ändra rektangel bredd",
+		"corner_radius": "Ändra rektangel hörnradie",
+		"image_width": "Ändra bild bredd",
+		"image_height": "Ändra bildhöjd",
+		"image_url": "Ändra URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Ändra textinnehållet",
+		"font_family": "Ändra Typsnitt",
+		"font_size": "Ändra textstorlek",
+		"bold": "Fet text",
+		"italic": "Kursiv text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Ändra bakgrundsfärg / opacitet",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Passar till allt innehåll",
+		"fit_to_canvas": "Anpassa till duk",
+		"fit_to_layer_content": "Anpassa till lager innehåll",
+		"fit_to_sel": "Anpassa till val",
+		"align_relative_to": "Justera förhållande till ...",
+		"relativeTo": "jämfört:",
+		"sida": "sida",
+		"largest_object": "största objekt",
+		"selected_objects": "valda objekt",
+		"smallest_object": "minsta objektet",
+		"new_doc": "New Image",
+		"open_doc": "Öppna bild",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Centrera",
+		"align_left": "Vänsterjustera",
+		"align_middle": "Justera Middle",
+		"align_right": "Högerjustera",
+		"align_top": "Justera Top",
+		"mode_select": "Markeringsverktyget",
+		"mode_fhpath": "Pennverktyget",
+		"mode_line": "Linjeverktyg",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Fri hand rektangel",
+		"mode_ellipse": "Ellips",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Fri hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Textverktyg",
+		"mode_image": "Bildverktyg",
+		"mode_zoom": "Zoomverktyget",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Ångra",
+		"redo": "Redo",
+		"tool_source": "Redigera källa",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Group Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Dela Elements",
+		"docprops": "Dokumentegenskaper",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Flytta till början",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Spara",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Radera Layer",
+		"move_down": "Flytta Layer Down",
+		"new": "New Layer",
+		"rename": "Byt namn på Layer",
+		"move_up": "Flytta Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Välj fördefinierad:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.sw.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Align jamaa na ..."},
-{"id": "bkgnd_color", "title": "Change background color / opacity"},
-{"id": "circle_cx", "title": "Change mduara&#39;s CX kuratibu"},
-{"id": "circle_cy", "title": "Change mduara&#39;s cy kuratibu"},
-{"id": "circle_r", "title": "Change mduara&#39;s Radius"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Change Mstatili Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Change ellipse s CX kuratibu"},
-{"id": "ellipse_cy", "title": "Change ellipse s cy kuratibu"},
-{"id": "ellipse_rx", "title": "Change ellipse s x Radius"},
-{"id": "ellipse_ry", "title": "Change ellipse&#39;s y Radius"},
-{"id": "fill_color", "title": "Change kujaza Michezo"},
-{"id": "fitToContent", "textContent": "Waliopo Content"},
-{"id": "fit_to_all", "textContent": "Waliopo all content"},
-{"id": "fit_to_canvas", "textContent": "Wanaofaa Canvas"},
-{"id": "fit_to_layer_content", "textContent": "Waliopo safu content"},
-{"id": "fit_to_sel", "textContent": "Waliopo uteuzi"},
-{"id": "font_family", "title": "Change font Family"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Change image urefu"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Change URL"},
-{"id": "image_width", "title": "Change image width"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "ukubwa object"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Move Layer Down"},
-{"id": "layer_new", "title": "Mpya Layer"},
-{"id": "layer_rename", "title": "Rename Layer"},
-{"id": "layer_up", "title": "Move Layer Up"},
-{"id": "layersLabel", "textContent": "Tabaka:"},
-{"id": "line_x1", "title": "Change Mpya&#39;s mapya x kuratibu"},
-{"id": "line_x2", "title": "Change Mpya&#39;s kuishia x kuratibu"},
-{"id": "line_y1", "title": "Change Mpya&#39;s mapya y kuratibu"},
-{"id": "line_y2", "title": "Change Mpya&#39;s kuishia y kuratibu"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "umebadilisha"},
-{"id": "palette", "title": "Click kubadili kujaza color, skiftarbete-click kubadili kiharusi color"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Change Mstatili height"},
-{"id": "rect_width_tool", "title": "Change Mstatili width"},
-{"id": "relativeToLabel", "textContent": "relativa att:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Select predefined:"},
-{"id": "selected_objects", "textContent": "waliochaguliwa vitu"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "minsta object"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Change kiharusi Michezo"},
-{"id": "stroke_style", "title": "Change kiharusi dash style"},
-{"id": "stroke_width", "title": "Change kiharusi width"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Urefu:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Upana:"},
-{"id": "text", "title": "Change Nakala contents"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Align Center"},
-{"id": "tool_alignleft", "title": "Align Left"},
-{"id": "tool_alignmiddle", "title": "Kati align"},
-{"id": "tool_alignright", "title": "Align Right"},
-{"id": "tool_aligntop", "title": "Align Juu"},
-{"id": "tool_angle", "title": "Change mzunguko vinkel"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Nakala"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "New Image"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Delete Element"},
-{"id": "tool_delete_multi", "title": "Delete Selected Elements [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Cancel"},
-{"id": "tool_docprops_save", "textContent": "Okoa"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Penseli Tool"},
-{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
-{"id": "tool_font_size", "title": "Change font Size"},
-{"id": "tool_group", "title": "Kikundi Elements"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italiki Nakala"},
-{"id": "tool_line", "title": "Mpya Tool"},
-{"id": "tool_move_bottom", "title": "Kuhama Bottom"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Change selected opacity punkt"},
-{"id": "tool_open", "textContent": "Open Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Mstatili"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Select Tool"},
-{"id": "tool_source", "title": "Edit Lugha"},
-{"id": "tool_source_cancel", "textContent": "Cancel"},
-{"id": "tool_source_save", "textContent": "Save"},
-{"id": "tool_square", "title": "Mraba"},
-{"id": "tool_text", "title": "Nakala Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Tengua"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Change zoom ngazi"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "sw",
+	dir : "ltr",
+	common: {
+		"ok": "Okoa",
+		"cancel": "Cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click kubadili kujaza color, skiftarbete-click kubadili kiharusi color",
+		"zoom_level": "Change zoom ngazi",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change kujaza Michezo",
+		"stroke_color": "Change kiharusi Michezo",
+		"stroke_style": "Change kiharusi dash style",
+		"stroke_width": "Change kiharusi width",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Change mzunguko vinkel",
+		"blur": "Change gaussian blur value",
+		"opacity": "Change selected opacity punkt",
+		"circle_cx": "Change mduara&#39;s CX kuratibu",
+		"circle_cy": "Change mduara&#39;s cy kuratibu",
+		"circle_r": "Change mduara&#39;s Radius",
+		"ellipse_cx": "Change ellipse s CX kuratibu",
+		"ellipse_cy": "Change ellipse s cy kuratibu",
+		"ellipse_rx": "Change ellipse s x Radius",
+		"ellipse_ry": "Change ellipse&#39;s y Radius",
+		"line_x1": "Change Mpya&#39;s mapya x kuratibu",
+		"line_x2": "Change Mpya&#39;s kuishia x kuratibu",
+		"line_y1": "Change Mpya&#39;s mapya y kuratibu",
+		"line_y2": "Change Mpya&#39;s kuishia y kuratibu",
+		"rect_height": "Change Mstatili height",
+		"rect_width": "Change Mstatili width",
+		"corner_radius": "Change Mstatili Corner Radius",
+		"image_width": "Change image width",
+		"image_height": "Change image urefu",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Change Nakala contents",
+		"font_family": "Change font Family",
+		"font_size": "Change font Size",
+		"bold": "Bold Nakala",
+		"italic": "Italiki Nakala"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color / opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Waliopo Content",
+		"fit_to_all": "Waliopo all content",
+		"fit_to_canvas": "Wanaofaa Canvas",
+		"fit_to_layer_content": "Waliopo safu content",
+		"fit_to_sel": "Waliopo uteuzi",
+		"align_relative_to": "Align jamaa na ...",
+		"relativeTo": "relativa att:",
+		"umebadilisha": "umebadilisha",
+		"largest_object": "ukubwa object",
+		"selected_objects": "waliochaguliwa vitu",
+		"smallest_object": "minsta object",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Align Center",
+		"align_left": "Align Left",
+		"align_middle": "Kati align",
+		"align_right": "Align Right",
+		"align_top": "Align Juu",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Penseli Tool",
+		"mode_line": "Mpya Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Nakala Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Tengua",
+		"redo": "Redo",
+		"tool_source": "Edit Lugha",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Kikundi Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Kuhama Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Save",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Layer Down",
+		"new": "Mpya Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefined:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 0
main/inc/lib/svg-edit/locale/lang.test.js_disabled

@@ -0,0 +1,234 @@
+svgEditor.readLang({
+	lang: "test",
+	dir : "ltr",
+	common: {
+		"ok": "OK",
+		"cancel": "Cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Click to change fill color, shift-click to change stroke color",
+		"zoom_level": "Change zoom level",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Change fill color",
+		"stroke_color": "Change stroke color",
+		"stroke_style": "Change stroke dash style",
+		"stroke_width": "Change stroke width by 1, shift-click to change by 0.1",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Change rotation angle",
+		"blur": "Change gaussian blur value",
+		"opacity": "Change selected item opacity",
+		"circle_cx": "Change circle's cx coordinate",
+		"circle_cy": "Change circle's cy coordinate",
+		"circle_r": "Change circle's radius",
+		"ellipse_cx": "Change ellipse's cx coordinate",
+		"ellipse_cy": "Change ellipse's cy coordinate",
+		"ellipse_rx": "Change ellipse's x radius",
+		"ellipse_ry": "Change ellipse's y radius",
+		"line_x1": "Change line's starting x coordinate",
+		"line_x2": "Change line's ending x coordinate",
+		"line_y1": "Change line's starting y coordinate",
+		"line_y2": "Change line's ending y coordinate",
+		"rect_height": "Change rectangle height",
+		"rect_width": "Change rectangle width",
+		"corner_radius": "Change Rectangle Corner Radius",
+		"image_width": "Change image width",
+		"image_height": "Change image height",
+		"image_url": "Change URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Change text contents",
+		"font_family": "Change Font Family",
+		"font_size": "Change Font Size",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Change background color/opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit to all content",
+		"fit_to_canvas": "Fit to canvas",
+		"fit_to_layer_content": "Fit to layer content",
+		"fit_to_sel": "Fit to selection",
+		"align_relative_to": "Align relative to ...",
+		"relativeTo": "relative to:",
+		"page": "page",
+		"largest_object": "largest object",
+		"selected_objects": "selected objects",
+		"smallest_object": "smallest object",
+		"new_doc": "New Image",
+		"open_doc": "Open Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Align Center",
+		"align_left": "Align Left",
+		"align_middle": "Align Middle",
+		"align_right": "Align Right",
+		"align_top": "Align Top",
+		"mode_select": "Select Tool",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-Hand Rectangle",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Free-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Undo",
+		"redo": "Redo",
+		"tool_source": "Edit Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Layer",
+		"group": "Group Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Move to Bottom",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Apply Changes",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Move Layer Up",
+		"move_down": "Move Layer Down",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Rename Layer",
+		"move_up": "Move Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Select predefined:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer \"%s\"?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.th.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "จัดชิดเทียบกับ ..."},
-{"id": "bkgnd_color", "title": "สีพื้นหลังเปลี่ยน / ความทึบ"},
-{"id": "circle_cx", "title": "Cx วงกลมเปลี่ยนของพิกัด"},
-{"id": "circle_cy", "title": "วงกลมเปลี่ยนเป็น cy ประสานงาน"},
-{"id": "circle_r", "title": "รัศมีวงกลมเปลี่ยนเป็น"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "รัศมีเปลี่ยนสี่เหลี่ยมผืนผ้า Corner"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "เปลี่ยน ellipse ของ cx ประสานงาน"},
-{"id": "ellipse_cy", "title": "Ellipse เปลี่ยนของ cy ประสานงาน"},
-{"id": "ellipse_rx", "title": "Ellipse เปลี่ยนของรัศมี x"},
-{"id": "ellipse_ry", "title": "Ellipse เปลี่ยนของรัศมี y"},
-{"id": "fill_color", "title": "เปลี่ยนใส่สี"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "พอดีกับเนื้อหาทั้งหมด"},
-{"id": "fit_to_canvas", "textContent": "เหมาะสมในการผ้าใบ"},
-{"id": "fit_to_layer_content", "textContent": "พอดีเนื้อหาชั้นที่"},
-{"id": "fit_to_sel", "textContent": "เหมาะสมในการเลือก"},
-{"id": "font_family", "title": "ครอบครัว Change Font"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "ความสูงเปลี่ยนรูปภาพ"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "URL เปลี่ยน"},
-{"id": "image_width", "title": "ความกว้างเปลี่ยนรูปภาพ"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "ที่ใหญ่ที่สุดในวัตถุ"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "ย้าย Layer ลง"},
-{"id": "layer_new", "title": "Layer ใหม่"},
-{"id": "layer_rename", "title": "Layer เปลี่ยนชื่อ"},
-{"id": "layer_up", "title": "ย้าย Layer Up"},
-{"id": "layersLabel", "textContent": "ชั้น:"},
-{"id": "line_x1", "title": "สายเปลี่ยนเป็นเริ่มต้น x พิกัด"},
-{"id": "line_x2", "title": "สายเปลี่ยนเป็นสิ้นสุด x พิกัด"},
-{"id": "line_y1", "title": "สายเปลี่ยนเป็นเริ่มต้น y พิกัด"},
-{"id": "line_y2", "title": "สายเปลี่ยนเป็นสิ้นสุด y พิกัด"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "หน้า"},
-{"id": "palette", "title": "คลิกเพื่อเปลี่ยนใส่สีกะคลิกเปลี่ยนสีจังหวะ"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "ความสูงสี่เหลี่ยมผืนผ้าเปลี่ยน"},
-{"id": "rect_width_tool", "title": "ความกว้างสี่เหลี่ยมผืนผ้าเปลี่ยน"},
-{"id": "relativeToLabel", "textContent": "เทียบกับ:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "เลือกที่กำหนดไว้ล่วงหน้า:"},
-{"id": "selected_objects", "textContent": "วัตถุเลือกตั้ง"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "วัตถุที่เล็กที่สุด"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "สีจังหวะเปลี่ยน"},
-{"id": "stroke_style", "title": "รีบเปลี่ยนสไตล์จังหวะ"},
-{"id": "stroke_width", "title": "ความกว้างจังหวะเปลี่ยน"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "ความสูง:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "ความกว้าง:"},
-{"id": "text", "title": "เปลี่ยนเนื้อหาข้อความ"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "ด้านล่างชิด"},
-{"id": "tool_aligncenter", "title": "จัดแนวกึ่งกลาง"},
-{"id": "tool_alignleft", "title": "จัดชิดซ้าย"},
-{"id": "tool_alignmiddle", "title": "กลางชิด"},
-{"id": "tool_alignright", "title": "จัดชิดขวา"},
-{"id": "tool_aligntop", "title": "ด้านบนชิด"},
-{"id": "tool_angle", "title": "มุมหมุนเปลี่ยน"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "ข้อความตัวหนา"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "รูปภาพใหม่"},
-{"id": "tool_clone", "title": "องค์ประกอบโคลน"},
-{"id": "tool_clone_multi", "title": "องค์ประกอบโคลน"},
-{"id": "tool_delete", "title": "องค์ประกอบลบ"},
-{"id": "tool_delete_multi", "title": "องค์ประกอบที่เลือกลบ"},
-{"id": "tool_docprops", "textContent": "คุณสมบัติของเอกสาร"},
-{"id": "tool_docprops_cancel", "textContent": "ยกเลิก"},
-{"id": "tool_docprops_save", "textContent": "บันทึก"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Ellipse Free-Hand"},
-{"id": "tool_fhpath", "title": "เครื่องมือดินสอ"},
-{"id": "tool_fhrect", "title": "สี่เหลี่ยมผืนผ้า Free-Hand"},
-{"id": "tool_font_size", "title": "เปลี่ยนขนาดตัวอักษร"},
-{"id": "tool_group", "title": "องค์ประกอบของกลุ่ม"},
-{"id": "tool_image", "title": "เครื่องมือ Image"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "ข้อความตัวเอียง"},
-{"id": "tool_line", "title": "เครื่องมือ Line"},
-{"id": "tool_move_bottom", "title": "ย้ายไปด้านล่าง"},
-{"id": "tool_move_top", "title": "ย้ายไปด้านบน"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "เปลี่ยนความทึบเลือกรายการ"},
-{"id": "tool_open", "textContent": "ภาพเปิด"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "สี่เหลี่ยมผืนผ้า"},
-{"id": "tool_redo", "title": "ทำซ้ำ"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "บันทึกรูปภาพ"},
-{"id": "tool_select", "title": "เครื่องมือเลือก"},
-{"id": "tool_source", "title": "แหล่งที่มาแก้ไข"},
-{"id": "tool_source_cancel", "textContent": "ยกเลิก"},
-{"id": "tool_source_save", "textContent": "บันทึก"},
-{"id": "tool_square", "title": "สี่เหลี่ยม"},
-{"id": "tool_text", "title": "เครื่องมือ Text"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "เลิก"},
-{"id": "tool_ungroup", "title": "องค์ประกอบ Ungroup"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "เครื่องมือซูม"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "เปลี่ยนระดับการซูม"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "th",
+	dir : "ltr",
+	common: {
+		"ok": "บันทึก",
+		"cancel": "ยกเลิก",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "คลิกเพื่อเปลี่ยนใส่สีกะคลิกเปลี่ยนสีจังหวะ",
+		"zoom_level": "เปลี่ยนระดับการซูม",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "เปลี่ยนใส่สี",
+		"stroke_color": "สีจังหวะเปลี่ยน",
+		"stroke_style": "รีบเปลี่ยนสไตล์จังหวะ",
+		"stroke_width": "ความกว้างจังหวะเปลี่ยน",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "มุมหมุนเปลี่ยน",
+		"blur": "Change gaussian blur value",
+		"opacity": "เปลี่ยนความทึบเลือกรายการ",
+		"circle_cx": "Cx วงกลมเปลี่ยนของพิกัด",
+		"circle_cy": "วงกลมเปลี่ยนเป็น cy ประสานงาน",
+		"circle_r": "รัศมีวงกลมเปลี่ยนเป็น",
+		"ellipse_cx": "เปลี่ยน ellipse ของ cx ประสานงาน",
+		"ellipse_cy": "Ellipse เปลี่ยนของ cy ประสานงาน",
+		"ellipse_rx": "Ellipse เปลี่ยนของรัศมี x",
+		"ellipse_ry": "Ellipse เปลี่ยนของรัศมี y",
+		"line_x1": "สายเปลี่ยนเป็นเริ่มต้น x พิกัด",
+		"line_x2": "สายเปลี่ยนเป็นสิ้นสุด x พิกัด",
+		"line_y1": "สายเปลี่ยนเป็นเริ่มต้น y พิกัด",
+		"line_y2": "สายเปลี่ยนเป็นสิ้นสุด y พิกัด",
+		"rect_height": "ความสูงสี่เหลี่ยมผืนผ้าเปลี่ยน",
+		"rect_width": "ความกว้างสี่เหลี่ยมผืนผ้าเปลี่ยน",
+		"corner_radius": "รัศมีเปลี่ยนสี่เหลี่ยมผืนผ้า Corner",
+		"image_width": "ความกว้างเปลี่ยนรูปภาพ",
+		"image_height": "ความสูงเปลี่ยนรูปภาพ",
+		"image_url": "URL เปลี่ยน",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "เปลี่ยนเนื้อหาข้อความ",
+		"font_family": "ครอบครัว Change Font",
+		"font_size": "เปลี่ยนขนาดตัวอักษร",
+		"bold": "ข้อความตัวหนา",
+		"italic": "ข้อความตัวเอียง"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "สีพื้นหลังเปลี่ยน / ความทึบ",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "พอดีกับเนื้อหาทั้งหมด",
+		"fit_to_canvas": "เหมาะสมในการผ้าใบ",
+		"fit_to_layer_content": "พอดีเนื้อหาชั้นที่",
+		"fit_to_sel": "เหมาะสมในการเลือก",
+		"align_relative_to": "จัดชิดเทียบกับ ...",
+		"relativeTo": "เทียบกับ:",
+		"หน้า": "หน้า",
+		"largest_object": "ที่ใหญ่ที่สุดในวัตถุ",
+		"selected_objects": "วัตถุเลือกตั้ง",
+		"smallest_object": "วัตถุที่เล็กที่สุด",
+		"new_doc": "รูปภาพใหม่",
+		"open_doc": "ภาพเปิด",
+		"export_png": "Export as PNG",
+		"save_doc": "บันทึกรูปภาพ",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "ด้านล่างชิด",
+		"align_center": "จัดแนวกึ่งกลาง",
+		"align_left": "จัดชิดซ้าย",
+		"align_middle": "กลางชิด",
+		"align_right": "จัดชิดขวา",
+		"align_top": "ด้านบนชิด",
+		"mode_select": "เครื่องมือเลือก",
+		"mode_fhpath": "เครื่องมือดินสอ",
+		"mode_line": "เครื่องมือ Line",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "สี่เหลี่ยมผืนผ้า Free-Hand",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Ellipse Free-Hand",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "เครื่องมือ Text",
+		"mode_image": "เครื่องมือ Image",
+		"mode_zoom": "เครื่องมือซูม",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "เลิก",
+		"redo": "ทำซ้ำ",
+		"tool_source": "แหล่งที่มาแก้ไข",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "องค์ประกอบของกลุ่ม",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "องค์ประกอบ Ungroup",
+		"docprops": "คุณสมบัติของเอกสาร",
+		"imagelib": "Image Library",
+		"move_bottom": "ย้ายไปด้านล่าง",
+		"move_top": "ย้ายไปด้านบน",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "บันทึก",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "ย้าย Layer ลง",
+		"new": "Layer ใหม่",
+		"rename": "Layer เปลี่ยนชื่อ",
+		"move_up": "ย้าย Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "เลือกที่กำหนดไว้ล่วงหน้า:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.tl.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Pantayin sa kamag-anak sa ..."},
-{"id": "bkgnd_color", "title": "Baguhin ang kulay ng background / kalabuan"},
-{"id": "circle_cx", "title": "Cx Baguhin ang bilog&#39;s coordinate"},
-{"id": "circle_cy", "title": "Baguhin ang bilog&#39;s cy coordinate"},
-{"id": "circle_r", "title": "Baguhin ang radius ng bilog"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Baguhin ang Parihaba Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Baguhin ang tambilugan&#39;s cx-ugma"},
-{"id": "ellipse_cy", "title": "Baguhin ang tambilugan&#39;s cy coordinate"},
-{"id": "ellipse_rx", "title": "X radius Baguhin ang tambilugan&#39;s"},
-{"id": "ellipse_ry", "title": "Y radius Baguhin ang tambilugan&#39;s"},
-{"id": "fill_color", "title": "Baguhin ang punuin ng kulay"},
-{"id": "fitToContent", "textContent": "Pagkasyahin sa Nilalaman"},
-{"id": "fit_to_all", "textContent": "Pagkasyahin sa lahat ng mga nilalaman"},
-{"id": "fit_to_canvas", "textContent": "Pagkasyahin sa tolda"},
-{"id": "fit_to_layer_content", "textContent": "Pagkasyahin sa layer nilalaman"},
-{"id": "fit_to_sel", "textContent": "Pagkasyahin sa pagpili"},
-{"id": "font_family", "title": "Baguhin ang Pamilya ng Font"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Baguhin ang taas ng imahe"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Baguhin ang URL"},
-{"id": "image_width", "title": "Baguhin ang lapad ng imahe"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "pinakamalaking bagay"},
-{"id": "layer_delete", "title": "Tanggalin Layer"},
-{"id": "layer_down", "title": "Ilipat Layer Down"},
-{"id": "layer_new", "title": "Bagong Layer"},
-{"id": "layer_rename", "title": "Palitan ang pangalan ng Layer"},
-{"id": "layer_up", "title": "Ilipat Layer Up"},
-{"id": "layersLabel", "textContent": "Layers:"},
-{"id": "line_x1", "title": "Baguhin ang linya ng simula x coordinate"},
-{"id": "line_x2", "title": "Baguhin ang linya ay nagtatapos x coordinate"},
-{"id": "line_y1", "title": "Baguhin ang linya ng simula y coordinate"},
-{"id": "line_y2", "title": "Baguhin ang linya ay nagtatapos y coordinate"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "pahina"},
-{"id": "palette", "title": "I-click upang baguhin ang punan ang kulay, paglilipat-click upang baguhin ang paghampas ng kulay"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Baguhin ang rektanggulo taas"},
-{"id": "rect_width_tool", "title": "Baguhin ang rektanggulo lapad"},
-{"id": "relativeToLabel", "textContent": "kamag-anak sa:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Piliin ang paunang-natukoy na:"},
-{"id": "selected_objects", "textContent": "inihalal na mga bagay"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "pinakamaliit na bagay"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Baguhin ang kulay ng paghampas"},
-{"id": "stroke_style", "title": "Baguhin ang stroke pagsugod estilo"},
-{"id": "stroke_width", "title": "Baguhin ang stroke lapad"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Tangkad:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Lapad:"},
-{"id": "text", "title": "Baguhin ang mga nilalaman ng teksto"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Pantayin sa Ibaba"},
-{"id": "tool_aligncenter", "title": "Pantayin sa Gitna"},
-{"id": "tool_alignleft", "title": "Pantayin ang Kaliwa"},
-{"id": "tool_alignmiddle", "title": "Pantayin sa Gitnang"},
-{"id": "tool_alignright", "title": "Pantayin sa Kanan"},
-{"id": "tool_aligntop", "title": "Pantayin Top"},
-{"id": "tool_angle", "title": "Baguhin ang pag-ikot anggulo"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "Bagong Imahe"},
-{"id": "tool_clone", "title": "I-clone ang Sangkap"},
-{"id": "tool_clone_multi", "title": "I-clone ang mga Sangkap"},
-{"id": "tool_delete", "title": "Burahin ang Sangkap"},
-{"id": "tool_delete_multi", "title": "Tanggalin Napiling Mga Sangkap [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Document Katangian"},
-{"id": "tool_docprops_cancel", "textContent": "I-cancel"},
-{"id": "tool_docprops_save", "textContent": "I-save"},
-{"id": "tool_ellipse", "title": "Tambilugan"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Libreng-kamay tambilugan"},
-{"id": "tool_fhpath", "title": "Kasangkapan ng lapis"},
-{"id": "tool_fhrect", "title": "Libreng-kamay Parihaba"},
-{"id": "tool_font_size", "title": "Baguhin ang Laki ng Font"},
-{"id": "tool_group", "title": "Group Sangkap"},
-{"id": "tool_image", "title": "Image Kasangkapan"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Kasangkapan"},
-{"id": "tool_move_bottom", "title": "Ilipat sa Ibaba"},
-{"id": "tool_move_top", "title": "Ilipat sa Tuktok"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Palitan ang mga napiling bagay kalabuan"},
-{"id": "tool_open", "textContent": "Buksan ang Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Parihaba"},
-{"id": "tool_redo", "title": "Gawin muli"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "I-save ang Image"},
-{"id": "tool_select", "title": "Piliin ang Tool"},
-{"id": "tool_source", "title": "I-edit ang Source"},
-{"id": "tool_source_cancel", "textContent": "I-cancel"},
-{"id": "tool_source_save", "textContent": "I-save"},
-{"id": "tool_square", "title": "Parisukat"},
-{"id": "tool_text", "title": "Text Kasangkapan"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Bawiin"},
-{"id": "tool_ungroup", "title": "Ungroup Sangkap"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Mag-zoom Kasangkapan"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Baguhin ang antas ng zoom"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "tl",
+	dir : "ltr",
+	common: {
+		"ok": "I-save",
+		"cancel": "I-cancel",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "I-click upang baguhin ang punan ang kulay, paglilipat-click upang baguhin ang paghampas ng kulay",
+		"zoom_level": "Baguhin ang antas ng zoom",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Baguhin ang punuin ng kulay",
+		"stroke_color": "Baguhin ang kulay ng paghampas",
+		"stroke_style": "Baguhin ang stroke pagsugod estilo",
+		"stroke_width": "Baguhin ang stroke lapad",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Baguhin ang pag-ikot anggulo",
+		"blur": "Change gaussian blur value",
+		"opacity": "Palitan ang mga napiling bagay kalabuan",
+		"circle_cx": "Cx Baguhin ang bilog&#39;s coordinate",
+		"circle_cy": "Baguhin ang bilog&#39;s cy coordinate",
+		"circle_r": "Baguhin ang radius ng bilog",
+		"ellipse_cx": "Baguhin ang tambilugan&#39;s cx-ugma",
+		"ellipse_cy": "Baguhin ang tambilugan&#39;s cy coordinate",
+		"ellipse_rx": "X radius Baguhin ang tambilugan&#39;s",
+		"ellipse_ry": "Y radius Baguhin ang tambilugan&#39;s",
+		"line_x1": "Baguhin ang linya ng simula x coordinate",
+		"line_x2": "Baguhin ang linya ay nagtatapos x coordinate",
+		"line_y1": "Baguhin ang linya ng simula y coordinate",
+		"line_y2": "Baguhin ang linya ay nagtatapos y coordinate",
+		"rect_height": "Baguhin ang rektanggulo taas",
+		"rect_width": "Baguhin ang rektanggulo lapad",
+		"corner_radius": "Baguhin ang Parihaba Corner Radius",
+		"image_width": "Baguhin ang lapad ng imahe",
+		"image_height": "Baguhin ang taas ng imahe",
+		"image_url": "Baguhin ang URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Baguhin ang mga nilalaman ng teksto",
+		"font_family": "Baguhin ang Pamilya ng Font",
+		"font_size": "Baguhin ang Laki ng Font",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Baguhin ang kulay ng background / kalabuan",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Pagkasyahin sa Nilalaman",
+		"fit_to_all": "Pagkasyahin sa lahat ng mga nilalaman",
+		"fit_to_canvas": "Pagkasyahin sa tolda",
+		"fit_to_layer_content": "Pagkasyahin sa layer nilalaman",
+		"fit_to_sel": "Pagkasyahin sa pagpili",
+		"align_relative_to": "Pantayin sa kamag-anak sa ...",
+		"relativeTo": "kamag-anak sa:",
+		"pahina": "pahina",
+		"largest_object": "pinakamalaking bagay",
+		"selected_objects": "inihalal na mga bagay",
+		"smallest_object": "pinakamaliit na bagay",
+		"new_doc": "Bagong Imahe",
+		"open_doc": "Buksan ang Image",
+		"export_png": "Export as PNG",
+		"save_doc": "I-save ang Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Pantayin sa Ibaba",
+		"align_center": "Pantayin sa Gitna",
+		"align_left": "Pantayin ang Kaliwa",
+		"align_middle": "Pantayin sa Gitnang",
+		"align_right": "Pantayin sa Kanan",
+		"align_top": "Pantayin Top",
+		"mode_select": "Piliin ang Tool",
+		"mode_fhpath": "Kasangkapan ng lapis",
+		"mode_line": "Line Kasangkapan",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Libreng-kamay Parihaba",
+		"mode_ellipse": "Tambilugan",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Libreng-kamay tambilugan",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Kasangkapan",
+		"mode_image": "Image Kasangkapan",
+		"mode_zoom": "Mag-zoom Kasangkapan",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Bawiin",
+		"redo": "Gawin muli",
+		"tool_source": "I-edit ang Source",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Group Sangkap",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Sangkap",
+		"docprops": "Document Katangian",
+		"imagelib": "Image Library",
+		"move_bottom": "Ilipat sa Ibaba",
+		"move_top": "Ilipat sa Tuktok",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "I-save",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Tanggalin Layer",
+		"move_down": "Ilipat Layer Down",
+		"new": "Bagong Layer",
+		"rename": "Palitan ang pangalan ng Layer",
+		"move_up": "Ilipat Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Piliin ang paunang-natukoy na:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.tr.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Align göre ..."},
-{"id": "bkgnd_color", "title": "Arka plan rengini değiştirmek / opacity"},
-{"id": "circle_cx", "title": "Değiştirmek daire&#39;s cx koordine"},
-{"id": "circle_cy", "title": "Değiştirmek daire cy koordine&#39;s"},
-{"id": "circle_r", "title": "Değiştirmek daire yarıçapı"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Değiştirmek Dikdörtgen Köşe Yarıçap"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "&#39;s Koordine cx elips Girişi"},
-{"id": "ellipse_cy", "title": "Değiştirmek elips cy koordine&#39;s"},
-{"id": "ellipse_rx", "title": "Değiştirmek elips&#39;s x yarıçapı"},
-{"id": "ellipse_ry", "title": "Değiştirmek elips Y yarıçapı"},
-{"id": "fill_color", "title": "Renk değiştirmek doldurmak"},
-{"id": "fitToContent", "textContent": "Fit to Content"},
-{"id": "fit_to_all", "textContent": "Fit tüm içerik için"},
-{"id": "fit_to_canvas", "textContent": "Fit tuvaline"},
-{"id": "fit_to_layer_content", "textContent": "Sığacak şekilde katman içerik"},
-{"id": "fit_to_sel", "textContent": "Fit seçimine"},
-{"id": "font_family", "title": "Font değiştir Aile"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Değiştirmek görüntü yüksekliği"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Değiştirmek URL"},
-{"id": "image_width", "title": "Değiştirmek görüntü genişliği"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "en büyük nesne"},
-{"id": "layer_delete", "title": "Delete Layer"},
-{"id": "layer_down", "title": "Katman Aşağı Taşı"},
-{"id": "layer_new", "title": "Yeni Katman"},
-{"id": "layer_rename", "title": "Rename Katman"},
-{"id": "layer_up", "title": "Up Katman Taşı"},
-{"id": "layersLabel", "textContent": "Katmanlar:"},
-{"id": "line_x1", "title": "Değiştirmek hattı&#39;s koordine x başlangıç"},
-{"id": "line_x2", "title": "Değiştirmek hattı&#39;s koordine x biten"},
-{"id": "line_y1", "title": "Değiştirmek hattı y başlangıç&#39;s koordine"},
-{"id": "line_y2", "title": "Değiştirmek hattı y biten&#39;s koordine"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "sayfa"},
-{"id": "palette", "title": "Tıklatın renk, vardiya dolgu zamanlı rengini değiştirmek için tıklayın değiştirmek için"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Değiştirmek dikdörtgen yüksekliği"},
-{"id": "rect_width_tool", "title": "Değiştirmek dikdörtgen genişliği"},
-{"id": "relativeToLabel", "textContent": "göreli:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Seçin önceden tanımlanmış:"},
-{"id": "selected_objects", "textContent": "seçilen nesneleri"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "küçük nesne"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Değiştirmek inme renk"},
-{"id": "stroke_style", "title": "Değiştirmek inme çizgi stili"},
-{"id": "stroke_width", "title": "Değiştirmek vuruş genişliği"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Yükseklik:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "En:"},
-{"id": "text", "title": "Değiştirmek metin içeriği"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Ortala"},
-{"id": "tool_alignleft", "title": "Sola"},
-{"id": "tool_alignmiddle", "title": "Align Orta"},
-{"id": "tool_alignright", "title": "Sağa Hizala"},
-{"id": "tool_aligntop", "title": "Align Top"},
-{"id": "tool_angle", "title": "Değiştirmek dönme açısı"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Kalın Yazı"},
-{"id": "tool_circle", "title": "Daire"},
-{"id": "tool_clear", "textContent": "Yeni Resim"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elemanları"},
-{"id": "tool_delete", "title": "Sil Element"},
-{"id": "tool_delete_multi", "title": "Seçilen Elemanları"},
-{"id": "tool_docprops", "textContent": "Belge Özellikleri"},
-{"id": "tool_docprops_cancel", "textContent": "Iptal"},
-{"id": "tool_docprops_save", "textContent": "Kaydetmek"},
-{"id": "tool_ellipse", "title": "Elips"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-El Elips"},
-{"id": "tool_fhpath", "title": "Kalem Aracı"},
-{"id": "tool_fhrect", "title": "Free-El Dikdörtgen"},
-{"id": "tool_font_size", "title": "Change font size"},
-{"id": "tool_group", "title": "Grup Elemanları"},
-{"id": "tool_image", "title": "Resim Aracı"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italik yazı"},
-{"id": "tool_line", "title": "Line Aracı"},
-{"id": "tool_move_bottom", "title": "Altına gider"},
-{"id": "tool_move_top", "title": "Üste taşı"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Değiştirmek öğe opacity seçilmiş"},
-{"id": "tool_open", "textContent": "Aç Resim"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Dikdörtgen"},
-{"id": "tool_redo", "title": "Redo"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Görüntüyü Kaydet"},
-{"id": "tool_select", "title": "Seçim aracı"},
-{"id": "tool_source", "title": "Değiştir Kaynak"},
-{"id": "tool_source_cancel", "textContent": "Iptal"},
-{"id": "tool_source_save", "textContent": "Kaydetmek"},
-{"id": "tool_square", "title": "Kare"},
-{"id": "tool_text", "title": "Metin Aracı"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Geri"},
-{"id": "tool_ungroup", "title": "Çöz Elemanları"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Yakınlaştırma düzeyini değiştirebilirsiniz"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "tr",
+	dir : "ltr",
+	common: {
+		"ok": "Kaydetmek",
+		"cancel": "Iptal",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Tıklatın renk, vardiya dolgu zamanlı rengini değiştirmek için tıklayın değiştirmek için",
+		"zoom_level": "Yakınlaştırma düzeyini değiştirebilirsiniz",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Renk değiştirmek doldurmak",
+		"stroke_color": "Değiştirmek inme renk",
+		"stroke_style": "Değiştirmek inme çizgi stili",
+		"stroke_width": "Değiştirmek vuruş genişliği",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Değiştirmek dönme açısı",
+		"blur": "Change gaussian blur value",
+		"opacity": "Değiştirmek öğe opacity seçilmiş",
+		"circle_cx": "Değiştirmek daire&#39;s cx koordine",
+		"circle_cy": "Değiştirmek daire cy koordine&#39;s",
+		"circle_r": "Değiştirmek daire yarıçapı",
+		"ellipse_cx": "&#39;s Koordine cx elips Girişi",
+		"ellipse_cy": "Değiştirmek elips cy koordine&#39;s",
+		"ellipse_rx": "Değiştirmek elips&#39;s x yarıçapı",
+		"ellipse_ry": "Değiştirmek elips Y yarıçapı",
+		"line_x1": "Değiştirmek hattı&#39;s koordine x başlangıç",
+		"line_x2": "Değiştirmek hattı&#39;s koordine x biten",
+		"line_y1": "Değiştirmek hattı y başlangıç&#39;s koordine",
+		"line_y2": "Değiştirmek hattı y biten&#39;s koordine",
+		"rect_height": "Değiştirmek dikdörtgen yüksekliği",
+		"rect_width": "Değiştirmek dikdörtgen genişliği",
+		"corner_radius": "Değiştirmek Dikdörtgen Köşe Yarıçap",
+		"image_width": "Değiştirmek görüntü genişliği",
+		"image_height": "Değiştirmek görüntü yüksekliği",
+		"image_url": "Değiştirmek URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Değiştirmek metin içeriği",
+		"font_family": "Font değiştir Aile",
+		"font_size": "Change font size",
+		"bold": "Kalın Yazı",
+		"italic": "Italik yazı"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Arka plan rengini değiştirmek / opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Fit to Content",
+		"fit_to_all": "Fit tüm içerik için",
+		"fit_to_canvas": "Fit tuvaline",
+		"fit_to_layer_content": "Sığacak şekilde katman içerik",
+		"fit_to_sel": "Fit seçimine",
+		"align_relative_to": "Align göre ...",
+		"relativeTo": "göreli:",
+		"sayfa": "sayfa",
+		"largest_object": "en büyük nesne",
+		"selected_objects": "seçilen nesneleri",
+		"smallest_object": "küçük nesne",
+		"new_doc": "Yeni Resim",
+		"open_doc": "Aç Resim",
+		"export_png": "Export as PNG",
+		"save_doc": "Görüntüyü Kaydet",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Ortala",
+		"align_left": "Sola",
+		"align_middle": "Align Orta",
+		"align_right": "Sağa Hizala",
+		"align_top": "Align Top",
+		"mode_select": "Seçim aracı",
+		"mode_fhpath": "Kalem Aracı",
+		"mode_line": "Line Aracı",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-El Dikdörtgen",
+		"mode_ellipse": "Elips",
+		"mode_circle": "Daire",
+		"mode_fhellipse": "Free-El Elips",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Metin Aracı",
+		"mode_image": "Resim Aracı",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Geri",
+		"redo": "Redo",
+		"tool_source": "Değiştir Kaynak",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Grup Elemanları",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Çöz Elemanları",
+		"docprops": "Belge Özellikleri",
+		"imagelib": "Image Library",
+		"move_bottom": "Altına gider",
+		"move_top": "Üste taşı",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Kaydetmek",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Delete Layer",
+		"move_down": "Katman Aşağı Taşı",
+		"new": "Yeni Katman",
+		"rename": "Rename Katman",
+		"move_up": "Up Katman Taşı",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Seçin önceden tanımlanmış:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.uk.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Вирівняти по відношенню до ..."},
-{"id": "bkgnd_color", "title": "Зміна кольору тла / непрозорість"},
-{"id": "circle_cx", "title": "CX зміну кола координата"},
-{"id": "circle_cy", "title": "Зміни гуртка CY координати"},
-{"id": "circle_r", "title": "Зміна кола&#39;s радіус"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Зміни прямокутник Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Зміни еліпса CX координати"},
-{"id": "ellipse_cy", "title": "Зміни еліпса CY координати"},
-{"id": "ellipse_rx", "title": "Х Зміни еліпса радіусом"},
-{"id": "ellipse_ry", "title": "Зміни у еліпса радіусом"},
-{"id": "fill_color", "title": "Зміна кольору заливки"},
-{"id": "fitToContent", "textContent": "За розміром змісту"},
-{"id": "fit_to_all", "textContent": "За розміром весь вміст"},
-{"id": "fit_to_canvas", "textContent": "Розмір полотна"},
-{"id": "fit_to_layer_content", "textContent": "За розміром шар змісту"},
-{"id": "fit_to_sel", "textContent": "Вибір розміру"},
-{"id": "font_family", "title": "Зміни Сімейство шрифтів"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Зміна висоти зображення"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Змінити URL"},
-{"id": "image_width", "title": "Зміни ширина зображення"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "найбільший об&#39;єкт"},
-{"id": "layer_delete", "title": "Видалити шар"},
-{"id": "layer_down", "title": "Перемістити шар на"},
-{"id": "layer_new", "title": "Новий шар"},
-{"id": "layer_rename", "title": "Перейменувати Шар"},
-{"id": "layer_up", "title": "Переміщення шару до"},
-{"id": "layersLabel", "textContent": "Шари:"},
-{"id": "line_x1", "title": "Зміни починає координати лінія х"},
-{"id": "line_x2", "title": "Зміни за період, що закінчився лінія координати х"},
-{"id": "line_y1", "title": "Зміни лінія починає Y координата"},
-{"id": "line_y2", "title": "Зміна за період, що закінчився лінія Y координата"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "сторінка"},
-{"id": "palette", "title": "Натисніть для зміни кольору заливки, Shift-Click змінити обвід"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Зміни прямокутник висотою"},
-{"id": "rect_width_tool", "title": "Зміна ширини прямокутника"},
-{"id": "relativeToLabel", "textContent": "в порівнянні з:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Виберіть зумовлений:"},
-{"id": "selected_objects", "textContent": "обраними об&#39;єктами"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "маленький об&#39;єкт"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Зміна кольору інсульт"},
-{"id": "stroke_style", "title": "Зміна стилю інсульт тире"},
-{"id": "stroke_width", "title": "Зміни ширина штриха"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Висота:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Ширина:"},
-{"id": "text", "title": "Зміна змісту тексту"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Вирівняти по нижньому краю"},
-{"id": "tool_aligncenter", "title": "Вирівняти по центру"},
-{"id": "tool_alignleft", "title": "По лівому краю"},
-{"id": "tool_alignmiddle", "title": "Вирівняти Близького"},
-{"id": "tool_alignright", "title": "По правому краю"},
-{"id": "tool_aligntop", "title": "Вирівняти по верхньому краю"},
-{"id": "tool_angle", "title": "Зміна кута повороту"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Товстий текст"},
-{"id": "tool_circle", "title": "Коло"},
-{"id": "tool_clear", "textContent": "Нове зображення"},
-{"id": "tool_clone", "title": "Клон Елементу"},
-{"id": "tool_clone_multi", "title": "Клон Елементи"},
-{"id": "tool_delete", "title": "Видалити елемент"},
-{"id": "tool_delete_multi", "title": "Видалити вибрані елементи [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "Властивості документа"},
-{"id": "tool_docprops_cancel", "textContent": "Скасування"},
-{"id": "tool_docprops_save", "textContent": "Зберегти"},
-{"id": "tool_ellipse", "title": "Еліпс"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Вільної руки Еліпс"},
-{"id": "tool_fhpath", "title": "Pencil Tool"},
-{"id": "tool_fhrect", "title": "Вільної руки Прямокутник"},
-{"id": "tool_font_size", "title": "Змінити розмір шрифту"},
-{"id": "tool_group", "title": "Група елементів"},
-{"id": "tool_image", "title": "Image Tool"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Похилий текст"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Перемістити вниз"},
-{"id": "tool_move_top", "title": "Перемістити догори"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Зміна вибраного пункту непрозорості"},
-{"id": "tool_open", "textContent": "Відкрити зображення"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Прямокутник"},
-{"id": "tool_redo", "title": "Повтор"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Зберегти малюнок"},
-{"id": "tool_select", "title": "Виберіть інструмент"},
-{"id": "tool_source", "title": "Змінити вихідний"},
-{"id": "tool_source_cancel", "textContent": "Скасування"},
-{"id": "tool_source_save", "textContent": "Зберегти"},
-{"id": "tool_square", "title": "Площа"},
-{"id": "tool_text", "title": "Текст Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Скасувати"},
-{"id": "tool_ungroup", "title": "Елементи розгрупувати"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Зміна масштабу"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "uk",
+	dir : "ltr",
+	common: {
+		"ok": "Зберегти",
+		"cancel": "Скасування",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Натисніть для зміни кольору заливки, Shift-Click змінити обвід",
+		"zoom_level": "Зміна масштабу",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Зміна кольору заливки",
+		"stroke_color": "Зміна кольору інсульт",
+		"stroke_style": "Зміна стилю інсульт тире",
+		"stroke_width": "Зміни ширина штриха",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Зміна кута повороту",
+		"blur": "Change gaussian blur value",
+		"opacity": "Зміна вибраного пункту непрозорості",
+		"circle_cx": "CX зміну кола координата",
+		"circle_cy": "Зміни гуртка CY координати",
+		"circle_r": "Зміна кола&#39;s радіус",
+		"ellipse_cx": "Зміни еліпса CX координати",
+		"ellipse_cy": "Зміни еліпса CY координати",
+		"ellipse_rx": "Х Зміни еліпса радіусом",
+		"ellipse_ry": "Зміни у еліпса радіусом",
+		"line_x1": "Зміни починає координати лінія х",
+		"line_x2": "Зміни за період, що закінчився лінія координати х",
+		"line_y1": "Зміни лінія починає Y координата",
+		"line_y2": "Зміна за період, що закінчився лінія Y координата",
+		"rect_height": "Зміни прямокутник висотою",
+		"rect_width": "Зміна ширини прямокутника",
+		"corner_radius": "Зміни прямокутник Corner Radius",
+		"image_width": "Зміни ширина зображення",
+		"image_height": "Зміна висоти зображення",
+		"image_url": "Змінити URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Зміна змісту тексту",
+		"font_family": "Зміни Сімейство шрифтів",
+		"font_size": "Змінити розмір шрифту",
+		"bold": "Товстий текст",
+		"italic": "Похилий текст"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Зміна кольору тла / непрозорість",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "За розміром змісту",
+		"fit_to_all": "За розміром весь вміст",
+		"fit_to_canvas": "Розмір полотна",
+		"fit_to_layer_content": "За розміром шар змісту",
+		"fit_to_sel": "Вибір розміру",
+		"align_relative_to": "Вирівняти по відношенню до ...",
+		"relativeTo": "в порівнянні з:",
+		"сторінка": "сторінка",
+		"largest_object": "найбільший об&#39;єкт",
+		"selected_objects": "обраними об&#39;єктами",
+		"smallest_object": "маленький об&#39;єкт",
+		"new_doc": "Нове зображення",
+		"open_doc": "Відкрити зображення",
+		"export_png": "Export as PNG",
+		"save_doc": "Зберегти малюнок",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Вирівняти по нижньому краю",
+		"align_center": "Вирівняти по центру",
+		"align_left": "По лівому краю",
+		"align_middle": "Вирівняти Близького",
+		"align_right": "По правому краю",
+		"align_top": "Вирівняти по верхньому краю",
+		"mode_select": "Виберіть інструмент",
+		"mode_fhpath": "Pencil Tool",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Вільної руки Прямокутник",
+		"mode_ellipse": "Еліпс",
+		"mode_circle": "Коло",
+		"mode_fhellipse": "Вільної руки Еліпс",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Текст Tool",
+		"mode_image": "Image Tool",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Скасувати",
+		"redo": "Повтор",
+		"tool_source": "Змінити вихідний",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Група елементів",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Елементи розгрупувати",
+		"docprops": "Властивості документа",
+		"imagelib": "Image Library",
+		"move_bottom": "Перемістити вниз",
+		"move_top": "Перемістити догори",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Зберегти",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Видалити шар",
+		"move_down": "Перемістити шар на",
+		"new": "Новий шар",
+		"rename": "Перейменувати Шар",
+		"move_up": "Переміщення шару до",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Виберіть зумовлений:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.vi.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "Căn liên quan đến ..."},
-{"id": "bkgnd_color", "title": "Thay đổi màu nền / opacity"},
-{"id": "circle_cx", "title": "Thay đổi hình tròn của cx phối hợp"},
-{"id": "circle_cy", "title": "Thay đổi hình tròn của vi phối hợp"},
-{"id": "circle_r", "title": "Thay đổi bán kính của hình tròn"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "Thay đổi chữ nhật Corner Radius"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "Thay đổi hình elip của cx phối hợp"},
-{"id": "ellipse_cy", "title": "Thay đổi hình elip của vi phối hợp"},
-{"id": "ellipse_rx", "title": "Thay đổi hình elip của x bán kính"},
-{"id": "ellipse_ry", "title": "Y Thay đổi bán kính của hình ellipse"},
-{"id": "fill_color", "title": "Thay đổi đầy màu sắc"},
-{"id": "fitToContent", "textContent": "Phù hợp với nội dung"},
-{"id": "fit_to_all", "textContent": "Phù hợp với tất cả nội dung"},
-{"id": "fit_to_canvas", "textContent": "Phù hợp với vải"},
-{"id": "fit_to_layer_content", "textContent": "Vào lớp phù hợp với nội dung"},
-{"id": "fit_to_sel", "textContent": "Phù hợp để lựa chọn"},
-{"id": "font_family", "title": "Thay đổi Font Gia đình"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "Thay đổi hình ảnh chiều cao"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "Thay đổi URL"},
-{"id": "image_width", "title": "Thay đổi hình ảnh rộng"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "lớn nhất đối tượng"},
-{"id": "layer_delete", "title": "Xoá Layer"},
-{"id": "layer_down", "title": "Move Layer Down"},
-{"id": "layer_new", "title": "New Layer"},
-{"id": "layer_rename", "title": "Đổi tên Layer"},
-{"id": "layer_up", "title": "Di chuyển Layer Up"},
-{"id": "layersLabel", "textContent": "Lớp:"},
-{"id": "line_x1", "title": "Thay đổi dòng của bắt đầu từ x phối hợp"},
-{"id": "line_x2", "title": "Thay đổi dòng của x kết thúc sớm nhất phối hợp"},
-{"id": "line_y1", "title": "Thay đổi dòng của bắt đầu từ y phối hợp"},
-{"id": "line_y2", "title": "Thay đổi dòng của kết thúc y phối hợp"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "Sửa"},
-{"id": "palette", "title": "Nhấn vào đây để thay đổi đầy màu sắc, thay đổi nhấp chuột để thay đổi màu sắc đột quỵ"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "Thay đổi hình chữ nhật chiều cao"},
-{"id": "rect_width_tool", "title": "Thay đổi hình chữ nhật chiều rộng"},
-{"id": "relativeToLabel", "textContent": "liên quan đến:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "Chọn định sẵn:"},
-{"id": "selected_objects", "textContent": "bầu các đối tượng"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "nhỏ đối tượng"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "Thay đổi màu sắc đột quỵ"},
-{"id": "stroke_style", "title": "Thay đổi phong cách đột quỵ dash"},
-{"id": "stroke_width", "title": "Thay đổi chiều rộng đột quỵ"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "Chiều cao:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "Chiều rộng:"},
-{"id": "text", "title": "Thay đổi nội dung văn bản"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "Align Bottom"},
-{"id": "tool_aligncenter", "title": "Căn giữa"},
-{"id": "tool_alignleft", "title": "Căn còn lại"},
-{"id": "tool_alignmiddle", "title": "Căn Trung"},
-{"id": "tool_alignright", "title": "Căn phải"},
-{"id": "tool_aligntop", "title": "Căn Top"},
-{"id": "tool_angle", "title": "Thay đổi góc xoay"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "Bold Text"},
-{"id": "tool_circle", "title": "Circle"},
-{"id": "tool_clear", "textContent": "Hình mới"},
-{"id": "tool_clone", "title": "Clone Element"},
-{"id": "tool_clone_multi", "title": "Clone Elements"},
-{"id": "tool_delete", "title": "Xóa Element"},
-{"id": "tool_delete_multi", "title": "Delete Selected Elements"},
-{"id": "tool_docprops", "textContent": "Document Properties"},
-{"id": "tool_docprops_cancel", "textContent": "Hủy"},
-{"id": "tool_docprops_save", "textContent": "Lưu"},
-{"id": "tool_ellipse", "title": "Ellipse"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Việt-Hand Ellipse"},
-{"id": "tool_fhpath", "title": "Bút chì Công cụ"},
-{"id": "tool_fhrect", "title": "Việt-Hand Hình chữ nhật"},
-{"id": "tool_font_size", "title": "Thay đổi cỡ chữ"},
-{"id": "tool_group", "title": "Nhóm Elements"},
-{"id": "tool_image", "title": "Hình Công cụ"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "Italic Text"},
-{"id": "tool_line", "title": "Line Tool"},
-{"id": "tool_move_bottom", "title": "Chuyển đến đáy"},
-{"id": "tool_move_top", "title": "Move to Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "Thay đổi lựa chọn opacity mục"},
-{"id": "tool_open", "textContent": "Mở Image"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "Hình chữ nhật"},
-{"id": "tool_redo", "title": "Làm lại"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "Save Image"},
-{"id": "tool_select", "title": "Chọn Công cụ"},
-{"id": "tool_source", "title": "Sửa Nguồn"},
-{"id": "tool_source_cancel", "textContent": "Hủy"},
-{"id": "tool_source_save", "textContent": "Lưu"},
-{"id": "tool_square", "title": "Hình vuông"},
-{"id": "tool_text", "title": "Text Tool"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "Hoàn tác"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "Zoom Tool"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "Thay đổi mức độ phóng"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "vi",
+	dir : "ltr",
+	common: {
+		"ok": "Lưu",
+		"cancel": "Hủy",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "Nhấn vào đây để thay đổi đầy màu sắc, thay đổi nhấp chuột để thay đổi màu sắc đột quỵ",
+		"zoom_level": "Thay đổi mức độ phóng",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "Thay đổi đầy màu sắc",
+		"stroke_color": "Thay đổi màu sắc đột quỵ",
+		"stroke_style": "Thay đổi phong cách đột quỵ dash",
+		"stroke_width": "Thay đổi chiều rộng đột quỵ",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "Thay đổi góc xoay",
+		"blur": "Change gaussian blur value",
+		"opacity": "Thay đổi lựa chọn opacity mục",
+		"circle_cx": "Thay đổi hình tròn của cx phối hợp",
+		"circle_cy": "Thay đổi hình tròn của vi phối hợp",
+		"circle_r": "Thay đổi bán kính của hình tròn",
+		"ellipse_cx": "Thay đổi hình elip của cx phối hợp",
+		"ellipse_cy": "Thay đổi hình elip của vi phối hợp",
+		"ellipse_rx": "Thay đổi hình elip của x bán kính",
+		"ellipse_ry": "Y Thay đổi bán kính của hình ellipse",
+		"line_x1": "Thay đổi dòng của bắt đầu từ x phối hợp",
+		"line_x2": "Thay đổi dòng của x kết thúc sớm nhất phối hợp",
+		"line_y1": "Thay đổi dòng của bắt đầu từ y phối hợp",
+		"line_y2": "Thay đổi dòng của kết thúc y phối hợp",
+		"rect_height": "Thay đổi hình chữ nhật chiều cao",
+		"rect_width": "Thay đổi hình chữ nhật chiều rộng",
+		"corner_radius": "Thay đổi chữ nhật Corner Radius",
+		"image_width": "Thay đổi hình ảnh rộng",
+		"image_height": "Thay đổi hình ảnh chiều cao",
+		"image_url": "Thay đổi URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "Thay đổi nội dung văn bản",
+		"font_family": "Thay đổi Font Gia đình",
+		"font_size": "Thay đổi cỡ chữ",
+		"bold": "Bold Text",
+		"italic": "Italic Text"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "Thay đổi màu nền / opacity",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "Phù hợp với nội dung",
+		"fit_to_all": "Phù hợp với tất cả nội dung",
+		"fit_to_canvas": "Phù hợp với vải",
+		"fit_to_layer_content": "Vào lớp phù hợp với nội dung",
+		"fit_to_sel": "Phù hợp để lựa chọn",
+		"align_relative_to": "Căn liên quan đến ...",
+		"relativeTo": "liên quan đến:",
+		"Sửa": "Sửa",
+		"largest_object": "lớn nhất đối tượng",
+		"selected_objects": "bầu các đối tượng",
+		"smallest_object": "nhỏ đối tượng",
+		"new_doc": "Hình mới",
+		"open_doc": "Mở Image",
+		"export_png": "Export as PNG",
+		"save_doc": "Save Image",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "Align Bottom",
+		"align_center": "Căn giữa",
+		"align_left": "Căn còn lại",
+		"align_middle": "Căn Trung",
+		"align_right": "Căn phải",
+		"align_top": "Căn Top",
+		"mode_select": "Chọn Công cụ",
+		"mode_fhpath": "Bút chì Công cụ",
+		"mode_line": "Line Tool",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Việt-Hand Hình chữ nhật",
+		"mode_ellipse": "Ellipse",
+		"mode_circle": "Circle",
+		"mode_fhellipse": "Việt-Hand Ellipse",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "Text Tool",
+		"mode_image": "Hình Công cụ",
+		"mode_zoom": "Zoom Tool",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "Hoàn tác",
+		"redo": "Làm lại",
+		"tool_source": "Sửa Nguồn",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "Nhóm Elements",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "Document Properties",
+		"imagelib": "Image Library",
+		"move_bottom": "Chuyển đến đáy",
+		"move_top": "Move to Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "Lưu",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "Xoá Layer",
+		"move_down": "Move Layer Down",
+		"new": "New Layer",
+		"rename": "Đổi tên Layer",
+		"move_up": "Di chuyển Layer Up",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "Chọn định sẵn:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 173
main/inc/lib/svg-edit/locale/lang.yi.js

@@ -1,173 +1,234 @@
-[
-{"id": "align_relative_to", "title": "יינרייען קאָרעוו צו ..."},
-{"id": "bkgnd_color", "title": "ענדערן הינטערגרונט פאַרב / אָופּאַסאַטי"},
-{"id": "circle_cx", "title": "ענדערן קרייז ס קקס קאָואָרדאַנאַט"},
-{"id": "circle_cy", "title": "ענדערן קרייז ס סי קאָואָרדאַנאַט"},
-{"id": "circle_r", "title": "ענדערן קרייז ס ראַדיוס"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "ענדערן רעקטאַנגלע קאָרנער ראַדיוס"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "ענדערן יליפּס ס קקס קאָואָרדאַנאַט"},
-{"id": "ellipse_cy", "title": "ענדערן יליפּס ס סי קאָואָרדאַנאַט"},
-{"id": "ellipse_rx", "title": "ענדערן יליפּס ס &#39;קס ראַדיוס"},
-{"id": "ellipse_ry", "title": "ענדערן יליפּס ס &#39;י ראַדיוס"},
-{"id": "fill_color", "title": "ענדערן אָנעסן קאָליר"},
-{"id": "fitToContent", "textContent": "פּאַסיק צו אינהאַלט"},
-{"id": "fit_to_all", "textContent": "פּאַסיק צו אַלע אינהאַלט"},
-{"id": "fit_to_canvas", "textContent": "פּאַסיק צו לייוונט"},
-{"id": "fit_to_layer_content", "textContent": "פּאַסיק צו שיכטע אינהאַלט"},
-{"id": "fit_to_sel", "textContent": "פּאַסיק צו אָפּקלייב"},
-{"id": "font_family", "title": "ענדערן פאָנט פאַמילי"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "טוישן בילד הייך"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "ענדערן URL"},
-{"id": "image_width", "title": "טוישן בילד ברייט"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "לאַרדזשאַסט קעגן"},
-{"id": "layer_delete", "title": "ויסמעקן לייַער"},
-{"id": "layer_down", "title": "קער לייַער דאָוון"},
-{"id": "layer_new", "title": "ניו לייַער"},
-{"id": "layer_rename", "title": "רענאַמע לייַער"},
-{"id": "layer_up", "title": "באַוועגן לייַער אַרויף"},
-{"id": "layersLabel", "textContent": "לייַערס:"},
-{"id": "line_x1", "title": "טוישן ליניע ס &#39;סטאַרטינג קס קאָואָרדאַנאַט"},
-{"id": "line_x2", "title": "טוישן ליניע ס &#39;סאָף קס קאָואָרדאַנאַט"},
-{"id": "line_y1", "title": "טוישן ליניע ס &#39;סטאַרטינג י קאָואָרדאַנאַט"},
-{"id": "line_y2", "title": "טוישן ליניע ס &#39;סאָף י קאָואָרדאַנאַט"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "בלאַט"},
-{"id": "palette", "title": "גיט צו ענדערן אָנעסן קאָליר, יבעררוק-גיט צו טוישן מאַך קאָליר"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "ענדערן גראָדעק הייך"},
-{"id": "rect_width_tool", "title": "ענדערן גראָדעק ברייט"},
-{"id": "relativeToLabel", "textContent": "קאָרעוו צו:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "סעלעקטירן פּרעדעפינעד:"},
-{"id": "selected_objects", "textContent": "עלעקטעד אַבדזשעקץ"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "סמאָלאַסט קעגן"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "טוישן מאַך קאָליר"},
-{"id": "stroke_style", "title": "טוישן מאַך לאָך מאָדע"},
-{"id": "stroke_width", "title": "טוישן מאַך ברייט"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "הויך:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "ברייט:"},
-{"id": "text", "title": "ענדערן טעקסט אינהאַלט"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "יינרייען באָטטאָם"},
-{"id": "tool_aligncenter", "title": "יינרייען צענטער"},
-{"id": "tool_alignleft", "title": "יינרייען לעפט"},
-{"id": "tool_alignmiddle", "title": "יינרייען מיטל"},
-{"id": "tool_alignright", "title": "יינרייען רעכט"},
-{"id": "tool_aligntop", "title": "יינרייען Top"},
-{"id": "tool_angle", "title": "ענדערן ראָוטיישאַן ווינקל"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "דרייסט טעקסט"},
-{"id": "tool_circle", "title": "קאַראַהאָד"},
-{"id": "tool_clear", "textContent": "ניו בילד"},
-{"id": "tool_clone", "title": "קלאָנע עלעמענט"},
-{"id": "tool_clone_multi", "title": "קלאָנע עלעמענץ"},
-{"id": "tool_delete", "title": "ויסמעקן עלעמענט"},
-{"id": "tool_delete_multi", "title": "ויסמעקן סעלעקטעד עלעמענץ [Delete/Backspace]"},
-{"id": "tool_docprops", "textContent": "דאָקומענט פּראָפּערטיעס"},
-{"id": "tool_docprops_cancel", "textContent": "באָטל מאַכן"},
-{"id": "tool_docprops_save", "textContent": "היט"},
-{"id": "tool_ellipse", "title": "עלליפּסע"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "Free-הענט עלליפּסע"},
-{"id": "tool_fhpath", "title": "בלייער טול"},
-{"id": "tool_fhrect", "title": "Free-הענט רעקטאַנגלע"},
-{"id": "tool_font_size", "title": "בייטן פאָנט גרייס"},
-{"id": "tool_group", "title": "גרופּע עלעמענץ"},
-{"id": "tool_image", "title": "בילד טול"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "יטאַליק טעקסט"},
-{"id": "tool_line", "title": "שורה טול"},
-{"id": "tool_move_bottom", "title": "מאַך צו באָטטאָם"},
-{"id": "tool_move_top", "title": "באַוועגן צו Top"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "ענדערן סעלעקטעד נומער אָופּאַסאַטי"},
-{"id": "tool_open", "textContent": "Open בילד"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "גראָדעק"},
-{"id": "tool_redo", "title": "רעדאָ"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "היט בילד"},
-{"id": "tool_select", "title": "סעלעקטירן טול"},
-{"id": "tool_source", "title": "רעדאַקטירן סאָרס"},
-{"id": "tool_source_cancel", "textContent": "באָטל מאַכן"},
-{"id": "tool_source_save", "textContent": "היט"},
-{"id": "tool_square", "title": "קוואדראט"},
-{"id": "tool_text", "title": "טעקסט טול"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "ופמאַכן"},
-{"id": "tool_ungroup", "title": "ונגראָופּ עלעמענץ"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "פארגרעסער טול"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "ענדערן פארגרעסער הייך"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "yi",
+	dir : "ltr",
+	common: {
+		"ok": "היט",
+		"cancel": "באָטל מאַכן",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "גיט צו ענדערן אָנעסן קאָליר, יבעררוק-גיט צו טוישן מאַך קאָליר",
+		"zoom_level": "ענדערן פארגרעסער הייך",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "ענדערן אָנעסן קאָליר",
+		"stroke_color": "טוישן מאַך קאָליר",
+		"stroke_style": "טוישן מאַך לאָך מאָדע",
+		"stroke_width": "טוישן מאַך ברייט",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "ענדערן ראָוטיישאַן ווינקל",
+		"blur": "Change gaussian blur value",
+		"opacity": "ענדערן סעלעקטעד נומער אָופּאַסאַטי",
+		"circle_cx": "ענדערן קרייז ס קקס קאָואָרדאַנאַט",
+		"circle_cy": "ענדערן קרייז ס סי קאָואָרדאַנאַט",
+		"circle_r": "ענדערן קרייז ס ראַדיוס",
+		"ellipse_cx": "ענדערן יליפּס ס קקס קאָואָרדאַנאַט",
+		"ellipse_cy": "ענדערן יליפּס ס סי קאָואָרדאַנאַט",
+		"ellipse_rx": "ענדערן יליפּס ס &#39;קס ראַדיוס",
+		"ellipse_ry": "ענדערן יליפּס ס &#39;י ראַדיוס",
+		"line_x1": "טוישן ליניע ס &#39;סטאַרטינג קס קאָואָרדאַנאַט",
+		"line_x2": "טוישן ליניע ס &#39;סאָף קס קאָואָרדאַנאַט",
+		"line_y1": "טוישן ליניע ס &#39;סטאַרטינג י קאָואָרדאַנאַט",
+		"line_y2": "טוישן ליניע ס &#39;סאָף י קאָואָרדאַנאַט",
+		"rect_height": "ענדערן גראָדעק הייך",
+		"rect_width": "ענדערן גראָדעק ברייט",
+		"corner_radius": "ענדערן רעקטאַנגלע קאָרנער ראַדיוס",
+		"image_width": "טוישן בילד ברייט",
+		"image_height": "טוישן בילד הייך",
+		"image_url": "ענדערן URL",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "ענדערן טעקסט אינהאַלט",
+		"font_family": "ענדערן פאָנט פאַמילי",
+		"font_size": "בייטן פאָנט גרייס",
+		"bold": "דרייסט טעקסט",
+		"italic": "יטאַליק טעקסט"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "ענדערן הינטערגרונט פאַרב / אָופּאַסאַטי",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "פּאַסיק צו אינהאַלט",
+		"fit_to_all": "פּאַסיק צו אַלע אינהאַלט",
+		"fit_to_canvas": "פּאַסיק צו לייוונט",
+		"fit_to_layer_content": "פּאַסיק צו שיכטע אינהאַלט",
+		"fit_to_sel": "פּאַסיק צו אָפּקלייב",
+		"align_relative_to": "יינרייען קאָרעוו צו ...",
+		"relativeTo": "קאָרעוו צו:",
+		"בלאַט": "בלאַט",
+		"largest_object": "לאַרדזשאַסט קעגן",
+		"selected_objects": "עלעקטעד אַבדזשעקץ",
+		"smallest_object": "סמאָלאַסט קעגן",
+		"new_doc": "ניו בילד",
+		"open_doc": "Open בילד",
+		"export_png": "Export as PNG",
+		"save_doc": "היט בילד",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "יינרייען באָטטאָם",
+		"align_center": "יינרייען צענטער",
+		"align_left": "יינרייען לעפט",
+		"align_middle": "יינרייען מיטל",
+		"align_right": "יינרייען רעכט",
+		"align_top": "יינרייען Top",
+		"mode_select": "סעלעקטירן טול",
+		"mode_fhpath": "בלייער טול",
+		"mode_line": "שורה טול",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "Free-הענט רעקטאַנגלע",
+		"mode_ellipse": "עלליפּסע",
+		"mode_circle": "קאַראַהאָד",
+		"mode_fhellipse": "Free-הענט עלליפּסע",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "טעקסט טול",
+		"mode_image": "בילד טול",
+		"mode_zoom": "פארגרעסער טול",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "ופמאַכן",
+		"redo": "רעדאָ",
+		"tool_source": "רעדאַקטירן סאָרס",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "גרופּע עלעמענץ",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "ונגראָופּ עלעמענץ",
+		"docprops": "דאָקומענט פּראָפּערטיעס",
+		"imagelib": "Image Library",
+		"move_bottom": "מאַך צו באָטטאָם",
+		"move_top": "באַוועגן צו Top",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "היט",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "ויסמעקן לייַער",
+		"move_down": "קער לייַער דאָוון",
+		"new": "ניו לייַער",
+		"rename": "רענאַמע לייַער",
+		"move_up": "באַוועגן לייַער אַרויף",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "סעלעקטירן פּרעדעפינעד:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 174
main/inc/lib/svg-edit/locale/lang.zh-CN.js

@@ -1,174 +1,234 @@
-[
-{"id": "align_relative_to", "title": "相对对齐 ..."},
-{"id": "bkgnd_color", "title": "更改背景颜色/不透明"},
-{"id": "circle_cx", "title": "改变循环的CX坐标"},
-{"id": "circle_cy", "title": "改变循环的赛扬坐标"},
-{"id": "circle_r", "title": "改变圆的半径"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "矩形角半径的变化"},
-{"id": "cornerRadiusLabel", "title": "角半径:"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "改变椭圆的CX坐标"},
-{"id": "ellipse_cy", "title": "改变椭圆的赛扬坐标"},
-{"id": "ellipse_rx", "title": "改变椭圆的x半径"},
-{"id": "ellipse_ry", "title": "改变椭圆的y半径"},
-{"id": "fill_color", "title": "更改填充颜色"},
-{"id": "fitToContent", "textContent": "适合内容"},
-{"id": "fit_to_all", "textContent": "适合于所有的内容"},
-{"id": "fit_to_canvas", "textContent": "适合画布"},
-{"id": "fit_to_layer_content", "textContent": "适合层内容"},
-{"id": "fit_to_sel", "textContent": "适合选择"},
-{"id": "font_family", "title": "更改字体家族"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "更改图像高度"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "更改网址"},
-{"id": "image_width", "title": "更改图像的宽度"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "最大对象"},
-{"id": "layer_delete", "title": "删除层"},
-{"id": "layer_down", "title": "层向下移动"},
-{"id": "layer_new", "title": "新层"},
-{"id": "layer_rename", "title": "重命名层"},
-{"id": "layer_up", "title": "移动层最多"},
-{"id": "layersLabel", "textContent": "层:"},
-{"id": "line_x1", "title": "更改行的起点的x坐标"},
-{"id": "line_x2", "title": "更改行的结束x坐标"},
-{"id": "line_y1", "title": "更改行的起点的y坐标"},
-{"id": "line_y2", "title": "更改行的结束y坐标"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "网页"},
-{"id": "palette", "title": "点击更改填充颜色,按住Shift键单击更改颜色中风"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "更改矩形的高度"},
-{"id": "rect_width_tool", "title": "更改矩形的宽度"},
-{"id": "relativeToLabel", "textContent": "相对于:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "选择预定义:"},
-{"id": "selected_objects", "textContent": "选对象"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "最小的对象"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "中风的颜色变化"},
-{"id": "stroke_style", "title": "更改行程冲刺风格"},
-{"id": "stroke_width", "title": "笔划宽度的变化"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "高度:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "宽度:"},
-{"id": "text", "title": "更改文字内容"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "底部对齐"},
-{"id": "tool_aligncenter", "title": "居中对齐"},
-{"id": "tool_alignleft", "title": "左对齐"},
-{"id": "tool_alignmiddle", "title": "中间对齐"},
-{"id": "tool_alignright", "title": "右对齐"},
-{"id": "tool_aligntop", "title": "顶端对齐"},
-{"id": "tool_angle", "title": "旋转角度的变化"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "粗体"},
-{"id": "tool_circle", "title": "圈"},
-{"id": "tool_clear", "textContent": "新形象"},
-{"id": "tool_clone", "title": "克隆元素"},
-{"id": "tool_clone_multi", "title": "克隆元素"},
-{"id": "tool_delete", "title": "删除元素"},
-{"id": "tool_delete_multi", "title": "删除所选元素"},
-{"id": "tool_docprops", "textContent": "文档属性"},
-{"id": "tool_docprops_cancel", "textContent": "取消"},
-{"id": "tool_docprops_save", "textContent": "保存"},
-{"id": "tool_ellipse", "title": "椭圆"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "免费手椭圆"},
-{"id": "tool_fhpath", "title": "铅笔工具"},
-{"id": "tool_fhrect", "title": "免费手矩形"},
-{"id": "tool_font_size", "title": "更改字体大小"},
-{"id": "tool_group", "title": "族元素"},
-{"id": "tool_image", "title": "图像工具"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "斜体文本"},
-{"id": "tool_line", "title": "线工具"},
-{"id": "tool_move_bottom", "title": "移至底部"},
-{"id": "tool_move_top", "title": "移动到顶部"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "更改所选项目不透明"},
-{"id": "tool_open", "textContent": "打开图像"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "矩形"},
-{"id": "tool_redo", "title": "重做"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "保存图像"},
-{"id": "tool_select", "title": "选择工具"},
-{"id": "tool_source", "title": "编辑源"},
-{"id": "tool_source_cancel", "textContent": "取消"},
-{"id": "tool_source_save", "textContent": "保存"},
-{"id": "tool_square", "title": "广场"},
-{"id": "tool_text", "title": "文字工具"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "撤消"},
-{"id": "tool_ungroup", "title": "取消组合元素"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "缩放工具"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "更改缩放级别"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "zh-CN",
+	dir : "ltr",
+	common: {
+		"ok": "保存",
+		"cancel": "取消",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "点击更改填充颜色,按住Shift键单击更改颜色中风",
+		"zoom_level": "更改缩放级别",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "更改填充颜色",
+		"stroke_color": "中风的颜色变化",
+		"stroke_style": "更改行程冲刺风格",
+		"stroke_width": "笔划宽度的变化",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "旋转角度的变化",
+		"blur": "Change gaussian blur value",
+		"opacity": "更改所选项目不透明",
+		"circle_cx": "改变循环的CX坐标",
+		"circle_cy": "改变循环的赛扬坐标",
+		"circle_r": "改变圆的半径",
+		"ellipse_cx": "改变椭圆的CX坐标",
+		"ellipse_cy": "改变椭圆的赛扬坐标",
+		"ellipse_rx": "改变椭圆的x半径",
+		"ellipse_ry": "改变椭圆的y半径",
+		"line_x1": "更改行的起点的x坐标",
+		"line_x2": "更改行的结束x坐标",
+		"line_y1": "更改行的起点的y坐标",
+		"line_y2": "更改行的结束y坐标",
+		"rect_height": "更改矩形的高度",
+		"rect_width": "更改矩形的宽度",
+		"corner_radius": "角半径:",
+		"image_width": "更改图像的宽度",
+		"image_height": "更改图像高度",
+		"image_url": "更改网址",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "更改文字内容",
+		"font_family": "更改字体家族",
+		"font_size": "更改字体大小",
+		"bold": "粗体",
+		"italic": "斜体文本"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "更改背景颜色/不透明",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "适合内容",
+		"fit_to_all": "适合于所有的内容",
+		"fit_to_canvas": "适合画布",
+		"fit_to_layer_content": "适合层内容",
+		"fit_to_sel": "适合选择",
+		"align_relative_to": "相对对齐 ...",
+		"relativeTo": "相对于:",
+		"网页": "网页",
+		"largest_object": "最大对象",
+		"selected_objects": "选对象",
+		"smallest_object": "最小的对象",
+		"new_doc": "新形象",
+		"open_doc": "打开图像",
+		"export_png": "Export as PNG",
+		"save_doc": "保存图像",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "底部对齐",
+		"align_center": "居中对齐",
+		"align_left": "左对齐",
+		"align_middle": "中间对齐",
+		"align_right": "右对齐",
+		"align_top": "顶端对齐",
+		"mode_select": "选择工具",
+		"mode_fhpath": "铅笔工具",
+		"mode_line": "线工具",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "免费手矩形",
+		"mode_ellipse": "椭圆",
+		"mode_circle": "圈",
+		"mode_fhellipse": "免费手椭圆",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "文字工具",
+		"mode_image": "图像工具",
+		"mode_zoom": "缩放工具",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "撤消",
+		"redo": "重做",
+		"tool_source": "编辑源",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "族元素",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "取消组合元素",
+		"docprops": "文档属性",
+		"imagelib": "Image Library",
+		"move_bottom": "移至底部",
+		"move_top": "移动到顶部",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "保存",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "删除层",
+		"move_down": "层向下移动",
+		"new": "新层",
+		"rename": "重命名层",
+		"move_up": "移动层最多",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "选择预定义:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 174
main/inc/lib/svg-edit/locale/lang.zh-HK.js

@@ -1,174 +1,234 @@
-[
-{"id": "align_relative_to", "title": "相对对齐 ..."},
-{"id": "bkgnd_color", "title": "更改背景颜色/不透明"},
-{"id": "circle_cx", "title": "改变循环的CX坐标"},
-{"id": "circle_cy", "title": "改变循环的赛扬坐标"},
-{"id": "circle_r", "title": "改变圆的半径"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "矩形角半径的变化"},
-{"id": "cornerRadiusLabel", "title": "角半径:"},
-{"id": "curve_segments", "textContent": "Curve"},
-{"id": "ellipse_cx", "title": "改变椭圆的CX坐标"},
-{"id": "ellipse_cy", "title": "改变椭圆的赛扬坐标"},
-{"id": "ellipse_rx", "title": "改变椭圆的x半径"},
-{"id": "ellipse_ry", "title": "改变椭圆的y半径"},
-{"id": "fill_color", "title": "更改填充颜色"},
-{"id": "fitToContent", "textContent": "适合内容"},
-{"id": "fit_to_all", "textContent": "适合于所有的内容"},
-{"id": "fit_to_canvas", "textContent": "适合画布"},
-{"id": "fit_to_layer_content", "textContent": "适合层内容"},
-{"id": "fit_to_sel", "textContent": "适合选择"},
-{"id": "font_family", "title": "更改字体家族"},
-{"id": "icon_large", "textContent": "Large"},
-{"id": "icon_medium", "textContent": "Medium"},
-{"id": "icon_small", "textContent": "Small"},
-{"id": "icon_xlarge", "textContent": "Extra Large"},
-{"id": "image_height", "title": "更改图像高度"},
-{"id": "image_opt_embed", "textContent": "Embed data (local files)"},
-{"id": "image_opt_ref", "textContent": "Use file reference"},
-{"id": "image_url", "title": "更改网址"},
-{"id": "image_width", "title": "更改图像的宽度"},
-{"id": "includedImages", "textContent": "Included Images"},
-{"id": "largest_object", "textContent": "最大对象"},
-{"id": "layer_delete", "title": "删除层"},
-{"id": "layer_down", "title": "层向下移动"},
-{"id": "layer_new", "title": "新层"},
-{"id": "layer_rename", "title": "重命名层"},
-{"id": "layer_up", "title": "移动层最多"},
-{"id": "layersLabel", "textContent": "层:"},
-{"id": "line_x1", "title": "更改行的起点的x坐标"},
-{"id": "line_x2", "title": "更改行的结束x坐标"},
-{"id": "line_y1", "title": "更改行的起点的y坐标"},
-{"id": "line_y2", "title": "更改行的结束y坐标"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "网页"},
-{"id": "palette", "title": "点击更改填充颜色,按住Shift键单击更改颜色中风"},
-{"id": "path_node_x", "title": "Change node's x coordinate"},
-{"id": "path_node_y", "title": "Change node's y coordinate"},
-{"id": "rect_height_tool", "title": "更改矩形的高度"},
-{"id": "rect_width_tool", "title": "更改矩形的宽度"},
-{"id": "relativeToLabel", "textContent": "相对于:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "Move elements to:"},
-{"id": "selLayerNames", "title": "Move selected elements to a different layer"},
-{"id": "selectedPredefined", "textContent": "选择预定义:"},
-{"id": "selected_objects", "textContent": "选对象"},
-{"id": "selected_x", "title": "Change X coordinate"},
-{"id": "selected_y", "title": "Change Y coordinate"},
-{"id": "smallest_object", "textContent": "最小的对象"},
-{"id": "straight_segments", "textContent": "Straight"},
-{"id": "stroke_color", "title": "中风的颜色变化"},
-{"id": "stroke_style", "title": "更改行程冲刺风格"},
-{"id": "stroke_width", "title": "笔划宽度的变化"},
-{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."},
-{"id": "svginfo_change_background", "textContent": "Editor Background"},
-{"id": "svginfo_dim", "textContent": "Canvas Dimensions"},
-{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"},
-{"id": "svginfo_height", "textContent": "高度:"},
-{"id": "svginfo_icons", "textContent": "Icon size"},
-{"id": "svginfo_image_props", "textContent": "Image Properties"},
-{"id": "svginfo_lang", "textContent": "Language"},
-{"id": "svginfo_title", "textContent": "Title"},
-{"id": "svginfo_width", "textContent": "宽度:"},
-{"id": "text", "title": "更改文字内容"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "底部对齐"},
-{"id": "tool_aligncenter", "title": "居中对齐"},
-{"id": "tool_alignleft", "title": "左对齐"},
-{"id": "tool_alignmiddle", "title": "中间对齐"},
-{"id": "tool_alignright", "title": "右对齐"},
-{"id": "tool_aligntop", "title": "顶端对齐"},
-{"id": "tool_angle", "title": "旋转角度的变化"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "粗体"},
-{"id": "tool_circle", "title": "圈"},
-{"id": "tool_clear", "textContent": "新形象"},
-{"id": "tool_clone", "title": "克隆元素"},
-{"id": "tool_clone_multi", "title": "克隆元素"},
-{"id": "tool_delete", "title": "删除元素"},
-{"id": "tool_delete_multi", "title": "删除所选元素"},
-{"id": "tool_docprops", "textContent": "文档属性"},
-{"id": "tool_docprops_cancel", "textContent": "取消"},
-{"id": "tool_docprops_save", "textContent": "保存"},
-{"id": "tool_ellipse", "title": "椭圆"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "免费手椭圆"},
-{"id": "tool_fhpath", "title": "铅笔工具"},
-{"id": "tool_fhrect", "title": "免费手矩形"},
-{"id": "tool_font_size", "title": "更改字体大小"},
-{"id": "tool_group", "title": "族元素"},
-{"id": "tool_image", "title": "图像工具"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "斜体文本"},
-{"id": "tool_line", "title": "线工具"},
-{"id": "tool_move_bottom", "title": "移至底部"},
-{"id": "tool_move_top", "title": "移动到顶部"},
-{"id": "tool_node_clone", "title": "Clone Node"},
-{"id": "tool_node_delete", "title": "Delete Node"},
-{"id": "tool_node_link", "title": "Link Control Points"},
-{"id": "tool_opacity", "title": "更改所选项目不透明"},
-{"id": "tool_open", "textContent": "打开图像"},
-{"id": "tool_path", "title": "Path Tool"},
-{"id": "tool_rect", "title": "矩形"},
-{"id": "tool_redo", "title": "重做"},
-{"id": "tool_reorient", "title": "Reorient path"},
-{"id": "tool_save", "textContent": "保存图像"},
-{"id": "tool_select", "title": "选择工具"},
-{"id": "tool_source", "title": "编辑源"},
-{"id": "tool_source_cancel", "textContent": "取消"},
-{"id": "tool_source_save", "textContent": "保存"},
-{"id": "tool_square", "title": "广场"},
-{"id": "tool_text", "title": "文字工具"},
-{"id": "tool_topath", "title": "Convert to Path"},
-{"id": "tool_undo", "title": "撤消"},
-{"id": "tool_ungroup", "title": "Ungroup Elements"},
-{"id": "tool_wireframe", "title": "Wireframe Mode"},
-{"id": "tool_zoom", "title": "缩放工具"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "更改缩放级别"},
-{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", 
-  "QignoreSourceChanges": "Ignore changes made to SVG source?", 
-  "QmoveElemsToLayer": "Move selected elements to layer '%s'?", 
-  "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", 
-  "cancel": "Cancel", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "There is already a layer named that!", 
-  "enterNewImgURL": "Enter the new image URL", 
-  "enterNewLayerName": "Please enter the new layer name", 
-  "enterUniqueLayerName": "Please enter a unique layer name", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "Feature not supported", 
-  "invalidAttrValGiven": "Invalid value given", 
-  "key_backspace": "backspace", 
-  "key_del": "delete", 
-  "key_down": "down", 
-  "key_up": "up", 
-  "layer": "Layer", 
-  "layerHasThatName": "Layer already has that name", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "No content to fit to", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "OK", 
-  "pathCtrlPtTooltip": "Drag control point to adjust curve properties", 
-  "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "zh-HK",
+	dir : "ltr",
+	common: {
+		"ok": "保存",
+		"cancel": "取消",
+		"key_backspace": "backspace", 
+		"key_del": "delete", 
+		"key_down": "down", 
+		"key_up": "up", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "点击更改填充颜色,按住Shift键单击更改颜色中风",
+		"zoom_level": "更改缩放级别",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "更改填充颜色",
+		"stroke_color": "中风的颜色变化",
+		"stroke_style": "更改行程冲刺风格",
+		"stroke_width": "笔划宽度的变化",
+		"pos_x": "Change X coordinate",
+		"pos_y": "Change Y coordinate",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "旋转角度的变化",
+		"blur": "Change gaussian blur value",
+		"opacity": "更改所选项目不透明",
+		"circle_cx": "改变循环的CX坐标",
+		"circle_cy": "改变循环的赛扬坐标",
+		"circle_r": "改变圆的半径",
+		"ellipse_cx": "改变椭圆的CX坐标",
+		"ellipse_cy": "改变椭圆的赛扬坐标",
+		"ellipse_rx": "改变椭圆的x半径",
+		"ellipse_ry": "改变椭圆的y半径",
+		"line_x1": "更改行的起点的x坐标",
+		"line_x2": "更改行的结束x坐标",
+		"line_y1": "更改行的起点的y坐标",
+		"line_y2": "更改行的结束y坐标",
+		"rect_height": "更改矩形的高度",
+		"rect_width": "更改矩形的宽度",
+		"corner_radius": "角半径:",
+		"image_width": "更改图像的宽度",
+		"image_height": "更改图像高度",
+		"image_url": "更改网址",
+		"node_x": "Change node's x coordinate",
+		"node_y": "Change node's y coordinate",
+		"seg_type": "Change Segment type",
+		"straight_segments": "Straight",
+		"curve_segments": "Curve",
+		"text_contents": "更改文字内容",
+		"font_family": "更改字体家族",
+		"font_size": "更改字体大小",
+		"bold": "粗体",
+		"italic": "斜体文本"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "更改背景颜色/不透明",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "适合内容",
+		"fit_to_all": "适合于所有的内容",
+		"fit_to_canvas": "适合画布",
+		"fit_to_layer_content": "适合层内容",
+		"fit_to_sel": "适合选择",
+		"align_relative_to": "相对对齐 ...",
+		"relativeTo": "相对于:",
+		"网页": "网页",
+		"largest_object": "最大对象",
+		"selected_objects": "选对象",
+		"smallest_object": "最小的对象",
+		"new_doc": "新形象",
+		"open_doc": "打开图像",
+		"export_png": "Export as PNG",
+		"save_doc": "保存图像",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "底部对齐",
+		"align_center": "居中对齐",
+		"align_left": "左对齐",
+		"align_middle": "中间对齐",
+		"align_right": "右对齐",
+		"align_top": "顶端对齐",
+		"mode_select": "选择工具",
+		"mode_fhpath": "铅笔工具",
+		"mode_line": "线工具",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "免费手矩形",
+		"mode_ellipse": "椭圆",
+		"mode_circle": "圈",
+		"mode_fhellipse": "免费手椭圆",
+		"mode_path": "Path Tool",
+		"mode_shapelib": "Shape library",
+		"mode_text": "文字工具",
+		"mode_image": "图像工具",
+		"mode_zoom": "缩放工具",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "撤消",
+		"redo": "重做",
+		"tool_source": "编辑源",
+		"wireframe_mode": "Wireframe Mode",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "族元素",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "Convert to Path",
+		"reorient_path": "Reorient path",
+		"ungroup": "Ungroup Elements",
+		"docprops": "文档属性",
+		"imagelib": "Image Library",
+		"move_bottom": "移至底部",
+		"move_top": "移动到顶部",
+		"node_clone": "Clone Node",
+		"node_delete": "Delete Node",
+		"node_link": "Link Control Points",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "保存",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"delete": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"Layer",
+		"layers": "Layers",
+		"del": "删除层",
+		"move_down": "层向下移动",
+		"new": "新层",
+		"rename": "重命名层",
+		"move_up": "移动层最多",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "Move elements to:",
+		"move_selected": "Move selected elements to a different layer"
+	},
+	config: {
+		"image_props": "Image Properties",
+		"doc_title": "Title",
+		"doc_dims": "Canvas Dimensions",
+		"included_images": "Included Images",
+		"image_opt_embed": "Embed data (local files)",
+		"image_opt_ref": "Use file reference",
+		"editor_prefs": "Editor Preferences",
+		"icon_size": "Icon size",
+		"language": "Language",
+		"background": "Editor Background",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "Note: Background will not be saved with image.",
+		"icon_large": "Large",
+		"icon_medium": "Medium",
+		"icon_small": "Small",
+		"icon_xlarge": "Extra Large",
+		"select_predefined": "选择预定义:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"Invalid value given",
+		"noContentToFitTo":"No content to fit to",
+		"dupeLayerName":"There is already a layer named that!",
+		"enterUniqueLayerName":"Please enter a unique layer name",
+		"enterNewLayerName":"Please enter the new layer name",
+		"layerHasThatName":"Layer already has that name",
+		"QmoveElemsToLayer":"Move selected elements to layer '%s'?",
+		"QwantToClear":"Do you want to clear the drawing?\nThis will also erase your undo history!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"There were parsing errors in your SVG source.\nRevert back to original SVG source?",
+		"QignoreSourceChanges":"Ignore changes made to SVG source?",
+		"featNotSupported":"Feature not supported",
+		"enterNewImgURL":"Enter the new image URL",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 234 - 174
main/inc/lib/svg-edit/locale/lang.zh-TW.js

@@ -1,174 +1,234 @@
-[
-{"id": "align_relative_to", "title": "相對對齊 ..."},
-{"id": "bkgnd_color", "title": "更改背景顏色/不透明"},
-{"id": "circle_cx", "title": "改變圓的CX坐標"},
-{"id": "circle_cy", "title": "改變圓的CY坐標"},
-{"id": "circle_r", "title": "改變圓的半徑"},
-{"id": "connector_no_arrow", "textContent": "No arrow"},
-{"id": "copyrightLabel", "textContent": "Powered by"},
-{"id": "cornerRadiusLabel", "title": "矩形角半徑的變化"},
-{"id": "cornerRadiusLabel", "title": "角半徑:"},
-{"id": "curve_segments", "textContent": "曲線"},
-{"id": "ellipse_cx", "title": "改變橢圓的圓心x軸座標"},
-{"id": "ellipse_cy", "title": "改變橢圓的圓心y軸座標"},
-{"id": "ellipse_rx", "title": "改變橢圓的x軸長"},
-{"id": "ellipse_ry", "title": "改變橢圓的y軸長"},
-{"id": "fill_color", "title": "更改填充顏色"},
-{"id": "fitToContent", "textContent": "適合內容"},
-{"id": "fit_to_all", "textContent": "適合所有的內容"},
-{"id": "fit_to_canvas", "textContent": "適合畫布"},
-{"id": "fit_to_layer_content", "textContent": "適合圖層內容"},
-{"id": "fit_to_sel", "textContent": "適合選取的物件"},
-{"id": "font_family", "title": "更改字體"},
-{"id": "icon_large", "textContent": "大"},
-{"id": "icon_medium", "textContent": "中"},
-{"id": "icon_small", "textContent": "小"},
-{"id": "icon_xlarge", "textContent": "特大"},
-{"id": "image_height", "title": "更改圖像高度"},
-{"id": "image_opt_embed", "textContent": "內嵌資料 (本地端檔案)"},
-{"id": "image_opt_ref", "textContent": "使用檔案參照"},
-{"id": "image_url", "title": "更改網址"},
-{"id": "image_width", "title": "更改圖像的寬度"},
-{"id": "includedImages", "textContent": "包含圖像"},
-{"id": "largest_object", "textContent": "最大的物件"},
-{"id": "layer_delete", "title": "刪除圖層"},
-{"id": "layer_down", "title": "向下移動圖層"},
-{"id": "layer_new", "title": "新增圖層"},
-{"id": "layer_rename", "title": "重新命名圖層"},
-{"id": "layer_up", "title": "向上移動圖層"},
-{"id": "layersLabel", "textContent": "圖層:"},
-{"id": "line_x1", "title": "更改行的起點的x坐標"},
-{"id": "line_x2", "title": "更改行的終點x坐標"},
-{"id": "line_y1", "title": "更改行的起點的y坐標"},
-{"id": "line_y2", "title": "更改行的終點y坐標"},
-{"id": "linecap_butt", "title": "Linecap: Butt"},
-{"id": "linecap_round", "title": "Linecap: Round"},
-{"id": "linecap_square", "title": "Linecap: Square"},
-{"id": "linejoin_bevel", "title": "Linejoin: Bevel"},
-{"id": "linejoin_miter", "title": "Linejoin: Miter"},
-{"id": "linejoin_round", "title": "Linejoin: Round"},
-{"id": "main_icon", "title": "Main Menu"},
-{"id": "mode_connect", "title": "Connect two objects"},
-{"id": "page", "textContent": "網頁"},
-{"id": "palette", "title": "點擊更改填充顏色,按住Shift鍵單擊更改線條顏色"},
-{"id": "path_node_x", "title": "改變節點的x軸座標"},
-{"id": "path_node_y", "title": "改變節點的y軸座標"},
-{"id": "rect_height_tool", "title": "更改矩形的高度"},
-{"id": "rect_width_tool", "title": "更改矩形的寬度"},
-{"id": "relativeToLabel", "textContent": "相對於:"},
-{"id": "seg_type", "title": "Change Segment type"},
-{"id": "selLayerLabel", "textContent": "移動物件到:"},
-{"id": "selLayerNames", "title": "移動被點選的物件其他圖層"},
-{"id": "selectedPredefined", "textContent": "使用預設值:"},
-{"id": "selected_objects", "textContent": "選取物件"},
-{"id": "selected_x", "title": "調整 X 軸"},
-{"id": "selected_y", "title": "調整 Y 軸"},
-{"id": "smallest_object", "textContent": "最小的物件"},
-{"id": "straight_segments", "textContent": "直線"},
-{"id": "stroke_color", "title": "線條顏色"},
-{"id": "stroke_style", "title": "更改線條(虛線)風格"},
-{"id": "stroke_width", "title": "線條寬度"},
-{"id": "svginfo_bg_note", "textContent": "注意: 編輯器背景不會和圖像一起儲存"},
-{"id": "svginfo_change_background", "textContent": "編輯器背景"},
-{"id": "svginfo_dim", "textContent": "畫布大小"},
-{"id": "svginfo_editor_prefs", "textContent": "編輯器屬性"},
-{"id": "svginfo_height", "textContent": "高度:"},
-{"id": "svginfo_icons", "textContent": "圖示大小"},
-{"id": "svginfo_image_props", "textContent": "圖片屬性"},
-{"id": "svginfo_lang", "textContent": "語言"},
-{"id": "svginfo_title", "textContent": "標題"},
-{"id": "svginfo_width", "textContent": "寬度:"},
-{"id": "text", "title": "更改文字內容"},
-{"id": "toggle_stroke_tools", "title": "Show/hide more stroke tools"},
-{"id": "tool_add_subpath", "title": "Add sub-path"},
-{"id": "tool_alignbottom", "title": "底部對齊"},
-{"id": "tool_aligncenter", "title": "居中對齊"},
-{"id": "tool_alignleft", "title": "向左對齊"},
-{"id": "tool_alignmiddle", "title": "中間對齊"},
-{"id": "tool_alignright", "title": "向右對齊"},
-{"id": "tool_aligntop", "title": "頂端對齊"},
-{"id": "tool_angle", "title": "旋轉角度"},
-{"id": "tool_blur", "title": "Change gaussian blur value"},
-{"id": "tool_bold", "title": "粗體"},
-{"id": "tool_circle", "title": "圓"},
-{"id": "tool_clear", "textContent": "清空圖像"},
-{"id": "tool_clone", "title": "複製"},
-{"id": "tool_clone_multi", "title": "複製所選元素"},
-{"id": "tool_delete", "title": "刪除"},
-{"id": "tool_delete_multi", "title": "刪除所選元素"},
-{"id": "tool_docprops", "textContent": "文件屬性"},
-{"id": "tool_docprops_cancel", "textContent": "取消"},
-{"id": "tool_docprops_save", "textContent": "保存"},
-{"id": "tool_ellipse", "title": "橢圓"},
-{"id": "tool_export", "textContent": "Export as PNG"},
-{"id": "tool_eyedropper", "title": "Eye Dropper Tool"},
-{"id": "tool_fhellipse", "title": "徒手畫橢圓"},
-{"id": "tool_fhpath", "title": "鉛筆工具"},
-{"id": "tool_fhrect", "title": "徒手畫矩形"},
-{"id": "tool_font_size", "title": "更改字體大小"},
-{"id": "tool_group", "title": "群組"},
-{"id": "tool_image", "title": "圖像工具"},
-{"id": "tool_import", "textContent": "Import SVG"},
-{"id": "tool_italic", "title": "斜體"},
-{"id": "tool_line", "title": "線工具"},
-{"id": "tool_move_bottom", "title": "移至底部"},
-{"id": "tool_move_top", "title": "移動到頂部"},
-{"id": "tool_node_clone", "title": "增加節點"},
-{"id": "tool_node_delete", "title": "刪除節點"},
-{"id": "tool_node_link", "title": "將控制點連起來"},
-{"id": "tool_opacity", "title": "更改所選項目不透明度"},
-{"id": "tool_open", "textContent": "打開圖像"},
-{"id": "tool_path", "title": "路徑工具"},
-{"id": "tool_rect", "title": "矩形"},
-{"id": "tool_redo", "title": "復原"},
-{"id": "tool_reorient", "title": "調整路徑"},
-{"id": "tool_save", "textContent": "保存圖像"},
-{"id": "tool_select", "title": "選擇工具"},
-{"id": "tool_source", "title": "編輯SVG原始碼"},
-{"id": "tool_source_cancel", "textContent": "取消"},
-{"id": "tool_source_save", "textContent": "保存"},
-{"id": "tool_square", "title": "方形"},
-{"id": "tool_text", "title": "文字工具"},
-{"id": "tool_topath", "title": "轉換成路徑"},
-{"id": "tool_undo", "title": "取消復原"},
-{"id": "tool_ungroup", "title": "取消群組"},
-{"id": "tool_wireframe", "title": "框線模式(只瀏覽線條)"},
-{"id": "tool_zoom", "title": "縮放工具"},
-{"id": "url_notice", "title": "NOTE: This image cannot be embedded. It will depend on this path to be displayed"},
-{"id": "zoom_panel", "title": "更改縮放級別"},
-{"id": "sidepanel_handle", "textContent": "圖層", "title": "拖拉以改變側邊面板的大小"},
-{
- "js_strings": {
-  "QerrorsRevertToSource": "SVG原始碼解析錯誤\n要回復到原本的SVG原始碼嗎?", 
-  "QignoreSourceChanges": "要忽略對SVG原始碼的更動嗎?", 
-  "QmoveElemsToLayer": "要搬移所選取的物件到'%s'層嗎?", 
-  "QwantToClear": "要清空圖像嗎?\n這會順便清空你的回復紀錄!", 
-  "cancel": "取消", 
-  "defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.", 
-  "dupeLayerName": "喔不!已經有另一個同樣名稱的圖層了!", 
-  "enterNewImgURL": "輸入新的圖片網址", 
-  "enterNewLayerName": "請輸入新圖層的名稱", 
-  "enterUniqueLayerName": "請輸入一個名稱不重複的", 
-  "exportNoBlur": "Blurred elements will appear as un-blurred", 
-  "exportNoDashArray": "Strokes will appear filled", 
-  "exportNoImage": "Image elements will not appear", 
-  "exportNoText": "Text may not appear as expected", 
-  "exportNoforeignObject": "foreignObject elements will not appear", 
-  "featNotSupported": "未提供此功能", 
-  "invalidAttrValGiven": "數值給定錯誤", 
-  "key_backspace": "空白", 
-  "key_del": "刪除", 
-  "key_down": "下", 
-  "key_up": "上", 
-  "layer": "圖層", 
-  "layerHasThatName": "圖層本來就是這個名稱(抱怨)", 
-  "loadingImage": "Loading image, please wait...", 
-  "noContentToFitTo": "找不到符合的內容", 
-  "noteTheseIssues": "Also note the following issues: ", 
-  "ok": "確定", 
-  "pathCtrlPtTooltip": "拖拉控制點以改變曲線性質", 
-  "pathNodeTooltip": "拖拉節點以移動, 連擊節點以改變線段型態(直線/曲線)", 
-  "saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file."
- }
-}
-]
+svgEditor.readLang({
+	lang: "zh-TW",
+	dir : "ltr",
+	common: {
+		"ok": "保存",
+		"cancel": "取消",
+		"key_backspace": "空白", 
+		"key_del": "刪除", 
+		"key_down": "下", 
+		"key_up": "上", 
+		"more_opts": "More Options",
+		"url": "URL",
+		"width": "Width",
+		"height": "Height"
+	},
+	misc: {
+		"powered_by": "Powered by"
+	}, 
+	ui: {
+		"toggle_stroke_tools": "Show/hide more stroke tools",
+		"palette_info": "點擊更改填充顏色,按住Shift鍵單擊更改線條顏色",
+		"zoom_level": "更改縮放級別",
+		"panel_drag": "Drag left/right to resize side panel"
+	},
+	properties: {
+		"id": "Identify the element",
+		"fill_color": "更改填充顏色",
+		"stroke_color": "線條顏色",
+		"stroke_style": "更改線條(虛線)風格",
+		"stroke_width": "線條寬度",
+		"pos_x": "調整 X 軸",
+		"pos_y": "調整 Y 軸",
+		"linecap_butt": "Linecap: Butt",
+		"linecap_round": "Linecap: Round",
+		"linecap_square": "Linecap: Square",
+		"linejoin_bevel": "Linejoin: Bevel",
+		"linejoin_miter": "Linejoin: Miter",
+		"linejoin_round": "Linejoin: Round",
+		"angle": "旋轉角度",
+		"blur": "Change gaussian blur value",
+		"opacity": "更改所選項目不透明度",
+		"circle_cx": "改變圓的CX坐標",
+		"circle_cy": "改變圓的CY坐標",
+		"circle_r": "改變圓的半徑",
+		"ellipse_cx": "改變橢圓的圓心x軸座標",
+		"ellipse_cy": "改變橢圓的圓心y軸座標",
+		"ellipse_rx": "改變橢圓的x軸長",
+		"ellipse_ry": "改變橢圓的y軸長",
+		"line_x1": "更改行的起點的x坐標",
+		"line_x2": "更改行的終點x坐標",
+		"line_y1": "更改行的起點的y坐標",
+		"line_y2": "更改行的終點y坐標",
+		"rect_height": "更改矩形的高度",
+		"rect_width": "更改矩形的寬度",
+		"corner_radius": "角半徑:",
+		"image_width": "更改圖像的寬度",
+		"image_height": "更改圖像高度",
+		"image_url": "更改網址",
+		"node_x": "改變節點的x軸座標",
+		"node_y": "改變節點的y軸座標",
+		"seg_type": "Change Segment type",
+		"straight_segments": "直線",
+		"curve_segments": "曲線",
+		"text_contents": "更改文字內容",
+		"font_family": "更改字體",
+		"font_size": "更改字體大小",
+		"bold": "粗體",
+		"italic": "斜體"
+	},
+	tools: { 
+		"main_menu": "Main Menu",
+		"bkgnd_color_opac": "更改背景顏色/不透明",
+		"connector_no_arrow": "No arrow",
+		"fitToContent": "適合內容",
+		"fit_to_all": "適合所有的內容",
+		"fit_to_canvas": "適合畫布",
+		"fit_to_layer_content": "適合圖層內容",
+		"fit_to_sel": "適合選取的物件",
+		"align_relative_to": "相對對齊 ...",
+		"relativeTo": "相對於:",
+		"網頁": "網頁",
+		"largest_object": "最大的物件",
+		"selected_objects": "選取物件",
+		"smallest_object": "最小的物件",
+		"new_doc": "清空圖像",
+		"open_doc": "打開圖像",
+		"export_png": "Export as PNG",
+		"save_doc": "保存圖像",
+		"import_doc": "Import SVG",
+		"align_to_page": "Align Element to Page",
+		"align_bottom": "底部對齊",
+		"align_center": "居中對齊",
+		"align_left": "向左對齊",
+		"align_middle": "中間對齊",
+		"align_right": "向右對齊",
+		"align_top": "頂端對齊",
+		"mode_select": "選擇工具",
+		"mode_fhpath": "鉛筆工具",
+		"mode_line": "線工具",
+		"mode_connect": "Connect two objects",
+		"mode_rect": "Rectangle Tool",
+		"mode_square": "Square Tool",
+		"mode_fhrect": "徒手畫矩形",
+		"mode_ellipse": "橢圓",
+		"mode_circle": "圓",
+		"mode_fhellipse": "徒手畫橢圓",
+		"mode_path": "路徑工具",
+		"mode_shapelib": "Shape library",
+		"mode_text": "文字工具",
+		"mode_image": "圖像工具",
+		"mode_zoom": "縮放工具",
+		"mode_eyedropper": "Eye Dropper Tool",
+		"no_embed": "NOTE: This image cannot be embedded. It will depend on this path to be displayed",
+		"undo": "取消復原",
+		"redo": "復原",
+		"tool_source": "編輯SVG原始碼",
+		"wireframe_mode": "框線模式(只瀏覽線條)",
+		"toggle_grid": "Show/Hide Grid",
+		"clone": "Clone Element(s)",
+		"del": "Delete Element(s)",
+		"group": "群組",
+		"make_link": "Make (hyper)link",
+		"set_link_url": "Set link URL (leave empty to remove)",
+		"to_path": "轉換成路徑",
+		"reorient_path": "調整路徑",
+		"ungroup": "取消群組",
+		"docprops": "文件屬性",
+		"imagelib": "Image Library",
+		"move_bottom": "移至底部",
+		"move_top": "移動到頂部",
+		"node_clone": "增加節點",
+		"node_delete": "刪除節點",
+		"node_link": "將控制點連起來",
+		"add_subpath": "Add sub-path",
+		"openclose_path": "Open/close sub-path",
+		"source_save": "保存",
+		"cut": "Cut",
+		"copy": "Copy",
+		"paste": "Paste",
+		"paste_in_place": "Paste in Place",
+		"刪除": "Delete",
+		"group": "Group",
+		"move_front": "Bring to Front",
+		"move_up": "Bring Forward",
+		"move_down": "Send Backward",
+		"move_back": "Send to Back"
+	},
+	layers: {
+		"layer":"圖層",
+		"layers": "Layers",
+		"del": "刪除圖層",
+		"move_down": "向下移動圖層",
+		"new": "新增圖層",
+		"rename": "重新命名圖層",
+		"move_up": "向上移動圖層",
+		"dupe": "Duplicate Layer",
+		"merge_down": "Merge Down",
+		"merge_all": "Merge All",
+		"move_elems_to": "移動物件到:",
+		"move_selected": "移動被點選的物件其他圖層"
+	},
+	config: {
+		"image_props": "圖片屬性",
+		"doc_title": "標題",
+		"doc_dims": "畫布大小",
+		"included_images": "包含圖像",
+		"image_opt_embed": "內嵌資料 (本地端檔案)",
+		"image_opt_ref": "使用檔案參照",
+		"editor_prefs": "編輯器屬性",
+		"icon_size": "圖示大小",
+		"language": "語言",
+		"background": "編輯器背景",
+		"editor_img_url": "Image URL",
+		"editor_bg_note": "注意: 編輯器背景不會和圖像一起儲存",
+		"icon_large": "大",
+		"icon_medium": "中",
+		"icon_small": "小",
+		"icon_xlarge": "特大",
+		"select_predefined": "使用預設值:",
+		"units_and_rulers": "Units & Rulers",
+		"show_rulers": "Show rulers",
+		"base_unit": "Base Unit:",
+		"grid": "Grid",
+		"snapping_onoff": "Snapping on/off",
+		"snapping_stepsize": "Snapping Step-Size:"
+	},
+	shape_cats: {
+		"basic": "Basic",
+		"object": "Objects",
+		"symbol": "Symbols",
+		"arrow": "Arrows",
+		"flowchart": "Flowchart",
+		"animal": "Animals",
+		"game": "Cards & Chess",
+		"dialog_balloon": "Dialog balloons",
+		"electronics": "Electronics",
+		"math": "Mathematical",
+		"music": "Music",
+		"misc": "Miscellaneous",
+		"raphael_1": "raphaeljs.com set 1",
+		"raphael_2": "raphaeljs.com set 2"
+	},
+	imagelib: {
+		"select_lib": "Select an image library",
+		"show_list": "Show library list",
+		"import_single": "Import single",
+		"import_multi": "Import multiple",
+		"open": "Open as new document"
+	},
+	notification: {
+		"invalidAttrValGiven":"數值給定錯誤",
+		"noContentToFitTo":"找不到符合的內容",
+		"dupeLayerName":"喔不!已經有另一個同樣名稱的圖層了!",
+		"enterUniqueLayerName":"請輸入一個名稱不重複的",
+		"enterNewLayerName":"請輸入新圖層的名稱",
+		"layerHasThatName":"圖層本來就是這個名稱(抱怨)",
+		"QmoveElemsToLayer":"要搬移所選取的物件到'%s'層嗎?",
+		"QwantToClear":"要清空圖像嗎?\n這會順便清空你的回復紀錄!",
+		"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
+		"QerrorsRevertToSource":"SVG原始碼解析錯誤\n要回復到原本的SVG原始碼嗎?",
+		"QignoreSourceChanges":"要忽略對SVG原始碼的更動嗎?",
+		"featNotSupported":"未提供此功能",
+		"enterNewImgURL":"輸入新的圖片網址",
+		"defsFailOnSave": "NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",
+		"loadingImage":"Loading image, please wait...",
+		"saveFromBrowser": "Select \"Save As...\" in your browser to save this image as a %s file.",
+		"noteTheseIssues": "Also note the following issues: ",
+		"unsavedChanges": "There are unsaved changes.",
+		"enterNewLinkURL": "Enter the new hyperlink URL",
+		"errorLoadingSVG": "Error: Unable to load SVG data",
+		"URLloadFail": "Unable to load from URL",
+		"retrieving": "Retrieving \"%s\"..."
+	}
+});

+ 276 - 41
main/inc/lib/svg-edit/locale/locale.js

@@ -8,9 +8,272 @@
  *
  */
 
+// Dependencies
+// 1) jQuery
+// 2) svgcanvas.js
+// 3) svg-editor.js
+
 var svgEditor = (function($, Editor) {
+
+	var lang_param;
+	
+	function setStrings(type, obj, ids) {
+		// Root element to look for element from
+		var parent = $('#svg_editor').parent();
+		for(var sel in obj) {
+			var val = obj[sel];
+			if(!val) console.log(sel);
+			
+			if(ids) sel = '#' + sel;
+			var $elem = parent.find(sel);
+			if($elem.length) {
+				var elem = parent.find(sel)[0];
+				
+				switch ( type ) {
+					case 'content':
+						for(var i = 0; i < elem.childNodes.length; i++) {
+							var node = elem.childNodes[i];
+							if(node.nodeType === 3 && node.textContent.replace(/\s/g,'')) {
+								node.textContent = val;
+								break;
+							}
+						}
+						break;
+					
+					case 'title':
+						elem.title = val;
+						break;
+				}
+				
+				
+			} else {
+				console.log('Missing: ' + sel);
+			}
+		}
+	}
+
+	Editor.readLang = function(langData) {
+		var more = Editor.canvas.runExtensions("addlangData", lang_param, true);
+		$.each(more, function(i, m) {
+			if(m.data) {
+				langData = $.merge(langData, m.data);
+			}
+		});
+		
+		// Old locale file, do nothing for now.
+		if(!langData.tools) return;
+		
+		var tools = langData.tools,
+			misc = langData.misc,
+			properties = langData.properties,
+			config = langData.config,
+			layers = langData.layers,
+			common = langData.common,
+			ui = langData.ui;
+		
+		setStrings('content', {
+			copyrightLabel: misc.powered_by,
+			curve_segments: properties.curve_segments,
+			fitToContent: tools.fitToContent,
+			fit_to_all: tools.fit_to_all,
+			fit_to_canvas: tools.fit_to_canvas,
+			fit_to_layer_content: tools.fit_to_layer_content,
+			fit_to_sel: tools.fit_to_sel,
+			
+			icon_large: config.icon_large,
+			icon_medium: config.icon_medium,
+			icon_small: config.icon_small,
+			icon_xlarge: config.icon_xlarge,
+			image_opt_embed: config.image_opt_embed,
+			image_opt_ref: config.image_opt_ref,
+			includedImages: config.included_images,
+			
+			largest_object: tools.largest_object,
+			
+			layersLabel: layers.layers,
+			page: tools.page,
+			relativeToLabel: tools.relativeTo,
+			selLayerLabel: layers.move_elems_to,
+			selectedPredefined: config.select_predefined,
+			
+			selected_objects: tools.selected_objects,
+			smallest_object: tools.smallest_object,
+			straight_segments: properties.straight_segments,
+			
+			svginfo_bg_url: config.editor_img_url + ":",
+			svginfo_bg_note: config.editor_bg_note,
+			svginfo_change_background: config.background,
+			svginfo_dim: config.doc_dims,
+			svginfo_editor_prefs: config.editor_prefs,
+			svginfo_height: common.height,
+			svginfo_icons: config.icon_size,
+			svginfo_image_props: config.image_props,
+			svginfo_lang: config.language,
+			svginfo_title: config.doc_title,
+			svginfo_width: common.width,
+			
+			tool_docprops_cancel: common.cancel,
+			tool_docprops_save: common.ok,
+
+			tool_source_cancel: common.cancel,
+			tool_source_save: common.ok,
+			
+			tool_prefs_cancel: common.cancel,
+			tool_prefs_save: common.ok,
+
+			sidepanel_handle: layers.layers.split('').join(' '),
+
+			tool_clear: tools.new_doc,
+			tool_docprops: tools.docprops,
+			tool_export: tools.export_png,
+			tool_import: tools.import_doc,
+			tool_imagelib: tools.imagelib,
+			tool_open: tools.open_doc,
+			tool_save: tools.save_doc,
+			
+			svginfo_units_rulers: config.units_and_rulers,
+			svginfo_rulers_onoff: config.show_rulers,
+			svginfo_unit: config.base_unit,
+			
+			svginfo_grid_settings: config.grid,
+			svginfo_snap_onoff: config.snapping_onoff,
+			svginfo_snap_step: config.snapping_stepsize
+		}, true);
+		
+		// Shape categories
+		var cats = {};
+		for (var o in langData.shape_cats) {
+			cats['#shape_cats [data-cat="' + o + '"]'] = langData.shape_cats[o];
+		}
+		
+		// TODO: Find way to make this run after shapelib ext has loaded
+		setTimeout(function() {
+			setStrings('content', cats);
+		}, 2000);
+		
+		// Context menus
+		var opts = {};
+		$.each(['cut','copy','paste', 'paste_in_place', 'delete', 'group', 'ungroup', 'move_front', 'move_up', 'move_down', 'move_back'], function() {
+			opts['#cmenu_canvas a[href="#' + this + '"]'] = tools[this];
+		});
+
+		$.each(['dupe','merge_down', 'merge_all'], function() {
+			opts['#cmenu_layers a[href="#' + this + '"]'] = layers[this];
+		});
+
+		opts['#cmenu_layers a[href="#delete"]'] = layers.del;
+		
+		setStrings('content', opts);
+		
+		setStrings('title', {
+			align_relative_to: tools.align_relative_to,
+			circle_cx: properties.circle_cx,
+			circle_cy: properties.circle_cy,
+			circle_r: properties.circle_r,
+			cornerRadiusLabel: properties.corner_radius,
+			ellipse_cx: properties.ellipse_cx,
+			ellipse_cy: properties.ellipse_cy,
+			ellipse_rx: properties.ellipse_rx,
+			ellipse_ry: properties.ellipse_ry,
+			fill_color: properties.fill_color,
+			font_family: properties.font_family,
+			idLabel: properties.id,
+			image_height: properties.image_height,
+			image_url: properties.image_url,
+			image_width: properties.image_width,
+			layer_delete: layers.del,
+			layer_down: layers.move_down,
+			layer_new: layers['new'],
+			layer_rename: layers.rename,
+			layer_moreopts: common.more_opts,
+			layer_up: layers.move_up,
+			line_x1: properties.line_x1,
+			line_x2: properties.line_x2,
+			line_y1: properties.line_y1,
+			line_y2: properties.line_y2,
+			linecap_butt: properties.linecap_butt,
+			linecap_round: properties.linecap_round,
+			linecap_square: properties.linecap_square,
+			linejoin_bevel: properties.linejoin_bevel,
+			linejoin_miter: properties.linejoin_miter,
+			linejoin_round: properties.linejoin_round,
+			main_icon: tools.main_menu,
+			mode_connect: tools.mode_connect,
+			tools_shapelib_show: tools.mode_shapelib,
+			palette: ui.palette_info,
+			zoom_panel: ui.zoom_level,
+			path_node_x: properties.node_x,
+			path_node_y: properties.node_y,
+			rect_height_tool: properties.rect_height,
+			rect_width_tool: properties.rect_width,
+			seg_type: properties.seg_type,
+			selLayerNames: layers.move_selected,
+			selected_x: properties.pos_x,
+			selected_y: properties.pos_y,
+			stroke_color: properties.stroke_color,
+			stroke_style: properties.stroke_style,
+			stroke_width: properties.stroke_width,
+			svginfo_title: config.doc_title,
+			text: properties.text_contents,
+			toggle_stroke_tools: ui.toggle_stroke_tools,
+			tool_add_subpath: tools.add_subpath,
+			tool_alignbottom: tools.align_bottom,
+			tool_aligncenter: tools.align_center,
+			tool_alignleft: tools.align_left,
+			tool_alignmiddle: tools.align_middle,
+			tool_alignright: tools.align_right,
+			tool_aligntop: tools.align_top,
+			tool_angle: properties.angle,
+			tool_blur: properties.blur,
+			tool_bold: properties.bold,
+			tool_circle: tools.mode_circle,
+			tool_clone: tools.clone,
+			tool_clone_multi: tools.clone,
+			tool_delete: tools.del,
+			tool_delete_multi: tools.del,
+			tool_ellipse: tools.mode_ellipse,
+			tool_eyedropper: tools.mode_eyedropper,
+			tool_fhellipse: tools.mode_fhellipse,
+			tool_fhpath: tools.mode_fhpath,
+			tool_fhrect: tools.mode_fhrect,
+			tool_font_size: properties.font_size,
+			tool_group: tools.group,
+			tool_make_link: tools.make_link,
+			tool_link_url: tools.set_link_url,
+			tool_image: tools.mode_image,
+			tool_italic: properties.italic,
+			tool_line: tools.mode_line,
+			tool_move_bottom: tools.move_bottom,
+			tool_move_top: tools.move_top,
+			tool_node_clone: tools.node_clone,
+			tool_node_delete: tools.node_delete,
+			tool_node_link: tools.node_link,
+			tool_opacity: properties.opacity,
+			tool_openclose_path: tools.openclose_path,
+			tool_path: tools.mode_path,
+			tool_position: tools.align_to_page,
+			tool_rect: tools.mode_rect,
+			tool_redo: tools.redo,
+			tool_reorient: tools.reorient_path,
+			tool_select: tools.mode_select,
+			tool_source: tools.source_save,
+			tool_square: tools.mode_square,
+			tool_text: tools.mode_text,
+			tool_topath: tools.to_path,
+			tool_undo: tools.undo,
+			tool_ungroup: tools.ungroup,
+			tool_wireframe: tools.wireframe_mode,
+			view_grid: tools.toggle_grid,
+			tool_zoom: tools.mode_zoom,
+			url_notice: tools.no_embed
+
+			}
+		, true);
+		
+		Editor.setLang(lang_param, langData);
+	}
+
 	Editor.putLocale = function(given_param, good_langs){
-		var lang_param;
 	
 		if(given_param) {
 			lang_param = given_param;
@@ -25,61 +288,33 @@ var svgEditor = (function($, Editor) {
 					return;
 			}
 			
+			console.log('Lang: ' + lang_param);
+			
 			// Set to English if language is not in list of good langs
-			if($.inArray(lang_param, good_langs) == -1) {
+			if($.inArray(lang_param, good_langs) == -1 && lang_param !== 'test') {
 				lang_param = "en";
 			}
 	
 			// don't bother on first run if language is English		
 			if(lang_param.indexOf("en") == 0) return;
+
 		}
 		
 		var conf = Editor.curConfig;
 		
 		var url = conf.langPath + "lang." + lang_param + ".js";
 		
-		var processFile = function(data){
-			if(!data) return;
-			var LangData = eval(data), js_strings;
-			var more = Editor.canvas.runExtensions("addLangData", lang_param, true);
-			$.each(more, function(i, m) {
-				if(m.data) {
-					LangData = $.merge(LangData, m.data);
-				}
-			});
-			$.each(LangData, function(i, data) {
-				if(data.id) {
-					var elem = $('#svg_editor').parent().find('#'+data.id)[0];
-					if(elem) {
-						if(data.title)
-							elem.title = data.title;
-						if(data.textContent) {
-							// Only replace non-empty text nodes, not elements
-							$.each(elem.childNodes, function(j, node) {
-								if(node.nodeType == 3 && $.trim(node.textContent)) {
-									node.textContent = data.textContent;
-								}
-							});
-						}
-					}
-				} else if(data.js_strings) {
-					js_strings = data.js_strings;
-				}
-			});
-			Editor.setLang(lang_param, js_strings);
-		}
-		
-		$.ajax({
-			'url': url,
-			'dataType': "text",
-			success: processFile,
-			error: function(xhr) {
-				if(xhr.responseText) {
-					processFile(xhr.responseText);
-				}
+		$.getScript(url, function(d) {
+			// Fails locally in Chrome 5+
+			if(!d) {
+				var s = document.createElement('script');
+				s.src = url;
+				document.querySelector('head').appendChild(s);
 			}
 		});
+		
 	};
 	
 	return Editor;
 }(jQuery, svgEditor));
+

+ 246 - 0
main/inc/lib/svg-edit/math.js

@@ -0,0 +1,246 @@
+/**
+ * Package: svedit.math
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Alexis Deveria
+ * Copyright(c) 2010 Jeff Schiller
+ */
+
+// Dependencies:
+// None.
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.math) {
+	svgedit.math = {};
+}
+
+// Constants
+var NEAR_ZERO = 1e-14;
+
+// Throw away SVGSVGElement used for creating matrices/transforms.
+var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
+
+// Function: svgedit.math.transformPoint
+// A (hopefully) quicker function to transform a point by a matrix
+// (this function avoids any DOM calls and just does the math)
+// 
+// Parameters:
+// x - Float representing the x coordinate
+// y - Float representing the y coordinate
+// m - Matrix object to transform the point with
+// Returns a x,y object representing the transformed point
+svgedit.math.transformPoint = function(x, y, m) {
+	return { x: m.a * x + m.c * y + m.e, y: m.b * x + m.d * y + m.f};
+};
+
+
+// Function: svgedit.math.isIdentity
+// Helper function to check if the matrix performs no actual transform 
+// (i.e. exists for identity purposes)
+//
+// Parameters: 
+// m - The matrix object to check
+//
+// Returns:
+// Boolean indicating whether or not the matrix is 1,0,0,1,0,0
+svgedit.math.isIdentity = function(m) {
+	return (m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && m.e === 0 && m.f === 0);
+};
+
+
+// Function: svgedit.math.matrixMultiply
+// This function tries to return a SVGMatrix that is the multiplication m1*m2.
+// We also round to zero when it's near zero
+// 
+// Parameters:
+// >= 2 Matrix objects to multiply
+//
+// Returns: 
+// The matrix object resulting from the calculation
+svgedit.math.matrixMultiply = function() {
+	var args = arguments, i = args.length, m = args[i-1];
+	
+	while(i-- > 1) {
+		var m1 = args[i-1];
+		m = m1.multiply(m);
+	}
+	if (Math.abs(m.a) < NEAR_ZERO) m.a = 0;
+	if (Math.abs(m.b) < NEAR_ZERO) m.b = 0;
+	if (Math.abs(m.c) < NEAR_ZERO) m.c = 0;
+	if (Math.abs(m.d) < NEAR_ZERO) m.d = 0;
+	if (Math.abs(m.e) < NEAR_ZERO) m.e = 0;
+	if (Math.abs(m.f) < NEAR_ZERO) m.f = 0;
+	
+	return m;
+};
+
+// Function: svgedit.math.hasMatrixTransform
+// See if the given transformlist includes a non-indentity matrix transform
+//
+// Parameters: 
+// tlist - The transformlist to check
+//
+// Returns: 
+// Boolean on whether or not a matrix transform was found
+svgedit.math.hasMatrixTransform = function(tlist) {
+	if(!tlist) return false;
+	var num = tlist.numberOfItems;
+	while (num--) {
+		var xform = tlist.getItem(num);
+		if (xform.type == 1 && !svgedit.math.isIdentity(xform.matrix)) return true;
+	}
+	return false;
+};
+
+// Function: svgedit.math.transformBox
+// Transforms a rectangle based on the given matrix
+//
+// Parameters:
+// l - Float with the box's left coordinate
+// t - Float with the box's top coordinate
+// w - Float with the box width
+// h - Float with the box height
+// m - Matrix object to transform the box by
+// 
+// Returns:
+// An object with the following values:
+// * tl - The top left coordinate (x,y object)
+// * tr - The top right coordinate (x,y object)
+// * bl - The bottom left coordinate (x,y object)
+// * br - The bottom right coordinate (x,y object)
+// * aabox - Object with the following values:
+// * Float with the axis-aligned x coordinate
+// * Float with the axis-aligned y coordinate
+// * Float with the axis-aligned width coordinate
+// * Float with the axis-aligned height coordinate
+svgedit.math.transformBox = function(l, t, w, h, m) {
+	var topleft = {x:l,y:t},
+		topright = {x:(l+w),y:t},
+		botright = {x:(l+w),y:(t+h)},
+		botleft = {x:l,y:(t+h)};
+	var transformPoint = svgedit.math.transformPoint;
+	topleft = transformPoint( topleft.x, topleft.y, m );
+	var minx = topleft.x,
+		maxx = topleft.x,
+		miny = topleft.y,
+		maxy = topleft.y;
+	topright = transformPoint( topright.x, topright.y, m );
+	minx = Math.min(minx, topright.x);
+	maxx = Math.max(maxx, topright.x);
+	miny = Math.min(miny, topright.y);
+	maxy = Math.max(maxy, topright.y);
+	botleft = transformPoint( botleft.x, botleft.y, m);
+	minx = Math.min(minx, botleft.x);
+	maxx = Math.max(maxx, botleft.x);
+	miny = Math.min(miny, botleft.y);
+	maxy = Math.max(maxy, botleft.y);
+	botright = transformPoint( botright.x, botright.y, m );
+	minx = Math.min(minx, botright.x);
+	maxx = Math.max(maxx, botright.x);
+	miny = Math.min(miny, botright.y);
+	maxy = Math.max(maxy, botright.y);
+
+	return {tl:topleft, tr:topright, bl:botleft, br:botright, 
+			aabox: {x:minx, y:miny, width:(maxx-minx), height:(maxy-miny)} };
+};
+
+// Function: svgedit.math.transformListToTransform
+// This returns a single matrix Transform for a given Transform List
+// (this is the equivalent of SVGTransformList.consolidate() but unlike
+//  that method, this one does not modify the actual SVGTransformList)
+// This function is very liberal with its min,max arguments
+// 
+// Parameters:
+// tlist - The transformlist object
+// min - Optional integer indicating start transform position
+// max - Optional integer indicating end transform position
+//
+// Returns:
+// A single matrix transform object
+svgedit.math.transformListToTransform = function(tlist, min, max) {
+	if(tlist == null) {
+		// Or should tlist = null have been prevented before this?
+		return svg.createSVGTransformFromMatrix(svg.createSVGMatrix());
+	}
+	var min = min == undefined ? 0 : min;
+	var max = max == undefined ? (tlist.numberOfItems-1) : max;
+	min = parseInt(min);
+	max = parseInt(max);
+	if (min > max) { var temp = max; max = min; min = temp; }
+	var m = svg.createSVGMatrix();
+	for (var i = min; i <= max; ++i) {
+		// if our indices are out of range, just use a harmless identity matrix
+		var mtom = (i >= 0 && i < tlist.numberOfItems ? 
+						tlist.getItem(i).matrix :
+						svg.createSVGMatrix());
+		m = svgedit.math.matrixMultiply(m, mtom);
+	}
+	return svg.createSVGTransformFromMatrix(m);
+};
+
+
+// Function: svgedit.math.getMatrix
+// Get the matrix object for a given element
+//
+// Parameters:
+// elem - The DOM element to check
+// 
+// Returns:
+// The matrix object associated with the element's transformlist
+svgedit.math.getMatrix = function(elem) {
+	var tlist = svgedit.transformlist.getTransformList(elem);
+	return svgedit.math.transformListToTransform(tlist).matrix;
+};
+
+
+// Function: svgedit.math.snapToAngle
+// Returns a 45 degree angle coordinate associated with the two given 
+// coordinates
+// 
+// Parameters:
+// x1 - First coordinate's x value
+// x2 - Second coordinate's x value
+// y1 - First coordinate's y value
+// y2 - Second coordinate's y value
+//
+// Returns: 
+// Object with the following values:
+// x - The angle-snapped x value
+// y - The angle-snapped y value
+// snapangle - The angle at which to snap
+svgedit.math.snapToAngle = function(x1,y1,x2,y2) {
+	var snap = Math.PI/4; // 45 degrees
+	var dx = x2 - x1;
+	var dy = y2 - y1;
+	var angle = Math.atan2(dy,dx);
+	var dist = Math.sqrt(dx * dx + dy * dy);
+	var snapangle= Math.round(angle/snap)*snap;
+	var x = x1 + dist*Math.cos(snapangle);	
+	var y = y1 + dist*Math.sin(snapangle);
+	//console.log(x1,y1,x2,y2,x,y,angle)
+	return {x:x, y:y, a:snapangle};
+};
+
+
+// Function: rectsIntersect
+// Check if two rectangles (BBoxes objects) intersect each other
+//
+// Paramaters:
+// r1 - The first BBox-like object
+// r2 - The second BBox-like object
+//
+// Returns:
+// Boolean that's true if rectangles intersect
+svgedit.math.rectsIntersect = function(r1, r2) {
+	return r2.x < (r1.x+r1.width) && 
+		(r2.x+r2.width) > r1.x &&
+		r2.y < (r1.y+r1.height) &&
+		(r2.y+r2.height) > r1.y;
+};
+
+
+})();

+ 980 - 0
main/inc/lib/svg-edit/path.js

@@ -0,0 +1,980 @@
+/**
+ * Package: svgedit.path
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2011 Alexis Deveria
+ * Copyright(c) 2011 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) jQuery
+// 2) browser.js
+// 3) math.js
+// 4) svgutils.js
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.path) {
+	svgedit.path = {};
+}
+
+var svgns = "http://www.w3.org/2000/svg";
+
+var uiStrings = {
+	"pathNodeTooltip": "Drag node to move it. Double-click node to change segment type",
+	"pathCtrlPtTooltip": "Drag control point to adjust curve properties"
+};
+
+var segData = {
+	2: ['x','y'],
+	4: ['x','y'],
+	6: ['x','y','x1','y1','x2','y2'],
+	8: ['x','y','x1','y1'],
+	10: ['x','y','r1','r2','angle','largeArcFlag','sweepFlag'],
+	12: ['x'],
+	14: ['y'],
+	16: ['x','y','x2','y2'],
+	18: ['x','y']
+};
+
+var pathFuncs = [];
+
+var link_control_pts = true;
+
+// Stores references to paths via IDs.
+// TODO: Make this cross-document happy.
+var pathData = {};
+
+svgedit.path.setLinkControlPoints = function(lcp) {
+	link_control_pts = lcp;
+};
+
+svgedit.path.path = null;
+
+var editorContext_ = null;
+
+svgedit.path.init = function(editorContext) {
+	editorContext_ = editorContext;
+	
+	pathFuncs = [0,'ClosePath'];
+	var pathFuncsStrs = ['Moveto', 'Lineto', 'CurvetoCubic', 'CurvetoQuadratic', 'Arc',
+		'LinetoHorizontal', 'LinetoVertical','CurvetoCubicSmooth','CurvetoQuadraticSmooth'];
+	$.each(pathFuncsStrs, function(i,s) {
+		pathFuncs.push(s+'Abs');
+		pathFuncs.push(s+'Rel');
+	});
+};
+
+svgedit.path.insertItemBefore = function(elem, newseg, index) {
+	// Support insertItemBefore on paths for FF2
+	var list = elem.pathSegList;
+
+	if(svgedit.browser.supportsPathInsertItemBefore()) {
+		list.insertItemBefore(newseg, index);
+		return;
+	}
+	var len = list.numberOfItems;
+	var arr = [];
+	for(var i=0; i<len; i++) {
+		var cur_seg = list.getItem(i);
+		arr.push(cur_seg)				
+	}
+	list.clear();
+	for(var i=0; i<len; i++) {
+		if(i == index) { //index+1
+			list.appendItem(newseg);
+		}
+		list.appendItem(arr[i]);
+	}
+};
+
+// TODO: See if this should just live in replacePathSeg
+svgedit.path.ptObjToArr = function(type, seg_item) {
+	var arr = segData[type], len = arr.length;
+	var out = Array(len);
+	for(var i=0; i<len; i++) {
+		out[i] = seg_item[arr[i]];
+	}
+	return out;
+};
+
+svgedit.path.getGripPt = function(seg, alt_pt) {
+	var out = {
+		x: alt_pt? alt_pt.x : seg.item.x,
+		y: alt_pt? alt_pt.y : seg.item.y
+	}, path = seg.path;
+
+	if(path.matrix) {
+		var pt = svgedit.math.transformPoint(out.x, out.y, path.matrix);
+		out = pt;
+	}
+
+	out.x *= editorContext_.getCurrentZoom();
+	out.y *= editorContext_.getCurrentZoom();
+
+	return out;
+};
+
+svgedit.path.getPointFromGrip = function(pt, path) {
+	var out = {
+		x: pt.x,
+		y: pt.y
+	}
+
+	if(path.matrix) {
+		var pt = svgedit.math.transformPoint(out.x, out.y, path.imatrix);
+		out.x = pt.x;
+		out.y = pt.y;
+	}
+
+	out.x /= editorContext_.getCurrentZoom();
+	out.y /= editorContext_.getCurrentZoom();
+
+	return out;
+};
+
+svgedit.path.addPointGrip = function(index, x, y) {
+	// create the container of all the point grips
+	var pointGripContainer = svgedit.path.getGripContainer();
+
+	var pointGrip = svgedit.utilities.getElem("pathpointgrip_"+index);
+	// create it
+	if (!pointGrip) {
+		pointGrip = document.createElementNS(svgns, "circle");
+		svgedit.utilities.assignAttributes(pointGrip, {
+			'id': "pathpointgrip_" + index,
+			'display': "none",
+			'r': 4,
+			'fill': "#0FF",
+			'stroke': "#00F",
+			'stroke-width': 2,
+			'cursor': 'move',
+			'style': 'pointer-events:all',
+			'xlink:title': uiStrings.pathNodeTooltip
+		});
+		pointGrip = pointGripContainer.appendChild(pointGrip);
+
+		var grip = $('#pathpointgrip_'+index);
+		grip.dblclick(function() {
+			if(svgedit.path.path) svgedit.path.path.setSegType();
+		});
+	}
+	if(x && y) {
+		// set up the point grip element and display it
+		svgedit.utilities.assignAttributes(pointGrip, {
+			'cx': x,
+			'cy': y,
+			'display': "inline"
+		});
+	}
+	return pointGrip;
+};
+
+svgedit.path.getGripContainer = function() {
+	var c = svgedit.utilities.getElem("pathpointgrip_container");
+	if (!c) {
+		var parent = svgedit.utilities.getElem("selectorParentGroup");
+		c = parent.appendChild(document.createElementNS(svgns, "g"));
+		c.id = "pathpointgrip_container";
+	}
+	return c;
+};
+
+svgedit.path.addCtrlGrip = function(id) {
+	var pointGrip = svgedit.utilities.getElem("ctrlpointgrip_"+id);
+	if(pointGrip) return pointGrip;
+		
+	pointGrip = document.createElementNS(svgns, "circle");
+	svgedit.utilities.assignAttributes(pointGrip, {
+		'id': "ctrlpointgrip_" + id,
+		'display': "none",
+		'r': 4,
+		'fill': "#0FF",
+		'stroke': "#55F",
+		'stroke-width': 1,
+		'cursor': 'move',
+		'style': 'pointer-events:all',
+		'xlink:title': uiStrings.pathCtrlPtTooltip
+	});
+	svgedit.path.getGripContainer().appendChild(pointGrip);
+	return pointGrip;
+};
+
+svgedit.path.getCtrlLine = function(id) {
+	var ctrlLine = svgedit.utilities.getElem("ctrlLine_"+id);
+	if(ctrlLine) return ctrlLine;
+
+	ctrlLine = document.createElementNS(svgns, "line");
+	svgedit.utilities.assignAttributes(ctrlLine, {
+		'id': "ctrlLine_"+id,
+		'stroke': "#555",
+		'stroke-width': 1,
+		"style": "pointer-events:none"
+	});
+	svgedit.path.getGripContainer().appendChild(ctrlLine);
+	return ctrlLine;
+};
+
+svgedit.path.getPointGrip = function(seg, update) {
+	var index = seg.index;
+	var pointGrip = svgedit.path.addPointGrip(index);
+
+	if(update) {
+		var pt = svgedit.path.getGripPt(seg);
+		svgedit.utilities.assignAttributes(pointGrip, {
+			'cx': pt.x,
+			'cy': pt.y,
+			'display': "inline"
+		});
+	}
+
+	return pointGrip;
+};
+
+svgedit.path.getControlPoints = function(seg) {
+	var item = seg.item;
+	var index = seg.index;
+	if(!("x1" in item) || !("x2" in item)) return null;
+	var cpt = {};			
+	var pointGripContainer = svgedit.path.getGripContainer();
+
+	// Note that this is intentionally not seg.prev.item
+	var prev = svgedit.path.path.segs[index-1].item;
+
+	var seg_items = [prev, item];
+
+	for(var i=1; i<3; i++) {
+		var id = index + 'c' + i;
+
+		var ctrlLine = cpt['c' + i + '_line'] = svgedit.path.getCtrlLine(id);
+
+		var pt = svgedit.path.getGripPt(seg, {x:item['x' + i], y:item['y' + i]});
+		var gpt = svgedit.path.getGripPt(seg, {x:seg_items[i-1].x, y:seg_items[i-1].y});
+
+		svgedit.utilities.assignAttributes(ctrlLine, {
+			'x1': pt.x,
+			'y1': pt.y,
+			'x2': gpt.x,
+			'y2': gpt.y,
+			'display': "inline"
+		});
+
+		cpt['c' + i + '_line'] = ctrlLine;
+
+		// create it
+		pointGrip = cpt['c' + i] = svgedit.path.addCtrlGrip(id);
+
+		svgedit.utilities.assignAttributes(pointGrip, {
+			'cx': pt.x,
+			'cy': pt.y,
+			'display': "inline"
+		});
+		cpt['c' + i] = pointGrip;
+	}
+	return cpt;
+};
+
+// This replaces the segment at the given index. Type is given as number.
+svgedit.path.replacePathSeg = function(type, index, pts, elem) {
+	var path = elem || svgedit.path.path.elem;
+	var func = 'createSVGPathSeg' + pathFuncs[type];
+	var seg = path[func].apply(path, pts);
+
+	if(svgedit.browser.supportsPathReplaceItem()) {
+		path.pathSegList.replaceItem(seg, index);
+	} else {
+		var segList = path.pathSegList;
+		var len = segList.numberOfItems;
+		var arr = [];
+		for(var i=0; i<len; i++) {
+			var cur_seg = segList.getItem(i);
+			arr.push(cur_seg)				
+		}
+		segList.clear();
+		for(var i=0; i<len; i++) {
+			if(i == index) {
+				segList.appendItem(seg);
+			} else {
+				segList.appendItem(arr[i]);
+			}
+		}
+	}
+};
+
+svgedit.path.getSegSelector = function(seg, update) {
+	var index = seg.index;
+	var segLine = svgedit.utilities.getElem("segline_" + index);
+	if(!segLine) {
+		var pointGripContainer = svgedit.path.getGripContainer();
+		// create segline
+		segLine = document.createElementNS(svgns, "path");
+		svgedit.utilities.assignAttributes(segLine, {
+			'id': "segline_" + index,
+			'display': 'none',
+			'fill': "none",
+			'stroke': "#0FF",
+			'stroke-width': 2,
+			'style':'pointer-events:none',
+			'd': 'M0,0 0,0'
+		});
+		pointGripContainer.appendChild(segLine);
+	} 
+
+	if(update) {
+		var prev = seg.prev;
+		if(!prev) {
+			segLine.setAttribute("display", "none");
+			return segLine;
+		}
+
+		var pt = svgedit.path.getGripPt(prev);
+		// Set start point
+		svgedit.path.replacePathSeg(2, 0, [pt.x, pt.y], segLine);
+
+		var pts = svgedit.path.ptObjToArr(seg.type, seg.item, true);
+		for(var i=0; i < pts.length; i+=2) {
+			var pt = svgedit.path.getGripPt(seg, {x:pts[i], y:pts[i+1]});
+			pts[i] = pt.x;
+			pts[i+1] = pt.y;
+		}
+
+		svgedit.path.replacePathSeg(seg.type, 1, pts, segLine);
+	}
+	return segLine;
+};
+
+// Function: smoothControlPoints
+// Takes three points and creates a smoother line based on them
+// 
+// Parameters: 
+// ct1 - Object with x and y values (first control point)
+// ct2 - Object with x and y values (second control point)
+// pt - Object with x and y values (third point)
+//
+// Returns: 
+// Array of two "smoothed" point objects
+svgedit.path.smoothControlPoints = this.smoothControlPoints = function(ct1, ct2, pt) {
+	// each point must not be the origin
+	var x1 = ct1.x - pt.x,
+		y1 = ct1.y - pt.y,
+		x2 = ct2.x - pt.x,
+		y2 = ct2.y - pt.y;
+		
+	if ( (x1 != 0 || y1 != 0) && (x2 != 0 || y2 != 0) ) {
+		var anglea = Math.atan2(y1,x1),
+			angleb = Math.atan2(y2,x2),
+			r1 = Math.sqrt(x1*x1+y1*y1),
+			r2 = Math.sqrt(x2*x2+y2*y2),
+			nct1 = editorContext_.getSVGRoot().createSVGPoint(),
+			nct2 = editorContext_.getSVGRoot().createSVGPoint();				
+		if (anglea < 0) { anglea += 2*Math.PI; }
+		if (angleb < 0) { angleb += 2*Math.PI; }
+		
+		var angleBetween = Math.abs(anglea - angleb),
+			angleDiff = Math.abs(Math.PI - angleBetween)/2;
+		
+		var new_anglea, new_angleb;
+		if (anglea - angleb > 0) {
+			new_anglea = angleBetween < Math.PI ? (anglea + angleDiff) : (anglea - angleDiff);
+			new_angleb = angleBetween < Math.PI ? (angleb - angleDiff) : (angleb + angleDiff);
+		}
+		else {
+			new_anglea = angleBetween < Math.PI ? (anglea - angleDiff) : (anglea + angleDiff);
+			new_angleb = angleBetween < Math.PI ? (angleb + angleDiff) : (angleb - angleDiff);
+		}
+		
+		// rotate the points
+		nct1.x = r1 * Math.cos(new_anglea) + pt.x;
+		nct1.y = r1 * Math.sin(new_anglea) + pt.y;
+		nct2.x = r2 * Math.cos(new_angleb) + pt.x;
+		nct2.y = r2 * Math.sin(new_angleb) + pt.y;
+		
+		return [nct1, nct2];
+	}
+	return undefined;
+};
+
+svgedit.path.Segment = function(index, item) {
+	this.selected = false;
+	this.index = index;
+	this.item = item;
+	this.type = item.pathSegType;
+	
+	this.ctrlpts = [];
+	this.ptgrip = null;
+	this.segsel = null;
+};
+
+svgedit.path.Segment.prototype.showCtrlPts = function(y) {
+	for (var i in this.ctrlpts) {
+		this.ctrlpts[i].setAttribute("display", y ? "inline" : "none");
+	}
+};
+
+svgedit.path.Segment.prototype.selectCtrls = function(y) {
+	$('#ctrlpointgrip_' + this.index + 'c1, #ctrlpointgrip_' + this.index + 'c2').
+		attr('fill', y ? '#0FF' : '#EEE');
+};
+
+svgedit.path.Segment.prototype.show = function(y) {
+	if(this.ptgrip) {
+		this.ptgrip.setAttribute("display", y ? "inline" : "none");
+		this.segsel.setAttribute("display", y ? "inline" : "none");
+		// Show/hide all control points if available
+		this.showCtrlPts(y);
+	}
+};
+
+svgedit.path.Segment.prototype.select = function(y) {
+	if(this.ptgrip) {
+		this.ptgrip.setAttribute("stroke", y ? "#0FF" : "#00F");
+		this.segsel.setAttribute("display", y ? "inline" : "none");
+		if(this.ctrlpts) {
+			this.selectCtrls(y);
+		}
+		this.selected = y;
+	}
+};
+
+svgedit.path.Segment.prototype.addGrip = function() {
+	this.ptgrip = svgedit.path.getPointGrip(this, true);
+	this.ctrlpts = svgedit.path.getControlPoints(this, true);
+	this.segsel = svgedit.path.getSegSelector(this, true);
+};
+
+svgedit.path.Segment.prototype.update = function(full) {
+	if(this.ptgrip) {
+		var pt = svgedit.path.getGripPt(this);
+		svgedit.utilities.assignAttributes(this.ptgrip, {
+			'cx': pt.x,
+			'cy': pt.y
+		});
+
+		svgedit.path.getSegSelector(this, true);
+
+		if(this.ctrlpts) {
+			if(full) {
+				this.item = svgedit.path.path.elem.pathSegList.getItem(this.index);
+				this.type = this.item.pathSegType;
+			}
+			svgedit.path.getControlPoints(this);
+		} 
+		// this.segsel.setAttribute("display", y?"inline":"none");
+	}
+};
+
+svgedit.path.Segment.prototype.move = function(dx, dy) {
+	var item = this.item;
+
+	if(this.ctrlpts) {
+		var cur_pts = [item.x += dx, item.y += dy, 
+			item.x1, item.y1, item.x2 += dx, item.y2 += dy];
+	} else {
+		var cur_pts = [item.x += dx, item.y += dy];
+	}
+	svgedit.path.replacePathSeg(this.type, this.index, cur_pts);
+
+	if(this.next && this.next.ctrlpts) {
+		var next = this.next.item;
+		var next_pts = [next.x, next.y, 
+			next.x1 += dx, next.y1 += dy, next.x2, next.y2];
+		svgedit.path.replacePathSeg(this.next.type, this.next.index, next_pts);
+	}
+
+	if(this.mate) {
+		// The last point of a closed subpath has a "mate",
+		// which is the "M" segment of the subpath
+		var item = this.mate.item;
+		var pts = [item.x += dx, item.y += dy];
+		svgedit.path.replacePathSeg(this.mate.type, this.mate.index, pts);
+		// Has no grip, so does not need "updating"?
+	}
+
+	this.update(true);
+	if(this.next) this.next.update(true);
+};
+
+svgedit.path.Segment.prototype.setLinked = function(num) {
+	var seg, anum, pt;
+	if (num == 2) {
+		anum = 1;
+		seg = this.next;
+		if(!seg) return;
+		pt = this.item;
+	} else {
+		anum = 2;
+		seg = this.prev;
+		if(!seg) return;
+		pt = seg.item;
+	}
+
+	var item = seg.item;
+
+	item['x' + anum] = pt.x + (pt.x - this.item['x' + num]);
+	item['y' + anum] = pt.y + (pt.y - this.item['y' + num]);
+
+	var pts = [item.x, item.y,
+		item.x1, item.y1,
+		item.x2, item.y2];
+
+	svgedit.path.replacePathSeg(seg.type, seg.index, pts);
+	seg.update(true);
+};
+
+svgedit.path.Segment.prototype.moveCtrl = function(num, dx, dy) {
+	var item = this.item;
+
+	item['x' + num] += dx;
+	item['y' + num] += dy;
+
+	var pts = [item.x,item.y,
+		item.x1,item.y1, item.x2,item.y2];
+
+	svgedit.path.replacePathSeg(this.type, this.index, pts);
+	this.update(true);
+};
+
+svgedit.path.Segment.prototype.setType = function(new_type, pts) {
+	svgedit.path.replacePathSeg(new_type, this.index, pts);
+	this.type = new_type;
+	this.item = svgedit.path.path.elem.pathSegList.getItem(this.index);
+	this.showCtrlPts(new_type === 6);
+	this.ctrlpts = svgedit.path.getControlPoints(this);
+	this.update(true);
+};
+
+svgedit.path.Path = function(elem) {
+	if(!elem || elem.tagName !== "path") {
+		throw "svgedit.path.Path constructed without a <path> element";
+	}
+
+	this.elem = elem;
+	this.segs = [];
+	this.selected_pts = [];
+	svgedit.path.path = this;
+
+	this.init();
+};
+
+// Reset path data
+svgedit.path.Path.prototype.init = function() {
+	// Hide all grips, etc
+	$(svgedit.path.getGripContainer()).find("*").attr("display", "none");
+	var segList = this.elem.pathSegList;
+	var len = segList.numberOfItems;
+	this.segs = [];
+	this.selected_pts = [];
+	this.first_seg = null;
+	
+	// Set up segs array
+	for(var i=0; i < len; i++) {
+		var item = segList.getItem(i);
+		var segment = new svgedit.path.Segment(i, item);
+		segment.path = this;
+		this.segs.push(segment);
+	}	
+	
+	var segs = this.segs;
+	var start_i = null;
+
+	for(var i=0; i < len; i++) {
+		var seg = segs[i]; 
+		var next_seg = (i+1) >= len ? null : segs[i+1];
+		var prev_seg = (i-1) < 0 ? null : segs[i-1];
+		
+		if(seg.type === 2) {
+			if(prev_seg && prev_seg.type !== 1) {
+				// New sub-path, last one is open,
+				// so add a grip to last sub-path's first point
+				var start_seg = segs[start_i];
+				start_seg.next = segs[start_i+1];
+				start_seg.next.prev = start_seg;
+				start_seg.addGrip();
+			}
+			// Remember that this is a starter seg
+			start_i = i;
+		} else if(next_seg && next_seg.type === 1) {
+			// This is the last real segment of a closed sub-path
+			// Next is first seg after "M"
+			seg.next = segs[start_i+1];
+			
+			// First seg after "M"'s prev is this
+			seg.next.prev = seg;
+			seg.mate = segs[start_i];
+			seg.addGrip();
+			if(this.first_seg == null) {
+				this.first_seg = seg;
+			}
+		} else if(!next_seg) {
+			if(seg.type !== 1) {
+				// Last seg, doesn't close so add a grip
+				// to last sub-path's first point
+				var start_seg = segs[start_i];
+				start_seg.next = segs[start_i+1];
+				start_seg.next.prev = start_seg;
+				start_seg.addGrip();
+				seg.addGrip();
+
+				if(!this.first_seg) {
+					// Open path, so set first as real first and add grip
+					this.first_seg = segs[start_i];
+				}
+			}
+		} else if(seg.type !== 1){
+			// Regular segment, so add grip and its "next"
+			seg.addGrip();
+			
+			// Don't set its "next" if it's an "M"
+			if(next_seg && next_seg.type !== 2) {
+				seg.next = next_seg;
+				seg.next.prev = seg;
+			}
+		}
+	}
+	return this;
+};
+
+svgedit.path.Path.prototype.eachSeg = function(fn) {
+	var len = this.segs.length
+	for(var i=0; i < len; i++) {
+		var ret = fn.call(this.segs[i], i);
+		if(ret === false) break;
+	}
+};
+
+svgedit.path.Path.prototype.addSeg = function(index) {
+	// Adds a new segment
+	var seg = this.segs[index];
+	if(!seg.prev) return;
+
+	var prev = seg.prev;
+	var newseg;
+	switch(seg.item.pathSegType) {
+	case 4:
+		var new_x = (seg.item.x + prev.item.x) / 2;
+		var new_y = (seg.item.y + prev.item.y) / 2;
+		newseg = this.elem.createSVGPathSegLinetoAbs(new_x, new_y);
+		break;
+	case 6: //make it a curved segment to preserve the shape (WRS)
+		// http://en.wikipedia.org/wiki/De_Casteljau%27s_algorithm#Geometric_interpretation
+		var p0_x = (prev.item.x + seg.item.x1)/2;
+		var p1_x = (seg.item.x1 + seg.item.x2)/2;
+		var p2_x = (seg.item.x2 + seg.item.x)/2;
+		var p01_x = (p0_x + p1_x)/2;
+		var p12_x = (p1_x + p2_x)/2;
+		var new_x = (p01_x + p12_x)/2;
+		var p0_y = (prev.item.y + seg.item.y1)/2;
+		var p1_y = (seg.item.y1 + seg.item.y2)/2;
+		var p2_y = (seg.item.y2 + seg.item.y)/2;
+		var p01_y = (p0_y + p1_y)/2;
+		var p12_y = (p1_y + p2_y)/2;
+		var new_y = (p01_y + p12_y)/2;
+		newseg = this.elem.createSVGPathSegCurvetoCubicAbs(new_x,new_y, p0_x,p0_y, p01_x,p01_y);
+		var pts = [seg.item.x,seg.item.y,p12_x,p12_y,p2_x,p2_y];
+		svgedit.path.replacePathSeg(seg.type,index,pts);
+		break;
+	}
+
+	svgedit.path.insertItemBefore(this.elem, newseg, index);
+};
+
+svgedit.path.Path.prototype.deleteSeg = function(index) {
+	var seg = this.segs[index];
+	var list = this.elem.pathSegList;
+	
+	seg.show(false);
+	var next = seg.next;
+	if(seg.mate) {
+		// Make the next point be the "M" point
+		var pt = [next.item.x, next.item.y];
+		svgedit.path.replacePathSeg(2, next.index, pt);
+		
+		// Reposition last node
+		svgedit.path.replacePathSeg(4, seg.index, pt);
+		
+		list.removeItem(seg.mate.index);
+	} else if(!seg.prev) {
+		// First node of open path, make next point the M
+		var item = seg.item;
+		var pt = [next.item.x, next.item.y];
+		svgedit.path.replacePathSeg(2, seg.next.index, pt);
+		list.removeItem(index);
+		
+	} else {
+		list.removeItem(index);
+	}
+};
+
+svgedit.path.Path.prototype.subpathIsClosed = function(index) {
+	var closed = false;
+	// Check if subpath is already open
+	svgedit.path.path.eachSeg(function(i) {
+		if(i <= index) return true;
+		if(this.type === 2) {
+			// Found M first, so open
+			return false;
+		} else if(this.type === 1) {
+			// Found Z first, so closed
+			closed = true;
+			return false;
+		}
+	});
+	
+	return closed;
+};
+
+svgedit.path.Path.prototype.removePtFromSelection = function(index) {
+	var pos = this.selected_pts.indexOf(index);
+	if(pos == -1) {
+		return;
+	} 
+	this.segs[index].select(false);
+	this.selected_pts.splice(pos, 1);
+};
+
+svgedit.path.Path.prototype.clearSelection = function() {
+	this.eachSeg(function(i) {
+		// 'this' is the segment here
+		this.select(false);
+	});
+	this.selected_pts = [];
+};
+
+svgedit.path.Path.prototype.storeD = function() {
+	this.last_d = this.elem.getAttribute('d');
+};
+
+svgedit.path.Path.prototype.show = function(y) {
+	// Shows this path's segment grips
+	this.eachSeg(function() {
+		// 'this' is the segment here
+		this.show(y);
+	});
+	if(y) {
+		this.selectPt(this.first_seg.index);
+	}
+	return this;
+};
+
+// Move selected points 
+svgedit.path.Path.prototype.movePts = function(d_x, d_y) {
+	var i = this.selected_pts.length;
+	while(i--) {
+		var seg = this.segs[this.selected_pts[i]];
+		seg.move(d_x, d_y);
+	}
+};
+
+svgedit.path.Path.prototype.moveCtrl = function(d_x, d_y) {
+	var seg = this.segs[this.selected_pts[0]];
+	seg.moveCtrl(this.dragctrl, d_x, d_y);
+	if(link_control_pts) {
+		seg.setLinked(this.dragctrl);
+	}
+};
+
+svgedit.path.Path.prototype.setSegType = function(new_type) {
+	this.storeD();
+	var i = this.selected_pts.length;
+	var text;
+	while(i--) {
+		var sel_pt = this.selected_pts[i];
+		
+		// Selected seg
+		var cur = this.segs[sel_pt];
+		var prev = cur.prev;
+		if(!prev) continue;
+		
+		if(!new_type) { // double-click, so just toggle
+			text = "Toggle Path Segment Type";
+
+			// Toggle segment to curve/straight line
+			var old_type = cur.type;
+			
+			new_type = (old_type == 6) ? 4 : 6;
+		} 
+		
+		new_type = new_type-0;
+		
+		var cur_x = cur.item.x;
+		var cur_y = cur.item.y;
+		var prev_x = prev.item.x;
+		var prev_y = prev.item.y;
+		var points;
+		switch ( new_type ) {
+		case 6:
+			if(cur.olditem) {
+				var old = cur.olditem;
+				points = [cur_x,cur_y, old.x1,old.y1, old.x2,old.y2];
+			} else {
+				var diff_x = cur_x - prev_x;
+				var diff_y = cur_y - prev_y;
+				// get control points from straight line segment
+				/*
+				var ct1_x = (prev_x + (diff_y/2));
+				var ct1_y = (prev_y - (diff_x/2));
+				var ct2_x = (cur_x + (diff_y/2));
+				var ct2_y = (cur_y - (diff_x/2));
+				*/
+				//create control points on the line to preserve the shape (WRS)
+				var ct1_x = (prev_x + (diff_x/3));
+				var ct1_y = (prev_y + (diff_y/3));
+				var ct2_x = (cur_x - (diff_x/3));
+				var ct2_y = (cur_y - (diff_y/3));
+				points = [cur_x,cur_y, ct1_x,ct1_y, ct2_x,ct2_y];
+			}
+			break;
+		case 4:
+			points = [cur_x,cur_y];
+			
+			// Store original prevve segment nums
+			cur.olditem = cur.item;
+			break;
+		}
+		
+		cur.setType(new_type, points);
+	}
+	svgedit.path.path.endChanges(text);
+};
+
+svgedit.path.Path.prototype.selectPt = function(pt, ctrl_num) {
+	this.clearSelection();
+	if(pt == null) {
+		this.eachSeg(function(i) {
+			// 'this' is the segment here.
+			if(this.prev) {
+				pt = i;
+			}
+		});
+	}
+	this.addPtsToSelection(pt);
+	if(ctrl_num) {
+		this.dragctrl = ctrl_num;
+		
+		if(link_control_pts) {
+			this.segs[pt].setLinked(ctrl_num);
+		}
+	}
+};
+
+// Update position of all points
+svgedit.path.Path.prototype.update = function() {
+	var elem = this.elem;
+	if(svgedit.utilities.getRotationAngle(elem)) {
+		this.matrix = svgedit.math.getMatrix(elem);
+		this.imatrix = this.matrix.inverse();
+	} else {
+		this.matrix = null;
+		this.imatrix = null;
+	}
+
+	this.eachSeg(function(i) {
+		this.item = elem.pathSegList.getItem(i);
+		this.update();
+	});
+
+	return this;
+};
+
+svgedit.path.getPath_ = function(elem) {
+	var p = pathData[elem.id];
+	if(!p) p = pathData[elem.id] = new svgedit.path.Path(elem);
+	return p;
+};
+
+svgedit.path.removePath_ = function(id) {
+	if(id in pathData) delete pathData[id];
+};
+
+var getRotVals = function(x, y) {
+	dx = x - oldcx;
+	dy = y - oldcy;
+	
+	// rotate the point around the old center
+	r = Math.sqrt(dx*dx + dy*dy);
+	theta = Math.atan2(dy,dx) + angle;
+	dx = r * Math.cos(theta) + oldcx;
+	dy = r * Math.sin(theta) + oldcy;
+	
+	// dx,dy should now hold the actual coordinates of each
+	// point after being rotated
+
+	// now we want to rotate them around the new center in the reverse direction
+	dx -= newcx;
+	dy -= newcy;
+	
+	r = Math.sqrt(dx*dx + dy*dy);
+	theta = Math.atan2(dy,dx) - angle;
+	
+	return {'x':(r * Math.cos(theta) + newcx)/1,
+		'y':(r * Math.sin(theta) + newcy)/1};
+};
+
+// If the path was rotated, we must now pay the piper:
+// Every path point must be rotated into the rotated coordinate system of 
+// its old center, then determine the new center, then rotate it back
+// This is because we want the path to remember its rotation
+
+// TODO: This is still using ye olde transform methods, can probably
+// be optimized or even taken care of by recalculateDimensions
+svgedit.path.recalcRotatedPath = function() {
+	var current_path = svgedit.path.path.elem;
+	var angle = svgedit.utilities.getRotationAngle(current_path, true);
+	if(!angle) return;
+//	selectedBBoxes[0] = svgedit.path.path.oldbbox;
+	var box = svgedit.utilities.getBBox(current_path),
+		oldbox = svgedit.path.path.oldbbox,//selectedBBoxes[0],
+		oldcx = oldbox.x + oldbox.width/2,
+		oldcy = oldbox.y + oldbox.height/2,
+		newcx = box.x + box.width/2,
+		newcy = box.y + box.height/2,
+	
+	// un-rotate the new center to the proper position
+		dx = newcx - oldcx,
+		dy = newcy - oldcy,
+		r = Math.sqrt(dx*dx + dy*dy),
+		theta = Math.atan2(dy,dx) + angle;
+		
+	newcx = r * Math.cos(theta) + oldcx;
+	newcy = r * Math.sin(theta) + oldcy;
+	
+	var list = current_path.pathSegList,
+		i = list.numberOfItems;
+	while (i) {
+		i -= 1;
+		var seg = list.getItem(i),
+			type = seg.pathSegType;
+		if(type == 1) continue;
+		
+		var rvals = getRotVals(seg.x,seg.y),
+			points = [rvals.x, rvals.y];
+		if(seg.x1 != null && seg.x2 != null) {
+			c_vals1 = getRotVals(seg.x1, seg.y1);
+			c_vals2 = getRotVals(seg.x2, seg.y2);
+			points.splice(points.length, 0, c_vals1.x , c_vals1.y, c_vals2.x, c_vals2.y);
+		}
+		svgedit.path.replacePathSeg(type, i, points);
+	} // loop for each point
+
+	box = svgedit.utilities.getBBox(current_path);						
+//	selectedBBoxes[0].x = box.x; selectedBBoxes[0].y = box.y;
+//	selectedBBoxes[0].width = box.width; selectedBBoxes[0].height = box.height;
+	
+	// now we must set the new transform to be rotated around the new center
+	var R_nc = svgroot.createSVGTransform(),
+		tlist = svgedit.transformlist.getTransformList(current_path);
+	R_nc.setRotate((angle * 180.0 / Math.PI), newcx, newcy);
+	tlist.replaceItem(R_nc,0);
+};
+
+// ====================================
+// Public API starts here
+
+svgedit.path.clearData =  function() {
+	pathData = {};
+};
+
+})();

+ 272 - 0
main/inc/lib/svg-edit/sanitize.js

@@ -0,0 +1,272 @@
+/**
+ * Package: svgedit.sanitize
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Alexis Deveria
+ * Copyright(c) 2010 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) browser.js
+// 2) svgutils.js
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.sanitize) {
+	svgedit.sanitize = {};
+}
+
+// Namespace constants
+var svgns = "http://www.w3.org/2000/svg",
+	xlinkns = "http://www.w3.org/1999/xlink",
+	xmlns = "http://www.w3.org/XML/1998/namespace",
+	xmlnsns = "http://www.w3.org/2000/xmlns/", // see http://www.w3.org/TR/REC-xml-names/#xmlReserved
+	se_ns = "http://svg-edit.googlecode.com",
+	htmlns = "http://www.w3.org/1999/xhtml",
+	mathns = "http://www.w3.org/1998/Math/MathML";
+
+// map namespace URIs to prefixes
+var nsMap_ = {};
+nsMap_[xlinkns] = 'xlink';
+nsMap_[xmlns] = 'xml';
+nsMap_[xmlnsns] = 'xmlns';
+nsMap_[se_ns] = 'se';
+nsMap_[htmlns] = 'xhtml';
+nsMap_[mathns] = 'mathml';
+
+// map prefixes to namespace URIs
+var nsRevMap_ = {};
+$.each(nsMap_, function(key,value){
+	nsRevMap_[value] = key;
+});
+
+// this defines which elements and attributes that we support
+var svgWhiteList_ = {
+	// SVG Elements
+	"a": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "xlink:href", "xlink:title"],
+	"circle": ["class", "clip-path", "clip-rule", "cx", "cy", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "r", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
+	"clipPath": ["class", "clipPathUnits", "id"],
+	"defs": [],
+	"desc": [],
+	"ellipse": ["class", "clip-path", "clip-rule", "cx", "cy", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
+	"feGaussianBlur": ["class", "color-interpolation-filters", "id", "requiredFeatures", "stdDeviation"],
+	"filter": ["class", "color-interpolation-filters", "filterRes", "filterUnits", "height", "id", "primitiveUnits", "requiredFeatures", "width", "x", "xlink:href", "y"],
+	"foreignObject": ["class", "font-size", "height", "id", "opacity", "requiredFeatures", "style", "transform", "width", "x", "y"],
+	"g": ["class", "clip-path", "clip-rule", "id", "display", "fill", "fill-opacity", "fill-rule", "filter", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "font-family", "font-size", "font-style", "font-weight", "text-anchor"],
+	"image": ["class", "clip-path", "clip-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "style", "systemLanguage", "transform", "width", "x", "xlink:href", "xlink:title", "y"],
+	"line": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "id", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "x1", "x2", "y1", "y2"],
+	"linearGradient": ["class", "id", "gradientTransform", "gradientUnits", "requiredFeatures", "spreadMethod", "systemLanguage", "x1", "x2", "xlink:href", "y1", "y2"],
+	"marker": ["id", "class", "markerHeight", "markerUnits", "markerWidth", "orient", "preserveAspectRatio", "refX", "refY", "systemLanguage", "viewBox"],
+	"mask": ["class", "height", "id", "maskContentUnits", "maskUnits", "width", "x", "y"],
+	"metadata": ["class", "id"],
+	"path": ["class", "clip-path", "clip-rule", "d", "fill", "fill-opacity", "fill-rule", "filter", "id", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
+	"pattern": ["class", "height", "id", "patternContentUnits", "patternTransform", "patternUnits", "requiredFeatures", "style", "systemLanguage", "viewBox", "width", "x", "xlink:href", "y"],
+	"polygon": ["class", "clip-path", "clip-rule", "id", "fill", "fill-opacity", "fill-rule", "filter", "id", "class", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "points", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
+	"polyline": ["class", "clip-path", "clip-rule", "id", "fill", "fill-opacity", "fill-rule", "filter", "marker-end", "marker-mid", "marker-start", "mask", "opacity", "points", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform"],
+	"radialGradient": ["class", "cx", "cy", "fx", "fy", "gradientTransform", "gradientUnits", "id", "r", "requiredFeatures", "spreadMethod", "systemLanguage", "xlink:href"],
+	"rect": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "width", "x", "y"],
+	"stop": ["class", "id", "offset", "requiredFeatures", "stop-color", "stop-opacity", "style", "systemLanguage"],
+	"svg": ["class", "clip-path", "clip-rule", "filter", "id", "height", "mask", "preserveAspectRatio", "requiredFeatures", "style", "systemLanguage", "viewBox", "width", "x", "xmlns", "xmlns:se", "xmlns:xlink", "y"],
+	"switch": ["class", "id", "requiredFeatures", "systemLanguage"],
+	"symbol": ["class", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "opacity", "preserveAspectRatio", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "viewBox"],
+	"text": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "text-anchor", "transform", "x", "xml:space", "y"],
+	"textPath": ["class", "id", "method", "requiredFeatures", "spacing", "startOffset", "style", "systemLanguage", "transform", "xlink:href"],
+	"title": [],
+	"tspan": ["class", "clip-path", "clip-rule", "dx", "dy", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "mask", "opacity", "requiredFeatures", "rotate", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "text-anchor", "textLength", "transform", "x", "xml:space", "y"],
+	"use": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "height", "id", "mask", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "transform", "width", "x", "xlink:href", "y"],
+	
+	// MathML Elements
+	"annotation": ["encoding"],
+	"annotation-xml": ["encoding"],
+	"maction": ["actiontype", "other", "selection"],
+	"math": ["class", "id", "display", "xmlns"],
+	"menclose": ["notation"],
+	"merror": [],
+	"mfrac": ["linethickness"],
+	"mi": ["mathvariant"],
+	"mmultiscripts": [],
+	"mn": [],
+	"mo": ["fence", "lspace", "maxsize", "minsize", "rspace", "stretchy"],
+	"mover": [],
+	"mpadded": ["lspace", "width"],
+	"mphantom": [],
+	"mprescripts": [],
+	"mroot": [],
+	"mrow": ["xlink:href", "xlink:type", "xmlns:xlink"],
+	"mspace": ["depth", "height", "width"],
+	"msqrt": [],
+	"mstyle": ["displaystyle", "mathbackground", "mathcolor", "mathvariant", "scriptlevel"],
+	"msub": [],
+	"msubsup": [],
+	"msup": [],
+	"mtable": ["align", "columnalign", "columnlines", "columnspacing", "displaystyle", "equalcolumns", "equalrows", "frame", "rowalign", "rowlines", "rowspacing", "width"],
+	"mtd": ["columnalign", "columnspan", "rowalign", "rowspan"],
+	"mtext": [],
+	"mtr": ["columnalign", "rowalign"],
+	"munder": [],
+	"munderover": [],
+	"none": [],
+	"semantics": []
+};
+
+// Produce a Namespace-aware version of svgWhitelist
+var svgWhiteListNS_ = {};
+$.each(svgWhiteList_, function(elt,atts){
+	var attNS = {};
+	$.each(atts, function(i, att){
+		if (att.indexOf(':') >= 0) {
+			var v = att.split(':');
+			attNS[v[1]] = nsRevMap_[v[0]];
+		} else {
+			attNS[att] = att == 'xmlns' ? xmlnsns : null;
+		}
+	});
+	svgWhiteListNS_[elt] = attNS;
+});
+
+// temporarily expose these
+svgedit.sanitize.getNSMap = function() { return nsMap_; }
+
+// Function: svgedit.sanitize.sanitizeSvg
+// Sanitizes the input node and its children
+// It only keeps what is allowed from our whitelist defined above
+//
+// Parameters:
+// node - The DOM element to be checked, will also check its children
+svgedit.sanitize.sanitizeSvg = function(node) {
+	// we only care about element nodes
+	// automatically return for all comment, etc nodes
+	// for text, we do a whitespace trim
+	if (node.nodeType == 3) {
+		node.nodeValue = node.nodeValue.replace(/^\s+|\s+$/g, "");
+		// Remove empty text nodes
+		if(!node.nodeValue.length) node.parentNode.removeChild(node);
+	}
+	if (node.nodeType != 1) return;
+	var doc = node.ownerDocument;
+	var parent = node.parentNode;
+	// can parent ever be null here?  I think the root node's parent is the document...
+	if (!doc || !parent) return;
+	
+	var allowedAttrs = svgWhiteList_[node.nodeName];
+	var allowedAttrsNS = svgWhiteListNS_[node.nodeName];
+
+	// if this element is allowed
+	if (allowedAttrs != undefined) {
+
+		var se_attrs = [];
+	
+		var i = node.attributes.length;
+		while (i--) {
+			// if the attribute is not in our whitelist, then remove it
+			// could use jQuery's inArray(), but I don't know if that's any better
+			var attr = node.attributes.item(i);
+			var attrName = attr.nodeName;
+			var attrLocalName = attr.localName;
+			var attrNsURI = attr.namespaceURI;
+			// Check that an attribute with the correct localName in the correct namespace is on 
+			// our whitelist or is a namespace declaration for one of our allowed namespaces
+			if (!(allowedAttrsNS.hasOwnProperty(attrLocalName) && attrNsURI == allowedAttrsNS[attrLocalName] && attrNsURI != xmlnsns) &&
+				!(attrNsURI == xmlnsns && nsMap_[attr.nodeValue]) ) 
+			{
+				// TODO(codedread): Programmatically add the se: attributes to the NS-aware whitelist.
+				// Bypassing the whitelist to allow se: prefixes. Is there
+				// a more appropriate way to do this?
+				if(attrName.indexOf('se:') == 0) {
+					se_attrs.push([attrName, attr.nodeValue]);
+				} 
+				node.removeAttributeNS(attrNsURI, attrLocalName);
+			}
+			
+			// Add spaces before negative signs where necessary
+			if(svgedit.browser.isGecko()) {
+				switch ( attrName ) {
+				case "transform":
+				case "gradientTransform":
+				case "patternTransform":
+					var val = attr.nodeValue.replace(/(\d)-/g, "$1 -");
+					node.setAttribute(attrName, val);
+				}
+			}
+			
+			// for the style attribute, rewrite it in terms of XML presentational attributes
+			if (attrName == "style") {
+				var props = attr.nodeValue.split(";"),
+					p = props.length;
+				while(p--) {
+					var nv = props[p].split(":");
+					// now check that this attribute is supported
+					if (allowedAttrs.indexOf(nv[0]) >= 0) {
+						node.setAttribute(nv[0],nv[1]);
+					}
+				}
+				node.removeAttribute('style');
+			}
+		}
+		
+		$.each(se_attrs, function(i, attr) {
+			node.setAttributeNS(se_ns, attr[0], attr[1]);
+		});
+		
+		// for some elements that have a xlink:href, ensure the URI refers to a local element
+		// (but not for links)
+		var href = svgedit.utilities.getHref(node);
+		if(href && 
+		   ["filter", "linearGradient", "pattern",
+		   "radialGradient", "textPath", "use"].indexOf(node.nodeName) >= 0)
+		{
+			// TODO: we simply check if the first character is a #, is this bullet-proof?
+			if (href[0] != "#") {
+				// remove the attribute (but keep the element)
+				svgedit.utilities.setHref(node, "");
+				node.removeAttributeNS(xlinkns, "href");
+			}
+		}
+		
+		// Safari crashes on a <use> without a xlink:href, so we just remove the node here
+		if (node.nodeName == "use" && !svgedit.utilities.getHref(node)) {
+			parent.removeChild(node);
+			return;
+		}
+		// if the element has attributes pointing to a non-local reference, 
+		// need to remove the attribute
+		$.each(["clip-path", "fill", "filter", "marker-end", "marker-mid", "marker-start", "mask", "stroke"],function(i,attr) {
+			var val = node.getAttribute(attr);
+			if (val) {
+				val = svgedit.utilities.getUrlFromAttr(val);
+				// simply check for first character being a '#'
+				if (val && val[0] !== "#") {
+					node.setAttribute(attr, "");
+					node.removeAttribute(attr);
+				}
+			}
+		});
+		
+		// recurse to children
+		i = node.childNodes.length;
+		while (i--) { svgedit.sanitize.sanitizeSvg(node.childNodes.item(i)); }
+	}
+	// else, remove this element
+	else {
+		// remove all children from this node and insert them before this node
+		// FIXME: in the case of animation elements this will hardly ever be correct
+		var children = [];
+		while (node.hasChildNodes()) {
+			children.push(parent.insertBefore(node.firstChild, node));
+		}
+
+		// remove this node from the document altogether
+		parent.removeChild(node);
+
+		// call sanitizeSvg on each of those children
+		var i = children.length;
+		while (i--) { svgedit.sanitize.sanitizeSvg(children[i]); }
+
+	}
+};
+
+})();
+

+ 529 - 0
main/inc/lib/svg-edit/select.js

@@ -0,0 +1,529 @@
+/**
+ * Package: svedit.select
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Alexis Deveria
+ * Copyright(c) 2010 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) jQuery
+// 2) browser.js
+// 3) math.js
+// 4) svgutils.js
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.select) {
+	svgedit.select = {};
+}
+
+var svgFactory_;
+var config_;
+var selectorManager_; // A Singleton
+
+// Class: svgedit.select.Selector
+// Private class for DOM element selection boxes
+// 
+// Parameters:
+// id - integer to internally indentify the selector
+// elem - DOM element associated with this selector
+svgedit.select.Selector = function(id, elem) {
+	// this is the selector's unique number
+	this.id = id;
+
+	// this holds a reference to the element for which this selector is being used
+	this.selectedElement = elem;
+
+	// this is a flag used internally to track whether the selector is being used or not
+	this.locked = true;
+
+	// this holds a reference to the <g> element that holds all visual elements of the selector
+	this.selectorGroup = svgFactory_.createSVGElement({
+		'element': 'g',
+		'attr': {'id': ('selectorGroup' + this.id)}
+	});
+
+	// this holds a reference to the path rect
+	this.selectorRect = this.selectorGroup.appendChild(
+		svgFactory_.createSVGElement({
+			'element': 'path',
+			'attr': {
+				'id': ('selectedBox' + this.id),
+				'fill': 'none',
+				'stroke': '#22C',
+				'stroke-width': '1',
+				'stroke-dasharray': '5,5',
+				// need to specify this so that the rect is not selectable
+				'style': 'pointer-events:none'
+			}
+		})
+	);
+
+	// this holds a reference to the grip coordinates for this selector
+	this.gripCoords = {
+		'nw': null,
+		'n' : null,
+		'ne': null,
+		'e' : null,
+		'se': null,
+		's' : null,
+		'sw': null,
+		'w' : null
+	};
+
+	this.reset(this.selectedElement);
+};
+
+
+// Function: svgedit.select.Selector.reset 
+// Used to reset the id and element that the selector is attached to
+//
+// Parameters: 
+// e - DOM element associated with this selector
+svgedit.select.Selector.prototype.reset = function(e) {
+	this.locked = true;
+	this.selectedElement = e;
+	this.resize();
+	this.selectorGroup.setAttribute('display', 'inline');
+};
+
+// Function: svgedit.select.Selector.updateGripCursors
+// Updates cursors for corner grips on rotation so arrows point the right way
+//
+// Parameters:
+// angle - Float indicating current rotation angle in degrees
+svgedit.select.Selector.prototype.updateGripCursors = function(angle) {
+	var dir_arr = [];
+	var steps = Math.round(angle / 45);
+	if(steps < 0) steps += 8;
+	for (var dir in selectorManager_.selectorGrips) {
+		dir_arr.push(dir);
+	}
+	while(steps > 0) {
+		dir_arr.push(dir_arr.shift());
+		steps--;
+	}
+	var i = 0;
+	for (var dir in selectorManager_.selectorGrips) {
+		selectorManager_.selectorGrips[dir].setAttribute('style', ('cursor:' + dir_arr[i] + '-resize'));
+		i++;
+	};
+};
+
+// Function: svgedit.select.Selector.showGrips
+// Show the resize grips of this selector
+//
+// Parameters:
+// show - boolean indicating whether grips should be shown or not
+svgedit.select.Selector.prototype.showGrips = function(show) {
+	// TODO: use suspendRedraw() here
+	var bShow = show ? 'inline' : 'none';
+	selectorManager_.selectorGripsGroup.setAttribute('display', bShow);
+	var elem = this.selectedElement;
+	this.hasGrips = show;
+	if(elem && show) {
+		this.selectorGroup.appendChild(selectorManager_.selectorGripsGroup);
+		this.updateGripCursors(svgedit.utilities.getRotationAngle(elem));
+	}
+};
+
+// Function: svgedit.select.Selector.resize
+// Updates the selector to match the element's size
+svgedit.select.Selector.prototype.resize = function() {
+	var selectedBox = this.selectorRect,
+		mgr = selectorManager_,
+		selectedGrips = mgr.selectorGrips,
+		selected = this.selectedElement,
+		sw = selected.getAttribute('stroke-width'),
+		current_zoom = svgFactory_.currentZoom();
+	var offset = 1/current_zoom;
+	if (selected.getAttribute('stroke') !== 'none' && !isNaN(sw)) {
+		offset += (sw/2);
+	}
+
+	var tagName = selected.tagName;
+	if (tagName === 'text') {
+		offset += 2/current_zoom;
+	}
+
+	// loop and transform our bounding box until we reach our first rotation
+	var tlist = svgedit.transformlist.getTransformList(selected);
+	var m = svgedit.math.transformListToTransform(tlist).matrix;
+
+	// This should probably be handled somewhere else, but for now
+	// it keeps the selection box correctly positioned when zoomed
+	m.e *= current_zoom;
+	m.f *= current_zoom;
+
+	var bbox = svgedit.utilities.getBBox(selected);
+	if(tagName === 'g' && !$.data(selected, 'gsvg')) {
+		// The bbox for a group does not include stroke vals, so we
+		// get the bbox based on its children. 
+		var stroked_bbox = svgFactory_.getStrokedBBox(selected.childNodes);
+		if(stroked_bbox) {
+			bbox = stroked_bbox;
+		}
+	}
+
+	// apply the transforms
+	var l=bbox.x, t=bbox.y, w=bbox.width, h=bbox.height,
+		bbox = {x:l, y:t, width:w, height:h};
+
+	// we need to handle temporary transforms too
+	// if skewed, get its transformed box, then find its axis-aligned bbox
+	
+	//*
+	offset *= current_zoom;
+	
+	var nbox = svgedit.math.transformBox(l*current_zoom, t*current_zoom, w*current_zoom, h*current_zoom, m),
+		aabox = nbox.aabox,
+		nbax = aabox.x - offset,
+		nbay = aabox.y - offset,
+		nbaw = aabox.width + (offset * 2),
+		nbah = aabox.height + (offset * 2);
+		
+	// now if the shape is rotated, un-rotate it
+	var cx = nbax + nbaw/2,
+		cy = nbay + nbah/2;
+
+	var angle = svgedit.utilities.getRotationAngle(selected);
+	if (angle) {
+		var rot = svgFactory_.svgRoot().createSVGTransform();
+		rot.setRotate(-angle,cx,cy);
+		var rotm = rot.matrix;
+		nbox.tl = svgedit.math.transformPoint(nbox.tl.x,nbox.tl.y,rotm);
+		nbox.tr = svgedit.math.transformPoint(nbox.tr.x,nbox.tr.y,rotm);
+		nbox.bl = svgedit.math.transformPoint(nbox.bl.x,nbox.bl.y,rotm);
+		nbox.br = svgedit.math.transformPoint(nbox.br.x,nbox.br.y,rotm);
+
+		// calculate the axis-aligned bbox
+		var tl = nbox.tl;
+		var minx = tl.x,
+			miny = tl.y,
+			maxx = tl.x,
+			maxy = tl.y;
+
+		var Min = Math.min, Max = Math.max;
+
+		minx = Min(minx, Min(nbox.tr.x, Min(nbox.bl.x, nbox.br.x) ) ) - offset;
+		miny = Min(miny, Min(nbox.tr.y, Min(nbox.bl.y, nbox.br.y) ) ) - offset;
+		maxx = Max(maxx, Max(nbox.tr.x, Max(nbox.bl.x, nbox.br.x) ) ) + offset;
+		maxy = Max(maxy, Max(nbox.tr.y, Max(nbox.bl.y, nbox.br.y) ) ) + offset;
+
+		nbax = minx;
+		nbay = miny;
+		nbaw = (maxx-minx);
+		nbah = (maxy-miny);
+	}
+	var sr_handle = svgFactory_.svgRoot().suspendRedraw(100);
+
+	var dstr = 'M' + nbax + ',' + nbay
+				+ ' L' + (nbax+nbaw) + ',' + nbay
+				+ ' ' + (nbax+nbaw) + ',' + (nbay+nbah)
+				+ ' ' + nbax + ',' + (nbay+nbah) + 'z';
+	selectedBox.setAttribute('d', dstr);
+	
+	var xform = angle ? 'rotate(' + [angle,cx,cy].join(',') + ')' : '';
+	this.selectorGroup.setAttribute('transform', xform);
+
+	// TODO(codedread): Is this if needed?
+//	if(selected === selectedElements[0]) {
+		this.gripCoords = {
+			'nw': [nbax, nbay],
+			'ne': [nbax+nbaw, nbay],
+			'sw': [nbax, nbay+nbah],
+			'se': [nbax+nbaw, nbay+nbah],
+			'n':  [nbax + (nbaw)/2, nbay],
+			'w':	[nbax, nbay + (nbah)/2],
+			'e':	[nbax + nbaw, nbay + (nbah)/2],
+			's':	[nbax + (nbaw)/2, nbay + nbah]
+		};
+
+		for(var dir in this.gripCoords) {
+			var coords = this.gripCoords[dir];
+			selectedGrips[dir].setAttribute('cx', coords[0]);
+			selectedGrips[dir].setAttribute('cy', coords[1]);
+		};
+
+		// we want to go 20 pixels in the negative transformed y direction, ignoring scale
+		mgr.rotateGripConnector.setAttribute('x1', nbax + (nbaw)/2);
+		mgr.rotateGripConnector.setAttribute('y1', nbay);
+		mgr.rotateGripConnector.setAttribute('x2', nbax + (nbaw)/2);
+		mgr.rotateGripConnector.setAttribute('y2', nbay - 20);
+
+		mgr.rotateGrip.setAttribute('cx', nbax + (nbaw)/2); 
+		mgr.rotateGrip.setAttribute('cy', nbay - 20);
+//	}
+
+	svgFactory_.svgRoot().unsuspendRedraw(sr_handle);
+};
+
+
+// Class: svgedit.select.SelectorManager
+svgedit.select.SelectorManager = function() {
+	// this will hold the <g> element that contains all selector rects/grips
+	this.selectorParentGroup = null;
+
+	// this is a special rect that is used for multi-select
+	this.rubberBandBox = null;
+
+	// this will hold objects of type svgedit.select.Selector (see above)
+	this.selectors = [];
+
+	// this holds a map of SVG elements to their Selector object
+	this.selectorMap = {};
+
+	// this holds a reference to the grip elements
+	this.selectorGrips = {
+		'nw': null,
+		'n' :  null,
+		'ne': null,
+		'e' :  null,
+		'se': null,
+		's' :  null,
+		'sw': null,
+		'w' :  null
+	};
+
+	this.selectorGripsGroup = null;
+	this.rotateGripConnector = null;
+	this.rotateGrip = null;
+
+	this.initGroup();
+};
+
+// Function: svgedit.select.SelectorManager.initGroup
+// Resets the parent selector group element
+svgedit.select.SelectorManager.prototype.initGroup = function() {
+	// remove old selector parent group if it existed
+	if (this.selectorParentGroup && this.selectorParentGroup.parentNode) {
+		this.selectorParentGroup.parentNode.removeChild(this.selectorParentGroup);
+	}
+
+	// create parent selector group and add it to svgroot
+	this.selectorParentGroup = svgFactory_.createSVGElement({
+		'element': 'g',
+		'attr': {'id': 'selectorParentGroup'}
+	});
+	this.selectorGripsGroup = svgFactory_.createSVGElement({
+		'element': 'g',
+		'attr': {'display': 'none'}
+	});
+	this.selectorParentGroup.appendChild(this.selectorGripsGroup);
+	svgFactory_.svgRoot().appendChild(this.selectorParentGroup);
+
+	this.selectorMap = {};
+	this.selectors = [];
+	this.rubberBandBox = null;
+
+	// add the corner grips
+	for (var dir in this.selectorGrips) {
+		var grip = svgFactory_.createSVGElement({
+			'element': 'circle',
+			'attr': {
+				'id': ('selectorGrip_resize_' + dir),
+				'fill': '#22C',
+				'r': 4,
+				'style': ('cursor:' + dir + '-resize'),
+				// This expands the mouse-able area of the grips making them
+				// easier to grab with the mouse.
+				// This works in Opera and WebKit, but does not work in Firefox
+				// see https://bugzilla.mozilla.org/show_bug.cgi?id=500174
+				'stroke-width': 2,
+				'pointer-events': 'all'
+			}
+		});
+		
+		$.data(grip, 'dir', dir);
+		$.data(grip, 'type', 'resize');
+		this.selectorGrips[dir] = this.selectorGripsGroup.appendChild(grip);
+	}
+
+	// add rotator elems
+	this.rotateGripConnector = this.selectorGripsGroup.appendChild(
+		svgFactory_.createSVGElement({
+			'element': 'line',
+			'attr': {
+				'id': ('selectorGrip_rotateconnector'),
+				'stroke': '#22C',
+				'stroke-width': '1'
+			}
+		})
+	);
+
+	this.rotateGrip = this.selectorGripsGroup.appendChild(
+		svgFactory_.createSVGElement({
+			'element': 'circle',
+			'attr': {
+				'id': 'selectorGrip_rotate',
+				'fill': 'lime',
+				'r': 4,
+				'stroke': '#22C',
+				'stroke-width': 2,
+				'style': 'cursor:url(' + config_.imgPath + 'rotate.png) 12 12, auto;'
+			}
+		})
+	);
+	$.data(this.rotateGrip, 'type', 'rotate');
+
+	if($('#canvasBackground').length) return;
+
+	var dims = config_.dimensions;
+	var canvasbg = svgFactory_.createSVGElement({
+		'element': 'svg',
+		'attr': {
+			'id': 'canvasBackground',
+			'width': dims[0],
+			'height': dims[1],
+			'x': 0,
+			'y': 0,
+			'overflow': (svgedit.browser.isWebkit() ? 'none' : 'visible'), // Chrome 7 has a problem with this when zooming out
+			'style': 'pointer-events:none'
+		}
+	});
+
+	var rect = svgFactory_.createSVGElement({
+		'element': 'rect',
+		'attr': {
+			'width': '100%',
+			'height': '100%',
+			'x': 0,
+			'y': 0,
+			'stroke-width': 1,
+			'stroke': '#000',
+			'fill': '#FFF',
+			'style': 'pointer-events:none'
+		}
+	});
+
+	// Both Firefox and WebKit are too slow with this filter region (especially at higher
+	// zoom levels) and Opera has at least one bug
+//	if (!svgedit.browser.isOpera()) rect.setAttribute('filter', 'url(#canvashadow)');
+	canvasbg.appendChild(rect);
+	svgFactory_.svgRoot().insertBefore(canvasbg, svgFactory_.svgContent());
+};
+
+// Function: svgedit.select.SelectorManager.requestSelector
+// Returns the selector based on the given element
+//
+// Parameters:
+// elem - DOM element to get the selector for
+svgedit.select.SelectorManager.prototype.requestSelector = function(elem) {
+	if (elem == null) return null;
+	var N = this.selectors.length;
+	// If we've already acquired one for this element, return it.
+	if (typeof(this.selectorMap[elem.id]) == 'object') {
+		this.selectorMap[elem.id].locked = true;
+		return this.selectorMap[elem.id];
+	}
+	for (var i = 0; i < N; ++i) {
+		if (this.selectors[i] && !this.selectors[i].locked) {
+			this.selectors[i].locked = true;
+			this.selectors[i].reset(elem);
+			this.selectorMap[elem.id] = this.selectors[i];
+			return this.selectors[i];
+		}
+	}
+	// if we reached here, no available selectors were found, we create one
+	this.selectors[N] = new svgedit.select.Selector(N, elem);
+	this.selectorParentGroup.appendChild(this.selectors[N].selectorGroup);
+	this.selectorMap[elem.id] = this.selectors[N];
+	return this.selectors[N];
+};
+
+// Function: svgedit.select.SelectorManager.releaseSelector
+// Removes the selector of the given element (hides selection box) 
+//
+// Parameters:
+// elem - DOM element to remove the selector for
+svgedit.select.SelectorManager.prototype.releaseSelector = function(elem) {
+	if (elem == null) return;
+	var N = this.selectors.length,
+		sel = this.selectorMap[elem.id];
+	for (var i = 0; i < N; ++i) {
+		if (this.selectors[i] && this.selectors[i] == sel) {
+			if (sel.locked == false) {
+				// TODO(codedread): Ensure this exists in this module.
+				console.log('WARNING! selector was released but was already unlocked');
+			}
+			delete this.selectorMap[elem.id];
+			sel.locked = false;
+			sel.selectedElement = null;
+			sel.showGrips(false);
+
+			// remove from DOM and store reference in JS but only if it exists in the DOM
+			try {
+				sel.selectorGroup.setAttribute('display', 'none');
+			} catch(e) { }
+
+			break;
+		}
+	}
+};
+
+// Function: svgedit.select.SelectorManager.getRubberBandBox
+// Returns the rubberBandBox DOM element. This is the rectangle drawn by the user for selecting/zooming
+svgedit.select.SelectorManager.prototype.getRubberBandBox = function() {
+	if (!this.rubberBandBox) {
+		this.rubberBandBox = this.selectorParentGroup.appendChild(
+			svgFactory_.createSVGElement({
+				'element': 'rect',
+				'attr': {
+					'id': 'selectorRubberBand',
+					'fill': '#22C',
+					'fill-opacity': 0.15,
+					'stroke': '#22C',
+					'stroke-width': 0.5,
+					'display': 'none',
+					'style': 'pointer-events:none'
+				}
+			})
+		);
+	}
+	return this.rubberBandBox;
+};
+
+
+/**
+ * Interface: svgedit.select.SVGFactory
+ * An object that creates SVG elements for the canvas.
+ *
+ * interface svgedit.select.SVGFactory {
+ *   SVGElement createSVGElement(jsonMap);
+ *   SVGSVGElement svgRoot();
+ *   SVGSVGElement svgContent();
+ *
+ *   Number currentZoom();
+ *   Object getStrokedBBox(Element[]); // TODO(codedread): Remove when getStrokedBBox() has been put into svgutils.js
+ * }
+ */
+
+/**
+ * Function: svgedit.select.init()
+ * Initializes this module.
+ *
+ * Parameters:
+ * config - an object containing configurable parameters (imgPath)
+ * svgFactory - an object implementing the SVGFactory interface (see above).
+ */
+svgedit.select.init = function(config, svgFactory) {
+	config_ = config;
+	svgFactory_ = svgFactory;
+	selectorManager_ = new svgedit.select.SelectorManager();
+};
+
+/**
+ * Function: svgedit.select.getSelectorManager
+ *
+ * Returns:
+ * The SelectorManager instance.
+ */
+svgedit.select.getSelectorManager = function() {
+	return selectorManager_;
+};
+
+})();

ファイルの差分が大きいため隠しています
+ 0 - 0
main/inc/lib/svg-edit/spinbtn/JQuerySpinBtn.min.js


+ 36 - 16
main/inc/lib/svg-edit/svg-editor.css

@@ -1,7 +1,14 @@
 body {
-	background: #D8D8D8;
+	background: #D0D0D0;
 }
 
+#browser-not-supported {
+        font-size: 0.8em;
+        font-family: Verdana, Helvetica, Arial;
+        color: #000000;
+}
+
+
 #svg_editor * {
 	transform-origin: 0 0;
 	-moz-transform-origin: 0 0;
@@ -96,14 +103,23 @@
 }
 
 
-#ruler_x canvas {
+#ruler_x canvas:first-child {
 	margin-left: -16px;
 }
 
+#ruler_x canvas {
+	float: left;
+}
+
 #ruler_y canvas {
 	margin-top: -16px;
 }
 
+#ruler_x > div, 
+#ruler_y > div {
+	overflow: hidden;
+}
+
 
 
 
@@ -154,6 +170,11 @@
 	padding-top: 4px
 }
 
+#svg_editor #linkLabel > svg {
+	height: 20px;
+	padding-top: 4px;
+}
+
 #color_tools .icon_label > * {
 	position: relative;
 	top: 1px;
@@ -214,7 +235,7 @@
 #svg_editor #sidepanel_handle {
 	display: inline-block;
 	position: absolute;
-	background-color: #D8D8D8;
+	background-color: #D0D0D0;
 	font-weight: bold;
 	left: 0px;
 	top: 40%;
@@ -243,7 +264,7 @@
 	padding: 0px;
 	padding-left: 2px;
 	padding-right: 2px;
-	width: 123px;
+	width: 125px;
 	height: 20px;
 	border-right: 1px solid #FFFFFF;
 	border-bottom: 1px solid #FFFFFF;
@@ -397,7 +418,7 @@
 	z-index: 12;
 	background: #E8E8E8;
 	position: relative;
-	width: 200px;
+	width: 230px;
 	padding: 5px;
 	-moz-box-shadow: #555 1px 1px 4px;
 	-webkit-box-shadow: #555 1px 1px 4px;
@@ -464,9 +485,7 @@
 	top: 2px;
 	height: 72px;
 	border-bottom: none;
-	/* Ideally this should be auto (makes scrollbar if needed), but currently hides 
-	the .dropdown lists.
-/*	overflow: auto;*/
+	overflow: auto;
 }
 
 #svg_editor #tools_left {
@@ -476,7 +495,7 @@
 	top: 75px;
 	left: 0;
 	padding-left: 2px;
-	background: #D8D8D8; /* Needed so flyout icons don't appear on the left */
+	background: #D0D0D0; /* Needed so flyout icons don't appear on the left */
 	z-index: 4;
 }
 
@@ -497,7 +516,7 @@
 	stroke: none;
 }
 
-#workarea.wireframe #canvasBackground rect {
+#workarea.wireframe #canvasBackground > rect {
 	fill: #FFF !important;
 }
 
@@ -511,9 +530,10 @@
 
 #cur_context_panel {
 	position: absolute;
-	top: 70px;
-	left: -10px;
-	right: -2px;
+	top: 77px;
+	left: 40px;
+	right: 0;
+	line-height: 22px;
 	overflow: auto;
 	border: 1px solid #777;
 	border-bottom: none;
@@ -650,7 +670,7 @@ span.zoom_tool {
 	background: #FFC;
 }
 
-#font_family_dropdown li {
+#font_family_dropdown-list li {
 	font-size: 1.4em;
 }
 
@@ -766,7 +786,7 @@ span.zoom_tool {
 	display: none;
 	background: #E8E8E8;
 	height: 350px;
-	z-index: 4;
+	z-index: 5;
 }
 
 #svg_editor .tools_flyout {
@@ -893,7 +913,7 @@ span.zoom_tool {
 
 #tools_top .dropdown .icon_label {
 	border: 1px solid transparent;
-	margin-top: 3px;
+/*	margin-top: 3px;*/
 	height: auto;
 }
 

ファイルの差分が大きいため隠しています
+ 334 - 183
main/inc/lib/svg-edit/svg-editor.js


+ 89 - 52
main/inc/lib/svg-edit/svg-editor.php

@@ -20,39 +20,48 @@ if(!isset($_SESSION['draw_dir'])){
 <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
 <meta http-equiv="X-UA-Compatible" content="chrome=1"/>
 <link rel="icon" type="image/png" href="images/logo.png"/>
-<link rel="stylesheet" href="jgraduate/css/jPicker-1.0.12.css" type="text/css"/>
+<link rel="stylesheet" href="jgraduate/css/jPicker.css" type="text/css"/>
 <link rel="stylesheet" href="jgraduate/css/jgraduate.css" type="text/css"/>
 <link rel="stylesheet" href="svg-editor.css" type="text/css"/>
 <link rel="stylesheet" href="spinbtn/JQuerySpinBtn.css" type="text/css"/>
-<!-- Development version of script tags: --><!--Chamilo TODO: compress sgv-editor.js and change all calls by release version -->
-<script type="text/javascript" src="jquery.js"></script><!--chamilo enabled -->
-<!--<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script> --><!--chamilo disabled -->
-<script type="text/javascript" src="js-hotkeys/jquery.hotkeys.min.js"></script>
-<script type="text/javascript" src="jgraduate/jquery.jgraduate.js"></script>
-<script type="text/javascript" src="svgicons/jquery.svgicons.js"></script>
-<script type="text/javascript" src="jquerybbq/jquery.bbq.min.js"></script>
-<script type="text/javascript" src="spinbtn/JQuerySpinBtn.js"></script>
-<script type="text/javascript" src="contextmenu/jquery.contextMenu.js"></script>
-<script type="text/javascript" src="svgcanvas.js"></script>
-<script type="text/javascript" src="svg-editor.js"></script>
-<script type="text/javascript" src="locale/locale.js"></script>
-<!-- you can load extensions here -->
-<!-- <script type="text/javascript" src="extensions/ext-helloworld.js"></script> -->
 
-<!-- Release version of script tags: >
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="js-hotkeys/jquery.hotkeys-0.7.9.js"></script>
+<!--{if jquery_release}>
+  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script>
+<!{else}-->
+  <script type="text/javascript" src="jquery.js"></script>
+<!--{endif}-->
+<!--Chamilo TODO: compress sgv-editor.js and change all calls by release version -->
+<script type="text/javascript" src="js-hotkeys/jquery.hotkeys.min.js"></script>
 <script type="text/javascript" src="jquerybbq/jquery.bbq.min.js"></script>
+<script type="text/javascript" src="svgicons/jquery.svgicons.js"></script>
 <script type="text/javascript" src="jgraduate/jquery.jgraduate.min.js"></script>
 <script type="text/javascript" src="spinbtn/JQuerySpinBtn.min.js"></script>
-<script type="text/javascript" src="svgcanvas.min.js"></script>
-<script type="text/javascript" src="svg-editor.min.js"></script>
-script type="text/javascript" src="locale/locale.min.js"></script-->
+<script type="text/javascript" src="contextmenu/jquery.contextMenu.min.js"></script>
+
+<!--{if svg_edit_release}>
+  <script type="text/javascript" src="svgedit.compiled.js"></script>
+<!{else}-->
+  <script type="text/javascript" src="browser.js"></script>
+  <script type="text/javascript" src="svgtransformlist.js"></script>
+  <script type="text/javascript" src="math.js"></script>
+  <script type="text/javascript" src="units.js"></script>
+  <script type="text/javascript" src="svgutils.js"></script>
+  <script type="text/javascript" src="sanitize.js"></script>
+  <script type="text/javascript" src="history.js"></script>
+  <script type="text/javascript" src="select.js"></script>
+  <script type="text/javascript" src="draw.js"></script>
+  <script type="text/javascript" src="path.js"></script>
+  <script type="text/javascript" src="svgcanvas.js"></script>
+  <script type="text/javascript" src="svg-editor.js"></script>
+  <script type="text/javascript" src="locale/locale.js"></script>
+<!--{endif}-->
 
+<!-- you can load extensions here -->
+<!-- <script type="text/javascript" src="extensions/ext-helloworld.js"></script> -->
 
 <!-- always minified scripts -->
 <script type="text/javascript" src="jquery-ui/jquery-ui-1.8.custom.min.js"></script>
-<script type="text/javascript" src="jgraduate/jpicker-1.0.12.min.js"></script>
+<script type="text/javascript" src="jgraduate/jpicker.min.js"></script>
 
 <!-- feeds -->
 <link rel="alternate" type="application/atom+xml" title="SVG-edit General Discussion" href="http://groups.google.com/group/svg-edit/feed/atom_v1_0_msgs.xml" />
@@ -67,10 +76,14 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 <div id="rulers">
 	<div id="ruler_corner"></div>
 	<div id="ruler_x">
-		<canvas height="15"></canvas>
+		<div>
+			<canvas height="15"></canvas>
+		</div>
 	</div>
 	<div id="ruler_y">
-		<canvas width="15"></canvas>
+		<div>
+			<canvas width="15"></canvas>
+		</div>
 	</div>
 </div>
 
@@ -120,14 +133,14 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 		<ul>
 			<li id="tool_clear">
 				<div></div>
-				New Image [N]
+				New Image (N)
 			</li>
 			
 			<li id="tool_open" style="display:none;">
 				<div id="fileinputs">
 					<div></div>
 				</div>
-				Open Image [O]
+				Open Image
 			</li>
 			
 			<li id="tool_import" style="display:none;">
@@ -139,7 +152,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 			
 			<li id="tool_save">
 				<div></div>
-				Save Image [S]
+				Save Image (S)
 			</li>
 			
 			<li id="tool_export">
@@ -149,12 +162,12 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 			
 			<li id="tool_docprops">
 				<div></div>
-				Document Properties [P]
+				Document Properties (D)
 			</li>
 		</ul>
 
 		<p>
-			<!--<a href="http://svg-edit.googlecode.com/" target="_blank">
+			<!-- <a href="http://svg-edit.googlecode.com/" target="_blank">
 				SVG-edit Home Page
 			</a> --><!-- Comment for Chamilo -->
 		</p>
@@ -187,13 +200,14 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 	<div id="selected_panel">
 		<div class="toolset">
 			<div class="tool_sep"></div>
-			<div class="push_button" id="tool_clone" title="Clone Element [C]"></div>
+			<div class="push_button" id="tool_clone" title="Duplicate Element [D]"></div>
 			<div class="push_button" id="tool_delete" title="Delete Element [Delete/Backspace]"></div>
 			<div class="tool_sep"></div>
 			<div class="push_button" id="tool_move_top" title="Bring to Front [ Ctrl+Shift+] ]"></div>
 			<div class="push_button" id="tool_move_bottom" title="Send to Back [ Ctrl+Shift+[ ]"></div>
 			<div class="push_button" id="tool_topath" title="Convert to Path"></div>
 			<div class="push_button" id="tool_reorient" title="Reorient path"></div>
+			<div class="push_button" id="tool_make_link" title="Make (hyper)link"></div>
 			<div class="tool_sep"></div>
 			<label id="idLabel" title="Identify the element">
 				<span>id:</span>
@@ -233,7 +247,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 			</label>
 		</div>
 	</div>
-
+	
 	<!-- Buttons when multiple elements are selected -->
 	<div id="multiselected_panel">
 		<div class="tool_sep"></div>
@@ -241,6 +255,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 		<div class="push_button" id="tool_delete_multi" title="Delete Selected Elements [Delete/Backspace]"></div>
 		<div class="tool_sep"></div>
 		<div class="push_button" id="tool_group" title="Group Elements [G]"></div>
+		<div class="push_button" id="tool_make_link_multi" title="Make (hyper)link"></div>
 		<div class="push_button" id="tool_alignleft" title="Align Left"></div>
 		<div class="push_button" id="tool_aligncenter" title="Align Center"></div>
 		<div class="push_button" id="tool_alignright" title="Align Right"></div>
@@ -403,10 +418,17 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 		<div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>
 	</div>
 
+	<!-- For anchor elements -->
+	<div id="a_panel">
+		<label id="tool_link_url" title="Set link URL (leave empty to remove)">
+			<span id="linkLabel" class="icon_label"></span>
+			<input id="link_url" type="text" size="35"/>
+		</label>	
+	</div>
 	
 	<div id="path_node_panel">
 		<div class="tool_sep"></div>
-		<div class="tool_button" id="tool_node_link" title="Link Control Points"></div>
+		<div class="tool_button push_button_pressed" id="tool_node_link" title="Link Control Points"></div>
 		<div class="tool_sep"></div>
 		<label id="tool_node_x">x:
 			<input id="path_node_x" class="attr_changer" title="Change node's x coordinate" size="3" data-attr="x"/>
@@ -424,24 +446,25 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 		<div class="tool_button" id="tool_openclose_path" title="Open/close sub-path"></div>
 		<div class="tool_button" id="tool_add_subpath" title="Add sub-path"></div>
 	</div>
+</div> <!-- tools_top -->
 	<div id="cur_context_panel">
 		
 	</div>
-</div> <!-- tools_top -->
+
 
 <div id="tools_left" class="tools_panel">
-	<div class="tool_button" id="tool_select" title="Select Tool [1]"></div>
-	<div class="tool_button" id="tool_fhpath" title="Pencil Tool [2]"></div>
-	<div class="tool_button" id="tool_line" title="Line Tool [3]"></div>
-	<div class="tool_button flyout_current" id="tools_rect_show" title="Square/Rect Tool [4/Shift+4]">
+	<div class="tool_button" id="tool_select" title="Select Tool"></div>
+	<div class="tool_button" id="tool_fhpath" title="Pencil Tool"></div>
+	<div class="tool_button" id="tool_line" title="Line Tool"></div>
+	<div class="tool_button flyout_current" id="tools_rect_show" title="Square/Rect Tool">
 		<div class="flyout_arrow_horiz"></div>
 	</div>
-	<div class="tool_button flyout_current" id="tools_ellipse_show" title="Ellipse/Circle Tool [5/Shift+5]">
+	<div class="tool_button flyout_current" id="tools_ellipse_show" title="Ellipse/Circle Tool">
 		<div class="flyout_arrow_horiz"></div>
 	</div>
-	<div class="tool_button" id="tool_path" title="Path Tool [7]"></div>
-	<div class="tool_button" id="tool_text" title="Text Tool [6]"></div>
-	<div class="tool_button" id="tool_image" title="Image Tool [8]"></div>
+	<div class="tool_button" id="tool_path" title="Path Tool"></div>
+	<div class="tool_button" id="tool_text" title="Text Tool"></div>
+	<div class="tool_button" id="tool_image" title="Image Tool"></div>
 	<div class="tool_button" id="tool_zoom" title="Zoom Tool [Ctrl+Up/Down]"></div>
 	
 	<div style="display: none">
@@ -558,10 +581,10 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 	<div id="tools_bottom_3">
 		<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
 	</div>
-	<!--<div id="copyright"><span id="copyrightLabel">Powered by</span> <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.6-alpha</a></div> --><!-- Comment for Chamilo -->
+	<!-- <div id="copyright"><span id="copyrightLabel">Powered by</span> <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.6-alpha</a></div> --><!-- Comment for Chamilo -->
 </div>
 
-<div id="option_lists">
+<div id="option_lists" class="dropdown">
 	<ul id="linejoin_opts">
 		<li class="tool_button current" id="linejoin_miter" title="Linejoin: Miter"></li>
 		<li class="tool_button" id="linejoin_round" title="Linejoin: Round"></li>
@@ -666,22 +689,22 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 			<legend id="svginfo_editor_prefs">Editor Preferences</legend>
 
 			<label><span id="svginfo_lang">Language:</span>
-				<!-- Source: http://en.wikipedia.org/wiki/Language_names --><!-- Add for Chamilo bulgarian, (Български), italian (Italiano), hungarian (Magyar), indonesian (Bahasa Indonesia) -->
+				<!-- Source: http://en.wikipedia.org/wiki/Language_names --><!-- Add for Chamilo bulgarian, (Български), hungarian (Magyar), indonesian (Bahasa Indonesia), italian (Italiano), latvian (Latviešu) -->
 				<select id="lang_select">
-				  <option id="lang_ar" value="ar">العربية</option>
-                  
-                  	<option id="lang_id" value="id">Bahasa Indonesia</option>
-                  	<option id="lang_bg" value="bg">Български</option>
-            		<option id="lang_cs" value="cs">Čeština</option>
+				  	<option id="lang_ar" value="ar">العربية</option>
+                    <option id="lang_bg" value="bg">Български</option>
+					<option id="lang_cs" value="cs">Čeština</option>
 					<option id="lang_de" value="de">Deutsch</option>
 					<option id="lang_en" value="en" selected="selected">English</option>
-					<option id="lang_es" value="es">Español</option>                    
+					<option id="lang_es" value="es">Español</option>
 					<option id="lang_fa" value="fa">فارسی</option>
 					<option id="lang_fr" value="fr">Français</option>
 					<option id="lang_fy" value="fy">Frysk</option>
 					<option id="lang_hi" value="hi">&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;, &#2361;&#2367;&#2306;&#2342;&#2368;</option>
+                    <option id="lang_id" value="id">Bahasa Indonesia</option>
 					<option id="lang_it" value="it">Italiano</option>
-                    <option id="lang_ja" value="ja">日本語</option>
+					<option id="lang_ja" value="ja">日本語</option>
+                    <option id="lang_lv" value="lv">Latviešu</option>
 					<option id="lang_nl" value="nl">Nederlands</option>
                     <option id="lang_hu" value="hu">Magyar</option>
 					<option id="lang_pt-BR" value="pt-BR">Português (BR)</option>
@@ -720,16 +743,30 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
 				<label>
 					<span id="svginfo_unit">Base Unit:</span>
 					<select id="base_unit">
-						<option value="px" selected>Pixels</option>
+						<option value="px">Pixels</option>
 						<option value="cm">Centimeters</option>
 						<option value="mm">Millimeters</option>
+						<option value="in">Inches</option>
 						<option value="pt">Points</option>
 						<option value="pc">Picas</option>
 						<option value="em">Ems</option>
 						<option value="ex">Exs</option>
 					</select>
 				</label>
+				<!-- Should this be an export option instead? -->
+<!-- 
+				<span id="svginfo_unit_system">Unit System:</span>
+				<label>
+					<input type="radio" name="unit_system" value="single" checked="checked"/>
+					<span id="svginfo_single_type_unit">Single type unit</span>
+					<small id="svginfo_single_type_unit_sub">CSS unit type is set on root element. If a different unit type is entered in a text field, it is converted back to user units on export.</small>
+				</label>
+				<label>
+					<input type="radio" name="unit_system" value="multi"/>
+					<span id="svginfo_multi_units">Multiple CSS units</span> 
+					<small id="svginfo_single_type_unit_sub">Attributes can be given different CSS units, which may lead to inconsistant results among viewers.</small>
 				</label>
+ -->
 			</fieldset>
 	
 		</fieldset>

ファイルの差分が大きいため隠しています
+ 168 - 1812
main/inc/lib/svg-edit/svgcanvas.js


+ 38 - 11
main/inc/lib/svg-edit/svgicons/jquery.svgicons.js

@@ -357,25 +357,52 @@ $(function() {
 			var defs = svg_el.find('defs');
 			if(!defs.length) return svg_el;
 			
-			defs.find('[id]').each(function(i) {
+			if(isOpera) {
+				var id_elems = defs.find('*').filter(function() {
+					return !!this.id;
+				});
+			} else {
+				var id_elems = defs.find('[id]');
+			}
+			
+			var all_elems = svg_el[0].getElementsByTagName('*'), len = all_elems.length;
+			
+			id_elems.each(function(i) {
 				var id = this.id;
 				var no_dupes = ($(svgdoc).find('#' + id).length <= 1);
 				if(isOpera) no_dupes = false; // Opera didn't clone svg_el, so not reliable
 				// if(!force && no_dupes) return;
 				var new_id = 'x' + id + svg_num + i;
 				this.id = new_id;
+				
+				var old_val = 'url(#' + id + ')';
+				var new_val = 'url(#' + new_id + ')';
+				
+				// Selector method, possibly faster but fails in Opera / jQuery 1.4.3
+// 				svg_el.find('[fill="url(#' + id + ')"]').each(function() {
+// 					this.setAttribute('fill', 'url(#' + new_id + ')');
+// 				}).end().find('[stroke="url(#' + id + ')"]').each(function() {
+// 					this.setAttribute('stroke', 'url(#' + new_id + ')');
+// 				}).end().find('use').each(function() {
+// 					if(this.getAttribute('xlink:href') == '#' + id) {
+// 						this.setAttributeNS(xlinkns,'href','#' + new_id);
+// 					}
+// 				}).end().find('[filter="url(#' + id + ')"]').each(function() {
+// 					this.setAttribute('filter', 'url(#' + new_id + ')');
+// 				});
 
-				svg_el.find('[fill="url(#' + id + ')"]').each(function() {
-					this.setAttribute('fill', 'url(#' + new_id + ')');
-				}).end().find('[stroke="url(#' + id + ')"]').each(function() {
-					this.setAttribute('stroke', 'url(#' + new_id + ')');
-				}).end().find('use').each(function() {
-					if(this.getAttribute('xlink:href') == '#' + id) {
-						this.setAttributeNS(xlinkns,'href','#' + new_id);
+				for(var i = 0; i < len; i++) {
+					var elem = all_elems[i];
+					if(elem.getAttribute('fill') === old_val) {
+						elem.setAttribute('fill', new_val);
 					}
-				}).end().find('[filter="url(#' + id + ')"]').each(function() {
-					this.setAttribute('filter', 'url(#' + new_id + ')');
-				});
+					if(elem.getAttribute('stroke') === old_val) {
+						elem.setAttribute('stroke', new_val);
+					}
+					if(elem.getAttribute('filter') === old_val) {
+						elem.setAttribute('filter', new_val);
+					}
+				}
 			});
 			return svg_el;
 		}

+ 291 - 0
main/inc/lib/svg-edit/svgtransformlist.js

@@ -0,0 +1,291 @@
+/**
+ * SVGTransformList
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Alexis Deveria
+ * Copyright(c) 2010 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) browser.js
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.transformlist) {
+	svgedit.transformlist = {};
+}
+
+var svgroot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
+
+// Helper function.
+function transformToString(xform) {
+	var m = xform.matrix,
+		text = "";
+	switch(xform.type) {
+		case 1: // MATRIX
+			text = "matrix(" + [m.a,m.b,m.c,m.d,m.e,m.f].join(",") + ")";
+			break;
+		case 2: // TRANSLATE
+			text = "translate(" + m.e + "," + m.f + ")";
+			break;
+		case 3: // SCALE
+			if (m.a == m.d) text = "scale(" + m.a + ")";
+			else text = "scale(" + m.a + "," + m.d + ")";
+			break;
+		case 4: // ROTATE
+			var cx = 0, cy = 0;
+			// this prevents divide by zero
+			if (xform.angle != 0) {
+				var K = 1 - m.a;
+				cy = ( K * m.f + m.b*m.e ) / ( K*K + m.b*m.b );
+				cx = ( m.e - m.b * cy ) / K;
+			}
+			text = "rotate(" + xform.angle + " " + cx + "," + cy + ")";
+			break;
+	}
+	return text;
+};
+
+
+/**
+ * Map of SVGTransformList objects.
+ */
+var listMap_ = {};
+
+
+// **************************************************************************************
+// SVGTransformList implementation for Webkit 
+// These methods do not currently raise any exceptions.
+// These methods also do not check that transforms are being inserted.  This is basically
+// implementing as much of SVGTransformList that we need to get the job done.
+//
+//  interface SVGEditTransformList { 
+//		attribute unsigned long numberOfItems;
+//		void   clear (  )
+//		SVGTransform initialize ( in SVGTransform newItem )
+//		SVGTransform getItem ( in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
+//		SVGTransform insertItemBefore ( in SVGTransform newItem, in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
+//		SVGTransform replaceItem ( in SVGTransform newItem, in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
+//		SVGTransform removeItem ( in unsigned long index ) (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
+//		SVGTransform appendItem ( in SVGTransform newItem )
+//		NOT IMPLEMENTED: SVGTransform createSVGTransformFromMatrix ( in SVGMatrix matrix );
+//		NOT IMPLEMENTED: SVGTransform consolidate (  );
+//	}
+// **************************************************************************************
+svgedit.transformlist.SVGTransformList = function(elem) {
+	this._elem = elem || null;
+	this._xforms = [];
+	// TODO: how do we capture the undo-ability in the changed transform list?
+	this._update = function() {
+		var tstr = "";
+		var concatMatrix = svgroot.createSVGMatrix();
+		for (var i = 0; i < this.numberOfItems; ++i) {
+			var xform = this._list.getItem(i);
+			tstr += transformToString(xform) + " ";
+		}
+		this._elem.setAttribute("transform", tstr);
+	};
+	this._list = this;
+	this._init = function() {
+		// Transform attribute parser
+		var str = this._elem.getAttribute("transform");
+		if(!str) return;
+		
+		// TODO: Add skew support in future
+		var re = /\s*((scale|matrix|rotate|translate)\s*\(.*?\))\s*,?\s*/;
+		var arr = [];
+		var m = true;
+		while(m) {
+			m = str.match(re);
+			str = str.replace(re,'');
+			if(m && m[1]) {
+				var x = m[1];
+				var bits = x.split(/\s*\(/);
+				var name = bits[0];
+				var val_bits = bits[1].match(/\s*(.*?)\s*\)/);
+				val_bits[1] = val_bits[1].replace(/(\d)-/g, "$1 -");
+				var val_arr = val_bits[1].split(/[, ]+/);
+				var letters = 'abcdef'.split('');
+				var mtx = svgroot.createSVGMatrix();
+				$.each(val_arr, function(i, item) {
+					val_arr[i] = parseFloat(item);
+					if(name == 'matrix') {
+						mtx[letters[i]] = val_arr[i];
+					}
+				});
+				var xform = svgroot.createSVGTransform();
+				var fname = 'set' + name.charAt(0).toUpperCase() + name.slice(1);
+				var values = name=='matrix'?[mtx]:val_arr;
+				
+				if (name == 'scale' && values.length == 1) {
+					values.push(values[0]);
+				} else if (name == 'translate' && values.length == 1) {
+					values.push(0);
+				} else if (name == 'rotate' && values.length == 1) {
+					values.push(0);
+					values.push(0);
+				}
+				xform[fname].apply(xform, values);
+				this._list.appendItem(xform);
+			}
+		}
+	};
+	this._removeFromOtherLists = function(item) {
+		if (item) {
+			// Check if this transform is already in a transformlist, and
+			// remove it if so.
+			var found = false;
+			for (var id in listMap_) {
+				var tl = listMap_[id];
+				for (var i = 0, len = tl._xforms.length; i < len; ++i) {
+					if(tl._xforms[i] == item) {
+						found = true;
+						tl.removeItem(i);
+						break;
+					}
+				}
+				if (found) {
+					break;
+				}
+			}
+		}
+	};
+	
+	this.numberOfItems = 0;
+	this.clear = function() { 
+		this.numberOfItems = 0;
+		this._xforms = [];
+	};
+	
+	this.initialize = function(newItem) {
+		this.numberOfItems = 1;
+		this._removeFromOtherLists(newItem);
+		this._xforms = [newItem];
+	};
+	
+	this.getItem = function(index) {
+		if (index < this.numberOfItems && index >= 0) {
+			return this._xforms[index];
+		}
+		throw {code: 1}; // DOMException with code=INDEX_SIZE_ERR
+	};
+	
+	this.insertItemBefore = function(newItem, index) {
+		var retValue = null;
+		if (index >= 0) {
+			if (index < this.numberOfItems) {
+				this._removeFromOtherLists(newItem);
+				var newxforms = new Array(this.numberOfItems + 1);
+				// TODO: use array copying and slicing
+				for ( var i = 0; i < index; ++i) {
+					newxforms[i] = this._xforms[i];
+				}
+				newxforms[i] = newItem;
+				for ( var j = i+1; i < this.numberOfItems; ++j, ++i) {
+					newxforms[j] = this._xforms[i];
+				}
+				this.numberOfItems++;
+				this._xforms = newxforms;
+				retValue = newItem;
+				this._list._update();
+			}
+			else {
+				retValue = this._list.appendItem(newItem);
+			}
+		}
+		return retValue;
+	};
+	
+	this.replaceItem = function(newItem, index) {
+		var retValue = null;
+		if (index < this.numberOfItems && index >= 0) {
+			this._removeFromOtherLists(newItem);
+			this._xforms[index] = newItem;
+			retValue = newItem;
+			this._list._update();
+		}
+		return retValue;
+	};
+	
+	this.removeItem = function(index) {
+		if (index < this.numberOfItems && index >= 0) {
+			var retValue = this._xforms[index];
+			var newxforms = new Array(this.numberOfItems - 1);
+			for (var i = 0; i < index; ++i) {
+				newxforms[i] = this._xforms[i];
+			}
+			for (var j = i; j < this.numberOfItems-1; ++j, ++i) {
+				newxforms[j] = this._xforms[i+1];
+			}
+			this.numberOfItems--;
+			this._xforms = newxforms;
+			this._list._update();
+			return retValue;
+		} else {
+			throw {code: 1}; // DOMException with code=INDEX_SIZE_ERR
+		}
+	};
+	
+	this.appendItem = function(newItem) {
+		this._removeFromOtherLists(newItem);
+		this._xforms.push(newItem);
+		this.numberOfItems++;
+		this._list._update();
+		return newItem;
+	};
+};
+
+
+svgedit.transformlist.resetListMap = function() {
+	listMap_ = {};
+};
+
+/**
+ * Removes transforms of the given element from the map.
+ * Parameters:
+ * elem - a DOM Element
+ */
+svgedit.transformlist.removeElementFromListMap = function(elem) {
+	if (elem.id && listMap_[elem.id]) {
+		delete listMap_[elem.id];
+	}
+};
+
+// Function: getTransformList
+// Returns an object that behaves like a SVGTransformList for the given DOM element
+//
+// Parameters:
+// elem - DOM element to get a transformlist from
+svgedit.transformlist.getTransformList = function(elem) {
+	if (!svgedit.browser.supportsNativeTransformLists()) {
+		var id = elem.id;
+		if(!id) {
+			// Get unique ID for temporary element
+			id = 'temp';
+		}
+		var t = listMap_[id];
+		if (!t || id == 'temp') {
+			listMap_[id] = new svgedit.transformlist.SVGTransformList(elem);
+			listMap_[id]._init();
+			t = listMap_[id];
+		}
+		return t;
+	}
+	else if (elem.transform) {
+		return elem.transform.baseVal;
+	}
+	else if (elem.gradientTransform) {
+		return elem.gradientTransform.baseVal;
+	}
+	else if (elem.patternTransform) {
+		return elem.patternTransform.baseVal;
+	}
+
+	return null;
+};
+
+
+})();

+ 647 - 0
main/inc/lib/svg-edit/svgutils.js

@@ -0,0 +1,647 @@
+/**
+ * Package: svgedit.utilities
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Alexis Deveria
+ * Copyright(c) 2010 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) jQuery
+// 2) browser.js
+// 3) svgtransformlist.js
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.utilities) {
+	svgedit.utilities = {};
+}
+
+// Constants
+
+// String used to encode base64.
+var KEYSTR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+var SVGNS = 'http://www.w3.org/2000/svg';
+var XLINKNS = 'http://www.w3.org/1999/xlink';
+var XMLNS = "http://www.w3.org/XML/1998/namespace";
+
+// Much faster than running getBBox() every time
+var visElems = 'a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use';
+var visElems_arr = visElems.split(',');
+//var hidElems = 'clipPath,defs,desc,feGaussianBlur,filter,linearGradient,marker,mask,metadata,pattern,radialGradient,stop,switch,symbol,title,textPath';
+
+var editorContext_ = null;
+var domdoc_ = null;
+var domcontainer_ = null;
+var svgroot_ = null;
+
+svgedit.utilities.init = function(editorContext) {
+	editorContext_ = editorContext;
+	domdoc_ = editorContext.getDOMDocument();
+	domcontainer_ = editorContext.getDOMContainer();
+	svgroot_ = editorContext.getSVGRoot();
+};
+
+// Function: svgedit.utilities.toXml
+// Converts characters in a string to XML-friendly entities.
+//
+// Example: "&" becomes "&amp;"
+//
+// Parameters:
+// str - The string to be converted
+//
+// Returns:
+// The converted string
+svgedit.utilities.toXml = function(str) {
+	return $('<p/>').text(str).html();
+};
+	
+// Function: svgedit.utilities.fromXml
+// Converts XML entities in a string to single characters. 
+// Example: "&amp;" becomes "&"
+//
+// Parameters:
+// str - The string to be converted
+//
+// Returns: 
+// The converted string
+svgedit.utilities.fromXml = function(str) {
+	return $('<p/>').html(str).text();
+};
+
+// This code was written by Tyler Akins and has been placed in the
+// public domain.  It would be nice if you left this header intact.
+// Base64 code from Tyler Akins -- http://rumkin.com
+
+// schiller: Removed string concatenation in favour of Array.join() optimization,
+//           also precalculate the size of the array needed.
+
+// Function: svgedit.utilities.encode64
+// Converts a string to base64
+svgedit.utilities.encode64 = function(input) {
+	// base64 strings are 4/3 larger than the original string
+//	input = svgedit.utilities.encodeUTF8(input); // convert non-ASCII characters
+	input = svgedit.utilities.convertToXMLReferences(input);
+	if(window.btoa) return window.btoa(input); // Use native if available
+	var output = new Array( Math.floor( (input.length + 2) / 3 ) * 4 );
+	var chr1, chr2, chr3;
+	var enc1, enc2, enc3, enc4;
+	var i = 0, p = 0;
+
+	do {
+		chr1 = input.charCodeAt(i++);
+		chr2 = input.charCodeAt(i++);
+		chr3 = input.charCodeAt(i++);
+
+		enc1 = chr1 >> 2;
+		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
+		enc4 = chr3 & 63;
+
+		if (isNaN(chr2)) {
+			enc3 = enc4 = 64;
+		} else if (isNaN(chr3)) {
+			enc4 = 64;
+		}
+
+		output[p++] = KEYSTR.charAt(enc1);
+		output[p++] = KEYSTR.charAt(enc2);
+		output[p++] = KEYSTR.charAt(enc3);
+		output[p++] = KEYSTR.charAt(enc4);
+	} while (i < input.length);
+
+	return output.join('');
+};
+
+// Function: svgedit.utilities.decode64
+// Converts a string from base64
+svgedit.utilities.decode64 = function(input) {
+	if(window.atob) return window.atob(input);
+	var output = "";
+	var chr1, chr2, chr3 = "";
+	var enc1, enc2, enc3, enc4 = "";
+	var i = 0;
+
+	 // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
+	 input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+
+	 do {
+		enc1 = KEYSTR.indexOf(input.charAt(i++));
+		enc2 = KEYSTR.indexOf(input.charAt(i++));
+		enc3 = KEYSTR.indexOf(input.charAt(i++));
+		enc4 = KEYSTR.indexOf(input.charAt(i++));
+
+		chr1 = (enc1 << 2) | (enc2 >> 4);
+		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+		chr3 = ((enc3 & 3) << 6) | enc4;
+
+		output = output + String.fromCharCode(chr1);
+
+		if (enc3 != 64) {
+		   output = output + String.fromCharCode(chr2);
+		}
+		if (enc4 != 64) {
+		   output = output + String.fromCharCode(chr3);
+		}
+
+		chr1 = chr2 = chr3 = "";
+		enc1 = enc2 = enc3 = enc4 = "";
+
+	 } while (i < input.length);
+	 return unescape(output);
+};
+
+// Currently not being used, so commented out for now
+// based on http://phpjs.org/functions/utf8_encode:577
+// codedread:does not seem to work with webkit-based browsers on OSX
+// 		"encodeUTF8": function(input) {
+// 			//return unescape(encodeURIComponent(input)); //may or may not work
+// 			var output = '';
+// 			for (var n = 0; n < input.length; n++){
+// 				var c = input.charCodeAt(n);
+// 				if (c < 128) {
+// 					output += input[n];
+// 				}
+// 				else if (c > 127) {
+// 					if (c < 2048){
+// 						output += String.fromCharCode((c >> 6) | 192);
+// 					} 
+// 					else {
+// 						output += String.fromCharCode((c >> 12) | 224) + String.fromCharCode((c >> 6) & 63 | 128);
+// 					}
+// 					output += String.fromCharCode((c & 63) | 128);
+// 				}
+// 			}
+// 			return output;
+// 		},
+
+// Function: svgedit.utilities.convertToXMLReferences 
+// Converts a string to use XML references
+svgedit.utilities.convertToXMLReferences = function(input) {
+	var output = '';
+	for (var n = 0; n < input.length; n++){
+		var c = input.charCodeAt(n);
+		if (c < 128) {
+			output += input[n];
+		} else if(c > 127) {
+			output += ("&#" + c + ";");
+		}
+	}
+	return output;
+};
+
+// Function: svgedit.utilities.text2xml
+// Cross-browser compatible method of converting a string to an XML tree
+// found this function here: http://groups.google.com/group/jquery-dev/browse_thread/thread/c6d11387c580a77f
+svgedit.utilities.text2xml = function(sXML) {
+	if(sXML.indexOf('<svg:svg') >= 0) {
+		sXML = sXML.replace(/<(\/?)svg:/g, '<$1').replace('xmlns:svg', 'xmlns');
+	}
+
+	var out;
+	try{
+		var dXML = (window.DOMParser)?new DOMParser():new ActiveXObject("Microsoft.XMLDOM");
+		dXML.async = false;
+	} catch(e){ 
+		throw new Error("XML Parser could not be instantiated"); 
+	};
+	try{
+		if(dXML.loadXML) out = (dXML.loadXML(sXML))?dXML:false;
+		else out = dXML.parseFromString(sXML, "text/xml");
+	}
+	catch(e){ throw new Error("Error parsing XML string"); };
+	return out;
+};
+
+// Function: svgedit.utilities.bboxToObj
+// Converts a SVGRect into an object.
+// 
+// Parameters:
+// bbox - a SVGRect
+// 
+// Returns:
+// An object with properties names x, y, width, height.
+svgedit.utilities.bboxToObj = function(bbox) {
+	return {
+		x: bbox.x,
+		y: bbox.y,
+		width: bbox.width,
+		height: bbox.height
+	}
+};
+
+// Function: svgedit.utilities.walkTree
+// Walks the tree and executes the callback on each element in a top-down fashion
+//
+// Parameters:
+// elem - DOM element to traverse
+// cbFn - Callback function to run on each element
+svgedit.utilities.walkTree = function(elem, cbFn){
+	if (elem && elem.nodeType == 1) {
+		cbFn(elem);
+		var i = elem.childNodes.length;
+		while (i--) {
+			svgedit.utilities.walkTree(elem.childNodes.item(i), cbFn);
+		}
+	}
+};
+
+// Function: svgedit.utilities.walkTreePost
+// Walks the tree and executes the callback on each element in a depth-first fashion
+// TODO: FIXME: Shouldn't this be calling walkTreePost?
+//
+// Parameters:
+// elem - DOM element to traverse
+// cbFn - Callback function to run on each element
+svgedit.utilities.walkTreePost = function(elem, cbFn) {
+	if (elem && elem.nodeType == 1) {
+		var i = elem.childNodes.length;
+		while (i--) {
+			svgedit.utilities.walkTree(elem.childNodes.item(i), cbFn);
+		}
+		cbFn(elem);
+	}
+};
+
+// Function: svgedit.utilities.getUrlFromAttr
+// Extracts the URL from the url(...) syntax of some attributes.  
+// Three variants:
+// 	* <circle fill="url(someFile.svg#foo)" />
+//  * <circle fill="url('someFile.svg#foo')" />
+//  * <circle fill='url("someFile.svg#foo")' />
+//
+// Parameters:
+// attrVal - The attribute value as a string
+// 
+// Returns:
+// String with just the URL, like someFile.svg#foo
+svgedit.utilities.getUrlFromAttr = function(attrVal) {
+	if (attrVal) {		
+		// url("#somegrad")
+		if (attrVal.indexOf('url("') === 0) {
+			return attrVal.substring(5,attrVal.indexOf('"',6));
+		}
+		// url('#somegrad')
+		else if (attrVal.indexOf("url('") === 0) {
+			return attrVal.substring(5,attrVal.indexOf("'",6));
+		}
+		else if (attrVal.indexOf("url(") === 0) {
+			return attrVal.substring(4,attrVal.indexOf(')'));
+		}
+	}
+	return null;
+};
+
+// Function: svgedit.utilities.getHref
+// Returns the given element's xlink:href value
+svgedit.utilities.getHref = function(elem) {
+	return elem.getAttributeNS(XLINKNS, "href");
+}
+
+// Function: svgedit.utilities.setHref
+// Sets the given element's xlink:href value
+svgedit.utilities.setHref = function(elem, val) {
+	elem.setAttributeNS(XLINKNS, "xlink:href", val);
+}
+
+// Function: findDefs
+// Parameters:
+// svgElement - The <svg> element.
+//
+// Returns:
+// The document's <defs> element, create it first if necessary
+svgedit.utilities.findDefs = function(svgElement) {
+	var svgElement = editorContext_.getSVGContent().documentElement;
+	var defs = svgElement.getElementsByTagNameNS(SVGNS, "defs");
+	if (defs.length > 0) {
+		defs = defs[0];
+	}
+	else {
+		// first child is a comment, so call nextSibling
+		defs = svgElement.insertBefore( svgElement.ownerDocument.createElementNS(SVGNS, "defs" ), svgElement.firstChild.nextSibling);
+	}
+	return defs;
+};
+
+// TODO(codedread): Consider moving the next to functions to bbox.js
+
+// Function: svgedit.utilities.getPathBBox
+// Get correct BBox for a path in Webkit
+// Converted from code found here:
+// http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
+// 
+// Parameters:
+// path - The path DOM element to get the BBox for
+//
+// Returns:
+// A BBox-like object
+svgedit.utilities.getPathBBox = function(path) {
+	var seglist = path.pathSegList;
+	var tot = seglist.numberOfItems;
+	
+	var bounds = [[], []];
+	var start = seglist.getItem(0);
+	var P0 = [start.x, start.y];
+	
+	for(var i=0; i < tot; i++) {
+		var seg = seglist.getItem(i);
+		if(!seg.x) continue;
+		
+		// Add actual points to limits
+		bounds[0].push(P0[0]);
+		bounds[1].push(P0[1]);
+		
+		if(seg.x1) {
+			var P1 = [seg.x1, seg.y1],
+				P2 = [seg.x2, seg.y2],
+				P3 = [seg.x, seg.y];
+
+			for(var j=0; j < 2; j++) {
+
+				var calc = function(t) {
+					return Math.pow(1-t,3) * P0[j] 
+						+ 3 * Math.pow(1-t,2) * t * P1[j]
+						+ 3 * (1-t) * Math.pow(t,2) * P2[j]
+						+ Math.pow(t,3) * P3[j];
+				};
+
+				var b = 6 * P0[j] - 12 * P1[j] + 6 * P2[j];
+				var a = -3 * P0[j] + 9 * P1[j] - 9 * P2[j] + 3 * P3[j];
+				var c = 3 * P1[j] - 3 * P0[j];
+				
+				if(a == 0) {
+					if(b == 0) {
+						continue;
+					}
+					var t = -c / b;
+					if(0 < t && t < 1) {
+						bounds[j].push(calc(t));
+					}
+					continue;
+				}
+				
+				var b2ac = Math.pow(b,2) - 4 * c * a;
+				if(b2ac < 0) continue;
+				var t1 = (-b + Math.sqrt(b2ac))/(2 * a);
+				if(0 < t1 && t1 < 1) bounds[j].push(calc(t1));
+				var t2 = (-b - Math.sqrt(b2ac))/(2 * a);
+				if(0 < t2 && t2 < 1) bounds[j].push(calc(t2));
+			}
+			P0 = P3;
+		} else {
+			bounds[0].push(seg.x);
+			bounds[1].push(seg.y);
+		}
+	}
+	
+	var x = Math.min.apply(null, bounds[0]);
+	var w = Math.max.apply(null, bounds[0]) - x;
+	var y = Math.min.apply(null, bounds[1]);
+	var h = Math.max.apply(null, bounds[1]) - y;
+	return {
+		'x': x,
+		'y': y,
+		'width': w,
+		'height': h
+	};
+};
+
+// Function: groupBBFix
+// Get the given/selected element's bounding box object, checking for
+// horizontal/vertical lines (see issue 717)
+// Note that performance is currently terrible, so some way to improve would
+// be great.
+//
+// Parameters: 
+// selected - Container or <use> DOM element
+function groupBBFix(selected) {
+	if(svgedit.browser.supportsHVLineContainerBBox()) {
+		try { return selected.getBBox();} catch(e){} 
+	}
+	var ref = $.data(selected, 'ref');
+	var matched = null;
+	
+	if(ref) {
+		var copy = $(ref).children().clone().attr('visibility', 'hidden');
+		$(svgroot_).append(copy);
+		matched = copy.filter('line, path');
+	} else {
+		matched = $(selected).find('line, path');
+	}
+	
+	var issue = false;
+	if(matched.length) {
+		matched.each(function() {
+			var bb = this.getBBox();
+			if(!bb.width || !bb.height) {
+				issue = true;
+			}
+		});
+		if(issue) {
+			var elems = ref ? copy : $(selected).children();
+			ret = getStrokedBBox(elems);
+		} else {
+			ret = selected.getBBox();
+		}
+	} else {
+		ret = selected.getBBox();
+	}
+	if(ref) {
+		copy.remove();
+	}
+	return ret;
+}
+
+// Function: svgedit.utilities.getBBox
+// Get the given/selected element's bounding box object, convert it to be more
+// usable when necessary
+//
+// Parameters:
+// elem - Optional DOM element to get the BBox for
+svgedit.utilities.getBBox = function(elem) {
+	var selected = elem || editorContext_.geSelectedElements()[0];
+	if (elem.nodeType != 1) return null;
+	var ret = null;
+	var elname = selected.nodeName;
+	
+	switch ( elname ) {
+	case 'text':
+		if(selected.textContent === '') {
+			selected.textContent = 'a'; // Some character needed for the selector to use.
+			ret = selected.getBBox();
+			selected.textContent = '';
+		} else {
+			try { ret = selected.getBBox();} catch(e){}
+		}
+		break;
+	case 'path':
+		if(!svgedit.browser.supportsPathBBox()) {
+			ret = svgedit.utilities.getPathBBox(selected);
+		} else {
+			try { ret = selected.getBBox();} catch(e){}
+		}
+		break;
+	case 'g':
+	case 'a':
+		ret = groupBBFix(selected);
+		break;
+	default:
+
+		if(elname === 'use') {
+			ret = groupBBFix(selected, true);
+		}
+		
+		if(elname === 'use' || elname === 'foreignObject') {
+			if(!ret) ret = selected.getBBox();
+			if(!svgedit.browser.isWebkit()) {
+				var bb = {};
+				bb.width = ret.width;
+				bb.height = ret.height;
+				bb.x = ret.x + parseFloat(selected.getAttribute('x')||0);
+				bb.y = ret.y + parseFloat(selected.getAttribute('y')||0);
+				ret = bb;
+			}
+		} else if(~visElems_arr.indexOf(elname)) {
+			try { ret = selected.getBBox();} 
+			catch(e) { 
+				// Check if element is child of a foreignObject
+				var fo = $(selected).closest("foreignObject");
+				if(fo.length) {
+					try {
+						ret = fo[0].getBBox();
+					} catch(e) {
+						ret = null;
+					}
+				} else {
+					ret = null;
+				}
+			}
+		}
+	}
+	
+	if(ret) {
+		ret = svgedit.utilities.bboxToObj(ret);
+	}
+
+	// get the bounding box from the DOM (which is in that element's coordinate system)
+	return ret;
+};
+
+// Function: svgedit.utilities.getRotationAngle
+// Get the rotation angle of the given/selected DOM element
+//
+// Parameters:
+// elem - Optional DOM element to get the angle for
+// to_rad - Boolean that when true returns the value in radians rather than degrees
+//
+// Returns:
+// Float with the angle in degrees or radians
+svgedit.utilities.getRotationAngle = function(elem, to_rad) {
+	var selected = elem || editorContext_.getSelectedElements()[0];
+	// find the rotation transform (if any) and set it
+	var tlist = svgedit.transformlist.getTransformList(selected);
+	if(!tlist) return 0; // <svg> elements have no tlist
+	var N = tlist.numberOfItems;
+	for (var i = 0; i < N; ++i) {
+		var xform = tlist.getItem(i);
+		if (xform.type == 4) {
+			return to_rad ? xform.angle * Math.PI / 180.0 : xform.angle;
+		}
+	}
+	return 0.0;
+};
+
+// Function: getElem
+// Get a DOM element by ID within the SVG root element.
+//
+// Parameters:
+// id - String with the element's new ID
+if (svgedit.browser.supportsSelectors()) {
+	svgedit.utilities.getElem = function(id) {
+		// querySelector lookup
+		return svgroot_.querySelector('#'+id);
+	};
+} else if (svgedit.browser.supportsXpath()) {
+	svgedit.utilities.getElem = function(id) {
+		// xpath lookup
+		return domdoc_.evaluate(
+			'svg:svg[@id="svgroot"]//svg:*[@id="'+id+'"]',
+			domcontainer_, 
+			function() { return "http://www.w3.org/2000/svg"; },
+			9,
+			null).singleNodeValue;
+	};
+} else {
+	svgedit.utilities.getElem = function(id) {
+		// jQuery lookup: twice as slow as xpath in FF
+		return $(svgroot_).find('[id=' + id + ']')[0];
+	};
+}
+
+// Function: assignAttributes
+// Assigns multiple attributes to an element.
+//
+// Parameters: 
+// node - DOM element to apply new attribute values to
+// attrs - Object with attribute keys/values
+// suspendLength - Optional integer of milliseconds to suspend redraw
+// unitCheck - Boolean to indicate the need to use svgedit.units.setUnitAttr
+svgedit.utilities.assignAttributes = function(node, attrs, suspendLength, unitCheck) {
+	if(!suspendLength) suspendLength = 0;
+	// Opera has a problem with suspendRedraw() apparently
+	var handle = null;
+	if (!svgedit.browser.isOpera()) svgroot_.suspendRedraw(suspendLength);
+
+	for (var i in attrs) {
+		var ns = (i.substr(0,4) === "xml:" ? XMLNS : 
+			i.substr(0,6) === "xlink:" ? XLINKNS : null);
+			
+		if(ns) {
+			node.setAttributeNS(ns, i, attrs[i]);
+		} else if(!unitCheck) {
+			node.setAttribute(i, attrs[i]);
+		} else {
+			svgedit.units.setUnitAttr(node, i, attrs[i]);
+		}
+		
+	}
+	
+	if (!svgedit.browser.isOpera()) svgroot_.unsuspendRedraw(handle);
+};
+
+// Function: cleanupElement
+// Remove unneeded (default) attributes, makes resulting SVG smaller
+//
+// Parameters:
+// element - DOM element to clean up
+svgedit.utilities.cleanupElement = function(element) {
+	var handle = svgroot_.suspendRedraw(60);
+	var defaults = {
+		'fill-opacity':1,
+		'stop-opacity':1,
+		'opacity':1,
+		'stroke':'none',
+		'stroke-dasharray':'none',
+		'stroke-linejoin':'miter',
+		'stroke-linecap':'butt',
+		'stroke-opacity':1,
+		'stroke-width':1,
+		'rx':0,
+		'ry':0
+	}
+	
+	for(var attr in defaults) {
+		var val = defaults[attr];
+		if(element.getAttribute(attr) == val) {
+			element.removeAttribute(attr);
+		}
+	}
+	
+	svgroot_.unsuspendRedraw(handle);
+};
+
+
+})();

+ 281 - 0
main/inc/lib/svg-edit/units.js

@@ -0,0 +1,281 @@
+/**
+ * Package: svgedit.units
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Copyright(c) 2010 Alexis Deveria
+ * Copyright(c) 2010 Jeff Schiller
+ */
+
+// Dependencies:
+// 1) jQuery
+
+var svgedit = svgedit || {};
+
+(function() {
+
+if (!svgedit.units) {
+	svgedit.units = {};
+}
+
+var w_attrs = ['x', 'x1', 'cx', 'rx', 'width'];
+var h_attrs = ['y', 'y1', 'cy', 'ry', 'height'];
+var unit_attrs = $.merge(['r','radius'], w_attrs);
+
+var unitNumMap = {
+	'%':  2,
+	'em': 3,
+	'ex': 4,
+	'px': 5,
+	'cm': 6,
+	'mm': 7,
+	'in': 8,
+	'pt': 9,
+	'pc': 10
+};
+
+$.merge(unit_attrs, h_attrs);
+
+// Container of elements.
+var elementContainer_;
+
+/**
+ * Stores mapping of unit type to user coordinates.
+ */
+var typeMap_ = {px: 1};
+
+/**
+ * ElementContainer interface
+ *
+ * function getBaseUnit() - returns a string of the base unit type of the container ("em")
+ * function getElement() - returns an element in the container given an id
+ * function getHeight() - returns the container's height
+ * function getWidth() - returns the container's width
+ * function getRoundDigits() - returns the number of digits number should be rounded to
+ */
+
+/**
+ * Function: svgedit.units.init()
+ * Initializes this module.
+ *
+ * Parameters:
+ * elementContainer - an object implementing the ElementContainer interface.
+ */
+svgedit.units.init = function(elementContainer) {
+	elementContainer_ = elementContainer;
+
+	var svgns = 'http://www.w3.org/2000/svg';
+
+	// Get correct em/ex values by creating a temporary SVG.
+	var svg = document.createElementNS(svgns, 'svg');
+	document.body.appendChild(svg);
+	var rect = document.createElementNS(svgns,'rect');
+	rect.setAttribute('width',"1em");
+	rect.setAttribute('height',"1ex");
+	rect.setAttribute('x',"1in");
+	svg.appendChild(rect);
+	var bb = rect.getBBox();
+	document.body.removeChild(svg);
+
+	var inch = bb.x;
+	typeMap_['em'] = bb.width;
+	typeMap_['ex'] = bb.height;
+	typeMap_['in'] = inch;
+	typeMap_['cm'] = inch / 2.54;
+	typeMap_['mm'] = inch / 25.4;
+	typeMap_['pt'] = inch / 72;
+	typeMap_['pc'] = inch / 6;
+	typeMap_['%'] = 0;
+};
+
+// Group: Unit conversion functions
+
+// Function: svgedit.units.getTypeMap
+// Returns the unit object with values for each unit
+svgedit.units.getTypeMap = function() {
+	return typeMap_;
+};
+
+// Function: svgedit.units.shortFloat
+// Rounds a given value to a float with number of digits defined in save_options
+//
+// Parameters: 
+// val - The value as a String, Number or Array of two numbers to be rounded
+//
+// Returns:
+// If a string/number was given, returns a Float. If an array, return a string
+// with comma-seperated floats
+svgedit.units.shortFloat = function(val) {
+	var digits = elementContainer_.getRoundDigits();
+	if(!isNaN(val)) {
+		// Note that + converts to Number
+		return +((+val).toFixed(digits));
+	} else if($.isArray(val)) {
+		return svgedit.units.shortFloat(val[0]) + ',' + svgedit.units.shortFloat(val[1]);
+	}
+	return parseFloat(val).toFixed(digits) - 0;
+};
+
+// Function: svgedit.units.convertUnit
+// Converts the number to given unit or baseUnit
+svgedit.units.convertUnit = function(val, unit) {
+	unit = unit || elementContainer_.getBaseUnit();
+//	baseVal.convertToSpecifiedUnits(unitNumMap[unit]);
+//	var val = baseVal.valueInSpecifiedUnits;
+//	baseVal.convertToSpecifiedUnits(1);
+	return svgedit.unit.shortFloat(val / typeMap_[unit]);
+};
+
+// Function: svgedit.units.setUnitAttr
+// Sets an element's attribute based on the unit in its current value.
+//
+// Parameters: 
+// elem - DOM element to be changed
+// attr - String with the name of the attribute associated with the value
+// val - String with the attribute value to convert
+svgedit.units.setUnitAttr = function(elem, attr, val) {
+	if(!isNaN(val)) {
+		// New value is a number, so check currently used unit
+		var old_val = elem.getAttribute(attr);
+		
+		// Enable this for alternate mode
+//		if(old_val !== null && (isNaN(old_val) || elementContainer_.getBaseUnit() !== 'px')) {
+//			// Old value was a number, so get unit, then convert
+//			var unit;
+//			if(old_val.substr(-1) === '%') {
+//				var res = getResolution();
+//				unit = '%';
+//				val *= 100;
+//				if(w_attrs.indexOf(attr) >= 0) {
+//					val = val / res.w;
+//				} else if(h_attrs.indexOf(attr) >= 0) {
+//					val = val / res.h;
+//				} else {
+//					return val / Math.sqrt((res.w*res.w) + (res.h*res.h))/Math.sqrt(2);
+//				}
+//			} else {
+//				if(elementContainer_.getBaseUnit() !== 'px') {
+//					unit = elementContainer_.getBaseUnit();
+//				} else {
+//					unit = old_val.substr(-2);
+//				}
+//				val = val / typeMap_[unit];
+//			}
+//		
+//		val += unit;
+//		}
+	}
+	elem.setAttribute(attr, val);
+};
+
+var attrsToConvert = {
+	"line": ['x1', 'x2', 'y1', 'y2'],
+	"circle": ['cx', 'cy', 'r'],
+	"ellipse": ['cx', 'cy', 'rx', 'ry'],
+	"foreignObject": ['x', 'y', 'width', 'height'],
+	"rect": ['x', 'y', 'width', 'height'],
+	"image": ['x', 'y', 'width', 'height'],
+	"use": ['x', 'y', 'width', 'height'],
+	"text": ['x', 'y']
+};
+
+// Function: svgedit.units.convertAttrs
+// Converts all applicable attributes to the configured baseUnit
+//
+// Parameters:
+// element - a DOM element whose attributes should be converted
+svgedit.units.convertAttrs = function(element) {
+	var elName = element.tagName;
+	var unit = elementContainer_.getBaseUnit();
+	var attrs = attrsToConvert[elName];
+	if(!attrs) return;
+	var len = attrs.length
+	for(var i = 0; i < len; i++) {
+		var attr = attrs[i];
+		var cur = element.getAttribute(attr);
+		if(cur) {
+			if(!isNaN(cur)) {
+				element.setAttribute(attr, (cur / typeMap_[unit]) + unit);
+			} else {
+				// Convert existing?
+			}
+		}
+	}
+};
+
+// Function: svgedit.units.convertToNum
+// Converts given values to numbers. Attributes must be supplied in 
+// case a percentage is given
+//
+// Parameters:
+// attr - String with the name of the attribute associated with the value
+// val - String with the attribute value to convert
+svgedit.units.convertToNum = function(attr, val) {
+	// Return a number if that's what it already is
+	if(!isNaN(val)) return val-0;
+	
+	if(val.substr(-1) === '%') {
+		// Deal with percentage, depends on attribute
+		var num = val.substr(0, val.length-1)/100;
+		var width = elementContainer_.getWidth();
+		var height = elementContainer_.getHeight();
+		
+		if(w_attrs.indexOf(attr) >= 0) {
+			return num * width;
+		} else if(h_attrs.indexOf(attr) >= 0) {
+			return num * height;
+		} else {
+			return num * Math.sqrt((width*width) + (height*height))/Math.sqrt(2);
+		}
+	} else {
+		var unit = val.substr(-2);
+		var num = val.substr(0, val.length-2);
+		// Note that this multiplication turns the string into a number
+		return num * typeMap_[unit];
+	}
+};
+
+// Function: svgedit.units.isValidUnit
+// Check if an attribute's value is in a valid format
+//
+// Parameters: 
+// attr - String with the name of the attribute associated with the value
+// val - String with the attribute value to check
+svgedit.units.isValidUnit = function(attr, val) {
+	var valid = false;
+	if(unit_attrs.indexOf(attr) >= 0) {
+		// True if it's just a number
+		if(!isNaN(val)) {
+			valid = true;
+		} else {
+		// Not a number, check if it has a valid unit
+			val = val.toLowerCase();
+			$.each(typeMap_, function(unit) {
+				if(valid) return;
+				var re = new RegExp('^-?[\\d\\.]+' + unit + '$');
+				if(re.test(val)) valid = true;
+			});
+		}
+	} else if (attr == "id") {
+		// if we're trying to change the id, make sure it's not already present in the doc
+		// and the id value is valid.
+
+		var result = false;
+		// because getElem() can throw an exception in the case of an invalid id
+		// (according to http://www.w3.org/TR/xml-id/ IDs must be a NCName)
+		// we wrap it in an exception and only return true if the ID was valid and
+		// not already present
+		try {
+			var elem = elementContainer_.getElement(val);
+			result = (elem == null);
+		} catch(e) {}
+		return result;
+	} else {
+		valid = true;
+	}
+	
+	return valid;
+};
+
+
+})();

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません