- Breaking change: Require `new` with `EmbeddedSVGEdit` (allows us to use `class` internally)
- Breaking change: If `svgcanvas.setUiStrings` must now be called if not using editor in order
to get strings (for sake of i18n) (and if using path.js alone, must also have its `setUiStrings` called)
- Breaking change (ext-overview-window): Avoid global `overviewWindowGlobals`
- Breaking change (ext-imagelib): Change to object-based encoding for namespacing of
messages (though keep stringifying/parsing ourselves until we remove IE9 support)
- Breaking change: Rename `jquery.js` to `jquery.min.js`
- Breaking change: Remove `scoped` attribute from `style`; it is now deprecated and
obsolete; also move to head (after other stylesheets)
- Enhancement: Make SpinButton plugin independent of SVGEdit via
generic state object for tool_scale
- Enhancement: Remove now unused Python l10n scripts (#238)
- Enhancement: ES6 Modules (including jQuery plugins but not jQuery)
- Enhancement: Further JSDoc (incomplete)
- Enhancement (Optimization): Compress images using imageoptim (and add
npm script) (per #215)
- Fix: i18nize path.js strings and canvas notifications
- Fix: Attempt i18n for ext-markers
- Refactoring (ext-storage): Move locale info to own file imported by the extension (toward modularity; still should be split into separate files by language and *dynamically* imported, but we'll wait for better `import` support to refactor this)
- Refactoring: For imagelib, add local jQuery copy (using old 1.4.4 as had
been using from server)
- Refactoring: For MathJax, add local copy (using old 2.3 as had been using from
server); server had not been working
- Refactoring: Remove `use strict` (implicit in modules)
- Refactoring: Remove trailing whitespace, fix some code within comments
- Refactoring: Expect `jQuery` global rather than `$` for better modularity
(also to adapt line later once available via `import`)
- Refactoring: Prefer `const` (and then `let`)
- Refactoring: Add block scope keywords closer to first block in which they appear
- Refactoring: Use ES6 `class`
- Refactoring `$.isArray` -> `Array.isArray` and avoid some other jQuery core methods
with simple VanillaJS replacements
- Refactoring: Use abbreviated object property syntax
- Refactoring: Object destructuring
- Refactoring: Remove `uiStrings` contents in svg-editor.js (obtains from locale)
- Refactoring: Add favicon to embedded API file
- Refactoring: Use arrow functions for brief functions (incomplete)
- Refactoring: Use `Array.prototype.includes`/`String.prototype.includes`;
`String.prototype.startsWith`, `String.prototype.trim`
- Refactoring: Remove now unnecessary svgutils do/while resetting of variables
- Refactoring: Use shorthand methods for object literals (avoid ": function")
- Refactoring: Avoid quoting object property keys where unnecessary
- Refactoring: Just do truthy/falsey check for lengths in place of comparison to 0
- Refactoring (Testing): Avoid jQuery usage within most test files (defer script,
also in preparation for future switch to ES6 modules for tests)
- Refactoring: Make jpicker variable declaration indent bearable
- Refactoring (Linting): Finish svgcanvas.js
- Docs: Mention in comment no longer an entry file as before
- Docs: Migrate old config, extensions, and FAQ docs
- Licensing: Indicate MIT is license type of rgbcolor; rename/add license file name for
jgraduate and screencast to reflect type (Apache 2.0); rename file to reflect it
contains license information (of type MIT) for Raphael icons
244 lines
7.5 KiB
JavaScript
244 lines
7.5 KiB
JavaScript
/* globals svgEditor */
|
|
svgEditor.readLang({
|
|
lang: 'lang',
|
|
dir: 'dir',
|
|
common: {
|
|
ok: 'OK',
|
|
cancel: 'Cancel',
|
|
key_backspace: 'Backspace',
|
|
key_del: 'Del',
|
|
key_down: 'Down',
|
|
key_up: 'Up',
|
|
more_opts: 'more_opts',
|
|
url: 'url',
|
|
width: 'width',
|
|
height: 'height'
|
|
},
|
|
misc: {
|
|
powered_by: 'powered_by'
|
|
},
|
|
ui: {
|
|
toggle_stroke_tools: 'toggle_stroke_tools',
|
|
palette_info: 'palette_info',
|
|
zoom_level: 'zoom_level',
|
|
panel_drag: 'panel_drag',
|
|
quality: 'Quality:',
|
|
pathNodeTooltip: 'Drag node to move it. Double-click node to change segment type',
|
|
pathCtrlPtTooltip: 'Drag control point to adjust curve properties'
|
|
},
|
|
properties: {
|
|
id: 'id',
|
|
fill_color: 'fill_color',
|
|
stroke_color: 'stroke_color',
|
|
stroke_style: 'stroke_style',
|
|
stroke_width: 'stroke_width',
|
|
pos_x: 'pos_x',
|
|
pos_y: '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: 'angle',
|
|
blur: 'blur',
|
|
opacity: 'opacity',
|
|
circle_cx: 'circle_cx',
|
|
circle_cy: 'circle_cy',
|
|
circle_r: 'circle_r',
|
|
ellipse_cx: 'ellipse_cx',
|
|
ellipse_cy: 'ellipse_cy',
|
|
ellipse_rx: 'ellipse_rx',
|
|
ellipse_ry: 'ellipse_ry',
|
|
line_x1: 'line_x1',
|
|
line_x2: 'line_x2',
|
|
line_y1: 'line_y1',
|
|
line_y2: 'line_y2',
|
|
rect_height: 'rect_height',
|
|
rect_width: 'rect_width',
|
|
corner_radius: 'corner_radius',
|
|
image_width: 'image_width',
|
|
image_height: 'image_height',
|
|
image_url: 'image_url',
|
|
node_x: 'node_x',
|
|
node_y: 'node_y',
|
|
seg_type: 'seg_type',
|
|
straight_segments: 'straight_segments',
|
|
curve_segments: 'curve_segments',
|
|
text_contents: 'text_contents',
|
|
font_family: 'font_family',
|
|
font_size: 'font_size',
|
|
bold: 'bold',
|
|
italic: 'italic'
|
|
},
|
|
tools: {
|
|
main_menu: 'main_menu',
|
|
bkgnd_color_opac: 'bkgnd_color_opac',
|
|
connector_no_arrow: 'connector_no_arrow',
|
|
fitToContent: 'fitToContent',
|
|
fit_to_all: 'fit_to_all',
|
|
fit_to_canvas: 'fit_to_canvas',
|
|
fit_to_layer_content: 'fit_to_layer_content',
|
|
fit_to_sel: 'fit_to_sel',
|
|
align_relative_to: 'align_relative_to',
|
|
relativeTo: 'relativeTo',
|
|
page: 'page',
|
|
largest_object: 'largest_object',
|
|
selected_objects: 'selected_objects',
|
|
smallest_object: 'smallest_object',
|
|
new_doc: 'new_doc',
|
|
open_doc: 'open_doc',
|
|
export_img: 'export_img',
|
|
save_doc: 'save_doc',
|
|
import_doc: 'import_doc',
|
|
align_to_page: 'align_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: 'mode_select',
|
|
mode_fhpath: 'mode_fhpath',
|
|
mode_line: 'mode_line',
|
|
mode_connect: 'mode_connect',
|
|
mode_rect: 'mode_rect',
|
|
mode_square: 'mode_square',
|
|
mode_fhrect: 'mode_fhrect',
|
|
mode_ellipse: 'mode_ellipse',
|
|
mode_circle: 'mode_circle',
|
|
mode_fhellipse: 'mode_fhellipse',
|
|
mode_path: 'mode_path',
|
|
mode_shapelib: 'mode_shapelib',
|
|
mode_text: 'mode_text',
|
|
mode_image: 'mode_image',
|
|
mode_zoom: 'mode_zoom',
|
|
mode_eyedropper: 'mode_eyedropper',
|
|
no_embed: 'no_embed',
|
|
undo: 'undo',
|
|
redo: 'redo',
|
|
tool_source: 'tool_source',
|
|
wireframe_mode: 'wireframe_mode',
|
|
toggle_grid: 'toggle_grid',
|
|
clone: 'clone',
|
|
del: 'del',
|
|
group_elements: 'group_elements',
|
|
make_link: 'make_link',
|
|
set_link_url: 'set_link_url',
|
|
to_path: 'to_path',
|
|
reorient_path: 'reorient_path',
|
|
ungroup: 'ungroup',
|
|
docprops: 'docprops',
|
|
imagelib: 'imagelib',
|
|
move_bottom: 'move_bottom',
|
|
move_top: 'move_top',
|
|
node_clone: 'node_clone',
|
|
node_delete: 'node_delete',
|
|
node_link: 'node_link',
|
|
add_subpath: 'add_subpath',
|
|
openclose_path: 'openclose_path',
|
|
source_save: 'source_save',
|
|
cut: 'cut',
|
|
copy: 'copy',
|
|
paste: 'paste',
|
|
paste_in_place: 'paste_in_place',
|
|
delete: 'delete',
|
|
group: 'group',
|
|
move_front: 'move_front',
|
|
move_up: 'move_up',
|
|
move_down: 'move_down',
|
|
move_back: 'move_back'
|
|
},
|
|
layers: {
|
|
layer: 'Layer',
|
|
layers: 'layers',
|
|
del: 'del',
|
|
move_down: 'move_down',
|
|
new: 'new',
|
|
rename: 'rename',
|
|
move_up: 'move_up',
|
|
dupe: 'dupe',
|
|
merge_down: 'merge_down',
|
|
merge_all: 'merge_all',
|
|
move_elems_to: 'move_elems_to',
|
|
move_selected: 'move_selected'
|
|
},
|
|
config: {
|
|
image_props: 'image_props',
|
|
doc_title: 'doc_title',
|
|
doc_dims: 'doc_dims',
|
|
included_images: 'included_images',
|
|
image_opt_embed: 'image_opt_embed',
|
|
image_opt_ref: 'image_opt_ref',
|
|
editor_prefs: 'editor_prefs',
|
|
icon_size: 'icon_size',
|
|
language: 'language',
|
|
background: 'background',
|
|
editor_img_url: 'editor_img_url',
|
|
editor_bg_note: 'editor_bg_note',
|
|
icon_large: 'icon_large',
|
|
icon_medium: 'icon_medium',
|
|
icon_small: 'icon_small',
|
|
icon_xlarge: 'icon_xlarge',
|
|
select_predefined: 'select_predefined',
|
|
units_and_rulers: 'units_and_rulers',
|
|
show_rulers: 'show_rulers',
|
|
base_unit: 'base_unit',
|
|
grid: 'grid',
|
|
snapping_onoff: 'snapping_onoff',
|
|
snapping_stepsize: 'snapping_stepsize',
|
|
grid_color: 'grid_color'
|
|
},
|
|
shape_cats: {
|
|
basic: 'basic',
|
|
object: 'object',
|
|
symbol: 'symbol',
|
|
arrow: 'arrow',
|
|
flowchart: 'flowchart',
|
|
animal: 'animal',
|
|
game: 'game',
|
|
dialog_balloon: 'dialog_balloon',
|
|
electronics: 'electronics',
|
|
math: 'math',
|
|
music: 'music',
|
|
misc: 'misc',
|
|
raphael_1: 'raphael_1',
|
|
raphael_2: 'raphael_2'
|
|
},
|
|
imagelib: {
|
|
select_lib: 'select_lib',
|
|
show_list: 'show_list',
|
|
import_single: 'import_single',
|
|
import_multi: 'import_multi',
|
|
open: 'open'
|
|
},
|
|
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: "Verplaats geselecteerde elementen naar laag '%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\' ...',
|
|
exportNoBlur: 'Blurred elements will appear as un-blurred',
|
|
exportNoforeignObject: 'foreignObject elements will not appear',
|
|
exportNoDashArray: 'Strokes will appear filled',
|
|
exportNoText: 'Text may not appear as expected'
|
|
}
|
|
});
|