Repository: SVG-Edit/svgedit (language: python)

Issue:
Add complete markdown converted SvgCanvas documentation #92
issue #92 
Convert this https://svg-edit.googlecode.com/svn/trunk/docs/files/svgcanvas-js.html to markdown

Add complete markdown converted SvgCanvas documentation #92
issue #92 
Convert this https://svg-edit.googlecode.com/svn/trunk/docs/files/svgcanvas-js.html to markdown



Discussion / hints:
Thanks - sorry for the delay!

Thanks - sorry for the delay!


Fix patch:
diff --git a/src/editor/Editor.js b/src/editor/Editor.js
index 2a87e055b..45c7168cb 100644
--- a/src/editor/Editor.js
+++ b/src/editor/Editor.js
@@ -111,16 +111,6 @@ class Editor extends EditorStartup {
     this.layersPanel = new LayersPanel(this);
     this.mainMenu = new MainMenu(this);
     window.svgEditor = this;
-    this.loadComponentAndDialog();
-  }
-  /**
-  * @returns {void}
-  */
-  async loadComponentAndDialog() {
-    // eslint-disable-next-line no-unsanitized/method
-    // await import(`./components/index.js`);
-    // eslint-disable-next-line no-unsanitized/method
-    await import(`./dialogs/index.js`);
   }
   /**
    *
diff --git a/src/editor/EditorStartup.js b/src/editor/EditorStartup.js
index 7042b8730..8628f6ba2 100644
--- a/src/editor/EditorStartup.js
+++ b/src/editor/EditorStartup.js
@@ -68,6 +68,10 @@ class EditorStartup {
     const self = this;
     const { i18next } = await putLocale(this.configObj.pref('lang'), this.goodLangs);
     this.i18next = i18next;
+    // eslint-disable-next-line no-unsanitized/method
+    await import(`./components/index.js`);
+    // eslint-disable-next-line no-unsanitized/method
+    await import(`./dialogs/index.js`);
     // allow to prepare the dom without display
     this.$svgEditor.style.visibility = 'hidden';
     try {
diff --git a/src/editor/MainMenu.js b/src/editor/MainMenu.js
index 11f3581ae..16846e4f5 100644
--- a/src/editor/MainMenu.js
+++ b/src/editor/MainMenu.js
@@ -86,7 +86,7 @@ class MainMenu {
     // Set image save option
     this.editor.configObj.pref("img_save", save);
     this.editor.updateCanvas();
-    this.editor.hideDocProperties();
+    this.hideDocProperties();
     return true;
   }
   /**
diff --git a/src/editor/components/sePalette.js b/src/editor/components/sePalette.js
index eb8446935..c679ed7d1 100644
--- a/src/editor/components/sePalette.js
+++ b/src/editor/components/sePalette.js
@@ -1,4 +1,5 @@
 /* eslint-disable max-len */
+/* globals svgEditor */
 const palette = [
   // Todo: Make into configuration item?
   'none', '#000000', '#3f3f3f', '#7f7f7f', '#bfbfbf', '#ffffff',
@@ -14,6 +15,7 @@ const palette = [
 ];
 
 const template = document.createElement('template');
+// eslint-disable-next-line no-unsanitized/property
 template.innerHTML = `
   <style>
   .square {
@@ -76,7 +78,7 @@ template.innerHTML = `
     }
   }   
   </style>
-  <div id="palette_holder" title="Click to change fill color, shift-click to change stroke color">
+  <div id="palette_holder" title="${svgEditor.i18next.t('ui.palette_info')}">
     <div id="js-se-palette">
     </div>
   </div>
diff --git a/src/editor/dialogs/exportDialog.js b/src/editor/dialogs/exportDialog.js
index 4f5962a84..72e6030a0 100644
--- a/src/editor/dialogs/exportDialog.js
+++ b/src/editor/dialogs/exportDialog.js
@@ -1,6 +1,8 @@
+/* globals svgEditor */
 import './se-elix/define/NumberSpinBox.js';
 
 const template = document.createElement('template');
+// eslint-disable-next-line no-unsanitized/property
 template.innerHTML = `
   <style>
  
@@ -56,8 +58,8 @@ template.innerHTML = `
     <div class="overlay"></div>
     <div id="dialog_container">
       <div id="dialog_content">
-        <p class="se-select"> 
-        Select an image type for export:
+        <p class="se-select">
+          ${svgEditor.i18next.t('ui.export_type_label')} 
         </p>
         <p class="se-select">
         <select id="se-storage-pref">
@@ -68,14 +70,14 @@ template.innerHTML = `
           <option value="PDF">PDF</option>
         </select> 
         </p>
-        <p id="se-quality">Quality:<elix-number-spin-box min="-1" max="101" step="5" value="100"></elix-number-spin-box></p>
+        <p id="se-quality">${svgEditor.i18next.t('ui.quality')}<elix-number-spin-box min="-1" max="101" step="5" value="100"></elix-number-spin-box></p>
       </div>
       <div id="dialog_buttons">
         <button id="export_ok">
-          Ok
+          ${svgEditor.i18next.t('common.ok')}
         </button>
         <button id="export_cancel">
-          Cancel
+          ${svgEditor.i18next.t('common.cancel')}
         </button>
       </div>
     </div>
diff --git a/src/editor/dialogs/imagePropertiesDialog.js b/src/editor/dialogs/imagePropertiesDialog.js
index a88dd9a40..c8375b7c6 100644
--- a/src/editor/dialogs/imagePropertiesDialog.js
+++ b/src/editor/dialogs/imagePropertiesDialog.js
@@ -1,6 +1,8 @@
+/* globals svgEditor */
 import { isValidUnit } from '../../common/units.js';
 
 const template = document.createElement('template');
+// eslint-disable-next-line no-unsanitized/property
 template.innerHTML = `
   <style>
   :not(:defined) {
@@ -69,46 +71,46 @@ template.innerHTML = `
   <elix-dialog id="svg_docprops" aria-label="Sample dialog" closed>
     <div id="svg_docprops_container">
       <div id="tool_docprops_back" class="toolbar_button">
-        <button id="tool_docprops_save">OK</button>
-        <button id="tool_docprops_cancel">Cancel</button>
+        <button id="tool_docprops_save">${svgEditor.i18next.t('common.ok')}</button>
+        <button id="tool_docprops_cancel">${svgEditor.i18next.t('common.cancel')}</button>
       </div>
       <fieldset id="svg_docprops_docprops">
-        <legend id="svginfo_image_props">Image Properties</legend>
+        <legend id="svginfo_image_props">${svgEditor.i18next.t('config.image_props')}</legend>
         <label>
-          <span id="svginfo_title">Title:</span>
+          <span id="svginfo_title">${svgEditor.i18next.t('config.doc_title')}</span>
           <input type="text" id="canvas_title" />
         </label>
         <fieldset id="change_resolution">
-          <legend id="svginfo_dim">Canvas Dimensions</legend>
+          <legend id="svginfo_dim">${svgEditor.i18next.t('config.doc_dims')}</legend>
           <label>
-            <span id="svginfo_width">width:</span>
+            <span id="svginfo_width">${svgEditor.i18next.t('common.width')}</span>
             <input type="text" id="canvas_width" size="6" />
           </label>
           <label>
-            <span id="svginfo_height">height:</span>
+            <span id="svginfo_height">${svgEditor.i18next.t('common.height')}</span>
             <input type="text" id="canvas_height" size="6" />
           </label>
           <label>
             <select id="resolution">
-              <option id="selectedPredefined" selected="selected">Select predefined:</option>
+              <option id="selectedPredefined" selected="selected">${svgEditor.i18next.t('config.select_predefined')}</option>
               <option>640x480</option>
               <option>800x600</option>
               <option>1024x768</option>
               <option>1280x960</option>
               <option>1600x1200</option>
-              <option id="fitToContent" value="content">Fit to Content</option>
+              <option id="fitToContent" value="content">${svgEditor.i18next.t('tools.fitToContent')}</option>
             </select>
           </label>
         </fieldset>
         <fieldset id="image_save_opts">
-          <legend id="includedImages">Included Images</legend>
+          <legend id="includedImages">${svgEditor.i18next.t('config.included_images')}</legend>
           <label>
             <input type="radio" id="image_embed" name="image_opt" value="embed" checked="checked" />
-            <span id="image_opt_embed">Embed data (local files)</span>
+            <span id="image_opt_embed">${svgEditor.i18next.t('config.image_opt_embed')}</span>
           </label>
           <label>
             <input type="radio" id="image_ref" name="image_opt" value="ref" />
-            <span id="image_opt_ref">Use file reference</span>
+            <span id="image_opt_ref">${svgEditor.i18next.t('config.image_opt_ref')}</span>
           </label>
         </fieldset>
       </fieldset>
diff --git a/src/editor/dialogs/svgSourceDialog.js b/src/editor/dialogs/svgSourceDialog.js
index 3d77c95dd..9e843eaa6 100644
--- a/src/editor/dialogs/svgSourceDialog.js
+++ b/src/editor/dialogs/svgSourceDialog.js
@@ -1,4 +1,6 @@
+/* globals svgEditor */
 const template = document.createElement('template');
+// eslint-disable-next-line no-unsanitized/property
 template.innerHTML = `
   <style>
   :not(:defined) {
@@ -61,17 +63,17 @@ template.innerHTML = `
     <div id="svg_source_container">
       <div id="tool_source_back" class="toolbar_button">
         <button id="tool_source_save">
-          Apply Changes
+          ${svgEditor.i18next.t('tools.source_save')}
         </button>
         <button id="tool_source_cancel">
-          Cancel
+          ${svgEditor.i18next.t('common.cancel')}
         </button>
       </div>
       <div id="save_output_btns">
         <p id="copy_save_note">
-          Copy the contents of this box into a text editor,
-          then save the file with a .svg extension.</p>
-        <button id="copy_save_done">Done</button>
+          ${svgEditor.i18next.t('notification.source_dialog_note')}
+        </p>
+        <button id="copy_save_done">${svgEditor.i18next.t('config.done')}</button>
       </div>
       <form>
         <textarea id="svg_source_textarea" spellcheck="false" rows="5" cols="80"></textarea>
diff --git a/src/editor/index.js b/src/editor/index.js
index 2c20f8203..926ff5354 100644
--- a/src/editor/index.js
+++ b/src/editor/index.js
@@ -5,7 +5,6 @@ For default config and extensions (and available options) available to
 */
 
 import './jquery.min.js';
-import './components/index.js';
 import Editor from './Editor.js';
 
 const svgEditor = new Editor();
diff --git a/src/editor/locale/lang.af.js b/src/editor/locale/lang.af.js
index 73831393d..b468ea930 100644
--- a/src/editor/locale/lang.af.js
+++ b/src/editor/locale/lang.af.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ar.js b/src/editor/locale/lang.ar.js
index b9a290f89..47780d157 100644
--- a/src/editor/locale/lang.ar.js
+++ b/src/editor/locale/lang.ar.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.az.js b/src/editor/locale/lang.az.js
index 5fa4ca5bc..992342227 100644
--- a/src/editor/locale/lang.az.js
+++ b/src/editor/locale/lang.az.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.be.js b/src/editor/locale/lang.be.js
index 11813d9ca..c95aabef2 100644
--- a/src/editor/locale/lang.be.js
+++ b/src/editor/locale/lang.be.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.bg.js b/src/editor/locale/lang.bg.js
index d476606b3..57e46e3cb 100644
--- a/src/editor/locale/lang.bg.js
+++ b/src/editor/locale/lang.bg.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ca.js b/src/editor/locale/lang.ca.js
index 40c095562..ad7958227 100644
--- a/src/editor/locale/lang.ca.js
+++ b/src/editor/locale/lang.ca.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.cs.js b/src/editor/locale/lang.cs.js
index 5885bff41..42e22380a 100644
--- a/src/editor/locale/lang.cs.js
+++ b/src/editor/locale/lang.cs.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Změnit ID elementu',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Hlavní menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Vrstva',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Nevhodná hodnota',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.cy.js b/src/editor/locale/lang.cy.js
index d00322fa0..a4e807c70 100644
--- a/src/editor/locale/lang.cy.js
+++ b/src/editor/locale/lang.cy.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.da.js b/src/editor/locale/lang.da.js
index 030424270..311647075 100644
--- a/src/editor/locale/lang.da.js
+++ b/src/editor/locale/lang.da.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -157,7 +161,12 @@ export default {
     move_front: 'Bring to Front',
     move_up: 'Bring Forward',
     move_down: 'Send Backward',
-    move_back: 'Send to Back'
+    move_back: 'Send to Back',
+    tool_unlink_use: 'Break link to reference element (make unique)',
+    ellipse_circle_tool: 'Ellipse/Circle Tool',
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +209,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +239,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.de.js b/src/editor/locale/lang.de.js
index 982016d2b..ea44336d3 100644
--- a/src/editor/locale/lang.de.js
+++ b/src/editor/locale/lang.de.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Element identifizieren',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Hauptmenü',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Nach ganz unten verschieben',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Ebene',
@@ -200,7 +206,8 @@ export default {
     grid: 'Gitternetz',
     snapping_onoff: 'Einrasten an/aus',
     snapping_stepsize: 'Einrastabstand:',
-    grid_color: 'Gitterfarbe'
+    grid_color: 'Gitterfarbe',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Fehlerhafter Wert',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.el.js b/src/editor/locale/lang.el.js
index 390a81a73..95cf07293 100644
--- a/src/editor/locale/lang.el.js
+++ b/src/editor/locale/lang.el.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.en.js b/src/editor/locale/lang.en.js
index f4c2b2182..2afd6069b 100644
--- a/src/editor/locale/lang.en.js
+++ b/src/editor/locale/lang.en.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -205,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color:'
+    grid_color: 'Grid color:',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -235,6 +237,7 @@ export default {
     exportNoforeignObject: 'foreignObject elements will not appear',
     exportNoDashArray: 'Strokes will appear filled',
     exportNoText: 'Text may not appear as expected',
-    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.'
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.es.js b/src/editor/locale/lang.es.js
index e73db3846..730d367f1 100644
--- a/src/editor/locale/lang.es.js
+++ b/src/editor/locale/lang.es.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Menú principal',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Capa',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: "Done",
   },
   notification: {
     invalidAttrValGiven: 'Valor no válido',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.et.js b/src/editor/locale/lang.et.js
index 384647e6f..8972c247d 100644
--- a/src/editor/locale/lang.et.js
+++ b/src/editor/locale/lang.et.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.fa.js b/src/editor/locale/lang.fa.js
index f42a65d62..ed8062561 100644
--- a/src/editor/locale/lang.fa.js
+++ b/src/editor/locale/lang.fa.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: '‫لایه‬',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: '‫مقدار داده شده نامعتبر است‬',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.fi.js b/src/editor/locale/lang.fi.js
index a2f78237f..88300d918 100644
--- a/src/editor/locale/lang.fi.js
+++ b/src/editor/locale/lang.fi.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.fr.js b/src/editor/locale/lang.fr.js
index 0da882af7..0b28b8d5f 100644
--- a/src/editor/locale/lang.fr.js
+++ b/src/editor/locale/lang.fr.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: "Identifier l'élément",
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Menu principal',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Placer au fond',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Calque',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grille',
     snapping_onoff: 'Ancrer oui/non',
     snapping_stepsize: "Pas d'ancrage :",
-    grid_color: 'Couleur de la grille'
+    grid_color: 'Couleur de la grille',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Valeur fournie invalide',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.fy.js b/src/editor/locale/lang.fy.js
index 777ecaa43..19e73af50 100644
--- a/src/editor/locale/lang.fy.js
+++ b/src/editor/locale/lang.fy.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Laach',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Ferkearde waarde jûn',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ga.js b/src/editor/locale/lang.ga.js
index b7e5a57ca..08918a492 100644
--- a/src/editor/locale/lang.ga.js
+++ b/src/editor/locale/lang.ga.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.gl.js b/src/editor/locale/lang.gl.js
index 0fe66e4f4..927308005 100644
--- a/src/editor/locale/lang.gl.js
+++ b/src/editor/locale/lang.gl.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.he.js b/src/editor/locale/lang.he.js
index 14bf96b8c..845fc69b0 100755
--- a/src/editor/locale/lang.he.js
+++ b/src/editor/locale/lang.he.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.hi.js b/src/editor/locale/lang.hi.js
index 52b63b1c9..79f9d4f45 100644
--- a/src/editor/locale/lang.hi.js
+++ b/src/editor/locale/lang.hi.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'परत',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'अमान्य मूल्य',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.hr.js b/src/editor/locale/lang.hr.js
index afac52de5..bfff0a8be 100644
--- a/src/editor/locale/lang.hr.js
+++ b/src/editor/locale/lang.hr.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.hu.js b/src/editor/locale/lang.hu.js
index 0f6fe4e6d..703250c75 100644
--- a/src/editor/locale/lang.hu.js
+++ b/src/editor/locale/lang.hu.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.hy.js b/src/editor/locale/lang.hy.js
index 232b60821..c11c06f55 100644
--- a/src/editor/locale/lang.hy.js
+++ b/src/editor/locale/lang.hy.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.id.js b/src/editor/locale/lang.id.js
index 6ec67e247..5bc45aa46 100644
--- a/src/editor/locale/lang.id.js
+++ b/src/editor/locale/lang.id.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.is.js b/src/editor/locale/lang.is.js
index 3969accc6..9223d5268 100644
--- a/src/editor/locale/lang.is.js
+++ b/src/editor/locale/lang.is.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.it.js b/src/editor/locale/lang.it.js
index 3469b40fe..d646e2bbc 100644
--- a/src/editor/locale/lang.it.js
+++ b/src/editor/locale/lang.it.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: "Identifica l'elemento",
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Menù principale',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Livello',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Valore assegnato non valido',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ja.js b/src/editor/locale/lang.ja.js
index c4ae55393..5cefcf7a9 100644
--- a/src/editor/locale/lang.ja.js
+++ b/src/editor/locale/lang.ja.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'レイヤ',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: '無効な値が指定されています。',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ko.js b/src/editor/locale/lang.ko.js
index 757009bac..dfa46d8ad 100644
--- a/src/editor/locale/lang.ko.js
+++ b/src/editor/locale/lang.ko.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.lt.js b/src/editor/locale/lang.lt.js
index 86a2d474c..6102dc9a9 100644
--- a/src/editor/locale/lang.lt.js
+++ b/src/editor/locale/lang.lt.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.lv.js b/src/editor/locale/lang.lv.js
index 4b8719df7..31d1b12e0 100644
--- a/src/editor/locale/lang.lv.js
+++ b/src/editor/locale/lang.lv.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.mk.js b/src/editor/locale/lang.mk.js
index baaaa941b..c566a31fc 100644
--- a/src/editor/locale/lang.mk.js
+++ b/src/editor/locale/lang.mk.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ms.js b/src/editor/locale/lang.ms.js
index 9d1b6f8e6..a9beae3e2 100644
--- a/src/editor/locale/lang.ms.js
+++ b/src/editor/locale/lang.ms.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.mt.js b/src/editor/locale/lang.mt.js
index 5c6444bea..edb126bee 100644
--- a/src/editor/locale/lang.mt.js
+++ b/src/editor/locale/lang.mt.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.nl.js b/src/editor/locale/lang.nl.js
index 318e557b5..4a3d152c8 100644
--- a/src/editor/locale/lang.nl.js
+++ b/src/editor/locale/lang.nl.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identificeer het element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Hoofdmenu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Laag',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Verkeerde waarde gegeven',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.no.js b/src/editor/locale/lang.no.js
index d95124d43..735862ae0 100644
--- a/src/editor/locale/lang.no.js
+++ b/src/editor/locale/lang.no.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.pl.js b/src/editor/locale/lang.pl.js
index a36afa74f..ca4d3a11b 100644
--- a/src/editor/locale/lang.pl.js
+++ b/src/editor/locale/lang.pl.js
@@ -27,7 +27,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identyfikator elementu',
@@ -84,7 +85,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Menu główne',
@@ -161,7 +165,9 @@ export default {
     move_back: 'Przenieś do tyłu',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Warstwa',
@@ -201,7 +207,8 @@ export default {
     grid: 'Siatka',
     snapping_onoff: 'Włącz/wyłącz przyciąganie',
     snapping_stepsize: 'Przyciągaj co:',
-    grid_color: 'Kolor siatki'
+    grid_color: 'Kolor siatki',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Podano nieprawidłową wartość',
@@ -230,6 +237,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.pt-BR.js b/src/editor/locale/lang.pt-BR.js
index 4a7307936..b48036e04 100644
--- a/src/editor/locale/lang.pt-BR.js
+++ b/src/editor/locale/lang.pt-BR.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identifica o elemento',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Menu Principal',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Enviar para Trás',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Camada',
@@ -199,7 +205,9 @@ export default {
     base_unit: 'Unidade base:',
     grid: 'Grade',
     snapping_onoff: 'Snap on/off',
-    snapping_stepsize: 'Intensidade do Snap:'
+    snapping_stepsize: 'Intensidade do Snap:',
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Valor inválido',
@@ -228,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.pt-PT.js b/src/editor/locale/lang.pt-PT.js
index 9329037be..6d3b9f0a0 100644
--- a/src/editor/locale/lang.pt-PT.js
+++ b/src/editor/locale/lang.pt-PT.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ro.js b/src/editor/locale/lang.ro.js
index 1e8ac950f..60c8a830d 100644
--- a/src/editor/locale/lang.ro.js
+++ b/src/editor/locale/lang.ro.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identificare element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Menu Principal',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Trimite in spate',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Strat',
@@ -199,7 +205,9 @@ export default {
     base_unit: 'Unitate de baza:',
     grid: 'Caroiaj',
     snapping_onoff: 'Fixare on/off',
-    snapping_stepsize: 'Dimensiunea pasului de fixare:'
+    snapping_stepsize: 'Dimensiunea pasului de fixare:',
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Valoarea data nu este validă',
@@ -228,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.ru.js b/src/editor/locale/lang.ru.js
index 42120d96c..d7f82d662 100644
--- a/src/editor/locale/lang.ru.js
+++ b/src/editor/locale/lang.ru.js
@@ -27,15 +27,7 @@ export default {
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
     group_identify_label: 'Group identification label',
-    class: 'Element class',
-    serif: 'Serif',
-    sans_serif: 'Sans-serif',
-    cursive: 'Cursive',
-    fantasy: 'Fantasy',
-    monospace: 'Monospace',
-    courier: 'Courier',
-    helvetica: 'Helvetica',
-    times: 'times'
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Идентификатор элемента',
@@ -83,7 +75,19 @@ export default {
     italic: 'Курсив',
     text_anchor_start: 'Align the text in start',
     text_anchor_middle: 'Align the text in middle',
-    text_anchor_end: 'Align the text in end'
+    text_anchor_end: 'Align the text in end',
+    class: 'Element class',
+    serif: 'Serif',
+    sans_serif: 'Sans-serif',
+    cursive: 'Cursive',
+    fantasy: 'Fantasy',
+    monospace: 'Monospace',
+    courier: 'Courier',
+    helvetica: 'Helvetica',
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Главное меню',
@@ -160,7 +164,9 @@ export default {
     move_back: 'На задний план',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Слой',
@@ -200,7 +206,8 @@ export default {
     grid: 'Сетка',
     snapping_onoff: 'Привязка вкл/выкл',
     snapping_stepsize: 'Шаг привязки:',
-    grid_color: 'Цвет сетки'
+    grid_color: 'Цвет сетки',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Некорректное значение аргумента',
@@ -229,6 +236,8 @@ export default {
     exportNoBlur: 'Размытые элементы отображены как неразмытые',
     exportNoforeignObject: 'foreignObject elements will not appear',
     exportNoDashArray: 'Strokes will appear filled',
-    exportNoText: 'Текст может показываться не так как должен'
+    exportNoText: 'Текст может показываться не так как должен',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.sk.js b/src/editor/locale/lang.sk.js
index 2a654965d..419fbfee4 100644
--- a/src/editor/locale/lang.sk.js
+++ b/src/editor/locale/lang.sk.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Zmeniť ID elementu',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Hlavné menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Zasuň dozadu',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Vrstva',
@@ -200,7 +206,8 @@ export default {
     grid: 'Mriežka',
     snapping_onoff: 'Priväzovanie (do mriežky) zap/vyp',
     snapping_stepsize: 'Priväzovanie (do mriežky) veľkosť kroku:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Neplatná hodnota',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.sl.js b/src/editor/locale/lang.sl.js
index 8e5307f90..633ad7fe8 100644
--- a/src/editor/locale/lang.sl.js
+++ b/src/editor/locale/lang.sl.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'ID elementa',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Glavni meni',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Postavi v ozadje',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Sloj',
@@ -199,7 +205,9 @@ export default {
     base_unit: 'Osnovne enote',
     grid: 'Mreža',
     snapping_onoff: 'Pripni na mrežo DA/NE',
-    snapping_stepsize: 'Snapping Step-Size:'
+    snapping_stepsize: 'Snapping Step-Size:',
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Napačna vrednost!',
@@ -228,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.sq.js b/src/editor/locale/lang.sq.js
index 11a2d58a5..9483cda9f 100644
--- a/src/editor/locale/lang.sq.js
+++ b/src/editor/locale/lang.sq.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.sr.js b/src/editor/locale/lang.sr.js
index 743e94dd7..3c22b94fd 100644
--- a/src/editor/locale/lang.sr.js
+++ b/src/editor/locale/lang.sr.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.sv.js b/src/editor/locale/lang.sv.js
index c7be7324f..4345545ac 100644
--- a/src/editor/locale/lang.sv.js
+++ b/src/editor/locale/lang.sv.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.sw.js b/src/editor/locale/lang.sw.js
index 32adecdd3..b49554af3 100644
--- a/src/editor/locale/lang.sw.js
+++ b/src/editor/locale/lang.sw.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.th.js b/src/editor/locale/lang.th.js
index 877d1585a..9c2e9dd02 100644
--- a/src/editor/locale/lang.th.js
+++ b/src/editor/locale/lang.th.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.tl.js b/src/editor/locale/lang.tl.js
index 9578bdf0d..abd956813 100644
--- a/src/editor/locale/lang.tl.js
+++ b/src/editor/locale/lang.tl.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.tr.js b/src/editor/locale/lang.tr.js
index 7b91ee5df..f60cd1194 100644
--- a/src/editor/locale/lang.tr.js
+++ b/src/editor/locale/lang.tr.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.uk.js b/src/editor/locale/lang.uk.js
index 5399031c4..7941269ad 100644
--- a/src/editor/locale/lang.uk.js
+++ b/src/editor/locale/lang.uk.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.vi.js b/src/editor/locale/lang.vi.js
index d39a910eb..24b2320ee 100644
--- a/src/editor/locale/lang.vi.js
+++ b/src/editor/locale/lang.vi.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.yi.js b/src/editor/locale/lang.yi.js
index 4b38ff09c..33a3fdf53 100644
--- a/src/editor/locale/lang.yi.js
+++ b/src/editor/locale/lang.yi.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.zh-CN.js b/src/editor/locale/lang.zh-CN.js
index c720284d2..a87b7929e 100644
--- a/src/editor/locale/lang.zh-CN.js
+++ b/src/editor/locale/lang.zh-CN.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: '元素ID',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: '主菜单',
@@ -160,7 +164,9 @@ export default {
     move_back: '移至底部',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: '图层',
@@ -200,7 +206,8 @@ export default {
     grid: '网格',
     snapping_onoff: '吸附开/关',
     snapping_stepsize: '吸附步长:',
-    grid_color: '网格颜色'
+    grid_color: '网格颜色',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: '无效的参数',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.zh-HK.js b/src/editor/locale/lang.zh-HK.js
index e90f02242..1e82e391b 100644
--- a/src/editor/locale/lang.zh-HK.js
+++ b/src/editor/locale/lang.zh-HK.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };
diff --git a/src/editor/locale/lang.zh-TW.js b/src/editor/locale/lang.zh-TW.js
index dfa5e8a82..6360c7c0e 100644
--- a/src/editor/locale/lang.zh-TW.js
+++ b/src/editor/locale/lang.zh-TW.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: '圖層',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: '數值給定錯誤',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };


Test patch:
diff --git a/src/editor/locale/lang.test.js b/src/editor/locale/lang.test.js
index 9f2d2165f..97e6402f0 100644
--- a/src/editor/locale/lang.test.js
+++ b/src/editor/locale/lang.test.js
@@ -26,7 +26,8 @@ export default {
     pathCtrlPtTooltip: 'Drag control point to adjust curve properties',
     pick_stroke_paint_opacity: 'Pick a Stroke Paint and Opacity',
     pick_fill_paint_opacity: 'Pick a Fill Paint and Opacity',
-    group_identify_label: 'Group identification label'
+    group_identify_label: 'Group identification label',
+    export_type_label: 'Select an image type for export:',
   },
   properties: {
     id: 'Identify the element',
@@ -83,7 +84,10 @@ export default {
     monospace: 'Monospace',
     courier: 'Courier',
     helvetica: 'Helvetica',
-    times: 'times'
+    times: 'times',
+    prefs_and_content: 'Store preferences and SVG content locally',
+    prefs_only: 'Only store preferences locally',
+    no_prefs_or_content: 'Do not store my preferences or SVG content locally'
   },
   tools: {
     main_menu: 'Main Menu',
@@ -160,7 +164,9 @@ export default {
     move_back: 'Send to Back',
     tool_unlink_use: 'Break link to reference element (make unique)',
     ellipse_circle_tool: 'Ellipse/Circle Tool',
-    square_rect_tool: 'Square/Rect Tool'
+    square_rect_tool: 'Square/Rect Tool',
+    remember_this_choice: 'Remember this choice?',
+    remember_this_choice_title: 'If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again.',
   },
   layers: {
     layer: 'Layer',
@@ -200,7 +206,8 @@ export default {
     grid: 'Grid',
     snapping_onoff: 'Snapping on/off',
     snapping_stepsize: 'Snapping Step-Size:',
-    grid_color: 'Grid color'
+    grid_color: 'Grid color',
+    done: 'Done',
   },
   notification: {
     invalidAttrValGiven: 'Invalid value given',
@@ -229,6 +236,8 @@ export default {
     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'
+    exportNoText: 'Text may not appear as expected',
+    editorPreferencesMsg: 'By default and where supported, SVG-Edit can store your editor preferences and SVG content locally on your machine so you do not need to add these back each time you load SVG-Edit. If, for privacy reasons, you do not wish to store this information on your machine, you can change away from the default option below.',
+    source_dialog_note: 'Copy the contents of this box into a text editor, then save the file with a .svg extension.'
   }
 };